on 03-17-2007 10:56 AM
Hi
I have a scenario where the customer would send a huge file ( aorund 2 million records), our file adapter picks up the file and maps it BAPI_PO_CREATE and creates a purchase order and get the responses back from BAPI with the PO number created and send them back to the customer.
As far as I understand, since the number of records are huge we usually use asynchronous mode to call the BAPI, My question is now how do we get the PO order numbers created?.
I have the following options
1. Call ABAP Proxy (Wrapper function module) asynchronously, which inturn calls the BAPI Synchronously and use the same ABAP Proxy to return the response to XI asynchronously.
2. Call the BAPI asynchrously through RFC Adapter and then use ABAP Proxy to return the response back to XI. ( Not sure how this can be implemented)
Any help on this would be appreciated.
Hi Rakesh,
In our project facing the same problems, we do just like these:
1. Using ABAP server proxy(asynchronous) trans to R3 and store the info into the tables created just before.
2. Schedule a job in R3 calling the BAPIs,and store the PO numbers to another table.
3. Call a ABAP client proxy(asynchronous) trans the respones.
BTW, Maybe, Using a flag column sign the process creating POs successful or not is useful. You can rehandle these error records automatic next time. Also, you can using a column record why error occur.
Regards
Terry
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Rakesh,
I am sorry, the step 2 and step 3 just in one report program. At the end of loop the table calling BAPIs, Call the ABAP Client Proxy to send the PO numbers that crearted just before.
Hi Sergey,
Probably, your choice will be running very well deal with a small message.But for dealing with a huge message with many many PO records, I don't think it is a wise choice. I make my choice focus on performance in R3.
Just you say, call BAPI dicrectly from ABAP Server proxy, if the message is very large, it will be take long times processing. Only once one record in message has error occurs calling the BAPIs, This message will be set to application error. So you have to restart these error message frequently, that likely cause deadlock because of calling BAPIs will consume resources. Also that maybe make the inbound queue block up.
We have make a flag sign the failed POs in the table, it will be rehandle next time.
Regards
Terry
Hi,
Check the following blog:
<a href="/people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit to RFC</a>
Hope this helps.
Regards,
Gajendra.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Venu and Gajendra
Gajendra -- Even I have worked on this scenario but i do not think it is advisable for processing huge data file.
Venu - I understand we need to call BAPI Asynchronously and if u think SAP is going to store the PO Numbers created on a table, do u think we need use User-Exits to trigger any response to send back the data to XI.
Let me know if my question is unclear.
Thanks
Rakesh
Hi,
>>>>I understand we need to call BAPI Asynchronously and if u think SAP is going to store the PO Numbers created on a table
AFAIK there is no bapi for creating multiple POs
do as you've proposed:
- call ABAP server proxy
- call BAPIs in a loop and store the PO numbers
- call another asyn client proxy with a response
Regards,
michal
-
<a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>
thanks Michal for validating my response to his query.
but according to him I understood, client want to map the source records to single BAPI ie BAPI_PO_CREATE which will post at once for all records to SAP.
In this case can we suggest him to use proxy only..for performace reasons or someother if any...
thanks,
venu.
Hi Rakesh,
Since the number of records is huge, I can suggest use asynchronous process, in this case SAP side after posting all the transactions there should be a mechanism to log the PO number and success message in a file or any Data base Table.(Just create file with the message in application server , XI will process asynchronously to send this success message to sender side) or ( Just store information in Table and send the data to source through client proxy)
Case 1
If you are directly mapping to BAPI no need to go for Proxy,
If not mapping directly use server proxy to send the data to SAP abap format. And post the data to BAPI.
In either case I suggest asynchronous only.
Case 2.
It is not clear, hope I explained in case 1, if I could understand correctly.
Note: Welcome Debate on this process.
Cheers,
venu
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
84 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.