※この記事は2020/11/25時点のものです。
Salesforceの連携バッチ処理をwindowsコマンドとスケジューラで実行するようにしてたのですが、微妙にハマったのでメモとして残します。
Upsert(挿入・更新)処理の挿入だけエラーになる
Dataloaderの「process.bat」を下記コマンドで呼び出して実行していたのですが、なぜか更新は問題ないのに挿入だけが「値を入力してください[Name]」というエラーで失敗するという状態になっていました。
- エラーになったファイルをGUIのDataloaderからUpsert手動実行→成功
- 翌日、追加レコードを含んだデータで再度コマンド実行→エラー
error:値を入力してください[Name] - 以下ループ
という状態。コマンドからprocess.batを呼び出した時だけエラーになるのでなかなか気付きませんでした。
オフィシャルの説明も↓ぐらいなので原因がわからず・・・
項目の対応付けファイルを作成する
・・今思えばテキストエディタで作成するのではなくGUIでいちからsdlファイルを作り直せばエラーに気付くきっかけになったのかな?
解決策
ものすごく単純なイージーミスで
sdlファイル(連携元テキストファイルの項目とsalesforceの項目マッピングを定義しているファイル)のsalesforce項目定義の大文字小文字が間違っていた
だけでした
誤:NAME=NAME
正:NAME=Name
※左側:連携元ファイルの項目名 右側:salesforceのオブジェクト項目名
insertは成功してるし連携元ファイル項目の定義は大文字小文字の区別はしていないしGUIから手動実行だと成功するし・・・で中々気付きませんでした。
間抜けなミスですがメモとして残します