1. Collecting XPI Inspector traces
The best way to troubleshoot these kind of scenarios is to trace the error with the XPI Inspector tool (SAP Note 1514898).
- Install XPI Inspector tool by deploying the EAR file which you were given in an OSS incident. It's crucial to install the latest version of the XPI Inspector tool as from version 6.6 a new Elster related example is available.
- Open the URL http://<host>:<port>/xpi_inspector.
Check the version of the XPI Inspector in the system. Open the URL http://<host>:<port>/xpi_inspector and click on "About". A new window will up showing the version number and the SAP Note that can be used to download the tool. All versions of the XPI Inspector older than 4.13 can cause some DB connections opened by the tool to stay active for a long time. It's strongly recommended to use the latest XPI Inspector tool. Currently 7.0 is the newest version.
- Select Example 50 - XI Channel and add the following channels.
- The RFC Sender Communication Channel, which connects the FI system to the PI system.
- The SOAP Receiver Communication channel, where the ERiC application is triggered which transfers data from the PI system to the Clearingstelle.
- Start the XPI Inspector tool by clicking on Start button.
- Run TCODE FOTV in the FI system.
- As soon as the error message appears, click on Stop to stop inspection of the tool.
- Repeat the procedure from Step 2 but select Example 71 - Elster instead of Example 50 - XI Channel.
Both Example 50 and Example 71 can be relevant for the troubleshooting.
2. Looking into the XPI Inspector trace file
- Download the ZIP file to your local computer.
- Unzip the archive and open result.html or index.html (later XPI Inspector releases).
2.1. Check the used URL in the SOAP receiver channel
As explained in SAP Note 2745249 - Implementation of ELSTER modules using the ERiC libraries, the target URL for the SOAP receiver channels must be changed to: http://[NW_Java_Server_HTTP_host]:[NW_Java_Server_HTTP_port]/ELSTER/elster-echo
This is needed because with the introduction of ERiC application, the actual data sending is carried by the ERiC application and by the SOAP receiver channel anymore, which is why to SOAP receiver must point to the own host.
Any reference to the old URLs like below is incorrect and will cause message processing failure:
http://220.127.116.11/Elster2/EMS --> http://datenannahme1.elster.de/Elster2/EMS
http://18.104.22.168/Elster2/EMS --> http://datenannahme2.elster.de/Elster2/EMS
http://22.214.171.124/Elster2/EMS --> http://datenannahme3.elster.de/Elster2/EMS
http://126.96.36.199/Elster2/EMS --> http://datenannahme4.elster.de/Elster2/EMS
2.2. Checking the Module Sequence
The SOAP Receiver Communication Channel must have the same Module and Module Parameter settings. In the XPI Inspector trace file, click on the name of one of the SOAP Receiver Communication Channels. The sequence of the Modules must look like this:
If the used modules and their order is not exactly the same as above, it can lead to message processing errors highlighted in KBA 2887677 - Elster ERiC errors - got unexpected document type:DOC_TYPE_UNKNOWN.
3. Check the ERiC application logs
The ERiC application is collecting logs in the folder /usr/sap/<systemID>/<instanceID>/j2ee/os_libs/eric in the file called eric.log. This log file can reveal any validation, connection errors. The default log level is INFO but this can be increased so that the whole processing by the ERiC application is logged. There are two ways to increase it the log level.
3.1. Increase the ERiC application's log level in a channel
Open the Integration Builder of your PI/PO system and navigate to the SOAP receiver channel. In the receiver SOAP channel configuration go to the Module tab and set the module parameter with parameter name "log.detailed" and parameter value "true" for module "sap.com/com.sap.fin.xi.elster/ElsterSendModul"
3.2. Increase the ERiC application's log level at application level
Open NWA → Configuration → Infrastructure → Java System Properties → Applications → fi~elster_appl → Change the log.detailed property from false to true. The property is online changeable.
4. Review the scenario configuration
As mentioned above in point 2.1, the actual data sending is carried by the ERiC application and by the SOAP receiver channel anymore, which is why to SOAP receiver must point to the own host. This also lead to scenario changes as there is no need for 4 separate receivers and their 4 corresponding SOAP receiver channels. Follow the configuration described in SAP Note 2745249 - Implementation of ELSTER modules using the ERiC libraries (check the attachment in the SAP Note).
4.1. Remove the receiver determination rules and the additional receivers
Remove the receiver determination rules in the corresponding Integration Configuration's (ICO) receiver tab or in case of classical scenario in the Receiver Determination object. No rules are required and only one receiver and therefore one receiver channel is needed. The ERiC application will send the data to the 4 Clearinghouses. Make sure to change the receiver component to be one of the previously used ones like ElsterServer1 and use this as the only one receiver without any receiver determination rules.
If there receiver determination rules are not followed it can lead to message processing errors described in KBA 2890604 - Elster ERiC errors - PI ERROR 01 VERSION com.sap.engine.interfaces.messaging.api.exception.RetryControlException: Receiver Determination did not find any receivers at all.
4.2. Remove the RFC_To_Elster operation mapping
The operation mapping RFC_To_Elster must be removed from the scenario. If it's not removed it can lead to message processing errors described in KBA 2887097 - Elster ERiC errors - org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 50; The processing instruction target matching "[xX][mM][lL]" is not allowed. The following steps describe how to remove the mapping:
- Assign the receiver inbound Elster_In interface to your receiver component (example: ElsterServer1) with the set party (example:Clearing_house)
- Remove the receiver interface line in the ICO's receiver interfaces tab or if you use a classical scenario, remove it from the interface determination tab.
- Add back a receiver interface with in the ICO's receiver interfaces tab or if you use a classical scenario, add it from the interface determination tab by selecting the interface only without the mapping.