on 03-15-2007 9:04 AM
Hi.
I have a scenario where one message from a legacy system can map into one or more messages.
Ex.(JMS->XI->IDOC's)
-> DEBMAS06 (0..unbounded)
message -> XI -> ADR3MAS02 (0..unbounded)
-> LINK01 (0..unbounded)
Question:
Is it possible to ensure that the complete transaction is on tRFC before commit?
Right now I have a parallel flow where the split is done in the interface determination. And I have no chance of stopping successful processed messages, if an error should occur in another flow!?!
I did the scenario as a BPM, where all transformation (mapping) is done before the individual send steps are executed. Not that it is very likely, but the possibility of one send step successfully sends the IDOC, followed by another send step that fails, could occur. This means that it is not 100% transactional handled.
What I would like, is a way to put the IDOC's on the tRFC queue, and first release them, when all messages are successfully in place!
Any ideas?
Regards...
Peter
HI,
You can use the send step in a block and use the mode ForEach to send one by one.
As explained by above by bhavesh you can use the IDoc Ack in BPM and Correlation on send step it may be possible.but performance wise you would have to think.
Next is commit in one single tRFC, see the below links
http://help.sap.com/saphelp_nw04/helpdata/en/22/042578488911d189490000e829fbbd/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/6f/1bd5b6a85b11d6b28500508b5d5211/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/18/22b800773211d396b20004ac96334b/frameset.htm
Regards
Chilla
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Chilla.
Thanks for you reply as well.
I still can't see a way in XI to ensure a transactional commit for the interface.
Even when using acknowledgements (in BPM), you are not able to rollback a successfully committed message, if an error should occur afterwards!
Next step was to look into the qRFC, but again. I have found no way to hold back the messages until all is committed.
Another problem is, I dont know how many IDOCs that are created, for one incomming message, and there's no bindings between them.
On top of that, the IDOC's are bundled!!!
Normally this is not an issue in XI, since the interface would be designed to work differently, or the programs in R3, would take care of any such things.
Im currently replacing interfaces from IBM Message Broker to SAP XI. And the transactional feature is a standard way to handle messages there!!!
Regards...
Peter
Peter,
Instead of using a BPM, you can in the Interface Determination select "Maintain Interface order at runtime ". This will make sure that only after the 1st Inbound interface is processed the next is processed and so on.
But, the existing problem with the BPM, <i>but the possibility of one send step successfully sends the IDOC, followed by another send step that fails, could occur</i> still exists.
Ofocurse, this can be handled using Idoc Ack's in the BPM where you wait for the Acknowledgements before the next Idoc is posted, but this is not a feasilbe solution at all.
I am not aware of an option where you ensure that all Idoc's are processed in a single "Commit trfc", but lets hope there is one that I am not aware of as well.
Regards
Bhavesh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
87 | |
10 | |
10 | |
9 | |
7 | |
6 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.