我的Talend工作有问题。 我的目标是从人员列表(从数据库中提取)开始,并对列表中的每一行检查Active Directory中是否已存在该ID。
检查ID是否已存在的subjob(cherche_doublon_id)正常工作。工作应该返回一个结果" idUnique"如果ID不存在," idDoublon"在其他情况下。 该子工作使用由父项传输的ID作为上下文参数。
我的问题似乎是连接"主要"谁进入我的孩子工作。如果我放了一个" OnComponentOk",那么subjob运行良好,但只有一次在我列表的最新元素上。使用" main"连接,我想为列表中的每一行执行subjob,但我无法在作业中检索结果。
在这里,您可以找到我的工作和组件的设置:
如果我使用" OnComponentOk"在subjob之前链接,我可以检索没有任何困难。 查看相应的屏幕截图:
但就我而言," OnComponentOk"不可行,因为我想为你的每一行做我的东西。
答案 0 :(得分:1)
最后,我通过改变工作结构解决了我的问题。 在我最初的问题中,我试图找回我的第一份工作的结果" cherche_doublon",我想过滤这个结果。
现在我决定以级联模式工作。
这意味着我有了第一份工作: liste_titulaires→affect_global→cherche_doublon
在我的cherche_doublon里面,我做我的东西,最后在我的结果中,我做了一个或另一个工作: Here the image of the subjob
我有其他子工作。 好的一点是,在我的主要工作中,我迭代列表中的每个元素,并完成我的子工作中的所有处理。我使用上下文参数来传输我所需的信息。
现在一切正常。 谢谢你的帮助。
达明。
答案 1 :(得分:0)
我不清楚你的工作是怎样的。您提供了图片中的大量信息,但没有完整的主要和副主题图片。
所以,我想猜几件事:
我会选择这样的工作布局:
Liste titulaires --row--> tMap --rowFound-->doStuff
AD --lookup--/ \--rowNotFound-->doOtherStuff
答案 2 :(得分:0)
您可以在tHashInput和tRunJob之间使用tFlowToIterate。它将为tHashInput的每一列创建一个全局变量。然后,您可以使用迭代链接将tFlowToIterate链接到tRunJob,并通过将tFlowToIterate.Id字段传递给变量glb_individu_id来配置tRunjob。