以前写过一篇 表单权限与流程的权限控制;文章,没有具体的去实现,实践证明,同一张表单在多流程节点中流转,是工作流和电子表单必须要处理的问题。
工作流系统和电子表单相结合,达到同一张表单在流程的各个节点中的权限不同。
例如一张表单包含,录入部分信息,审核部分信息;
当表单在录入的时候,需要将审核部分信息全部屏蔽;
当上级审核时,录入部分的信息需要只读,只能填写审核部分;
当审核完成后,所有的信息都变成只读,不能再修改了。
所有这些节点调用同一张电子表单来实现,则需要根据人员角色的不通,表单中各控件分别设置为 只读, 禁用,隐藏;通过设置控件的这些属性达到各人员角色的不通访问权限;
但是单有这一层控制还是不够的,还需要设置控件在流程的各节点的权限,通过设置控件在指定流程的各个动作节点的访问权限,来达到控件在流程的某个节点的 只读,禁用,隐藏。
只读 对应 readonly
禁用 对应 disabled="true";
隐藏 对应 display = "none"
实现的过程:
1、在电子表单制作的时候,各个控件属性页中,设置控件的权限:分 设置用户,设置角色,设置群组,设置流程节点;
如下图:
2、设置完成的控件权限属性(带控件id)会生成一个xml的格式串,保存在电子表单中。
xml格式如下:
<record id='text3' controltype='text'>
<user value='USR_0000001'>
<name>李明</name>
<readonly>true</readonly>
<disabled>false</disabled>
<display>false</display>
</user>
<role value='ROL_0000001'>
<name>普通职员</name>
<readonly>true</readonly>
<disabled>false</disabled>
<display>false</display>
</role>
</record>
record根结点下可包含4种字节点,<user> <role> <group> <flow>
user role group节点的机构相同,flow节点,多几个wf_name,wf_version,action_id节点属性
flow节点格式:<flow wf_name='xx' wf_version='x' action_id='xxx'><name>actionname</name><readonly>true</readonly><disabled>false</disabled><display>false</display></flow>
3、当电子表单打开的时候,打开表单之前会执行一个后台事件,装入表单中的权限xml串,分析xml串,并按html控件节点生成好html控件的属性字符串,返回到页面上,作用于html的控件节点,达到html的控件节点的 ,只读,禁用,或隐藏 等属性。
(后台的java 代码位于:cn.com.fcsoft.report.ext.EformRole.java
public String roleCheck(HttpServletRequest req) throws UserException;
)
分析xml串,生成html控件节点的属性过程:
1).先分析设置的用户权限,然后分析角色,再分析群组;如果用户的应用系统有扩展的功能,如增加岗位等属性,需要在此再添加分析岗位的代码;
2).再分析被当前用户代理的人权限;一个用户可能代理多个人执行业务,所以此处循环分析各被代理人的权限;也是按被代理人用户,角色,群组等 分析;注:如果有某被代理人无权限分析结果html控件的属性字符串返回,则表示某被代理人有此控件的所有权限,在清空所有的html控件权限属性串,跳出循环。
3).最后分析流程的节点权限,获取流程的英文名和版本号,动作id,分析在此流程节点,是否有操作权限,返回控件的html属性权限串。
4).返回分析到的html属性权限串到电子表单,加载html控件的属性,达到控件的只读,禁用,隐藏 等功能。
和应用系统集成的时候,如果这些权限的设置还不能满足用户的需求,需要做更多个性化的定制时候,还可以做更多的功能扩展:
点击电子表单中的 权限设置 按钮,调用的代码位于:ebsys/fceformext/js/userfunc.js文件
/**
* 打开表单元素权限设置窗口 added by liuxr at 2008-3-14
* 此函数在属性窗口的权限设置按钮的点击事件上调用
**/
function EformActionButtonClick()
{
......
}
当表单打开的时候,首先调用位于:ebsys/fceformext/js/userfunc.js文件 的
/**
*页面运行时表单元素的权限检查 added by liuxr at 2008-3-14
* 此函数在表单打开事件中调用,也可以在自己需要时调用
**/
function EformCheckRoleInfo()
{
......
}
此函数中利用ajax提交到后台,触发后台的表单打开事件:
cn.com.fcsoft.report.ext.EformRole.java
public String roleCheck(HttpServletRequest req) throws UserException;
将生成的html控件的权限属性串,返回到页面,作用于页面的控件。
相关链接:
web工作流管理系统开发之一 工作流概念
web工作流管理系统开发之二 工作流引擎
web工作流管理系统开发之三 可视化流程设计器
web工作流管理系统开发之四 集成工作流与自定义表单
web工作流管理系统开发之五 开源osworkflow之用户系统改造
web工作流管理系统开发之六 表单权限与流程的权限控制
web工作流管理系统开发之七 最新修改的版本下载
web工作流管理系统开发之八 开源osworkflow之任务管理
web工作流管理系统开发之十 数据库连接及事务设定
web工作流管理系统开发之十一 流程数据与业务数据的交互
web工作流管理系统开发之十二 同一张表单在流程多节点中流转的权限控件
分享到:
相关推荐
web工作流管理系统开发之一 工作流概念 web工作流管理系统开发之二 工作流引擎 web工作流管理系统开发之三 可视化流程设计器 web工作流管理系统开发之四 自定义...web工作流管理系统开发之六 表单权限与流程的权限控制
web工作流管理系统开发之一 工作流概念 web工作流管理系统开发之二 工作流引擎 web工作流管理系统开发之三 可视化流程设计器 web工作流管理系统开发之四 ...web工作流管理系统开发之六 表单权限与流程的权限控制
工作流管理系统及二次开发接口,在流程管理过程中,有些个性表单、报表等需求,这些表单有可能在表单格式、数据要求、权限控制等方面有个性的业务需求,用户可根据易协客服提供的开发接口进行自定义开发, ...
首先分析了表单模型的定义及表单系统的设计方法,然后将工作流处理过程定义为扩展后的流程节点的有序集合,通过在工作流过程描述中将表单ID与流程实例联系起来的方法实现了表单中包含基本业务数据而流转规则在流程...
.Net权限管理及快速开发框架、最好用的权限工作流系统。源于Martin Fowler企业级应用开发思想及最新技术组合(IdentityServer、EF、Quartz、AutoFac、WebAPI、Swagger、Mock、NUnit、VUE、Element-ui等)。已成功在...
包含了流程设计器,表单设计器,权限管理,简单报表管理等功能; 系统后端基于SpringMVC+Spring+Hibernate框架,前端页面采用JQuery+Bootstrap等主流技术; 流程引擎基于Snaker工作流;表单设计器基于雷劈网WEB表单...
包含表单引擎+流程引擎+权限控制,方便集成,配置灵活,功能强大
工作流程定义包括工作流程基本属性定义、节点/步骤定义、角色定义、权限定义、工作流业务处理或表单定义与关联等基本功能。工作流定义的数据由工作流引擎加载而运行。 二、应用范围 1) 政府、企业各办公流程的定义...
什么是工作流、什么是工作流表单、表单设计工具、工作流引擎
基于Java开发的OA系统(包含了流程设计器,表单设计器,权限管理,简单报表管理等功能).zip 基于Java开发的OA系统(包含了流程设计器,表单设计器,权限管理,简单报表管理等功能).zip 基于Java开发的OA系统...
支持一个表单挂接多个流程环节,以表单角度去管理流程,方便业务理解 支持全局表单,用于流程全局表单配置,目前支持内置表单、url 表单。如果不配置则发起流程会提示错误。 支持节点表单,节点表单配置。如果不配置...
这是一个可由普通人轻松自定义工作流和表单及版式的工作流管理系统,极其灵活,操作简单,无需编程。你可以用它来管理各种流程,如费用报销、请假、请车、合同审批等,还可以自己添加模板(主要就是添加管理字段)来...
activiti三种表单的demo实现 运行方式: 1,修改连接的数据库 2,sql文件在resources\sql下 3,访问地址http://localhost:8080/activiti-demo/main/index
基本功能: 图形化流程设计/智能表单web定义免程序开发/级联下拉框/流程轨迹/单据自定义打印/邮件短信工作到达通知/自动任务分配/支持sdk模式开发/简洁集成/消息侦听/丰富事件接口/报表定义/工作量分析/绩效考核/...
采用Web Serverice技术进行协同系统和业务系统进行数据交互,由协同系统方开发实现Web Serverice服务,业务系统方需在本地实现Web Serverice本地代理来进行调用。 协同系统方需提供的服务接口如下: 1、 流程创建...
参照请假(需要在表单类型中添加相应流程页面:添加页面Create.cshtml与查看页面Details.cshtml) 格式: 名称:XXX(路径) 例如:请假(~/Views/TempTest/Create.cshtml) 父节点:表单类型 表名:Form 字段:Form 2....
介绍ASP.NET中的有效性验证控件和各种验证用户输入有效性的方法
2、首先安装易协流程管理系统3.1版本或以上版本 3、解压后CustomForms目录为源码,DOC目录为开发接口说明书 4、mycompanyLib项目为开发类库 5、CustomFormsSite项目为开发表单示例源码 6、双击CustomFormsVS2005...
WEB表单验证控件for vs2008,包括全部源代码。