03-08-2012 08:13 AM - edited 03-08-2012 10:34 AM
We have a change category setup for a server forklift process. We are running into an issue where the change is not moving on to the next phase after the tasks are closed.
In the change phase under the tab Model/Tasks we have checked the "Close this phase" box under the heading "When last task is closed" and that seems to work on all our other change setups but not in this example.
Has anyone else seen this? or any ideas of what to check?
03-08-2012 12:59 PM
Is the phase you are moving to a new phase also, or is it an existing phase. You might check your Alerts/Open & Close Behaviour tab of your new phases to make sure the open and close behaviour is configured the same as those phases that are working correctly.
03-14-2012 12:55 PM
So what I have found so far is that this problem is not specific to just this change flow.
It seems the problem is caused by people locking the change and sitting on it long enough that the sch record gives up and gets removed.
852( 1764) 03/14/2012 09:33:09 RAD E Could not get lock for change cm3r;C0033748
So I see 2 ways to fix this but have run into road blocks on both.
1) increase the number of times the sch record will retry. It looks like it will try 5 times currently.
I have no idea where this is set. Has anyone else found this?
Thanks in advance
03-14-2012 03:42 PM
1. The number of retries is hard-coded in the cm3.last.task.process RAD Application (Panel: check.resched)
Consider reporting this to Customer Support if you feel this needs to be addressed.
2. An alternative option is to create a schedule record which runs the cm3.last.task.process RAD Application (instead of running cm3.last.task.process directly).
Examples using the "callrad" rtecall can be found in several OOB ScriptLibrary records including: RAD, KMUtil, and callradSetupExample.
03-15-2012 07:07 AM
var fSch = new SCFile( "schedule" );
fSch.name = "Last Task Closed for Change " + changeNum;
fSch.class = "change";
fSch.sched_class = "change"
fSch.application = "cm3.last.task.process";
fSch.query = "number=\""+changeNum+"\"";
fSch.strings = ["Forklift Build Phase 2", changeNum];
fSch.booleans = [false, true];
rtn1 = fSch.doInsert()