I've been trying to transform an "Invoice" to "Customer Payment" without any luck. Here's the error I got when I test my script.
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}
Here's my suitescript code.
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
};
});
As you see in my code I first transform from "Sales Order" to "Fullfillment" and from "Sales Order" to "Invoice" and from "Invoice" to "Customer Payment".
The part is not working is the transform from "Invoice" to "Customer Payment"
According to the error, I don't know how and where to add the "Project" and "Department" to my code.