I am trying to create a journal entry on NetSuite using its SuiteScript API.
Here is my code.
export function post() {
var rec = record.create({
type: record.Type.JOURNAL_ENTRY,
isDynamic: true,
});
rec.setValue({
fieldId: "memo",
value: "from api ",
});
rec.setValue({
fieldId: "type",
value: "Journal",
});
rec.setText({
fieldId: "type",
text: "Journal",
});
rec.setValue({ fieldId: "transactionnumber", value: "158" });
rec.setValue({ fieldId: "subsidiary", value: "2" });
rec.setText({ fieldId: "subsidiary", text: "Headquarters : United States" });
rec.setValue({ fieldId: "postingperiod", value: "238" });
rec.setText({ fieldId: "postingperiod", text: "Dec 2021" });
rec.setValue({ fieldId: "customform", value: "30" });
rec.setText({ fieldId: "customform", text: "Standard Journal Entry" });
rec.setValue({ fieldId: "exchangerate", value: "1.00" });
//-------------------------debit------------------------------------------
//start a new line
rec.selectNewLine({
sublistId: "line",
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "account",
value: "1",
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "accounttype",
value: "AcctRec",
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "account_display",
value: "1100 Accounts Receivable",
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "debit",
value: "200",
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "credit",
value: "",
});
//close of line
rec.commitLine({
sublistId: "line",
});
//----------------------------credit---------------------------------------
//new line again
rec.selectNewLine({
sublistId: "line",
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "account",
value: "10",
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "accounttype",
value: "OthCurrAsset",
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "account_display",
value: "1200 Inventory",
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "credit",
value: "200",
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "debit",
value: "",
});
rec.commitLine({
sublistId: "line",
});
var recordId = rec.save();
//-------------------------------------------------------------------
return JSON.stringify(recordId);
}
Everything looks good for me but I am getting the following error
{
"error": {
"code": "INVALID_FLD_VALUE",
"message": "{\"type\":\"error.SuiteScriptError\",\"name\":\"INVALID_FLD_VALUE\",\"message\":\"You have entered an Invalid Field Value 1 for the following field: account\",\"stack\":[\"anonymous(N/serverRecordService)\",\"post(/SuiteScripts/ssv2/journal_restlet.js:73)\"],\"cause\":{\"type\":\"internal error\",\"code\":\"INVALID_FLD_VALUE\",\"details\":\"You have entered an Invalid Field Value 1 for the following field: account\",\"userEvent\":null,\"stackTrace\":[\"anonymous(N/serverRecordService)\",\"post(/SuiteScripts/ssv2/journal_restlet.js:73)\"],\"notifyOff\":false},\"id\":\"\",\"notifyOff\":false,\"userFacing\":false}"
}
}
Basically which means the account value 1 which I m sending to create line is invalid. But 1 is a valid account id of a Cash account.
This is the response of lines when I call get method.
{
"line": [
{
"scheduletype": "",
"oldstartdate": "",
"entity_display": "",
"memo": "",
"residual": "",
"account_cur": "",
"amortermsrc": "",
"startdate": "",
"tax1acct": "",
"account_cur_fx": "F",
"cleareddate": "",
"custcol_adjustment_tax_code": "",
"grossamt": "",
"custcol_2663_isperson": false,
"credit": "",
"origdebit": 5000,
"item": "",
"sys_parentid": "2040634920479734",
"tax1amt": "",
"amortizationtype": "",
"entity2": "",
"custcol_emirate": "",
"enddate": "",
"entitytype": "Entity",
"lineuniquekey": "89669",
"hasimmutableamortization": false,
"taxcode": "",
"taxcode_display": "",
"custcol_2663_eft_file_format": "",
"cleared": "F",
"line": 0,
"accounttype": "AcctRec",
"kpayitem": "",
"timelineid": "",
"eliminate": false,
"custcol_adjustment_field": "",
"accounteliminate": "F",
"class_display": "",
"giftcertcode": "",
"origcredit": "",
"sys_id": "2040634962802984",
"account_display": "1100 Accounts Receivable",
"btoach": false,
"custcol_2663_lastname": "",
"debit": 5000,
"department": "",
"oldresidual": "",
"class": "",
"ritemcount": "",
"oldenddate": "",
"custcol_2663_firstname": "",
"custcol_far_trn_relatedasset": "",
"department_display": "",
"location_display": "",
"schedule": "",
"schedulenum": "",
"taxrate1": "",
"custcol_2663_companyname": "",
"location": "",
"entity_cur": "",
"account": "6",
"entity": ""
},
{
"scheduletype": "",
"oldstartdate": "",
"entity_display": "",
"memo": "",
"residual": "",
"account_cur": "",
"amortermsrc": "",
"startdate": "",
"tax1acct": "",
"account_cur_fx": "F",
"cleareddate": "",
"custcol_adjustment_tax_code": "",
"grossamt": "",
"custcol_2663_isperson": false,
"credit": 5000,
"origdebit": "",
"item": "",
"sys_parentid": "2040634920479734",
"tax1amt": "",
"amortizationtype": "",
"entity2": "",
"custcol_emirate": "",
"enddate": "",
"entitytype": "Entity",
"lineuniquekey": "89670",
"hasimmutableamortization": false,
"taxcode": "",
"taxcode_display": "",
"custcol_2663_eft_file_format": "",
"cleared": "F",
"line": 1,
"accounttype": "OthCurrAsset",
"kpayitem": "",
"timelineid": "",
"eliminate": false,
"custcol_adjustment_field": "",
"accounteliminate": "F",
"class_display": "",
"giftcertcode": "",
"origcredit": 5000,
"sys_id": "2040634962760922",
"account_display": "1200 Inventory",
"btoach": false,
"custcol_2663_lastname": "",
"debit": "",
"department": "",
"oldresidual": "",
"class": "",
"ritemcount": "",
"oldenddate": "",
"custcol_2663_firstname": "",
"custcol_far_trn_relatedasset": "",
"department_display": "",
"location_display": "",
"schedule": "",
"schedulenum": "",
"taxrate1": "",
"custcol_2663_companyname": "",
"location": "",
"entity_cur": "",
"account": "10",
"entity": ""
}
],
"recmachcustrecord109": [],
"recmachcustrecord_2663_parent_bill": [],
"recmachcustrecord_2663_parent_payment": [],
"recmachcustrecord_2663_transaction": [],
"recmachcustrecord_assetsourcetrn": [],
"recmachcustrecord_deprhistjournal": [],
"recmachcustrecord_far_expinc_transaction": [],
"recmachcustrecord_nsts_rfc_created_trans": [],
"recmachcustrecord_nsts_rfc_related_records": [],
"recmachcustrecord_summary_histjournal": [],
"recmachcustrecord_wmsse_order_no": [],
"recmachcustrecord_wmsse_order_no_clt": [],
"recmachcustrecord_wmsse_ordno": [],
"recmachcustrecord_wmsse_parent_orderno": [],
"recmachcustrecord_wmsse_ship_order": [],
"activities": [],
"mediaitem": [],
"usernotes": [],
"links": [],
"systemnotes": [],
"calls": [],
"tasks": [],
"events": []
}
Here account ids are 6 and 10. I still get the same error even I use 6 and 10 in the account fields. Does anyone know how to solve this issue?
Thanks, Krishna
The problem was subsidiary and my account ids were not matching. Here is the complete code if someone needs it in the future.
export function post() {
var rec = record.create({
type: record.Type.JOURNAL_ENTRY,
isDynamic: true,
});
rec.setValue({
fieldId: "memo",
value: "from api ",
});
rec.setValue({
fieldId: "type",
value: "Journal",
});
rec.setText({
fieldId: "type",
text: "Journal",
});
// rec.setValue({ fieldId: "transactionnumber", value: "158" });
rec.setValue({ fieldId: "subsidiary", value: "2" });
rec.setText({ fieldId: "subsidiary", text: "Headquarters : United States" });
rec.setValue({ fieldId: "postingperiod", value: "238" });
rec.setText({ fieldId: "postingperiod", text: "Dec 2021" });
rec.setValue({ fieldId: "trandate", value: new Date("12/27/2021") });
// rec.setValue({ fieldId: "customform", value: "30" });
// rec.setText({ fieldId: "customform", text: "Standard Journal Entry" });
rec.setValue({ fieldId: "exchangerate", value: "1.00" });
//-------------------------debit------------------------------------------
//start a new line
rec.selectNewLine({
sublistId: "line",
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "account",
value: 363,
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "accounttype",
value: "AcctRec",
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "account_display",
value: "1100 Accounts Receivable",
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "debit",
value: "200",
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "credit",
value: "",
});
//close of line
rec.commitLine({
sublistId: "line",
});
//----------------------------credit---------------------------------------
//new line again
rec.selectNewLine({
sublistId: "line",
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "account",
value: 10,
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "accounttype",
value: "OthCurrAsset",
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "account_display",
value: "1200 Inventory",
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "credit",
value: "200",
});
rec.setCurrentSublistValue({
sublistId: "line",
fieldId: "debit",
value: "",
});
rec.commitLine({
sublistId: "line",
});
var recordId = rec.save();
//-------------------------------------------------------------------
return JSON.stringify(recordId);
}