A program with a null sys_id is created when a Program reference on a project is removed along with a change in the State or Date fields. This program triggers corruption of all planned task records when project state/percent complete is changed.
Steps to Reproduce
Navigate to Project > Projects > Work In Progress.
Filter for [Program] [is not empty] AND [State][is][Work in Progress].
Remove the Program reference.
Change State from Work in Progress to Pending.
Possible workarounds to avoid creation of a program with a null sys_id:
- Write a business rule on pm_project to not allow update of program and state(or)dates together.
- Write an ACL on Project to not allow updates of program(only if business permits it).
Workaround to avoid mass update of planned task records:
Modify the BR "SyncTaskToShadow" on planned_task to check for null sys_id - refer to the sys_script_1fd6d3fc9f032200598a5bb0657fcfd7.xml attached here.
Related Problem: PRB1026077