cancel
Showing results for 
Search instead for 
Did you mean: 

Data Conversion in PI (Tables in PI)

Former Member
0 Kudos

Hi Guys,

I have the following proposed synchronous scenario:

Outbound:

Proxy u2192 PI u2192 JDBC

Inbound:

JDBC u2192 PI u2192 IDoc

This is means: An SAP application triggers a Proxy, gets to PI and then makes a SELECT in a Data Base, and then itu2019s results are loaded with an IDoc back SAP.

Now, the problem is that in order to load the IDoc, I need some parameters that are deduced from the results of the SELECT in the Data Base (JDBC). Now in order to load correctly the IDoc, I need a couple of tables that are maintained in SAP, that are changing constantly.

The Idea that I had, is that in the Outbound message I should include (along with the JDBC SELECT parameters) the data of the tables that will be used to obtain all of the parameters of the IDoc.

Now my question is. Where and How can I save or store, the data in PI that will be sent in the outbound message? In a regular ABAP table? How can I do this? How can I access this tables in the returning message? I have never used a PI table and use it aftwards.

Please take notice that Iu2019m not keen to use Lookups because the amount of expected messages is huge, so it would represent more message traffic.

I hope you could understand my problem and scenario, and more important, if you have any ideas of how can I work this out.

Thanks,

Felipe

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi Felipe,

You can change little bit on your integration scenario. In stead of using JDBC ---> PI -


> IDOC,

to JDBC ---> PI ---> ABAP Proxy.

And you can build the IDOC insite the ABAP Proxy. This method can avoid Lookup scenario.

Hope can help.

Best Regards

Fernand

Former Member
0 Kudos

Hi Fernand,

You're rigth, at the begining I thougth of doing that, receiving the message in a ABAP Proxy, and then loading the IDOC. But in that case it will make no difference in using the standar IDOC or the BAPI to load the data.

Now a question comes up, is there any difference of loading an IDOC or loading a BAPI (they both do the same thing) from an ABAP Proxy?

What I want to reduce is the time of processing in the SAP Backend System.

Felipe

Former Member
0 Kudos

This message was moderated.

Former Member
0 Kudos

Hello Gaurav,

Well I'm trying to use the IDoc, because I have understand that loading the data with an IDoc, will perform much better than using a BAPI. I have understand that an IDoc has a lower priority of execution and it will not overload the SAP machine. Please correct me if I'm wrong.

Felipe

Former Member
0 Kudos

If you used a bapi, you could perform user exits to get the correct and current data required when you load into ECC

Idocs write directly to the database without any program checks...

Former Member
0 Kudos

Barry Thanks,

So I guess my theory was rigth, It would be more efficient to use an IDoc insted of a BAPI.

Now to my original question, what could be the best to do?

To search for the data needed in the IDoc (one or two fields) once the message arrives through ABAP Proxy to the SAP Backend System and then load the IDoc from the ABAP Proxy.

Or

To search for the data of the IDoc (one or two fields), in PI and then loading the IDoc directly from PI? In this case, how can I transfer, store and retrieve this data in PI?

Thanks for your help,

Felipe

Former Member
0 Kudos

Either way would work, although the ABAP Proxy would not use a BPM which would slow the mapping down! I am not proficient in ABAP (*yet!), but I would recommend that route!

Former Member
0 Kudos

Hi guys,

I finally went with the solution of using a Proxy, building the IDOC in the Proxy and then loading it as if it was comming from an external service.

Thanks all for your contributions.

Felipe

Former Member
0 Kudos

>>I need some parameters that are deduced from the results of the SELECT in the Data Base (JDBC).

Why not use RFC lookups for this,based upon the values you are getting back from JDBC,you can do a lookup and populate the structure.

Thanx

Aamir

Former Member
0 Kudos

Aamir,

Thanks for your reply.

Now as said before, I want to aboid using Lookups, because the lookup itself, represent another trafic between PI and the SAP backend app (correct me if I'm wrong about this). And the amount of results that are going to be brougth from JDBC is pretty big (more than 40.000 a day). So I want to aboid at most the traffic between PI and SAP.

Felipe