2017-03-31 28 views
7

所以,这是我在做什么(硬编码现在最值的,只是想学习NS):以编程方式在NetSuite中创建PAYMENT_VENDOR记录?

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 
     }) 

现在,问题在下面的代码片段开始,VendorPayment记录有一个子表“应用” ,这是付款需要应用的账单清单。

 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记录之外,是否有另一种编程方式支付供应商帐单?

+0

SuiteScript 2.0中子列表的第一个索引是'0'而不是'1';尝试将'line'设置为'0'。我想你还需要检查子列表行中的'apply'框,所以你需要在行上将'apply'设置为'true'。 – erictgrubaugh

+0

@erictgrubaugh嗨,对不起延迟回复,并感谢您的回复。现在,关于这个问题 - 不可能通过netsuite上的VENDOR_PAYMENT记录来完成。原因是“apply”子列表的类型是“list”,这意味着你不能动态添加/删除行。您只能编辑现有的行。 – user2187935

+0

有趣。尽管我没有专门与Vendor Payments一起尝试过此操作,但我知道客户付款不存在此限制。 – erictgrubaugh

回答

0

根据您提供的代码很难确定,但我看到两个潜在问题。首先,根据NetSuite的文档,Apply子列表被列为脚本。你可以看到在供应商付款在这里记录浏览器中列出的子表:https://system.na1.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2016_1/script/record/itemfulfillment.html 你也可以看到,在编写脚本的子列表列表这里的“应用”子表是专门叫了一声:https://system.na2.netsuite.com/app/help/helpcenter.nl?fid=chapter_N3206326.html

现在到代码问题。如前所述,这并不完全清楚,但根据您上面提供的内容,似乎您试图在保存后在记录上添加/编辑'apply'子列表。您需要在保存之前添加子列表值,或者在设置子列表值之前重新加载记录。我可以看到的第二个问题是,您正在尝试设置您无法执行的子列表记录的“内部标识”。我可能是错的,但我不知道NetSuite中的任何记录,自定义或其他允许设置'internalid'的记录。我可以提供更多清晰的方向,用更大的样本编写您正在编写的脚本,但到目前为止,您可以从您的示例中看到这一切。