我正在尝试2.0版的restlet。这或多或少是我第一次使用SuiteScript 2.0。我在试着创建一个供应商付款记录。我已经能够创建一个没有问题的供应商记录,但是当我尝试使用vendorpayment时,我得到一个错误,说“您必须为这笔交易至少输入一个行项目”,这似乎是有意义的。不过,这就是我被困住的地方。我似乎不能在2.0中创建那个子列表项。
我尝试了一些方法,但基本上我是这样创建记录的(类型、isDynamic和defaultValues是此函数中的参数。isDynamic为false):
var rec = record.create({
type: type,
isDynamic: isDynamic,
defaultValues: defaultValues
});
那么我如何使用'rec‘来添加一个事务?我假设它会转到“应用”子列表,所以我尝试了一些类似的方法
rec.selectLine('apply', 0);
rec.setSublistValue({'sublistId': 'apply', 'fieldId': 'doc', 'value': 'blah', 'line': 0});
但是我得到一个错误,说“无法在object DeferredDynamicRecord中找到函数selectLine”。我也尝试过各种其他的代码片段,但都没有效果。我不确定我的做法是否正确。提前谢谢。
发布于 2017-05-05 02:24:53
仅根据您提供的代码,有几点需要指出。首先,对于这种类型的记录,您需要在defaultValue属性中设置'entity‘值,以便有一个'apply’列表可用来获取或设置值。您的另一个选择是将'isDynamic‘设置为true。这样,在访问'apply‘列表之前,您将再次需要设置'entity’值。
下一个问题是rec.selectLine()调用。当记录不处于动态模式时,您不需要执行selectLine(),因此,如果执行selectLine(),则必须使用setCurrentSublistValue/Text()调用。
最后,您不能在应用列表中设置值'doc‘。这不是可以动态添加到的销售订单上的项目子列表之类的子列表。它更像是item fulfillment上的列表,它限制了您在设置值方面的选项。您只能影响账单付款屏幕上的应用列表中的以下字段:
‘'apply'-这是最左边的复选框。' Disc‘-Disc Taken字段。‘'amount’-付款字段。
我建议在UI中运行创建账单支付的过程,以便您在尝试修复脚本之前,从时间的角度了解该过程需要如何工作。祝你好运,我希望这对你有帮助。
https://stackoverflow.com/questions/43767837
复制