How to add key and value in the response we got from rest message?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2025 01:41 AM - edited 02-20-2025 01:47 AM
Hi Team,
I am fetching response from restmessage but from there I am getting company name, start date and end date,
start date and end date I am able to populate on change form, but for company name which is reference field I am trying to fetch sys_id from the same script include which is I am using to call rest message and fetch the responseBody and I am passing that responseBody to the client side.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2025 03:17 AM
SCRIPT INCLUDE:-
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2025 03:59 AM
Hi @Prathamesh Chav ,
try this
Script Include:
var clmCrmIntegration = Class.create();
clmCrmIntegration.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getCrnNum: function() {
var crn_number = this.getParameter('clmcrn');
try {
var r = new sn_ws.RESTMessageV2('CLM Integration', 'Default GET');
r.setStringParameterNoEscape('Apttus__FF_Agreement_Number__c', crn_number);
// r.setStringParameterNoEscape('Apttus__FF_Agreement_Number__c', '00054549.0');
var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
if (httpStatus == 200) {
responseBody = JSON.parse(responseBody);
responseBody.companySysID = this.getCompanySysId(responseBody.records[0].Account_Name__c);
return responseBody;
}
return null;
} catch (ex) {
var message = ex.message;
}
},
getCompanySysId: function(compayName) {
var gr = new GlideRecord('core_company');
gr.addEncodedQuery('nameSTARTSWITH' + compayName);
gr.setLimit(1);
gr.query()
if (gr.next()) {
return gr.getValue('sys_id');
}
return ''; //else return empty value
},
type: 'clmCrmIntegration'
});
Client Script:
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
g_form.clearMessages();
var gr = new GlideAjax("global.clmCrmIntegration");
gr.addParam('sysparm_name', "getCrnNum"); //Method
gr.addParam('clmcrn', newValue); //Parameters
gr.getXMLAnswer(getResponse);
function getResponse(response) {
// var jsonString = JSON.parse(response);
// jsonString.toString();
var jsonObj = JSON.parse(response);
var size = jsonObj.totalSize;
if (size != 0) {
//var agreementNumber = jsonObj.records[0].Apttus__FF_Agreement_Number__c;
var startDate = jsonObj.records[0].Apttus__Contract_Start_Date__c;
var endDate = jsonObj.records[0].Apttus__Contract_End_Date__c;
var clmComp = jsonObj.companySysID;
//var sys_companySNow = jsonObj.records["0"].sys_idd;
g_form.addInfoMessage(JSON.stringify(jsonObj)); // you will see this info message
//g_form.addInfoMessage(agreementNumber + " Start Date :-" + startDate + " End Date :-" + endDate + " Size : " + size) ;
g_form.setValue("start_date", startDate);
g_form.setValue("end_date", endDate);
// g_form.addInfoMessage(jsonObj)
//g_form.setValue("companyname", sys_companySNow);
//g_form.setValue("companyname", clmComp);
} else {
g_form.addErrorMessage("InValid CRN, Please enter a valid CRN");
g_form.showFieldMsg("consultants_employeecode", "InValid CRN, Please enter a valid CRN", "error");
g_form.setValue("start_date", "");
g_form.setValue("end_date", "");
g_form.setValue("ad_id_end_date", "");
}
}
}
Please mark my answer as helpful/correct if it resolves your query.
Regards,
Chaitanya
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2025 04:54 AM - edited 02-20-2025 04:55 AM
Hi @Chaitanya ILCR ,
Here how will I fetch company name from response into lookup to fetch sys_id, in script include
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2025 05:05 AM
Hi @Prathamesh Chav ,
responseBody.companySysID = this.getCompanySysId(responseBody.records[0].Account_Name__c);
this line returns the sysid
Please mark my answer as helpful/correct if it resolves your query.
Regards,
Chaitanya
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2025 04:14 AM
enhance as this
Script Include:
var clmCrmIntegration = Class.create();
clmCrmIntegration.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getCrnNum: function() {
var crn_number = this.getParameter('clmcrn');
var obj = {};
try {
var r = new sn_ws.RESTMessageV2('CLM Integration', 'Default GET');
r.setStringParameterNoEscape('Apttus__FF_Agreement_Number__c', crn_number);
var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
if (httpStatus == 200) {
var startDate = jsonObj.records[0].Apttus__Contract_Start_Date__c;
var endDate = jsonObj.records[0].Apttus__Contract_End_Date__c;
obj['start'] = startDate.toString();
obj['end'] = endDate.toString();
var accountName = responseBody.records[0].Account_Name__c;
var gr = new GlideRecord('core_company');
gr.addEncodedQuery('nameSTARTSWITH' + accountName);
gr.setLimit(1);
gr.query()
if (gr.next()) {
obj['company'] = gr.getUniqueValue();
}
return JSON.stringify(obj);
}
return '';
} catch (ex) {
var message = ex.message;
gs.error("Error in getCrnNum: " + message);
}
},
type: 'clmCrmIntegration'
});
Client script:
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
g_form.clearMessages();
var ga = new GlideAjax("global.clmCrmIntegration");
ga.addParam('sysparm_name', "getCrnNum"); // Method
ga.addParam('clmcrn', newValue); // Parameters
ga.getXMLAnswer(function(answer) {
if (answer != '') {
var jsonObj = JSON.parse(answer);
var startDate = jsonObj.start;
var endDate = jsonObj.end;
var accountName = jsonObj.company;
g_form.addInfoMessage("Start Date: " + startDate + ", End Date: " + endDate + ", Account Name: " + accountName);
g_form.setValue("start_date", startDate);
g_form.setValue("end_date", endDate);
g_form.setValue("account_name", accountName);
} else {
g_form.addErrorMessage("Invalid CRN, please enter a valid CRN");
g_form.showFieldMsg("consultants_employeecode", "Invalid CRN, please enter a valid CRN", "error");
g_form.clearValue("start_date");
g_form.clearValue("end_date");
g_form.clearValue("account_name");
}
});
}
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader