当使用 On SubJob Error 触发器时,我想知道subjob中哪个组件失败了。我已经读过你可以检查每个组件的错误消息并选择一个非空的错误消息。但我觉得这种做法很糟糕。是否有任何变量存储失败的组件的标识?
答案 0 :(得分:1)
我可能错了,但我担心没有。这是因为globalVar元素是组件范围的(即它们是由组件本身获取/设置的),而不是subjob-scoped(这意味着由Talend本身设置,或者某种东西)。当触发subjobError信号时,您将丢失来自tFileInputDelimited的任何基于组件的数据。出于这个设计原因,我不认为你能够解决你的问题,而不必在此处和那里迭代错误字符串的globalMap搜索。
或者,您可以使用具有“origin”列的tLogCatcher来发现有问题的组件,并最终根据哪个组件发生异常来路由到不同的可恢复子组件。实际上,这不是我太信任的设计,因为tLogCatcher是作业范围的,而OnSubjobError只是直接链接到特定的子工作。但它可以在简单的情况下工作