Howto rollback transaction and return custom XML with HTTP 200
We have a BPEL process which loops through a series of calls to other SOAP References (which each simply call various DbAdapter functions, just FYI). Once we encounter a fault response from any of those SOAP References, we want to stop iterating our loop. rollback the activity from all previously-iterated SOAP Reference calls, build and log a custom XML response message and then return that as a healthy HTTP 200 response...not an HTTP 500 fault.
In our master BPEL process [which owns the global transaction in which all SOAP Reference calls participate], how do we force the global transaction's rollback while also using a graceful replyOutput (rather than the BPEL infrastructure throwing a fault)?