同一张表单需要在流程的多个环节中处理,且各环节的处理情况不一致,有的节点可写,有的节点之可读。
例如,同一张报销单:员工填写报销单时,只能填写报销单主体信息和明细部分,其它信息不可见;
经理审批时,只能填写审核结果和审核意见,报销单主体和明细部分只能查看;
财务审批时,报销单主体明细和经理审核信息都只能查看,只能设是否置领取费用的相关信息
这样就是同一张表单在流程的三个环节中流转,且各环节对表单的信息控制权限不一样。
处理过程:
1、在设计电子表单的时候,设置一张表单,包含报销单的所有的信息。并同时设置相关部分相关角色的权限。
员工--有填写报销单主体和明细信息的权限;
经理--有审核结果和审核意见的可写权限,报销单主体和明细信息只读的权限,财务的是否领取费用信息不可见;
财务人员--有是否领取费用信息的可写权限,其它所有信息只读;
2、设计流程的流转定义信息
设置流程的各个环节,以及流程个环节的动作,挂接上电子表单;
同时设置流程动作的权限;
员工填写动作--仅员工角色可执行;
经理审批动作--仅经理角色可执行;
财务审批动作--仅财务人员可执行;
3、启动流程,运行表单
当流程实例运行到填写报销单时候,仅员工角色可执行填写动作,打开表单,读取表单的权限控制,仅报销单主体和明细部分能填写。其它不可见;
流程实例流转到经理审批环节:经理角色能执行审批动作,打开表单,读取表单的权限控制,仅审批结果和审核意见可写,其它信息只读;
流转到财务审核环节;财务人员能执行审核动作,打开表单,读取表单的权限控制,仅是否领取费用信息可编辑,其它信息只读;
这样利用表单的权限控制和流程环节的权限控制相结合达到同一张表单在流程的多个环节中流转的效果。
问题:
如果有一个环节是员工查看报销单:即员工需要随时查看审核结果,此时只能查看,不再能修改报销单任何信息,且仍然是访问同一张表单。
利用上面的方法达不到这样的结果。
提示处理方案一:
员工随时查看审核结果,这种不应该设计为流程的一个环节,不是流程的环节,这种设计是错误的。应该设计一个查询的模块,输入查询条件去查询报销单,无论是进行的流程实例还是历史流程实例都可以查询出来,这样的方式去做到随时访问。
提示处理方案二:
如果业务需要,一张表单在第一个环节,同一用户可写,单据流转到后面的环节,即同一用户只可读的情况,则采用如下方法来处理:
1、在设计电子表单的时候,设置表单控件的可读和可写权限时,选择流程的环节动作,设置控件在流程的每个环节可读、可写、不可见等特性。设置完成后保存设置在表单中;
2、流程设计的时候,设置流程动作的权限,挂接好表单;
3、流程实例运行时,执行动作,装入电子表单,表单初始化的时候,装入控件的权限配置信息;校验其控件的权限,初始化控件的属性。达到只读、可写、不可见等特性;
制作过程以后再附;
相关链接:
web工作流管理系统开发之一 工作流概念
web工作流管理系统开发之二 工作流引擎
web工作流管理系统开发之三 可视化流程设计器
web工作流管理系统开发之四 集成工作流与自定义表单
web工作流管理系统开发之五 开源osworkflow之用户系统改造
web工作流管理系统开发之六 表单权限与流程的权限控制
web工作流管理系统开发之七 最新的dtd格式校验修改
web工作流管理系统开发之八 开源osworkflow之任务管理