/// <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(); } } }
/// <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 + " 条数据。"); } }