我创建了一个自定义货币记录,并为系统中的每种货币创建了一条记录(无法使用相同的货币保存新记录)。对于发票,我需要根据发票上的货币从此自定义记录中获取字段。
例如,如果我的发票是美元,那么我需要从“货币名称”字段为“USD”的自定义货币记录中提取“银行帐户#”字段。我假设我需要进行搜索,然后拉出这个值,但我不知道freemarker的语法。
使用Suitescript,我会:
var currencyRecord;
var currency = nlapiGetFieldValue('currency');
var filters = new Array();
var columns = new Array();
filters[0] = new nlobjSearchFilter('custrecord_nco_currency_name', null, 'is', currency);
columns[0] = new nlobjSearchColumn('custrecord_bank_acct_num');
columns[1] = new nlobjSearchColumn('custrecord_nco_currency_name');
var currencyRecord = nlapiSearchRecord('customrecord_nco_currency_symbol', null, filters, columns);
答案 0 :(得分:3)
我认为你不能使用Freemarker进行搜索。根据我的理解,数据需要生活在记录中或一个级别下来。您可能需要做的是创建List / Record>>(您的自定义货币记录)类型的自定义正文字段,并将Currency字段设置为源,然后修改过滤器设置,以便根据该字段自动填充字段货币。
答案 1 :(得分:2)
您可以使用类型为“PRINT”的beforeload UserEvent。将自定义字段添加到未存储的事务或记录的主体中,以便您可以使用beforeload脚本根据您的逻辑使用数据填充字段。 填充该字段的数据可以是文本或JSON,它可以满足您所需的复杂程度。