外来人员如何发起流程与参与内部流程?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信息如下:

  1. INSERT INTO Port_Dept (No,Name,ParentNo) VALUES(‘7‘,‘外来人员部门‘,‘1‘);
  2. INSERT INTO Port_Station (No,Name,StaGrade) VALUES(‘12‘,‘外来人员岗‘,‘3‘) ;
  3. INSERT INTO Port_Emp (No,Name,Pass,FK_Dept) VALUES(‘Guest‘,‘外来人员‘,‘pub‘,‘7‘) ;
  4. INSERT INTO Port_EmpDept (FK_Emp,FK_Dept) VALUES(‘Guest‘,‘7‘) ;
  5. 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感兴趣,请关注我们微信:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-08 22:39:07

外来人员如何发起流程与参与内部流程?CCFlow中Guest流程说明的相关文章

PHP中的流程控制

PHP中的流程控制: 任何PHP脚本都是由一系列的语句构成.一条语句可以是一个赋值语句,一个函数调用,一个循环,一个条件语句或者甚至是一个什么也不做的语句(空语句).语句通常以分号结束.此外还可以用花括号将一组语句封装成一个语句组.语句本省可以当作是一行语句. if语句 if结构是很多语言包括php在内最重要的特性之一,他允许按照条件执行代码片段.php的if结构和C语言相似: <?phpif($a > $b) echo"a is bigger than b"; ?>

C中的流程控制

一. 流程控制 l 顺序结构:默认的流程结构.按照书写顺序执行每一条语句. l 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码. l 循环结构:在给定条件成立的情况下,反复执行某一段代码. 二. 选择结构-if 1. 简单使用 l if (表达式)  语句1; u if(count>50)  开班;  上课; l if(表达式)  语句1;  else 语句2; u f(count>50)  开班;  else 不开班; l if(表达式)  {  } u if(count

流程设计中的流程增值

企业价值增值原则也是流程管理的重要原则之一.任何流程都是一系列活动的集成,如果孤立地看待每一个活动是否增值或增值多少,的确很难判断,甚至可以说神仙难断.我们在指导企业流程设计或优化时,当不能确定某个活动是否增值时,通常采用反向排除法:这个活动可不可以砍掉.这个活动可不可以合并.去掉这个活动有无负面影响--通过一系列的排除法,寻求更简洁.更优化的流程.这是从实践上保证流程活动增值的一种操作方法.那么从理论上,我们讲流程管理是过程控制.结果导向.过程控制就是增值过程,但是在流程运行途中,要判断这个活

spark记录(5)Spark运行流程及在不同集群中的运行过程

摘自:https://www.cnblogs.com/qingyunzong/p/8945933.html 一.Spark中的基本概念 (1)Application:表示你的应用程序 (2)Driver:表示main()函数,创建SparkContext.由SparkContext负责与ClusterManager通信,进行资源的申请,任务的分配和监控等.程序执行完毕后关闭SparkContext (3)Executor:某个Application运行在Worker节点上的一个进程,该进程负责运

第04章 程序设计中的流程控制

/**第四章 程序设计中的流程控制 @选择语句 形式一:if(条件表达式) 单条语句; 形式二:if(条件表达式){ 语句体;} 形式三:if(条件表达式){ 语句体;}else{ 语句体;} 形式四:if(条件表达式){ 语句体;}else if{ 语句体;} 形式五:if(条件表达式){ 语句体;}else if{ 语句体;}else{ 语句体;}=========================================================================

java 中的流程控制

Java程序通过控制语句来控制方法的执行流程从而实现特定的功能 Java中的流程控制结构主要有三种 顺序结构 选择结构 循环结构. 三种结构的结合使用可以解决任何复杂问题. 分支语句又称条件语句 条件语句使部分程序可根据某些表达式的值被有选择地执行. Java编程语言支持双路 if和多路 switch 分支语句. If-else语句 在 Java编程语言中if ()用的是一个布尔表达式而不是数字值. 形式如下 if(Boolean类型表达式1){ 语句1; } 以下的代码可以根据实际情况进行编写

OLAP -- ODS 项目总结 -- ETL中的流程

ODS-BI 建设中ETL要占用1/3 的时间,深有感触.BI的建模,从物理数据层,逻辑数据层,业务逻辑层各个层次,都有很多自动化的工具可以处理. 但是ETL 中的流程确要根据性能来设计的.总结下这几个部分.  1.数据源/数据目标管理 确定数据源的表,文件,或者RESTFUL的URL,ODBC,值得注意的是,在数据源时,同时关联号外主键关系,对ETL数据有效性帮助很大. 目标数据,可能不同的主题使用了不同的数据库,各个数据库的地址,ODBC,JDBC等信息. 目标数据大部分情况下不需要建索引,

Java中的流程控制(三)

关于Java中的流程控制 关于Java中的流程控制 4.do while语句 do while语句的功能和while语句差不多,只不过它是在执行完第一次循环后才检测条件表达式的值,这意味着包含在大括号中的程序段至少要被执行一次. do{ 执行语句}while(条件表达式语句); 例子: int x=1;do{System.out.println("x="+x);x++}while(x<3); 程序打印结果如下: x=1x=2 注:do while不管如何都是至少执行一次 5.fo

SQL SERVER中的流程控制语句

流程控制语句 是指用来控制程序执行和流程分至点额命令,一般指的是逻辑计算部分的控制. 1.Begin End语句 封装了多个T-SQL语句组合,将他们组成一个单元来处理.一般在条件查询或者循环等控制流程语句中,要查询满足特定条件的操作时会用到.Begin--end可以嵌套使用. 语法如下: begin --<sql语句或程序块> end 例子 begin --<sql语句或程序块> select * from StudentInfo update StudentInfo set m