更新时间:2024-03-08 GMT+08:00
分享

如何订阅事件

使用说明

在低代码平台中,可以通过服务编排和工作流,来订阅事件。

场景介绍

如何自定义事件中,创建了一个记录应聘者是否被录用状态变化的事件。本章节向您介绍如何通过服务编排,来订购该事件。通过事件发送接口,模拟招聘经理给出招聘结果,通过订阅该事件,系统根据状态结果自动发邮件给人事部,通知人事部是否办理入职手续。

通过服务编排订阅事件

  1. 参考如何创建服务编排中操作,新建一个服务编排。

    图1 添加服务编排
    • 标签:新建服务编排的标签名,用于在页面展示。
    • 名称:服务编排在系统中的唯一标识,创建后不可修改。
    • 类型:新建服务编排的类型,本示例选择“Event Trigger”。
      • Autolaunched Flow:自启动服务编排,即在接口调用后,会立即执行服务编排中定义的逻辑。
      • Event Trigger:事件触发的服务编排,在事件触发时,才会开始执行服务编排中定义的逻辑。
    • 事件:选择如何自定义事件中创建的事件(请确保事件已启用)。
    • 描述:服务编排的描述信息。

  2. 在服务编排设计页面左侧,选择“逻辑”,拖拽“决策”图元至画布中。

    该图元类似if语句的判断,用于在服务编排流程中创建判断条件,根据判断结果连线其他图元,决定后续执行何种操作。本示例需要设置应聘者被成功录用、应聘者没被录用和其他三个判断分支。

    图2 拖拽决策图元至画布中

  3. 选中决策图元,单击,设置分支条件参数。

    图3 pass分支条件配置
    图4 unpass分支条件配置

    可编辑的结果,即所有的判断条件。系统已预置默认条件,即当其他所有条件均不满足情况下,进入该分支。

    本示例,需要新增如下两个判断条件:

    • Pass:应聘者被录用。应聘通过时,事件中自定义的布尔类型参数“Result”赋值为全局常量“{!$GlobalConstant.True}”,表示结果为真,即应聘通过。
    • Unpass:应聘者没有被录用。应聘失败时,事件中自定义的布尔类型参数“Result”赋值为全局常量“{!$GlobalConstant.False}”,表示结果为假,即应聘拒绝。

  4. 在服务编排设计页面左侧,选择“基本”,拖拽“发送邮件”图元至画布中。

    发送邮件是发送邮件的接口。本示例中,需要根据录用结果,发送不同的邮件给人事部。

    • 录用成功,需要邮件通知人事部办理入职。
    • 录用不成功,需要邮件通知人事部告知应聘者应聘失败。
    • 事件超时(默认分支),需要邮件通知招聘经理,看其是否给出招聘结果。

  5. 如下图所示,以应聘者被成功录用为例,设置发送邮件参数。

    1. 选中发送邮件图元,单击,设置基本信息。
      图5 设置邮件发送基本信息
    2. 单击,设置邮件发送参数。
      图6 配置邮件发送参数
      • 邮件配置:可选择“直接编辑”手动设置邮件信息或“基于模板”选择邮件模板。本示例选择“直接编辑”。
      • 主题:邮件的标题。
      • 内容:邮件内容,需要使用事件变量“EmployResultNotify__e”。
      • 地址:接收人的邮箱地址。
        • 字符串:表示直接输入。
        • 集合:表示可以拖入一个集合变量。

  6. 参考5中操作,设置应聘者录用失败和超时邮件发送。
  7. 图7所示,连接所有元素。

    图7 连接并设置起始元素

  8. 在服务编排设计页面上方,单击,保存服务编排。
  9. 保存成功后,单击,启用服务编排。

    启用后,当有“EmployResultNotify”事件触发时,即会执行服务编排中定义的逻辑。

结果验证

通过服务编排订阅“EmployResultNotify”事件后,招聘经理需要给出招聘结果,即给“Result”赋值后,人事部经理才会收到招聘者是否被录用的邮件通知。即需要设置发送事件,订阅者才可以接收事件。

本章节,通过单独创建一个服务编排,来给应聘者Lily的应聘结果“Result”赋值,模拟事件发送。

  1. 参考如何创建服务编排中操作,创建一个服务编排。

    图8 新建服务编排SendEvent

  2. 在服务编排设计页面左侧,选择“基本”,拖拽“发送事件”图元至画布中。

    Send Event为系统提供的,发送事件接口。

    图9 拖拽发送事件图元至画布中

  3. 配置发送事件图元。

    以应聘者Lily被成功录用为例,在“全局上下文”中,单击“变量”后的加号,新增变量,设置发送事件参数。

    1. 单击,进入全局上下文页面,新建一个变量variable0。
      图10 新增一个变量
    2. 选中发送事件图元,单击,设置基本信息。
      图11 设置发送事件基本信息
    3. 单击,设置发送事件。
      图12 发送事件配置页面
      • 事件:选择待发送的事件,本示例选择“命名空间__EmployResultNotify__e”。
      • 分区字段:从事件中,选择一个自定义参数,用作Kafka的分区字段。设置后,会根据该字段值进行路由,相同的值将路由到同一个Kafka分区。如果不指定,则默认随机路由到不同Kafka分区,从而提升并发处理性能。
      • 发送到外部:系统内部有配置与AstroZero相连Kafka的固定Topic(__BINGO_SYS_TOPIC)。
        • 不勾选,表示将事件数据发到默认的Topic上。
        • 勾选,表示将事件数据发送到与AstroZero相连Kafka的其他Topic上。
      • 延迟到事务结束(提交或回滚)后才发送:是否延迟到该服务编排事务结束后,才发送事件。默认不勾选,即流程执行到该图元时,立即发送事件。
      • 目标/源:该事件自定义的参数取值,请单击“新增行”,进行添加并赋值。本示例配置如下:
        • “目标”选择“EmployName”:从“全局上下文 > 常量”中,拖拽新建的变量variable0到“源”中。
        • “目标”选择“Result”:从“全局上下文 > 全局常量”中,拖拽应聘结果“{!$GlobalConstant.True}”到“源”中,表示应聘者Lily被成功录用。

  4. 连接开始和发送邮件图元。

    图13 连接图元

  5. 在服务编排设计页面上方,单击,保存服务编排。
  6. 保存成功后,单击,运行服务编排。
  7. 设置输入参数,单击“运行”,运行后,才能发送该事件。

    邮件接收者,收到邮件,验证成功。

    图14 发送事件

分享:

    相关文档

    相关产品