サポート > リポジトリ > CSV・Excel入出力 > アップロード更新ジョブ
ja | en

アップロード更新をジョブとして用意することができます。定期的なアップロード更新処理を実現します。 R7.6

アップロード更新処理を画面上から手動で行うこととは別に、時間指定ジョブとして実行することができます。

アップロードするファイルは「本番運用サーバ」からアクセスできるパスに用意してください。

「画面 > アップロード > アップロード更新ジョブ」にて、「アップロード更新ジョブを作成する」を有効にします。あわせて「説明文」にこのジョブの説明を記述します。

図1 ジョブを用意する

jobadminアカウントを用意する

「サポート > 管理者ガイド(R7) > 準備:ジョブ実行アカウントを利用可能にする」の手順に従って、jobadmin アカウントを用意してください。

jobadmin アカウントは、対象モデルを操作できる権限(プリンシパル)を与えるようにしてください。権限がない場合、アップロード更新ジョブは失敗します。

アップロード更新ジョブを設定する

Wagbyのジョブを初めて扱う場合は、「サポート > 管理者ガイド(R7) > ジョブ管理」をお読みください。ここでは、ジョブの具体的な使い方を説明します。

  1. 管理者権限をもったアカウントでログオンします。
  2. メニューから「ジョブ管理」「ジョブスケジュール検索」画面を開きます。
  3. 「登録画面へ」ボタンを押下し、ジョブスケジュールの新規登録処理を行います。
  4. ジョブ名から「UploadUpdate + モデルID + Job」を選択します。その下の説明欄に、Designerで入力した説明文が表示されます。
  5. ジョブパラメータに、実行したいコマンドを記述します。[後述]
  6. スケジュールを指定します。
  7. 「有効」フラグをチェックします。
  8. このジョブを実行する管理者のアカウントおよびパスワードを入力します。先ほど用意した jobadmin を使うとよいです。
  9. ジョブスケジュールを登録します。指定した時間になると、コマンドが実行されます。
図2 アップロード更新ジョブを作成する
図3 アップロード更新ジョブパラメータを設定する

このジョブに関する制御はすべてジョブパラメータとして指定します。

パラメータ名 説明 記述例
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" を指定する場合には renamedirrenamefilenamerenamefilenameheaderrenamefilenamefooterのいずれかを設定することができます。これらがすべて省略されていた場合、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" が設定されたとみなします。
processing_
processingfilenamefooter 処理を開始した対象ファイルの末尾に指定文字を付与します。作業中であることを示します。
指定すると、対象ファイルの名前を変更したあとに、処理を行うようになります。
_processing
processingfilename 処理を開始した対象ファイルを、指定した名前に変更します。作業中であることを示します。 Working.csv
errordir エラー発生時の対象ファイルの移動先を指します。
指定すると、エラー発生時に対象ファイルをこのフォルダに移動後に処理を行うようになります。
未指定の場合はerrorfilenamefooterに ".error" が設定されたとみなします。
C:\errorfile
/home/wagby/errorfile
errorfilenameheader エラー発生時に対象ファイルの先頭に指定文字を付与します。
指定すると、エラー発生時に対象ファイルの名前を変更します。
未指定の場合はerrorfilenamefooterに ".error" が設定されたとみなします。
error_
errorfilenamefooter エラー発生時に対象ファイルの末尾に指定文字を付与します。 _error
errorfilename エラー発生時に指定した名前に変更します。 Error.csv

ジョブを一時的に無効にすることができます。

  1. 管理者権限をもったアカウントでログオンします。
  2. メニューから「ジョブ」「ジョブスケジュール検索」画面を開きます。
  3. 該当する「ジョブスケジュール」を検索し、更新画面を開きます。
  4. 「有効」フラグについているチェックをはずし、保存します。
    図2 ジョブを無効にする

ジョブの実行結果をメールで送信することができます。

送信されるメールの例を示します。

処理対象ファイル .\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 に移動しました。

なおジョブパラメータ processfilename, processdirname で指定されたファイルが存在しない場合、メール本文は空としています。これは、ジョブパラメータ mail:doNotSendEmptyMessage の設定でスキップしてもらうことを想定しているためです。

ジョブの多重実行を行うことはできません。

あるジョブを 1 分毎に起動させるようにした場合、1 分後にこのジョブの実行が終了していなければ、新しいジョブは実行されません。

時間指定ではなく、このジョブを今すぐ実行することもできます。「ジョブの即時実行」をお読みください。

  • 複数ファイル処理の途中でエラーが発生した場合、そのファイルはスキップして次のファイル処理を行います。またその際、エラーとなったファイルは名前が変更されます。(エラーとなったことがわかるようになります。)
  • 処理開始前のエラー発生時には、エラーメッセージがログ(system.log)とメールにそれぞれ記録されます。