如何在Talend中将国家/地区名称更改为ISO代码?

时间:2014-08-06 07:40:00

标签: excel salesforce talend

我需要从excel工作表中获取信息并将其输入到Salesforce中的自定义对象中。 tFileList - > tFileInputExcel - > tMap - > tSalesforceOutput

到目前为止一切正常,但唯一的问题是Salesforce需要国家ISO代码而不是完整的国家/地区名称。如何将国家/地区的全名更改为ISO代码并将其传递给Salesforce?

我需要excel表中的值不要更改。所以在Talend中,我需要以某种方式将ISO代码传递给Salesforce组件,而不会影响原始工作表。

示例输入:

Name  /  Country  /  Phone
"Bob" / "Germany" / "99999"

Salesforce的输出示例:

"Bob" / "DE" / "99999"

1 个答案:

答案 0 :(得分:1)

这很简单,但您需要一个国家/地区名称列表与ISO代码,例如维基百科的this one

以某种可以读入Talend的格式获取该列表,例如将其放在分隔文件,Excel电子表格或数据库表中。

从那里你只需要通过加入国家名称来加入tMap组件中的数据,然后确保在tSalesforceOutput流程中使用ISO代码。

一个简单的示例作业可能看起来像这样:

Job layout to get ISO2 codes

我们的Excel数据如下:

Excel data to be loaded to Salesforce

注意第五行。英国不是ISO国家名称(而是英国)。

然后我们将维基百科的ISO2代码列表转换为Excel中的CSV:

ISO2 Codes and country names

确保正确配置tFileInputDelimited以满足CSV的要求。您需要默认的转义和引用选项以允许数据中的逗号(例如“Palestine,state of”)。

然后tMap中的连接就像这样:

tMap join

在这里,我们内部加入国家/地区名称字段的数据,并将成功的连接输出到Salesforce流程。我们还采用备用流程来获取没有ISO2国家/地区名称的行的任何内部联接拒绝。这可以输出到另一个Excel文件或其他地方进行手动更正,或者帮助开发一些标准化例程,这些例程需要在将来加入之前应用于Excel数据(比如tReplace寻找“Great Britain”并替换它与“英国”)。

我已将这些流输出到2个tLogRow组件,将其抛出到stdout,格式化为表格:

ISO2 join output