アップロード更新ジョブ
最終更新日: 2021年10月20日
R8 | R9
アップロード更新処理を画面上から手動で行うこととは別に、時間指定ジョブとして実行することができます。
アップロードするファイルは「本番運用サーバ」からアクセスできるパスに用意してください。
「画面 > アップロード > アップロード更新ジョブ」にて、「アップロード更新ジョブを作成する」を有効にします。あわせて「説明文」にこのジョブの説明を記述します。
「サポート > 管理者ガイド(R9) > 準備:ジョブ実行アカウントを利用可能にする」の手順に従って、jobadmin アカウントを用意してください。
jobadmin アカウントは、対象モデルを操作できる権限(プリンシパル)を与えるようにしてください。権限がない場合、アップロード更新ジョブは失敗します。
データ権限を適用したモデルについて、jobadmin アカウントによるジョブ実行では、通常、データ所有者やデータ所属グループの変更ができません。(この対応が必要な場合はジョブ実行アカウントを admin とするか、または jobadmin アカウントにシステム管理者プリンシパルを与える必要があります。)
Wagbyのジョブを初めて扱う場合は"サポート > 管理者ガイド(R9) > ジョブ管理"をお読みください。ここでは、ジョブの具体的な使い方を説明します。
図2で対象モデルのジョブの選択肢が表示されない場合は、ビルド後に jfcjob モデルのデータインポートを行なっていない可能性があります。初期リポジトリ data_init 内にある jfcjob フォルダに、追加したジョブに関する xml ファイルが追加されていますので、ご確認ください。
このジョブに関する制御はすべてジョブパラメータとして指定します。
アップロード更新の完了時に作成される "すべての処理結果" と "エラー処理結果" を指定のフォルダへ移動させることができます。
ジョブパラメータを次のように設定してください。
システム管理者はこのサーバのフォルダを経由して、これらの結果レポートを直接、参照することができます。
ジョブを一時的に無効にすることができます。
送信されるメールの例を示します。
なおジョブパラメータ processfilename, processdirname で指定されたファイルが存在しない場合、メール本文は空としています。これは、ジョブパラメータ mail:doNotSendEmptyMessage の設定でスキップしてもらうことを想定しているためです。
ジョブの多重実行を行うことはできません。
あるジョブを 1 分毎に起動させるようにした場合、1 分後にこのジョブの実行が終了していなければ、新しいジョブは実行されません。
時間指定ではなく、このジョブを今すぐ実行することもできます。
"ジョブの即時実行"をお読みください。
定義方法
ジョブの登録
jobadminアカウントを用意する
権限(プリンシパル)の割り当て
データ権限の変更を伴う場合
アップロード更新ジョブを設定する
注意
指定できるジョブパラメータ
パラメータ名
説明
記述例
processfilename
処理対象のファイル名。本番運用サーバに存在すること。このパラメータは
processdirname
より優先されます。processfilename又はprocessdirnameのいずれかを指定してください。両方が未指定の場合、エラーとなります。C:\Downloads\YOURFILE.csv
/home/wagby/YOURFILE.csv
processdirname
処理対象ファイルが格納されているフォルダ名。本番運用サーバに存在すること。processfilename又はprocessdirnameのいずれかを指定してください。両方が未指定の場合、エラーとなります。
C:\Downloads
/home/wagby/downloads
processdirfilter
処理対象ファイルのファイル名の正規表現式を指定します。
省略時は ".*\.(csv|tsv|xls|xlsx|zip)"です。
つまり拡張子が csv, tsv, xls, xlsx, zip のいずれかのみのファイルを対象とします。拡張子アルファベットの大文字小文字を区別しません。拡張子が csv または CSV のいずれも対象となります。.*\.csv
isLockModel
モデル全体ロックを行う場合は "true" を設定します。
処理行ごとにモデル1件づつロックする場合は "false" を設定します。
省略時は "true" です。false
processedfilemode
処理対象ファイルの処理後の扱いを指定します。
"delete" の場合は削除します。
"rename" の場合は指定先に移動します。
省略時は "delete" となります。
なお "rename" を指定する場合には renamedir
renamefilename
renamefilenameheader
renamefilenamefooter
のいずれかを設定することができます。これらがすべて省略されていた場合、renamefilenamefooter
に ".processed" が設定されたものとして動作します。rename
renamedir
processedfilemode
が"rename"の場合に有効です。
処理完了後の処理対象ファイルの移動先フォルダを指定します。
指定されているフォルダが存在しない場合は作成します。
この指定を行うと「処理結果ファイル」「エラーファイル」も指定フォルダに移動します。
相対パス表記も可能です。処理対象ファイルが置かれているディレクトリからの相対パスとして扱います。
指定されていない場合は、処理対象ファイルが置かれているディレクトリへの移動となります。
{0,date,yyyyMMdd-HHmmss}と指定することで、全体の処理開始日時を指定することができます。
{1,date,yyyyMMdd-HHmmss}と指定することで、ファイルの処理開始日時を指定することができます。
{2}と指定することで、処理ファイル件数を指定できます。
{3}と指定することで、処理ファイル総件数を指定できます。customer{0,date,yyyyMMdd-HHmmss}
customer20150801-100000などとなります。
renamefilenameheader
processedfilemode
が"rename"の場合に有効です。
移動先のファイル名の先頭部分を指定します。
例えば "Processed_" と指定すると、a.csv というファイルは処理後に、Processed_a.csv に名前が変更されます。
{0} {1},... といった表記を使うこともできます。(renamedir
の説明文を参照のこと){1,date,yyyyMMdd-HHmmss}_
20150801-100000_a.csvなどとなります。
renamefilenamefooter
processedfilemode
が"rename"の場合に有効です。
移動先のファイル名の末尾部分を指定します。
例えば "_Processed" と指定すると、a.csv というファイルは処理後に、a.csv_Processed に名前が変更されます。
{0} {1},... といった表記を使うこともできます。(renamedir
の説明文を参照のこと)_{1,date,yyyyMMdd-HHmmss}
a.csv_20150801-100000などとなります。
renamefilename
processedfilemode
が"rename"の場合に有効です。
移動先のファイル名を指定します。
{0} {1},... といった表記を使うこともできます。(renamedir
の説明文を参照のこと)
さらに次の表記も有効です。
{4} - ファイル名(例:a.csv)
{5} - 拡張子を除いたファイル名(例:a)
{6} - 拡張子(例:.csv)
{5}_backup{6}
a_backup.csvとなります。
processingdir
処理開始時の対象ファイルの移動先を指します。
指定すると、対象ファイルをこのフォルダに移動後に処理を行うようになります。
未指定の場合はprocessingfilenamefooter
に ".processing" が設定されたとみなします。C:\work
/tmp
processingfilenameheader
処理を開始した対象ファイルの先頭に指定文字を付与します。作業中であることを示します。
指定すると、対象ファイルの名前を変更したあとに、処理を行うようになります。
未指定の場合はprocessingfilenamefooter
に ".processing" が設定されたとみなします。
Excelファイルをアップロードする場合、この値を設定してください。[仕様・制約...]
processing_
processingfilenamefooter
処理を開始した対象ファイルの末尾に指定文字を付与します。作業中であることを示します。
指定すると、対象ファイルの名前を変更したあとに、処理を行うようになります。_processing
processingfilename
処理を開始した対象ファイルを、指定した名前に変更します。作業中であることを示します。
Working.csv
errordir
エラー発生時の対象ファイルの移動先を指します。
指定すると、エラー発生時に対象ファイルをこのフォルダに移動後に処理を行うようになります。
未指定の場合はerrorfilenamefooter
に ".error" が設定されたとみなします。C:\errorfile
/home/wagby/errorfile
errorfilenameheader
エラー発生時に対象ファイルの先頭に指定文字を付与します。
指定すると、エラー発生時に対象ファイルの名前を変更します。
未指定の場合はerrorfilenamefooter
に ".error" が設定されたとみなします。error_
errorfilenamefooter
エラー発生時に対象ファイルの末尾に指定文字を付与します。
_error
errorfilename
エラー発生時に指定した名前に変更します。
Error.csv
isAttachmentProcessfilesInMail
実行結果メール送信で、処理結果(全て)のファイルをメールに添付します。
true
isAttachmentErrorfilesInMail
実行結果メール送信で、処理結果(エラー)のファイルをメールに添付します。
true
uploadfilename
processfilename でファイル名を指定したとき、スクリプトで利用できるUPLOADFILENAME変数の値は、本番運用サーバのディスクに保存されたファイル名が反映されます。しかし、ここでuploadfilenameをさらに指定すると、UPLOADFILENAME変数の値は(実際のファイル名ではなく)uploadfilenameで指定した値が反映されるようになります。ただし processdirname で指定した場合は(このuploadfilenameの値は)無視され、実際にディスクに保存されたファイル名が使われます。
(任意のファイル名)
[補足] 更新結果レポートを指定のフォルダへ移動する
ジョブの実行を停止する
実行結果をメールで送信する
処理対象ファイル .\a.csv を処理します。
開始時刻:2015-07-09 11:56:16 / 終了時刻:2015-07-09 11:56:17
End 処理した行数:3/新規登録:1/更新:1/削除:0/エラー:0
処理対象ファイル .\a.csv.processing を .\20150709-115616\a.csv に移動しました。
処理結果ファイル C:\wagbyapp\temp\process_model13555561895887649907.csv を .\20150709-115616 に移動しました。
エラー結果ファイル C:\wagbyapp\temp\error_model1387678353843031222.csv を .\20150709-115616 に移動しました。
多重実行の抑制
すぐに実行する
仕様・制約