在 Netsuite 中搜索运输项目 API
Search Shipping Item in Netsuite API
我有这个现有的代码片段,可以搜索由其 RecordType(例如 InventoryItem、SalesOrder)指定的记录列表。
$request = new GetRequest();
$request->baseRef = new RecordRef();
$request->baseRef->type = $type; //Record Type
$request->baseRef->internalId = $internalId; //Internal ID of record
$getResponse = $service->get($request);
if ( ! $getResponse->readResponse->status->isSuccess) {
return 'ERROR';
} else {
return $getResponse->readResponse->record;
}
但是,尽管我可以传递一个内部 ID,但 RecordType 的列表中似乎没有 Shipping Item。我的目标是在计算创建销售订单时使用运输项目的详细信息(需要在提交前显示)。
是否有不同的获取发货记录的方法?怎么样?
Suitetalk 尚不支持发货项目记录。作为替代解决方案,您可以创建一个 RESTlet 来获取运输项目。
我现在可以通过 RESTlet 成功检索运输项目。我首先将其作为新文件上传到文件柜中,然后将其添加为新脚本。 NetSuite 不允许在创建新脚本时直接上传脚本文件。
// get_record.js
function get_record(datain)
{
var record = nlapiLoadRecord(datain.recordType, datain.id);
return record;
}
然后使用 guzzle http 库调用 RESTlet。
$url = "https://rest.sandbox.netsuite.com/app/site/hosting/restlet.nl";
$client = new GuzzleHttp\Client();
$authorization = [
'NLAuth nlauth_account='.getenv('NETSUITE_ACCOUNT'),
'nlauth_email='.getenv('NETSUITE_EMAIL'),
'nlauth_signature='.getenv('NETSUITE_PASSWORD'),
'nlauth_role='.getenv('NETSUITE_ROLE')
];
$response = $client->request('GET', $url, [
'headers' => [
'Authorization' => implode(',', $authorization),
'Content-Type' => 'application/json'
],
'query' => [
'script' => '343', //script id
'deploy' => '1',
'recordType' => 'ShipItem',
'id' => '5905' // example of internal id of desired shipping item
]
]);
return json_decode($response->getBody());
我有这个现有的代码片段,可以搜索由其 RecordType(例如 InventoryItem、SalesOrder)指定的记录列表。
$request = new GetRequest();
$request->baseRef = new RecordRef();
$request->baseRef->type = $type; //Record Type
$request->baseRef->internalId = $internalId; //Internal ID of record
$getResponse = $service->get($request);
if ( ! $getResponse->readResponse->status->isSuccess) {
return 'ERROR';
} else {
return $getResponse->readResponse->record;
}
但是,尽管我可以传递一个内部 ID,但 RecordType 的列表中似乎没有 Shipping Item。我的目标是在计算创建销售订单时使用运输项目的详细信息(需要在提交前显示)。
是否有不同的获取发货记录的方法?怎么样?
Suitetalk 尚不支持发货项目记录。作为替代解决方案,您可以创建一个 RESTlet 来获取运输项目。
我现在可以通过 RESTlet 成功检索运输项目。我首先将其作为新文件上传到文件柜中,然后将其添加为新脚本。 NetSuite 不允许在创建新脚本时直接上传脚本文件。
// get_record.js
function get_record(datain)
{
var record = nlapiLoadRecord(datain.recordType, datain.id);
return record;
}
然后使用 guzzle http 库调用 RESTlet。
$url = "https://rest.sandbox.netsuite.com/app/site/hosting/restlet.nl";
$client = new GuzzleHttp\Client();
$authorization = [
'NLAuth nlauth_account='.getenv('NETSUITE_ACCOUNT'),
'nlauth_email='.getenv('NETSUITE_EMAIL'),
'nlauth_signature='.getenv('NETSUITE_PASSWORD'),
'nlauth_role='.getenv('NETSUITE_ROLE')
];
$response = $client->request('GET', $url, [
'headers' => [
'Authorization' => implode(',', $authorization),
'Content-Type' => 'application/json'
],
'query' => [
'script' => '343', //script id
'deploy' => '1',
'recordType' => 'ShipItem',
'id' => '5905' // example of internal id of desired shipping item
]
]);
return json_decode($response->getBody());