cancel
Showing results for 
Search instead for 
Did you mean: 

IDOC from R3 -> their PI -> our PI -> our R3

former_member201275
Active Contributor
0 Kudos

Hi,

We want to send an IDOC from an R3 system to PI, from this PI system to our PI system and then to our R3.

Please can someone advise me on how to achieve the PI to PI bit, the other two sections I am familiar with but not sent from PI to PI before. Any help greatly appreciated.

Accepted Solutions (1)

Accepted Solutions (1)

former_member201275
Active Contributor
0 Kudos

Hi,

Thank you all once again so far for your help. As I am a beginner in terms of PI I have some more questions on the same theme as above. I apologise in advance for what are probably stupid questions.

First is, why should I use a SOAP adapter type and not IDOC?

Second, I want to try to understand what I should create on PI system before I start, please can you let me know if the steps I have detailed below are correct, in particular I am not certain on step 3:

  

1.   1. create a Config Scenario with 3 business systems i.e. BS_CLIENT_PORTAL, BS_MY_PORTAL, BS_MY_R3

2.   2. create Sender Communication Channel for BS_CLIENT_PORTAL, adapter type SOAP, transport protocol HTTP.

3.   3. create Receiver Communication Channel for BS_MY_PORTAL, adapter SOAP, transport protocol HTTP, with a target URL.

4.   4. create Receiver Communication Channel for BS_MY_R3, adapter type IDOC, transport protocol HTTP.

5.   5. create Receiver Determination; Communication Component BS_MY_PORTAL, under configured receivers BS_MY_R3

6.   6. create Interface Determination for; Sender Communication Component BS_MY_PORTAL, Receiver CC BS_MY_R3

7.   7. create Receiver agreement for; Sender Communication Component BS_MY_PORTAL, Receiver CC BS_MY_R3 

    

      Thank you.

3

Th

vijayanandpaul_puvvula3
Active Participant
0 Kudos

Dear Anthony,

I have addressed such requirement before. Following are the things you need to do,

1. You need to add the PI2 system into your PI1 landscape and vice versa. This is the SLD part.

2. Import the System into your Integration Directory.

Note: I guess the above 2 steps would have been setup

3. Create 2 Communication channels with 'XI' protocol to the other PI systems (PI1 to PI2 and vice versa)

4. For every interface you need to create a pass through scenario (Use Configuration Wizard for this)

5. If you are using same IDOC Type with same version, you should be fine since sender message in PI1 and receiver message in PI2 will be same.

Let me know if still have any questions.

Regards,

Vijay.

former_member201275
Active Contributor
0 Kudos

Hi Vijay,

Thankyou for your valuable help.

The first 2 steps you have above are complete i.e. systems exist in the ID. I have created 2 communication channels. The Sender looks as follows:

The receiver I have setup as below but I am not sure if this is correct. I don't really understand the url portion. Do I need a url address?

Last question. The Config wizard, should I use this to setup the incoming message from Client PI to my PI, or from my PI to my R3 system? Or for both?

Thank you in advance,

Glen.

former_member184720
Active Contributor
0 Kudos

>>>The Config wizard, should I use this to setup the incoming message from Client PI to my PI, or from my PI to my R3 system? Or for both?

As you are receiving the message form outside partner's PI system, you should setup the interface from your PI system -> your R3 system.

Client PI system would be able to post to your PI using the URL..

In your soap sender channel, change the message protocol to SOAP 1.1

Then your client system would be able to post the message to your PI system using any of the below URL's.

  • http:// <host name> : <port name> /XISOAPAdapter/MessageServlet?channel=<party name> : <service name> : <channel name> . If you have not created a party, enterchannel=: <service name> : <channel name>

  • http:// <host name> : <port name> /XISOAPAdapter/MessageServlet?senderParty=<name of the sender party> &senderService= <name of the sender service>&interface= <name of the interface> &receiverParty= <name of the receiver party> &receiverService= <name of the receiver service> &interfaceNamespace=<name of the interface namespace>

Reference : https://help.sap.com/saphelp_nw73/helpdata/en/48/3555240bea31c3e10000000a42189d/frameset.htm


And you don't need soap receiver channel, as you are trying to create an IDOC in your ECC system. So you should use IDOC adapter.

former_member201275
Active Contributor
0 Kudos

Hi Hareesh,

I have been able to run the Config Wizard to successfully create the necessary objects between My PI system and my ECC system.

Thank you also for the link.

Do you know how I can go about testing this as I don't have access to the client system therefore I cannot send the IDOC from there?

former_member184720
Active Contributor
0 Kudos

I believe you have developed a pass through scenario.(soap -> IDOC) in your PI system.

You can post sample IDOC data from SOAP UI

former_member201275
Active Contributor
0 Kudos

Hi Hareesh,

How do i access SOAP UI, is there a transaction from my R3 system?

former_member184720
Active Contributor
0 Kudos

I believe your version is 7.1x, you can even post the message from RWB.(http:// host : port/ rwb -> component monitoring -> Integration engine -> test message)

SOAP UI is a third party utility which helps in testing web services.

SoapUI | SourceForge.net

Your First SoapUI Project | Getting started

Answers (3)

Answers (3)

former_member201275
Active Contributor
0 Kudos

Hi All,

Thank you for your valuable input.

I forgot to put the following info: the PI version we are on is 7.1, the IDOC type is CREMAS, and there is no mapping required.

former_member184720
Active Contributor
0 Kudos

It's fine.. you can still go with above suggested design.

Instead of IDOC_AAE, you'll be using IDOC channel. If you get additional namespaces there are other workarounds.

Please try and share your findings.

former_member184720
Active Contributor
0 Kudos

You can configure the flow like this -

R3 -> PI1 (Soap Receiver) -> PI2 (Soap Sender ) -> R3

Having said that, you don't need to define any data types/message types in second PI system.

from their PI system(PI1), you can make a call to your PI system (PI2).

Configure Soap Receiver -> to your Soap sender

http://host : port /XISOAPAdapter/MessageServlet?channel=<<party>>:<<BS>>:<<channel name>>

If you don't have any transformation(mapping) this interface should still work but as you are sending the IDOC using soap adapter, you might expect unnecessary namespace in the payload.

This can be removed just by adding XML anonymizer bean in the module processor of IDOC receiver channel.


In other words - if you don't have any mapping, both the scenario can be a pass through interfaces(except importing IDOC part)

engswee
Active Contributor
0 Kudos

Just to add on.


If you don't have any transformation(mapping) this interface should still work but as you are sending the IDOC using soap adapter, you might expect unnecessary namespace in the payload.

I don't think you would get extra namespace in the payload if you don't perform any mapping on the sender PI system


This can be removed just by adding XML anonymizer bean in the module processor of IDOC receiver channel.

Even if you have namespaces, note that adding the bean is only available if you are using IDoc_AAE - your PI version and type was not mentioned

former_member184720
Active Contributor
0 Kudos

>>> I don't think you would get extra namespace in the payload if you don't perform any mapping on the sender PI system

I know it doesn't make any sense but I remember facing such issue with my previous client(external PI system reported it) So just wanted to give a heads-up and a possible solution to fix.

engswee
Active Contributor
0 Kudos

I see. I had an exact similar setup (B2B IDoc transfer between two ECC systems via SOAP on 2 PI systems) and it did not require any namespace tweaking.

I guess sometimes it all boils down to some specific details that are unique to an interface scenario.

Thanks for sharing it though. Good point to keep in mind if ever I come across such a scenario.

Former Member
0 Kudos

Glen,

I may be wrong here but i think there is a way to make PI system as a sender system as well. For instance the data flow is like this:

R3(1) > PI1 > PI2 > R3(2).

Now, R3(1) system is connected using IDOCs to system PI1 as sender & on receiver side we can create data types and message types with known data fields. This way, PI1 settings are completed.

Now, shooting an arrow in the dark, We can i think download the WSDL of this PI set up which will expose datatypes and message types created & use this WSDl in PI2 system as a sender. The receiver of PI2 system is R3(2) which is your choice to connect using proxy or IDOC.


Do let me know your inputs.

Rgds,

Ravi