订阅事件
我们可以通过定义脚本、Flow、BP、Process或者审批流来订阅事件。目前版本只实现了通过Flow和BP来进行订阅,其他待后续实现。
场景介绍
上节中我们创建了一个记录应聘者是否被录用状态变化的事件。本章节介绍通过Flow来订阅该事件,通过事件发送接口模拟招聘经理给出招聘结果,通过订阅该事件,系统根据状态结果自动发邮件给人事部,通知人事部是否办理入职手续。
通过Flow订阅事件
- 鼠标放在APP下的Logic文件夹旁会出现加号,单击加号,选择“流”。
系统弹出“添加流程”的对话框,选择“创建一个新的流”,填入Flow名称等信息,单击“添加”。
“添加流程”页面参数如下:
- 标签:Flow展示名称。
- 名称:输入“标签”值后单击该参数的输入框,系统会自动名称。
- 类型:Flow类型,分为Autolaunched Flow(无界面输出的图元)、Flow(普通类型)和Event Trigger(事件触发)。这里选择“Flow”。
- 描述:可选参数,Flow描述信息。
图 1 添加流程参数配置页面
创建Flow变量。由于您需要根据录用结果发送不同的邮件给人事部,邮件内容中需要携带事件中的应聘人姓名字段,因此需要定义该事件变量。
单击Flow编辑器空白区域,在页面右侧选择。在全局上下文页面单击“对象变量”后的加号。
图 2 创建变量
选中“事件”,设置事件变量。
选择“事件”时,成员变量为事件的自定义字段,并不包括系统预置的标准字段。
图 3 配置事件变量
表 1 变量参数说明
参数名称
|
解释说明
|
名称
|
变量名称,必填。
示例:EmployNameVar
|
事件
|
具体的事件。
|
默认值
|
变量的默认取值。不用配置。
|
描述
|
该变量的描述说明。
|
是否为数组
|
是否为数组型变量即集合变量。不勾选。
|
单击“保存”。
在Flow编辑器页面左侧选择“逻辑 > 等待”,拖拽等待图标至画布中,弹出等待配置窗口。
等待是对订阅的事件进行判断,根据判断的结果决定执行何种操作,类似if语句的判断。您需要设置应聘者被成功录用、应聘者没被录用和等待录用结果超时三个判断分支。
设置基本信息。
图 4 Flow基本信息配置
表 2 基本信息参数说明
参数
|
说明
|
标签
|
Wait名称。长度不超过64个字节。
|
名称
|
Wait标识,请确保在当前Flow中唯一。
|
描述
|
该Wait的描述说明。
|
如下图所示,设置分支条件参数。
图 5 Wait配置及Pass分支条件配置
图 6 Unpass分支条件配置
图 7 Timeout分支条件配置
表 3 Wait条件分支配置参数说明
参数名称
|
参数说明
|
可编辑的事件
|
所有的判断条件。
- 可通过单击“新增”来增加判断条件分支。双击新增的分支可修改分支名称。
- 默认:默认输出,当其他所有条件均不满足情况下,进入该分支。
本示例中需要新增如下三个判断条件,配置举例如下:
- Pass:应聘者被录用。应聘通过时事件中自定义的布尔类型参数“Result”赋值为全局常量“{!$GlobalConstant.True}”,表示结果为真,即应聘通过。
- Unpass:应聘者没有被录用。应聘失败时事件中自定义的布尔类型参数“Result”赋值为全局常量“{!$GlobalConstant.False}”,表示结果为假,即应聘拒绝。
- Timeout:超时事件。基于该Flow执行时间超时30分钟未返回是否录用。
|
事件/时间
|
当订阅的是自定义事件时,您需要选择“事件”;当订阅的是系统预置的标准事件“Absolute Time Alert”,即定时器发送的系统事件时,您需要选择“时间”。
本示例中需要配置如下:
- Pass:请选择“事件”。
- Unpass:请选择“事件”。
- Timeout:请选择“时间”。
|
事件
|
请选择需要订阅的事件。当订阅的是自定义事件时,该参数才会显示。
本示例中需要配置如下:
- Pass:请选择上节创建的“EmployResultNotify”自定义事件。
- Unpass:请选择上节创建的“EmployResultNotify”自定义事件。
|
事件条件
|
该分支的条件。单击“新增行”可进行添加。当订阅的是自定义事件时,该参数才会显示。
分支条件中的字段为创建该事件时设置的自定义参数,值可从右侧全局上下文中选择拖入。
|
其他条件
|
追加条件。勾选“定义需要满足的其他条件”后,您可根据事件变量外的其他变量设置追加条件。当订阅的是自定义事件时,该参数才会显示。
默认不勾选。
|
输出
|
如果您需要设置事件输出,可设置输出变量。当订阅的是自定义事件时,该参数才会显示。
本示例中需要配置如下:
- Pass分支:请从“全局上下文”中选中事件变量“EmployNameVar”进行拖入。
- Unpass:请从“全局上下文”中选中事件变量“EmployNameVar”进行拖入。
- Timeout:不需要配置输出。
|
基准
|
基准时间,您可设置为某个具体时间,也可设置为本Flow执行时间,在本节中设置为本Flow执行时间,即{!$Flow.CurrentDateTime}。当订阅的是系统预置的定时器发送事件时,该参数才会显示。
|
偏移时间
|
偏移时间,例如“30”。当订阅的是系统预置的定时器发送事件时,该参数才会显示。
|
偏移单位
|
偏移时间的单位,例如设为“Minutes”。当订阅的是系统预置的定时器发送事件时,该参数才会显示。
即基于该Flow执行时间超时30分钟未返回是否录用。
|
在左侧选择“基本 > 发送邮件”,拖拽发送邮件图标至画布中,弹出发送邮件配置窗口。
发送邮件是发送邮件接口。您需要根据录用结果发送不同的邮件给人事部。如果录用成功,需要邮件通知人事部办理入职;如果录用不成功,需要邮件通知人事部告知应聘者应聘失败;若事件超时,则需要邮件通知招聘经理,看其是否给出招聘结果。
如下图所示,以应聘者被成功录用为例,设置发送邮件参数。
图 8 设置邮件发送基本信息
图 9 配置邮件发送参数
表 4 邮件发送参数说明
区域
|
参数名称
|
参数说明
|
基本信息
|
标签
|
该邮件发送的标识。长度不超过64个字节。
|
名称
|
该邮件发送的名称,唯一标识。
|
描述
|
该邮件发送的描述说明。
|
动作
|
邮件
|
您可选择“Manually”手动设置邮件信息或者“Template”选择邮件模板。
这里选择“Manually”。
|
主题
|
邮件标题。
|
内容
|
邮件内容,需要使用之前定义的事件变量“EmployNameVar”。
配置为:{!EmployNameVar.EmployName} is employed.
|
地址
|
接收人的邮箱地址。
- 字符串:表示直接输入。
- 集合:表示可以拖入一个集合变量。
|
参考7~8,设置应聘者录用失败和超时邮件发送。
如图10所示,连接所有元素。
图 10 连接并设置起始元素
单击,保存Flow。
单击,输入入参后运行Flow。
运行后,该事件才能被订阅。
结果验证
通过Flow或者BP订阅“EmployResultNotify”事件后,招聘经理需要给出招聘结果,即给“Result”赋值后,人事部经理才会收到招聘者是否被录用的邮件通知。即您需要设置发送事件,订阅者才可以接收事件。
这里,我们可以通过单独创建一个Flow来给应聘者Lily的应聘结果“Result”赋值,模拟事件发送。
- 鼠标放在APP下的Logic文件夹旁会出现加号,单击加号,选择“流”。
系统弹出“添加流程”的对话框,选择“创建一个新的流”,填入Flow名称等信息,单击“添加”。
图 11 配置Flow基本信息
在Flow编辑器左侧选择“基本 > 发送事件”,拖拽发送事件图标至画布中,弹出发送事件配置窗口。
Send Event为系统提供的发送事件接口。
如图12所示,以应聘者Lily被成功录用为例,设置发送事件参数。
图 12 设置发送事件基本信息
图 13 发送事件配置页面
表 5 发送事件参数说明
区域
|
参数名称
|
参数说明
|
基本信息
|
标签
|
该发送事件的标识。
长度不超过64个字节。
|
名称
|
该发送事件的名称,唯一标识。
|
描述
|
该发送事件的描述说明。
|
动作
|
事件
|
请选择待发送的事件,这里选择“EmployResultNotify”。
|
目标/源
|
该事件自定义参数取值,请单击“新增行”添加并进行赋值。
- “目标”取值为“EmployName”时:请在“源”里输入应聘者姓名“"Lily"”(由于该参数为文本类型,注意取值加双引号)。
- “目标”取值为“Result”时:请在“源”里拖入全局常量应聘结果“{!$GlobalConstant.True}”,表示应聘者Lily被成功录用。
|
按照下图连线。
图 14 连线
单击,保存Flow。
单击运行Flow。运行后,才能发送该事件。
邮件接收者收到邮件,验证成功。