I had this exact problem last month. The issue is usually in the workflow transition conditions and how they interact with task completion event handlers. Here’s what you need to do:
First, verify your signal mapping is truly bidirectional. The approval task must emit the signal AND the gateway must be configured to receive it with matching parameter names.
Second, check your process parameter state management. Add this script task right after the manager approval task:
var approvalStatus = Get<string>("ApprovalStatus");
Set("ApprovalStatus", "ManagerApproved");
Set("LastApprovalDate", DateTime.Now);
return true;
Third, modify your gateway conditions to explicitly check these parameters:
- Condition 1 (to Director): ApprovalStatus == “ManagerApproved”
- Default flow (back to Manager): ApprovalStatus != “ManagerApproved”
Fourth, ensure your task completion event handler is configured correctly. In the manager approval task properties, go to the Events tab and add a “Complete” event with this code:
var processEngine = Get<IProcessEngine>("ProcessEngine");
processEngine.SetParameterValue(ProcessInstanceId, "ManagerApprovalComplete", true);
The key issue in Creatio 7.18 is that task completion doesn’t automatically update process parameters unless you explicitly handle it. The signal gets emitted, but if your gateway conditions depend on parameter values that weren’t updated, the transition fails silently. By adding the script task and event handler, you ensure the process state is synchronized before the gateway evaluates.
Also check your workflow transition conditions aren’t using outdated parameter references. If you renamed any parameters during development, old references might still exist in the gateway configuration. Delete and recreate the gateway if needed to ensure clean configuration.
Finally, test with a new process instance after making these changes. Existing stuck instances won’t automatically recover - you’ll need to either manually advance them using the process log or cancel and restart them.