This is working as designed.
This phenomenon results from the fact that the ABL is optimizing the record update. Since the field being updated "customer.state" is neither a lob nor associated with any index, the ABL engine will wait as long as possible to actually request the update from the storage engine.
It waits for performance reasons thinking that if another update to the same record buffer were to occur (that is like multiple assign statements to the same record buffer) before the buffer is re-used or goes out of scope then it only needs to perform one update request of the storage engine as opposed to two. In addition, if the action were rolled back, the ABL could avoid an interaction with the storage engine. |