USE
Testing of synchronous interfaces is based on validation of
1. Response message
2. Validation of the document posted in SAP Backend by synchronous interface (optional)
There are three ways to create configuration for testing the synchronous interface:
a) Option 1: Regular way like any other asynchronous interfaces (without connectivity testing)
b) Option 2: By creation of Receiver Channel that will call tested interface Sender channel (within connectivity testing)
c) Option 3: Direct call of HTTP endpoint (used for REST adapter testing) in SAP PO system
OPTION 1 - Recommended option for testing synchronous scenarios
Configuration object described like below will allow to create test cases based on existing messages in PI persistence. It would also allow to use PI Message Selector.
PROCEDURE
- Make sure the PI interface staging & logging is set as below:
The BI Logging (not staging) must be activated to fetch the original input message with correct sender interface in XI 3.0 Header. This stores the request source and response target messages
There is no staging for synchronous messages. Whatever you configure will be ignored anyway.
or this might be already settings of global persistence settings, as it is recommended by Int4: SAP PI/PO JAVA Stack Persistence - Please note that in Message Monitoring the messages are visible with Inbound (Receiver) Interface name.
This is opposite to all asynchronous scenarios that staging MS leaves them with Outbound (Sender) Interface name
Exemplary ICO of synchronous interface:
And the sample message in PI/PO monitoring:
The request message is presented with the "SI_I_CR_SALESORDER_SYNC" interface, so actually the Interface name is a name of Receiver Interface (see above ICO screenshot).
In the object definition we will add the proper sender interface (as per ICO):
but we need to let int4 IFTT know that those messages appear in SAP PO monitoring differently as on above screenshot. This is done by additional parameters:
More details on the parameters in the additional parameter section.
3. Additionally we must indicate that as a request message we would like to fetch BI version, that logging we activated in ICO in step 1:
This is mandatory otherwise the wrong content will be fetched from PI.
4. Create a first test case and test your object definition. The test case is created based on GUID of existing message
More details about SAP PO behavior: https://launchpad.support.sap.com/#/notes/2515359
OPTION 2 - Testing via dedicated Receiver Channel (obsolete)
This approach will also fully validate the communication channel processing.
Please note that currently int4 IFTT handles only UFT-8 encoding the synchronous calls using dedicated receiving channels.
The Proxy Sender channel testing is unsupported via option 2 (Option 1 must be used instead).
In opposite to Option 1, the test cases are created based on uploading manually the request payloads.
PROCEDURE
- Identify sample payload of request message of the tested interface
- Identify an ICO and collect:
- sender
- sender interface & namespace
- Create a receiver communication channel for sender. This channel will be used to trigger the real PI interface and is going to be tested.
Create a new object definition with: description, name and the namespace of the tested interface
- set Additional Parameters:
- PI: Synchronous: Receiver Channel BC with Business Component in wchich channel from step 3 was created
- PI: Synchronous: Receiver Channel Party with Party where the business component was created. Even if component was created without party the parameter is needed (with empty value)
- PI: Synchronous: Receiver channel name with name of created channel
- In Object Variables & Variable Processing define variables names and descriptions (optional).
- Define Number Ranges that can be used i.e. to generate values for messages created after the test case execution (optional)
- Define Database Comparison Rules define Table Names of those tables that should be compared (optional)
- Define Payload Validation Ignore List for expected differences in responses.
- Create a first test case and test your object definition.
Option 3: Only for pure HTTP interfaces, by direct call of HTTP endpoint (used for REST adapter testing)
please follow Creating the configuration object for REST/JSON interface