/// <summary> /// 创建流程返回WorkflowContext对象 /// </summary> /// <param name="page">页面对象</param> /// <param name="startup">流程发起参数</param> /// <returns></returns> internal static WorkflowContext CreateProcess(Page page, WFStartupParameter startup) { var bizContext = ConvertToBizContext(startup); string result = ExecuteMethod(AppSettingInfo.CONST_ExecuteMethod_CreateProcess, AppSettingInfo.CONST_ExecuteMode_Zero, AppSettingInfo.CONST_WorkflowMethodVersion, bizContext); SDKHelper.ShowProcess(page, result); return(JsonConvert.DeserializeObject <WorkflowContext>(result)); }
/// <summary> /// 将发起参数WFStartupParameter转换为BizContext /// </summary> /// <param name="startup"></param> /// <returns>BizContext</returns> private static BizContext ConvertToBizContext(WFStartupParameter startup) { BizContext bizContext = new BizContext(); bizContext.FormParams = startup.FormParams; bizContext.DynamicRoleUserList = startup.DynamicRoleUserList; bizContext.FlowCode = startup.FlowCode; bizContext.ProcessMobileURL = startup.ProcessMobileURL; bizContext.ProcessTitle = startup.ProcessTitle; bizContext.ProcessURL = startup.ProcessURL; bizContext.CurrentUser = startup.CurrentUser; return(bizContext); }
protected void StartProcess(string groupType) { Dictionary <string, object> formParams = new Dictionary <string, object>(); var c_System = StaticResource.Instance.SystemList.Where(x => x.GroupType == groupType).FirstOrDefault(); string ProcessKey = c_System.Configuration.Element("ProcessCode").Value + "-HB"; //string ProcessKey = "YY_ZBGK-FDCHZ"; //系统2014年7月月报 B_SystemBatch batch = B_SystemBatchOperator.Instance.GetSystemBatch(Guid.Parse(BusinessID)); string FinYear = batch.FinYear.ToString() + "年"; string FinMonth = batch.FinMonth.ToString("D2"); string _Title = c_System.SystemName + FinYear + FinMonth + "汇总月度报告"; formParams.Add("ReportName", _Title); formParams.Add("ProcessKey", ProcessKey); Common.ScheduleService.Log.Instance.Info(c_System.SystemName + "合并流程服务,合并流程启动, 上报年:" + FinYear + ",上报月:" + FinMonth); Dictionary <string, string> Dic = new Dictionary <string, string>(); Dic["ReportName"] = _Title; Dic["ProcessKey"] = ProcessKey; WorkflowContext wfc = null; try { Common.ScheduleService.Log.Instance.Info(c_System.SystemName + "合并流程启动开始!"); var dynamicRoleUserList = JsonUser.GetDynamicRoleUserList(ProcessKey); var starup = new BPF.Workflow.Client.WFStartupParameter() { FlowCode = ProcessKey, BusinessID = this.BusinessID, CurrentUser = new UserInfo() { UserCode = "$VirtualUserCode$" + this.CurrentUser }, FormParams = formParams, DynamicRoleUserList = dynamicRoleUserList, }; string opiniontext = string.Empty; //重新在批次表中,获取数据 BatchRptList = JsonConvert.DeserializeObject <List <V_SubReport> >(batch.SubReport); List <BPF.Workflow.Object.ProcessLog> _list = new List <ProcessLog>(); if (BatchRptList.Count > 0) { BatchRptList.ForEach(BR => { //B_MonthlyReport bm = B_MonthlyreportOperator.Instance.GetMonthlyreport(BR.ReportID); _list.AddRange(BPF.Workflow.Client.WFClientSDK.GetProcessLogList(BR.ReportID.ToString())); }); } batch.Opinions = JsonConvert.SerializeObject(_list); WorkflowContext workflow = WFClientSDK.CreateProcess(null, starup); Common.ScheduleService.Log.Instance.Info(c_System.SystemName + "项目系统合并流程启动中!"); BizContext bizContext = new BizContext(); bizContext.NodeInstanceList = workflow.NodeInstanceList; bizContext.ProcessRunningNodeID = workflow.ProcessInstance.RunningNodeID; bizContext.BusinessID = BusinessID; bizContext.FlowCode = ProcessKey; bizContext.ApprovalContent = c_System.SystemName + "各区域数据已经汇总完成,请领导审批"; // bizContext.CurrentUser = new UserInfo() { UserCode = "$VirtualUserCode$项目汇总服务" }; bizContext.CurrentUser = new UserInfo() { UserCode = "$VirtualUserCode$" + this.CurrentUser }; bizContext.ProcessURL = "/BusinessReport/TargetApprove.aspx?ProType=Batch"; bizContext.FormParams = formParams; bizContext.ExtensionCommond = new Dictionary <string, string>(); bizContext.ExtensionCommond.Add("RejectNode", Guid.Empty.ToString()); bizContext.DynamicRoleUserList = dynamicRoleUserList; wfc = WFClientSDK.ExecuteMethod("SubmitProcess", bizContext); if (wfc.StatusCode != 0) { throw new Exception(wfc.StatusMessage + "; BusinessID = " + BusinessID); } //提交操作状态为1 OperationType = 1; Common.ScheduleService.Log.Instance.Info(c_System.SystemName + "合并流程启动结束!"); } catch (Exception ex) { Common.ScheduleService.Log.Instance.Error(c_System.SystemName + "合并流程启动失败!,错误信息:" + ex.ToString()); batch = null; } //将批次的审批状态改变 ExceptionHelper.TrueThrow(batch == null, string.Format("cannot find the report data which id={0}", BusinessID)); batch.WFBatchStatus = "Progress"; //跟新后面两个大老板的状态 //var AP = ProcessResponse.GetProcess(batch.ID.ToString(), null); //List<NavigatActivity> APlist = AP.Navigat; //string Json = Newtonsoft.Json.JsonConvert.SerializeObject(APlist); //batch.ReportApprove = Json; //获取流程导航 List <NavigatActivity1> listna = GetProcessIntance(wfc); if (listna.Count > 0) { batch.ReportApprove = JsonConvert.SerializeObject(listna); } //batch.Description = GetDescription(c_System.ID, batch.FinYear, batch.FinMonth); //修改批次数据 B_SystemBatchOperator.Instance.UpdateSystemBatch(batch); }
/// <summary> /// 创建流程返回WorkflowContext对象 /// </summary> /// <param name="page">页面</param> /// <param name="startup">发起流程的参数</param> /// <returns>流程信息</returns> public static WorkflowContext CreateProcess(Page page, WFStartupParameter startup) { return(WFClientProcess.CreateProcess(page, startup)); }