Skip to Content

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.

Scenario-Description:

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.

Unbenannt.jpg

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.

Directory Setup:

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

Important Feature:

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.

Repository Setup

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.

Runtime:

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,

Testdata:

Here I will also provide some 850-Testdata that can be used to setup/test this scenario

Feedback:

Any feedback is appreciated to enhance this post in future and add additional descriptions/features.



To report this post you need to login first.

9 Comments

You must be Logged on to comment or reply to a post.

  1. Wilbert Karremans

    Hi Stefan

    I have implemented this scenario in a sandbox setup. I was able to save a message in EDI_SP_Seeburger with AS2ID with value Seeburger. That was really OK. But when we receive messages from our provider hub, messaging is done between EDI_SP_Provider and EDI_SP_myAS2ID. I tried to use EDI_SP_myAS2ID as a place where data is stored and the SPLIT997 can pickup the messages. However, that is not possible. Is party with AS2ID Seeburger some kind of special value? I contacted my provider, but they told me that message exchange should be between EDI_SP_Provider and EDI_SPmyAS2ID. I can not use EDP_SP_Provider in combination with EDI_SP_Seeburger. But I believe it must be possible somehow, but I don’t know how. Can you guide me? What do I miss here?

    Wilbert

    (0) 
    1. Stefan Hilpp Post author

      Hi,

      in general, your Provider is right that the AS2-Communication is done between EDI_SP_Provider and EDI_SP_myAS2ID….

      However, I don´t really understand your configuration…and what the problem is.

      You only wrote “”However, that is not possible”…

      What kind of data do receive and what should happen to this data ?

      Can you provide screenshots of your configuration so that it becomes clear what you try to accomplish with this scenario ?

      KR

      Stefan

      (0) 
      1. Wilbert Karremans

        Hi Stefan

        I resolved my issue. It was described in SCN thread 3592001.

        I first setup the scenario exactly as you described. Once I understood it, I reconfigured it to my own scenario. During that process I copied an active channel. The systems gets confused by that. (cannot get binding for channel) That can be resolved by editing / save / active the communication channel. But that you very much for this blog!! I will give you the credit for it.

        Wilbert

        (0) 

Leave a Reply