JC
08/31/2021, 10:30 PM/**
* @NApiVersion 2.x
* @NScriptType UserEventScript
* @NModuleScope SameAccount
*/
define(['N/record', 'N/search'],
/**
* @param {record} record
* @param {search} search
*/
function(record, search) {
function beforeLoad(scriptContext) {
var recType = record.load({type: record.Type.ITEM_FULFILLMENT, id: 5679548});
var sublistRecord = recType.getSublistSubrecord({
sublistId: 'item',
fieldId: 'item',
line: 0
});
//spin through the sublist of items
var count = sublistRecord.getLineCount({sublistId: 'item'});
for ( var i=0; i < count ; i++)
{
var id = sublistRecord.getSublistValue({sublistId: 'item', fieldId: 'id', line: i});
var fulfillmentQty = sublistRecord.getSublistValue({sublistId: 'item', fieldId: 'quantity', line: i});
var nsdrReturn = sublistRecord.getSublistText({sublistId: 'item', fieldId: 'custcol_delivery_routing_return_qty', line: i});
log.debug(id + fulfillmentQty + nsdrReturn);
sublistRecord.setSublistValue({sublistId: 'item', fieldId: 'quantity', line: i, value: 10});
}
//commit the item record. The sublist will update
recType.save();
}
return {
beforeLoad: beforeLoad,
};
});
stalbert
08/31/2021, 10:39 PMtypescript
const fulfillment = new Itemfulfillment(5679548)
_.map(fulfillment.item, l => l.quantity = 10)
fulfillment.save()
In general, the code you pasted suggest to read up on the difference between sublist and subrecord as well as records having id
fields (where sublists do not)JC
08/31/2021, 10:40 PMJC
08/31/2021, 10:41 PMJC
08/31/2021, 10:41 PMJC
08/31/2021, 10:42 PMJC
08/31/2021, 10:42 PMstalbert
09/01/2021, 1:44 AMinventorydetail
field. I don't have any opinion on this Zigman but that code doesn't look right to me.David B
09/01/2021, 4:50 AMbattk
09/01/2021, 5:04 AMbattk
09/01/2021, 5:04 AMbattk
09/01/2021, 5:08 AMJC
09/01/2021, 1:33 PMJC
09/01/2021, 1:34 PMSciuridae54696d
09/01/2021, 2:23 PM/**
* @NApiVersion 2.x
* @NScriptType UserEventScript
* @NModuleScope SameAccount
*/
define(['N/record', 'N/search'],
/**
* @param {record} record
* @param {search} search
*/
function(record, search) {
function beforeLoad(scriptContext) {
var recType = record.load({type: record.Type.ITEM_FULFILLMENT, id: 5679548,isDynamic:true});
var count = recType.getLineCount({sublistId:'item'});
/*
var sublistRecord = recType.getSublistSubrecord({
sublistId: 'item',
fieldId: 'item',
line: 0
});*/
//spin through the sublist of items
//var count = sublistRecord.getLineCount({sublistId: 'item'});
for ( var i=0; i < count ; i++)
{
var selectLine = recType.selectLine({sublistId:'item',line:i});
var id = recType.getCurrentSublistValue({sublistId:'item',fieldId:'id'});
//var id = sublistRecord.getSublistValue({sublistId: 'item', fieldId: 'id', line: i});
var fulfillmentQty = recType.getCurrentSublistValue({sublistId:'item',fieldId:'quantity'});
// var fulfillmentQty = sublistRecord.getSublistValue({sublistId: 'item', fieldId: 'quantity', line: i});
var nsdrReturn = recType.getCurrentSublistText({sublistId:'item',fieldId:'custcol_delivery_routing_return_qty'});
//var nsdrReturn = sublistRecord.getSublistText({sublistId: 'item', fieldId: 'custcol_delivery_routing_return_qty', line: i});
log.debug(id + fulfillmentQty + nsdrReturn);
recType.setCurrentSublistValue({sublistId:'item',fieldId:'quantity',value:10});
//sublistRecord.setSublistValue({sublistId: 'item', fieldId: 'quantity', line: i, value: 10});
recType.commitLine({sublistId:'item'});
}
//commit the item record. The sublist will update
recType.save();
}
return {
beforeLoad: beforeLoad,
};
});
not sure if it's style but I almost always work this way with sublists. The moment I consider i set value on the sublist, instant dynamic mode not looking back
for me honestly working non-dynamically has only two reasons - a) you're not changing sublists, b) you're loading to change some stuff... (but even for stuff passed to N/render I would work in dynamic mode...stalbert
09/01/2021, 2:46 PMJC
09/01/2021, 2:53 PMSciuridae54696d
09/01/2021, 2:55 PMJC
09/02/2021, 4:32 AM