【Salesforce】データローダのsdlファイルに日本語を設定したい
Salesforce上のデータを、バッチからデータローダを起動してエクスポートする方法については以前ここで書きました。
http://www.subnetwork.jp/blog/?p=7
そのエクスポートしたデータのヘッダは指定したsdlファイルで決まるのですが、日本語を指定するのが思ったより面倒だったのでメモです。
取引先のフィールドをマッピングするsdlファイルです。
日本語を使わずに、このような状態で作成する場合には特に問題ありません。
#Mapping values #Mon Jan 23 17:07:24 PST 2006 ID=ID NAME=NAME PHONE=PHONE
エクスポート用のsdlファイルの内容は「FieldのAPI名=CSVのヘッダ名」となるため、日本語を使いたい場合はこのようにするかと思います。
#Mapping values #Mon Jan 23 17:07:24 PST 2006 ID=ID NAME=取引先名 PHONE=電話
このsdlファイルを使用してデータをエクスポートすると「取引先」と「電話」のヘッダが文字化けしました。
そのまま記述するだけでは文字化けしてしまうようです。
しかし、データローダを使用してデータをインポートする際、マッピングに日本語の列を含めることができます。
何らかの方法があると考え、データローダのインポート時のマッピングファイルをローカルに保存しました。
#Mapping values #Tue Jan 24 15:01:16 JST 2017 ID=Id \u96FB\u8A71=Phone \u53D6\u5F15\u5148\u540D=Name
インポート用なので、左右が逆になっています。
それよりも、日本語の部分がUTF-16の形式に変換されていることが分かるかと思います。
つまり、sdlファイルに日本語を含めるためには該当する文字列を変換する必要があるということです。
変換されたsdlファイルを作成するためには、ヘッダのみのCSVファイルを作成してデータローダを利用するのが簡単でしょうか。
作成されたsdlファイルをExcelなどで編集すれば、ある程度簡単に作成することができると思います。
ただ、フィールドの数が多いとそれも面倒です。
私も面倒だったので、javascriptで変換してくれるツールを作成しました。
http://www.subnetwork.jp/blog/?page_id=486
本音を言うと、データローダでカチカチやるよりもツールを作った方が楽しかっただけです。
No comments.