所以我有以下SOQL查询,其中包含ActivityHistories
对象的Account
关系:
SELECT Id, Name, ParentId, (SELECT Description FROM ActivityHistories)
FROM Account
WHERE Name = '<some client>'
此查询仅在SOQLXplorer中工作,并在ActivityHistories项下返回5个嵌套行。在Talend中,我按照this page的说明访问子对象(尽管该示例使用查询“up”语法,而不是查询“down”语法。我的模式映射如下:
查询返回父Account
行,但不返回子查询中的ActivityHistory
行:
Starting job GetActivities at 15:43 22/06/2016.
[statistics] connecting to socket on port XXXX
[statistics] connected
0X16000X00fQd61AAC|REI||
[statistics] disconnected
Job GetActivities ended at 15:43 22/06/2016. [exit code=0]
是否可以使用Talend引用子行?如果是这样,架构的语法是什么?如果没有,我如何解析这些数据以获取每个Description
的{{1}}字段?非常感谢任何帮助。
更新:我写了一个小python script来提取Account
记录并将其转储到一个文件中,然后使用ActivityHistory
来提取CSV,然后继续我的流程。但这似乎非常 kludgey。还有更好的选择吗?
答案 0 :(得分:2)
我从代码的角度进行了一些调试,看来如果指定了正确的列名,您将获得正确的响应。对于您的示例,它应该是:Account_ActivityHistories_records_Description
tLogRow的输出类似于:
00124000009gSHvAAM|Account1|tests;Lalalala
如您所见,所有子元素的描述都存储为1个字符串,由分号分隔。您可以在SalesforceInput上的“高级设置”视图中更改分隔符。
答案 1 :(得分:0)
我编写了一个小的python脚本(source gist here)来提取ActivityHistory
记录并将它们转储到文件中(命令行参数),然后使用tFileInput
来提取CSV然后继续我的过程。