In-Transaction vs Standard Data Directive

Is someone able to explain the differences of a In-Transaction vs Standard Data Directive? I think I mistakenly/improperly discovered what a In-Transaction BPM’s purpose was when I thought i was doing things in the temp tables in the screen. When in fact my records were still being written to the database and my bpm was firing because of that.

So why would i use one over the other if they both fire when being written to the DB?

I believe in-transaction allows the update to stop, so it’s between the database and the BO, whereas the standard is after the update occurs.
There’s a diagram somewhere that explains it better, let me see if I can find it

Page 548 of the Epicor ICE tools guide (for 10.2.600)

5 Likes

In-Trans: You still have the opportunity to change data BEFORE it gets written to the DB. You can also abort the transaction if desired at this point
Standard: The data has already been written to the DB. You cannot stop or reverse the change. it is done. but you can act on the fact that something has changed, and do some other action such as: update another UD Table, Send an EMAIL, etc.

10 Likes

Additionally, if a record is written multiple times to the database during the BO method call, in-transaction directive will be triggered multiple times, every time the data is sent to the DB, whereas standard directive is triggered once, after the BO method call completes, and contains all the added/updated/deleted records for the table, in their latest state.

1 Like

@Aaron_Moreng @timshuwy @AMS

Just wanted to thank you all for your replies. I now have a better understanding.

3 Likes