Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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("出差申请调用定时触发出差报销生成的接口成功");
        }