In early November of last year, SAP had just released Remote Support Platform 2.4 for SAP Business One to the public. One of the new components we delivered was RSP Studio, a simple tool that enables partners to prepare and manage tasks.
Effectively, RSP Studio allows partners to build their own support organization with automated services.
RSP Studio brings a new structured data model using a new database we created. To avoid additional documentation, all fields have a natural language naming structure. In addition, partners and customers can use SAP Crystal Reports to generate reports, then use spreadsheet applications and other tools to perform data analysis.
In the coffee corner of the SAP Labs building in Shanghai, I was giving a short pitch to Heinz on the new capabilities of RSP. I pointed out how, thanks to the basic bizflows on B1iF, partners can seamlessly transfer data generated by RSP to the new unified database. Based on this new solution, partners can gain a clear overview of the points on which they should focus when interacting with customers‘ SAP Business One installations.
The following figure outlines the new landscape.
Unfortunately, integration with other applications, such as CRM or ticketing systems, could not be provided out-of-the-box, since they have their own semantics, procedures, and functions. We decided that the easiest way to solve this problem would be to create a predefined report served by B1iF.
The report should be available immediately after installing RSP and the first data is delivered. Ideally, we wanted to enable partners to browse both current and historical data. We also wanted everything to be task-independent, so privileged users in partner environments can see the results of tasks assigned to their customers and aggregated results from SAP. Finally, the entire experience should be intuitive and adaptable. Thus, the Remote Support Platform Reporting System, powered by the SAP Business One Integration Framework, was born.
The following figure shows a high-level architectural overview of the RSP Reporting System.
RSP Reporting on B1iF
Just to refresh briefly, Remote Support Platform (RSP) is the lifecycle management tool for SAP Business One, which proactively monitors system environments and business statistics to ensure the health of an entire landscape. Partners and support consultants can use RSP Studio to create tasks, which are declarative scripts embedded in an XML file, to instruct RSP to check the health status, monitor a system, and correct potential issues. To obtain additional benefits from SAP support, customers can download the tasks and upload generated results in XML format to SAP or partners via secured connection. On Partner side results are stored in a WebDAV server for analysis and can improve the accuracy of support provided.
Some help in setting up WebDAV server can be found in SAP Note 1621085, however due to various implementation of WebDAV standards it is highly recommended to follow instructions from WebDAV vendors, especially in area of network security.
Abstracting XML results gathered worldwide and generating variants of reports on demand poses a significant challenge. B1if is a proven integration framework that can meet the requirements for reports and perfectly handle the XML-centric analysis.
Before implementing the report logic on B1if (see SAP Note 1620756), the inbound and outbound messages must be identified. To simplify the scenario in B1if, inbound messages for partners and SAP are separated as File-In (FILI) and Remote Function Call Active Adaptor (RFCA) systems respectively. FILI is used to retrieve XML results from partners’ WebDAV servers and RFCA to handle XML results from SAP’s internal CRM system (RFCA is for SAP internal use only).
The key difference between the two inbound messages is that FILI can be triggered by itself as the primary inbound message, whereas RFCA, as the auxiliary inbound message, is triggered by a B1if cron job to periodically retrieve results. To speed up the process of consuming data, the XML results are immediately entered into an internal queue so the host scenario step can continuously retrieve the XML results.
The outbound message for the entire reporting scenario package is quite simple. Since all the data parsed via B1if is stored in a database called RSPSrv, Java Database Connectivity (JDBC) is implemented here.
After clarifying the inbound and outbound messages, there are two points to consider:
- Parsing XML results to the database
- Retrieving data from the database to generate reports
Each distinct RSP task generates XML results with a specific structure and content. To parse XML results to the database, a GeneralProcess scenario step first handles the basic information. XML results are then entered into an internal queue to be consumed by successive scenario steps, based on the task identification and version.
Each successive scenario step is called a SpecificProcess. The name of the queue associated with each specific scenario step must NOT be the prefix of any other queue name. For example, sap.rsp.0001290086 is a prefix of sap.rsp.0001290086.1; B1if would regard these as being the same queues, and select one at random. The naming convention for specific processes is defined as sap.rsp.[version].[taskID] or sap.rsp.[taskID]. The former handles the specific version of a task result, while the later handles the rest.
To generate reports based on data stored in RSPSrv, as required for HTML via HTTP, the inbound HTTP message is required. An aggregate report facilitates navigation to other, more detailed reports based on individual task results, with support for filters. There are four scenario steps which constitute the entire reporting workflow. The sap.rsp.filterframe step, an HTML page, contains two frames: the head frame is a fixed frame for the report filter triggered by the sap.rsp.reportfilter step and the body frame is a dynamic frame to display the report list, triggered by the sap.rsp.reportdisplay step. In the report list, end-users are able to open a specific report using embedded hyperlinks provided by sap.rsp.callhtmlreport.
In conclusion, we found the SAP Business One Integration Framework to be a powerful platform on which to develop our solution. B1iF enabled us to fulfill all our solution requirements and go to market with minimal development time.
For more information about the setup of partner environments, see the following:
- SAP Note 1620756 – Configuring the Integration Scenario Package for the Remote Support Platform for SAP Business One.
- Latest Bizflows used during the preparation of this article
- Procedure for setting up Bizflows
- SAP Note 1621085 – Configuring WebDAV for Remote Support Platform for SAP Business One
- SAP Note 1637677 – WebDAV Version Support
For more information about remote support platform for SAP Business One, see the landing page for the remote support platform on the Customer Portal at http://service.sap.com/smb/sbocustomer/rsp.
This article is written in cooperation with my good friends Qiaoli Ma and Heinz Pauly. Special thanks to the dedicated work on this.