Hi,I have a workflow in which I have 4-5 external tasks. After execution of the first task the control is not going to the second task although the IPL associated with the first task is running successfully. If I swap the first task with second task then the second (which is first now) will get executed but not the first one (which is second now). I checked the successor set and swapped it many times but still getting the same problem. Do you have any quick idea as what could be the reason?Thanks & Regards,Nitesh
It is hard to tell without looking at your code but usually that indicates some problems with task callback.(TeamSite::WFtask::CallBack). You either did not run it at all, had incorrect transition parameter, etc.Alternatively, you may have invalid "immediate task" (see CallBack return List) but that's rear.
Same task is working well in some other workflow.. please find both tasks in attached txt.... I have changed the command names as $command and $command1 rest everthing is same..
What you've attached is WF Specification Fragment. What I've mentioned before as the possible problem sourcehas to be performed/validated within External Task code. Does your code invoke CallBack before exiting?Are parameters correct?
print TRACELOG ">" . $retval . ": retval...\n";print TRACELOG ">" . (index $retval, "Status: Completed") . ": Completed Index...\n";print TRACELOG localtime() . ": Complete\n";close TRACELOG;##### Check for Status completed and Callback to wf. If either command failed, call back to second successor. if((index $retval, "Status: Completed") > 0) { $task->CallBack(0, 'Success'); } else { $task->CallBack(1, 'Failure: $retval'); }exit(0);
Your 1st external task only has 1 return, success, the IPL you posted has success and failure. If the 1st task fails, there is no where for the WF to proceed.
$task->CallBack(0, "DeployDone");print LOG "\n... End of the script\n";
my ($success, $immediatetask) = $task->CallBack(0, "DeployDone");print LOG "\n Success = $success \n";print LOG "\n IsValid = " . $immediatetask->IsValid() . "\n";print LOG "\n... End of the script\n";