メール送信(ジョブによる時間指定)

最終更新日: 2023年10月30日
R8 | R9

ジョブの設定

重要

このページを読む前に、「メール送信(メールテンプレートを固定する)」に目を通しておいてください。

モデルの「メール>送信(ジョブ)」タブを開きます。メール送信に関するジョブを複数、設定することができます。 1つのジョブの設定は、1つの「メールテンプレート」と紐づけます。

図1 メール送信ジョブの定義
項目 説明 入力例
ジョブ名 このアプリケーションシステム全体で、重複しないジョブ名(英語)を指定します。メール送信の場合は "SendMail" + (モデル名) + "Job" とするとよいでしょう。 SendMailLeaveJob
説明 自由に記述してください。 -
起動条件 メール送信を行う条件を指定します。この欄が空白の場合は、全データにメールを送信します。対象モデルに関する項目は "${" + (項目名) + "}" で表現します。関数を使うこともできます。 ${item1} == 0
※ 数値項目の場合
EXACT(${item1},"MOJI")
※ 文字列型項目の場合
成功時のアクション メール送信が成功したあとに行う処理を指定します。対象モデルに関する項目は "${" + (項目名) + "}" で表現します。関数を使うこともできます。「=」を使った代入文を指定することもできます。
失敗時のアクション メール送信が失敗したあとに行う条件を指定します。対象モデルに関する項目は "${" + (項目名) + "}" で表現します。関数を使うこともできます。「=」を使った代入文を指定することもできます。
メールテンプレート項目 後述する「メールテンプレート」の識別子(ID)になります。重複しない名前を英数字の組み合わせで決めてください。この値が空白の場合、「ジョブ名」がメールテンプレートIDとして利用されます。 SendMailLeaveJobTemplate
メール送信制御 最大同時送信回数 メールサーバの負荷を減らすために一度に送るメールの送信回数(*)を制限します。 送信回数が指定した数を超えた場合、「待ち時間」で指定した時間だけ処理を中断した後に、送信処理を再開します。 入力がない場合は無制限となります。 一度に大量のメールを送信すると、メールサーバがスパムメール(迷惑メール)と判断することがあります。適切な値を調整してください。 10
待ち時間(秒) 送信回数が指定した最大同時送信数を超えた場合、指定した時間だけ処理を中断した後に送信処理を再開します。 入力がない場合は 0秒となります。 メール送信を連続して行うと、メールサーバがスパムメール(迷惑メール)と判断することがあります。適切な待ち時間を設定してください。 30
複数のメールアドレスをカンマ区切りとして1つの項目に設定し、かつ "個別送信に設定" を有効とした場合でも、複数件の送信で1回と数えます。メールアドレスごとに1回と数えるものではありません。

メールテンプレートの設定

ビルドしたアプリケーションにシステム管理者でログオンします。図1に設定したメールテンプレートの詳細な設定を行います。メールテンプレートの新規登録を行います。(図2,図3)

図2 メールテンプレートの新規登録画面へ
図3 メールテンプレートの新規登録

メールテンプレートの詳細な定義方法は「メール送信>定義方法>メールテンプレートの設定」をお読み下さい。

「ID」は、図1の「メールテンプレート項目」に記載したものと同一としてください。(図1で「メールテンプレート項目」を空白とした場合は「ジョブ名」で設定した値としてください。)

ジョブスケジュールの設定

ジョブ専用アカウントjobadminの設定

「サポート>管理者ガイド>準備:ジョブ実行アカウントを利用可能にする」の手順に従って jobadmin アカウントを有効にします。

メール送信の対象モデルの操作権限(プリンシパル)をjobadminアカウントに与える必要があります。図4の例では「一般ユーザ」プリンシパルを付与した例です。

図4 jobadminアカウントの設定

スケジュールの設定

ジョブスケジュールの新規登録を行います。

  1. 管理者権限をもったアカウントでログオンします。
  2. メニューから「ジョブ管理」「ジョブスケジュール検索」画面を開きます。
  3. 「登録画面へ」ボタンを押下し、ジョブスケジュールの新規登録処理を行います。
  4. ジョブ名から図1で設定したジョブ名を選択します。(図5)※ ジョブ名が選択できない場合、図5下欄の注意書きをお読みください。
  5. スケジュールを指定します。
  6. 「有効」フラグをチェックします。
  7. このジョブを実行するアカウント "jobadmin" を入力します。
  8. ジョブスケジュールを登録します。指定した時間になると、コマンドが実行されます。
図5 スケジュールの新規登録

ジョブ名が選択できない場合

上の手順4でジョブ名が選択できない場合、ビルド後に旧データをすべてインポートした可能性があります。追加したジョブは「ジョブマスタ」モデルとして用意されており、ビルド後の "data_init" フォルダにエクスポートデータが記載されていますが、旧データには存在しません。そのため、旧データを取り込んだタイミングで、ジョブ情報が古いデータとなっています。

この対応として、旧データインポート後、あらためてインポートフォルダ名に "data_init" フォルダを指定し、「システムによって提供されるモデル一覧 > ジョブマスタ」をインポートしてください。これによって(追加した)ジョブを認識できるようになります。

ジョブの実行を停止する

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

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

実行結果をメールで送信する

ジョブの実行結果をメールで送信することができます。(すでにメール送信機能で「メールテンプレート」を利用しているため、ここではメールテンプレートを利用せず、直接ジョブパラメータを加えてください。)

多重実行の抑制

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

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

トラブルシューティング

ログに java.lang.SecurityException が出力され、ジョブが実行されない

権限が不足しているというエラーです。ジョブ実行アカウント jobadmin に当該データを操作(閲覧または更新)するプリンシパルが付与されていない可能性があります。例えば「一般」プリンシパルが付与されていない場合、多くのデータの操作が行えません。

また、このモデルに独自のプリンシパルを設定している場合、必要なプリンシパルを jobadmin に付与してください。

ジョブによる送信で、一部の項目がプレースホルダで置換されない

項目ごとに権限設定を行っていないか確認してください。ジョブ実行アカウント jobadmin に適切な権限が割り当てられていない場合、権限によって不可視となった項目はプレースホルダで置換されません。