Soap message i cant send attachments via soap message

srinivas gupta1
Tera Contributor

If anyone has information, please respond to this with links and find the solution. I want to send Attachments creator via soap, but I am having trouble and getting errors.

5 REPLIES 5

Prashant Ahire
Kilo Sage

Hello @srinivas gupta1,

Please visit this thread for your question
https://www.servicenow.com/community/now-platform-forum/sending-attachment-with-outbound-soap-messag...

Please like or mark Helpful

Regards
Prashant Ahire

I Have tried this link but its not working I have tired this cide please check this.....

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

    // Add your code here
    var s = new sn_ws.SOAPMessageV2('Lemongrass''getRecords');
    s.setStringParameterNoEscape('getRecords.number', current.number);
    var response = s.execute();
    var ResponseBody = response.getBody();
    var status = response.getStatusCode();
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(ResponseBody);
    var num = xmlDoc.getNodeText('//number');
    var sysId = xmlDoc.getNodeText('//sys_id');
    //var status = xmlDoc.getNodeText('status_code');
    gs.addInfoMessage(status);
    gs.addInfoMessage(num);
    if (num) {
        var s2 = new sn_ws.SOAPMessageV2('Lemongrass''update');
        s2.setStringParameterNoEscape('update.sys_id', sysId);
        s2.setStringParameterNoEscape('update.short_description', current.short_description);
        s2.setStringParameterNoEscape('update.resolved_by', current.resolved_by);
        s2.setStringParameterNoEscape('update.sys_id', sysId);
        s2.setStringParameterNoEscape('update.resolved_at', current.resolved_at);
        s2.setStringParameterNoEscape('update.urgency', current.urgency);
        s2.setStringParameterNoEscape('update.closed_by', current.closed_by);
        s2.setStringParameterNoEscape('update.hold_reason', current.hold_reason);
        s2.setStringParameterNoEscape('update.caller_id', current.caller_id);
        s2.setStringParameterNoEscape('update.category', current.category);
        s2.setStringParameterNoEscape('update.close_notes', current.close_notes);
        s2.setStringParameterNoEscape('update.close_code', current.close_code);
        if (current.state == '6' || current.state == '7' || current.state == '8')
            s2.setStringParameterNoEscape('update.state''7');
        else
            s2.setStringParameterNoEscape('update.state', current.state);
        s2.setStringParameterNoEscape('update.impact', current.impact);
        s2.setStringParameterNoEscape('update.number', current.number);
        s2.setStringParameterNoEscape('update.active', current.active);
        s2.setStringParameterNoEscape('update.work_notes', current.work_notes);
        s2.setStringParameterNoEscape('update.contact_type', current.contact_type);
        s2.setStringParameterNoEscape('update.subcategory', current.subcategory);
        s2.setStringParameterNoEscape('update.priority', current.priority);
        s2.setStringParameterNoEscape('update.description', current.description);
        s2.setStringParameterNoEscape('update.location', current.location);
        s2.setStringParameterNoEscape('update.assignment_group', current.assignment_group);
        s2.setStringParameterNoEscape('update.comments', current.comments);
        s2.setStringParameterNoEscape('update.cmdb_ci', current.cmdb_ci);
        s2.setStringParameterNoEscape('update.closed_at', current.closed_at);
        s2.setStringParameterNoEscape('update.opened_by', current.opened_by);
        s2.setStringParameterNoEscape('update.correlation_id', current.sys_id);

        //////////////////////////////Attachment Code////////////////////////

        var StringUtil = new GlideStringUtil();
        var attachments = new GlideSysAttachment();
        var fileName, contentType;
        var gR = new GlideRecord('sys_attachment');
        gR.addEncodedQuery('table_name=incident^table_sys_id='+current.sys_id);
        gR.query();
        while(gR.next()){
        try {
        var binData =   attachments.getBytes(gR);
        var encData =   StringUtil.base64Encode(binData);
        gs.log('XML Respons for payload='+encData);
        // var s3 = new sn_ws.SOAPMessageV2('attachment', 'update');
        // s3.setStringParameterNoEscape('insert.topic', 'AttachmentCreatorV1');
        // s3.setStringParameterNoEscape('insert.agent', 'AttachmentCreatorV1');
        // s3.setStringParameterNoEscape('insert.payload', encData);
        // s3.setStringParameterNoEscape('insert.name',  gR.file_name+':'+gR.content_type);
        // s3.setStringParameterNoEscape('insert.source', 'incident:'+current.correlation_id);
        // var response = s3.execute();
        // var responseBody = response.getBody(); 
        // var status = response.getStatusCode();
        // }
    
        // catch(ex) { 
        // var message = ex.message;
        // }
        // }

        var s = new sn_ws.SOAPMessageV2('attachment''insert');
        s.setStringParameter('source''incident:'+current.sys_id);
        s.setStringParameter('payload', encData);
        s.setStringParameter('topic''AttachmentCreatorV1');
        s.setStringParameter('agent''AttachmentCreatorV1');
        s.setStringParameter('name', gR.file_name+':'+gR.content_type);
        var response = s.execute();
        var responseBody = response.getBody();
        var status = response.getStatusCode();
        gs.log("attachment ==== "+status+", resbody = "+responseBody);
        }
        catch(ex) {
        var message = ex.getMessage();
        gs.log("attachment ==== message == "+message);
        }
        }
        
        //////////////////////////////Attachment Code////////////////////////

        var response2 = s2.execute();
        var responseBody2 = response2.getBody();
        var status2 = response2.getStatusCode();
    } else {
        gs.addErrorMessage(num);
        var s1 = new sn_ws.SOAPMessageV2('Lemongrass''insert');
        s1.setStringParameterNoEscape('insert.description', current.description);
        s1.setStringParameterNoEscape('insert.work_notes', current.work_notes);
        s1.setStringParameterNoEscape('insert.impact', current.impact);
        s1.setStringParameterNoEscape('insert.state', current.state);
        s1.setStringParameterNoEscape('insert.close_code', current.close_code);
        s1.setStringParameterNoEscape('insert.closed_by', current.closed_by);
        s1.setStringParameterNoEscape('insert.closed_at', current.closed_at);
        s1.setStringParameterNoEscape('insert.number', current.number);
        s1.setStringParameterNoEscape('insert.close_notes', current.close_notes);
        s1.setStringParameterNoEscape('insert.comments', current.comments);
        s1.setStringParameterNoEscape('insert.resolved_by', current.resolved_by);
        s1.setStringParameterNoEscape('insert.category', current.category);
        s1.setStringParameterNoEscape('insert.caller_id', current.caller_id);
        s1.setStringParameterNoEscape('insert.urgency', current.urgency);
        s1.setStringParameterNoEscape('insert.location', current.location);
        s1.setStringParameterNoEscape('insert.cmdb_ci', current.cmdb_ci);
        s1.setStringParameterNoEscape('insert.short_description', current.short_description);
        s1.setStringParameterNoEscape('insert.contact_type', current.contact_type);
        s1.setStringParameterNoEscape('insert.subcategory', current.subcategory);
        s1.setStringParameterNoEscape('insert.resolved_at', current.resolved_at);
        s1.setStringParameterNoEscape('insert.assignment_group', current.assignment_group);
        s1.setStringParameterNoEscape('insert.priority', current.priority);
        s1.setStringParameterNoEscape('insert.opened_by', current.opened_by);
        s1.setStringParameterNoEscape('insert.hold_reason', current.hold_reason);
        s1.setStringParameterNoEscape('insert.correlation_id', current.sys_id);
        var response1 = s1.execute();
        var responseBody1 = response1.getBody();
        var status1 = response1.getStatusCode();
        gs.log('target resopnse body' + responseBody1);
    }
})(current, previous);

Akanksha Gupta2
Mega Guru

I have tried this one also but its not working... 

Thanks,