示例#1
0
 /// <summary>
 /// 向归档日志表进行数据操作
 /// </summary>
 /// <param name="model"></param>
 public void Operate(Archive_Log model)
 {
     using (Linq2BPMDataContext db = new Linq2BPMDataContext())
     {
         Archive_Log obj = db.Archive_Log.Where(m => m.InstanceID == model.InstanceID &&
                                                m.FormID == model.FormID).FirstOrDefault();
         if (obj != null)
         {
             // 更新
             obj.IsSuccess  = model.IsSuccess;
             obj.UpdateTime = System.DateTime.Now;
             db.SubmitChanges();
         }
         else
         {
             model.CreateTime = System.DateTime.Now;
             // 如果不存在就插入
             db.Archive_Log.InsertOnSubmit(model);
             db.SubmitChanges();
         }
     }
 }
示例#2
0
        /// <summary>
        /// 流程归档
        /// </summary>
        /// <returns></returns>
        private void FlowArchive()
        {
            this.WriteLog("开始归档。");
            // 默认正常,如果发生异常则为false
            bool   b             = true;
            int    n             = 0;
            string strInstanceID = string.Empty;

            try
            {
                // 获取需要归档的数据
                List <V_BPM_Archive> lstBPMArchive = this.bpmArchiveBll.GetList();
                n = lstBPMArchive.Count;
                if (lstBPMArchive.Count > 0)
                {
                    // BPM主机地址
                    string strBPMHostUrl = System.Configuration.ConfigurationManager.AppSettings["BPMHostUrl"];
                    // WrokFlow前缀地址
                    string strWFPrefixUrl = System.Configuration.ConfigurationManager.AppSettings["WFPrefixUrl"];

                    foreach (var item in lstBPMArchive)
                    {
                        strInstanceID = item.InstanceID;
                        // 组合出流程页面url 【统一在FormName前加V_】
                        string strWFUrl = strBPMHostUrl + strWFPrefixUrl + "V_" + item.FormName.Trim() + "?ID=" + item.InstanceID;
                        // 1.读取页面信息
                        string strHtml = this.ReadPage(strWFUrl);
                        if (!string.IsNullOrEmpty(strHtml))
                        {
                            // 物理文件名称
                            string strHtmlFileName = item.FormID + ".html";
                            // 生成本地的html物理文件(暂时无需生成)
                            //string strFullPath = this.CreateFile(strHtml, strHtmlFileName);

                            // 2.调用档案系统接口进行归档
                            bool bRet = this.CallFileSysWebService(item, strHtmlFileName, strHtml);
                            if (bRet)
                            {
                                // 3.更新Archive_Log表
                                Archive_Log model = new Archive_Log();
                                model.FormID     = item.FormID;
                                model.InstanceID = item.InstanceID;
                                // 如果调用归档接口成功为1
                                model.IsSuccess = 1;
                                this.archiveLogBll.Operate(model);
                            }
                            else
                            {
                                n--;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                b = false;
                this.WriteLog("发生异常:InstanceID:[" + strInstanceID + "],错误信息:[ " + ex.Message + "];代码追踪: [" + ex.StackTrace + "]");
            }
            if (b)
            {
                this.WriteLog("归档完毕,共归档 " + n + " 条数据。");
            }
        }