We use AIA and TCA Business Object Events program to integrate from one Ebiz instance to another.
To achieve what you want I would not do anything in SOA.
In out integration TCA ends up putting messages into WF_BPEL_Q.
I would use the following process: (Assuming offline time is a possibility)
1. Retire the parts of AIA that dequeue from WF_BPEL_Q. (depending on how messages are picked up.)
2. Create a PLSQL script that dequeues all messages from WF_BPEL_Q but dosn't process them. Using relevant select statements you can dequeue by message ID and select only relevant messages
3. Run whatever process you need that puts fires the Raise Events Program
4. Run the script to dequeue the messages that does nothing with them.
5. Re-activate the parts of AIA that dequeue from WF_BPEL_Q
This should give you the desired effect. Just be careful you don't screen out messages that do need to be transfered.
I went with following approach and that helped me:
1. Disable the subscriptions (NOT Events) to Business events with subscription name "WF_BPEL_Q".
2. Ran Raise event concurrent job. This should raise and suppress all events raised since no subscription.
3. Enable the subscription.
4. Run TCA Raise event job, this should pick only new events since last run of job.
Yes, I think this was a better approach. Removing the subscription means the events wern't stored for processing when the integration was re-enabled.