Its actually an OLD OLD Progress term
Open Edge Progress DBMS has something called a
Before Image
The Before Image file(s) stores information about every transaction which makes a change to the database. If the transaction is aborted / undone, this information will be read back from the BI file to restore original values of the database back into the database if necessary.
It also has an After Image
Think of these as Undo / Redo functions built into the DMBS. Until flushed any transaction can be undone / redone as needed. You can also query the before image record to see what changed between transactions. Epicor took advantage of this in the YE OLD times, it is how they do the Field Changed from X to Y (among other things)
When Epicor went to MSSQL they simply took that concept and adapted it. Every single BO call the adapter makes contains two records, the ORIGINAL UNCHANGED RECORD and the MODIFIED RECORD (usually with a RowMod flag). This way they can easily see what changed between calls.
85% of the time it doesn’t matter… that last 15% will bite you in the
. Technically any time we call the BO’s (server side) we should pass in a BeforeImage with every call. But is is tedious and so most of us only do it when forced to.
In the new REST Calls in Kinetic UX if you look at the Network Monitor you will see that every record that is sent from the UX has those 2 records one with a RowMod and one without.
