Я создаю кнопку в рабочем задании с помощью сценария пользовательского события, который создаст корректировку инвентаря с использованием некоторой информации из рабочего задания и подсписка. Кнопка создается с помощью сценария пользовательского события и вызывает клиентский сценарий.
Я провел некоторое тестирование и при сохранении корректировки инвентаря в клиентском скрипте с использованием не пронумерованных предметов, он работает и не выдает мне ошибки. Когда я пытаюсь ввести детали инвентаря для пронумерованных партий, я получаю event.record.getCurrentSublistField не является функцией. Эта ошибка не возникает в моем скрипте, но, похоже, происходит в системном скрипте. Я добавляю сюда свой клиентский скрипт. Есть идеи, почему это происходит?
define (['N / record', 'N / search', 'N / currentRecord', 'N / runtime'],
функция (запись, поиск, currentRecord, время выполнения) {
function pageInit(context) {
}
function buildSecondaryItems(){
var currentWo = currentRecord.get();
var currentId = currentWo.id;
var account = runtime.getCurrentScript().getParameter('custscript_cab_accountparamater');
console.log(currentId);
console.log(account);
var workOrder = record.load({
type: "workorder",
id: currentId
});
var location = workOrder.getValue({
fieldId: 'location'
})
var batch = workOrder.getValue({
fieldId: 'custbody_cab_processingbatchfield'
})
var batchName = workOrder.getText({
fieldId: 'custbody_cab_processingbatchfield'
})
var assembly = workOrder.getValue({
fieldId: 'assemblyitem'
})
var subsidiary = workOrder.getValue({
fieldId: 'subsidiary'
})
console.log("Location: "+location);
console.log("Batch: "+batch);
console.log("Batch Name: "+batchName);
console.log("Assembly: "+ assembly);
console.log("Subsidiary: "+ subsidiary);
// Getting information from the related Assembly build on the Work order
var assemblyBuildSearch = search.load({id: 'customsearch274'})
var firstResult = runRelatedRecordSearch(assemblyBuildSearch,currentId)
var glImpact = firstResult.getValue(assemblyBuildSearch.columns[1]);
var qtyBuilt = firstResult.getValue(assemblyBuildSearch.columns[2]);
var date = firstResult.getValue(assemblyBuildSearch.columns[3]);
console.log("gl Impact: " + glImpact);
console.log("qty Built: " + qtyBuilt);
console.log("date: " + date);
// Creating the Inventory Adjustment
var inventoryAdjustment = record.create({
type: "inventoryadjustment",
isDynamic: true,
defaultValues :null
});
// Setting Main value on Inventory Adjustment
inventoryAdjustment.setValue({
fieldId: 'subsidiary',
value: subsidiary
});
inventoryAdjustment.setValue({
fieldId: 'trandate',
value: new Date(date)
});
inventoryAdjustment.setValue({
fieldId: 'account',
value: account
});
inventoryAdjustment.setValue({
fieldId: 'adjlocation',
value: location
});
inventoryAdjustment.setValue({
fieldId :'custbody_cab_processingbatchfield',
value: batch
});
inventoryAdjustment.setValue({
fieldId :'custbody_cab_adjustmenttype',
value: '2'
});
inventoryAdjustment.setValue({
fieldId :'custbody_cab_invadjworkorder',
value: currentId
});
//Entering the first line on the inventory Adjustment
inventoryAdjustment.selectNewLine({
sublistId: 'inventory'
});
inventoryAdjustment.setCurrentSublistValue({
sublistId: 'inventory',
fieldId: 'item',
value: assembly
});
inventoryAdjustment.setCurrentSublistValue({
sublistId: 'inventory',
fieldId: 'location',
value: location
});
inventoryAdjustment.setCurrentSublistValue({
sublistId: 'inventory',
fieldId: 'adjustqtyby',
value: qtyBuilt
});
inventoryAdjustment.setCurrentSublistValue({
sublistId: 'inventory',
fieldId: 'unitcost',
value: glImpact/qtyBuilt
});
//Selecting the inventory detail subrecord and setting the values.
var subrecord = inventoryAdjustment.getCurrentSublistSubrecord({
sublistId: 'inventory',
fieldId: 'inventorydetail'
});
subrecord.selectNewLine({
sublistId: 'inventoryassignment'
});
subrecord.setCurrentSublistValue({
sublistId: 'inventoryassignment',
fieldId: 'issueinventorynumber',
value: "ALT1"
});
subrecord.setCurrentSublistValue({
sublistId: 'inventoryassignment',
fieldId: 'inventorystatus',
value: '1'
});
subrecord.setCurrentSublistValue({
sublistId: 'inventoryassignment',
fieldId: 'quantity',
value: qtyBuilt
});
// Committing the inventory detail and first line
subrecord.commitLine({
sublistId: 'inventoryassignment'
});
inventoryAdjustment.commitLine({
sublistId: 'inventory'
});
var inventoryAdjustmentID = inventoryAdjustment.save({
enableSourcing: true,
ignoreMandatoryFields: false
});
}
function runRelatedRecordSearch(assemblyBuildSearch,currentId){
var filter = search.createFilter({ // Creates filter on created from field
name:'createdfrom',
operator: search.Operator.IS,
values: currentId
})
assemblyBuildSearch.filters.push(filter);
var results = assemblyBuildSearch.run();
var firstResult = results.getRange({
start: 0,
end: 1
})[0];
return firstResult;
}
return {
pageInit: pageInit,
buildSecondaryItems: buildSecondaryItems
};
});
Заранее благодарю