Search code examples
phpnetsuitesuitescriptphp-toolkit

Can't create custom record using Netsuite PHP Toolkit 2022_2


I'm trying to create custom record using NetSuite PHP Toolkit 2022_2.

On that record I have

  1. List/Record field - Item

  2. List/Record Field - Supplier

  3. Free-Form-Text field - Special Notes

Whatever I do I can't set field values of this custom record. On other side record is always created with empty fields even tho Im setting values in my code... I'm trying to use documentation code and solutions from google but unfortunately, I could not fix the issue for hours. Any help is appreciated. Thanks!

Example 1:

$service = new NetSuiteService();
$customRecord = new CustomRecord(); 
$customRecord->recType = new RecordRef(); 
$customRecord->recType->internalId = "244";
$customRecord->fields = new CustomFieldList();

$itemField = new StringCustomFieldRef(); 
$itemField->value = "2167"; 
$itemField->internalId = "custrecord_item"; 
$customRecord->fields->customField[] = $itemField;

$supplierField = new StringCustomFieldRef(); 
$supplierField->value = "1221"; $supplierField->internalId = "custrecord_supplier"; 
$customRecord->fields->customField[] = $supplierField;

$addRequest = new AddRequest(); 
$addRequest->record = $customRecord;
$addResponse = $service->add($addRequest);

Example 2 (also not setting field value):

// Create a object for lab name in netsuite
$itemField = new SelectCustomFieldRef(); 
$itemField->value = new ListOrRecordRef(); 
$itemField->value->internalId = '2167'; // your input 
$itemField->internalId = "custrecord_item"; // internal id of the input in Netsuite

$labCustomRecord = new CustomRecord(); 
$labCustomRecord->recType = new RecordRef(); 
$labCustomRecord->recType->internalId = "244"; // internal id 
$labCustomRecord->customFieldList = new CustomFieldList(); 
$labCustomRecord->customFieldList->customField  = $itemField;

$addRequest = new AddRequest(); $addRequest->record = $labCustomRecord;
$addResponse = $service->add($addRequest);

Solution

  • I just found the issue.

    The problem is because their documentation is absolute for PHP ToolKit. We should use scriptId instead of internalId as on the example below:

    $itemField = new StringCustomFieldRef(); 
    $itemField->value = "2167"; 
    $itemField->scriptId = "custrecord_item"; // DONT USE ->internalId
    $customRecord->fields->customField[] = $itemField;