【发布时间】:2017-03-31 23:43:57
【问题描述】:
所以,这就是我正在做的事情(现在硬编码大多数值,只是想学习 NS):
var vendorBillPayment = record.create({
type: record.Type.VENDOR_PAYMENT,
isDynamic: false,
defaultValues: {
entity: 45
}
})
vendorBillPayment.setValue({
fieldId: 'entityname',
value: "Superior ISP"
})
vendorBillPayment.setValue({
fieldId: 'account',
value: 129
})
vendorBillPayment.setValue({
fieldId: 'currency',
value: 1
})
vendorBillPayment.setValue({
fieldId: 'customform',
value: 45
})
vendorBillPayment.setValue({
fieldId: 'exchangerate',
value: "1.00"
})
var recordId = vendorBillPayment.save({
enableSourcing: false,
ignoreMandatoryFields: true
})
现在,问题从下面的sn-p开始,VendorPayment记录有一个子列表'apply',是支付需要申请的账单列表。
vendorBillPayment.setSublistValue({
sublistId: 'apply',
fieldId: 'internalid',
line: 1,
value: "303"
});
返回的错误是:
error message:{"type":"error.SuiteScriptError","name":"UNEXPECTED_ERROR","message":null,"stack":["anonymous(N/recordService)","<anonymous>(/SuiteScripts/..)"],"cause":{"type":"internal error","code":"UNEXPECTED_ERROR","details":null,"userEvent":null,"stackTrace":["anonymous(N/recordService)","<anonymous>(/SuiteScripts/..)"],"notifyOff":false},"id":"","notifyOff":false}
也就是说,不是很有用的消息。我一直在查看他们的文档,但没有成功。
编辑:原来应用子列表是列表类型。这意味着,不能以编程方式从该子列表中添加/删除行。只是为了编辑现有的行。
除了创建 VENDOR_PAYMENT 记录之外,还有其他方式以编程方式支付供应商账单吗?
【问题讨论】:
-
SuiteScript 2.0 中子列表的第一个索引是
0而不是1;尝试将line设置为0。我认为您还需要检查子列表行上的apply框,因此您还需要在该行上将apply设置为true。 -
@erictgrubaugh 嗨,很抱歉延迟回复,感谢您的回复。现在,关于这个问题 - 不可能使用网络套件上的 VENDOR_PAYMENT 记录来做到这一点。原因是“应用”子列表属于“列表”类型,这意味着您不能动态添加/删除行。您只能编辑现有的行。
-
有趣。虽然我没有专门针对 Vendor Payments 尝试过此操作,但我知道 Customer Payments 不存在此限制。
-
@erictgrubaugh 我想知道,既然您是 NetSuite 专家,还有其他方法可以以编程方式支付供应商账单吗?我首先尝试直接在账单记录上设置状态,结果很快发现状态是一个只读字段。然后,我尝试了 VENDOR_PAYMENT 方法。我脑海中浮现的另一个想法是使用 NS Web 服务,但这会给我的系统引入我宁愿避免的依赖关系(apache 轴等)。您认为还有其他方式可以支付供应商账单吗?
-
如果供应商付款上的
apply子列表不可编写脚本,我不知道还有其他方法可以做到这一点。如果它在 SuiteScript 中不可用,我也不相信它会在 Web 服务中可用。
标签: netsuite suitescript