CookBook

ジョブを作成して定期実行する

投稿日:

このCookBookでは、以下の開発モデルでジョブを作成する方法と、作成したジョブを指定した時刻に定期実行する方法を紹介します。
・スクリプト開発モデル
・JavaEE開発モデル

いずれのモデルでもジョブ処理で取得可能な以下の2つを使ったプログラムを作成します。
・アカウントコンテキスト
・ジョブスケジューラコンテキスト

完成イメージ

null
null

完成サンプル

以下の完成サンプルをダウンロードしてご活用ください。

e builder プロジェクト : im_cookbook_111849_create_job.zip
imm ファイル : im_cookbook_111849_create_job-1.0.0.imm

ローカル環境で実行させる場合は、以下のURLにアクセスしてください。
http://localhost:8080/imart/tenant/job_scheduler/job_maintenance
なおベースURLである以下の部分は、環境に合わせて適宜変更してください。
http://localhost:8080/imart

レシピ

  1. プログラムを作成する
    ・スクリプト開発モデル編
    ・JavaEE開発モデル編
  2. 依存関係を設定する
  3. プログラムをジョブとして登録する
  4. ジョブを定刻実行する
  5. ジョブの実行結果を確認する
  6. ジョブネットモニタでジョブの実行結果を確認する

1. プログラムを作成する

はじめに e Builder のモジュールプロジェクト内に実行するプログラムを作成します。
モジュールの作成方法については「アプリケーション開発ガイド - モジュール・プロジェクト作成」を参照してください。

以下の4つをコンソールに表示するサンプルプログラムを作成します。

アカウントコンテキストから以下の値を取得して表示します。
・テナントID
・ユーザコード

ジョブスケジューラコンテキストから以下の値を取得して表示します。
・ジョブID
・ジョブネットID

スクリプト開発モデル編

スクリプト開発向けim-BizAPI - AccountContextオブジェクト
スクリプト開発向けim-BizAPI - JobSchedulerContextオブジェクト
スクリプト開発向けim-BizAPI - JobDetailオブジェクト

  1. 「scriptjob.js」を以下の場所に作成してください。
    src/main/jssp/src/im_cookbook_111849/scriptjob.js

  2. プログラムを記述します。
    ジョブを実行するためのexecute関数を記述します。
    スクリプト開発モデル プログラミングガイド - ジョブスケジューラ

JavaEE開発モデル編

JavaEE開発向けim-BizAPI - インターフェースAccountContext
JavaEE開発向けim-BizAPI - インターフェースJobSchedulerContext
JavaEE開発向けim-BizAPI - クラスJobDetail

  1. 「JavaJob.java」を以下の場所に作成してください。
    src/main/java/jp/co/intra_mart/cookbook/im_cookbook_111849/JavaJob.java

  2. プログラムを記述します。
    ジョブの実行処理を記述するためのexecuteメソッドを記述します。
    TERASOLUNA Server Framework for java (5.x) プログラミングガイド - ジョブスケジューラ

2. 依存関係を設定する

  1. モジュールの依存関係に、「im_tenant」を設定してください。
    依存関係の設定方法は、「アプリケーション開発ガイド - module.xml」を参照してください。

3. ジョブを新規作成する

以下の内容でジョブを作成してください。ジョブの作成方法は「テナント管理者操作ガイド - ジョブを設定する」を参照してください。

  1. 「カテゴリ新規作成」を行ってください。
    項目 設定値(スクリプト) 設定値(JavaEE)
    カテゴリID script_jobcategory java_jobcategory
    カテゴリ名 ScriptSample JavaSample
  2. 「ジョブ新規作成」を行ってください。以下の内容を入力してください。

    項目 設定値(スクリプト) 設定値(JavaEE)
    ジョブID script_job java_job
    ジョブ名 ScriptJob JavaJob
    実行言語 JavaScript Java
  3. 実行プログラムを入力してください。

    開発モデル 設定値
    スクリプト im_cookbook_111849/scriptjob
    JavaEE jp.co.intra_mart.cookbook.im_cookbook_111849.JavaJob
  4. 「新規作成」クリックしてください。

4. ジョブを定刻実行する

スクリプト開発モデルで作成したジョブとJavaEE開発モデルで作成したジョブを同時に実行するジョブネットを作成します。以下の内容でジョブネットを作成してください。ジョブネットの作成方法は「テナント管理者操作ガイド - ジョブネットを設定する」を参照ください。

  1. 「カテゴリ新規作成」を行ってください。
    項目 設定値
    カテゴリID sample_jobnetcategory
    カテゴリ名 SampleJobnet
  2. 「ジョブネット新規作成」を行ってください。

    項目 設定値
    ジョブネットID sample_jobnet_execute
    ジョブネット名 SampleJobExecute
  3. 実行ジョブに「ScriptJob」と「JavaJob」を追加してください。

  4. 祝日や会社の予定を設定したカレンダーを作成するで作成したサンプルカレンダーを使用し、トリガを設定します。営業日指定を選択し、「新規登録」をクリックしてください。

  5. サンプルカレンダーを選択してください。

  6. 現在時刻から3分後にジョブが実行されるよう、時と分を設定してください。
    例:現在時刻がAM9:07の場合

    項目 設定値
    9
    10

※注意
ジョブを実行する日時がカレンダー上で休日の場合、ジョブは実行されません。

  1. 「決定」をクリックしてください。

  2. 営業日指定の有効チェックボックスにチェックを入れてください。

  3. 「新規作成」をクリックしてください。

--------------3分お待ちください----------------

5. ジョブの実行結果を確認する

--------------3分後----------------

  1. コンソールにジョブ実行結果が以下の通り出力されていれば成功です。

スクリプト開発モデルのジョブ実行結果

表示項目 表示内容 備考
テナントID (default) ジョブを実行したテナントのテナントID
ユーザコード im_job ※「im_job」はジョブ実行時の固定値です
ジョブID script_job -
ジョブネットID sample_jobnet_execute -

JavaEE開発モデルのジョブ実行結果

表示項目 表示内容 備考
テナントID (default) ジョブを実行したテナントのテナントID
ユーザコード im_job ※「im_job」はジョブ実行時の固定値です
ジョブID java_job -
ジョブネットID sample_jobnet_execute -

null
null

6. ジョブネットモニタでジョブの実行結果を確認する

  1. 「ジョブネットモニタ一覧」からジョブネットモニタ一覧画面を表示してください。

  2. 該当行をクリックしてください。

複数のジョブが設定した時刻に実行されたことが確認できました。
null

-CookBook
-,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

IM-BloomMaker ページネーションの利用方法

この CookBook では、2020 summer でリリースした コンテンツ種別「Bulma」 の 「ページネーション」エレメントについて紹介しています。 「ページネーション」エレメントとは、表示 …

no image

AWS 上に Accel Platform を構築する方法

  この CookBook では、AWS の仮想マシン機能(Amazon EC2)を用いて、スタンドアローンで intra-mart Accel Platform を構築する方法について紹介 …

no image

IM-BloomMaker でウィザード形式の設定画面の作り方

この CookBook では、IM-BloomMaker を使用して、ウィザード形式で設定を進めていくような画面を作成する方法を紹介します。 完成イメージ 完成サンプル 以下の完成サンプルをダウンロー …

no image

No.7 Excel 出力 → 他システム(別サーバ)連携

この記事は、EWS 2017で行われたLogicDesignerの講演内容に関する記事です。 こちらの例では、ファイルサーバ等他のサーバと連携し、別サーバ上のファイルを更新できます。 ロジックフローの …

スプレッドシートでForma入力チェックユーザプログラムを利用して入力チェックを実行する方法

このCookBookでは、スプレッドシートでForma入力チェックユーザプログラムを利用して入力チェックを実行する方法について紹介しています。 Formaの入力チェックプログラムでは以下の2つのチェッ …