I'm using Restlet scripts and I need to fulfill a Sales Order with a script. I've done it with netsuite-php library but now I need it with NetSuite script This is my script:
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
};
}
});
But I have this error:
You have entered an Invalid Field Value <my_inventory_number_internal_id> for the following field: issueinventorynumber
I've changed the functions and remove the isDynamic parameter but none of this worked. I've tried with different inventory numbers.
What's the value of serialNumbers here?
If you manage to get the internal ID, try to manually input/test it first via the UI to see if it errors out using that internal ID
When you work with a record in dynamic mode, the order in which you set field values matters