welcome to XRM blog

Keep in touch with latest CRM/ERP articles

To remain competitive your organisation must be efficient across the business process spectrum. To do so you need to take sound decisions based on a balance between the cost and risk. To do so you will be heavily dependent on your content management in itself needs...

image
Blog

How to add a report as PDF File as an Attachment in Task using JavaScript in CRM 2015/2016/D365

By Sushil on 9/25/2018

How to add a report as PDF File as an Attachment in Task using JavaScript in CRM 2015/2016/D365

 

          // This function gets the reporting session.

          function getReportingSession(){

                 var selectedIds = Xrm.Page.data.entity.getId(); 

                 var reportName = "NameofReport.rdl";

                 var reportGuid =  "00000000-0000-0000-0000-000000000000"// Replace with your report GUID

                 var pth = Xrm.Page.context.getClientUrl() + "/CRMReports/rsviewer/QuirksReportViewer.aspx";

//Note: In version 9.0, use reportviewer.aspx in place of QuirksReportViewer.aspx with.

           

                 var retrieveEntityReq = new XMLHttpRequest(); 

                 retrieveEntityReq.open("POST", pth, false); 

                 retrieveEntityReq.setRequestHeader("Accept", "*/*"); 

                 retrieveEntityReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 

                 retrieveEntityReq.send("id=%7B" + reportGuid + "%7D&uniquename=" + Xrm.Page.context.getOrgUniqueName() + "&iscustomreport=true&reportnameonsrs=&reportName=" + reportName + "&isScheduledReport=false&p:parameterNamespecified in ssrs report=" + selectedIds); 

                 var x = retrieveEntityReq.responseText.lastIndexOf("ReportSession="); 

                 var y = retrieveEntityReq.responseText.lastIndexOf("ControlID="); 

                 var ret = new Array(); 

                 ret[0] = retrieveEntityReq.responseText.substr(x + 14, 24); 

                 ret[1] = retrieveEntityReq.responseText.substr(x + 10, 32); 

                 return ret; 

          }

 

          // This function encodes the PDF.

          function encodePdf(ret){

                 var ret = getReportingSession();

                 var retrieveEntityReq = new XMLHttpRequest();

                 retrieveEntityReq.arguments=this.arguments;

                 var pth = window.parent.Xrm.Page.context.getClientUrl() + "/Reserved.ReportViewerWebControl.axd?ReportSession=" + ret[0] + "&Culture=1033&CultureOverrides=True&UICulture=1033&UICultureOverrides=True&ReportStack=1&ControlID=" + ret[1] + "&OpType=Export&FileName=Public&ContentDisposition=OnlyHtmlInline&Format=PDF";

                 retrieveEntityReq.open("GET", pth, true);

                 retrieveEntityReq.setRequestHeader("Accept", "*/*");

                 retrieveEntityReq.responseType = "arraybuffer";

 

                 retrieveEntityReq.onreadystatechange = function () {

                        if (retrieveEntityReq.readyState == 4){

                               if(retrieveEntityReq.status == 200) {

                                      var binary = "";

                                      var bytes = new Uint8Array(this.response);

                                      for (var i = 0; i < bytes.byteLength; i++) {

                                             binary += String.fromCharCode(bytes[i]);

                                      }

                                      var bdy = btoa(binary);

                                      createNoteWithAttachment(bdy,this.arguments);

                               }

                        }

                 };

                 retrieveEntityReq.send();

          }

  

          //Here this function attach the report as pdf in the existing task id.

          function createNoteWithAttachment(bdy){

                 var annotation = new Object();

                 var taskid = "00000000-0000-0000-0000-000000000000" //Input the task id for which you want to create the notes as pdf attachment.

                 annotation.ObjectId = {

                        Id: propertyBag.taskid,

                        LogicalName: "task"

                 };

                 annotation.Subject = "Test Subject";

                 annotation.FileName = "Test File Name";+".pdf"

                 annotation.DocumentBody = bdy;

                 annotation.MimeType = "application/pdf";

                 SDK.REST.createRecord(annotation, "Annotation", function(result) {

                        var newEntityId = result.AnnotationId;

                 }, function(error) {

                        Xrm.Utility.alertDialog(error.message);

                 });

          }

 

 

Dynamics CRM
MS CRM 2016
MSCRM V9
Author
Blog Calendar
Blog Calendar List
2024 Apr  17  4
2024 Mar  29  4
2024 Feb  25  3
2024 Jan  7  7
2023 Dec  10  6
2023 Nov  34  5
2023 Oct  98  12
2023 Sep  219  9
2023 Aug  61  7
2023 Jul  31  5
2023 Jun  20  4
2023 May  43  5
2023 Apr  33  5
2023 Mar  90  6
2023 Feb  107  5
2023 Jan  38  4
2022 Dec  94  7
2022 Nov  252  2
2022 Sep  13  1
2022 Aug  27  2
2022 Jun  7  2
2022 May  3  2
2022 Apr  6  2
2022 Mar  1  1
2022 Feb  2  1
2022 Jan  1  1
2021 Dec  3  1
2021 Nov  2  1
2021 Oct  1  1
2021 Sep  11  1
2021 Aug  37  5
2021 Jul  36  4
2021 Jun  1224  5
2021 May  31  3
2021 Apr  2022  3
2021 Mar  188  5
2021 Feb  2113  7
2021 Jan  3038  9
2020 Dec  437  7
2020 Sep  74  3
2020 Aug  673  3
2020 Jul  127  1
2020 Jun  75  3
2020 Apr  68  3
2020 Mar  12  2
2020 Feb  27  5
2020 Jan  34  7
2019 Dec  17  4
2019 Nov  29  1
2019 Jan  23  2
2018 Dec  67  4
2018 Nov  68  3
2018 Oct  18  3
2018 Sep  1139  11
2018 Aug  7  2
2018 Jun  13  1
2018 Jan  68  2
2017 Sep  585  5
2017 Aug  17  1
2017 Jul  17  2
2017 Jun  62  2
2017 May  21  1
2017 Apr  35  2
2017 Mar  135  4
2017 Feb  773  4
2016 Dec  203  3
2016 Nov  826  8
2016 Oct  304  10
2016 Sep  701  6
2016 Aug  39  1
2016 Jun  1874  6
2016 May  110  3
2016 Jan  71  2
2015 Dec  473  6
2015 Nov  4  1
2015 Oct  13  1
2015 Sep  1464  6
2015 Aug  14  1
2015 Jul  128  2
2015 Jun  10  1
2015 May  20  1
2015 Apr  30  3
2015 Mar  80  3
2015 Jan  5335  4
2014 Dec  17  1
2014 Nov  2257  4
2014 Oct  68  1
2014 Sep  107  2
2014 Aug  5277  1
2014 Jul  48  2
2014 Apr  2578  12
2014 Mar  300  17
2014 Feb  220  6
2014 Jan  1510  16
2013 Dec  21  2
2013 Nov  689  2
2013 Oct  256  3
2013 Sep  11  1
2013 Aug  40  3
2013 Jul  214  1
2013 Apr  57  6
2013 Mar  2287  10
2013 Feb  127  3
2013 Jan  343  2
2012 Nov  57  2
2012 Oct  499  10
Tag Cloud
Interested in our services? Still not sure about project details? get a quote