2016-07-05 10 views
1

Ich brauche ein custbody Feld in meinem Kundenauftrag zu aktualisieren:Netsuite PHP Toolkit Update Kundenauftrag

Das Feld ein Drop-Down ist, und ein Kontrollkästchen. Wie sende ich den Wert "check" an das Kontrollkästchenfeld? Das Ergebnis gibt "Erfolg" zurück, aber das Feld wird nie von seinem vorhandenen Wert aktualisiert. Hier ist mein Code.

$customStringFieldList = new StringCustomFieldRef(); 
$customStringFieldList->internalId = "custbody_order_status"; 
$customStringFieldList->value = "Cancelled"; 

$customSelectFieldList = new SelectCustomFieldRef(); 
$customSelectFieldList->value = new ListOrRecordRef(); 
$customSelectFieldList->value->internalId = 49; 
$customSelectFieldList->internalId = 'custbody_shipping_confirmed'; 
//send true? 

$basicCustomRecord = new SalesOrder(); 
$basicCustomRecord->internalId = "114467"; // internal id of the custom record you want to update 
$basicCustomRecord->recType = new RecordRef(); 
$basicCustomRecord->customFieldList = new CustomFieldList(); 
$basicCustomRecord->customFieldList->customField = array($customStringFieldList, $customSelectFieldList); 

$updateRequest = new UpdateRequest(); 
$updateRequest->record = $basicCustomRecord; 

$updateResponse = $service->update($updateRequest); 

var_dump($updateResponse); 
if (!$updateResponse->writeResponse->status->isSuccess) { 
    echo "UPDATE ERROR"; 
    exit(); 
} else { 
    echo "UPDATE SUCCESS, id " . $updateResponse->writeResponse->baseRef->internalId; 
} 

Antwort

0

Hier ist, wie Sie es für jemand tun würde, der dieses Problem in Zukunft leiden hat:

$si = 'internal value of the option you can find this in custom settings'; 

$customSelectFieldList = new SelectCustomFieldRef(); 
$customSelectFieldList->value = new ListOrRecordRef(); 
$customSelectFieldList->value->internalId = $s_id; 
$customSelectFieldList->scriptId = 'custbody_order_status'; 


    $aBooleanField = new BooleanCustomFieldRef(); 
    $aBooleanField->value = true; 
    $aBooleanField->scriptId = 'custbody_move_confirmed'; 



      $SalesOrderId = 437127; 
      $SalesOrderRecord = new SalesOrder(); 
      $SalesOrderRecord->internalId = $SalesOrderId; 


      $SalesOrderRecord->customFieldList = new CustomFieldList(); 
      $SalesOrderRecord->customFieldList->customField = array($customSelectFieldList,$aBooleanField); 

      $updateRequest = new UpdateRequest(); 
      $updateRequest->record = $SalesOrderRecord; 

      $updateResponse = $service->update($updateRequest); 


      if (!$updateResponse->writeResponse->status->isSuccess) { 
       echo "UPDATE ERROR"; 
       exit(); 
      } else { 
       echo "UPDATE SUCCESS, id " . $updateResponse->writeResponse->baseRef->internalId; 


      } 
0

Ich könnte es vermissen; aber ich sehe nicht, wo Sie einen überprüften oder unchecked Wert einstellen.

Das heißt, in SuiteScript 1.0 würden Sie "T" oder "F" verwenden, um ein Kontrollkästchen als den Wert des Feldes zu aktivieren oder zu deaktivieren.

In 2.0 kann ich normalerweise true oder false (boolesche Werte, keine Zeichenfolgen) verwenden.