【问题标题】:Talend - Regroup two paths in only oneTalend - 将两条路径重组为一条
【发布时间】:2015-11-03 15:19:01
【问题描述】:

我正在创建一个调用两个 Web 服务的作业。我必须管理错误案例。

用例:

  1. 用户发送他的信息 (user1, user2) (tRestRequest)
  2. 作业调用第一个 webService 并获取信息 (tRestClient)
  3. 作业调用第二个 webService 并获取信息 (tRestClient)
  4. 作业合并信息并构建响应(tXMLMap)
  5. 作业响应信息 (tRestResponse)

我的问题:tRestClient 有两个输出:OK 和 ERROR。如何合并这条路径以继续工作?

我附上一个屏幕,用蓝色箭头表示理想情况(但 Talend 不接受)。如果我的第一个 Web 服务出现问题,我必须继续工作。

我试图删除错误输出,但如果在 tRestClient 中抛出异常,作业会崩溃。

有人有想法吗?感谢您的支持!

约翰

【问题讨论】:

    标签: java web-services architecture jobs talend


    【解决方案1】:

    我最近遇到了一个问题,我需要运行多个任务中的一个,然后,无论我运行了哪个任务,我都想对输出流进行相同的处理。我发现您可以使用 Component OK 触发器从多个位置触发一个组件。因此,我在每个必须合并在一起的流的末尾添加了一个 tSetGlobalVar,然后使用它们中的 Component OK 触发器来触发一个 tFixedFlowInput,它从我设置的全局变量中重建流并继续我的处理那里。它对我来说很好。如果您愿意,您可能可以使用 tFlowToIterate,但您必须取消选中“在全局变量中使用默认(键、值)”复选框,以便您可以在所有变量中指定相同的全局变量名称。

    【讨论】:

    • 是的,我使用了这样的 hack,每条路径上都有 tSetGlobalVar,工作开始时有“if”事件。但我找到了更好的解决方案:使用 subJobs 并使用 bufferOutput 推送数据。感谢您的回复!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 2016-05-23
    • 1970-01-01
    • 2016-04-02
    • 2019-04-14
    相关资源
    最近更新 更多