The CreatorCon Call for Content is officially open! Get started here.

How to add key and value in the response we got from rest message?

Prathamesh Chav
Tera Contributor

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.

 

PrathameshChav_0-1740044470079.png

 

 


 
Updating Media

 

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();
}
catch(ex) {
 var message = ex.message;
}
        if(httpStatus == 200){

             var compSys = new GlideRecord("core_company");
 compSys.addEncodedQuery("nameSTARTSWITH" + responseBody.records[0].Account_Name__c);
 compSys.query();
 if (compSys.next()) {
     var sys_Comp = compSys.sys_id;
 }

//adding new line
responseBody.records[0].sys_idd = sys_Comp;
            return JSON.stringify(responseBody);
        }
       

    },
 
getting this error message
PrathameshChav_1-1740044827032.png

 


 

 

23 REPLIES 23

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){
            return JSON.stringify(responseBody);
        }  

}
catch(ex) {
 var message = ex.message;
}
       
       

    },

    getCompanySysId: function(){

    var clmComp = this.getCrnNum;
    return clmComp;


    },

    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(jsonString);
   
   
        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.records[0].sysId;
        //var sys_companySNow = jsonObj.records["0"].sys_idd;
        g_form.addInfoMessage(jsonObj);


         //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", "");
        }

   
}
   
}
   
 
RESPONSE ;-
 
{"totalSize":1,"done":true,"records":[{"attributes":{"type":"Apttus__APTS_Agreement__c","url":"/services/data/v58.0/sobjects/Apttus__APTS_Agreement__c/a08O2000004i9TVIAY"},"Apttus__FF_Agreement_Number__c":"00055087.1","Apttus__Contract_Start_Date__c":"2023-11-04","Apttus__Contract_End_Date__c":"2024-11-03","Account_Name__c":"FIREWORKS PRODUCTIONS","Apttus__Status__c":"Activated"}]}
 
PrathameshChav_0-1740050209893.png

 

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

Hi @Chaitanya ILCR ,

 

Here how will I fetch company name from response into lookup to fetch sys_id, in script include

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

@Prathamesh Chav 

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.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader