Identify Modified Row (Magic xpa 3.x)
The Identify Modified Row property in the Main Source Properties sheet lets you determine how Magic xpa will identify that a row is being updated. The option selected can determine the access of other users to fields in the row.
The options for the Identify Modified Row column are:
-
Position – This is the lowest level. Magic xpa updates the record in the database using a unique identifier only, such as RowID in Oracle. In this case the last update will be the successful one. This may cause problems when two users need to update the same field. In general, unless the identifier has been modified (which in Oracle is improbable) or else the row has been deleted, Magic xpa will not identify this row as being updated, which may result in the loss of updated data.
-
Position and Updated Fields – Magic xpa updates the record in the database using a unique identifier plus those columns that have been updated. For example if a user accesses the record to update the Total in Stock column, then Magic xpa will fetch the record (for update) using the unique identifier plus the Total in Stock column. In this method, if another user tries to update the Total in Stock column, one of them will receive an error message indicating the loss of their updated data. But, if one user accesses the Total in Stock column and the other user accesses the Total on Order column, no loss of data occurs.
-
Position and Selected Fields – Magic xpa updates the record in the database using a unique identifier plus all the columns selected by the developer for use in that task. In other words, if in the same task, the developer used both the Total in Stock column and the Total on Order column, Magic xpa fetches the record (for update) using the unique identifier plus the Total in Stock column as well as the Total on Order column. In this method, any changes made to either of those columns, will result in an error message indicating the loss of updated data.
For example, if in a database table where there is a record with the Total in Stock and Total in Order fields that are being updated by User A and User B concurrently, depending on the Identify Modified Row option, the result will be as described in the table below.
Identify Modified Row Options
|
Total in Stock Updated By
|
Total in Order Updated By
|
Loss of Data
|
Error Message
|
Position
|
User A and User B
|
User A and User B
|
Yes
|
No
|
Position
|
User A
|
User B
|
No
|
No
|
Position and Updated Fields
|
User A and User B
|
User A and User B
|
Yes
|
Yes
|
Position and Updated Fields
|
User A
|
User B
|
No
|
No
|
Position and Selected Fields
|
User A
|
User B
|
Yes
|
Yes
|
Position and Selected Fields
|
User B
|
User A
|
Yes
|
Yes
|