使用外部ID引用不能正常运行到Salesforce

时间:2015-01-14 17:10:37

标签: salesforce talend

我在Salesforce中有相应字段的以下对象:

Prospect__c   Data_Migration_ID__c(外部ID)

Marketing_Source__c   Data_Migration_ID__c(外部ID)

Lead_Source__c   Data_Migration_ID__c(外部ID)   Prospect__c(参考Prospect__c)   Source__c(对Marketing_Source__c的引用)

在Lead Source的源数据(CSV)中,我分别在Lead_Source__c.Prospect__c和Lead_Source__c.Source__c中拥有Prospect和Marketing Source的外部ID。我已按照http://blog.wdcigroup.net/2013/10/talen ...组件/中的说明操作,以及我在论坛中找到的任何提示,以便加载我的Lead Source数据。我可以使用Data Loader,所以我知道数据是有效的。但每当我运行这份工作时,我都得到以下输出:

Exception in component tSalesforceOutputBulkExec_1_tSBE
[AsyncApiException  exceptionCode='InvalidBatch'
 exceptionMessage='Records not processed'
]

    at com.sforce.async.BulkConnection.parseAndThrowException(BulkConnection.java:108)
    at com.sforce.async.BulkConnection.doHttpGet(BulkConnection.java:472)
    at com.sforce.async.BulkConnection.getBatchResultStream(BulkConnection.java:369)
    at org.talend.salesforceBulk.SalesforceBulkAPI.getBatchLog(SalesforceBulkAPI.java:428)
    at test.lead_source__c_0_1.Lead_Source__c.tFileInputDelimited_1Process(Lead_Source__c.java:2132)
    at test.lead_source__c_0_1.Lead_Source__c.runJobInTOS(Lead_Source__c.java:2839)
    at test.lead_source__c_0_1.Lead_Source__c.main(Lead_Source__c.java:2688)

我正在使用Talend 5.5.1.r118616-20140617-1110

1 个答案:

答案 0 :(得分:2)

我找到了答案。

http://blog.wdcigroup.net/2013/10/talend-tsalesforceoutputbulkexec-component/上的说明是正确的,但是我引用了错误的字段。当说明转到tSalesforceOutputBulkExec组件的高级设置选项卡时,它说“查找字段名称”是Salesforce中Contact和Account对象之间的查询字段。因此,它将是Contact对象中的Account字段。“我使用“Prospect__c”和“Source__c”作为我的查找字段名称。我应该使用“Prospect__r”和“Source__r”,因为这些似乎是实际的查找字段 - 至少对于这些自定义对象。

我们曾经有过Pervasive,它允许我们使用语法“(Object:ExternalID:Value)”[so“(例如”Prospect__c:Data_Migration_ID__c:1)“作为插入语句中的值。我从来没有处理过引用字段,但我在一些Salesforce开发人员博客和论坛中发现了一些关于它们的注释,并认为值得一试。