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
});
我一直在尝试将 "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
});