Example #1
0
        public void CallCustomFlowTrigger(T_FLOW_CUSTOMFLOWDEFINE define)
        {
            string strResult = CallWcf(define);//Call 服务
            if (!string.IsNullOrEmpty(strResult))//判断是否返回内容
            {
                try
                {
                    string NewFormID = string.Empty;
                    DataRow DRNewTrigger = null;
                    DataTable sourceTable = new DataTable();
                    if (ApplicationValueToDataTable(strResult, ref sourceTable, ref NewFormID, ref DRNewTrigger))
                    {

                        string strUser = SMT.Workflow.Engine.BLL.Utility.ReceiveUser(define.RECEIVEUSER);
                        TaskCache.TaskCacheReflesh(strUser);
                        EngineServicesDAL dal = new EngineServicesDAL();
                        dal.SendTriggerMsg(sourceTable, NewFormID, define, strUser);//发送消息
                    }
                }
                catch (Exception ex)
                {
                    string cMessage = "CallCustomFlowTrigger:" + strResult;
                    Tracer.Debug(cMessage + ex.Message);
                }
            }
        }
Example #2
0
 /// <summary>
 /// 发起自定义流程(任务系统)
 /// </summary>
 /// <param name="define"></param>       
 public void CallCustomFlowTrigger(T_FLOW_CUSTOMFLOWDEFINE define)
 {
     EngineServicesBLL bll = new EngineServicesBLL();
     bll.CallCustomFlowTrigger(define);
 }
Example #3
0
        private string CallWcf(T_FLOW_CUSTOMFLOWDEFINE define)
        {
            string XmlTemplete = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + "\r\n" +
                              "<Paras>" + "\r\n" +
                              "<Para TableName=\"\" Name=\"OWNERID\" Description=\"strOwnerID\" Value=\"" + define.RECEIVEUSER + "\"></Para>" +
                              "<Para TableName=\"\" Name=\"OWNERDEPARTMENTID\" Description=\"OWNERDEPARTMENTID\" Value=\"" + define.OWNERDEPARTMENTID + "\"></Para>" +
                              "<Para TableName=\"\" Name=\"OWNERPOSTID\" Description=\"strOwnerID\" Value=\"" + define.OWNERPOSTID + "\"></Para>" +
                              "<Para TableName=\"\" Name=\"OWNERCOMPANYID\" Description=\"strOwnerID\" Value=\"" + define.OWNERCOMPANYID + "\"></Para>" +
                              "{0}" +
                              "</Paras>";
            string TmpWCFBindingContract = string.Concat(define.WCFBINDINGCONTRACT);
            string TmpProcessFuncWCFUrl = Config.GetSystemCode(define.SYSTEMCODE) + define.PROCESSWCFURL;
            string TmpProcessFuncName = define.PROCESSFUNCNAME;
            string TmpProcessFuncPameter = string.Format(XmlTemplete, define.PROCESSFUNCPAMETER);
            try
            {
                if (!string.IsNullOrEmpty(TmpWCFBindingContract) && !string.IsNullOrEmpty(TmpProcessFuncWCFUrl) && !string.IsNullOrEmpty(TmpProcessFuncName))
                {

                    string ErroMesssage = "";
                    object TmpreceiveString = SMT.Workflow.Engine.BLL.Utility.CallWCFService(TmpWCFBindingContract, TmpProcessFuncWCFUrl, TmpProcessFuncName, TmpProcessFuncPameter, ref  ErroMesssage);
                    string cMessage = "执行链接:" + TmpProcessFuncWCFUrl + "\r\n" +
                                      "执行方法:" + TmpProcessFuncName + "\r\n" +
                                      "绑定契约:" + TmpWCFBindingContract + "\r\n" +
                                      "执行参数:" + TmpProcessFuncPameter + "\r\n" +
                                      "----------------------------------------------------------";
                    Tracer.Debug("自定义发起流程Call服务:方法CallWcf()" + cMessage);
                    return TmpreceiveString == null ? string.Empty : TmpreceiveString.ToString();

                }
            }
            catch (Exception e)
            {

                string cMessage = "执行链接:" + TmpProcessFuncWCFUrl + "\r\n" +
                                "执行方法:" + TmpProcessFuncName + "\r\n" +
                                "绑定契约:" + TmpWCFBindingContract + "\r\n" +
                                "执行参数:" + TmpProcessFuncPameter + "\r\n" +
                                "----------------------------------------------------------";
                Tracer.Debug("自定义发起流程Call服务异常:方法CallWcf()" + cMessage + e.Message);
            }
            return string.Empty;
        }
Example #4
0
 /// <summary>
 /// 自定义发起流程消息
 /// </summary>
 /// <param name="SourceValueDT"></param>
 /// <param name="ApplicationCode"></param>
 /// <param name="define"></param>
 public void SendTriggerMsg(DataTable SourceValueDT, string ApplicationCode, T_FLOW_CUSTOMFLOWDEFINE define, string strUser)
 {
     try
     {
         if (!string.IsNullOrEmpty(strUser))
         {
             string sql = "UPDATE T_WF_DOTASK SET DOTASKSTATUS=1, CLOSEDDATE=to_date('" + DateTime.Now.ToString("yyyy/MM/dd hh:mm") + ",REMARK='关闭待办(自定义发起流程)' WHERE SYSTEMCODE='" + define.SYSTEMCODE + "' AND DOTASKSTATUS=0 AND ORDERID='" + ApplicationCode + "'";
             dao.Open();
             int result = dao.ExecuteNonQuery(sql);
             string addsql = @"INSERT INTO T_WF_DOTASK(DOTASKID,COMPANYID,ORDERID,MESSAGEBODY,APPLICATIONURL,RECEIVEUSERID,BEFOREPROCESSDATE,DOTASKTYPE,
                              ENGINECODE,DOTASKSTATUS,MAILSTATUS,RTXSTATUS,APPFIELDVALUE,FLOWXML,APPXML,SYSTEMCODE,MODELCODE,MODELNAME,REMARK) ) VALUES ('" + Guid.NewGuid().ToString() + "',";
             addsql += "'','" + ApplicationCode + "',";
             string XmlTemplete = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + "\r\n" +
                             "<System>" + "\r\n" +
                             "{0}" +
                             "</System>";
             if (string.IsNullOrEmpty(define.MESSAGEBODY))
             {
                 addsql += "'" + ApplicationCode + "'已审批通过,";
                 addsql += "'" + string.Format(XmlTemplete, porcessValue(define.MSGLINKURL, SourceValueDT)) + "',";
             }
             else//在引擎配置界面定义了消息内容
             {
                 addsql += "'" + ReplaceMessageBody(define.MESSAGEBODY, SourceValueDT) + "'";
                 addsql += "'" + string.Format(XmlTemplete, porcessValue(define.MSGLINKURL, SourceValueDT)) + "',";
             }
             addsql += "'','" + strUser + "',to_date('" + DateTime.Now.AddDays(3).ToString("yyyy/MM/dd") + "','YYYY-MM-DD'),0,'',0,0,0,";
             addsql += "'','','','" + define.SYSTEMCODE + "','" + define.MODELCODE + "','" + define.MODELNAME + "','自发流程')";
             LogHelper.WriteLog("SendTriggerMsg()SQL语句:\r\n" + addsql);
             result = dao.ExecuteNonQuery(addsql);
         }
     }
     catch (Exception ex)
     {
         LogHelper.WriteLog(this, "SendTriggerMsg()", "自定义发起流程消息", ex);
     }
     finally
     {
         dao.Close();
     }
 }