データ移行の注意事項 その1(日付編)

 2016.11.17 YanagisawaMasayuki

こんにちは、スキルイネーブルメントのyanagiです。

Salesforceを使っているけど、Salesforce内で管理できていない情報ってありませんか?
実は、まだExcelで管理している情報があるんだけど…
レポート・ダッシュボードを活用したいとは思うんだけど、データ移行ってどうすればいいかわからない、データ移行に自信がないとお悩みの方いらっしゃいませんか?

今回、セミナーやSalesforceのトレーニングの際によく聞かれるDataLoaderを用いた”データ移行”の注意事項・設定について掲載します。

第1回は日付編です。
Salesforceには、日付を表すデータ型が2種類あります。

  • 日付
  • 日付/時間

値を入力すると、画面上は下記になります。
Data1

ログインユーザの地域に合わせた時間で表示されます。

DataLoaderで日付の値を取得すると下記になります。
Data2

※Zは、GMT(Greenwich Mean Time)世界標準時間を表す記号です。GMTから9時間進めた時刻が日本時間(JST)になります

あれ?画面と値が違う?ってなりませんか?
Salesforceは全世界グローバルで利用することができるので、日付、日付/時間はGMTで管理されています。そのため、9時間ずれているように見えます。

では、DataLoaderでどのような形式が使えるのかというと下記の通りです。

日付の場合:

  • yyyy-mm-dd
  • yyyy-mm-dd hh:mm:ss
  • yyyy-mm-ddThh:mm:ssZ
  • yyyy-mm-ddThh:mm:ss.sssZ

日付/時間の場合:

  • yyyy-MM-dd HH:mm:ss
  • yyyy-MM-ddTHH:mm:ssZ
  • yyyy-MM-ddTHH:mm:ss.SSSZ

使用できる形式はヘルプから抜粋しています。(※併せて、ヘルプもご確認ください。)
YYYY/MM/DDのように「/」を使用することができないのがポイントです。

データ移行を失敗例として、登録した日付が-1日されてしまうという現象が起こることがあります。日付型の項目だけを登録する場合はこちらのヘルプをご確認ください。

では、日付/時間型の項目に値をいれるとき、9時間のずれを考慮せずに登録するにはどうすればいいのか、ですが。

DataLoaderのタイムゾーン:  Asia/Tokyo
日付/時間型の形式: 「yyyy-MM-dd HH:mm:ss」
だと、-9時間を考慮せずに登録することができます。


では、実際にシナリオベースで設定したいと思います。

~シナリオ~
下記のように値を設定したいと思います。
日付型の項目に「2016/10/14」
日付/時間型の項目に「2016/10/21 13:45」

用意するCSVは下記のようになります。

Data3

登録すると、期待通りの結果になります。
Data4

まとめると日付、日付/時間型の項目を同時に登録するときは

DataLoaderのタイムゾーン:  Asia/Tokyo
日付型の形式: 「yyyy-mm-ddThh:mm:ssZ」または、「yyyy-mm-ddThh:mm:ss.sssZ」
※ZをつけてGMTで保存するのがポイント
日付/時間型の形式:  「yyyy-MM-dd HH:mm:ss」
※ZがないのでDataLoaderのタイムゾーンで登録される

を使い、必ずデータを登録する前に検証と確認をするようにしましょう♪

Actii – Salesforce管理者の常駐支援サービス