如何在 talend schema 中引用子对象
How to reference sub-objects in talend schema
所以我有以下 SOQL 查询,其中包含 Account
对象的 ActivityHistories
关系:
SELECT Id, Name, ParentId, (SELECT Description FROM ActivityHistories)
FROM Account
WHERE Name = '<some client>'
此查询仅在 SOQLXplorer and returns 5 nested rows under the ActivityHistories key. In Talend, I am following the instructions from this page 中有效以访问子对象(尽管该示例使用查询 "up" 语法,而不是查询 "down" 语法。我的架构映射是如下:
查询 returns 父 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 引用子行?如果是这样,模式的语法是什么?如果没有,我怎样才能在某些时候解压这些数据以获得每个 Account
的 Description
字段?非常感谢任何帮助。
更新:我写了一个小 python script 来提取 ActivityHistory
记录并将它们转储到文件中,然后使用 tFileInput
提取 CSV,然后继续我的过程。但这似乎 非常 麻烦。还有更好的选择吗?
我写了一个小的 python 脚本 (source gist here) 来提取 ActivityHistory
记录并将它们转储到文件中(命令行参数),然后使用 tFileInput
摄取 CSV,然后继续我的流程。
我从代码的角度进行了一些调试,似乎如果您指定正确的列名,您将获得正确的响应。对于您的示例,它应该是:Account_ActivityHistories_records_Description
tLogRow 的输出类似于:
00124000009gSHvAAM|Account1|tests;Lalalala
如您所见,所有子元素的描述都存储为 1 个字符串,以分号分隔。您可以在 SalesforceInput 的高级设置视图中更改分隔符。
所以我有以下 SOQL 查询,其中包含 Account
对象的 ActivityHistories
关系:
SELECT Id, Name, ParentId, (SELECT Description FROM ActivityHistories)
FROM Account
WHERE Name = '<some client>'
此查询仅在 SOQLXplorer and returns 5 nested rows under the ActivityHistories key. In Talend, I am following the instructions from this page 中有效以访问子对象(尽管该示例使用查询 "up" 语法,而不是查询 "down" 语法。我的架构映射是如下:
查询 returns 父 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 引用子行?如果是这样,模式的语法是什么?如果没有,我怎样才能在某些时候解压这些数据以获得每个 Account
的 Description
字段?非常感谢任何帮助。
更新:我写了一个小 python script 来提取 ActivityHistory
记录并将它们转储到文件中,然后使用 tFileInput
提取 CSV,然后继续我的过程。但这似乎 非常 麻烦。还有更好的选择吗?
我写了一个小的 python 脚本 (source gist here) 来提取 ActivityHistory
记录并将它们转储到文件中(命令行参数),然后使用 tFileInput
摄取 CSV,然后继续我的流程。
我从代码的角度进行了一些调试,似乎如果您指定正确的列名,您将获得正确的响应。对于您的示例,它应该是:Account_ActivityHistories_records_Description
tLogRow 的输出类似于:
00124000009gSHvAAM|Account1|tests;Lalalala
如您所见,所有子元素的描述都存储为 1 个字符串,以分号分隔。您可以在 SalesforceInput 的高级设置视图中更改分隔符。