版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SinoEP工作流开发手册模板资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。SinoEP工作流开发手册版本:4.2中科软科技股份有限公司6月1. 阅读指南 41.1. 手册目标 41.2. 阅读对象 41.3. 手册约定 42. 体系介绍 43. 流程定义 43.1. 定义工具配置文件 43.1.1. workflow.xml 53.2. 流程定义工具需要实现的接口 53.3. 流程配置过程 83.3.1. 打开配置界面 83.3.2. 初始化数据 93.3.3. 新建流程 183.3.4. 配置流程 244. 工作流引擎 434.1. 引擎配置文件 434.1.1. perties 434.1.2. workflow.xml 444.2. 引擎需要实现的接口 444.2.1. 数据操作的接口 444.2.2. 组织机构接口 474.2.3. 逾期实现接口 514.2.4. 应用程序实现接口 514.2.5. 办理人设置实现接口 514.3. 启动工作流 524.3.1. 工作流引擎入口参数 524.3.2. Servlet和方法启动工作流 534.4. 处理待办和已办 544.4.1. 打开待办页面 544.4.2. 打开待办页面一般需要调用的接口 544.4.3. 如何打开已办页面 554.4.4. 打开已办页面一般需要调用的接口 554.5. 数据封装类 554.5.1. 文件类型FlowFileTypeVO 554.5.2. 流程FlowWorkflowVO 564.5.3. 待办FlowWriteVO 564.5.4. 已办FlowReadVO 574.5.5. 实例FlowWorkflowinfoVO 584.5.6. 流转日志FlowWflogVO 594.5.7. 意见FlowIdeaVO 604.5.8. 签名FlowSignVO 604.6. 引擎提供的接口 614.6.1. 取待办 614.6.2. 取已办 634.6.3. 待办已办提示信息 644.6.4. 有关意见操作的接口 684.6.5. 存取临时签名 724.6.6. 签收 734.6.7. 有关按钮操作的接口 734.6.8. 业务表单的权限控制 744.6.9. 收回操作的控制 754.6.10. 有关待办授权和工作移交的操作的接口 784.6.11. 修改流程状态的接口 80resumeFlow(StringfileTypeId,StringrecordId) 804.6.12. 得到当前用户有启动权限的流程 834.6.13. 其它 835.7工作流控制公式 85阅读指南手册目标本手册主要面向使用工作流产品进行二次开发的开发人员及部分工作流产品的最终用户撰写。经过本手册,您能够了解如何配置工作流、启动工作流和工作流引擎提供的功能,并进行各种功能的定制与扩展。阅读对象要求读者对工作流基本概念有一定了解。手册约定体系介绍工作流管理系统由可视化建模工具、流程引擎、管理监控和客户端调用组成。用户根据业务需求,使用流程配置工具,能够画出业务流程配置图。工作流引擎根据流程配置数据解析流程,使文档在参与者之间流转审批。工作流监控管理能够收回(强制收回)、工作移交、指定参与者、强制结束流程、改变流程状态等功能。客户端调用提供了一些接口,取待办已办、结束流程、签收、提醒、取意见等功能。流程定义图形化的流程定义工具,基于浏览器展现,因此具有以下的特点:界面、展现、各种属性可一体化拖拽式配置流程权限管理-超级管理员和流程管理超级管理员:具有初始化数据的权限流程管理员:新建和配置流程的权限具有自带的组织结构模型(基本角色的组织),也支持外部的组织资源模型流程复制—流程配置相似的流程能够复制过来修改,省去从头开始配置的麻烦版本控制经过缺省客户端快速模拟流程运行过程定义工具配置文件如果是用自带的系统管理时,都是默认的实现,就不需做以下配置。workflow.xml流程定义工具扩展接口实现类的配置。接口实现配置:格式说明:<imp><workflowid="db_service"class="com.sinosoft.test.DBServiceImp"method=""/></imp>—id标识class实现类及路径method方法(如果不需要具体的方法,能够为空)常见配置说明如下:—dept_service 引用外部组织机构—db_service取得数据库连接workflow_org_integeration客户端与组织结构集成配置workflow_author_db 客户端与权限控制集成数据库配置workflow_author_form 客户端与权限控制集成表单配置workflow_author_application 客户端与权限控制集成具体项目应用的配置,为项目组提供其它权限控制的扩展属性配置格式说明:<resource><propname=””></prop></resource>常见配置说明如下:Flow.author.type权限配置的数据来源1,数据库;2,表单ID_GENERATE_STYPE主键产生的方式PROG应用程序,SEQUENCEDB_TYPE数据库类型oracledb2Workflow.locker是否加锁,会签结束不允许多人同时提交Merval加锁的失效时长,以秒为单位Sleep.time等待锁的时长,以秒为单位Overtimeflag取工作时间的标志位0-一套工作时间1-每个部门设置一套工作时间2-每个用户设置一套工作时间,不设置此属性性时默认取0Remindtype1,短信;2,协作平台;3,邮件(这三种方式编号不允许改变,能够添加),不设置此属性时默认取以上三种通知方式流程定义工具需要实现的接口组织体系扩展接口packagecom.workflow.external;importjava.util.Map;/***工作流客户端与组织结构集成接口*@authorl.chen**/publicinterfaceIClientWorkflowOrg{ /** *获得组织结构树 *@paramparam参数Map<用户ID,获得组织结构类型> * 组织结构类型包括: *@return外部实现切勿拦截异常,全部抛出来 */ publicStringgetOrgTree(Map<String,String>param)throwsException; /** *根据用户id获得用户信息 *@paramuserId用户Id *@return用户信息,包括用户ID:user_id;用户名:user_name *@throwsException外部实现切勿拦截异常,全部抛出来 */ publicMap<String,String>getUserById(StringuserId)throwsException;}与权限控制集成接口packagecom.workflow.external;importjava.util.List;importjava.util.Map;/***工作流获得权限控制*@authorl.chen**/publicinterfaceIClientWorkflowAuthor{ /** *获取角色 *@paramformsFORMURLList *@paramworkflowId工作流ID *@returnList:List内部元素标识多个角色信息,由Map进行包装 *Map内容为角色信息,包括roleid,rolename,角色包含的元素信息(List) * 具体结构为:List<Map<roleid,roleName,eles:List<Map<eleID,*tableID,purivewFlag>>>> *@throwsException */ publicList<Map<String,Object>>getNodePuriewRole(List<String>forms,StringworkflowId)throwsException; /** *获取元素 *@paramroleid角色ID *@return返回元素信息,具体结构为:*List<Map<eleID,tableID,purivewFlag>> *@throwsException */ publicList<Map<String,String>>getNodePuriewEle(Stringroleid,List<String>forms)throwsException; /** *保存角色 *@paramrolesInfoList<Map<roleid,roleName,eles:List<Map<eleID,tableID,purivewFlag>>>> *@paramworkflowid工作流ID *@return是否保存成功 *@throwsException */ publicbooleansaveNodePuriewRoles(List<Map<String,Object>>rolesInfo,Stringworkflowid)throwsException; /** *删除角色 *@paramroleIds角色ID *@paramworkflowid工作流ID *@return是否删除成功 *@throwsException */ publicbooleandeleteNodePuriewRoles(List<String>roleIds,List<String>forms,Stringworkflowid)throwsException; /** *获取所有的元素 *@paramforms表单URL集合 *@paramworkflowid工作流ID *@return返回值格式为:List<Map<eleID,tableID,purivewFlag>> *@throwsException */ publicList<Map<String,String>>getAllNodePuriewEle(List<String>forms,Stringworkflowid)throwsException; /** *获取权限项 *@paramworkflowid工作流ID *@return返回值格式为:List<Map<id,name>> *@throwsException */ publicList<Map<String,String>>getConfigItem(Stringworkflowid)throwsException; /** *获取所有表单 *@return *@throwsException */ publicList<Map<String,String>>getForms()throwsException; /** *获取数据源 *@return *@throwsException */ publicList<String>getDataSource()throwsException;}流程配置过程流程配置过程为:初始化数据,新建流程,配置流程。打开配置界面默认的系统管理只需启动WEB服务,用具有超级权限的管理员登录,就能够打开。自定义组织体系模型如果用户自定义的组织体系,需要初始数据配置超级管理员。配置说明如下:FLOW_PURVIEW权限表:ID-关键字IDPURID-权限编号PURNAME-权限名称初始化权限如图4-1所示:图4-1FLOW_USERPURVIEWRELATIO用户管理权限对照表,数据示例如图4-2:ID-关键字IDPURID-权限编号USERID-用户ID图4-2注:一般把超级管理员设为流程超级管理员。有两种方式能够打开配置界面。在链接地址输入:http://localhost:端口号/oa.root/workflow/index.jsp系统管理-流程管理(前提用平台的系统管理)。如果想要全屏点击”在新窗口中使用”即可。图4-2初始化数据对全局流程所用到的数据进行配置,包括:分类配置、业务表配置、字段配置、按钮配置、意见类型配置、签名类型配置、办理人设置(路由涉及范围项)、指派管理员。点击菜初始设置,就能够进行各类数据的初始化。如图4-4所示:图4-4分类配置流程的分类,比如公文一般能够分为发文、收文和签报类。菜单栏:初始设置-分类配置,分类配置界面如图4-5所示:图4-5左边是已建好的流程分类树,选中左边的一个分类,点击,填入分类名称,然后点击,就在此分类下增加了一个子类;点击,能够修改当类分类的名称和管理员,点击,完成分类的修改;点击”删除”,则删除当前分类及其该分类下的所有子类。用户授权,点击右边的小图标,弹出人员树,选择分类管理员。业务表配置在工作流引擎解析流程时,有时需要修改业务表的字段值,此时就需要有关业务表的一此信息,因此我们需要做此配置。菜单栏:系统设置业务表配置,配置界面如图4-6所示:图4-6添加点击按钮,弹出如图4-7对话框:图4-7选择需要定义的业务表对应的数据源。添加表名、中文别名、表关键字ID以及备注信息。点击按钮,完成业务表的添加。点击按钮,关闭当前的业务表编辑窗口。删除选择要删除的业务表。点击按钮,完成业务表删除。关闭点击,关闭业务表配置窗口。信息发布模块走流程说明用平台的信息发布模块,模块的表名是不确定的。如果这些模块需要走流程而且需要配置业务表和业务字段时,配置过程如下:在业务表时添加表名的时候,业务表名和关键字名能够任意起一个标识,在提交工作流的时候表名和业务字段名由参数”tableandidname”传递,格式为”业务表名|字段名”。字段配置工作流引擎有可能要操作的业务表的字段信息,一般是修改业务表状态标识,表明其是在流转中,还是结束流转。菜单栏:初始设置-字段配置,配置界面如图4-8所示:图4-8注:类别,其它-状态标识字段业务-暂未定义添加点击按钮,弹出如图4-9对话框:图4-9选择需要定义的字段对应的业务表,业务表来自于中已定义的业务表。添加字段名、中文别名、属性类别以及备注信息。点击按钮,完成字段配置。删除选择要删除的字段。点击按钮,完成字段删除。关闭点击,关闭字段配置窗口。意见类型配置意见类型主要针对流程需要那几类参与者填写意见。比如处长意见、司长意见、局长意见等分类。菜单:初始化设置-意见类型配置,配置界面如图4-10所示:图4-10添加点击按钮,弹出如图4-11对话框:图4-10填写意见类型的有关信息。类型名称:英文名,引擎保存此名称显示名称:用于意见显是否有效:无效,流程节点看不到此意见类排序序号:一般用于显示意见类型顺序点击按钮,完成意见类型的配置。修改选择要修改的意见类型。点击按钮,弹出意见编辑对话框,如图4-10,此进各项显示的是所选中的意见类型信息。修改意见类型各项信息。点击按钮,完成意见类型修改。删除选择要删除的意见。点击按钮,完成意见的删除。关闭点击,关闭意见类型配置窗口。签名类型配置签名类型是流程中所用到的签名类型进行维护。比如:处长签名、司长签名、局长签名类型。菜单栏:初如设置-签名类型配置,配置界面如图4-11所示:图4-11添加点击按钮,弹出如图4-12话框:图4-12填写签可名分类的有关信息。类型名称:英文,引擎保存此信息到签名表显示名称:显示用是否有效:无效,节点配置看不到此签名分类排序序号:显示用点击按钮,完成签名分类的配置。修改选择要修改的签名分类。点击按钮,弹出签名编辑对话框,如图4-12。修改签名各项信息。点击按钮,完成签名分类的修改。删除选择要删除的签名。点击按钮,完成签名分类的删除。关闭点击,关闭签名类型配置窗口。办理人设置办理人设置用来进行办理人范围限制的配置,也就是路由属性的涉及范围的设置,默认的有:直属上级、直属同级、直属下级、跨部门上级、跨部门同级、跨部门下级、唯一、同部门、拟稿人、其它,对于上下同级(直属、跨部门)和唯一是针对基于角色的有级别关系的组织机构模型,而拟稿人适用于所有的类型。菜单栏:初始设置-办理人设置,配置界面如图4-13所示:图4-13默认实现的范围默认实现的不能删除,但能够不可见。如果”是否可见”选择否,则操作配置看不到此范围项。用户自定义的组织机构模型。如果自定义的模型不支持角色和级别关系,则针对级别的默认实现(比如上下同级、唯一),即使路由配置了也不起作用。添加点击按钮,弹出如图4-14对话框:图4-14填写涉及范围名称。选择范围限制,能够多选。包括:整个组织体系、独立实体内部和独立实体外部。例如:中科软公司是一个组织体系,信息系统一部是一个独立实体,当前的待办人是信息系统一部的,如果待办人选择发送的路由的范围限制选择是”整个组织体系”,则参与者在整个中科软公司内查找;如果选择”独立实体内部”,则只能在信息系统一部内查的;如果定义为”独立实体外部”,则在除了信息系统一部的员工外部查找。选择涉及对象,单选。包括:部门/群组、岗位和人。设置此范围是否可见。不可见:操作配置时不可见这项涉及范围。点击按钮,完成办理人范围限制配置。修改选择要修改的涉及范围。点击按钮,弹出如图4-14对话框。修改后,点击按钮,完成办理人范围限制修改。删除注意:只能删除自定义的,不能删除默认的。选择要删除的涉及范围。点击,完成办理人范围限制的删除。关闭点击,关闭办理人设置窗口。指派管理员用于指定工作流维护的超级管理员。超级管理员能够具有最大的权限:初始设置、新建流程、配置流程和维护流程。菜单栏:初始设置-指派管理员,配置界面如图4-15所示:图4-15需要维护超级管理员时,点击按钮,弹出如图4-16对话框:图4-16图4-16中,左边列表树为组织体系的树结构,右边列表显示的是已经选择的管理员。1.增加时,首先从左边人员树上选择要增加的人员,然后点击按钮即可。2.删除时,首先从右边已加入的用户中选择要删除的人员,然后点击按钮即可。新建流程打开新建界面菜单栏-文件-新建或者快捷栏-新建,就能够打开新建流程的界面,如图4-17所示:新建界面显示的选择卡是:流程的基本属性。图4-17流程名称:手工录入,一般填写有一定业务含义的名称。启用时间:流程生效的时间。点击,弹出日历,选择启用时间。维护人员:配置和维护流程的人。点击,弹出人员树,选择一个用户为维护人员。流程的所属类别:图4-17右边的框中展开流程分类,选择新建流程的所属类别。点击,就新建了一个流程。维护人员和流程的所属类别不是必选的,维护人员默认是流程的创立人。点击,重新填和选择这些信息。只有创立流程以后,其后的才变成可用。所有这些关联不是必选的,比如你不希望工作流引擎不操作你的业务表,你就能够不做业务表关联。当你不需要定位到某一个或几个业务表时,你能够选择全部关联,在后续配置的时候,从所有的初始化数据中选择。业务表关联业务表关联界面如图4-18所示:图4-18点击下拉列表,选择一个业务表,点击,该业务表就显示在右边的框中,表明已经关联上。选中右边框中已关联上一个业务表,点击,就删除这项关联了。如果你的业务表不是很多或者项目不是很大,没必要对业务表做具体的关联,就点击,节点在配置时就能够看到业务表的所有初始数据配置。点击,关闭流程配置窗口。按钮关联按钮关联界面如图4-19所示:图4-19点击下拉列表,选择一个按钮,点击,该按钮就显示在右边的框中,表明已经关联上。选中右边框中已关联上一个按钮,点击,就删除这项关联了。如果你的按钮不是很多,不想对按钮做具体的关联,就点击,节点在配置时,就能够看到初始数据配置的所有按钮。点击,关闭流程配置窗口。意见关联意见关联界面如图4-20所示:图4-20点击下拉列表,选择一个意见类型,点击,该意见类型就显示在右边的框中,表明已经关联上。选中右边框中已关联上一个意见类型,点击,就删除这项关联了。如果你的意见类型不是很多,不想对意见类型做具体的关联,就点击,节点在配置时,就能够看到初始数据配置的所有意见类型。点击,关闭流程配置窗口。签名关联签名关联界面如图4-21所示:图4-21点击下拉列表,选择一个签名类型,点击,该签名类型就显示在右边的框中,表明已经关联上。选中右边框中已关联上一个签名类型,点击,就删除这项关联了。如果你的签名类型不是很多,不想对签名类型做具体的关联,就点击,节点在配置时,就能够看到初始数据配置的所有签名类型。点击,关闭流程配置窗口。挂接表单当前流程挂接那个表单,挂接表单界面如图4-22所示:图4-22点击下拉列表,选择一个表单,点击,该表单就显示在右边的框中,表明已经关联上。选中右边框中已关联上一个表单,点击,就删除这项关联了。如果你的表单不是很多,不想对表单做具体的关联,就点击,节点在配置时,就能够看到所有的表单。点击,关闭流程配置窗口。权限配置当前流程挂接那个表单,挂接表单界面如图4-22所示:图4-22选择数据来源,得到的字段信息是来源数据库、变量还是其它。选中右边框中已关联上一个表单,点击,就删除这项关联了。如果你的表单不是很多,不想对表单做具体的关联,就点击,节点在配置时,就能够看到所有的表单。点击,关闭流程配置窗口。配置流程配置界面如果是新建流程,关闭”流程配置”窗口,就能够看到配置流程界面如图4-23所示:窗口的组成有五大部分组成:菜单栏、工具栏、组件栏、设计区和属性区。组件栏设计区属性区工具栏菜单栏组件栏设计区属性区工具栏菜单栏图4-23打开流程打开流程的方式 (1)菜单栏文件打开,如图4-24所示。图4-24 (2)工具栏打开,如图4-25所示。图4-25点击”打开”后,弹出打开工作流对话框,如图4-26所示:图4-26点击流程名称前面的,就表时选中了该条流程。选中流程,再点击,就打开了当前流程。双击一条流程记录,也能够打开流程。如果流程过多,能够经过查询功能找到指定的流程,支持模糊输入,比如输入请假,点击,列出所有符合条件的流程。图4-27点击,又会列出所有的流程。选中流程,点击,则会删除当前流程。点击,则会关闭”打开工作流”对话框。注:这两种打开方式打开的都最新版本的流程。流程版本管理由于业务是变化的,有可能业务流程会改变,但正在运行的文还要走旧的流程,或者根据条件,不同的条件走不同版本的流程,这样就引入了版本控制。打开历史版本打开历史版本经过以上方式,先打最新版本的流程然后再点击菜单栏-文件-打开-历史版本,如图4-28所示。图4-28就会弹出该流程的所有历史版本,如图4-29所示:图4-29存为另一个版本菜单栏-文件-另存为-存为版本,如图4-30所示:每点击一次,就保存了一个版本,版本号是自增长的。图4-30流程复制流程复制一般是用于业务流程相似,配置也差不多,复制过来,改改不同的地方,就生成一个新的流程。这样,就省去了从头开始配置流程的麻烦。菜单栏-文件-另存为-复制流程,如图4-31所示:图4-31点击后,弹出如图4-32所示的对话框:图4-32输入流程名称。点击,流程就复制成功了。点击,就取消了流程复制。配置流程准备工作做好以后,就开始画流程。流程属性栏点击节点和路由以外的空白区域,下面的属性就显示流程属性配置。基本属性基本属性配置界面如图4-33所示:图4-33流程名称:自动获取流程编号:自动获取,此处的编号是FLOW_WORKFLOW中的WORKFLOWID值。待办URL:待办的链接地址。已办URL:已办的链接地址。描述:该流程的描述信息。变量配置变量配置界面如图4-34所示:图4-34点击,就能够添加一个变量信息。添加界面如图4-35所示:输入变量名,变量名称不能为空,选择变量类型,选择变量的数据来源,其中”自定义”是取默认的值。输入变量的初始值和描述信息,如果变量值来源于数据库(DB),则需要输入后面的三项的信息。其中域名为查询的字段名称。这样,一个变量就定义好了。点击,该条变量信息就添加到变量表里了。还需要向工作流引擎中传关键字段名(主键名)这个参数,才能实现选中一个变量,点击,就删除了当前变量。逾期配置逾期配置界面如图4-35所示:图4-35选中,弹出如图4-36所示的配置界面:图4-36办理时限:定义该流程的逾期时限,从起草到办结的时间。通知方式设置:如果流程办理逾期,则需要给流程管理员发送通知。选中,则需要合并流程提交者设置的和节点定义的时限,这样就要选择流程时限的合并方式。实节点(开始、结束和过程节点)开始节点、过程节点属于同一类节点类型,她们之间没有严格的区分,只要基本属性栏的配置为”是”,就是启动节点。结束节点,遇到结束节点,流程就结束。也能够由业务主动调用的。选中组件栏内的节点组件,比如选中启动节点,然后拖到空白的设计区,松开鼠标左键,就画出了一个节点。选中设计区的节点,下面的属性栏显示节点的配置属性。基本属性基本属性配置界面如图4-37所示:图4-37节点名称:输入,一般是有意义的业务名称。节点类型:自动获到(开始、过程节点、子流程节点、自由节点、自动节点、结束)。节点编号:自动生成。处理前:生成待办前调用的应用程序。处理后:生成待办后调用的应用程序。注:应用程序需要实现workflow.ext.delegation.ActionHandle接口中的publicObjectexecution(ParameterBeancontext)方法。而且在涉及其中调用应用程序的格式为全类名:例如GongwenServiceImpl.java这个类,书写格式为com.sinosoft.workflowExample.gongwen.service.GongwenServiceImpl显示按钮:如果关联了按钮,此处就按钮可选,;如果没有关联,就没有任何按钮可选。能够选多个。操作多选控制:,所列是从当前节点出发的所有路由。选中的路由能够同时发送。如果选中这两条路由,则在引擎解析时弹出的选择路由的页面,如图4-38所示:图4-38送项目经理和送部门经理同时能够选中。业务属性业务属性配置界面如图4-39所示:图4-39能否编辑:能否编辑正文。前掉是业务表单有附加正文。表单链接:表单文件名。线序设置:,决定引擎弹出的”选择经办路由页面”的路由显示顺序。状态标识:业务字段,标志流转状态(草稿、流转中、办结等)。流程配置关联了业务字段就能够选择。。业务表名及关键字名:工作流引擎操作的业务表名和关键字名。流程配置关联了业务表,就可选择。发送方法:发送通知方法的标识,与workflow.xml的发送方法定义的ID值相对应。应用程序:生成待办通知以后,执行路由上的应用程序。注:应用程序需要实现workflow.ext.delegation.ActionHandle接口中的publicObjectexecution(ParameterBeancontext)方法。权限:备注:节点描述信息。待办属性待办属性的配置界面如图4-40所示:图4-40角色/部门/人/群组:点击右边的,弹出角色树/部门树/人员树/群组树供选择,能够多选。数据库:配置界面如图4-41所示。图4-41其中:表-跟选择业务表操作一样。字段:查询的字段名,跟选择业务字段操作一样,这儿的字段类型定义是”业务”。查询条件:选择字段名。值来源:查询字段的值来源,,如果选择输入,则在后面的文本框中输入。应用程序:在文本框中输入应用程序的完整路径。注:应用程序需要实现workflow.ext.delegation.ActionHandle接口中的publicObjectexecution(ParameterBeancontext)方法。变量:流程定义的变量都会显示出来,能够多选。数据库/应用程序/变量中的指定范围:根据定义的角色/部门/群组,按流程的正常配置解析出参与者,然后把根据数据库定义/应用程序/变量取得参与者跟解析出的参与者比较,过滤出不在解析范围内的参与者。数据库/应用程序/变量中的不指定范围:不过滤。指定什么参与者就是什么参与者。意见属性意见的前提是有初始化的意见类型数据,而且创立流程时关联了必要的意见类型。意见配置属性界如图4-42所示:图4-42添加点击,就会增加一条意见记录。意见类型名:列出所有关联的意见类型,选择该节点需要的意见类型;节点号:自动加入;意见展方式:有页面可见、会签过程可见和会签结束可见。页面可见:有些主要意见直接展现在业务表单上。比如找开待办的时候就想看到局领导的意见,就把局领导的意见配置成页面可见。会签过程可见:在会签的过程中,各会签分支的参与者看不到相互填写的意见。会签结束可见:如果配了会签过程不可见,且没有配会签结束可见,则结束后,会签过程的意见也是不可见的。如果配了会签过程不可见,且配了会签结束可见,则会签结束后,会签意见都能够看到。是否覆盖:针到一个参与者来说,她之后填写的意见是否会覆盖前面填写的意见的。是否必填:意见是否必须填写。保存选择这些信息后,点击进行保存。删除选择一条意见记录,点击,删除该条意见配置。签名属性签名的前提是有初始化的签名类型数据,而且创立流程时关联了必要的签名类型。签名配置属性界如图4-43所示:图4-43添加点击,就会增加一条签名记录。签名类型名:列出所有关联的签名类型,选择该节点需要的签名类型;节点号:自动加入;签名展方式:有页面可见、会签过程可见和会签结束可见。页面可见:有些主要签名直接展现在业务表单上。比如找开待办的时候就想看到局领导的签名,就把局领导的签名配置成页面可见。会签过程可见:在会签的过程中,各会签分支的参与者看不到相互填写的签名。会签结束可见:如果配了会签过程不可见,且没有配会签结束可见,则结束后,会签过程的签名也是不可见的。如果配了会签过程不可见,且配了会签结束可见,则会签结束后,会签签名都能够看到。是否覆盖:没有意义,签名是覆盖的。是否必填:是否必签。保存选择这些信息后,点击进行保存。删除选择一条签名记录,点击,删除该条签名配置。决策项决策项是显示业务表单页面上,不保存到业务表里,可是用户的选择有可能又决定其后流转方向。决策项配置界面如图4-44所示:图4-44点击,增加一项决策项。决策项:输入决策项名称,想当于变量名,一般应该为英文。是否是示:是-显示业务表单上,否-隐藏域。显示形式:复选框,单选钮。显示内容:复选框和单选钮所跟的内容。比如。描述:决策项的描述信息。输入和选择完决策项信息后,点击进行保存。选中一条决策项,点击,该条决策就被删除了。逾期配置逾期配置界面如图4-45所示:图4-45办理时限和通知方式设置设置当前节点的参与者的办理时限及逾期后的通知方式。如果选择了,则发送人能够改变待办时限,则应该再选择,则发送人规则的时限和节点定义的时限按照选择的方式合并。待办通知设置发送的时候,同时给待办者发送通知。如果选择了,则取提交者的发送通知方式和节点定义的方式的并集。子流程节点该节点表时是启动了别外一个流程。基本属性基本属性的配置界面如图4-46所示:图4-46节点名称:手工输入,默认名称是”子流程节点”。节点编号:自动生成。节点类型:自动生成。节点属性:异步/同步。异步,启动子流程,主走主,子走子,各不相干。同步,主等待子流程回来才能继续流转。子流程类型:列出所有的流程供选择,可多选。其它属性其它属性配置界面如图4-47所示:图4-47当前有用的属性就是子流程意见是否可见,可见是主流程能够看到子流程的意见。自由节点自由节点的属性栏和过程节点是一样的。配置过程和含义也相同。所不同的就是待办属性,待办属性的设置只能是一棵部门人员树的链接地址。在流转到自由节点时,会弹出这棵树,而且根据用户的选择,得到参与者。注:自由节点不能再往下流转的实节点。一定要从自由流回来才能往其它实节点继续流转。自动节点自动节点是不需人为参与的节点,执行应用程序后,自动往下推进,路由和参与者选择由前一节点的提交者参与。基本属性基本属性配置界面如图4-48所示:图4-48节点名称:手工输入,默认名称是”自动节点”。节点编号:自动生成。节点类型:自动生成。调用类型:也就是调用方式,有:应用程序/WS/JMS。调用内容:根据类型填写内容。调用类型为应用程序时,调用内容格式为应用程序的全类名;当调用类型为webservice类型时,调用内容格式为”WSDL_URL:WebService_Name:param1,param2…”,WSDL_URL指定WSDL文件路径,WebService_Name指定服务名,param用来写入传入参数值;JMS调用暂不支持。表单链接:选择挂接的表单。备注:自动节点的描述信息。路由基本属性基本属性的配置界面如图4-49所示:图4-49名称:手工输入,一般是有意义的业务名称编号:自动生成涉及范围:默认有直属上级、直属同级、直属下级、跨部门上级、跨部门同级、跨部门下级、唯一、同部门、拟稿人、主办、其它。部门人员树图4-50:图4-50直属上级:信息系统部是平台组的直属上级,即平台组的父部门。直属同级:新闻总署项目组和平台组同直属同级,即两个部门有相同的父部门。直属下级:平台部门是信息系统部的直属下级,即信息系统部的子部门是平台组。跨部门上级:人力资源部是平台组的跨部门上级,即人力资源部和平台组的父部门是同一个级别。跨部门同级:平台组和人力A部门是跨部门同级,她们的父部门是同一个级别。跨部门下级:平台组是人力资源部的跨部门下级,限平台组的父部门和人力资源部是同一个级别。唯一:只根据角色取参与者。比如,节点定义的角色是处长,则取出整个组织机构模型中所有具有处长角色的人。注:以上几个是针对基于角色具有级别关系的组织机构模型。对于非级别关系的组织机构模型,即使选择了也不起作用。同部门:和发送人是同一个部门的。主办:拟稿人所在的部门即为主办部门。其它:只跟当前节点定义的参与者类型有关。相对于具有级别关系来说,可能跟发送的节点之间有上下同级关系。拟稿人:取拟稿人。范围限制:,对于上下同级才显示,也才起作用。比如,中科软是整个组织体系,信息系统一部是一个独立实体。如果参与者在整个中科软公司取,则是整个组织体系;如果参与者在信息一部内部取,则是独立实体内部;如果参与者在信息系统一部外取,则是独立实体外部。超越级数:上下级跨跃的级数。对于同级不起作用。涉及对象:工作流引擎解析时弹出的中间选参与者的页面,控制显示是部门还是具体的人。如果是岗位,则发送给所有符合条件的参与者,不用选择。路由1注:如果组织机构模型是基本角色的有级别关系的,配置流程需要特别注意。看下面一个流程图:。如果开始节点的参与者处于不同的部门,而且部门级别也不一样,则在配置路由1的涉及范围时,注意不要配置上下同级关系。路由1其它属性其它属性的配置界面如图4-51所示:图4-51控制公式:大致能够分四类:指定参与者,路由控制,参与者限制条件,其它。点击后面的小图标,弹出具体的控制公式对话框如图4-52所示:图4-52指定参与者:返回给发送者发送给该节点的最后一个办理人路由1路由控制:路由1路由3路由2路由3路由2图4-53有图4-50来说明路由控制,且开始节点和过程节点都是启动节点:(1)线指向的是起草节点,该操作才显示。由开始节点起草发送直到结束节点,此时结束节点回退时候,路由1和路由2都配置了这个控制公式,则路由2指向的不是启动节点,因此路由2不能显示,也就不能选择。(2)线指向的节点没经过,该操作不显示。路由1、路由2和路由3配置了此控制公式,由过程节点起草发送给结束节点,结束节点在回退的时候,有两条路由1和2,由于1指向的节点没有经过,则1不能显示选择,只能走2,回退给过程节点;过程节点往下送的时候有两条路由3和2,由于3指向的节点从来没有经过,则只能走2。(3)只能走操作 如果配置了只控制公式,则只能无条件走这条路由,其它路由都不能选择。(4)SQLSQL里只输入查询条件且不带where,根据节点定义的业务表和关键字以及引擎得到的业务表关键字值,再加上查询条件。如果查询结果不为空,则显示可选此路由,否则不显示不可选。(5)必经节点 只能经过这些必经节点,此路由才能显示选择。如图在处长到局文秘的路由配置了必经节点”司长”,则只有在司长经办以后,处长才能送局文秘。限定参与者的范围指定办理的部门类型比如:DEPTTYPE=‘1’取指定部门的子部门如果业务指定了参与者的部门,则取指定部门的子部门。不选自已不选本部门不选当前待办如果参与者含有当前的待办人,则剔除。每个部门只能选一个办理人其它控制顺序办,会签的回操作上配置(退给发起会签人的操作上)符合条件未被选中的人放到已办中。比如图4-54选择沙新为待办人,则把赵军生写到已办表中,赵军生就能够在已办列表看到此文。图4-54不放到右边的选择框中如果是指定的参与者,则会直接把参与者放到右边的框中。配置了此公式,则不会放到右边的框中。前掉对象为岗位,待办人能够再选择当对象为岗位时,直接发给所有符合条件的参与者;如果配置了此公式,则会弹出选择参与者的页面(前提是参与者多个),可再次选择。指定启动节点针对指向子流程节点的路由控制公式,如果不指定的话,工作流引擎会随机选择一个启动节点启动子流程,如果指定了,则以指定的节点启动子流程。表示式点击后面的小图标,弹出表示式的对话框如图所示:左操作数:列出所有的流程定义的变量名操作符:=,<,>,<=,>=,!=。右操作数:手工输入。配置完成一个表示式后,点击,该表示式显示下面的文本框中;点击,从文本框中清除这个表示式。点击,保存到数据库并关闭对话框;点击,不保存到数据库并关闭对话框。下一结点:自动生成。服务调用:应用程序。应用程序需要实现workflow.ext.delegation.ActionHandle接口中的publicObjectexecution(ParameterBeancontext)方法。会签标志:根据业务流程,选择会签的开始与结束的标志。备注:路由的描述信息。工作流引擎使用流程配置好工具配置好流程,就需要启动流程进行流转,以及对流转过程的管理与监控,与客户端的交互等功能。首先要做好以下前期的工作。引擎配置文件在WEB目录下有一个workflow文件夹,/workflwo/config是引擎的配置文件,perties是缓存的配置文件,workflow.xml是实现类的配置;workflow/jsp是引擎的中间交互页面,根据不同的业务需求,能够对这些页面的样式进行修改;workflow/log是工作流引擎输出的信息。SinoEp平台日志文件是输出到WEB-INF/log/workflow/perties缓存文件的配置。常见参数说明如下:—cache.memorytrue-打开缓存,false-关闭缓存cache.capacity设置缓存的大小workflow.xml引擎扩展接口实现类的配置。格式说明:<workflowid="db_service"class="com.sinosoft.test.DBServiceImp"method=""/>—id标识class实现类及路径method方法(如果不需要具体的方法,能够为空)常见配置说明如下:如果使用平台的系统管理的默认设置,就不需要配置下面的这些实现类—dept_service组织机构实现类标识,挂接外部的组织体系配置此ID。此实现继承的接口workflow.service.DeptServicedb_service 取数据源和数据库连接的实现标识。如果不使用系统管理提供的数据连接方式配置此ID。此实现类继承的接口workflow.service.DBService和DBService引用的接口workflow.service.DBTooloverTime_service 计算逾期时间的标识。不使用系统管理提供的日历管理,配置此ID,此实现类继承的接口workflow.service.OverTimeServiceremind_service配置发送提醒通知,继承workflow.ext.delegation.ActionHandle接口。待办提醒首先以路由配置的实现类优先级最高,节点次之,workflow.xml定义的级别最低。2.属性配置格式说明:<resource><propname=””></prop></resource>常见配置说明如下:Flow.author.type权限配置的数据来源1,数据库;2,表单ID_GENERATE_STYPE主键产生的方式PROG应用程序,SEQUENCEDB_TYPE数据库类型oracledb2Workflow.locker是否加锁,会签结束不允许多人同时提交Merval加锁的失效时长,以秒为单位Sleep.time等待锁的时长,以秒为单位引擎需要实现的接口接口实现实例见附加文件。数据操作的接口取数据源和数据库连接的接口有默认实现,返回的数据源是platform。业务自己实现在需要在workflow.xml里配置db_service的实现。packageworkflow.service;publicinterfaceDBService{/** *取数据库连接 *@return */ publicDBToolgetDBTool();//实现DBTool后,在此返回实例即可. /** *取工作流的数据源名称 *@return */ publicStringgetFlowDBSource(); /** *取业务的数据源名称 *@return */ publicString[]getBusinessDBSource();}数据库操作接口类有默认实现,也可业务自己实现,不用在workflow.xml里配置,在DBService实现类里的getDBTool()方法里返回实例即可。importjava.util.Vector;importsun.jdbc.rowset.*;importjava.util.*;importsun.jdbc.rowset.CachedRowSet;publicinterfaceDBTool{ /** *根据查询语句得到查询结果 *@paramStringdbSource数据源名称 *@paramStringsqlsql语句 *@returnCachedRowSet结果集 */ publicCachedRowSetquerySql(StringdbSource,Stringsql);/***执行insert、update语句**@paramStringdbSource数据源名称*@paramStringsqlsql语句*@parambooleanretMaxSeqence无论为true或false,均表示要求返回值为整型*@returnString如果返回大于等于0,update语句成功执行,如果返回大于0,insert语句成功执行,返回值为插入的记录的唯一id值*/publicStringexecuteSql(StringdbSource,Stringsql,booleanretMaxSeqence);/***执行update、insert语句,如果是insert语句,带有主键管理*@paramdbSource数据源名称*@paramsqlsql语句*@returnboolean成功true失败false*/publicbooleanexecuteSql(StringdbSource,Stringsql);/***执行update、insert语句,对insert语句作主键管理*@paramdbSource数据源名称*@paramsqlVectorsql语句*@returnboolean成功true失败false*/publicbooleanexecuteSql(StringdbSource,Vectorsql);/***执行update、insert语句,insert语句带有主键管理*@paramdbSource数据源名称*@paramString[]sqlsql语句*@returnboolean成功true失败false*/publicbooleanexecuteSql(StringdbSource,String[]sql);/***执行不带主键管理的insert语句*@paramdbSource数据源名称*@paramsqlsql语句*@returnboolean成功true失败false*/publicbooleaninsertSql(StringdbSource,Stringsql);/***执行update、insert语句,对insert语句作主键管理*@paramdbSource数据源名称*@paramsqlVectorsql语句*@return成功true失败false*/publicbooleaninsertSql(StringdbSource,Vectorsql);/***执行update、insert语句,insert语句带有主键管理*@paramdbSource数据源名称*@paramString[]sqlsql语句*@return成功true失败false*/publicbooleaninsertSql(StringdbSource,String[]sql);/***执行update语句*@paramdbSource数据源名称*@paramsqlsql语句*@return成功true失败false*/publicbooleanupdateSql(StringdbSource,Stringsql);//不作主键管理/***执行updateisnert语句,对insert语句不作主健管理*@paramdbSource数据源名称*@paramVectorsqlsql语句*@return成功true失败false*/publicbooleanexecuteVecSql(StringdbSource,Vectorsql);}/***取得数据库连接*@paramdbSource数据源名称*@returnConnection返回连接*/PublicConnectiongetConnection(StringdbSource){}组织机构接口工作流引擎默认支持的组织机构模型是具有级别关系的模型,是由横向部门纵向角色定位到人。如果需要支持不同的组织模型或者与默认的组织机构模型实现的方式不一致,都需要实现组织机构的接口。说明:不是必须实现的方法,返回为空就行具有级别关系的角色所必须实现的方法/** *得到当前部门的直属上级具有该角色的人 *@paramStringdeptId部门ID *@paramStringnum跨跃的级别数 *@paramStringbound范围限制1-整个组织体系2-独立实体内部3-独立实体外部 *@paramStringroleId部门ID角色ID */publicNodegetDirectSuperUser(StringdeptId,Stringnum,Stringbound,StringroldId,StringdeptCon); /** *得到直属同级的具有该角色的人 *@paramStringdeptId部门ID *@paramStringbound范围限制1-整个组织体系2-独立实体内部3-独立实体外部 *@paramStringroleId部门ID角色ID */ publicNodegetDirectSameUser(StringdeptId,Stringbound,StringroldId,StringdeptCon); /** *得到直属下级具有该角色的人 *@paramStringdeptId部门ID *@paramStringnum跨跃的级别数 *@paramStringbound范围限制1-整个组织体系2-独立实体内部3-独立实体外部 *@paramStringroleId部门ID角色ID */ publicNodegetDirectSubUser(StringdeptId,Stringnum,Stringbound,StringroldId,StringdeptCon); /** *得到跨部门的上级部门 *@paramStringdeptId部门ID *@paramStringbound范围限制1-整个组织体系2-独立实体内部3-独立实体外部 *@paramStringroleId部门ID角色ID */ publicNodegetSpanSuperUser(StringdeptId,Stringnum,Stringbound,StringroldId,StringdeptCon); /** *得到跨部门的同级部门 *@paramStringdeptId部门ID *@paramStringbound范围限制1-整个组织体系2-独立实体内部3-独立实体外部 *@paramStringroleId部门ID角色ID */ publicNodegetSpanSameUser(StringdeptId,Stringbound,StringroldId,StringdeptCon); /** *得到跨部门的下级部门 *@paramStringdeptId部门ID *@paramStringbound范围限制1-整个组织体系2-独立实体内部3-独立实体外部 *@paramStringroleId部门ID角色ID */ publicNodegetSpanSubUser(StringdeptId,Stringnum,Stringbound,StringroldId,StringdeptCon); /** *取得当前所有部门的子部门 *@paramdeptId部门ID串用逗号分隔1-num */ publicStringgetSubdept(StringdeptId); /** *得到当前部门的父部门ID *@paramdeptId当前部门ID */ publicStringgetSuperdept(StringdeptId); /** *得到该部门具有该角色的人 *@paramStringdeptId部门ID *@paramStringroleId角色ID */ publicNodegetDeptRoleUser(StringdeptId,StringroleId); /** *得到该部门具有该角色的人 *@paramStringdeptIdStr部门ID串,用逗号分隔 *@paramStringroleId角色ID*@paramStringdeptCon查询附加条件 */publicNodegetMuchDeptRoleUser(StringdeptIdStr,StringroleId,StringdeptCon);/** *根据部门ID和用户ID得到部门和用户信息 *@paramStringdeptUserStr格式deptId*userId,deptId*useerId */ publicNodegetUser(StringdeptUserStr); /** *根据部门ID和用户ID获得用户 *@paramuserId用户ID */ publicNodegetUser(StringdeptId,StringuserId); /** *根据部门级别和角色得到用户 *@paramdeptLevel部门级别*@paramroleId角色ID */ publicNodegetDeptLevelUser(StringdeptLevel,StringroleId,StringdeptCon);/** *根据角色得到部门级别 *@paramStringroleId角色ID */ publicStringgetDeptlevel(StringroleId); /** *得到具有该角色的所有人 *@paramStringroleId部门ID角色ID */ publicNodegetRoleUser(StringroleId); /** *得到所有用户 *@paramuserId用户ID */ publicNodegetUser();部门必须实现的方法/** *得到该部门下的参与者(适用于系统管理是部门的) *@paramdeptId当前部门ID *@paramdeptCon查询条件(有可能为空) *@return */ publicNodegetDeptUser(StringdeptId,StringdeptCon);群组必须实现的方法/** *得到该群组下的参与者(适用于系统管理是群组的) *@paramgroupId群组ID *@paramGroupCon查询条件(有可能为空) *@return */ publicNodegetGroupUser(StringgroupId,StringGroupCon);公用必须实现的方法/** *得到部门(群组)名称 *@paramdeptId用户ID */ publicStringgetDeptName(StringdeptId); /** *得到用户名称 *@paramuserId用户ID */ publicStringgetUserName(StringuserId);公用预留方法/** *得到参与者(预留接口) *@return */ publicNodegetUser();逾期实现接口有默认实现(工作日历基于系统管理的日历管理),如果业务自己实现一定要在workflow.xml里配置实现方法。publicinterfaceOverTimeService{ /** *得到逾期时间 *@paramcurTime当前时间 *@paramlimit时限 *@paramdeptId部门ID *@paramuserId用户ID *@return时间格式:year-month-dateh:m:s */ publicStringgetOverTime(Stringlimit,StringdeptId);}应用程序实现接口定义工具里配置的应用程序,由引擎调用的,都必须实现的这个接口。packageworkflow.ext.delegation;importworkflow.servlet.ParameterBean;/***行为执行接口,本地类执行接口*经过此行为进行扩展*@authorl.chen**/publicinterfaceActionHandle{ publicObjectexecution(ParameterBeancontext)throwsException;}办理人设置实现接口自定义的涉及范围限制,需要二次开发实现。实现的接口为5.2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年高效能玻璃钢化粪池采购协议范本版B版
- 2024自用房屋租赁合同
- 2025年违约借款合同纠纷解决途径3篇
- 二零二五年度新能源汽车OEM制造与零部件供应合同3篇
- 2025厂房土地买卖合同中对环境友好型建筑标准的约定3篇
- 2025年度森林资源管理与测绘合同范本3篇
- 2024网络安全与信息保密合同
- 二零二四三方询价采购合同-国际物流运输服务采购2篇
- 2024石料矿山资源整合与开采合同3篇
- 二零二五版全国CHS技术交流与合作合同3篇
- 劳务投标技术标
- 研发管理咨询项目建议书
- 湿疮的中医护理常规课件
- 转钱委托书授权书范本
- 一种配网高空作业智能安全带及预警系统的制作方法
- 某墓园物业管理日常管护投标方案
- 苏教版六年级数学上册集体备课记载表
- NUDD新独难异 失效模式预防检查表
- 内蒙古汇能煤电集团有限公司长滩露天煤矿矿山地质环境保护与土地复垦方案
- 22S702 室外排水设施设计与施工-钢筋混凝土化粪池
- 2013日产天籁全电路图维修手册45车身控制系统
评论
0/150
提交评论