on 12-30-2005 10:03 AM
Hi Friends,
We have a scenario where we read a file through file adapter and insert the data into a R/3 system through RFC Adapter.Here actually we are calling a BAPI to insert the data into corresponding tables of R/3. But the problem is BAPI won't commit automatically.
So for that we have used one more BAPI called BAPI_TRANSACTION_COMMIT through that we tried to commit. So in this scenario we need to call two Bapis , for that we have cerated one Receiver determination and two interface determinations, two interface mappings. In one interface mapping we are just passing the Constant value X for BAPI_TRANSACTION_COMMIT.we have included these 2 interface determinations in a single receiver determination.
But i am getting an Error in Adapter Engine. In SXMB_MONI it is showing that 2 messages are processed successfully, but when we look in message monitoring for AdapterEngine the status is System error for first Bapi and holding for 2nd Bapi. For the First Bapi the error it is showing is
"Exception caught by adapter framework: DeliverySemantics EOIO not supported".
But we are not at all using Exactly Once Inorder any where in our scenario.Actually what is the use of Exactly once in order.
Regards,
Gowtham K.
Gowtham,
Check which SP you have. Starting with SP 14, you need not specifically use BAPI_TRANSACTION_COMMIT. There is a check-box for auto-commit in the Receiver RFC Communication Channel/Adapter.
Check the help ...
http://help.sap.com/saphelp_nw04/helpdata/EN/c8/e80440a832e369e10000000a155106/content.htm
This will avoid writing a wrapper RFC/BAPI.
Again, this possible from SP14 upwards.
Regards,
Homiar.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
... like file to R/3
Look at the BAPI documentation:
"Asynchronous BAPIs are generally used for replicating data on one or more logical systems, for example to distribute article master data.
To implement an asynchronous data transfer with a BAPI, an ALE IDoc interface must be generated. This interface controls all of the data communication between logical systems using IDoc technology. The application then calls the generated ALE IDoc interface locally instead of the BAPIs."
http://help.sap.com/saphelp_nw04/helpdata/en/08/bef2dddb5311d1ad10080009b0fb56/frameset.htm
Regards
Stefan
Hi Goutham,
<i>>So in this scenario we need to call two
> Bapis ,</i>
Do you mean that you have imported both these BAPIs into XI???
I think you need to import the wrapper BAPI only.
regards,
Priyanka
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Gowtham,
when you split your message in two async calls to the same receiver, the messages are put automatically in an EOIO queue. The RFC adapter cannot deal with EOIO therefore you cannot create a sceanrio like this.
It won't work anyway, as the messages are posted in different LUW so the first BAPI won't be commited.
You can do following: Write a wrapper RFC which calls the BAPI and commits, or (the better way) use an IDOC instead of the BAPI. If no IDOC exists, create it with transaction code BAPI.
Regards
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
>>>how to create an Idoc from Bapi using Transaction BAPI.
you can generate IDOC from bapi
have a look at this page:
http://help.sap.com/saphelp_util471/helpdata/en/78/21740f51ce11d189570000e829fbbd/content.htm
it shows step by step how to do it
TCODE - BDBG as far as I remember
BTW
remember this:
"In customer systems all object names must begin with Y or Z or with their own prefix."
when you're creating your idoc from BAPI
Regards,
michal
Hi,
there's aven a document on this:
https://websmp206.sap-ag.de/~sapdownload/011000358700000328352005E/HowtouseBAPandccBPM.pdf
BTW
this is not needed with SP14 as you can commit bapi calls
with RFC receiver adapter from SP14
Regards,
michal
Choose your BAPI from list and click.
Check the field ALE message type. If it is filled, take this IDOC. Otherwise: Environment -> Generate ALE interface.
For monitoring pupose it is better to use IDOCs instead of BAPIs for asynchronous processing. When an error occurs in the BAPI, the error message is lost.
An other solution is writing a wrapper RFC which not only does the commit, it should also deal with the BAPI response and starts error processing.
Regards
Stefan
User | Count |
---|---|
84 | |
25 | |
12 | |
9 | |
7 | |
6 | |
5 | |
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.