Archie Kawmongkolsi
04/08/2022, 7:39 PMfunction setCancelledSOextID()
{
var record = nlapiLoadRecord(nlapiGetRecordType()), nlapiGetRecordId());
how do i search for status of cancelled?
nlapiSubmitField ("SalesOrder", record, "externalid", record + "_cancelled");
}
Hey all, I'm pretty new at this and I'm trying to write a trigger on Sales Order that sets external ID to append _cancelled to the end of the external ID.
wondering if anyone can shine some light here. I think i'm way off base here
The logic I want is basically when someone sets status to Cancelled, change external Id to internal id + "_cancelled".battk
04/08/2022, 7:42 PMArchie Kawmongkolsi
04/08/2022, 7:48 PMfunction setCancelledSOextID()
{
var recordStatus = nlapiGetFieldText('Status');
var externalidvalue = nlapiGetFieldText('externalid');
var record = nlapiLoadRecord(nlapiGetRecordType()), nlapiGetRecordId());
var newexternalid = record + "_Cancelled";
if (recordStatus = "Cancelled" && externalid != newexternalid){
nlapiSubmitField ("SalesOrder", record, "externalid", newexternalid);
}
}
battk
04/08/2022, 7:50 PMArchie Kawmongkolsi
04/08/2022, 7:51 PMvar recordStatus = nlapiGetFieldText('Status');
var externalidvalue = nlapiGetFieldText('externalid');
battk
04/08/2022, 7:51 PMArchie Kawmongkolsi
04/08/2022, 8:36 PMThis works
function loadCurrent() {
recordId = nlapiGetRecordId();
recordType = nlapiGetRecordType();
varrecord = nlapiLoadRecord(recordType,recordId);
varinternalid = varrecord.getFieldValues('id');
varexternalid = varrecord.getFieldValues('externalid');
varstatus = varrecord.getFieldValue('status');
newexternalid = varinternalid + '_Cancelled';
if(varstatus = 'Cancelled' && varexternalid != newexternalid){
varrecord.setFieldValue('externalid',newexternalid);
nlapiSubmitRecord(varrecord);
return 'Changed';
}
else{
return 'No Change';
}
}
loadCurrent()
battk
04/08/2022, 9:02 PMvarinternalid
Archie Kawmongkolsi
04/08/2022, 9:03 PMbattk
04/08/2022, 9:16 PMArchie Kawmongkolsi
04/08/2022, 9:20 PMfunction loadCurrent() {
var recordId = nlapiGetRecordId();
var recordType = nlapiGetRecordType();
var varrecord = nlapiLoadRecord(recordType,recordId);
var varinternalid = varrecord.getFieldValues('id');
var varexternalid = varrecord.getFieldValues('externalid');
var varstatus = varrecord.getFieldValue('status');
var newexternalid = varinternalid + '_Cancelled';
alert(varexternalid);
if(varexternalid != null){
if(varstatus == "Cancelled" && varexternalid != newexternalid){
varrecord.setFieldValue('externalid',newexternalid);
nlapiSubmitRecord(varrecord);
return 'Changed - '+ varstatus + ' external id current ' + varexternalid + ' new ' + newexternalid;
}
else{
return 'No Change';
}
}
}
loadCurrent()
battk
04/08/2022, 9:40 PMArchie Kawmongkolsi
04/08/2022, 9:45 PMbattk
04/08/2022, 9:52 PMArchie Kawmongkolsi
04/08/2022, 9:54 PMbattk
04/08/2022, 9:56 PMArchie Kawmongkolsi
04/08/2022, 10:00 PMbattk
04/08/2022, 10:08 PMvar varinternalid = varrecord.getFieldValues('id');
would make varinternalid
equal to something like ['123']Archie Kawmongkolsi
04/08/2022, 10:12 PMbattk
04/08/2022, 10:12 PM['123'] + '_Cancelled'
getFieldValues
is for use on multi-select fields, which have many values, so it can be represented as an array of stringsArchie Kawmongkolsi
04/08/2022, 10:15 PMfunction loadCurrent() {
var recordId = nlapiGetRecordId();
var recordType = nlapiGetRecordType();
var varrecord = nlapiLoadRecord(recordType,recordId);
var varinternalid = varrecord.getFieldValue('id');
var varexternalid = varrecord.getFieldValue('externalid');
var varstatus = varrecord.getFieldValue('status');
var newexternalid = varinternalid + '_Cancelled';
if(recordType == 'salesorder' && varexternalid != null){
if(varstatus == 'Cancelled' && varexternalid != newexternalid){
varrecord.setFieldValue('externalid',newexternalid);
nlapiSubmitRecord(varrecord);
return 'External ID Changed';
}
else{
return 'No External ID Change';
}
}
}
battk
04/08/2022, 10:21 PMif(recordType == 'salesorder' && varexternalid != null){
is unnecessaryArchie Kawmongkolsi
04/08/2022, 10:28 PMvarexternalid != newexternalid
This would not cover null case would it? say newexternalid is not nullbattk
04/08/2022, 10:29 PMif(varstatus === 'Cancelled' && varexternalid !== newexternalid){
Archie Kawmongkolsi
04/08/2022, 10:30 PMbattk
04/08/2022, 10:31 PMArchie Kawmongkolsi
04/08/2022, 10:32 PMbattk
04/08/2022, 10:34 PMArchie Kawmongkolsi
04/08/2022, 10:35 PMbattk
04/08/2022, 10:35 PMif(recordType == 'salesorder' && varexternalid != null && varstatus == 'Cancelled' && varexternalid != newexternalid){
varrecord.setFieldValue('externalid',newexternalid);
nlapiSubmitRecord(varrecord);
}
Archie Kawmongkolsi
04/08/2022, 10:36 PMif(status == 'Cancelled' && externalId != newExternalId && externalId != null){
nlapiSubmitField(recordType,recordId,'externalid',newExternalId);
}
function loadCurrent() {
var recordId = nlapiGetRecordId();
var recordType = nlapiGetRecordType();
var record = nlapiLoadRecord(recordType,recordId);
var internalId = record.getFieldValue('id');
var externalId = record.getFieldValue('externalid');
var status = record.getFieldValue('status');
var newExternalId = internalId + '_Cancelled';
if(status == 'Cancelled' && externalId != newExternalId && externalId != null){
nlapiSubmitField(recordType,recordId,'externalid',newExternalId);
}
}
battk
04/08/2022, 10:37 PMvar internalId = record.getFieldValue('id');
is the same as
var recordId = nlapiGetRecordId();
Archie Kawmongkolsi
04/08/2022, 10:41 PMbattk
04/08/2022, 10:50 PMArchie Kawmongkolsi
04/08/2022, 10:57 PM