【发布时间】:2019-04-15 12:41:30
【问题描述】:
我在使用以下代码根据“销售订单”创建“项目履行”记录时遇到问题。
$objx = array();
$objx = new InitializeRecord();
$objx->type = "itemFulfillment";
$objx->reference->type = "salesOrder";
$objx->reference->internalId = 7793877; // ID of sales order
$request = new InitializeListRequest();
$request->initializeRecord = $objx;
$response = $service->initializeList($request);
但是给出以下错误消息:
[code] => VALID_LINE_ITEM_REQD
[message] => You must have at least one valid line item for this transaction.
[type] => ERROR
我在网上使用了其他示例,但似乎总是以相同的错误消息结束。我在 Netsuite 中启用了高级库存管理。
2019 年 4 月 16 日更新:
第一次查看suitescript 并设法将一些代码放在一起作为测试,以使用nlapiTransformRecord 将销售订单转换为项目履行。但是,也会收到相同的错误消息。
var soId = nlapiGetRecordId();
var ifRec = nlapiTransformRecord('salesorder', soId, 'itemfulfillment');
var lcounttwo = ifRec.getLineItemCount('item');
for (var i = 1; i <= lcounttwo; i++){
ifRec.selectLineItem('item', i);
}
nlapiSubmitRecord(ifRec);
【问题讨论】:
-
我认为您在设置
$service变量时遇到问题。浏览此文档一次并检查link -
遗憾的是,我认为这一切都很好,因为在创建销售订单甚至基于销售订单创建现金销售方面,我对 $service 变量没有任何问题。
-
目标销售订单是否有可履行行?
-
销售订单有一个 FulFilled 0 和 Quantity 1 的行项目。
-
Fufillable 可能还包括可用或已承诺的库存以及已批准的销售订单。一个简单的检查是你能从 UI 中完成订单吗?
标签: php netsuite suitescript