cancel
Showing results for 
Search instead for 
Did you mean: 

Best Practice for reading SAP Data/Table

adnanmaqbool
Contributor
0 Kudos

Dear All

We have a requirement where we are going to read data from SAP Tables, e.g. Goods Receipt data using PI and will send it to Third Party System.

We can schedule a program to read the latest updated data (using select statements) after particular intervals or we can read it based on events e.g. (On Saving Good Receipts).

Which one is best approach with pros and cons.

Accepted Solutions (0)

Answers (4)

Answers (4)

iaki_vila
Active Contributor
0 Kudos

Hi Adnan,,

In my opinion the best way is to schedule a job in R/3 to search the new table entries calling the PI via ABAP proxy. You only need to take into account dont generate messages with more than 10MB or similar size depending your PI dimensions to avoid overload the PI.

Regards.

adnanmaqbool
Contributor
0 Kudos

Hi Inaki

I am seeing two possible issues with this approach.

  1. We are continuously pinging the database with scheduled program for triggering the oubound interface and looking for any new record, while for Event based scenario it will save this overhead on system and no database search is required.
  2. If due to some reason scheduled programs gets stopped then program itself cannot identify which records has been already sent to Third Party and which one are newly created.
adnanmaqbool
Contributor
0 Kudos

Dear All

Let me clear further, my question is not related to that how to perform it. It s related to which approach is risky free and optimized.

Let me give example:

Lets say a table is having 100 records initially and we moved those records to third party.

Now after 10 Mins ( Program is scheduled for 10 Min Periodic Job) lets say table is having 40 new records. Now we can identify new records by searching the records which were created in last 10 Mins.

Another approach is to trigger the message transferring to third part at the time of save event of a transaction.

Ryan-Crosby
Active Contributor
0 Kudos

Hi Adnan,

You could also setup ALE to create change documents each time new records are inserted into the table which would make the searching for new records a very easy task.  Is this a synchronous or asynchronous call to the third party system?  If it's synchronous then I would definitely go the route of the background job because you don't want users waiting in the event there are any connection troubles.  If it's asynchronous and you want to trigger the transfer from the save event - you'd want to be careful of how you do a COMMIT WORK to initiate the message.  I'd probably lean the way of the background job because you can collect up several hundred messages into one at a predefined interval and you don't have to worry about any trouble with impacting SAVE of a transaction in the system.

Regards,

Ryan Crosby

Former Member
0 Kudos

Hi Adnan,

Please go through the below link.

Best practice for pulling SAP table contents wi... | SCN

Regards

Venkat

gagandeep_batra
Active Contributor
0 Kudos

Hi Adnan,

You can go for Outbound proxy scenario.. using that program you can trigger that proxy...

Regards

Gagan