Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

send attachement through rest message to different instance.

Community Alums
Not applicable

Hi All,

I am using ServiceNow rest message to copy incident record and attachment to a different instance. but the attachment not copying to target instance.

(function executeRule(current, previous /*null when async*/ ) {


    try {
        gs.log("1.0 " +current.sys_id);
        var targetinstance = "https://dev211559.service-now.com/api/now/attachment";
        var user = "userid";
        var password = "password";
        var text = '';
        var r = new sn_ws.RESTMessageV2('ServiceNow e bonding', 'create an incident');
        r.setStringParameterNoEscape("details", current.short_description);
        r.setStringParameterNoEscape("caller", current.caller_id);
        r.setStringParameterNoEscape("id", current.sys_id);
        r.setStringParameterNoEscape("category", current.category);
        r.setStringParameterNoEscape("number", current.number);
        r.setStringParameterNoEscape("description", current.description);
        r.setStringParameterNoEscape("assignment_group", current.assignment_group);
        r.setStringParameterNoEscape("impact", current.impact);
        r.setStringParameterNoEscape("urgency", current.urgency);
        r.setStringParameterNoEscape("subcategory", current.subcategory);
        var response = r.execute();
        var responseBody = response.getBody();
        gs.log(" 1.1 Fianl test integration response" + responseBody);
        var parsedata = JSON.parse(responseBody);
        var inctargetnum = parsedata.result.number;
        current.correlation_id = inctargetnum;
        //current.update();

        var httpStatus = response.getStatusCode();
        gs.log("2.0 get httpstatus value " + httpStatus);
        if (httpStatus.toString() == "201") {
			gs.log("2.1 check httpstatus conditon " + httpStatus);
            text = "incident created";
            var parser = new JSONParse();
            var parsed = new parser.parse(responseBody);
            var tragetrec = parsed.sys_id;
            var attachmentcount = sendAttachements(current.getTableName(), current.sys_id, tragetrec);
           // gs.log("3. print table name  " + current.table_name);

        }


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

 
    function sendAttachements(sourcetable, sourceid, targetid) {
    gs.log("4. attachment function call " + sourcetable + "  " + sourceid + "  " + targetid);
	gs.sleep(2000);

    var gr = new GlideRecord('sys_attachment');
    gs.log("4.1 Querying attachments for table: " + sourcetable + ", sys_id: " + sourceid);
    gr.addQuery('table_sys_id', sourceid);
    gr.addQuery('table_name', sourcetable);
    gr.query();

    var count = 0;
    while (gr.next()) {
        count++;
        gs.log("6. Attachment file name: " + gr.file_name);
        gs.log("7. Attachment sys_id: " + gr.sys_id);

        var ar = new sn_ws.RESTMessageV2();
        ar.setHttpMethod("POST");
        ar.setEndpoint(targetinstance);
        ar.setBasicAuth(user, password);

        ar.setRequestHeader("Accept", "application/json");

        ar.setQueryParameter("table_name", "incident");
        ar.setQueryParameter("table_sys_id", targetid);
        ar.setQueryParameter("file_name", gr.file_name);

        ar.setRequestBodyFromAttachment(gr.sys_id);

        var respon = ar.execute();
        gs.log("9. Attachment upload status: " + respon.getStatusCode());
        gs.log("10. Attachment upload error: " + respon.getErrorMessage());
        gs.log("11. Attachment upload response: " + respon.getBody());
    }

    gs.log("5. Attachment record count: " + count);
}




})(current, previous);

 "sendAttachements" function not working .

 

Please let me know where I am making the mistake.

 

Thanks

Pradip 

11 REPLIES 11

Hi @Community Alums ,

 

Did you try changing the URL?

 

Please mark my answer as helpful/correct if it resolves your query.

Regards,
Chaitanya

Community Alums
Not applicable

Hi @Chaitanya ILCR ,

Yes, I did try. still not working.