我正在使用 Restlet 脚本,我需要使用脚本来履行销售订单。我已经使用 netsuite-php 库完成了它,但现在我需要使用 NetSuite 脚本 这是我的脚本:
function createItemFulfillmentFromSalesOrder(wcOrderId, serialNumbers) {
var salesOrder = record.load({
type: record.Type.SALES_ORDER,
id: wcOrderId,
isDynamic: true
});
var itemCount = salesOrder.getLineCount({ sublistId: 'item' });
for (var i = 0; i < itemCount; i++) {
var inventoryDetailId = salesOrder.getSublistValue({
sublistId: 'item',
fieldId: 'inventorydetail',
line: i
});
if (!inventoryDetailId) {
var inventoryDetail = record.create({
type: record.Type.INVENTORY_DETAIL,
//isDynamic: true
});
inventoryDetail.setValue({
fieldId: 'item',
value: salesOrder.getSublistValue({
sublistId: 'item',
fieldId: 'item',
line: i
})
});
inventoryDetail.selectNewLine({ sublistId: 'inventoryassignment' });
inventoryDetail.setCurrentSublistValue({
sublistId: 'inventoryassignment',
fieldId: 'quantity',
value: 1
});
inventoryDetail.setCurrentSublistValue({
sublistId: 'inventoryassignment',
fieldId: 'issueinventorynumber',
value: serialNumbers[i]
});
inventoryDetail.commitLine({ sublistId: 'inventoryassignment' });
inventoryDetailId = inventoryDetail.save();
}
var inventoryAssignmentList = [{ issueInventoryNumber: inventoryDetailId }];
var itemFulfillment = record.transform({
fromType: record.Type.SALES_ORDER,
fromId: wcOrderId,
toType: record.Type.ITEM_FULFILLMENT,
isDynamic: true
});
itemFulfillment.selectLine({ line: i });
itemFulfillment.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'inventorydetail',
value: inventoryAssignmentList
});
itemFulfillment.commitLine({ sublistId: 'item' });
}
var fulfillmentId = itemFulfillment.save();
return {
success: true,
fulfillmentId: fulfillmentId
};
}
});
但我有这个错误:
You have entered an Invalid Field Value <my_inventory_number_internal_id> for the following field: issueinventorynumber
我更改了函数并删除了 isDynamic 参数,但这些都不起作用。我尝试过不同的库存编号。
这里的serialNumbers的值是多少?
inventoryDetail.setCurrentSublistValue({
sublistId: 'inventoryassignment',
fieldId: 'issueinventorynumber',
value: serialNumbers[i]
});
如果您设法获取内部 ID,请尝试先通过 UI 手动输入/测试它,看看使用该内部 ID 是否会出错
在动态模式下处理记录时,设置字段值的顺序很重要