In my blog about the Seeburger EDI-Adapters for SAP PI I ( http://scn.sap.com/blogs/seeburger_edi ) , I have been asked for some tutorial to configure a simple end to end B2B Scenario with Seeburger and SAP PI. Although this is not a new topic, I decided to setup a scenario on a 7.3.1 environment with Dual Stack (using the Standard Configuration) since there might still be some consultants that are relatively new to the topic.
I have tried not just to provide here a lot of screenshots without any explanation, but also to explain the basic concept behind the scenario and the handling of EDI-files. This makes this post very long, but I hope it helps to get a good understanding.
The “Repository settings” can be found at the end of the blog” but it is recommended to setup these objects first as they will be needed to do the Directory-Configuration.
In this scenario, there are 4 Parties/Entities involved
2 Customers that send edi-orders in the format ANSIX12_850_V4010, called “ElectronicWorld” and “GlobalElectronics”
1 ServiceProvider called “RetailHub” which sends data for both customers through one AS2-Connection
1 Supplier, called “Seeburger” that receives the orders from both partners and processes these orders in the SAP Backend.
In addition, I have setup a FilePort, using the same parameters in the ModuleChain like the AS2-Channel, which allows for a manual reprocessing of any received file. Therefor the ModuleChain also includes a parameter to save the OriginalEDI-File.
In general all receiving scenarios follow a 2 Step approach
Step 1: Technical Setup to receive file
– Receiving the files via AS2 or FilePort
– Analyzing the files (Classifier, BIC, Splitter) and forwarding each single message to the corresponding business partner (according to the
SenderID in the ISA-Segment)
Step 2: Processing the data according to partner/ messagetype – information
– for each businesspartner, an own party is existing with a Split-Channel for each messagetype.
For Step 1 (receiving the data) , the following objects are used:
The object EDI_SP_Seeburger is only used as “Receiver Party” in the AS2-Sender Agreement and contains the own AS2-ID
(the object EDI_SP_RetailHub has included its AS2-ID in the same area)
EDI_SP_RetailHub and EDI_SP_ManualRestart both include a SenderCommunicationChannel with all steps needed for the analyzing and splitting of the received data.
=> This setup will classify the incoming data (to see if it is EDIFACT, ANSIX12, TRADACOM, XML, FLATFILE…) and afterwards dynamically detect which Conversion-Rule (e.g. from ANSI X12 to the equivalent ANSI XML-structure) needs to be used.
The Splitter will then create one single XML-File (MainDocument) for each message (in ANSI X2 for each ST-Loop…in EDIFACT for each UNH…)
According to the SenderID in the ANSI X12 message, the messages are then forwarded to the different business partners/entities
The SenderAgreements look like following:
(No signature/encryption is used in this example, as the focus is lying on the EDI-handling and not on this specific AS2-feature…but if requested, it can be added to this scenario easily)
For Step 2 (assigning each partner/messagetype to the corresponding business party) the following 2 Parties (Customers) have been setup in Integration Directory:
The following convention has been used in this scenario
Party: real name of the customer (with Prefix EDI_BP…)
Component: SenderID of ISA-Segment
In the screenshot, the 2 business partners/customers can be seen and an inbound-channel has been created (using the Split-997-Adapter). These Split Channels always process the “splitted” messages from the previous step.
In the following Screenshots, the next steps for processing these file can be seen
Connection between Step 1 and Step 2.
To connect the output of the MessageSplitter with the correct Inbound Channels “from Split”, an entry needs to be existing in the SeeburgerWorkbench for this partner/message combination:
Keys are :
Sender => ISA-Sender ID
MappingName => detected messagetype and version
SInce the Sender Agreement for the 2 BusinessPartners have been created in previous step, they can just be selected in this area by first selecting the “Sender-Party”, then click on “Search Services” to get a list of all services for this Party…and then select the proper Channel “fromSplit_850_V4010”.
After setting up both partners, the MessageSplitter area in the Workbench includes the following 2 lines
By using the “State” field (accepted or partly accepted) it can be decided how to handle large files with multiple messages (ST / UNH segments), if some of these messages are not correct
=> either the complete file can be stopped, or the correct mesages are processed anyway and the partner is informed via 997 which of the messages need to be corrected and transmitted again.
To setup the complete End2End-Scenario there are also some objects needed in the Repository which are mentioned in the following section.
The following objects are needed in the Repository
– Interface / External Definition for the ANSIX12 850 processing
– Interface / External Definition for the FunctionalAcknowledgement (used to create 997 messages in additional steps)
– Imported IDoc
– Message Mapping and OperationsMapping
These objects are available as templates with most of the Industry-Packages.
In this section, I will soon provide additional screenshot from the process flow and the monitoring of this scenario.
Additionally some screenshots regarding the 997 handling will be provided,
Here I will also provide some 850-Testdata that can be used to setup/test this scenario
Any feedback is appreciated to enhance this post in future and add additional descriptions/features.