Interested in a ServiceNow event built for developers? Registration for now[dev]26 is officially open!

What variable type would be required in a catalog item to get the value in object format below

GD11
Tera Expert

I have requirement that value of the variable should be stored in this format with name and quantity of hardware equipment.

 

[
{
"Part": "Standard Laptop",
"Qty": "1"
}
]

1 ACCEPTED SOLUTION

@GD11 

try this

(function execute(inputs, outputs) {
    var body = {};
    var all_comments = [];
    var all_worknotes = [];
    var all_attachments = [];
    var source_info = {};
    var source_contact = {};
    var source_variables = {};
    var varValueArray = [];
    var varValue;
    var OrderVariable1 = {};

    // Capture all the comment information on ticket
    var comments = new GlideRecord('sys_journal_field');
    comments.addQuery('element', 'comments');
    comments.addQuery('element_id', inputs.task_id);
    comments.addQuery('sys_created_by', 'DOES NOT CONTAIN', 'insight');
    comments.query();
    while (comments.next()) {
        var comment = {};
        comment.value = comments.value.toString();
        comment.time = comments.sys_created_on.toString();
        comment.created_by = comments.sys_created_by.toString();
        all_comments.push(comment);
    }

    // Capture all the work note information on ticket
    var work_notes = new GlideRecord('sys_journal_field');
    work_notes.addQuery('element', 'work_notes');
    work_notes.addQuery('element_id', inputs.task_id);
    work_notes.addQuery('sys_created_by', 'DOES NOT CONTAIN', 'insight');
    work_notes.query();
    while (work_notes.next()) {
        var worknote = {};
        worknote.value = work_notes.value.toString();
        worknote.time = work_notes.sys_created_on.toString();
        worknote.created_by = work_notes.sys_created_by.toString();
        all_worknotes.push(worknote);
    }

    // Add comments and work notes to the body
    body.comments = all_comments;
    body.work_notes = all_worknotes;

    // Add in mandatory fields to the body
    body.description = checkForNull(inputs.description);
    body.short_description = checkForNull(inputs.short_description);
    body.correlation_id = checkForNull(inputs.correlation_id);
    body.correlation_display = checkForNull(inputs.correlation_display);
    body.sys_id = checkForNull(inputs.integrated);

    function checkForNull(inputs) {
        if (inputs != null || inputs != undefined) {
            return inputs.toString();
        } else {
            return '';
        }
    }

    // Capture all attachments associated to this ticket
    var attachment = new GlideSysAttachment();
    var agr = attachment.getAttachments('sc_task', inputs.task_id);
    while (agr.next()) {
        var attachment_body = {};
        attachment_body.attachment_name = agr.file_name.toString();
        attachment_body.attachment_type = agr.content_type.toString();
        attachment_body.attachment_content = attachment.getContentBase64(agr);
        all_attachments.push(attachment_body);
    }
    body.attachments = all_attachments;

    // Populates the source_info, source_contact and source_variables objects
    var task = new GlideRecord('sc_task');
    task.addQuery('sys_id', inputs.task_id);
    task.query();
    if (task.next()) {
        source_info.number = task.number.toString();
        source_info.raised_by = task.sys_created_by.toString();
        source_info.priority = task.priority.toString();
        source_info.ritm = task.request_item.number.toString();
        source_contact.name = task.opened_by.name.toString();
        source_contact.email = task.opened_by.email.toString();
        source_contact.phone = task.opened_by.mobile_phone.toString();

        // Collects the variable data from the RITM ticket. Works for Variables and variable sets
        var question_answers = new GlideRecord('sc_item_option_mtom');
        question_answers.addQuery('request_item', task.request_item.sys_id.toString());
        question_answers.orderBy('sc_item_option.order');
        question_answers.query();
        while (question_answers.next()) {
            var varName = question_answers.sc_item_option.item_option_new.name;

            if (question_answers.sc_item_option.item_option_new.type == '8') { // 8 = reference
                varValue = getReferenceValue(question_answers.sc_item_option.item_option_new.reference, question_answers.sc_item_option.value);
            } else if (question_answers.sc_item_option.item_option_new.type == '21') { // 21 = List Collector
                if (question_answers.sc_item_option.value != '') {
                    var list = question_answers.sc_item_option.value.split(",");
                    for (i = 0; i < list.length; i++) {
                        if (i == 0) {
                            varValueArray.push(getReferenceValue(question_answers.sc_item_option.item_option_new.list_table, list[i]));
                        } else {
                            varValueArray.push(' ' + getReferenceValue(question_answers.sc_item_option.item_option_new.list_table, list[i]));
                        }
                    }
                    varValue = varValueArray.toString();
                } else {
                    varValue = '';
                }
            } else if (question_answers.sc_item_option.item_option_new.type == '18') { // 18 = Lookup Select Box
                varValue = getReferenceValue(question_answers.sc_item_option.item_option_new.lookup_table, question_answers.sc_item_option.value);
            } else {
                varValue = question_answers.sc_item_option.value.getDisplayValue();
            }

            if (varName != "" && varValue != "") {
                source_variables[varName] = varValue;
                gs.info('name of field ' + varName + ' and value ' + varValue);
            }
        }

        var mrvsJson = task.request_item.variables.ordervariable1;
        var parsedData = JSON.parse(mrvsJson);
        var arr = [];
        for (var i = 0; i < parsedData.length; i++) {
            var obj = {};
            obj["Part"] = parsedData[i].part; // give the part variable name
            obj["Qty"] = parsedData[i].quantity; // give the quantity variable name
            arr.push(obj);
            gs.info('value of final MRVS ' + JSON.stringify(arr));
        }

        // Concatenate MRVS data into source_variables
        source_variables['OrderVariable1'] = arr;
    }

    function getReferenceValue(table, sys_id) {
        var gr = new GlideRecord(table);
        gr.get(sys_id);
        return gr.getDisplayValue();
    }

    body.source_variables = source_variables;
    body.source_info = source_info;
    body.source_contact = source_contact;
    outputs.body = JSON.stringify(body);
    gs.info('value of output ' + outputs.body);
})(inputs, outputs);

If my response helped please mark it correct and close the thread so that it benefits future readers.

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

View solution in original post

15 REPLIES 15

Hi @Ankur Bawiskar  My logic is failing because there is no value getting populated in 'sc_item_option' for MRVS variables and logic written to get variable values from this table, i also check PDI and there also values for MRVS is not getting populated, so looks like it is OOTB behaviour. shall i create single line text and number variables in this case, if yes, how can we pass two different variable values as Object. can you please advise?

GD11_0-1741173588090.png

GD11_1-1741173683562.png

attaching original code for your reference.

(function execute(inputs, outputs) {
    /* Create the following inputs in your flow to use this script:
    task_id = sys_id of your catalog task
           short_description = short description of your catalog task
           description = description of your catalog task
         correlation_id = sys_id of your catalog task
          correlation_display = number of your catalog task
    integrated = the correlation_id on your catalog task. This assumes that you are storing the Insight fulfillment task sys_id in the correlation_id field on your catalog task.
            */
    var body = {};
    var all_comments = [];
    var all_worknotes = [];
    var all_attachments = [];
    var source_info = {};
    var source_contact = {};
    var source_variables = {};
    //Capture all the comment information on ticket
    var comments = new GlideRecord('sys_journal_field');
    comments.addQuery('element', 'comments');
    comments.addQuery('element_id', inputs.task_id);
    comments.addQuery('sys_created_by', 'DOES NOT CONTAIN', 'insight');
    comments.query();
    while (comments.next()) {
        var comment = {};
        comment.value = comments.value.toString();
        comment.time = comments.sys_created_on.toString();
        comment.created_by = comments.sys_created_by.toString();
        all_comments.push(comment);
    }
    //Capture all the work note information on ticket
    var work_notes = new GlideRecord('sys_journal_field');
    work_notes.addQuery('element', 'work_notes');
    work_notes.addQuery('element_id', inputs.task_id);
    work_notes.addQuery('sys_created_by', 'DOES NOT CONTAIN', 'insight');
    work_notes.query();
    while (work_notes.next()) {
        var worknote = {};
        worknote.value = work_notes.value.toString();
        worknote.time = work_notes.sys_created_on.toString();
        worknote.created_by = work_notes.sys_created_by.toString();
        all_worknotes.push(worknote);
    }
    //Add comments and work notes to the body
    body.comments = all_comments;
    body.work_notes = all_worknotes;
    //Add in mandatory fields to the body
    body.description = checkForNull(inputs.description);
    body.short_description = checkForNull(inputs.short_description);
    body.correlation_id = checkForNull(inputs.correlation_id);
    body.correlation_display = checkForNull(inputs.correlation_display);
    body.sys_id = checkForNull(inputs.integrated);
    function checkForNull(inputs) {
        if (inputs != null || inputs != undefined) {
            return inputs.toString();
        } else {
            return '';
        }
    }
  
    //Capture all attachments associated to this ticket
    var attachment = new GlideSysAttachment();
    var agr = attachment.getAttachments('sc_task', inputs.task_id);
    while (agr.next()) {
        var attachment_body = {};
        attachment_body.attachment_name = agr.file_name.toString();
        attachment_body.attachment_type = agr.content_type.toString();
        attachment_body.attachment_content = attachment.getContentBase64(agr);
        all_attachments.push(attachment_body);
    }
    body.attachments = all_attachments;
    //Populates the source_info, source_contact and source_variables objects
    var task = new GlideRecord('sc_task');
    task.addQuery('sys_id', inputs.task_id);
    task.query();
    if (task.next()) {
        //fields in the source_info and source_contact here are illustrative, you will likely want to amend this to refelct the data you wish to share
        source_info.number = task.number.toString();
        source_info.raised_by = task.sys_created_by.toString();
        source_info.priority = task.priority.toString();
        source_info.ritm = task.request_item.number.toString();
        source_contact.name = task.opened_by.name.toString();
        source_contact.email = task.opened_by.email.toString();
        source_contact.phone = task.opened_by.mobile_phone.toString();
        //Collects the variable data from the RITM ticket. Works for Variables and variable sets
        var question_answers = new GlideRecord('sc_item_option_mtom');
        question_answers.addQuery('request_item', task.request_item.sys_id.toString());
        question_answers.orderBy('sc_item_option.order');
        question_answers.query();
        while (question_answers.next()) {
           
            var varName = question_answers.sc_item_option.item_option_new.name;
           
            var varValue;
            //for each variable, check to see if it is a reference type
            if (question_answers.sc_item_option.item_option_new.type == '8') { //8 = reference
                //is reference, so need to look up the record to get display value
                varValue = getReferenceValue(question_answers.sc_item_option.item_option_new.reference, question_answers.sc_item_option.value);
            } else if (question_answers.sc_item_option.item_option_new.type == '21'){ //21 = List Collector
               if(question_answers.sc_item_option.value != ''){
                //is List Collector, so need to look up the record to get display values
                var varValueArray = [];
                var list = question_answers.sc_item_option.value.split(",");
                for (i = 0; i < list.length; i++) {
                    if(i == 0){
                        varValueArray.push(getReferenceValue(question_answers.sc_item_option.item_option_new.list_table, list[i]));
                    }
                    else{
                        varValueArray.push(' ' + getReferenceValue(question_answers.sc_item_option.item_option_new.list_table, list[i]));
                    }
                }               
                var varValue = varValueArray.toString();
                }else{
                  varValue = ''; }
            }else if (question_answers.sc_item_option.item_option_new.type == '18') { //18 = Lookup Select Box
                varValue = getReferenceValue(question_answers.sc_item_option.item_option_new.lookup_table, question_answers.sc_item_option.value);
            } else {
                //is not reference, so can grab that value as is
                varValue = question_answers.sc_item_option.value.getDisplayValue();
            }
          
            if (varName != "" && varValue != "")
                source_variables[varName] = varValue;
        }
		
    }
    function getReferenceValue(table, sys_id) {
        var gr = new GlideRecord(table);
        gr.get(sys_id);
        return gr.getDisplayValue();
    }
    body.source_variables = source_variables;
    body.source_info = source_info;
    body.source_contact = source_contact;
    outputs.body = JSON.stringify(body);
})(inputs, outputs);

 

@GD11 

I already informed MRVS data is stored in other table and not in "sc_item_option"

So you can use the logic I shared above to get MRVS and get the JSON

If my response helped please mark it correct and close the thread so that it benefits future readers.

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

@GD11 

Thank you for marking my response as helpful.

If my response helped please mark it correct and close the thread so that it benefits future readers.

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

Hi @Ankur Bawiskar  @Chaitanya naram  I am able to get the MRVS data in different array but now I want to concatenate that as part of source_variable object itself as all variables we need to pass together along with it's labe  : 'OrderVariable1' , i tried a lot but when i try it removes lable, as well removes more than 1 rows from MRVS and keeps only last one. please help, it would be much appreciated.

	(function execute(inputs, outputs) {
		/* Create the following inputs in your flow to use this script:
		task_id = sys_id of your catalog task
			   short_description = short description of your catalog task
			   description = description of your catalog task
			 correlation_id = sys_id of your catalog task
			  correlation_display = number of your catalog task
		integrated = the correlation_id on your catalog task. This assumes that you are storing the Insight fulfillment task sys_id in the correlation_id field on your catalog task.
				*/
		var body = {};
		var all_comments = [];
		var all_worknotes = [];
		var all_attachments = [];
		var source_info = {};
		var source_contact = {};
		var source_variables = {};
		var varValueArray = [];
		var varValue;
		var OrderVariable1 = {};
		//Capture all the comment information on ticket
		var comments = new GlideRecord('sys_journal_field');
		comments.addQuery('element', 'comments');
		comments.addQuery('element_id', inputs.task_id);
		comments.addQuery('sys_created_by', 'DOES NOT CONTAIN', 'insight');
		comments.query();
		while (comments.next()) {
			var comment = {};
			comment.value = comments.value.toString();
			comment.time = comments.sys_created_on.toString();
			comment.created_by = comments.sys_created_by.toString();
			all_comments.push(comment);
		}
		//Capture all the work note information on ticket
		var work_notes = new GlideRecord('sys_journal_field');
		work_notes.addQuery('element', 'work_notes');
		work_notes.addQuery('element_id', inputs.task_id);
		work_notes.addQuery('sys_created_by', 'DOES NOT CONTAIN', 'insight');
		work_notes.query();
		while (work_notes.next()) {
			var worknote = {};
			worknote.value = work_notes.value.toString();
			worknote.time = work_notes.sys_created_on.toString();
			worknote.created_by = work_notes.sys_created_by.toString();
			all_worknotes.push(worknote);
		}
		//Add comments and work notes to the body
		body.comments = all_comments;
		body.work_notes = all_worknotes;
		//Add in mandatory fields to the body
		body.description = checkForNull(inputs.description);
		body.short_description = checkForNull(inputs.short_description);
		body.correlation_id = checkForNull(inputs.correlation_id);
		body.correlation_display = checkForNull(inputs.correlation_display);
		body.sys_id = checkForNull(inputs.integrated);
		function checkForNull(inputs) {
			if (inputs != null || inputs != undefined) {
				return inputs.toString();
			} else {
				return '';
			}
		}
	  
		//Capture all attachments associated to this ticket
		var attachment = new GlideSysAttachment();
		var agr = attachment.getAttachments('sc_task', inputs.task_id);
		while (agr.next()) {
			var attachment_body = {};
			attachment_body.attachment_name = agr.file_name.toString();
			attachment_body.attachment_type = agr.content_type.toString();
			attachment_body.attachment_content = attachment.getContentBase64(agr);
			all_attachments.push(attachment_body);
		}
		body.attachments = all_attachments;
		//Populates the source_info, source_contact and source_variables objects
		var task = new GlideRecord('sc_task');
		task.addQuery('sys_id', inputs.task_id);
		task.query();
		if (task.next()) {
			//fields in the source_info and source_contact here are illustrative, you will likely want to amend this to refelct the data you wish to share
			source_info.number = task.number.toString();
			source_info.raised_by = task.sys_created_by.toString();
			source_info.priority = task.priority.toString();
			source_info.ritm = task.request_item.number.toString();
			source_contact.name = task.opened_by.name.toString();
			source_contact.email = task.opened_by.email.toString();
			source_contact.phone = task.opened_by.mobile_phone.toString();
			//Collects the variable data from the RITM ticket. Works for Variables and variable sets
			var question_answers = new GlideRecord('sc_item_option_mtom');
			question_answers.addQuery('request_item', task.request_item.sys_id.toString());
			question_answers.orderBy('sc_item_option.order');
			question_answers.query();
			while (question_answers.next()) {
			   
				var varName = question_answers.sc_item_option.item_option_new.name;
			   
				//for each variable, check to see if it is a reference type
				if (question_answers.sc_item_option.item_option_new.type == '8') { //8 = reference
					//is reference, so need to look up the record to get display value
					varValue = getReferenceValue(question_answers.sc_item_option.item_option_new.reference, question_answers.sc_item_option.value);
				} else if (question_answers.sc_item_option.item_option_new.type == '21'){ //21 = List Collector
				   if(question_answers.sc_item_option.value != ''){
					//is List Collector, so need to look up the record to get display values
				   
					var list = question_answers.sc_item_option.value.split(",");
					for (i = 0; i < list.length; i++) {
						if(i == 0){
							varValueArray.push(getReferenceValue(question_answers.sc_item_option.item_option_new.list_table, list[i]));
						}
						else{
							varValueArray.push(' ' + getReferenceValue(question_answers.sc_item_option.item_option_new.list_table, list[i]));
						}
					}               
					varValue = varValueArray.toString();
					}else{
					  varValue = ''; }
				}else if (question_answers.sc_item_option.item_option_new.type == '18') { //18 = Lookup Select Box
					varValue = getReferenceValue(question_answers.sc_item_option.item_option_new.lookup_table, question_answers.sc_item_option.value);
				} else {
					//is not reference, so can grab that value as is
					varValue = question_answers.sc_item_option.value.getDisplayValue();
				}
				if (varName != "" && varValue != ""){
					source_variables[varName] = varValue;
					gs.info('name of field '+ varName+ ' and value ' + varValue);
				}
				}
				var mrvsJson = task.request_item.variables.ordervariable1;
				var parsedData = JSON.parse(mrvsJson);				
				var arr = [];
				for (var i = 0; i < parsedData.length; i++) {
					var obj = {};
					obj["Part"] = parsedData[i].part; // give the part variable name
					obj["Qty"] = parsedData[i].quantity; // give the quantity variable name
					arr.push(obj);            
					gs.info('value of final MRVS ' + JSON.stringify(arr));
				}
                	
                 

			}			
		   
		function getReferenceValue(table, sys_id) {
			var gr = new GlideRecord(table);
			gr.get(sys_id);
			return gr.getDisplayValue();
		}
		body.source_variables = source_variables;
        body.OrderVariable1 = arr;
		body.source_info = source_info;
		body.source_contact = source_contact;
		outputs.body = JSON.stringify(body);
		gs.info('value of output '+ outputs.body);
	})(inputs, outputs);

 

attaching result and code snapshot with current code

GD11_0-1741279532542.png

 

 

@GD11 

try this

(function execute(inputs, outputs) {
    var body = {};
    var all_comments = [];
    var all_worknotes = [];
    var all_attachments = [];
    var source_info = {};
    var source_contact = {};
    var source_variables = {};
    var varValueArray = [];
    var varValue;
    var OrderVariable1 = {};

    // Capture all the comment information on ticket
    var comments = new GlideRecord('sys_journal_field');
    comments.addQuery('element', 'comments');
    comments.addQuery('element_id', inputs.task_id);
    comments.addQuery('sys_created_by', 'DOES NOT CONTAIN', 'insight');
    comments.query();
    while (comments.next()) {
        var comment = {};
        comment.value = comments.value.toString();
        comment.time = comments.sys_created_on.toString();
        comment.created_by = comments.sys_created_by.toString();
        all_comments.push(comment);
    }

    // Capture all the work note information on ticket
    var work_notes = new GlideRecord('sys_journal_field');
    work_notes.addQuery('element', 'work_notes');
    work_notes.addQuery('element_id', inputs.task_id);
    work_notes.addQuery('sys_created_by', 'DOES NOT CONTAIN', 'insight');
    work_notes.query();
    while (work_notes.next()) {
        var worknote = {};
        worknote.value = work_notes.value.toString();
        worknote.time = work_notes.sys_created_on.toString();
        worknote.created_by = work_notes.sys_created_by.toString();
        all_worknotes.push(worknote);
    }

    // Add comments and work notes to the body
    body.comments = all_comments;
    body.work_notes = all_worknotes;

    // Add in mandatory fields to the body
    body.description = checkForNull(inputs.description);
    body.short_description = checkForNull(inputs.short_description);
    body.correlation_id = checkForNull(inputs.correlation_id);
    body.correlation_display = checkForNull(inputs.correlation_display);
    body.sys_id = checkForNull(inputs.integrated);

    function checkForNull(inputs) {
        if (inputs != null || inputs != undefined) {
            return inputs.toString();
        } else {
            return '';
        }
    }

    // Capture all attachments associated to this ticket
    var attachment = new GlideSysAttachment();
    var agr = attachment.getAttachments('sc_task', inputs.task_id);
    while (agr.next()) {
        var attachment_body = {};
        attachment_body.attachment_name = agr.file_name.toString();
        attachment_body.attachment_type = agr.content_type.toString();
        attachment_body.attachment_content = attachment.getContentBase64(agr);
        all_attachments.push(attachment_body);
    }
    body.attachments = all_attachments;

    // Populates the source_info, source_contact and source_variables objects
    var task = new GlideRecord('sc_task');
    task.addQuery('sys_id', inputs.task_id);
    task.query();
    if (task.next()) {
        source_info.number = task.number.toString();
        source_info.raised_by = task.sys_created_by.toString();
        source_info.priority = task.priority.toString();
        source_info.ritm = task.request_item.number.toString();
        source_contact.name = task.opened_by.name.toString();
        source_contact.email = task.opened_by.email.toString();
        source_contact.phone = task.opened_by.mobile_phone.toString();

        // Collects the variable data from the RITM ticket. Works for Variables and variable sets
        var question_answers = new GlideRecord('sc_item_option_mtom');
        question_answers.addQuery('request_item', task.request_item.sys_id.toString());
        question_answers.orderBy('sc_item_option.order');
        question_answers.query();
        while (question_answers.next()) {
            var varName = question_answers.sc_item_option.item_option_new.name;

            if (question_answers.sc_item_option.item_option_new.type == '8') { // 8 = reference
                varValue = getReferenceValue(question_answers.sc_item_option.item_option_new.reference, question_answers.sc_item_option.value);
            } else if (question_answers.sc_item_option.item_option_new.type == '21') { // 21 = List Collector
                if (question_answers.sc_item_option.value != '') {
                    var list = question_answers.sc_item_option.value.split(",");
                    for (i = 0; i < list.length; i++) {
                        if (i == 0) {
                            varValueArray.push(getReferenceValue(question_answers.sc_item_option.item_option_new.list_table, list[i]));
                        } else {
                            varValueArray.push(' ' + getReferenceValue(question_answers.sc_item_option.item_option_new.list_table, list[i]));
                        }
                    }
                    varValue = varValueArray.toString();
                } else {
                    varValue = '';
                }
            } else if (question_answers.sc_item_option.item_option_new.type == '18') { // 18 = Lookup Select Box
                varValue = getReferenceValue(question_answers.sc_item_option.item_option_new.lookup_table, question_answers.sc_item_option.value);
            } else {
                varValue = question_answers.sc_item_option.value.getDisplayValue();
            }

            if (varName != "" && varValue != "") {
                source_variables[varName] = varValue;
                gs.info('name of field ' + varName + ' and value ' + varValue);
            }
        }

        var mrvsJson = task.request_item.variables.ordervariable1;
        var parsedData = JSON.parse(mrvsJson);
        var arr = [];
        for (var i = 0; i < parsedData.length; i++) {
            var obj = {};
            obj["Part"] = parsedData[i].part; // give the part variable name
            obj["Qty"] = parsedData[i].quantity; // give the quantity variable name
            arr.push(obj);
            gs.info('value of final MRVS ' + JSON.stringify(arr));
        }

        // Concatenate MRVS data into source_variables
        source_variables['OrderVariable1'] = arr;
    }

    function getReferenceValue(table, sys_id) {
        var gr = new GlideRecord(table);
        gr.get(sys_id);
        return gr.getDisplayValue();
    }

    body.source_variables = source_variables;
    body.source_info = source_info;
    body.source_contact = source_contact;
    outputs.body = JSON.stringify(body);
    gs.info('value of output ' + outputs.body);
})(inputs, outputs);

If my response helped please mark it correct and close the thread so that it benefits future readers.

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