抛出(Throw)
Make 不提供 Throw(抛出)错误处理指令(error handling directive)。此功能的实施正在分析和评估中。 本文介绍了替代方案和变通方法,以模拟 Throw(抛出) 错误处理指令(error handling directive)。替代方案">替代方案
要有条件地抛出错误,您可以配置一个 module(模块),使其在操作期间可选地故意失败。一种可能性是使用 JSON > 解析 JSON(Parse JSON) module(模块),配置为可选地抛出错误(本例中为 BundleValidationError(数据包验证错误)): !Document image然后,您可以将以下 错误处理指令(error handling directive) 之一附加到错误处理 route(路由): * 强制 scenario(场景)执行停止并执行回滚阶段:Rollback(回滚)
* 强制 scenario(场景)执行停止并执行提交阶段:Commit(提交)
* 停止 route(路由)的处理:Ignore(忽略)
* 停止 route(路由)的处理并将其存储在 未完成执行(incomplete executions) 队列中:Break(中断)
以下示例展示了 Rollback(回滚)指令的使用: !Document image
变通方法 - 使用 HTTP 模块(Module) 用例 - 如果使用 Break(中断)指令未找到记录,则在一段时间后重试。通常,当您的记录没有立即更新且您希望在自动化中稍后处理它时,这至关重要。使用此 Break(中断)指令可以简化设置复杂度。 当前障碍 - Make 不提供允许您轻松有条件地生成(抛出)错误的 module(模块)。 为了让您更好地理解,以下是未经修改的当前设置:此 scenario(场景)在 Zendesk 中搜索,如果没有找到,它不会强制抛出错误。若要再次搜索,您需要实施一个复杂的过程来保存记录。 !Document image
解决方案 - 要有条件地抛出错误,您可以将想要抛出错误的 module(模块)替换为 HTTP 模块,然后在第二个 scenario(场景)中执行搜索,使用 Webhook(网络钩子)将 HTTP 模块链接到第二个 scenario(场景)。如果未找到结果,您可以自定义模块以抛出错误
场景(Scenario)一 - * 将想要抛出错误的 module(模块)替换为 HTTP > 发出请求(Make a Request)模块
* 在查询参数中配置 URL,您将从自定义 Webhook 模块获取该 URL,并添加一个可选查询参数以搜索电子邮件
* 启用高级设置并勾选“将所有状态评估为错误”(evaluate all the states as errors)。
* 在该 HTTP 模块中添加 Break(中断)处理程序,并配置设置为稍后运行。
场景(Scenario)2 - 1. 设置 Webhooks > 自定义 Webhooks 作为 Trigger(触发器)并复制 URL,在前几步所示的 HTTP 模块中使用它。
1. 此处使用 Zendesk > 搜索用户模块,使用 HTTP 模块中的参数执行查询。启用“即使模块未返回结果也继续执行路由”(Continue the execution of the route even if the module returns no results)
1. 添加一个 Router(路由器)并创建两条 route(路由)
1. 随后设置 Webhook 响应模块
以下示例返回结果 - 您会注意到当 Zendesk 模块执行 API 时,它不会发送任何