中国联通山西分公司MSS系统设计书-工作流引擎V50.doc

上传人:丁** 文档编号:1574348 上传时间:2019-10-28 格式:DOC 页数:48 大小:1.45MB
返回 下载 相关 举报
中国联通山西分公司MSS系统设计书-工作流引擎V50.doc_第1页
第1页 / 共48页
中国联通山西分公司MSS系统设计书-工作流引擎V50.doc_第2页
第2页 / 共48页
中国联通山西分公司MSS系统设计书-工作流引擎V50.doc_第3页
第3页 / 共48页
点击查看更多>>
资源描述
TW_OO_DESIGN_DOC_20021210-01A Confidential (秘密) OA 工作流引擎设计 说明书 Version 5.0 Written By TalkWeb TALKWEB 湖南拓维信息系统股份有限公司 2003,2004 All Rights Reserved 目录 1 引言 4 1.1 编写目的 4 1.2 缩略语 4 1.3 参考资料 4 2 软件结构 4 2.1 主要实现技术 4 2.2 引擎处理结构 5 3 引擎涉及到的数据名称规范 5 3.1 文件系统划分 5 3.1.1 文件区命名规范 5 3.2 数据库中表、字段命名规范 8 4 引擎异常处理机制 8 4.1 以前错误机制的缺陷 8 4.2 对错误机制的改进方法 9 5 引擎服务的类详细说明 10 5.1 类的列表 10 5.2 引擎所有类的关系结构图 10 5.3 类的详细设计 11 5.3.1 功能类别层中类的详细说明 11 5.3.2 流程实例层中类的详细说明 16 5.3.3 流程逻辑处理层中类的详细说明 21 6 具体类的实现机制 29 7 数据库字典 30 7.1 ER 图 .30 7.2 数据字典 30 1. 主流程实例表(T_WorkFlow_FlowMain) .30 2. 主流程字段表(T_WorkFlow_MainField) 31 3. 主流程附件列表(T_WorkFlow_MainAtt) 32 4. 流程日志表(T_Flow_LogMsg) .32 5. 未结束流程环节日志信息表(T_Flow_LogStatus) .32 6. 未结束日志字段表(T_Flow_LogField) 33 7. 未结束日志附件列表(T_Flow_LogAtt) .33 8. 已结束流程环节日志信息表(T_Flow_EndLogStatus) 34 9. 已结束日志字段表(T_Flow_EndLogField) .34 10. 已结束日志附件列表(T_Flow_EndLogAtt) 35 11. 待办信息表(T_WorkFlow_Notify) .35 12. 在办信息表(T_WorkFlow_ZaiBan ) 35 13. 用户公文邮件表(T_WorkFlow_UserMail) .36 14. 公文邮件字段表(T_WorkFlow_MailField) .36 15. 公文邮件附件列表(T_WorkFlow_MailAtt) 37 16. 需要修改的表、视图的说明 37 8 附注 38 8.1 流程 状态类型 38 8.2 处理标识 38 8.3 消息格式说明 38 8.4 与文件传输服务的接口 41 8.5 对传阅的修改说明 41 8.6 与其他的外挂功能的接口 41 1 引言 1.1 编写目的 本文档是完全参照中国联通总公司办公自动化系统工作流模块的详细设计说明结合 山西联通 MSS 系统建设现在来编写的,并且在原有 4.0 版本的基础上对工作流引擎的基本 结构及基本实现做了较大的改进,软件开发人员在此基础上编写程序代码。 1.2 缩略语 WFE WorkFlow Engine 工作流引擎 1.3 参考资料 流程定义设计书 工作流处理系统设计说明书(v4.0) 中国联通总部 OA 系统设计变更的建议 2 软件结构 2.1 主要实现技术 采用.Net 框架,用 C#编写; SQL SERVER 数据库存储数据; 文件系统存储流程中所带的工作附件(用到自定义的文件传输服务) ; 2.2 引擎处理结构 W e b 服务器 W e b 服务器 M S M Q A g e n t . . . M S M Q S e n d S e n d 分发 服务 工作流 引擎 工作流 引擎 R e c e i v e . . . . . . . . . . . . S e n d S e n d 数据库服务器 M S M Q M S M Q . . . . . . 文件服务器 说明: 1. WEB 上的消息直接送到 MSMQ Agent 服务器上,由 Agent 上的一个消息分发服 务根据消息的缓急程度,将消息送到工作流引擎服务器上,不同的队列中; (Agent 服务器上的分发服务另外设计开发) 2. 引擎服务器上开设多个队列,针对每个 MSMQ,引擎服务都开了专门的线程对应 处理; 3. 引擎服务在做处理的时候,主要是和数据层的文件服务器和数据库服务器交互; 4. 引擎服务在程序出现异常的时候也有相应的异常处理机制(具体机制后面会有详 细说明) 3 引擎涉及到的数据名称规范 3.1 文件系统划分 文件系统分为五个区 盘符:FileStoreTemp 临时区 盘符: FileStore OAMail 公务邮件区 盘符: FileStore backup 备份区 盘符: FileStore Doc 文档归档区 盘符: FileStore Mode 模板区(存放 Word 模板) 备注:以上的命名必须与引擎服务的配置文件保持一致 3.1.1 文件区命名规范 临时区、备份区、公文邮件区命名:公司命名以公司 ID 命名,部门以部门 ID 命名,时间 以 yyyyMM 方式命名,流程实例 ID 已经由工作引擎定义好了。附件命名以文件实际名称 命名。备份区备份序号采用数字递增方式命名。 文档归档区命名:采用公司 ID,部门 ID 命名公司文件夹和部门文件夹,时间以 yyyyMM 方 式命名,所有文件夹及文件不能采用中文方式命名,附件命名采用 Guid 方式命名,扩展名称 保持原有扩展名。 临时区 Unicomgd Temp 流程实例 ID 时间(年月) 部门 ID 公司 ID 文件实际名称+原扩展名 文档归档区 Unicomgd Doc 时间(年月) 部门 ID 公司 ID GUID+原扩展名 流程实例 ID 说明: 流程结束后附件将归档到此处 备份区 Unicomgd backup 流程实例 ID 时间(年月) 部门 ID 公司 ID 步骤处理序号 文件实际名称+原扩展名 步骤处理序号= T + 递增的数字 =用户 ID+yyyyMMddhhmmssmi 说明: 一个流程实例每个走一个步骤就会在备份去存放一个备份,只到流程实例结 束后才由工作流引擎删除 公务邮件区 Unicomgd OAMail 公司名称 ID 流程实例 ID 传 阅 主抄送 文件实际名称+原扩展名 文件实际名称+原扩展名 年月 阅 办 文件实际名称+原扩展名 说明:公务邮件区为用户个人存放传阅文件、阅办文件和主送、抄送的文件,在同一个流 程中,在传阅、阅办和主送、抄送时是多个人共享一份文件。 3.2 数据库中表、字段命名规范 1. 数据库表是以 T_开头; 2. 数据库视图是以 V_开头 ; 3. 数据库函数是以 SF_开头; 4. 数据库存储过程是以 SP_开头; 5. 每个表中的字段,要以意思明确为标准; 4 引擎异常处理机制 4.1 以前错误机制的缺陷 引擎对于出错的消息,重新处理的时间间隔太短。而对数据库的压力很大时, 频 繁的数据库操作可能导致数据库死锁,超时等错误,对于这些错误系统自动恢复需 要 的时间较长,两者的矛盾导致了过多的工作流请求出现回滚。 4.2 对错误机制的改进方法 对于可能出现的异常错误,我们采用多级错误队列的处理方式,对于不同的错 误 队列分情况用不同的重试时间,确保每一个错误都可以经过足够长的时间进行尝试, 从而尽量避免因为数据库或者其他系统资源繁忙导致引擎处理不过来而回滚。 具体错误处理机制图如下: 正 常处理队列 异常处理队列1 异常处理队列2 异常处理队列3 对进 来的消息及时 ,的 处理 实时响应 正常 处理失败了送 到异常队列1 中 对进来的消息每隔5 分钟 处理一个消息 异常队列2 失败了送 到异常队列3 中 对进 来的消息每隔 1 0 分钟处理一个消 息 异常队列1 失败了送 到异常队列2 中 说明: 1. 消息首先被送到正常队列中,等待处理; 2. 当正常处理失败的时,先送入异常处理队列 1 中,等待 5 分钟后处理该 消息; 3. 当在异常处理队列 1 中处理失败的时,先送入异常处理队列 2 中,等待 10 分钟后处理该消息; 4. 当在异常处理队列 2 中处理失败的时,先送入异常处理队列 3 中,等待 15 分钟后处理该消息; 5. 处理的时间间隔可以根据实际系统性能的需要做相应的调整; 6. 错误的队列也可以通过配置文件来配置; 7. 对于多次处理也失败的消息,保存到日志或者数据库中,用另外的监控程序 做监控,等待修改后处理. 5 引擎服务的类详细说明 5.1 类的列表 类名 类说明 WorkEnginerCls.cs 工作流处理类(即单个的线程) ,负责工作流的处理 SocketCls.cs 文件处理类,负责向文件服务器发送指令,等待返回的 结果 ConstCls.cs 定义了整个工程都需要用到的常量和方法 DBDealCls.cs 数据库交互类,负责对数据库进行操作 MSMQCls.cs 负责对消息队列进行操作 SmsCls.cs 对短信处理的类 WorkFlowDefineCls.cs 流程实例的基本信息定义类 WorkFlowCntrCls.cs 流程实例的基本信息控制类 StatusCls.cs 流程中每个状态的基本信息类 DisposalCls.cs 流程中每个处理的基本信息类 UserCls.cs 用户基本信息类 5.2 引擎所有类的关系结构图 DBDealCls.cs ConstCls.cs MSMQCls.cs SMSCls.csSocketCls.cs 功能类别层 WorkFlowDefineCls.cs StatusCls.cs DisposalCls.csUserCls.cs 流程实例层 WorkEnginerCls.cs 逻辑实现层 层 WorkFlowCntrCls.cs 5.3 类的详细设计 5.3.1 功能类别层中类的详细说明 5.3.1.1ConstCls 类 类名 ConstCls 父类名 责任描述 定义的静态方法 定义全局的常量(各个线程独自占有) 协同类 全局常量 类型 值 UrlCompart char # ConfigCompart char = C_User char ; cntFileCompart char * C_Chr1 char (char)1 C_Chr2 char (char)2 C_Chr3 char (char)3 C_Chr4 char (char)4 C_Rep1 string #$!% C_Rep2 String “#$%!“ C_Rep3 String “$#!%“ C_Rep4 string “!#$%“ cntFileEnd string “n“ cntFileQuit string “QUIT“ cntMSMQ string “private$“ cntCFiles string “COPY“ cntDFiles string “MOVE“ cntMFiles string “MOVE“ C_PassDir string “传阅“ C_MotifDir string “主抄送“ C_TypeZhu string “主办“ C_TypeXie String “协办“ C_TypeYue String “阅办“ C_Compart String “ C_DubCompart String “ C_Udept String “ 方法说明 方法名 1 ResolveStr () 类型 public static string Description 字符串解析方法 Input SrcStr,string 型,需要解析的字符串;Flag,char 型,字符串的分割符 Output StrArr 解析后产生的字符串数组 方法名 2 WriteLog () 类型 public static void Description 当操作失败时,写出错日志 Input string LogMsg, 出错信息 string FilePath 日志文件所在的路径 Output 5.3.1.2SocketCls 类 类名 FileCntrCls 父类名 责任描述 提供指示文件服务器操作附件的方法 协同类 ConstCls CnnSocket 方法说明 方法名 1 DealFileSys () 类型 Public bool Description 发送命令到文件服务器 Input Socket Skt,连接服务器的 SOCKET,string CmdFile 要操作的文件的命令行 Output 成功则返回 TRUE,否则返回 FALSE 方法名 2 SendFileMsg () 类型 public string Description 与文件服务器建立连接,并且将指定的操作送到文件服务器上,并等待服务器操 作后返回的结果。 Input string AllDealFileStr 所有要发送的命令组成的一个字符串 格式是:命令 1;命令 2;。/n Output 成功则返回 TRUE,否则返回 FALSE 5.3.1.3DBDealCls 类 类名 DBDealCls 父类名 责任描述 提供连接数据库的方法 查询方法 事务执行的方法 断开数据库的方法 协同类 FileDealCls 方法说明 方法名 1 DBDealCls () 类型 public void Description 类的构造函数,建立数据库连接,实例化文件类。调用到了 Open_Cnn 发生 错误时抛出错误,让上一级处理 Input string CnnStr 连接数据库字符串 Output 方法名 2 Open_Cnn () 类型 public void Description 建立数据库连接 Input Output 方法名 3 Close_Cnn () 类型 private void Description 关闭数据库连接,释放连接实例 Input Output 方法名 4 Query () 类型 public DataTable Description 根据传入的查询语句,得到一个记录集,并返回 Input SqlStr, string型,查询语句 Output 类型 DataTable 方法名 5 ExecuteTran () 类型 public bool Description 有事务处理的方法 Input SqlArr 字符串数组(包含要操作的所有 SQL语句), Output TRUE表示事务执行成功,FALSE 表示执行失败 方法名 6 ExecuteTran () 类型 public bool Description 有事务处理的方法 Input SqlArr 字符串数组(包含要操作的所有 SQL语句), 包含文件系统的操作类型和所 涉及的附件 Output TRUE表示事务执行成功,FALSE 表示执行失败 方法名 7 RollBackFile () 类型 public bool Description 到出错时需要恢复文件系统的机制 Input ArrayList AttachMentDeal 包含文件系统的操作类型和所涉及的附件 Output TRUE表示执行成功,FALSE 表示执行失败 5.3.1.4MSMQCls 类 类名 MSMQCls 父类名 责任描述 创建消息队列的方法 发送消息到队列的方法 从指定的队列中读取消息 删除指定名称的消息队列方法 协同类 ConstCls 方法说明 方法名 1 CreateMSMQ () 类型 public bool Description 在指定机器上创建指定名称的消息队列 Input MSMQPath string 消息队列的名称 Output TRUE 表创建成功,FALSE 表创建失败 方法名 2 SendMsg () 类型 public bool Description 将指定的消息发送到指定队列中 Input MsmqPath string 消息队列的路径,System.Messaging.Message ObjMsg 要 发送的消息对象 Output TRUE 表发送成功,FALSE 表发送失败 方法名 3 OnReceiveCompleted () 类型 public void Description 事件绑定的具体方法 Input Source 触发事件的源 ReceiveCompletedEventArgs asyncResult 异步 Output Object 返回读到的消息 方法名 4 DelMsmq () 类型 public bool Description 删除指定的消息队列 Input MsmqPath string 消息队列的路径 Output TRUE 表删除成功,FALSE 表删除失败 5.3.2 流程实例层中类的详细说明 5.3.2.1WorkFlowDefineCls 类 类名 WorkFlowDefineCls 父类名 责任描述 流程实例基本信息类 协同类 ConstCls 属性 类型 说明 FlowID string 流程实例 ID Title String 流程实例的标题 Action String 动作处理标识 FlowTypeID Int 流程类型 ID FlowTypeName String 流程类型名称 Creator UserCls 流程创建者的用户类 CreateTime String 流程创建的时间 ParentWorkFlow WorkFlowCls 父流程的类 FormClass String HuanJi String 缓急程度 MiJi String 密集程度 IS_PIGEONHOLE int 是否归档标志 ModifyFlag String 对应 SpecialID 处理情况(False + chr(1) + False)表示会签的情况 BrachResult Int 合流标示(1:表示合流,0 表示未 合流) SpeciID String 分支标记(用户 A + chr(1) + 用户 B) Fields String 流程的附件字段(字段名 + chr(1) + 字段值 + chr(2) + 字段名 + chr(1) + 字段值) AttachMents String 流程带的附件的名称和路径(附件 名 + chr(1) + 附件路径 + chr(2) + 附件名 + chr(1) + 附件路径) MergeField String 合流时需要合并的字段(字段名; 字段;。 。 。 。字段名) PIGEONHOLEDeptNam e String 该文要归入的部门名称 FileClass String 请看消息的 FileClass的解释 FileFlag Int 请看消息的 FileFlag的解释 CurStatus StatusCls 流程走到的当前的状态 Company_ID int 流程所在的公司 ID 5.3.2.2WorkFlowCntrCls 类 类名 WorkFlowCntrCls 父类名 责任描述 流程实例基本信息类 协同类 ConstCls 方法说明 方法名 1 CommState 类型 private void Description 处理普通状态的方法(普通状态和开始的进行一样的处理) Input Output 方法名 2 EndState 类型 private void Description 处理结束状态的方法 Input Output 方法名 3 ChildFlow 类型 private void Description 处理子流动作 Input Output 方法名 4 ChildFlow_Wait_SameTi me 类型 private void Description 处理等待、同时子流动作(传阅的时候起作用) Input Output 方法名 5 ChildFlow_NotWait_Sam eTime 类型 private void Description 处理不等待、同时子流动作(传阅)没有写日志的 Input Output 方法名 6 DivideFlow 类型 private void Description 处理分流 Input Output 方法名 7 MergeFlow 类型 private void Description 处理合流 Input Output 方法名 8 HurryAct 类型 private void Description 处理催办动作 Input Output 方法名 9 RenewAct 类型 private void Description 处理普通状态的方法(普通状态和开始的进行一样的处理) Input Output 方法名 10 ReteatAct 类型 private void Description 处理撤回动作 Input Output 方法名 11 DisposeAct 类型 private void Description 处理作废动作 Input Output 方法名 12 GetFlowLogMsg 类型 private void Description 得到当前流程得日志信息 Input Output 方法名 13 类型 private void Description 处理作废动作 Input Output 5.3.2.3StatusCls 类 类名 StatusCls 父类名 责任描述 流程状态基本信息类 协同类 属性 类型 说明 FlowID string 流程实例 ID FlowTypeID Int 流程类型 ID FlowTypeName String 流程类型名称 StatusName String 状态的名称 StatusTypeName String 状态类型的名称 StatusTypeID int 状态类型的 ID INTERFLOW_CUSTOM_ RULE string 合流自定义规则 INTERFIX_FIELD string 相关字段 COM_EXTEND string Com 扩展 CHILD_FLOW_TYPE string 子流(分流)类型 CHILD_FLOW_HINT string 子流提示 CHILD_FLOW string 子流 CHANGE_FLOW _NAME string 转流程流程名 CHANGE_FLOW _ID Int 转流程流程 ID CHANGE_STAT US_NAME string 转流程状态名称 CHANGE_STAT US_ID Int 转流程状态 ID AUTO_FIELD_L IST string 自动列表 AUTO_CUSTOM _RULE string 自动自定义规则 AUTO_FIELD_N AME string 自动字段名称 INTERFLOW_U NITE_LIST string 合流自定义规则 OperationRole _ID Int 业务角色 ID USERROLE_ID Int 用户角色 ID NextStatus HashTable 由下一步状态作为元素组成的 HashTable FromDisposal DisposalCls 本状态从哪个动作过来 方法名 1 GetStatusMsg 类型 private void Description 得到状态的信息,对属性赋值 Input String FlowID 流程ID,string StatusID 状态ID Output 方法名 2 GetNextStatusMsg 类型 private HashTable Description 得到当前状态所有下一步状态的信息,给属性赋值 Input String FlowID 流程ID,string StatusID 状态ID Output 由所有下一步状态信息组成的HashTable 5.3.2.4DisposalCls 类 类名 DisposalCls 父类名 责任描述 流程处理基本信息类 协同类 ConstCls 属性 类型 说明 FlowID string 流程实例 ID FlowTypeID Int 流程类型 ID FlowTypeName String 流程类型名称 DISPOSAL_ID Int 处理过程 ID DISPOSAL_HINT String 处理过程提示 DISPOSAL_NAME String 处理过程名称 TRANSACT_STAT US_ID Int 经办状态 DEPT_LIMIT Int 同部门限制 ROLE_LIMIT Int 同角色限制 CUR_STATUS_ID Int 当前环节 ID PRE_STATUS_ID int 上环节 ID GROUP_LIMIT Int 同组限制 方法名 1 GetDisponsalMsg 类型 private void Description 得到处理步骤的信息 Input int FlowTypeID 流程类型ID,int PreStatus_ID,上一个状态ID,int CurStatus_ID 当前状态ID Output 5.3.2.5UserCls 类 类名 UserCls 父类名 责任描述 用户基本信息类 协同类 ConstCls 属性 类型 说明 UserID string 用户 ID DeptID Int 用户所在的部门 ID DeptName String 用户所在的部门名称 RoomID Int 处室 ID RoomName String 处室名称 UserName String 用户中文名 CompanyID Int 用户所在的公司 ID CompanyName String 用户所在的公司名称 OPERRoleID String 用户所属的角色 ID OPERRoleName String 用户所属的角色名称 UserOrderby Int 用户的排序字段 RoomOrderBy Int 处室排序字段 DeptOrderBy Int 部门排序字段 CompanyOrderBy Int 公司排序字段 方法名 1 GetUserMsg 类型 private void Description 得到用户信息 Input string UserID 用户ID,string CnnStr 数据库连接 Output 5.3.3 流程逻辑处理层中类的详细说明 5.3.3.1WorkEnginerCls 类 类名 WorkEnginerCls 父类名 责任描述 连接数据库 扫描工作流引擎表(是一个视图) 对动作和状态做处理 协同类 使用 FileDealCls 对文件系统的操作 使用 DBDealCls 对数据库进行操作 使用 ConstCls 调用系统常量 方法说明 方法名 1 WorkEnginerRun() 类型 public void Description 工作流引擎工作的方法,创建队列和线程,并且绑定关系,调用方法 AssembleMethod处理取得的消息,并做相应的逻辑处理。 Input Output 方法名 2 AssembleMethod () 类型 public void Description 将取得的消息转变成为结构体,再执行具体的处理方法 Input Output 方法名 3 XMLToStruct () 类型 private bool Description 分解得到的消息,将消息中的信息组合成 ItemMsg类型的数据 Input MSXML2.DOMDocument ObjDom,由消息中的正文所得到的 MSXML2.DOMDocument对 象 Output 转变正确的则返回 TRUE,否则返回 FALSE 方法名 DealWorkFlow () 类型 public void Description 对各种动作和状态的处理 Input Output 方法名 AgainDealMethod () 类型 public void Description 处理由于连接失败而导致未处理的情况。 Input Output 方法名 CorrectMethod () 类型 public void Description 创建的纠错线程,主要是在做纠错处理的时使用 Input Output 方法名 FileSrvDealMethod () 类型 private void Description 主要用于处理在没有连接文件服务成功时放入队列的消息 Input Output 方法名 4 CommState() 类型 private void Description 对普通、开始状态和跳转动作进行处理 若出错,写出错信息,错误的流程等待下一次处理(最多处理 3 次) Input ItemMsg TmpRsd,要处理的结构体,int LogFlag,日志处理的标志位(0:开始的时 候,1:非开始的时候,2:结束)FrmWorkEnginer WinEnginer(在应用程序中用到, 服务中没有) Output 方法名 5 EndState () 类型 private void Description 对结束进行处理,调用了 DecomposeFields(),GetFileName(),MergeUrl(), GetNewAttachment(),BeginState(),GetLogSql(),MoveLog(),DeleteAllTable() CanZhuChaosong(),GetZhuChaoUrl(),DealZhuChaoSong(),EnginerDB.ExecuteTra n() 若出错,写出错信息,错误的流程等待下一次处理(最多处理 3 次) Input ItemMsg TmpRsd,要处理的结构体,FrmWorkEnginer WinEnginer(在应用程序中用 到,服务中没有) Output 方法名 6 HurryAct () 类型 private void Description 对催办进行处理,调用了 DealUserMail(),EnginerDB.ExecuteTran() 若出错,写出错信息,错误的流程等待下一次处理(最多处理 3 次) Input ItemMsg TmpRsd,要处理的结构体,FrmWorkEnginer WinEnginer(在应用程序中用 到,服务中没有) Output 方法名 7 RenewAct () 类型 private void Description 对重发进行处理,调用了 ConstCls.ResolveStr(),EnginerDB.ExecuteTran() 若出错,写出错信息,错误的流程等待下一次处理(最多处理 3 次) Input ItemMsg TmpRsd,要处理的结构体,FrmWorkEnginer WinEnginer(在应用程序中用 到,服务中没有) Output 方法名 8 DisposeAct () 类型 private void Description 对作废进行处理,调用了 MoveLog(),DeleteAllTable(),DealUserMail(), DelMergeUrl(),EnginerDB.ExecuteTran() 若出错,写出错信息,错误的流程等待下一次处理(最多处理 3 次) Input ItemMsg TmpRsd,要处理的结构体,FrmWorkEnginer WinEnginer(在应用程序中用 到,服务中没有) Output 方法名 10 ReteatAct () 类型 private void Description 对撤回进行处理,调用了 EnginerDB.Query(),DecomposeFields(), DealNotify(),EnginerDB.ExecuteTran() 若出错,写出错信息,错误的流程等待下一次处理(最多处理 3 次) Input ItemMsg TmpRsd,要处理的结构体,FrmWorkEnginer WinEnginer(在应用程序中用 到,服务中没有) Output 方法名 11 ChildFlow () 类型 private void Description 对子流进行处理,调用了 ChildFlow_Wait_SameTime (), ChildFlow_NotWait_SameTime (),ChildFlow_NotWait_Order (), ChildFlowEnd () 若出错,写出错信息,错误的流程等待下一次处理(最多处理 3 次) Input ItemMsg TmpRsd,要处理的结构体,FrmWorkEnginer WinEnginer(在应用程序中用 到,服务中没有) Output 方法名 12 ChildFlow_Wait_SameTime() 类型 private void Description 对结束进行处理,调用了 GetRealPath (),GetFileName(),MergeUrl(), GetNewAttachment(),DealerToSql (),DealZaiBan (),DealFlowMain (), GetLogSql(),EnginerDB.ExecuteTran () 若出错,写出错信息,错误的流程等待下一次处理(最多处理 3 次) Input ItemMsg TmpRsd,要处理的结构体,FrmWorkEnginer WinEnginer(在应用程序中用 到,服务中没有) Output 方法名 13 ChildFlow_NotWait_SameTime () 类型 private void Description 对结束进行处理,调用了 GetRealPath(),GetFileName(),MergeUrl(), GetNewAttachment(),DealUserMail(),GetLogSql(),DealZaiBan (), DealFlowMain (),EnginerDB.ExecuteTran() 若出错,写出错信息,错误的流程等待下一次处理(最多处理 3 次) Input ItemMsg TmpRsd,要处理的结构体,FrmWorkEnginer WinEnginer(在应用程序中用 到,服务中没有) Output 方法名 14 ChildFlow_NotWait_Order () 类型 private void Description 对结束进行处理,调用了 GetRealPath(),GetFileName(),MergeUrl(), GetNewAttachment(),DealUserMail(),GetLogSql(),DealZaiBan (), DealFlowMain (),GetUserDept(),GetUserCom(),EnginerDB.ExecuteTran() DealNotify(),DealFlowMain() 若出错,写出错信息,错误的流程等待下一次处理(最多处理 3 次) Input ItemMsg TmpRsd,要处理的结构体,FrmWorkEnginer WinEnginer(在应用程序中用 到,服务中没有) Output 方法名 15 ChildFlowEnd() 类型 private void Description 对结束进行处理,调用了 DelMergeUrl (),GetFields (),MoveLog (), DeleteAllTable (),DealUserMail(),GetLogSql(),DealZaiBan (), DealFlowMain (),EnginerDB.ExecuteTran() 若出错,写出错信息,错误的流程等待下一次处理(最多处理 3 次) Input ItemMsg TmpRsd,要处理的结构体,FrmWorkEnginer WinEnginer(在应用程序中用 到,服务中没有) Output 方法名 16 DivideFlow () 类型 private void Description 对结束进行处理,调用了 DecomposeFields (),GetFileName (),MergeUrl(), GetNewAttachment(),DealFlowMain (),GetLogSql(),GetUserDept (), GetUserCom (),ChildFileDeal(),GetOneArr(),EnginerDB.ExecuteTran() 若出错,写出错信息,错误的流程等待下一次处理(最多处理 3 次) Input ItemMsg TmpRsd,要处理的结构体,FrmWorkEnginer WinEnginer(在应用程序中用 到,服务中没有) Output 方法名 17 ChildFlow_NotWait_SameTime () 类型 private void Description 对结束进行处理,调用了 GetRealPath(),GetFileName(),MergeUrl(), GetNewAttachment(),DealUserMail(),GetLogSql(),DealZaiBan (), DealFlowMain (),EnginerDB.ExecuteTran() 若出错,写出错信息,错误的流程等待下一次处理(最多处理 3 次) Input ItemMsg TmpRsd,要处理的结构体,FrmWorkEnginer WinEnginer(在应用程序中用 到,服务中没有) Output 方法名 18 MergeFlow () 类型 private void Description 对结束进行处理,调用了 DecomposeFields (),GetFileName(),MergeUrl(), GetNewAttachment(),MoveLog (),GetLogSql(),DealZaiBan (),DealFlowMain (), GetMergeField(),DealNotify(),DealZaiBan(),EnginerDB.ExecuteTran() 若出错,写出错信息,错误的流程等待下一次处理(最多处理 3 次) Input ItemMsg TmpRsd,要处理的结构体,FrmWorkEnginer WinEnginer(在应用程序中用 到,服务中没有) Output 方法名 19 GetMergedField() 类型 private string Description 对结束进行处理,调用了 EnginerDB.Query(),DecomposeFields() 若出错,写出错信息,错误的流程等待下一次处理(最多处理 3 次) Input ItemMsg TmpRsd,要处理的结构体,FrmWorkEnginer WinEnginer(在应用程序中用 到,服务中没有) Output 合并后的字段 方法名 20 GetFieldValue () 类型 private string Description 返回查找到的字段的值 Input SrcStr string Field string Output 返回查找到的字段的值 方法名 21 GetOneArr () 类型 private string Description 将数组的数组转变成一维数组 Input TmpArr string Output 一维数组 方法名 22 ChildFileDeal () 类型 private string Description 对各个子流程的文件系统的处理 Input FNameUrl Field型,ATTACHMENT所组成的结构体数组,TmpRsd ItemMsg型,某条 DB中记录组成的结构体,UserID string型 用户ID, ChCreateTime string型 创 建时间 ChDept string型,用户所在部门,ChCom string型,用户所在公司, ChFlowID string型,子流程ID,FileName string型,文件的名称 Output 返回操作文件系统的字符串数组 方法名 23 ChildDBDeal () 类型 private string Description 对各个子流程的数据库的处理, ChildSql(),DealNotify(),GetLogSql() Input FNameUrl Field型,ATTACHMENT所组成的结构体数组,UserID string型 用户 ID, ChCreateTime string型 创建时间 ChDept string型,用户所在部门, ChCom string型,用户所在公司,ChFlowID string型,子流程ID,TmpRsd ItemMsg型,某条DB中记录组成的结构体,ChAttachments string型,工作区的文 件存放字符串 ChBackAttachment string型,备份区的文件存放字符串 Output 返回操作数据库的字符串数组 方法名 24 GetFileName () 类型 private string Description 得到文件系统中的文件存放名称 Input FNameUrl Field型,ATTACHMENT 所组成的结构体数组,Flag int 0:非结束, 1:结束 Output 返回文件名称 方法名 25 GetNewAttachment () 类型 private string Description 得到新的 ATTACHMENT Input fileNames string型,所有的文件名称,fileArr string型,新的 URL Output 返回 ATTACHMENT 方法名 26 GetFields () 类型 private string Description 更新主流程的附加字段表 Input Fields88 带 88的字段,FlowID 要查找的流程 Output 更新的字符串 方法名 27 ChildSql () 类型 private string Description 处理等待、同时子流动作(并发串改的时候起作用) Input ItemMsg TmpRsd,string ChildFlowID,string Receiver,string ChAttachments Output 返回操作数据库的字符串数组 方法名 28 DealSpecialID () 类型 private ItemMsg Description 修改结构体中的 SPECIAID和 MODIFYFLAG的值 Input TmpRsd ItemMsg 型, Output 修改后的结构体 方法名 29 DealNotify () 类型 private string Description 操作待办表 Input ItemMsg TmpRsd,string UserID,string FlowID Output 操作的 SQL语句 方法名 30 DealZaiBan () 类型 private string Description 操作在办表 Input TmpRsd ItemMsg型,某条 DB中记录组成的结构体 Output 操作的 SQL语句 方法名 31 DealFlowMain () 类型 private string Description 操作实例表和引擎表 Input TmpRsd ItemMsg型,某条 DB中记录组成的结构体 ParentID string Output 操作的 SQL语句 方法名 32 DealUserMail () 类型 private string Description 对用户邮件表进行操作(GetMaxID) Input TmpRsd ItemMsg型,某条 DB中记录组成的结构体 Flag int 0:作废,1:催办,2: 传阅,3:主抄送 Output 返回对用户邮件表进行操作的SQL语句组 方法名 33 GetMaxID () 类型 private int Description 得到最大的 ColName EnginerDB.Query( Input TableName string 表名称,ColName string 列名称 Output 返回对用户邮件表进行操作的SQL语句组 方法名 34 DeleteAllTable () 类型 private string Description 删除出日志表外的所有的其他表中某个流程的记录 Input Flow_id string 表流程实例 ID Output 所有的删除SQL数组 方法名 35 MoveLog () 类型 private string Description 转移 t_flow_logstatus 中的记录到 t_flow_endlogstatus Input Flow_id string 表流程实例 ID Output 所有的转移SQL数组 方法名 36 DealUserMail () 类型 private string Description 对用户邮件表进行操作(GetMaxID) Input TmpRsd ItemMsg型,某条 DB中记录组成的结构体 Flag int 0:作废,1:催办,2: 传阅,3:主抄送 Output 返回对用户邮件表进行操作的SQL语句组 方法名 37 CanZhuChaosong() 类型 private string Description 判断是否需要主送抄送 Input TmpRsd.Fields 结构体附加字段 Output 返回一个字符串 方法名 38 DealZhuChaoSong () 类型 private string Description 得到主送抄送的 SQL语句 Input TmpRsd 结构体, string TxtToCC(主送抄送的所有的接受者) MailAttachMent string 没有“正文原稿”和“稿纸” Output 返回一个SQL数组 方法名 39 DocSql () 类型 private string Description 能进此函数表明,所有的文档管理的条件已经符合。 得到插入文档管理系统表的 SQL语句 Input ItemMsg TmpRsd,Field FileUrl,string HttpUrl Output 返回一个SQL数组 方法名 40 DealPignohole () 类型 private string Description 用于归档的函数,返回字符串数组数组 Input ItemMsg TmpRsd,Field FNameUrl Output 返回二维字符串数组 方法名 41 GetDeptID () 类型 private string Description 根据公司 ID得到本公司的行政部的 ID Input CompanyID string Output 部门ID 方法名 42 GetLogSql () 类型 private string Description 根据传入的结构体, 返回一个 SQL数组 Input TmpRsd,NewattachMent,DealFlag(0:开始的时候,1:非开始的时候,2:结束) Output 返回一个SQL数组 方法
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文书 > 各类标准


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!