我有一个脚本,需要从netsuite获取执行数据并有一个代码
$ myWebService = app('NetSuiteWebService'); $ myWebService-> setSearchPreferences(false,10);
$search = new TransactionSearchBasic();
// Record that is sales order type
$so = new RecordRef();
$so->type = 'salesOrder';
// get the order item fulfillment
$type = new SearchEnumMultiSelectField();
$type->searchValue = '_itemFulfillment';
$type->operator = 'anyOf';
$search->type= $type;
// custom field filter to get only custom field custbody_do_no_send_macship to FALSE
$searchBooleanCustomFieldList = new SearchColumnBooleanCustomField();
$searchBooleanCustomFieldList->searchValue = false;
$searchBooleanCustomFieldList->scriptId = 'custbody_do_not_send_machship';
// custom field filter to get only tracking that is not empty
$searchStringCustomField = new SearchStringCustomField();
$searchStringCustomField->operator = 'notEmpty';
$searchStringCustomField->scriptId = 'custbody13';
// TODO: NOT CORRECT custom field filter to get only the shipping group that does not have pickup
$searchMultiSelectCustomField = new SearchMultiSelectCustomField();
$searchMultiSelectCustomField->scriptId = 'custbody12';
$searchMultiSelectCustomField->operator = 'doesNotContain';
$searchMultiSelectCustomField->searchValue = 'Pick Up';
// set all custom field as an array to get from the search
$searchColumnCustomFieldList = new SearchColumnCustomFieldList();
$searchColumnCustomFieldList->customField = array(
$searchBooleanCustomFieldList,
$searchStringCustomField,
$searchMultiSelectCustomField);
// filter for the last 12 hours
$searchDateField = new SearchDateField();
$searchDateField->operator = "after";
$searchDateField->searchValue = date('Y-m-d\TH:i:s.000\Z', strtotime('-12 hour'));
$search->dateCreated = $searchDateField;
$request = new SearchRequest();
$request->searchRecord = $search;
$response = $myWebService->search($request);
到目前为止,除此查询外,每个查询都为我提供了正确的结果
// TODO: NOT CORRECT custom field filter to get only the shipping group that does not have pickup
$searchMultiSelectCustomField = new SearchMultiSelectCustomField();
$searchMultiSelectCustomField->scriptId = 'custbody12';
$searchMultiSelectCustomField->operator = 'doesNotContain';
$searchMultiSelectCustomField->searchValue = 'Pick Up';
问题是自定义字段是一个SelectCustomFieldRef,其值是一个ListOrRecordRef,其值是
+customField: array:8 [▼
0 => SelectCustomFieldRef {#410 ▼
+value: ListOrRecordRef {#411 ▼
+name: "Pick Up Bundaberg"
+internalId: "10"
+externalId: null
+typeId: "199"
}
+internalId: "1551"
+scriptId: "custbody12"
}
我需要在此自定义字段中删除名称为“ Pick Up”的订单,但是当我运行此订单时,它仍然包含名称中带有“ Pick Up”的订单?什么是正确的查询?
答案 0 :(得分:0)
多选搜索的值应该是列表中内部ID的数组。