我很难在 suitescript 2.0 中使用我的功能来在 netsuite 上传输批次项目。我不断收到错误“错误:您无法为此商品创建库存详细信息。”。尽管我确信我使用的内部 ID 是很多项目。请参阅下面的功能
function transferItems(itemIds, TRANSFER_LOCATION_ID) {
log.debug('Start transferItems', 'Starting item transfer process for items: ' + JSON.stringify(itemIds) + ' to location: ' + TRANSFER_LOCATION_ID);
itemIds.forEach(function(item) {
var itemId = 519;
var itemLength = item.length;
var lotNumber = item.netsuiteId;
log.debug('Processing item', 'Item ID: ' + itemId + ', Length: ' + itemLength + ', Lot: ' + lotNumber);
try {
var transferRecord = record.create({
type: record.Type.INVENTORY_TRANSFER,
isDynamic: true
});
log.debug('Transfer record created', 'Transfer record initiated for item ID: ' + itemId);
// Set dynamic values for fields here
transferRecord.setValue({fieldId: 'subsidiary', value: '7'}); // Example subsidiary ID
transferRecord.setValue({fieldId: 'trandate', value: new Date()});
transferRecord.setValue({fieldId: 'location', value: 903}); // Example source location ID
transferRecord.setValue({fieldId: 'transferlocation', value: TRANSFER_LOCATION_ID});
// Add the item to the inventory sublist
transferRecord.selectNewLine({sublistId: 'inventory'});
transferRecord.setCurrentSublistValue({sublistId: 'inventory', fieldId: 'item', value: itemId});
// Work with the inventorydetail subrecord for lot numbered items
var inventoryDetailSubrecord = transferRecord.getCurrentSublistSubrecord({
sublistId: 'inventory',
fieldId: 'inventorydetail'
});
log.debug(inventoryDetailSubrecord);
inventoryDetailSubrecord.selectNewLine({sublistId: 'inventoryassignment'});
inventoryDetailSubrecord.setCurrentSublistValue({sublistId: 'inventoryassignment', fieldId: 'issueinventorynumber', value: lotNumber}); // Set the lot number
inventoryDetailSubrecord.setCurrentSublistValue({sublistId: 'inventoryassignment', fieldId: 'quantity', value: parseInt(itemLength)});
// Commit the lines
inventoryDetailSubrecord.commitLine({sublistId: 'inventoryassignment'});
log.debug('Inventory detail set and committed for lot', 'Lot: ' + lotNumber + ', Quantity: ' + itemLength);
transferRecord.commitLine({sublistId: 'inventory'});
var transferId = transferRecord.save({enableSourcing: true, ignoreMandatoryFields: true});
log.debug('Inventory Transfer Created', 'Transfer ID: ' + transferId + ' for Item ID: ' + itemId + ', Lot: ' + lotNumber);
} catch (e) {
log.error('Error transferring lot-numbered item', 'Item ID: ' + itemId + ', Lot: ' + lotNumber + ', Error: ' + e.message);
}
});
log.debug('End transferItems', 'Lot-numbered item transfer process completed.');
}
我已尝试使用批次项目文本值和内部 ID,并且我已重新订购脚本,但它仍然无法正常工作。我对套件脚本比较陌生
首先使用 hasCurrentSublistSubrecord(options) 检查子记录是否存在,否则如果不存在,使用 getCurrentSublistSubrecord 将尝试创建一个。