当结算时间表运行时,它会自动从销售订单生成发票。发生这种情况时 - 如何在销售订单上创建一个允许我在代码中加载相应发票的链接?
我需要这样,所以我可以从发票中获取几个字段值,但我无法直接从另一个看似与销售订单相关的实体访问发票。
编辑1:
var fil = [];
fil[0] = new nlobjSearchFilter('createdfrom', null, 'is', nlapiGetRecordId())
var col = [];
col[0] = new nlobjSearchColumn('internalid');
var invoices = nlapiSearchRecord('invoice', null, fil, col);
nlapiLogExecution('DEBUG', 'field val', invoices);
使用正确的语法抛出无效运算符:createdfrom。
答案 0 :(得分:3)
虽然在销售订单上添加链接是可行的解决方案,但它不是您唯一的选择。或者,您可以搜索createdfrom
字段是销售订单的内部ID的发票。像SuiteScript 1.0中的东西:
var invoices = nlapiSearchRecord('invoice', null,
[['createdfrom', 'is', nlapiGetRecordId()]],
[/* create search columns for the fields you need off the invoice */]
) || [];
或在2.0中:
var invoices = search.create({
"type": search.Type.INVOICE,
"filters": [['createdfrom', 'is', context.currentRecord.id]],
"columns": [/* create search columns for the fields you need off the invoice */]
}).run().each(processResult);
这将为您提供从您的销售订单(可能只有1)创建的所有发票的列表。
如果您认为需要指向销售订单上的发票的链接,则可以添加自定义正文字段,然后在发票记录上创建一个用户事件,该记录将填充此新字段,其中包含createdfrom
值。在提交活动之前。但是,如果您的销售订单通过多个发票支付,会发生什么?