变更和子实体触发器

变更和子实体触发器

您可以创建触发器来对变更请求执行已配置的动作。这些动作可以基于变更请求或其子实体进行配置,包括审批级别、审批、任务、注释、邮件响应(来自用户)。通过触发器支持的动作包括创建任务、发送通知、发起Webhook调用或使用脚本执行自定义动作。触发器可以根据指定的条件或无条件配置来执行这些动作。

支持的子实体: 审批级别、审批、任务、备注和用户的电子邮件回复

所需角色: SDAdmin

创建触发器

若要配置变更/子实体触发器,

  1. 转到设置 > 自动化 > 触发器。

  2. 在左上角的下拉菜单中选择变更触发器 


  3. 点击新建触发器
  4. 在出现的新建变更触发器表单中,按照以下步骤操作:
    1. 名称: 为触发器提供一个唯一的名称。

    2. 描述: 添加触发器的描述。

    3. 触发器已应用到: 选择触发器的应用选项(变更或变更子实体)。可用选项包括:审批级别、审批、任务、注释、邮件响应(来自用户)

    4. 选择触发器的执行条件。可用选项包括创建后、编辑后和被删除。您可以选择一个或多个选项。

      注意: 对于邮件响应(来自用户)子实体,不支持编辑后被删除选项。

    5. 选择触发器的执行区间。可用选项包括任何时间、在工作时间或非工作时间。只能选择一个选项。

    6. 启用触发器: 使用此选项启用或禁用触发器。


  1. 根据需要选择将触发器应用到变更的条件,包含基于条件无条件选项。
  2. 如果选择了基于条件选项,您可以配置执行触发器的条件。要配置条件,请选择列、运算符和值。使用添加按钮来添加多个条件。当添加多个条件时,您还可以通过选择AND/OR运算符来配置它们之间的逻辑关系。此外,您还可以使用条件左侧的抓取手柄重新定位条件,来变更顺序。


  1. 当条件满足时执行触发器: 此选项仅在触发器执行条件部分选择了编辑后选项时显示。您可以选择每一次或是第一次
  2. 使用选择自定义动作下拉菜单选择您希望触发器对变更请求执行的动作。您可以配置触发器创建新任务、使用自定义函数执行动作、发送通知或发起Webhook调用。有关配置各种自定义动作的更多信息,请点击此处
    1. 最后,点击保存

示例

 


 

配置自定义动作

自定义函数

自定义函数允许您对变更请求执行复杂的动作。例如,您可以编写并执行一个自定义函数,来关闭由特定变更发起的所有相关请求。

若要将自定义函数配置为触发器动作,

  1. 选择自定义动作下拉菜单中选择自定义函数

  2. 在弹出的选择自定义函数窗口中,从左侧窗格中选择您要选择的自定义函数,并点击选择。 您还可以创建一个新的自定义函数。若要创建新的自定义函数,请点击左上角的新建自定义函数,并进行配置。

 



 

zoho.sdp.invokeurl调用将以SDAdmin权限调用。

 

任务

在触发器执行时,使用任务将自定义任务添加到变更请求中。无论触发器已应用到字段选择的值如何,任务只会添加到相应的变更请求中。

若要将任务配置为触发器动作,

  1. 选择自定义动作下拉菜单中选择任务。 

  2. 在弹出的选择任务窗口中,从左侧窗格中选择您要选择的任务,并点击选择。您还可以创建一个新的任务。若要创建新的任务,请点击左上角的新建任务,并进行配置。 


Webhook

在触发器执行时,使用Webhook对第三方应用程序执行动作。

若要将Webhook调用配置为触发器动作,

  1. 选择自定义动作下拉菜单中选择Webhook。 

  2. 在弹出的选择Webhook窗口中,从左侧窗格中选择您要选择的Webhook,并点击选择。您还可以创建一个新的Webhook。若要创建新的Webhook,请点击左上角的新建Webhook,并进行配置。

 


 

 

通知

使用通知,在触发器执行时向特定用户发送电子邮件通知。

若要将通知配置为触发器动作,

  1. 选择自定义动作下拉菜单中选择通知

  2. 在弹出的选择通知窗口中,从左侧窗格中选择您要选择的通知,并点击选择。 您还可以创建一个新的自定义变更通知。若要创建新的通知,请点击左上角的新建通知,并进行配置。

 


 

执行Circuit

使用Zoho Circuit创建嵌套任务,只需少量代码或无需代码即可实现工作流程自动化。

Circuit配置为触发操作,

  1. 从选择自定义动作下拉菜单中选择执行Circuit。

  2. 在弹出的选择Circuit窗口中,选择左窗格中列出的Circuit,然后点击选择。也可以创建新Circuit。为此,请点击页面顶部的创建新Circuit。

 

管理触发器

您可以从触发器列表视图管理触发器。要管理触发器,请转至设置 > 自动化 > 触发器 > 变更触发器。

  • 要查看触发器明细,请点击触发器名称。
     


  • 要编辑触发器明细,请针对要编辑的触发器点击动作,选择编辑,进行必要的变更,然后点击保存。


  • 要启用/禁用触发器,请使用状态栏下的切换按钮。或者,针对触发器点击动作,然后选择适当的选项。


  • 要删除触发器,请针对触发器点击动作并选择删除。


此外,您还可以通过选择所需的触发器,然后从动作下拉菜单中选择适当的选项,批量执行启用、禁用或删除触发器等动作。



自定义函数示例

自定义函数,用于在变更关闭期间关闭由变更发起的请求。

 

id = changeObj.get("id");
params = Map();
// fetching requests initiated by this change
response = zoho.sdp.invokeurl
[
url :"/api/v3/changes/" + id + "/initiated_requests"
type :GET
parameters:params
];
requests = response.get("initiated_requests");
close_success_requests = "Closed Requests ID : ";
close_failed_requests= "Unclosed Requests ID : ";
for each  request in requests
{
associated_request_id = request.get("request").get("id");
        // trying to close the request
close_response = zoho.sdp.invokeurl
[
url :"/api/v3/requests/" + associated_request_id + "/close"
type :PUT
];
        // request close is unsuccessful
if(close_response.get("response_status").get("status_code") != 2000 && close_response.get("response_status").get("messages").get(0).get("status_code") != 4007)
{
close_failed_requests= close_failed_requests+ request.get("request").get("id") + ", ";
note = zoho.sdp.invokeurl
[
url :"/api/v3/requests/" + associated_request_id + "/notes"
type :POST
parameters:{"input_data":{"request_note":{"description":"Associated change with ID " + id + " is closed"}}}
];
}
else if(close_response.get("response_status").get("messages").get(0).get("status_code") == 4007)   // request is already closed
{
close_success_requests = close_success_requests + request.get("request").get("id") + ", ";
}
else
{
close_success_requests = close_success_requests + request.get("request").get("id") + ", ";
}
}
description = close_success_requests + "<br>" + close_failed_requests+ "<br>";
change_description = "<h3>Change Initiated Requests are closed as the change has been moved to closed state<br>Status:-<br></h3>" + description;
notes = zoho.sdp.invokeurl
[
url :"/api/v3/changes/" + id + "/notes"
type :POST
parameters:{"input_data":{"note":{"description":change_description}}}
];