データローダをバッチから起動するためのbatファイルを記述しました。
以下で説明されているような初期設定は実施済みの想定です。
サンプルバッチ.bat
#echo off
rem #=======================
rem 1時間に1回、タスクスケジューラで本バッチを起動する。
rem インポート用CSVファイルが格納されていれば、データローダでUpsertを行う。
rem #=======================
rem #=======================
echo 変数宣言・メイン処理前の準備
rem #=======================
set LOADER_PATH="C:\Program Files (x86)\salesforce.com\Data Loader\v36\bin"
set BATCH_PATH="C:\DataLoaderBatch"
set CSV_PATH="C:\DataLoaderBatch\data"
rem 現在日時
set yy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
set time1=%time: =0%
set hh=%time1:~0,2%
set mi=%time1:~3,2%
set ss=%time1:~6,2%
rem データローダが実行されたかどうかを保持
set flag=0
rem #=======================
echo メイン処理
rem #=======================
echo ファイルが格納されているか確認
if( exist %CSV_PATH%\upsertData.csv
echo データローダ実行
rem (接続情報・操作内容等の必要な情報は、conf\process-conf.xml内の「process_conf_Upsert」部分に記載)
call %LOADER_PATH%\process.bat %BATCH_PATH%\conf process_conf_Upsert
rem データローダ実行後、原本とsuccess, errorファイルを適当なフォルダに移動する
rem 都度別のファイルとして保存されるよう、ファイル名にタイムスタンプを付与するなどの工夫が必要。
set dateTime=%yy%%mm%%dd%%hh%%mi%
move %CSV_PATH%\insertData.csv %BATCH_PATH%\log\insertData_%dateTime%.csv
move %CSV_PATH%\success_insertData.csv %BATCH_PATH%\log\success_insertData_%dateTime%.csv
move %CSV_PATH%\error_insertData.csv %BATCH_PATH%\log\error_insertData_%dateTime%.csv
echo 処理終了
set /a flag+= 1
)
rem #=======================
rem 必要に応じて、溜まったログ等を掃除する処理を記述する
rem #=======================
rem #=======================
rem データローダが実行された場合、実行結果(ログファイル)を添付してメール送信する
rem #=======================
if %flag% GTR 0 (
echo メール送信
call %BATCH_PATH%\bin\send_LogMail.vbs
)
rem #=======================
echo バッチ終了
rem #=======================
rem pause
exit
メール送信が必要な場合は、こちらの記事を参考に作成してください。
VBScriptで指定したファイルをメール送信するTips