我需要从excel工作表中获取信息并将其输入到Salesforce中的自定义对象中。 tFileList - > tFileInputExcel - > tMap - > tSalesforceOutput
到目前为止一切正常,但唯一的问题是Salesforce需要国家ISO代码而不是完整的国家/地区名称。如何将国家/地区的全名更改为ISO代码并将其传递给Salesforce?
我需要excel表中的值不要更改。所以在Talend中,我需要以某种方式将ISO代码传递给Salesforce组件,而不会影响原始工作表。
示例输入:
Name / Country / Phone
"Bob" / "Germany" / "99999"
Salesforce的输出示例:
"Bob" / "DE" / "99999"
答案 0 :(得分:1)
这很简单,但您需要一个国家/地区名称列表与ISO代码,例如维基百科的this one。
以某种可以读入Talend的格式获取该列表,例如将其放在分隔文件,Excel电子表格或数据库表中。
从那里你只需要通过加入国家名称来加入tMap组件中的数据,然后确保在tSalesforceOutput流程中使用ISO代码。
一个简单的示例作业可能看起来像这样:
我们的Excel数据如下:
注意第五行。英国不是ISO国家名称(而是英国)。
然后我们将维基百科的ISO2代码列表转换为Excel中的CSV:
确保正确配置tFileInputDelimited以满足CSV的要求。您需要默认的转义和引用选项以允许数据中的逗号(例如“Palestine,state of”)。
然后tMap中的连接就像这样:
在这里,我们内部加入国家/地区名称字段的数据,并将成功的连接输出到Salesforce流程。我们还采用备用流程来获取没有ISO2国家/地区名称的行的任何内部联接拒绝。这可以输出到另一个Excel文件或其他地方进行手动更正,或者帮助开发一些标准化例程,这些例程需要在将来加入之前应用于Excel数据(比如tReplace寻找“Great Britain”并替换它与“英国”)。
我已将这些流输出到2个tLogRow组件,将其抛出到stdout,格式化为表格: