我正在尝试使用Talend将数据从Excel电子表格上传到Salesforce。 Excel电子表格有多个工作表,我可以通过不同的模式访问这些工作表。尽管我使用((String)globalMap.get("tFileList_1_CURRENT_FILEPATH"))
的相同输入文件路径,但机会输入有效,而帐户输入却没有。
我如何重组我的工作,以便能够正确使用Excel工作表两次?
答案 0 :(得分:3)
Marcus Rickert用his comment击中头部,你创造了一个竞争条件,因为在子工作开始时加载了查找数据。
有几个解决方案:
根据my comment,您可以设置一个中间步骤,通过从文件中提取数据来分段数据,然后以不依赖于定义查找的方式使您的作业可访问通过globalMap变量,该变量仅在应该开始查找之后定义。
或者,尽管最简单的方法可能会影响性能,但您可以更改tMap中的查找模型以使用“每行重新加载”。这将使它从主要进入的每一行重新加载你的整个资源,这显然会有一些性能问题,但它们可能是边缘的,或者对你来说不是问题。我的测试工作在默认的“加载一次”查找模型的几乎同时进行了几十次,每次迭代。这可能是O(N),但这取决于您的数据量。
您可以在tMap的连接设置中找到查找模型选项: