#javascript #netsuite #suitescript2.0
#javascript #netsuite #suitescript2.0
Вопрос:
Дорогие,
Я создал пользовательскую запись для счетов с именем InvoiceHead и добавил сценарий пользовательского события с точкой входа afterSubmit, который создает стандартную запись счета. Однако, когда я сохраняю запись в коде, она выдает следующую ошибку.
{
"type": "error.SuiteScriptError",
"name": "USER_ERROR",
"message": "Record cannot be saved. Transaction nexus Germany (4) is not valid for transaction subsidiary ().",
"stack": [
"<anonymous>(N/record/recordService.js)",
"afterSubmit(SS2_UES_FormApi_00001.js$16539$debugger.user:62)",
"<anonymous>(SS2_UES_FormApi_00001.js$16539$debugger.wrap:26)",
"<anonymous>(SS2_UES_FormApi_00001.js$16539$debugger.wrap:17)",
"<anonymous>(SS2_UES_FormApi_00001.js$16539$debugger.wrap:34)",
"<anonymous>(SS2_UES_FormApi_00001.js$16539$debugger.wrap:1)"
],
"cause": {
"type": "internal error",
"code": "USER_ERROR",
"details": "Record cannot be saved. Transaction nexus Germany (4) is not valid for transaction subsidiary ().",
"userEvent": "aftersubmit",
"stackTrace": [
"<anonymous>(N/record/recordService.js)",
"afterSubmit(SS2_UES_FormApi_00001.js$16539$debugger.user:62)",
"<anonymous>(SS2_UES_FormApi_00001.js$16539$debugger.wrap:26)",
"<anonymous>(SS2_UES_FormApi_00001.js$16539$debugger.wrap:17)",
"<anonymous>(SS2_UES_FormApi_00001.js$16539$debugger.wrap:34)",
"<anonymous>(SS2_UES_FormApi_00001.js$16539$debugger.wrap:1)"
],
"notifyOff": false
},
"id": "",
"notifyOff": false,
"userFacing": false
}
Это мой код:
var objRec = record.create({ type: record.Type.INVOICE, isDynamic: true });
objRec.setValue({ fieldId: 'trandate', value: invcHeadValues[0], ignoreFieldChange: true });
objRec.setValue({ fieldId: 'approvalstatus', value: invcHeadValues[1], ignoreFieldChange: true });
objRec.setValue({ fieldId: 'total', value: invcHeadValues[2], ignoreFieldChange: true });
objRec.setValue({ fieldId: 'tranid', value: invcHeadValues[3], ignoreFieldChange: true });
objRec.setValue({ fieldId: 'entity', value: invcHeadValues[4], ignoreFieldChange: true });
var count = nr.getLineCount({ sublistId: custSLID })
for(var i = 0; i < count; i ) {
custInvcLineRecFlds.forEach(function (fld){ invcLineValues.push(nr.getSublistValue({ sublistId: custSLID, fieldId: fld, line: i })); });
objRec.selectNewLine({ sublistId: sublistID });
objRec.setCurrentSublistValue({ sublistId: sublistID, fieldId: 'id', value: String(invcLineValues[0]), forceSyncSourcing: true });
objRec.setCurrentSublistValue({ sublistId: sublistID, fieldId: 'item', value: String(invcLineValues[1]), forceSyncSourcing: true });
objRec.setCurrentSublistValue({ sublistId: sublistID, fieldId: 'item_display', value: String(invcLineValues[2]), forceSyncSourcing: true });
objRec.setCurrentSublistValue({ sublistId: sublistID, fieldId: 'quantity', value: Number(invcLineValues[3]), forceSyncSourcing: true });
objRec.setCurrentSublistValue({ sublistId: sublistID, fieldId: 'rate', value: Number(invcLineValues[4]), forceSyncSourcing: true });
objRec.setCurrentSublistValue({ sublistId: sublistID, fieldId: 'amount', value: Number(invcLineValues[5]), forceSyncSourcing: true });
objRec.commitLine({ sublistId: sublistID });
}
//when this executes the error happens
var recordId = objRec.save({ enableSourcing: true, ignoreMandatoryFields: true });
Что-то не так с моим кодом?
Ответ №1:
Я отредактировал свой код и решил переключиться с использования динамического режима на стандартный режим
Это код, который работает сейчас:
var objRec = record.create({ type: record.Type.INVOICE, isDynamic: false });
objRec.setValue({ fieldId: 'trandate', value: invcHeadValues[0], ignoreFieldChange: true });
objRec.setValue({ fieldId: 'approvalstatus', value: invcHeadValues[1], ignoreFieldChange: true });
objRec.setValue({ fieldId: 'tranid', value: invcHeadValues[3], ignoreFieldChange: true });
objRec.setValue({ fieldId: 'custbody_paymentmethod_', value: invcHeadValues[4], ignoreFieldChange: true });
objRec.setValue({ fieldId: 'entity', value: invcHeadValues[5], ignoreFieldChange: true });
var count = nr.getLineCount({ sublistId: custSLID })
for(var i = 0; i < count; i ) {
custInvcLineRecFlds.forEach(function (fld){ invcLineValues.push(nr.getSublistValue({ sublistId: custSLID, fieldId: fld, line: i })); });
objRec.insertLine({ sublistId: sublistID, line: i, ignoreRecalc: true });
objRec.setSublistValue({ sublistId: sublistID, fieldId: 'id', line: i, value: String(invcLineValues[0]) });
objRec.setSublistValue({ sublistId: sublistID, fieldId: 'item', line: i, value: String(invcLineValues[1]) });
objRec.setSublistValue({ sublistId: sublistID, fieldId: 'item_display', line: i, value: String(invcLineValues[2]) });
objRec.setSublistValue({ sublistId: sublistID, fieldId: 'quantity', line: i, value: String(invcLineValues[3]) });
objRec.setSublistValue({ sublistId: sublistID, fieldId: 'rate', line: i, value: String(invcLineValues[4]) });
objRec.setSublistValue({ sublistId: sublistID, fieldId: 'amount', line: i, value: String(invcLineValues[5]) });
}
var recordId = objRec.save({ enableSourcing: true, ignoreMandatoryFields: true });