Suitescript 从发票转换为客户付款

Suitescript transform from Invoice to Customer Payment

我一直在尝试将 "Invoice" 转换为 "Customer Payment",但没有成功。这是我在测试脚本时遇到的错误。

Account: 36714674
Environment: SandBox
Date & Time: 7/23/2017 8:37 am
Record Type: Sales Order
Internal ID: 697645
Execution Time: 0.00s
Script Usage: 0
Script: Tom Test Invoice
Type: User Event
Function: afterSubmit
Error: JS_EXCEPTION
{"type":"error.SuiteScriptError","name":"USER_ERROR","message":"Please enter value(s) for: Project, Department","stack":["anonymous(N/recordService)","afterSubmit(/SuiteScripts/tom_test_1.js:47)"],"cause":{"type":"internal error","code":"USER_ERROR","details":"Please enter value(s) for: Project, Department","userEvent":"aftersubmit","stackTrace":["anonymous(N/recordService)","afterSubmit(/SuiteScripts/tom_test_1.js:47)"],"notifyOff":false},"id":"","notifyOff":false}

这是我的 suitescript 代码。

  define(["N/log", "N/email", "N/record", "N/render"], function(log, email, record, render) {

   
    function afterSubmit(scriptContext) {
      
     var newOrder = scriptContext.newRecord.id;
     
     
      var objRecord = record.transform({
            fromType: record.Type.SALES_ORDER,
            fromId: newOrder,
            toType: record.Type.ITEM_FULFILLMENT
        });
     
     var fid = objRecord.save();
      
     var objRecord2 = record.transform({
         fromType: record.Type.SALES_ORDER,
         fromId: newOrder,
         toType: record.Type.INVOICE,
         isDynamic: true,
     });
      
      var rid = objRecord2.save();
      
      var objRecord3 = record.transform({
         fromType: record.Type.INVOICE,
         fromId: rid,
         toType: record.Type.CUSTOMER_PAYMENT,
         isDynamic: true,
     });
      
      var rid3 = objRecord3.save();
  
    }

    return {
        afterSubmit: afterSubmit
    };
    
});

正如您在我的代码中看到的那样,我首先从“销售订单”转换为“Fullfillment”,然后从“销售订单”到“发票”以及从“发票”到“客户付款".

部分不工作是从“Invoice”到“Customer Payment”的转换

根据错误,我不知道如何以及在哪里将“项目”和“部门”添加到我的代码。

您可以尝试使用 ignoreMandatoryFields 选项:

var rid3 = objRecord3.save({
    ignoreMandatoryFields: true
});