/// <summary> /// Finilize all Loop Steps on Loop Break Event /// </summary> /// <param name="WfId"></param> /// <param name="RunId"></param> /// <param name="LoopGroup"></param> public WfStatus WorkflowLoopBreak(int WfId, int RunId, string LoopGroup) { string cmd_text = String.Format(WORKFLOW_LOOP_BREAK_QUERY, WfId, RunId, LoopGroup); var ret = ExecuteScalar(cmd_text); if (ret == null) { return(WfStatus.Failed); } return(DBStatus.DbValue((short)ret)); }
/// <summary> /// Reports execution results to the backend /// </summary> /// <param name="wfs"></param> /// <param name="Result"></param> /// <returns></returns> public bool WorkflowStepStatusSet(WorkflowStep wfs, WfResult Result) { if (wfs == null || wfs.RunId == 0) { throw new InvalidDataException("WorkflowStep object is not in the correct state"); } short status_id = DBStatus.WfValue(Result.StatusCode); string cmd_text = String.Format(WORKFLOW_STEP_STATUS_SET_QUERY, wfs.WorkflowId, wfs.StepId, wfs.RunId, status_id, Result.ErrorCode); ExecuteNonQuery(cmd_text); return(true); }
/// <summary> /// Finilizes the Workflow completion with backend. /// Perform Workflow History Cleanup based on retention policy. /// </summary> /// <param name="wf"></param> /// <param name="Result"></param> /// <returns></returns> public bool WorkflowFinalize(Workflow wf, WfResult Result) { if (wf == null || wf.RunId == 0) { throw new InvalidDataException("Workflow object can not be finalized"); } short status_id = DBStatus.WfValue(Result.StatusCode); string cmd_text = String.Format(WORKFLOW_FINALIZE_QUERY, wf.WorkflowId, wf.RunId, status_id, wf.HistoryRetention, ((_debug) ? 1 : 0)); ExecuteNonQuery(cmd_text); return(true); }
/// <summary> /// Cancel the Batch(StepId = 0)/Step on the ExitEvent /// </summary> /// <param name="WfId"></param> /// <param name="StepId"></param> /// <param name="RunId"></param> /// <param name="LoopGroup"></param> public WfResult WorkflowExitEventCheck(int WfId, int StepId, int RunId) { string cmd_text = String.Format(WORKFLOW_EXIT_EVENT_QUERY, WfId, StepId, RunId); var ret = ExecuteScalar(cmd_text); if (ret == null) { return(WfResult.Unknown); } WfResult result; switch (DBStatus.DbValue((short)ret)) { case WfStatus.Unknown: case WfStatus.Running: result = WfResult.Started; break; case WfStatus.Failed: result = WfResult.Create(WfStatus.Failed, "Canceled", 0); break; case WfStatus.Succeeded: result = WfResult.Create(WfStatus.Succeeded, "Canceled", 0); break; default: result = WfResult.Started; break; } return(result); }