
# 在服务编排中订购华为云Astro轻应用事件
在华为云Astro轻应用低代码平台中，可以通过服务编排和工作流，来订阅事件。本章节以在服务编排中订阅事件为例，向您介绍订阅事件的流程。
[创建华为云Astro轻应用自定义事件](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9235.html)中，创建了一个记录应聘者是否被录用状态变化的事件。本章节向您介绍如何通过服务编排，来订购该事件。通过事件发送接口，模拟招聘经理给出招聘结果，通过订阅该事件，系统根据状态结果自动发邮件给人事部，通知人事部是否办理入职手续。
#### 通过服务编排订阅事件
1. 参考[创建服务编排](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9131.html#astrozero_05_9131__section1133218183213)中操作，新建一个服务编排。
   
   图1添加服务编排   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001904388816.png "点击放大")
   表1新建服务编排参数说明 
   | 参数 | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | 示例                             |
   |:---|:---|:---|
   | 标签 | 新建服务编排的标签名，用于在页面展示。 取值范围：1\~64个字符。                                                                                                                                                                                                                                                                                                                                                                                                           | EmployResultNotifySubscription |
   | 名称 | 名称为服务编排在系统中的唯一标识，创建后不可修改。要求如下： - 长度不能超过64个字符，包括前缀命名空间的长度。 名称前的内容为命名空间，在华为云Astro轻应用中为了避免不同租户间数据的重名，租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间，创建后不支持修改。   - 名称必须以英文字母开头，只能由英文字母、数字或单下划线组成，且不能以下划线结尾。   | EmployResultNotifySubscription |
   | 类型 | 请在下拉列表中，选择新建服务编排的类型。取值如下： - Autolaunched Flow：自启动服务编排，即在接口调用后，会立即执行服务编排中定义的逻辑。  - Event Trigger：事件触发的服务编排，在事件触发时，才会开始执行服务编排中定义的逻辑。                                                                                                                       | Event Trigger                  |
   | 事件 | 选择在服务编排中订阅的事件，即[创建华为云Astro轻应用自定义事件](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9235.html)中创建的事件，请确保事件已启用。                                                                                                                                                                                                                                                                                                                                                 | EmployResultNotify             |
      
   
   
2. 在服务编排设计页面左侧，选择"逻辑"，拖拽"决策"图元至画布中。 
   该图元类似"if"语句的判断，用于在服务编排流程中创建判断条件，根据判断结果连线其他图元，决定后续执行何种操作。本示例需要设置应聘者被成功录用、应聘者没被录用和其他三个判断分支。
   图2拖拽决策图元至画布中   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301424.png "点击放大")
   
   
3. 选中决策图元，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141544.png)，设置分支条件参数。
   
   图3pass分支条件配置   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301448.png "点击放大")
   图4unpass分支条件配置   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301452.png "点击放大")
   可编辑的结果，即所有的判断条件。系统已预置默认条件，即当其他所有条件均不满足情况下，进入该分支。
   本示例，需要新增如下两个判断条件：
   - Pass：应聘者被录用。应聘通过时，事件中自定义的布尔类型参数"Result"赋值为全局常量"{!$GlobalConstant.True}"，表示结果为真，即应聘通过。
   
   - Unpass：应聘者没有被录用。应聘失败时，事件中自定义的布尔类型参数"Result"赋值为全局常量"{!$GlobalConstant.False}"，表示结果为假，即应聘失败。
   
   
   
   
4. 在服务编排设计页面左侧，选择"基本"，拖拽"发送邮件"图元至画布中。 
   发送邮件是发送邮件的接口。本示例中，需要根据录用结果，发送不同的邮件给人事部。
   - 录用成功，需要邮件通知人事部办理入职。
   
   - 录用不成功，需要邮件通知人事部告知应聘者应聘失败。
   
   - 事件超时（默认分支），需要邮件通知招聘经理，看其是否给出招聘结果。
   
   
   
   
5. 如下图所示，以应聘者被成功录用为例，设置发送邮件参数。
   
   1. 选中发送邮件图元，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141560.png)，设置基本信息。
      图5设置邮件发送基本信息   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301460.png "点击放大") 
   
   2. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141532.png)，设置邮件发送参数。
      图6配置邮件发送参数   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141540.png "点击放大")
      表2邮件发送参数说明 
      | 参数   | 说明                                                                                                                                                                                                                                                                   | 示例                                                    |
      |:---|:---|:---|
      | 邮件配置 | 可选择"直接编辑"手动设置邮件信息或"基于模板"选择邮件模板。                                                                                                                                                                                                                                      | 直接编辑                                                  |
      | 主题   | 请根据需要，在输入框中输入邮件的标题。                                                                                                                                                                                                                                                  | Interview Result                                      |
      | 内容   | 设置邮件的内容，需要使用事件变量"*命名空间*_EmployResultNotify__e"，请直接从变量中拖入。                                                                                                                                                                                                            | {*命名空间*_EmployResultNotify__e.EmployName} is employed |
      | 地址   | 接收人的邮箱地址。 - 文本：表示直接输入。  - 集合：表示可以拖入一个集合变量。   | 文本，即直接输入邮件接收人的地址。                                     |
         
      
   
   
   
   
6. 参考[5]中操作，设置应聘者录用失败和超时邮件发送。
7. 如[图7]所示，连接所有元素。
   
   图7连接并设置起始元素   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301416.png)
   
   
8. 在服务编排设计页面上方，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101117.png)，保存服务编排。
9. 保存成功后，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101061.png)，启用服务编排。
   
   启用后，当有"EmployResultNotify"事件触发时，即会执行服务编排中定义的逻辑。
   
   
 
#### 结果验证
通过服务编排订阅"EmployResultNotify"事件后，招聘经理需要给出招聘结果，即给"Result"赋值后，人事部经理才会收到招聘者是否被录用的邮件通知。即需要设置发送事件，订阅者才可以接收事件。
本章节通过单独创建一个服务编排，来给应聘者Lily的应聘结果"Result"赋值，模拟事件发送。
1. 参考[创建服务编排](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9131.html#astrozero_05_9131__section1133218183213)中操作，创建一个服务编排。
   
   图8新建服务编排SendEvent   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301428.png "点击放大")
   
   
2. 在服务编排设计页面左侧，选择"基本"，拖拽"发送事件"图元至画布中。 
   Send Event为系统提供的，发送事件接口。
   图9拖拽发送事件图元至画布中   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101097.png "点击放大")
   
   
3. 配置发送事件图元。 
   以应聘者Lily被成功录用为例，在"全局上下文"中，单击"变量"后的加号，新增变量，设置发送事件参数。
   1. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301476.png)，进入全局上下文页面，新建一个变量variable0。
      图10新增一个变量   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101145.png) 
   
   2. 选中发送事件图元，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141552.png)，设置基本信息。
      图11设置发送事件基本信息   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101125.png "点击放大") 
   
   3. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301468.png)，设置发送事件。
      图12发送事件配置页面   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101137.png "点击放大")
      
      表3发送事件参数说明 
      | 参数                 | 说明                                                                                                                                                                                                                                                                                                                                                    |
      |:---|:---|
      | 事件                 | 选择待发送的事件，本示例选择[创建华为云Astro轻应用自定义事件](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9235.html)中创建的事件。                                                                                                                                                                                                                                |
      | 分区字段               | 从事件中，选择一个自定义参数，用作Kafka的分区字段。设置后，会根据该字段值进行路由，相同的值将路由到同一个Kafka分区。如果不指定，则默认随机路由到不同Kafka分区，从而提升并发处理性能。                                                                                                                                                                                                                                                    |
      | 发送到外部              | 系统内部有配置与华为云Astro轻应用相连Kafka的固定Topic（__BINGO_SYS_TOPIC）。 - 不勾选，表示将事件数据发到默认的Topic上。  - 勾选，表示将事件数据发送到与华为云Astro轻应用相连Kafka的其他Topic上。   默认为不勾选。 |
      | 延迟到事务结束（提交或回滚）后才发送 | 是否延迟到该服务编排事务结束后，才发送事件。 默认为不勾选。                                                                                                                                                                                                                                                                                     |
      | 目标/源               | 该事件自定义的参数取值，请单击"新增行"，进行添加并赋值。                                                                                                                                                                                                                                                                                                                         |
         
      
   
   
   
   
4. 连接开始和发送事件图元。 
   图13连接图元   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301420.png)
   
   
5. 在服务编排设计页面上方，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301412.png)，保存服务编排。
6. 保存成功后，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301408.png)，运行服务编排。
7. 设置输入参数，单击"运行"，运行后，才能发送该事件。 
   邮件接收者，收到邮件，验证成功。
   图14发送事件   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141488.png)
   
   
 
