logo

NJP

Rest Message: Send Work notes and Additional comments from Incident form of one SN instance to another SN instance using PUT HTTP method

Import · Oct 12, 2021 · article

1] Create a REST Message on source Instance and specify the Target instance Incident table URL and also create a Basic authentication type(:

image

2] Create a PUT (HTTP method), specify the target URL with a variable name as shown below. Payload is created in the BR itself. Create HTTP Headers as shown below and then click on Auto-generate variables:

image

3] Finally create a Business Rule and use the below script in the Business Rule :

image

Note: we require the sys_id of the target Incident record. We can fetch it using the GET method. Here I have parsed the response from the POST method: Click here

(function executeRule(current, previous /*null when async*/) {
     try {
            var r = new sn_ws.RESTMessageV2('Ebonding', 'PUT');
            r.setStringParameterNoEscape('sys_id', current.getValue("correlation_id"));

            var ob = {};
            if (current.getValue("description") == null) {
                if (current.work_notes.changes() && current.comments.changes()) {
                    var ob = {
                        comments: current.comments.getJournalEntry(1),
                        work_notes: current.work_notes.getJournalEntry(1),
                        state: current.getValue("state"),
                        description: ""
                    };

                } else if (current.work_notes.changes()) {
                    var ob = {
                        work_notes: current.work_notes.getJournalEntry(1),
                        state: current.getValue("state"),
                        description: ""
                    };
                } else if (current.comments.changes()) {
                    var ob = {
                        comments: current.comments.getJournalEntry(1),
                        state: current.getValue("state"),
                        description: ""
                    };

                }
            } else if (current.getValue("description") !== null) {
                if (current.work_notes.changes() && current.comments.changes()) {
                    var ob = {
                        comments: current.comments.getJournalEntry(1),
                        work_notes: current.work_notes.getJournalEntry(1),
                        state: current.getValue("state"),
                        description: current.getValue("description")
                    };


                } else if (current.work_notes.changes()) {
                    var ob = {
                        work_notes: current.work_notes.getJournalEntry(1),
                        state: current.getValue("state"),
                        description: current.getValue("description")
                    };
                } else if (current.comments.changes()) {
                    var ob = {
                        comments: current.comments.getJournalEntry(1),
                        state: current.getValue("state"),
                        description: current.getValue("description")
                    };

                }
            }

            r.setRequestBody(JSON.stringify(ob));
            var response = r.execute();
            var responseBody = response.getBody();
            // gs.addInfoMessage(responseBody);
            var httpStatus = response.getStatusCode();
        } catch (ex) {
            var message = ex.message;
        }
})(current, previous);

Regards,

Ritesh

Rome #Scripting #Business Rule

View original source

https://www.servicenow.com/community/developer-articles/rest-message-send-work-notes-and-additional-comments-from/ta-p/2315756