/// <inheritdoc /> public override bool CompleteExecuting(params object[] parameters) { bool isActivityEntitySchema = GetIsActivityEntitySchema(); Guid activityStatusId = isActivityEntitySchema ? Guid.Empty : ProcessUserTaskUtilities.GetActivityStatus(UserConnection, CurrentActivityId); IProcessEngine processEngine = UserConnection.ProcessEngine; if (GetIsMatchedConditions()) { if (!isActivityEntitySchema && activityStatusId != ActivityConsts.CanceledStatusUId) { activityStatusId = ActivityConsts.CompletedStatusUId; } processEngine.RemoveActivityProcessListener(CurrentActivityId, UId, activityStatusId); if (!GetIsActivityEntitySchema()) { var editMode = (RecordEditMode)Enum.ToObject(typeof(RecordEditMode), EditMode); EntityChangeType entityChangeType = editMode == RecordEditMode.New ? EntityChangeType.Inserted : EntityChangeType.Updated; processEngine.RemoveProcessListener(RecordId, ObjectSchemaId, UId, entityChangeType); } if (GenerateDecisionsFromColumn) { ResultParameter = GetResultParameter(); } return(base.CompleteExecuting(parameters)); } if ((RecordEditMode)Enum.ToObject(typeof(RecordEditMode), EditMode) == RecordEditMode.New) { string serializedFilters = IsMatchConditions && DataSourceFilters.IsNotNullOrEmpty() ? ConvertToProcessDataSourceFilters(ObjectSchemaId, DataSourceFilters) : null; processEngine.AddProcessListener(RecordId, ObjectSchemaId, UId, serializedFilters); EditMode = (int)RecordEditMode.Existing; } if (activityStatusId == ActivityConsts.NewStatusUId) { ProcessUserTaskUtilities.SetActivityStatus(UserConnection, CurrentActivityId, ActivityConsts.InProgressUId); } return(false); }