概述:
我正在研究Netsuite 2019.2。
使用Suitescript 2.0,需要创建VendorPayment记录。
我使用了'N / record'模块将vendorPayment创建为动态模式。
但是,基于Suitescript文档。
动态模式:当SuiteScript 2.0脚本创建,复制,加载或以动态模式转换记录,记录的主体字段和子列表订单项的来源,计算和验证均在即时的。动态模式下的记录模拟记录的行为在用户界面中。”
[当我在UI中创建供应商付款时。我在“应用”列表中获得了指定供应商的5笔交易。
但是,当我使用以下代码在Suitescript中创建供应商付款时:
var billPayment = record.create({
type: record.Type.VENDOR_PAYMENT, isDynamic: true, defaultValues: { entity: vendorPaymentModel.entity }
});
并访问子列表“应用”行数,按预期,我得到了5个事务:
var numberOfTransactions = billPayment.getLineCount({ sublistId:'apply' });
问题:
[当我尝试使用以下两种方法之一访问子列表事务行时,我得到空值。
for (var i = 0; i < numberOfTransactions; i++) {
var apply = billPayment.getSublistValue({ sublistId: 'apply', fieldId: 'apply', line: i });
var internal = billPayment.getSublistValue({ sublistId: 'apply', fieldId: 'internalid', line: i });
var transactionType = billPayment.getSublistValue({ sublistId: 'apply', fieldId: 'trantype', line: i });
var amountDue = billPayment.getSublistValue({ sublistId: 'apply', fieldId: 'refnum', line: i });
var paymentAmount = billPayment.getSublistValue({ sublistId: 'apply', fieldId: 'amount', line: i });
var transactionDate = billPayment.getSublistValue({ sublistId: 'apply', fieldId: 'applydate', line: i });
}
所有值都是空的,最后一行除外。
我试图切换到使用第二种方法,其中:
Record.selectLine(options]
Record.getCurrentSublistValue(options)
Record.commitLine(options]
但是它也不起作用。
请任何帮助,不胜感激。如果您需要其他说明或屏幕截图,请告诉我。
您是否试图获取多个子列表值?我阅读for循环的方式表明,您希望应用,内部等有多个值。但是您说您只会得到1个值,而不是5个。我认为这是因为例如当i = 1时,旧值( apply的新值(第1行)将覆盖apply的第0行)。也许尝试使用数组来存储每个数组的所有值(应用,内部等)。
尝试:
//empty arrays to hold values
var applys = newArray();
var internals = newArray();
var transactionTypes = newArray();
var amountDues = newArray();
var paymentAmounts = newArray();
var transactionDate = new array();
for (var i = 0; i < numberOfTransactions; i++) {
//for each line get the value
var apply = billPayment.getSublistValue({ sublistId: 'apply', fieldId: 'apply', line: i });
var internal = billPayment.getSublistValue({ sublistId: 'apply', fieldId: 'internalid', line: i });
var transactionType = billPayment.getSublistValue({ sublistId: 'apply', fieldId: 'trantype', line: i });
var amountDue = billPayment.getSublistValue({ sublistId: 'apply', fieldId: 'refnum', line: i });
var paymentAmount = billPayment.getSublistValue({ sublistId: 'apply', fieldId: 'amount', line: i });
var transactionDate = billPayment.getSublistValue({ sublistId: 'apply', fieldId: 'applydate', line: i });
//now save the current values in the array before getting the next set of values
applys.push(apply);
internals.push(internal);
transactionTypes.push(transactionType);
amountDues.push(amountDue);
paymentAmounts.push(paymentAmount);
transactionDate.push(transactionDate);
}
稍后在您的代码中,如果您现在调用“ apply”,则必须进行一个for循环并调用“ applys [x]”
我是此站点的新手,并且是使用NetSuite中的脚本的新手,但希望对您有所帮助/为您工作。