Property "pxUpdateDateTime" is not updated on Obj-Save
The property "pxUpdateDateTime" is not updated when we save a work object via the Obj-Save method outside a flow.
This impacts us as the method "Obj-Refresh-And-Lock" method uses this property to determine if it should reload work object from database or keep the one in memory.
If property "pxUpdateDateTime" is equals between the value from database and the value from memory, the "Obj-Refresh-And-Lock" keeps the one in memory and does not load new changes from database.
No error message.
Steps to Reproduce
An agent open a work object in read only mode.
Then, in the same time, a manual action open the same work object, lock it, update it and save it. (These actions happens outside a flow). The "pxUpdateDateTime" is not updated.
Then, the agent continues his process, refresh and lock the current work object. As the pxUpdateDateTime property from database and memory are equals, the system keep the version of the work object in memory.
Then, the agent save the work object and so overwrite previous changes.
This happens frequently on our environment because we a have a lot of batch processing
The root cause of this problem is a defect in Pegasystems’ code/rules.
Using Obj-Save method on a work object does not update the pxUpdateDateTime property value in database.
This issue is resolved through the following local change:
Using Work-.RecalculateAndSave activity instead of Obj-Save method updates the pxUpdateDateTime property value and saves the data in database