LoginSignup
1
2

More than 5 years have passed since last update.

Salesforceでデータローダ(不満と日付系項目の投入)

Posted at

データローダへの不満

早速ここから行きます。もちろん便利なツールではあると思います。一人のポンコツユーザーとしての意見です。

ロールバックできない

おかしいデータあったら直してからやり直したいです。エラー起きちゃったやつだけ入れ直す派の人もいるかと思いますが、私は全部やり直したい派です。要はロールバックするかどうか選べるようになってほしい。

一度に一つのオブジェクトだけしか入れられない

ほぼ言いがかりですが、上と関連します。主従関係がある場合とか一度に親子で入れたいときがあります。主を入れて、Id取ってきて、Id埋めて、子を入れてってめんどくさいしミスが発生します。親レコード入れるときに20000レコード中179レコード失敗とかなったらやる気なくなります。

なんで最初のメニューまで戻るんだよ

お使いのかたはわかると思います。そこまで戻らなくていいだろ。

データローダへの日付型の投入

日付型、日付/時間型を投入するときに形式不正でエラーになったのでまとめておきます。まず基本的なルールとして、

  • 年は1700年〜3999年
  • 年、月、日、時、分について先頭の0は無視される
  • 時間は24時間表示
  • 全角数字はダメ
  • 年月日と時分の間は半角スペース(全角スペースはだめ)

のようです。合ってるかどうかはわかりません。この形式にマッチするものを探す正規表現を考えてみました。正規表現REにマッチしない正規表現として^(?!.*(RE)).+$を使えば、形式不正がチェックできると思います。すでにわかっている問題点は

  • 2月29日が無条件で通ってしまう(うるう年が考慮できない)
  • 9月31日とか31日がない月に31日を指定しても通ってしまう

です。2個目に関してはがんばってチェックすればできますが、そこまでやってられるかという感じでやっていません。投入前のチェックに使うくらいであれば十分かなと思っています。

日付型が受け入れ可能な形式

^0*(1[789]\d{2}|2\d{3}|3\d{3})-0*(\d|1[012])-0*(\d|[12]\d|3[01])$

日付/時間型が受け入れ可能な形式

^0*(1[789]\d{2}|2\d{3}|3\d{3})-0*(\d|1[012])-0*(\d|[12]\d|3[01])[ ]0*(\d|1\d|2[0-3]):0*(\d|[1-5]\d)$

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2