【问题标题】:Search Shipping Item in Netsuite API在 Netsuite API 中搜索运输项目
【发布时间】:2016-07-28 07:00:16
【问题描述】:

我有这个现有的代码 sn-p,它搜索由其 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。我的目标是获取要在计算中用于创建销售订单的运输项目详细信息(需要在提交之前显示)。

是否有不同的方法来获取运输项目记录?怎么样?

【问题讨论】:

    标签: php search netsuite shipping


    【解决方案1】:

    Suitetalk 尚不支持运输项目记录。作为替代解决方案,您可以创建一个 RESTlet 来获取 Shipping Item。

    【讨论】:

    • 好的,谢谢,我会查看 RESTlet 上的文档以了解如何做到这一点。据我所知,例如,我将创建一个自定义脚本来获取运输物品,然后从我的代码库中调用 restlet 服务,对吗?如果我设法完成它,我会在这里发布我的实现。
    【解决方案2】:

    我现在可以通过 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());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-07
      相关资源
      最近更新 更多