We've updated the ServiceNow Community Code of Conduct, adding guidelines around AI usage, professionalism, and content violations. Read more

Issue in Pdf report upload to incident as an attachment

himanshusin5020
Giga Contributor

Hi Team,

 

I am trying to upload a PDF to an existing incident and it seems it has an encoding issue, so i cannot see/open pdf from an incident.

Test code i am using is as this: Please help me.

 

// Define the Incident record Sys ID to which the attachment will be added
    var recordSysId = 'xxx'; // Replace with the actual Incident Sys ID later
    var tableName = 'incident'; // The table name to which the file will be attached

    // Define the URL of the PDF file to fetch
    var pdfUrl = 'https://pdfobject.com/pdf/sample.pdf';

    try {
        // Step 1: Fetch the PDF file from the URL using RESTMessageV2
        var restMessage = new sn_ws.RESTMessageV2(); // Create RESTMessageV2 object
        restMessage.setHttpMethod('GET');
        restMessage.setEndpoint(pdfUrl);

        // Execute the request
        var response = restMessage.execute();
        var statusCode = response.getStatusCode();

        if (statusCode == 200) {
            gs.addInfoMessage('getRequestHeaders : ' + JSON.stringify(response.getHeaders())) ;
            // Successfully fetched the PDF
            var responseBody = response.getBody(); // Get the PDF content (Base64 encoded) if save this pdf is blank
            var contentType = response.getHeader('Content-Type'); // Get the content type
            var fileName = 'report.pdf'; // Set the filename

            // Step 2: Upload the PDF as an Incident attachment
            var attachment = new GlideSysAttachment();
            var binaryData = GlideStringUtil.base64DecodeAsBytes(responseBody); // Decode Base64 content to binary when save this corrupt pdf i.e. pdf cannot load
            //set up inputs
            var rec = new GlideRecord('incident');
            rec.get(recordSysId);
            aa = attachment.write(rec, fileName, contentType, binaryData);
            gs.addInfoMessage(aa);
            // Optional: Add a log or info message to confirm attachment creation
            gs.addInfoMessage('PDF file successfully attached to the Incident record.');
        } else {
            // Handle the case where the PDF could not be fetched
            gs.addErrorMessage('Failed to fetch PDF file. HTTP Status Code: ' + statusCode);
        }
    } catch (ex) {
        gs.info(contentType);
        gs.info(responseBody);
        gs.logError('Error occurred while fetching and attaching PDF: ' + ex.getMessage());
    }

0 REPLIES 0