| ジョブ管理の概要 |  |
| ジョブの利点は、ERP LN にログオンしていないときにジョブのセッションが開始することです。ERP LN では、ジョブは複数のセッションやシェルコマンドから成り、ユーザの操作なしで実行します。 ジョブを使用すると、以下のタイミングで 1 つまたは複数のセッションを実行できます。 事前に定義した時刻に実行 特定の時刻に繰り返し実行 定期的に実行 ジョブ管理カレンダーを使用して、ジョブが開始する日付と時刻を定義できます。ジョブカレンダーを使用すると、混雑していない間にジョブを開始できます。たとえば、1 日のうちでシステムパフォーマンスが向上する営業時間後にジョブの処理と出力をスケジュールできます。 ERP LN では、次の 2 つのジョブタイプを作成できます。 複数回実行される定期的ジョブ 定期的ジョブの場合、時間間隔またはカレンダーを指定する必要があります。必要ならばジョブを自動的に再開することができます。 1 回だけ実行される不定期のジョブ ジョブが実行されると、ジョブデータは自動的に削除されます。 通常、各会社ごとに独自の基本ジョブデータを保存します。その結果、ジョブは特定の会社について実行されます。 ただし、1 つのジョブの中では、複数の会社でセッションを実行することもできます。複数の会社でセッションを実行できるのは、該当する会社のジョブデータテーブルが物理的に 1 つのメイン会社にマップされている場合だけです。 論理テーブル (ttaad4120m000) セッションを使用して、次のジョブテーブルを論理テーブルとして 1 つの物理テーブルにリンクできます。 ジョブデータ (ttaad500) ジョブ別セッション (ttaad501) ジョブ入力変数 (ttaad503) ジョブデーモン指示 (ttaad505) カレンダー (ttaad506) カレンダー別日付 (ttaad507) ジョブ履歴 (ttaad510) ジョブセッション履歴 (ttaad511) ジョブセッション履歴 (ttaad512) セッションをジョブに追加する前に、会社番号をチェックする必要があります。ジョブを複数の会社に適用する場合は、WorkTop/WebTop の会社の変更コマンドで別の会社に切り替えて、会社ごとにジョブを定義する必要があります。次に他の会社のジョブデータを定義します。 ジョブの処理 ERP LN では、ジョブの状況によってジョブの開始方法が決まります。ジョブの状況が順番待ちまたはフリーの場合にジョブを開始できます。 順番待ち ジョブの状況が ｢順番待ち｣ の場合は、ジョブデーモンを使用してジョブを開始できます。ジョブを起動する前に必ずジョブデーモンを開始する必要があります。 ジョブデーモンの実装は、ERP LN サーバのオペレーティングシステムによって異なります。 UNIX サーバ ジョブデーモンはシェルプログラム rc.startjobdm で、これは ${BSE]/etc ディレクトリにあります。ジョブデーモンを開始するには、${BSE}/etc/rc.startjobdm コマンドを ${BSE}/etc/rc.start ファイルに含めます。その結果、ERP LN 環境を起動するとジョブデーモンが起動されます。 Windows サーバ ジョブデーモンは、アプリケーションサービスマネージャ (ASM) を使用して管理できるサービスです。 ジョブデーモンが実行すると、仮想マシン (VM) を終了しても問題ありません。VM ではなくジョブデーモンによってジョブが実行されます。 複数の会社のジョブを実行するには、会社ごとにジョブデーモンを開始する必要があります。詳細は、ジョブ処理手順を参照してください。 フリー ジョブの状況が ｢フリー｣ の場合は、次の方法でジョブを開始できます。 ジョブの起動 (ttaad5203m000) セッションを使用する rc.startjob シェルコマンド (UNIX プラットフォーム) を使用する startjob.bat バッチファイル (Windows プラットフォーム) を使用する ジョブの起動 (ttaad5203m000) 実行日時の前にジョブを開始した場合は、ジョブの状況が 待機中に変わります。ジョブの実行中は、状況が 実行中に変わります。ジョブを開始するユーザの仮想マシン (VM) がジョブを実行するため、ユーザはジョブが完了するまで VM を終了できません。 複数の会社に属するジョブを開始する場合は、メニューブラウザのオプションメニューから会社の変更を使用して、必要な会社に切り替える必要があります。 rc.startjob シェルコマンド (UNIX) ジョブは UNIX シェルスクリプト ${BSE}/etc/rc.startjob でも開始できます。そのため、UNIX プロンプトで ${BSE}/etc/rc.startjob [ジョブ名] という構文を入力する必要があります。 UNIX ユーザジョブスケジューラ (crontab) に rc.startjob スクリプトを含めて、ジョブを自動的に開始することができます。そのため、一部の UNIX 変数をシェルスクリプトで定義する必要があります。詳細は、シェルスクリプトを参照してください。 複数の会社のジョブを実行するには、会社ごとに rc.startjob スクリプトの固有のバージョンを作成する必要があります。詳細は、rc.startjob シェルプログラムでジョブを実行するにはを参照してください。 startjob.bat バッチファイルを開始するには (Windows) ERP LN が Windows サーバで実行している場合は、startjob.bat バッチファイルを使用してジョブを開始することもできます。 ジョブを開始するには、Windows コマンドプロンプトで startjob.bat [ジョブ名] という構文を入力します。 この構文を入力する前に、fillenv.bat バッチファイルを実行して ERP LN 環境変数を設定する必要があります。 ジョブの実行を自動化するには、スケジューラを使用して startjob.bat を実行します。 複数の会社のジョブを実行するには、会社ごとに startjob.bat の固有のバージョンを作成する必要があります。詳細は、startjob.bat バッチファイルでジョブを実行するにはを参照してください。 ジョブの状況 下表に、ジョブのライフスパン中に変わる状況を一覧表示します。
状況 | 説明
--- | ---
フリー | ジョブの基本ジョブデータが定義されると、ジョブを開始できます。
実行中 | ジョブは開始され、実行中の状態です。
待機中 | ジョブは開始され、次の実行日時での実行について待機している状態です。 ジョブデーモンはジョブを開始しません。
順番待ち | ジョブはキューに入っており、ジョブデーモンが実行すると自動的に開始されます。
ブロック中 | ジョブはブロックされ、開始できません。ジョブを開始するには、｢フリー｣ または ｢順番待ち｣ を設定します。
取消 | ジョブはジョブの取消 (ttaad5204m000) セッションを使用して停止されています。ジョブは最大持続時間を超えたときも取り消されます。
ランタイムエラー | ジョブの実行時にエラーが起きたことを示します。
たとえば基本ジョブデータを変更したい場合など、必要に応じて、ジョブデーモンが開始したジョブを取り消すことができます。ジョブを取り消すには、ジョブデータ (ttaad5500m000) セッションを使用します。特定 メニューのジョブを取消をクリックします。ジョブを取り消した場合は、実行中のジョブの現在のセッションは実行されますが、その後のセッションは開始されません。ジョブの状況が 順番待ちから取消に変わります。取り消したジョブを再開するには、ジョブをリリースして、ジョブの状況を順番待ちまたはフリーに変える必要があります。 ジョブを一時的に停止するには、ジョブデータ (ttaad5500m000) セッションを開始します。特定メニューのジョブのブロックをクリックします。 ジョブ履歴 ジョブが正常終了したり、ランタイムエラーが発生したりして、ジョブの実行が停止すると、情報が履歴ログに書き込まれます。ジョブ履歴には、実行日時、ジョブの終了理由、ジョブのセッションの終了理由などの情報が記録されています。この履歴を出力するには、ジョブ履歴の出力 (ttaad5411m000) セッションを使用します。 ジョブの実行中、メッセージは抑制されます。これらの抑制されたメッセージも履歴にはログ記録されます。これらのメッセージを出力するには、ジョブ履歴メッセージ (ttaad5512m000) セッションを使用します。 ジョブを定期的に開始する場合は、ジョブ履歴リストとメッセージ履歴リストを ジョブ履歴の削除 (ttaad5210m000) セッションを使用して定期的に消去する必要があります。 |