public override string Validation(string workflowId, string itemCode, WfResult wfResult) { StringBuilder sb = new StringBuilder(); //验证决算信息。 AppendErrorMessage(sb, MoneyValidation(itemCode, "实际投资信息", WorkFlowNode.JueSuan, 1)); DataTable dtJsxx = new BusiItemManage_JS().QueryJsxx(itemCode); AppendErrorMessage(sb, dtOperation.RowNullCheck(dtJsxx, "决算信息", NotNullFormat)); condition.Clear(); condition.Add("SJZTZ", "资金总额"); condition.Add("MJTZ", "亩均投资"); condition.Add("SJGM", "建设规模"); condition.Add("JSDW", "决算单位"); condition.Add("SCDW", "决算审查单位"); condition.Add("SCDASJ", "审查定案时间"); condition.Add("SCDAWH", "审查定案文号"); AppendErrorMessage(sb, dtOperation.ColumnNullCheck(dtJsxx, condition, NotNullFormat)); //验证需要的文件是否都已经上传。 if (wfResult == WfResult.Agree) AppendErrorMessage(sb, FileValidation(workflowId, itemCode, WorkFlowNode.JueSuan, null)); return sb.ToString(); }
public override string Validation(string workflowId, string itemCode, WfResult wfResult) { StringBuilder sb = new StringBuilder(); DataTable dtGh = new BusiItemManage_GHYS().QueryData(itemCode); AppendErrorMessage(sb, dtOperation.RowNullCheck(dtGh, "规划预算基本信息", NotNullFormat)); DataTable dtGhdw = new BusiItemManage().QueryXmdw(itemCode, ItemCompanyType.GH); AppendErrorMessage(sb, dtOperation.RowNullCheck(dtGhdw, "规划设计单位", NotNullFormat)); condition.Clear(); condition.Add("NAME", "规划设计单位-单位名称"); condition.Add("CODE", "规划设计单位-机构代码"); condition.Add("LINKPHONE", "规划设计单位-联系电话"); condition.Add("LINKMAN", "规划设计单位-联系人员"); AppendErrorMessage(sb, dtOperation.ColumnNullCheck(dtGhdw, condition, NotNullFormat)); AppendErrorMessage(sb, GcxxValidation(itemCode, ItemStage.GuiHua, 1)); AppendErrorMessage(sb, MoneyValidation(itemCode, "项目预算", WorkFlowNode.GHSJYS, 1)); AppendErrorMessage(sb, FileValidation(workflowId, itemCode, WorkFlowNode.GHSJYS, null)); return sb.ToString(); }
/// <summary> /// 线外控制流程 /// </summary> /// <param name="itemCode"></param> /// <param name="result"></param> /// <returns></returns> public bool ContorlWf(string itemCode, WfResult result,string itemDesc) { bool succ = false; ItemState itemState = ItemState.Beginning; WfState wfState = WfState.Normal; if (result == WfResult.Stop) ////暂停 { itemState = ItemState.Progressing; wfState = WfState.Stop; } if (result == WfResult.Start)///启动 { itemState = ItemState.Progressing; wfState = WfState.Normal; } if (result == WfResult.Delete) ////终止 { itemState = ItemState.Ending; wfState = WfState.Delete; } string strSql = "update xm_xmxx set ItemState = '{1}', WfState = '{2}',ItemDesc = '{3}' where ItemCode in ({0})"; strSql = string.Format(strSql, itemCode, ((int)itemState).ToString(), ((int)wfState).ToString(), itemDesc); succ = OracleHelper.ExecuteCommand(strSql); return succ; }
public override string Validation(string workflowId, string itemCode, WfResult wfResult) { StringBuilder sb = new StringBuilder(); AppendErrorMessage(sb, GcxxValidation(itemCode, ItemStage.GuiHua, 1)); AppendErrorMessage(sb, MoneyValidation(itemCode, "项目预算", WorkFlowNode.YSTZ, 1)); return sb.ToString(); }
/// <summary> /// 验证方法。 /// </summary> /// <param name="workflowId">流程Id。</param> /// <param name="itemCode">项目编号。</param> /// <returns>错误信息。</returns> public override string Validation(string workflowId, string itemCode, WfResult wfResult) { StringBuilder sb = new StringBuilder(); //验证需要的文件是否都已经上传。 AppendErrorMessage(sb, FileValidation(workflowId, itemCode, WorkFlowNode.JunGong, null)); AppendErrorMessage(sb, ValidationYsxx(itemCode)); return sb.ToString(); }
public ActionResult Processinfo(string processId, string taskId) { WfParameter wfParameter = new WfParameter(); UserInfo userInfo = LoginUserInfo.Get(); wfParameter.companyId = userInfo.companyId; wfParameter.departmentId = userInfo.departmentId; wfParameter.userId = userInfo.userId; wfParameter.userName = userInfo.realName; wfParameter.processId = processId; wfParameter.taskId = taskId; WfResult <WfContent> res = wfEngineIBLL.GetProcessInfo(wfParameter); return(Success(res)); }
public WfResult Start(WorkflowAttributeCollection args, CancellationToken token) { WfResult result = WfResult.Succeeded; _args = args; Parameters parameters = new Parameters(); try { Version v = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; string inputXml; if (_args.ContainsKey(XML)) { inputXml = _args[XML]; } else { inputXml = DeParameters(); } if (!inputXml.StartsWith("<?xml version=")) { byte[] base64ByteArr = Convert.FromBase64String(XML); inputXml = System.Text.UnicodeEncoding.Unicode.GetString(base64ByteArr); } parameters = Parameters.DeSerializefromXml(inputXml); _logger.Information("Running DE v.{Version} ({Bit} bit)", v.ToString(), 8 * IntPtr.Size); _logger.Information("Executing as: {User}", WindowsIdentity.GetCurrent().Name.ToString()); _logger.Debug("DE input parameter: {DeXml}", inputXml); //logger.WriteDebug("DE XML: " + inputXml); DEController controller = new DEController(_logger); controller.Execute(parameters, token); } catch (Exception ex) { _logger.Error(ex, "Exception: {Message}", ex.Message); result = WfResult.Failed; } return(result); }
public void Test_Graph_Run_Ok() { DBController db = DBController.Create(connectionString); Workflow wf = db.WorkflowMetadataGet("Test100"); WorkflowGraph wfg = WorkflowGraph.Create(wf, db); wfg.Start(); BlockingCollection <string> step_set = new BlockingCollection <string>(); Task t1 = Task.Factory.StartNew(() => { WorkflowStep step = null; while (wfg.TryTake(out step, TimeSpan.FromMinutes(5))) { wfg.SetNodeExecutionResult(step.Key, WfResult.Started); Thread.Sleep(1000); step_set.Add(step.Key); } step_set.CompleteAdding(); Console.WriteLine(String.Format("Finishing Step Submitting thread")); }); Task t2 = Task.Factory.StartNew(() => { string Key = String.Empty; while (step_set.TryTake(out Key, -1)) { Console.WriteLine(String.Format("Processing step {0}", Key)); wfg.SetNodeExecutionResult(Key, WfResult.Succeeded); //wfg.SetNodeExecutionResult(Key, WfResult.Failed); } Console.WriteLine(String.Format("Finishing Step Processing thread")); }); Task.WaitAll(t1, t2); WfResult wr = wfg.WorkflowRunStatus; WfResult wc = wfg.WorkflowCompleteStatus; Console.WriteLine(String.Format("Run status {0}", wr.StatusCode.ToString())); Console.WriteLine(String.Format("Complete status {0}", wc.StatusCode.ToString())); Assert.IsTrue(wr.StatusCode == WfStatus.Succeeded); }
/// <summary> /// 验证方法。 /// </summary> /// <param name="workflowId">流程Id。</param> /// <param name="itemCode">项目编号。</param> /// <returns>错误信息。</returns> public override string Validation(string workflowId, string itemCode, WfResult wfResult) { StringBuilder sb = new StringBuilder(); DataTable dtYsxx = new BusiItemManage_YS().QueryYsxx(itemCode); AppendErrorMessage(sb, dtOperation.RowNullCheck(dtYsxx, "终验信息", NotNullFormat)); condition.Clear(); condition.Add("ZYDW", "终验信息-终验单位"); condition.Add("ZYSJ", "终验信息-终验时间"); condition.Add("JSFHDW", "终验信息-复核单位"); condition.Add("JSFHSJ", "终验信息-复核时间"); AppendErrorMessage(sb, dtOperation.ColumnNullCheck(dtYsxx, condition, NotNullFormat)); if (wfResult == WfResult.Agree) { if (string.IsNullOrEmpty(dtYsxx.Rows[0]["YSWH"].ToString())) { AppendErrorMessage(sb, "\"终验信息-验收文号\"必须填写"); } else { string[] strAry = dtYsxx.Rows[0]["YSWH"].ToString().Split('|'); foreach (string s in strAry) { if (string.IsNullOrEmpty(s)) { AppendErrorMessage(sb, "\"终验信息-验收文号\"填写不完整"); break; } } } } ////工程信息 AppendErrorMessage(sb, GcxxValidation(itemCode, ItemStage.YanShou, 1)); //验证需要的文件是否都已经上传。 if (wfResult == WfResult.Agree) { AppendErrorMessage(sb, FileValidation(workflowId, itemCode, WorkFlowNode.ZhongYan, null)); } return(sb.ToString()); }
public override string Validation(string workflowId, string itemCode, WfResult wfResult) { StringBuilder sb = new StringBuilder(); DataTable dtKy = new BusiItemManage_KY().QueryData(itemCode); AppendErrorMessage(sb, dtOperation.RowNullCheck(dtKy, "可研基本信息", NotNullFormat)); condition.Clear(); condition.Add("ITEMNAME", "项目名称"); condition.Add("XMLX", "项目类型"); condition.Add("ZJND", "新增费使用年度"); condition.Add("JSGQ", "建设工期"); AppendErrorMessage(sb, dtOperation.ColumnNullCheck(dtKy, condition, NotNullFormat)); DataTable dtGis = new BusiItemManage_Gis().QueryData(itemCode, (int)ItemStage.KeYan, 1); AppendErrorMessage(sb, dtOperation.RowNullCheck(dtGis, "Gis基本信息", NotNullFormat)); condition.Clear(); condition.Add("ADDRESS", "项目区行政位置"); condition.Add("QSJD", "大地坐标-起始经度"); condition.Add("JZJD", "大地坐标-截止经度"); condition.Add("QSWD", "大地坐标-起始纬度"); condition.Add("JZWD", "大地坐标-截止纬度"); condition.Add("GM", "项目建设规模"); condition.Add("XZGDMJ", "新增耕地面积"); condition.Add("MONEY", "资金估算"); condition.Add("TFTBH", "图幅号(图斑号)"); condition.Add("DLMJ", "地类"); condition.Add("QSXZMJ", "权属情况"); AppendErrorMessage(sb, dtOperation.ColumnNullCheck(dtGis, condition, NotNullFormat)); DataTable dtKydw = new BusiItemManage().QueryXmdw(itemCode, ItemCompanyType.KY); AppendErrorMessage(sb, dtOperation.RowNullCheck(dtKydw, "可研编制单位", NotNullFormat)); condition.Clear(); condition.Add("NAME", "可研编制单位-单位名称"); condition.Add("CODE", "可研编制单位-机构代码"); condition.Add("LINKPHONE", "可研编制单位-联系电话"); condition.Add("LINKMAN", "可研编制单位-联系人员"); AppendErrorMessage(sb, dtOperation.ColumnNullCheck(dtKydw, condition, NotNullFormat)); AppendErrorMessage(sb, FileValidation(workflowId, itemCode, WorkFlowNode.KY, null)); return sb.ToString(); }
public override WfResult Run(CancellationToken token) { WfResult result = WfResult.Unknown; //_logger.Write(String.Format("SqlServer: {0} query: {1}", _attributes[CONNECTION_STRING], _attributes[QUERY_STRING])); SqlConnection cn = new SqlConnection(base._attributes[CONNECTION_STRING]); try { cn.InfoMessage += new SqlInfoMessageEventHandler(OnInfoMessage); cn.FireInfoMessageEventOnUserErrors = false; cn.Open(); using (SqlCommand cmd = new SqlCommand(_attributes[QUERY_STRING], cn)) { cmd.CommandTimeout = Int32.Parse(_attributes[TIMEOUT]); using (token.Register(cmd.Cancel)) { var value = cmd.ExecuteScalar(); int int_value; if (Int32.TryParse(value.ToString(), out int_value)) { result = (int_value > 0) ? WfResult.Succeeded : WfResult.Failed; } else { result = WfResult.Failed; } } } } catch (SqlException ex) { throw ex; //_logger.Write(String.Format("SqlServer exception: {0}", ex.Message)); //result = WfResult.Create(WfStatus.Failed, ex.Message, ex.ErrorCode); } finally { if (cn.State != ConnectionState.Closed) { cn.Close(); } } return(result); }
/// <summary> /// 验证方法。 /// </summary> /// <param name="workflowId">流程Id。</param> /// <param name="itemCode">项目编号。</param> /// <returns>错误信息。</returns> public override string Validation(string workflowId, string itemCode, WfResult wfResult) { StringBuilder sb = new StringBuilder(); DataTable dtYsxx = new BusiItemManage_YS().QueryYsxx(itemCode); AppendErrorMessage(sb, dtOperation.RowNullCheck(dtYsxx, "初验信息", NotNullFormat)); condition.Clear(); condition.Add("CYDW", "初验信息-初验单位"); condition.Add("CYSJ", "初验信息-初验时间"); AppendErrorMessage(sb, dtOperation.ColumnNullCheck(dtYsxx, condition, NotNullFormat)); //验证需要的文件是否都已经上传。 if (wfResult == WfResult.Agree) AppendErrorMessage(sb, FileValidation(workflowId, itemCode, WorkFlowNode.ChuYan, null)); return sb.ToString(); }
public WfResult Run(CancellationToken token) { WfResult result = WfResult.Unknown; //_logger.Write(String.Format("SqlServer: {0} query: {1}", _attributes[CONNECTION_STRING], _attributes[QUERY_STRING])); using (var timeoutCts = new CancellationTokenSource(TimeSpan.FromSeconds(Int32.Parse(_attributes[TIMEOUT])))) { using (var linkedCts = CancellationTokenSource.CreateLinkedTokenSource(timeoutCts.Token, token)) { BsonToSql(_attributes[TABLE_NAME], _attributes[INPUT_FILE], linkedCts.Token); result = WfResult.Succeeded; } } return(result); }
public ActionResult Bootstraper(bool isNew, string processId, string schemeCode) { WfParameter wfParameter = new WfParameter(); UserInfo userInfo = LoginUserInfo.Get(); wfParameter.companyId = userInfo.companyId; wfParameter.departmentId = userInfo.departmentId; wfParameter.userId = userInfo.userId; wfParameter.userName = userInfo.realName; wfParameter.isNew = isNew; wfParameter.processId = processId; wfParameter.schemeCode = schemeCode; WfResult <WfContent> res = wfEngineIBLL.Bootstraper(wfParameter); return(Success(res)); }
public void Execute(WfRunner runner, WfResult result) { var task = result.Task; var iTask = result.InstanceTask; if (task.TaskType == WfTaskType.Default) { // 检查办理人是否一致 if (iTask.User_Id != runner.AC.User.Id) { throw new AceException("你无权处理该件,操作人不符!"); } // 本步结束 SetTaskFinish(runner, result); // 执行下一步 var nextTasks = result.NextTasks; Check.Require(nextTasks.Count > 0, $"未获取到流程后续节点!"); if (nextTasks.First().TaskType == WfTaskType.Stop) { // 后续无业务时结束流程 SetInstanceFinish(runner, result); } else { // 生成后续的实例任务 nextTasks.Each(nextTask => { CreateNextInstanceTask(runner, result, nextTask); }); } } else if (task.TaskType == WfTaskType.Looping) { // 选择下一人办理,重复当前节点 } else if (task.TaskType == WfTaskType.Multiple) { // 按给定顺序执行会签,串行和并行 } else if (task.TaskType == WfTaskType.SubProcess) { // 启动相应的子流程 } }
public void EventCheck_Ok() { CheckWorkflowEventActivity activity = new CheckWorkflowEventActivity(); WorkflowActivityArgs wfa = new WorkflowActivityArgs(); WorkflowAttributeCollection list = new WorkflowAttributeCollection(); list.Add("ConnectionString", @"Server=.; Database=etl_event; Trusted_Connection = True; Connection Timeout = 120; "); list.Add("EventType", @"Process2_FINISHED"); list.Add("WatermarkEventType", @"Process1_FINISHED"); list.Add("Timeout", "0"); wfa.RequiredAttributes = list; wfa.Logger = _logger; activity.Configure(wfa); WfResult result = activity.Run(CancellationToken.None); Assert.IsTrue(result.StatusCode == WfStatus.Succeeded); }
private void CreateNextInstanceTask(WfRunner runner, WfResult result, WF_Task nextTask) { var iTask = new WF_InstanceTask(); iTask.InitializeId(); iTask.DCreate = DateTime.Now; iTask.Prev_Id = result.InstanceTask.Id; iTask.AppInstanceId = runner.AppInstanceId; iTask.Process_Id = result.Process.Id; iTask.Process_Name = result.Process.Name; iTask.Task_Id = nextTask.Id; iTask.Task_Name = nextTask.Name; iTask.Status = WfTaskStatus.Pending; iTask.Audit = WfAuditState.Pending; iTask.Action = WfActionType.Forward; iTask.CreateUser_Id = runner.AC.User.Id; iTaskService.Insert(iTask); }
public void BsonConvert_Ok() { BsonConverterActivity activity = new BsonConverterActivity(); WorkflowActivityArgs wfa = new WorkflowActivityArgs(); WorkflowAttributeCollection list = new WorkflowAttributeCollection(); list.Add("InputFile", "C:\\Builds\\UnzipFiles\\mongobackup_10-19-2016-230145\\edxapp\\*.bson"); list.Add("OutputFolder", "c:\\Builds\\JsonFiles\\10-19-2016\\edxapp"); list.Add("Timeout", "30"); wfa.RequiredAttributes = list; wfa.Logger = _logger; activity.Configure(wfa); WfResult result = activity.Run(CancellationToken.None); Assert.IsTrue(result.StatusCode == WfStatus.Succeeded); }
public void BsonSqlLoader_Ok() { BsonSqlLoaderActivity activity = new BsonSqlLoaderActivity(); WorkflowActivityArgs wfa = new WorkflowActivityArgs(); WorkflowAttributeCollection list = new WorkflowAttributeCollection(); list.Add("ConnectionString", @"Server=.\sql14; Database=etl_staging; Trusted_Connection=True; Connection Timeout=120; "); list.Add("InputFile", "C:\\Builds\\UnzipFiles\\mongobackup_10-19-2016-230145\\edxapp\\fs.files.bson"); list.Add("TableName", "dbo.staging_bson_test"); list.Add("Timeout", "600"); wfa.RequiredAttributes = list; wfa.Logger = _logger; activity.Configure(wfa); WfResult result = activity.Run(CancellationToken.None); Assert.IsTrue(result.StatusCode == WfStatus.Succeeded); }
/// <summary> /// Entry point to Delta Extractor. Takes parameters defined by an XML string based /// on the parameters.XSD schema. /// </summary> /// <param name="args"></param> /// <returns></returns> public static void Main(string[] args) { if (args.Length == 0 || args.Contains(@"/help", StringComparer.InvariantCultureIgnoreCase)) { help(); Environment.Exit(0); } bool debug = args.Contains(@"/D", StringComparer.InvariantCultureIgnoreCase); bool verbose = args.Contains(@"/V", StringComparer.InvariantCultureIgnoreCase); try { var minLogLevel = (debug) ? LogEventLevel.Debug : LogEventLevel.Information; ILogger logger = new LoggerConfiguration() .MinimumLevel.Is(minLogLevel) .WriteTo.Console() .CreateLogger(); ; WorkflowAttributeCollection param = new WorkflowAttributeCollection(); param.Add("XML", args[0]); using (CancellationTokenSource cts = new CancellationTokenSource()) { DERun runner = new DERun(logger); WfResult result = runner.Start(param, cts.Token); if (result.StatusCode != WfStatus.Succeeded) { throw new Exception(String.Format("DE returned Status: {0}", result.StatusCode.ToString())); } } } catch (Exception ex) { Console.WriteLine(ex.Message); Environment.Exit(1); } Environment.Exit(0); }
public void DERun_Ok() { DeltaExtractorActivity activity = new DeltaExtractorActivity(); WorkflowActivityArgs wfa = new WorkflowActivityArgs(); WorkflowAttributeCollection list = new WorkflowAttributeCollection(); list.Add("ConnectionString", @"Server=.; Database=etl_controller; Trusted_Connection = True; Connection Timeout = 120; "); list.Add("@BatchId", "1006"); list.Add("@StepId", "11"); list.Add("@RunId", "0"); wfa.RequiredAttributes = list; wfa.Logger = _logger; activity.Configure(wfa); WfResult result = activity.Run(CancellationToken.None); Assert.IsTrue(result.StatusCode == WfStatus.Succeeded); }
public WF_InstanceTask GetBack(WfResult result) { if (result.InstanceTask.Action == WfActionType.Forward) { if (result.PrevInstanceTask == null) { result.PrevInstanceTask = Get(result.InstanceTask.Prev_Id.Value); } return(result.PrevInstanceTask); } return(Session.QueryFirst <WF_InstanceTask>( new RequestContext("wf", "get_instancetask_by_taskid") .SetParam(new { taskid = result.InstanceTask.Task_Id }) )); }
public void TGZDecompress_Ok() { TGZDecompressActivity activity = new TGZDecompressActivity(); WorkflowActivityArgs wfa = new WorkflowActivityArgs(); WorkflowAttributeCollection list = new WorkflowAttributeCollection(); list.Add("InputFile", "c:\\Builds\\ZipFiles\\test.tar.gz"); list.Add("OutputFolder", "c:\\Builds\\UnzipFiles"); list.Add("Mode", "tgz"); list.Add("Timeout", "30"); wfa.RequiredAttributes = list; wfa.Logger = _logger; activity.Configure(wfa); WfResult result = activity.Run(CancellationToken.None); Assert.IsTrue(result.StatusCode == WfStatus.Succeeded); }
public void Execute(WfRunner runner, WfResult result) { var task = result.Task; var iTask = result.InstanceTask; // 检查办理人是否一致 if (iTask.User_Id != runner.AC.User.Id) { throw new AceException("你无权处理该件,操作人不符!"); } // 本步结束 SetTaskFinish(runner, result); // 返回上一步 var backTask = taskService.Get(result.BackInstanceTask.Task_Id); CreateNextInstanceTask(runner, result, backTask); }
public virtual WfResult Run(CancellationToken token) { WfResult result = WfResult.Unknown; //_logger.Write(String.Format("SqlServer: {0} query: {1}", _attributes[CONNECTION_STRING], _attributes[QUERY_STRING])); int processId = Process.GetCurrentProcess().Id; _logger.Debug("Host process Id: {ProcessId}", processId); using (SqlConnection cn = new SqlConnection(_attributes[CONNECTION_STRING])) { try { cn.InfoMessage += new SqlInfoMessageEventHandler(OnInfoMessage); cn.FireInfoMessageEventOnUserErrors = false; cn.Open(); using (SqlCommand cmd = new SqlCommand(_attributes[QUERY_STRING], cn)) { cmd.CommandTimeout = Int32.Parse(_attributes[TIMEOUT]); using (token.Register(cmd.Cancel)) { cmd.ExecuteNonQuery(); } result = WfResult.Succeeded; } } catch (SqlException ex) { _logger.Error(ex, "SqlServer exception {ErrorCode}: {Message}", ex.Number, ex.Message); result = WfResult.Failed; //throw ex; } finally { if (cn.State != ConnectionState.Closed) { cn.Close(); } } } return(result); }
public override string Validation(string workflowId, string itemCode, WfResult wfResult) { StringBuilder sb = new StringBuilder(); DataTable dtSb = new BusiItemManage_SB().QueryData(itemCode); condition.Clear(); condition.Add("ITEMNAME", "项目名称"); condition.Add("XMLX", "项目类型"); condition.Add("SHENG", "项目所在地-省"); condition.Add("SHI", "项目所在地-市"); condition.Add("XIAN", "项目所在地-县"); condition.Add("ZJND", "新增费使用年度"); AppendErrorMessage(sb, dtOperation.ColumnNullCheck(dtSb, condition, NotNullFormat)); DataTable dtGis = new BusiItemManage_Gis().QueryData(itemCode, (int)ItemStage.ShenBo, 1); AppendErrorMessage(sb, dtOperation.RowNullCheck(dtGis, "Gis基本信息", NotNullFormat)); condition.Clear(); condition.Add("ADDRESS", "项目区行政位置"); condition.Add("QSJD", "大地坐标-起始经度"); condition.Add("JZJD", "大地坐标-截止经度"); condition.Add("QSWD", "大地坐标-起始纬度"); condition.Add("JZWD", "大地坐标-截止纬度"); condition.Add("GM", "项目建设规模"); condition.Add("XZGDMJ", "新增耕地面积"); condition.Add("MONEY", "资金概算"); condition.Add("TFTBH", "图幅号(图斑号)"); condition.Add("DLMJ", "地类"); condition.Add("QSXZMJ", "权属情况"); AppendErrorMessage(sb, dtOperation.ColumnNullCheck(dtGis, condition, NotNullFormat)); //验证需要的文件是否都已经上传。 AppendErrorMessage(sb, FileValidation(workflowId, itemCode, WorkFlowNode.TB, null)); return(sb.ToString()); }
public void Execute(WfRunner runner, WfResult result) { if (result.CanWithdraw) { // 删除后续实例任务 iTaskService.Delete(result.InstanceTask.Id); // 修改本部为处理中 var iTask = result.InstanceTask; iTask.Status = WfTaskStatus.Dealing; iTask.Opinion = null; iTask.DUpdate = null; iTask.Audit = result.IsStartTask ? WfAuditState.UnSend : WfAuditState.Pending; iTaskService.Update(iTask); } else { throw new AceException("该件已回收或后置节点已处理!"); } }
public void EventPost_Ok() { PostWorkflowEventActivity activity = new PostWorkflowEventActivity(); WorkflowActivityArgs wfa = new WorkflowActivityArgs(); WorkflowAttributeCollection list = new WorkflowAttributeCollection(); list.Add("ConnectionString", @"Server=.; Database=etl_event; Trusted_Connection = True; Connection Timeout = 120; "); list.Add("EventType", @"Process2_FINISHED"); list.Add("EventPostDate", @"2016-12-16 18:04"); //list.Add("EventArgs", "<dwc:EventArgs xmlns:dwc=\"EventArgs.XSD\" Source=\"Process2 Finished\" PeriodGrain=\"Week\" Period=\"201652\" />"); list.Add("EventArgs", ""); list.Add("Timeout", "0"); wfa.RequiredAttributes = list; wfa.Logger = _logger; activity.Configure(wfa); WfResult result = activity.Run(CancellationToken.None); Assert.IsTrue(result.StatusCode == WfStatus.Succeeded); }
public WfResult GetInstance(WfRunner runner) { return(Session.QueryMultiple <WfResult>( new RequestContext("wf", "get_instance_by_id") .SetParam(new { runner.AppInstanceId, runner.TaskId }), reader => { var result = new WfResult(); result.Process = reader.Read <WF_Process>(true).FirstOrDefault(); result.Task = reader.Read <WF_Task>(true).FirstOrDefault(); result.Instance = reader.Read <WF_Instance>(true).FirstOrDefault(); result.InstanceTask = reader.Read <WF_InstanceTask>(true).FirstOrDefault(); return result; } )); }
/// <summary> /// 审核流程实例 /// </summary> /// <param name="_"></param> /// <returns></returns> private Response Audit(dynamic _) { WfParameter wfParameter = this.GetReqData <WfParameter>(); wfParameter.companyId = this.userInfo.companyId; wfParameter.departmentId = this.userInfo.departmentId; wfParameter.userId = this.userInfo.userId; wfParameter.userName = this.userInfo.realName; List <FormParam> req = wfParameter.formreq.ToObject <List <FormParam> >();// 获取模板请求数据 foreach (var item in req) { formSchemeIBLL.SaveInstanceForm(item.schemeInfoId, item.processIdName, item.keyValue, item.formData); } WfResult res = wfEngineIBLL.Audit(wfParameter); return(this.Success <WfResult>(res)); }
public void FileSetStatus_Ok() { FileSetProgressStatusActivity activity = new FileSetProgressStatusActivity(); WorkflowActivityArgs wfa = new WorkflowActivityArgs(); WorkflowAttributeCollection list = new WorkflowAttributeCollection(); list.Add("RegisterConnectionString", @"Server=.\sql14; Database=etl_staging; Trusted_Connection = True; Connection Timeout = 120; "); list.Add("FileId", "5"); list.Add("FileStatus", "Completed"); list.Add("Timeout", "30"); list.Add("etl:RunId", "1"); wfa.RequiredAttributes = list; wfa.Logger = _logger; activity.Configure(wfa); WfResult result = activity.Run(CancellationToken.None); Assert.IsTrue(result.StatusCode == WfStatus.Succeeded); }
private void CreateNextInstanceTask(WfRunner runner, WfResult result, WF_Task backTask) { var iTask = new WF_InstanceTask(); iTask.InitializeId(); iTask.DCreate = DateTime.Now; iTask.Prev_Id = result.InstanceTask.Id; iTask.AppInstanceId = runner.AppInstanceId; iTask.Process_Id = result.Process.Id; iTask.Process_Name = result.Process.Name; iTask.Task_Id = backTask.Id; iTask.Task_Name = backTask.Name; iTask.Status = WfTaskStatus.Dealing; iTask.DFetch = DateTime.Now; iTask.Audit = result.Instance.StartTask_Id == backTask.Id ? WfAuditState.UnSend : WfAuditState.Pending; iTask.Action = WfActionType.Backward; iTask.CreateUser_Id = runner.AC.User.Id; iTask.User_Id = result.BackInstanceTask.User_Id; iTask.User_Name = result.BackInstanceTask.User_Name; iTaskService.Insert(iTask); }
/// <summary> /// 验证方法。 /// </summary> /// <param name="workflowId">流程Id。</param> /// <param name="itemCode">项目编号。</param> /// <returns>错误信息。</returns> public override string Validation(string workflowId, string itemCode, WfResult wfResult) { StringBuilder sb = new StringBuilder(); DataTable dtYsxx = new BusiItemManage_YS().QueryYsxx(itemCode); AppendErrorMessage(sb, dtOperation.RowNullCheck(dtYsxx, "初验信息", NotNullFormat)); condition.Clear(); condition.Add("CYDW", "初验信息-初验单位"); condition.Add("CYSJ", "初验信息-初验时间"); AppendErrorMessage(sb, dtOperation.ColumnNullCheck(dtYsxx, condition, NotNullFormat)); //验证需要的文件是否都已经上传。 if (wfResult == WfResult.Agree) { AppendErrorMessage(sb, FileValidation(workflowId, itemCode, WorkFlowNode.ChuYan, null)); } return(sb.ToString()); }
public void ExecuteSqlQuery_Ok() { SqlServerActivity activity = new SqlServerActivity(); WorkflowActivityArgs wfa = new WorkflowActivityArgs(); WorkflowAttributeCollection list = new WorkflowAttributeCollection(); //list.Add("ConnectionString", @"Server=.; Database=etl_staging; Trusted_Connection = True; Connection Timeout = 120; "); list.Add("ConnectionString", @"Server=.; Database=etl_staging; Trusted_Connection = False;User Id=test;Password=test; Connection Timeout = 120; "); list.Add("Query", @" print 'this is print test'; raiserror ('this is err test',11,11); "); list.Add("Timeout", "0"); wfa.RequiredAttributes = list; wfa.Logger = _logger; activity.Configure(wfa); WfResult result = activity.Run(CancellationToken.None); Assert.IsTrue(result.StatusCode == WfStatus.Succeeded); }
public void FileRegister_Ok() { FileRegisterActivity activity = new FileRegisterActivity(); WorkflowActivityArgs wfa = new WorkflowActivityArgs(); WorkflowAttributeCollection list = new WorkflowAttributeCollection(); list.Add("RegisterConnectionString", @"Server=.\sql14; Database=etl_staging; Trusted_Connection=True; Connection Timeout=120; "); list.Add("RegisterPath", "c:\\Builds\\FlatFiles\\*.txt"); list.Add("SourceName", "testFiles"); list.Add("ProcessPriority", "1"); list.Add("Timeout", "30"); list.Add("@runId", "1"); wfa.RequiredAttributes = list; wfa.Logger = _logger; activity.Configure(wfa); WfResult result = activity.Run(CancellationToken.None); Assert.IsTrue(result.StatusCode == WfStatus.Succeeded); }
public override string Validation(string workflowId, string itemCode, WfResult wfResult) { StringBuilder sb = new StringBuilder(); DataTable dtSb = new BusiItemManage_SB().QueryData(itemCode); condition.Clear(); condition.Add("ITEMNAME", "项目名称"); condition.Add("XMLX", "项目类型"); condition.Add("SHENG", "项目所在地-省"); condition.Add("SHI", "项目所在地-市"); condition.Add("XIAN", "项目所在地-县"); condition.Add("ZJND", "新增费使用年度"); AppendErrorMessage(sb, dtOperation.ColumnNullCheck(dtSb, condition, NotNullFormat)); DataTable dtGis = new BusiItemManage_Gis().QueryData(itemCode, (int)ItemStage.ShenBo, 1); AppendErrorMessage(sb, dtOperation.RowNullCheck(dtGis, "Gis基本信息", NotNullFormat)); condition.Clear(); condition.Add("ADDRESS", "项目区行政位置"); condition.Add("QSJD", "大地坐标-起始经度"); condition.Add("JZJD", "大地坐标-截止经度"); condition.Add("QSWD", "大地坐标-起始纬度"); condition.Add("JZWD", "大地坐标-截止纬度"); condition.Add("GM", "项目建设规模"); condition.Add("XZGDMJ", "新增耕地面积"); condition.Add("MONEY", "资金概算"); condition.Add("TFTBH", "图幅号(图斑号)"); condition.Add("DLMJ", "地类"); condition.Add("QSXZMJ", "权属情况"); AppendErrorMessage(sb, dtOperation.ColumnNullCheck(dtGis, condition, NotNullFormat)); //验证需要的文件是否都已经上传。 AppendErrorMessage(sb, FileValidation(workflowId, itemCode, WorkFlowNode.TB, null)); return sb.ToString(); }
public ActionResult Audit(string taskId, string verifyType, string description, string auditorId, string auditorName, string auditers, string formData) { WfParameter wfParameter = new WfParameter(); UserInfo userInfo = LoginUserInfo.Get(); wfParameter.companyId = userInfo.companyId; wfParameter.departmentId = userInfo.departmentId; wfParameter.userId = userInfo.userId; wfParameter.userName = userInfo.realName; wfParameter.taskId = taskId; wfParameter.verifyType = verifyType; wfParameter.auditorId = auditorId; wfParameter.auditorName = auditorName; wfParameter.description = description; wfParameter.auditers = auditers; wfParameter.formData = formData; WfResult res = wfEngineIBLL.Audit(wfParameter); return(Success(res)); }
public void FileDequeue_Ok() { FileGetProcessListActivity activity = new FileGetProcessListActivity(); WorkflowActivityArgs wfa = new WorkflowActivityArgs(); WorkflowAttributeCollection list = new WorkflowAttributeCollection(); list.Add("ConnectionString", @"Server=.\sql14; Database=etl_controller; Trusted_Connection = True; Connection Timeout = 120; "); list.Add("RegisterConnectionString", @"Server=.\sql14; Database=etl_staging; Trusted_Connection = True; Connection Timeout = 120; "); list.Add("SourceName", "testFiles"); list.Add("Timeout", "30"); list.Add("etl:RunId", "1"); list.Add("etl:BatchId", "101"); list.Add("etl:StepId", "1"); wfa.RequiredAttributes = list; wfa.Logger = _logger; activity.Configure(wfa); WfResult result = activity.Run(CancellationToken.None); Assert.IsTrue(result.StatusCode == WfStatus.Succeeded); }
/// <summary> /// 验证方法。 /// </summary> /// <param name="workflowId">流程Id。</param> /// <param name="itemCode">项目编号。</param> /// <returns>错误信息。</returns> public override string Validation(string workflowId, string itemCode, WfResult wfResult) { StringBuilder sb = new StringBuilder(); //验证承担单位信息。 AppendErrorMessage(sb, ValidationCddw(itemCode)); //验证招投标信息。 AppendErrorMessage(sb, ValidationZtb(workflowId, itemCode, false)); //验证工程监理信息。 AppendErrorMessage(sb, ValidationJl(workflowId, itemCode)); //验证变更信息。 AppendErrorMessage(sb, ValidationBg(itemCode)); //验证进度跟踪信息。 //AppendErrorMessage(sb, ValidationJzxx(itemCode)); //验证需要的文件是否都已经上传。 AppendErrorMessage(sb, FileValidation(workflowId, itemCode, WorkFlowNode.ShiShi, null)); return sb.ToString(); }
/// <summary> /// 验证方法。 /// </summary> /// <param name="workflowId">流程Id。</param> /// <param name="itemCode">项目编号。</param> /// <returns>错误信息。</returns> public abstract string Validation(string workflowId, string itemCode, WfResult wfResult);