这篇文章不是一个问题,只是我想与Salesforce集成有关的任何人分享。
对于TDI 6.3.1,输入空流会导致tSalesforceOutputBulkExec因空指针异常而失败。
6.2.x及之前的版本并非如此。
幸运的是,至少有2种解决方法:
1- 将流存储在tHashOutput 中,然后使用条件链接将其链接到tHashInput,最后将tHashInput链接到tSalesforceOutputBulkExec:
条件表达式如下:
((Integer)globalMap.get("tHashOutput_12_NB_LINE")) > 0
将此解决方法用于有限大小的流,否则您可能会遇到内存异常。 如果在此操作后不再需要重复使用该内容,也请勾选tHashInput组件的“清除缓存后”选项。
使用条件链接链接到tSalesforceOutputExec的tSalesforceOutputBulk 2- 替换tSalesforceOutputBulkExec 组件:
在这种情况下,条件表达式是:
((Integer)globalMap.get("tSalesforceOutputBulk_1_NB_LINE")) > 0
使用此解决方案对流量大小没有限制,因为tSalesforceOutputBulk使用文件(与tSalesforceOutputBulkExec相同),因此如果您需要管理大量流量,则可能更喜欢它。
优势,对于这两个解决方案与tSalesforceOutputBulkExec相比,您对Salesforce Bulk API的调用较少(因为您不再调用空流)。
希望这会对你有所帮助。
TRF