We have a custom process that takes information from a sub-object using a SQL SELECT statement then copies it to the parent object through XOG. The process has been running for several years already without issues.
However we have recently noticed that some projects have not been updated even though the process ran without errors. Is it possible for a process step with a custom GEL script to execute properly but for the XOG within that GEL script to not actually insert the information for some reason ? This seems to happen randomly because if we run a new process instance all the information gets copied.
Yes it is possible. The first two things that come into my mind are rights and the target object not found.
Sharing a sample XOG input file might help to think of more.
It could also be due to some Flag setting that the script is looking for. In pervious Project versions, you may be seting that Flag and later you may have stopped using that Flag. This could be anything like, Work Status, Progress or any of the Financial Settings etc. First step is to see if there are any differences in Project settings and Flags between now and then. For more, we need to look into the scripts.
A GEL Script running a XOG will not fail unless there is an connection error or a problem with the setup of the XOG message. The only way an error will be logged is if you programatically test for error or warning messages from the result string and log a GEL error. In most cases in the field, people test for a SUCCESS result only.
That being said, if you are trying to move data from a child object to a parent, there are a number of ways to do it with a modern PPM instance. If the value is numerical or an Enum based lookup, consider adding Aggregated Calculated Attribute to the parent object. These offer a number of options to summarize numerical values to a parent object, without needing the process engine.
If is the a String-based lookup value, then you can have the process itself set the value, rather than using a GEL script.
Without seeing what you are trying to do with your GEL script, it is hard to diagnose what is causing these data copy failures and to suggest alternatives.
There is another possibility. You can check whether or not this is happening to you by turning on Audit Trail for several of the fields you are updating with the xog.
Sometimes the changes are xogged in successfully and then modified back to the original values. This could happen if a user is already on the page where changes are made or changes to that page before the process starts. If they then click Save or Submit after the process completes, the changes written by xog could get changed by the user's save.