Try OpenEdge Now
skip to main content
ABL Reference
Handle Attributes and Methods Reference : TRACKING-CHANGES attribute
 

TRACKING-CHANGES attribute

Set to TRUE to start tracking changes to the data in an individual ProDataSet temp-table. The AVM tracks changes to the temp-table until you set this attribute to FALSE. When this attribute is FALSE, any changes you make to the data in the temp-table are considered part of the fill process. The default value is FALSE.
For all other temp-tables that are not part of a ProDataSet, this attribute has the Unknown value (?).
Data type: LOGICAL
Access: Readable/Writeable
Applies to: Temp-table object handle
When the TRACKING-CHANGES attribute is set to TRUE for a ProDataSet temp-table, the AVM tracks changes to the data in that temp-table using a before-image table that contains the original version of each row. You can think of the temp-table itself as the after-image because it contains the latest version of each row.
Note: If you SHARE a static ProDataSet, you must also SHARE all of its temp-tables. A SHARED static temp-table cannot have a before-image table. Therefore, you cannot track changes to its temp-tables.
Every row in the after-image table that has been modified or created corresponds to a row in the before-image table. Deleted rows do not appear in the after-image table, because it reflects the current state of the data. Every row in the before-image table has a non-zero ROW-STATE attribute value, because every row in the before-image table is the before-image of a deleted, created, or modified row in the after-image table. Unchanged rows do not appear in the before-image table.
You can track newly created rows and changed rows through either the before-image table or the after-image of the table. However, since deleted rows do not appear in the after-image table, it is better to track changes through the before-image table.
You might want to set TRACKING-CHANGES back to FALSE for a temp-table when you are ready to:
*Accept the changes using the ACCEPT-CHANGES( ) method or the ACCEPT-ROW-CHANGES( ) method
*Reject the changes using the REJECT-CHANGES( ) method or the REJECT-ROW-CHANGES( ) method
*Get and merge the changes using the GET-CHANGES( ) method and the MERGE-CHANGES( ) method or MERGE-ROW-CHANGES( ) method, respectively
Note: If you pass a ProDataSet remotely or locally by value and TRACKING-CHANGES is TRUE for the ProDataSet or any of its tables, the before- and after-image-tables are passed in their current state, but the value of the TRACKING-CHANGES attribute is not passed. That is, it is not automatically set to TRUE on the receiving side.