/// <summary> /// 添加定时触发 /// </summary> /// <param name="paras"></param> public static void SendEngineEventTriggerData(IList <object> paras) { StringBuilder strRes = new StringBuilder(); EngineWS.T_WF_TIMINGTRIGGERACTIVITY trigger = new EngineWS.T_WF_TIMINGTRIGGERACTIVITY(); trigger.TRIGGERID = System.Guid.NewGuid().ToString(); trigger.COMPANYID = paras[0].ToString(); trigger.SYSTEMCODE = paras[1].ToString(); trigger.MODELCODE = paras[2].ToString(); trigger.BUSINESSID = paras[3].ToString(); trigger.TRIGGERACTIVITYTYPE = 2; if (paras[4].ToString().IndexOf(':') < 0) { trigger.TRIGGERTIME = Convert.ToDateTime(paras[4].ToString() + " 8:00:00"); } else { trigger.TRIGGERTIME = Convert.ToDateTime(paras[4].ToString()); } trigger.TRIGGERROUND = 0; trigger.MESSAGEBODY = paras[8].ToString(); trigger.WCFURL = "EngineTriggerService.svc"; trigger.FUNCTIONNAME = paras[11].ToString(); trigger.FUNCTIONPARAMTER = paras[12].ToString(); trigger.PAMETERSPLITCHAR = paras[13].ToString(); trigger.WCFBINDINGCONTRACT = "customBinding"; trigger.TRIGGERSTATUS = 0; trigger.TRIGGERDESCRIPTION = "EventTrigger"; trigger.TRIGGERTYPE = "user"; //strRes.Append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>"); //strRes.Append("<System>"); //strRes.Append("<CompanyCode>" + paras[0].ToString() + "</CompanyCode>"); //strRes.Append("<SystemCode>" + paras[1].ToString() + "</SystemCode>"); //strRes.Append("<ModelCode>" + paras[2].ToString() + "</ModelCode>"); //strRes.Append("<ApplicationOrderCode>" + paras[3].ToString() + "</ApplicationOrderCode>"); ////strRes.Append("<TaskStartDate>" + paras[4].ToString() + "</TaskStartDate>"); //if(paras[4].ToString().IndexOf(':')<0) // strRes.Append("<TaskStartDate>" + paras[4].ToString()+" 8:00:00" + "</TaskStartDate>"); //else // strRes.Append("<TaskStartDate>" + paras[4].ToString() + "</TaskStartDate>"); ////strRes.Append("<TaskStartDate>" + Convert.ToDateTime("2012/12/6 16:40:26").ToString() + "</TaskStartDate>"); //strRes.Append("<TaskStartTime>" + paras[5].ToString() + "</TaskStartTime>"); //strRes.Append("<ProcessCycle>" + paras[6].ToString() + "</ProcessCycle>"); //strRes.Append("<ReceiveUser>" + paras[7].ToString() + "</ReceiveUser>"); //strRes.Append("<MessageBody>" + paras[8].ToString() + "</MessageBody>"); //strRes.Append("<MsgLinkUrl>" + paras[9].ToString() + "</MsgLinkUrl>"); //strRes.Append("<ProcessWcfUrl>" + "EngineTriggerService.svc" + "</ProcessWcfUrl>"); //strRes.Append("<WcfFuncName>" + paras[11].ToString() + "</WcfFuncName>"); //strRes.Append("<WcfFuncParamter>" + paras[12].ToString() + "</WcfFuncParamter>"); //strRes.Append("<WcfParamSplitChar>" + paras[13].ToString() + "</WcfParamSplitChar>"); //strRes.Append("<WcfBinding>" + paras[14].ToString() + "</WcfBinding>"); //strRes.Append("</System>"); //return strRes.ToString(); SMT.Foundation.Log.Tracer.Debug("发出提醒定时触发数据:\r\n" + strRes.ToString()); EngineWS.EngineWcfGlobalFunctionClient EngineClient = new EngineWS.EngineWcfGlobalFunctionClient(); //EngineClient.SaveEventData(strRes.ToString()); EngineClient.WFAddTimingTrigger(trigger); //EngineClient.WFAddTimingTrigger(trigger); }
/// <summary> /// 填充TIMINGTRIGGERACTIVITY实体 -luojie /// </summary> public void MakeTravelreimbursementTriggerEntity(string strXml) { Tracer.Debug("出差申请开始调用定时触发出差报销生成的接口"); try { using (EngineWcfGlobalFunctionClient wcfClient = new EngineWcfGlobalFunctionClient()) { string strBusinesStripId = string.Empty; StringReader strRdr = new StringReader(strXml); XmlReader xr = XmlReader.Create(strRdr); while (xr.Read()) { if (xr.NodeType == XmlNodeType.Element) { string elementName = xr.Name; if (elementName == "Paras" || elementName == "System") { while (xr.Read()) { string type = xr.NodeType.ToString(); #region if (xr["Name"] != null) { if (xr["Name"].ToUpper() == "BUSINESSTRIPID") { strBusinesStripId = xr["Value"]; } } #endregion } } } } SMT.SaaS.BLLCommonServices.EngineConfigWS.T_WF_TIMINGTRIGGERACTIVITY triggerEntity = new SMT.SaaS.BLLCommonServices.EngineConfigWS.T_WF_TIMINGTRIGGERACTIVITY(); triggerEntity.TRIGGERID = Guid.NewGuid().ToString(); triggerEntity.BUSINESSID = strBusinesStripId; triggerEntity.TRIGGERNAME = strBusinesStripId; triggerEntity.SYSTEMCODE = "OA"; triggerEntity.SYSTEMNAME = "办公系统"; triggerEntity.MODELCODE = "T_OA_BUSINESSTRIP"; triggerEntity.MODELNAME = "出差申请"; triggerEntity.TRIGGERACTIVITYTYPE = 2; //获取出差申请的结束时间 DateTime arriveTime = GetLatestTimeOfBusinesstrip(GetBusinessIdFromString(strXml)); triggerEntity.TRIGGERTIME = arriveTime;//待改-出差申请的结束时间 Tracer.Debug("出差申请结束时间:" + arriveTime.ToString()); triggerEntity.TRIGGERROUND = 0; triggerEntity.WCFURL = "EngineEventServices.svc";//需要传输数据至的服务名 triggerEntity.FUNCTIONNAME = "EventTriggerProcess";//需要传输数据至的方法名称 //因两次调用回调函数的问题在此产生出差报销id //strXml += "<Para FuncName=\"DelayTravelreimbursmentAdd\" Name=\"TRAVELREIMBURSEMENTID\" Description=\"出差报销ID\" Value=\""+Guid.NewGuid().ToString()+"\" ValueName=\"出差报销ID\" ></Para>"; //处理消息规则里T_OA_BUSINESSTRIP的信息 strXml = strXml.Replace("<?xml version=\"1.0\" encoding=\"utf-8\" ?>", "").Replace("<Paras>", "").Replace("</Paras>", "").Replace("TableName", "FuncName").Replace("T_OA_BUSINESSTRIP", "DelayTravelreimbursmentAdd").Trim(); //处理消息规则里T_OA_TRAVELREIMBURSEMENT的信息 strXml = strXml.Replace("T_OA_TRAVELREIMBURSEMENT", "DelayTravelreimbursmentAdd"); triggerEntity.FUNCTIONPARAMTER = strXml;//传输的对象方法获取的数据 triggerEntity.PAMETERSPLITCHAR = "Г"; triggerEntity.WCFBINDINGCONTRACT = "CustomBinding"; triggerEntity.CREATEDATETIME = System.DateTime.Now; //triggerEntity.TRIGGERSTART = System.DateTime.Now; //triggerEntity.TRIGGEREND = Convert.ToDateTime("2099/12/30 18:00:00"); wcfClient.WFAddTimingTrigger(triggerEntity); } } catch (Exception ex) { Tracer.Debug("出差申请调用定时触发出差报销生成的接口失败:" + System.DateTime.Now.ToString() + " " + ex.ToString()); return; } Tracer.Debug("出差申请调用定时触发出差报销生成的接口成功"); }