外来人员如何发起流程与参与内部流程?CCFlow中Guest流程说明
定义:分组织结构内的人员参与的流程,称为外部用户参与流程也叫客户参与流程。
应用背景:我们给学校设计一个流程,学校教师是内部用户,是组织结构内的用户,学生就是外部用户。如果我们制作一个学生请假流程,一条流程中有多个节点是学生参与的。这样的节点是学生参与的,我们就称为该流程是客户参与流程,学生参与的节点就是外部用户参与节点。 这种应用场景非常之多,比如我们为税务局设计一个系统税务系统工作人员是内部用户,纳税人就是外部用户。 我们为企业设计一个erp ,企业内部的组织机构人员是内部用户,供应商、客户就是外部用户。 如果一个流程中的一个或者一个以上的节点是由外部用户参与的,我们就称该流程是外部用户参与流程,客户参与的节点就是外部用户执行的节点。
提供的外部用户执行的api:
BP.WF.Dev2InterfaceGuest.Port_Login(stuNo, stuName);
源码中有提供的demo:CCFlow/SDKFlowDemo/GuestFlow/Login.aspx.
由此页面登录成功,操作的流程对应为:SDK流程/055.学生请假流程(Guest流程)。
关于Guest用户:
如果有具有外部用户参与流程的应用环境中,您需要在Port_Emp的用户信息表中预置一个Guest的用户,该用户具备最低的操作权限,最低的查询权限。 他是一个模拟用户,就是说当一个外部用户登录时(比如学号为201001003,姓名为:张三)的用户登录时, 需要调用BP.WF.Dev2InterfaceGuest.Port_Login() 接口,从而记录外来用户编号,同时也让Guest 这个内部账号登陆了。这样cc就存储了两份信息。该同学在系统中具备两个身份一个是他自己,另外一个是Guest 内部模拟信息。
Guest用户执行节点如果该流程是外部参与流程,就在流程属性里做上标记,如果流程的一个节点是外部用户处理的节点,那就在该节点上做好设置,现在他就会流转到该外部用户身上。
添加guest信息如下:
- INSERT INTO Port_Dept (No,Name,ParentNo) VALUES('7','外来人员部门','1');
- INSERT INTO Port_Station (No,Name,StaGrade) VALUES('12','外来人员岗','3') ;
- INSERT INTO Port_Emp (No,Name,Pass,FK_Dept) VALUES('Guest','外来人员','pub','7') ;
- INSERT INTO Port_EmpDept (FK_Emp,FK_Dept) VALUES('Guest','7') ;
- INSERT INTO Port_EmpStation (FK_Emp,FK_Station) VALUES('Guest','12') ;
复制代码
流程设计器中的设置与demo修改(有的demo可能存在错误):
编号055流程为例:
开始节点,节点属性-节点访问规则,使用默认第一个规则,并且绑定岗位--外来人员岗。(与上面添加的guest岗位名称一致即可。)
第二个节点,打开节点属性,访问规则设置内容中填写:SysSendEmps 。或者其他的表单字段。
如果不使用此节点访问规则,需要其他设置,具体的节点访问规则详细说明与配置,请看http://ccbpm.mydoc.io/?v=5404&t=17907 。
第三个节点,节点属性-节点访问规则,使用08.与开始节点处理人相同。
以上设置好之后,点击流程设计器上方的保存按钮,再点击运行,即可通过Guest发起流程。可通过guest登录,查看相关的待办信息。
Guest的登录密码默认为123或者pub,具体可以查看数据库 Port_Emp表。
也可以通过demo:CCFlow/SDKFlowDemo/GuestFlow/Login.aspx. 调用BP.WF.Dev2InterfaceGuest.Port_Login(stuNo, stuName)接口实现登录发起流程。
需要在demo中Login.aspx页面中,在设置跳转url的地方添加一个&符号。新版本中,会将这地方添加,由此造成的困扰,感到抱歉。
可以直接复制。
string url = "/WF/MyFlow.aspx?FK_Flow=055&FK_Node=05501&GuestNo=" + stuNo + "&GuestName=" + stuName;
url += "&SysSendEmps=yangyilei";
如果您对CCFlow感兴趣,请关注我们微信: