cancel
Showing results for 
Search instead for 
Did you mean: 

Design Question

udo_martens
Active Contributor
0 Kudos

Hi,

my requirement is to connect a SAP system to a 3rd Party system using JSON format (a kind of a text format). I m on PI 7.1.

I want to implement a couple of processes, i think i will start with fetching master data (customers, vendors). SAP need to fetch data from 3rd party. The other processes are similar.

The 3rd Party system offers certain services, assumedly PI has to call first one of them and will use the return message (which contains links/URLs to other services) to get more details.

First question: Would you put this logic into a Business Process or would you prefer to put that into the calling ABAP program?

Second question: Would you  call the SAP BAPI (or IDoc, if you think that it is preferable) from PI (a Business Process) or from the calling ABAP program?

It would be very nice if you could give me arguments for your decision!

I need to send the requests to the 3rd party system with http get, what is not supported by PI standard.

Third Question: Would you access the 3rd party system from a Mapping program (like Java or ABAP) or would you go for SOAP Axis receiver adapter? What is easier / what is better to maintain / what provides a better error handling? Who has experience with AXIS or http get via a mapping program?

Thanks for your input,

Udo

Accepted Solutions (1)

Accepted Solutions (1)

baskar_gopalakrishnan2
Active Contributor
0 Kudos

Answering your third question:

Is your target system uses Restful Web service? I dont see any problem in using java mapping to send json data during mapping. It does takes care error handling . Not a issue. Only thing I see the difference between Axis and java mapping is that Axis adapter gives nice visibility in the monitoring section.  Otherwise custom java mapping is much better in the error handling and maintaning too. You might want to use apache axis client libraries to code the client program to call Rest websevice to send the json data format.

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi Udo, how r u?

i did something like that in a message mapping with Apache HTTPClient Libary.

Trigger a proxy with some parameters like date and service Url's. Than the mapping start to call some Webservices and some normal HTTP GET Requests to some Websites and in the end it create multiple ExchangeRate IDOC's which processed to SAP.

regards,

Robin

Former Member
0 Kudos

Udo,

Considering that you mentioned JSON and link/URL, it appears to me that you are integrating with Salesforce.com. If yes, let me know I can suggest an alternate approach that we implemented.

In your 2nd question, why would you consider calling a BAPI from PI to connect to 3rd party system? What is the purpose?

thanks

praveen

udo_martens
Active Contributor
0 Kudos

Hi Praveen,

thanks for your answer

no, i m integrating with Salesforce.com but anyway, it would be interesting for me get your suggestion, it might be a good approach for me as well.

The planned design is: An ABAP program is calling a synchronous proxy, the message triggers a Business Process. The process has to call certain services of  the 3rd party system and merge the data to a BAP call to the SAP system (synchronous to catch errors). Finally a proxy response is sent back to close the S/A bridge.

/Udo

Former Member
0 Kudos

Udo,

In my case, I had to call login web service to get the session id & dynamic URL that I need to use it in my second web service call for the data operation. Instead of calling the 1st operation prior to every second operation, we have scheduled the interface for the 1st operation to run periodically (depending on the session validity period) and store the session information in PI value mapping cache. Mapping of the interface for 2nd operation would retrieve session data via standard Value Mapping lookup function and set it in the dynamic config. By doing this, I eliminated the need for BPM. Also, the session information can be reused by multiple interfaces, it is the primary motive.

To answer the your 1st & 2nd questions from the original post, I would let the ABAP program that is calling the synch proxy call the BAPI after getting the response from 3rd party via PI since BAPI response is better handled in ABAP than in PI esp considering that the interface is initiated by the ABAP program.

Hope it helps.

cheers

praveen