Advanced Crystal Reports Handling

Using the REST API to Retrieve a Crystal Report

In this section, we use web service calls to the BusinessObjects system, you can find full documentation to the Crystal Reports web services in the SAP Crystal Reports RESTful Web Services Developer Guide.

Prerequisites

  • The report is of type Crystal Reports for Enterprise, this is a limitation of the Crystal Reports Web Services API.
  • Credentials with sufficient privileges for running the report.
  • The id of the Crystal Report.
    • You can see the id of the report in CMC, report Properties.
  • Redwood Server 9.2.8.8 or later.

Procedure

Retrieve the Logon Token

In Business Objects CMC, navigate to Applications > RESTfull Web Service, take note of the Access URL which will be referred to as <BO_URL> in this procedure.

  1. Navigate to Definitions > Processes, choose New Process Definition, select HTTP/REST.
  2. Fill GetLogonToken in the Name field, see Source below for the source.
  3. On the Parameters tab:
    1. In the HTTP_URL parameter, fill <BO_URL>/logon/long.
    2. In the HTTP_Method parameter, fill POST.
    3. Add a parameter named Username.
    4. Add a parameter named Password, select Password in the Parameter Options to hide the password in the user interface.
    5. Add a parameter named AuthType.
    6. Add a parameter named attr with DirectionOut; this parameter will contain the SAP logon token.
  4. Click Save & Close.

Retrieve a Report as PDF

  1. Navigate to Definitions > Processes, choose New Process Definition, select HTTP/REST.
  2. Fill GetReportPDF in the Name field, see GetReportPDF Source below for the source.
  3. On the Parameters tab:
    1. In the HTTP_URL field, fill <BO_URL>/infostore/5883/rpt/export?mime_type=application/pdf.
    2. In the HTTP_Method, fill GET.
    3. Add a parameter named LogonToken.
  4. On the Options tab, select PortableDocumentFormat in the Default Output Format field.
  5. Click Save & Close.

Retrieve a Report as CSV

  1. Navigate to Definitions > Processes, choose New Process Definition, select HTTP/REST.
  2. Fill GetReportCSV in the Name field, see GetReportPDF Source below for the source.
  3. On the Parameters tab:
    1. In the HTTP_URL field, fill <BO_URL>/infostore/5883/rpt/export?mime_type=text/csv&delimiter=;&separator='&reportSectionsOption=1&groupSectionsOption=1.
    2. In the HTTP_Method, fill GET.
    3. Add a parameter named LogonToken.
  4. On the Options tab, select PortableDocumentFormat in the Default Output Format field.
  5. Click Save & Close.

Log Out

  1. Fill ReleaseLogonToken in the Name field, see Source below for the source.
  2. On the Parameters tab:
    1. In the HTTP_URL parameter, fill <BO_URL>/logoff.
    2. In the HTTP_Method parameter, fill POST.
  3. Click Save & Close.

Create a Chain Definition

  1. Navigate to Definitions > Chains.
  2. Choose New Chain Definition.
  3. In the Name field, fill JC_BOReport.
  4. On the Parameters tab:
    1. Add a parameter named Username.
    2. Add a parameter named Password, select Password in the Parameter Options to hide the password in the user interface.
    3. Add a parameter named AuthType, select List in the Simple Constraint Type field, fill secEnterprise,secLDAP,secWinAD,secSAPR3 into the Simple Constraint Data field.
  5. On the Diagram tab:
    1. Under Step 1, choose the first process and fill GetLogonToken into the Process Definition field.
    2. Map parameters Username, Password, AuthType to their respective Chain parameters.
    3. Add another Step by choosing the [+] to the right of Step 1.
    4. Fill GetReportPDF into the Process Definition field of process 1 of Step 2.
    5. Map parameter LogonToken to parameter attr of GetLogonToken in the first Step.
    6. Add another process to Step 2.
    7. Fill GetReportCSV into the Process Definition field of process 2 of Step 2.
    8. Map parameter LogonToken to parameter attr of GetLogonToken in the first Step.
    9. Add another Step by choosing the [+] to the right of Step 2.
    10. Fill ReleaseLogonToken into Process Definition field of process 1 of Step 3.
    11. Map parameter LogonToken to parameter attr of GetLogonToken in the first Step.
  6. Click Save & Close.

GetLogonToken Source

Copy
<attrs xmlns="http://www.sap.com/rws/bip">
  <attr name="password" type="string">${Password}</attr><attr name="clientType" type="string"></attr>
  <attr name="auth" type="string" possibilities="secEnterprise,secLDAP,secWinAD,secSAPR3">${AuthType}</attr>
  <attr name="userName" type="string">${Username}</attr>
</attrs>
[headers]
Content-Type=application/xml

GetReportPDF Source

Copy
[Headers]
X-SAP-LogonToken=${LogonToken}

ReleaseLogonToken Source

Copy
[Headers]
X-SAP-LogonToken=${LogonToken}

See Also

Scheduling SAP BusinessObjects Reports