Sunday, July 8, 2018

Publishing Configuration Part 1

BusinessObjects and SAP - Publishing of Crystal Reports Part 1 of 3



In case you followed my blog series so far you should be in a situation where you have a running BusinessObjects Edge system with Crystal Reports, Xcelsius, Live Office and the SAP Integration Kit installed and you are able to logon to BusinessObjects Edge with your SAP credentials.
In the next step we will configure the publishing of a Crystal Reports where we first will save the report into the BI repository and then push it from the BI environment to the BusinessObjects Edge server.
In the last blog we did install all the required software so that we can no configure the BusinessObjects server to allow SAP accounts and SAP roles to leverage the software.
This image outlines the publishing process:

  • Step #1 : When a user attempts to publish one or more Crystal reports, BW looks for a Remote Function Call (RFC) destination (of type TCP/IP) that is configured to connect to this BW Publisher. The TCP/IP destination provides SAP BW with the name and port number of the SAP Gateway that the BW Publisher is registered with.
  • Step #2: SAP BW then communicates over TCP/IP with the BW Publisher Service, and sends the following information across the network:
    • The appropriate Crystal report file(s), with any required translated report strings.
    • A publishing command, if you are not using a local SAP Gateway.
    • The name of the appropriate Central Management Server (CMS).
  • Step #3: The BW Publisher Service responds by executing the publishing command, thereby invoking the BW Publisher. The BW Publisher logs onto the specified CMS as the user, and checks to see if the user has the appropriate permissions in BusinessObjects Enterprise to publish reports. If the user's rights are sufficient, the CMS allows the reports to be added to the system.
When publishing a report from Crystal Reports the report is published with the language from the SAP Logon as "master-language". Master-language in this case means that the string values from this report are stored in SAP translation tables with the configured language set as source language for the translation process.

Configuring the BW Publish service

As part of the installation of the SAP Integration Kit we did select to install the BW Publishing service. You can start the BW Publishing service via the Central Configuration Manager from BusinessObjects Edge.
The configuration of the service is done via the registry.
The path in the registry is:
HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite 12.0\SAP\BW Publisher Service
There are three values that you can configure
Program ID
Type a descriptive string to identify the BW Publisher service. The Program ID can take any value, but must be 64 characters or fewer, and may not contain spaces. The Program ID is case-sensitive.
Gateway Host
Type the name of your BW server. If you have a BW cluster, enter the name of the central instance of BW.
Gateway Service
Type the port number that the Gateway Host is listening on. For example, type 33##, where ## represents the instance number of your SAP Gateway. Usually, the instance number is 00, and the value for this field is 3300.
After you entered those items in the registry you should be able to start the Publishing service and the service should keep running.
In my case I entered the following:
Program ID : VMW010_PUBLISH
Gateway Host : vanpgsap05.sap.crystald.net (which is my SAP BI Application Server)
Gateway Service : 3300
In case you entered everything correct you should be able to start the BW Publishing Service and it should keep running.
The publishing can also be configured using a SAP Gateway as an alternative for the Publishing Service.

Creating an RFC destination

As next step we need to create a RFC Destination in transaction SM59 and configure it to leverage the BW Publishing service.
You logon to the SAP BI System and start transaction SM59
I select the option "Create"
... and provide a name for the RFC Destination. As Connection Type I select TCP/IP (T) and enter an description as well.
As Application Type I select "Registered Server Program" and enter the Program ID that I configured previously for my BW Publishing Service as the Program here. Important - this is case sensitive.
I also enter the Gateway options:
o Gateway hostType the name of your BW server. If you have a BW cluster, enter the name of the central instance of BW. You must use the same BW server name here that you specified when you configured the BW Publisher service.
o Gateway serviceType the port number that the Gateway host is listening on. For example, type sapgw##, where ## represents the instance number of your SAP Gateway. Often, the instance number is 00, and the value for this field is sapgw00.
In my case I configured the destination as follows:
As final step I test my connection.

Create a BusinessObjects Enterprise server definition

So we created now the BW Publishing Service and the RFC Destination. In the next step we need to put the pieces together and define a definition of the BusinessObjects server in the transaction /CRYSTAL/RPTADMIN (part of the ABAP Transport from the Installation)
I start the transaction /CRYSTAL/RPTADMIN (Content Administration Workbench).
... and can use the "Add new System" icon in the Folder Enterprise System to create a new definition.

On the first tab "System" I can enter an Alias name for my system and I need to enter the CMS name (fully qualified) with port (in case you not using the default port).
The option "Default system" allows you to configure on BusinessObjects server landscape as the Default system for BI Roles that have not been assigned to a specific system.

On the "RFC Destinations" tab I now need to add the RFC destination that I did create in transaction SM59 previously.

On the tab "HTTP" I need to provide the following details:
o ProtocolType http (unless the web server that is connected to BusinessObjects Enterprise is configured to use https).
o Web server host and portType the fully qualified domain name or the IP address of the web server that hosts your BusinessObjects Enterprise InfoView or custom web application.
o PathThis path is essentially the virtual path that your web server uses when referring to the SAP subfolder of your BusinessObjects Enterprise web content (or the path to any customer web application). Do not include a forward slash at the beginning or at the end of this entry.
o Viewer applicationType the name of the viewer application.

On the tab "Languages" you can select the list of languages that will be leveraged for Crystal Reports. The system will take all string informations from the Crystal Reports and the text can be translated to those languages selected here and then there will be one report per language created automatically on the BusinessObjects Edge server.

On the Roles tab you need to select the list of roles that will publish the Crystal Report related content from their roles to the configured BusinessObjects Edge server. Based on this you can see that you could have on BI system pushing content to multiple BusinessObjects Edge system (example : one system separately for HR, one system for the rest).

On the "Layout" Tab you can define the base folder for the publishing and the security levels that you want to assign. These security settings will then be used as default settings in BusinessObjects Edge.
In regards to the folder structure the following explains how SAP Roles and Crystal Report objects in the SAP Roles are being created in the BusinessObjects Edge server.

When publishing, the top-level folder "SAP" and the folder underneath "3.0" (naming depends on the configuration in the Content Administration Workbench and the SAP Authentication in the Central Management Console) are created automatically.
Underneath the folder structure is created based on the values retrieved from SAP BW during the publishing process:
  • The Folder "SID" is replaced with the logical system name consisting of the SAP System ID and the SAP Client Number (for example, R37CLNT800).
  • The role folder is created based on the technical name and description of the role that has been used to store the Crystal Report object on the SAP BW system.
  • The report itself is saved to the actual role folder.
  • For each language the report is made available in, one report object is created.
For example, the following structure will appear on the BusinessObjects Enterprise system assuming the following values:
  • SAP system ID : R37
  • SAP client number : 800
  • SAP BW role name : Business Objects Training Role
  • Used languages : English, German (DE), and simplified Chinese (ZH)

We will continue in Part 2 with theconfiguration in the Content Administration Workbench and in Part 3 with the necessary security configurations.
For those that missed the installation parts, here are the links to the blogs: