Cloud Reporting User Guide


Introduction

SAP Reporting allows you to design and build reports for your SAP FSM account. You can get a list of service calls created in the last 30 days in a nice PDF form.

You can generate any of the embedded reports using any of the client applications or by using the SAP FSM Data API directly. We also encourage you to create your own custom reports using Jaspersoft Studio and SAP Report Designer.


Limitations

Please note the following reporting limitations:

We currently have a hard limit for reports of the following:

  • 5 minutes, or
  • 1000 pages

Any report that exceeds one of these limits cannot be retrieved from any of our applications, e.g. mobile or A&R.


Definitions

Report Design A report design represents some parts of the final report. It defines what data will be included in the report and how that data will be arranged.
Report Template A set of artifacts used to produce the final report. Report templates contain one or more report designs, style files, translation files and images.
Report A document generated based on a report template, using the data from your account.

Prerequisites

Before proceeding with this user guide you should have a good understanding of JasperReports. We recommend reading JasperReports Tutorial, which covers most of the basics. Basic knowledge of SAP FSM Data API is also needed.

You can also check some videos with tutorials.


Building Reports

Reports can be built from the client applications or by directly calling the SAP FSM Data API.


Building Reports with Client Applications

You can use any of the SAP client applications to build a report of your choice. If at least one report template is defined for a given object type, the Build Report button will be displayed. Some report templates define parameters which can be used to define the data or the final look of the report.


Building Reports using the API

The SAP FSM Data API delivers a set of web services for building reports. A report can be built out of an existing report template only.

HTTP URL

POST https://host[:port]/api/reporting/v1/build

HTTP Headers

Property Value
Content-Type Defines in which format the parameters will be send. Either ‘application/json’ or ‘multipart/form-data’.

HTTP Body (application/json)

{
  "reportTemplate": string, // the cloud ID (non-embedded templates) or the name of the report (embedded templates)
  "reportLanguage": string, // language of the report
  "reportParameters": { // report parameters passed to the reporting engine; can be used to specify the checklist instance or to pass some values to queries inside the report definition; this object must comply with the json schema stored in the parameters schema field
     string: object,
     ...
  }
}

HTTP Body (multipart/form-data)

reportTemplate=String&reportLanguage=String&reportParameters.key1=String&reportParameters.key2=String

Example (application/json)

{   "reportTemplate": "sales",   "reportLanguage": "en",   "reportParameters": {
"objectId": "01a143bc5d8a49de8e26cc8deec34ad8",
"objectType": "SALESORDER",
"showPrices": true   } }

Example (multipart/form-data)

reportTemplate=sales&reportLanguage=en&reportParameters.objectId=01a143bc5d8a49de8e26cc8deec34ad8&objectType=SALESORDER&showPrices=true

Embedded Report Templates

Every SAP FSM account comes with a set of embedded report templates covering the most common use cases. Currently those templates can’t be modified or deleted by users.

Embedded report templates can be modified by the SAP support team only.

Name Object Types Description
checklist Checklist Standard checklist reports combining information for a given checklist instance and referenced checklist template
sales Sales Order, Sales Quotation Standard sales document report
serviceCall Service Call Standard service call report

Creating Report Templates

Report templates contain report designs, style files, translation files and images. All artifacts can be created manually or mastered using Jaspersoft Studio.

Jaspersoft Studio is a free, open source, eclipse-based report designer. Report Designer is a free plugin for Jaspersoft Studio which adds support for SAP Reporting Together they deliver the most simple way of creating report templates.

In Jaspersoft Studio you create report designs, choose data sources and define the data using queries. The data source can represent any data, but most often it is a relational database. In SAP you never have direct access to the underlying database (security and permission concerns). Thus the data access has to be defined on top of SAP FSM Data API.


Report Parameters

Report parameters are useful for passing data to the report engine during the build phase. A report can have zero or more parameters. You can define them in the Outline window when using the Design view.



Alternatively, you can use the Source view. Parameter declaration is as simple as follows:

<parameter name="parameter1" class="java.lang.String"/>

Depending on the type of parameter, SAP client applications may ask the user for a value. Currently, SAP Reporting supports the following classes of parameters:

  • java.lang.Boolean
  • java.util.Date
  • java.lang.Double
  • java.lang.Float
  • java.lang.Integer
  • java.lang.String

Report Query String (CoreSQL)

The CoreSQL queries are similar to SAP FSM Data API calls. They define what data needs to be retrieved from your SAP FSM account. You can define only one query string per report design. You can use subreports to group different kinds of data.

Imagine a URL to retrieve a checklist instance with a given ID using the SAP FSM Data API call:

https://eu1.dc.coresystems.com/api/data/v4/ChecklistInstance?query=id="34a88076d28b4de99a2dcf68c029193f"&dtos=ChecklistInstance.12

A CoreSQL query doing the same thing might look like this:

ChecklistInstance ? query = id = "34a88076d28b4de99a2dcf68c029193f" & dtos = ChecklistInstance.12

This CoreSQL query omits all server and connection information as well as credentials from the web service URL. For more examples and documentation, please refer to SAP FSM Data API.

Some query parameter values are only known during the build process. You can use report parameters to parametrize your queries.

ChecklistInstance ? query = id = $P{checklist.id} & dtos = ChecklistInstance.12

Keep in mind that you don’t have to worry about quotation marks. Just make sure to choose the right class for your parameter.


Report Fields

Report fields are elements which represent the mapping of data between the data source and the report template. Fields can be combined in the report expressions to obtain the desired output. When declaring report fields, the data source should supply data corresponding to all the fields defined in the report template.

A report design can contain zero or more fields. You can define them in the Outline window when using the Design view.



Alternatively, you can use the Source view. Field declaration is done as below:

<field name="field1" class="java.lang.String"/>

By setting the property imageType of an image in order to keep the PNG format for all image properties. PNG supports transparency, which can improve the display of signatures in a signed report.

<property name="imageType" value="PNG"/>

Report Preview

Using the preview feature in Jaspersoft Studio you can check what the final report might look like. You need to install the SAP Report Designer plugin to be able to see data from your account.

  • Make sure that you have the latest version of Jaspersoft Studio installed. You can download it from here. The currently supported version is 6.0.4 or higher.
  • Create a new data adapter for CoreSQL. It must be of type SAP Cloud Connection. You are free to use any name.
  • You are done. Go to the preview tab, choose the correct data adapter and hit Run.

Fonts

You want your report to look exactly the same on every device or on paper. Cloud Reporting supports one font and one font only - DejaVu. We made sure that we you can use it in many ways.

Font Name Normal Bold Italic Bold Italic
Sans Serif DejaVu Sans DejaVu Sans DejaVu Sans DejaVu Sans
Monospace DejaVu Sans Mono DejaVu Sans Mono DejaVu Sans Mono DejaVu Sans Mono
Serif DejaVu Serif DejaVu Serif DejaVu Serif DejaVu Serif

If your report defines a different font family, DejaVu will be used anyway.


Functions

For most common situations expressions represent the perfect tool for acquiring and processing dynamic data. Jaspersoft Studio defines a set of functions for most common operations on data, e.g. get current date. Report Designer delivers new functions for most common operations on Cloud objects.

Report Designer functions are grouped in SAP category.

Function Description Example
Object fieldValue(String objectType, int objectVersion, String objectId, String fieldName) Gets the value of the field with the given name
fieldValue(BusinessPartner, 10, $F{businessPartner.id}, code)
Map fieldValues(String objectType, int objectVersion, String objectId) Gets the field name to value mapping for the given object
fieldValues(BusinessPartner, 10, $F{businessPartner.id})
Object udfValue(String objectType, int objectVersion, String objectId, String udfName) Gets the value of the UDF with the given name
udfValue(BusinessPartner, 10, $F{businessPartner.