イベントハンドラのメッセージ送信機能
イベントハンドラ内で内容を定義してメッセージ送信を行う機能について説明します。
メッセージ送信方法として、「メール」のみ利用可能です。
通常の通知機能とは異なり、特定の操作が行われたタイミングでのみ通知するなどを実現することが可能です。
メッセージ送信処理の設定方法
イベントハンドラのメッセージ送信機能では、次のタグを利用します。
表 イベントハンドラで設定できるメッセージの項目
設定項目 | 説明 | 配下に指定可能なデータ |
---|---|---|
<メッセージ送信> | メッセージ送信機能をまとめるタグ。 | ・document属性が必要。 ・後述のタグ |
<宛先> | メッセージの宛先。 ※必須 |
・アカウント型のデータ ・文字列型のデータ |
<件名> | メッセージの件名。 ※必須 |
・任意の文字列 ・文書に登録されたデータや実施中プロセスのデータ |
<本文> | メッセージの本文。 ※必須 |
・任意の文字列 ・文書に登録されたデータや実施中プロセスのデータ |
<添付ファイル> | メッセージの添付ファイル | ・ファイルフォルダのファイル |
※メッセージ送信時の差出人はシステムアカウントから送信されます。指定できません。
メッセージ送信のサンプル
■ メッセージ送信イベントハンドラのサンプル
<メッセージ送信 document="doc01" >
<宛先>
<変数 name="account01"/>
<業務開始者/>
</宛先>
<件名>申請が差し戻されました</件名>
<本文>
------------------------------------
■承認担当者:$sender.name
■文書URL:$url.documentDetail
■申請タイトル: $!document.getText("title")
■差戻し理由: $!document.getPlainText("comment")
------------------------------------
</本文>
<添付ファイル document="doc01" item-id="fileFolder"/>
<添付ファイル document="doc01" item-id="fileFolder_2"/>
</メッセージ送信>
■ 送信するメッセージ(メール)の内容
宛先 :アカウント型プロセス変数"account01"に代入されたユーザ、業務開始者
件名 :「申請が差し戻されました」(固定の内容)
本文 :------------------------------------
■承認担当者:(アクティビティ実施者の名前)
■文書URL:(メッセージに利用している文書のURL)
■申請タイトル: (メッセージに利用している文書にて、部品キーが"title"である文字列入力ボックス部品のデータ)
■差戻し理由: (メッセージに利用している文書にて、部品キーが"comment"であるリッチテキスト部品のデータ)
添付ファイル:文書型プロセス変数"doc01"に格納されている文書にて、部品キーがそれぞれ"fileFolder"と"fileFolder_2"の部品に登録されているファイル
メール送信の設定方法を、サンプルに記述されているタグの順番に説明します。
■メッセージ送信タグの設定方法
イベントハンドラでメッセージを送信したい場合、メッセージ送信タグを記述します。メッセージ送信タグの配下には、次のタグを指定する必要があります。
- 宛先
- 件名
- 本文
件名や本文で文書情報格納先に格納された文書のデータを使用する場合は、<メッセージ送信>タグの属性に文書型のプロセス変数を指定する必要があります。
サンプル
<メッセージ送信 document="doc01">
サンプル結果
doc01に格納された文書を使用したメッセージを送信する。
■宛先タグの設定方法
<メッセージ送信>タグ配下に必須のタグです。
宛先を設定したい場合、宛先タグを記述します。宛先タグは、配下に指定されたタグによって返されたデータをメッセージの宛先として扱います。
タグは複数指定でき、複数のデータが返された場合は全てのデータを宛先に設定します。
宛先タグでは、以下のようなタグが設定可能です。
文字列型のデータを返すタグ
アカウント型のデータを返すタグ
<文書部品>タグ※
※ 宛先タグ配下に記述する文書部品タグにて、「item-id」属性に指定可能なのは次の部品です。
文字列入力ボックス部品
文章入力エリア部品
自動更新部品(「テキスト型」のみ)
アカウント選択(ポップアップ)部品
アカウント選択(メニュー)部品
「item-id」属性にて「文字列入力ボックス」、「文章入力エリア」、「自動更新部品(テキスト型)」部品を指定し、宛先として使用する場合の注意事項
- カンマ区切りで複数のメールアドレスを指定することが可能です。
- 宛先として有効な入力値は、メールアドレスと “, “(カンマ)です。
- 入力の形式は、「ローカル部@ドメイン」というメールアドレスの形式(RFC5321による規定フォーマット)に合致している必要があります。<>(括弧)を使って宛先欄の表示を指定することはできません。(e.g.情報太郎様<ittaro@dreamarts.co.jp>)
サンプル
<宛先>
<変数 name="account01"/>
<文書部品 document="doc01" item-id="itemKey"/>
<担当者/>
<アカウント value="1000013"/>
</宛先>
サンプル結果
メッセージの宛先に、次を設定する。
アカウント型プロセス変数"account01"に代入されているユーザ
文書型プロセス変数"doc01"に格納された文書にて、部品キーが"itemKey"の部品に設定された
ユーザ、またはメールアドレス※
メッセージ送信イベントハンドラが記述されているアクティビティの「担当者」
MID=1000013のユーザ
※ 宛先がグループの場合
宛先がグループの場合、グループに所属しているすべてのユーザを宛先として数えます。
グループに所属しているグループの全所属ユーザや、下位グループに所属しているユーザも、宛先として数えます。
■件名タグの設定方法
<メッセージ送信>タグ配下に必須のタグです。
件名を設定したい場合、件名タグを記述します。件名タグで囲んだ値は、メッセージの件名として扱われます。
タグの配下には、文字列型のデータ(任意の文字列)を直接記述するか、メッセージ送信イベントハンドラで利用可能な変数を記述します。利用可能な変数については、【メッセージ送信イベントハンドラで参照可能な情報】を参照してください。
サンプル
<件名>$!document.getText("mailTitle")</件名>
サンプル結果
メッセージの件名に、フォーム定義の「mailTitle」部品に登録されたデータを設定する。
- 従来のイベントハンドラで使用するタグは、<件名>タグ配下では使用できません。
- 件名に返されたデータが改行を含む場合、1行目に記載される文字列のみ反映されます。
■本文タグの設定方法
<メッセージ送信>タグ配下に必須のタグです。
本文を設定したい場合、本文タグを記述します。本文タグで囲んだ値は、メールの本文として扱われます。
タグの配下には、文字列型のデータ(任意の文字列)を直接記述するか、メッセージ送信イベントハンドラで利用可能な変数を記述します。利用可能な変数については、【メッセージ送信イベントハンドラで参照可能な情報】を参照してください。
サンプル
<本文>
申請が承認されました。
●承認日
$!document.getDate("Date")
</本文>
サンプル結果
メールの本文に、フォーム定義の「Date」部品に登録されたデータを設定する。
※従来のイベントハンドラで使用するタグは、<本文>タグ配下では使用できません。
■添付ファイルタグ
メールに添付ファイルを指定したい場合、添付ファイルタグを記述します。添付ファイルタグは、属性に指定した部品に登録されているファイルを添付ファイルとして扱います。
メールに添付できるのはバインダのファイルフォルダ部品に登録されたファイルのみです。
添付ファイルタグは1部品に対して1つのタグを記述します。異なるファイルフォルダ部品に設定されているファイルを同じメールに添付したい場合は、利用したい部品の数に合わせて添付ファイルタグを記述します。
サンプル
<添付ファイル document="doc01" item-id="fileFolder" />
<添付ファイル document="doc01" item-id="fileFolder_2" />
サンプル結果
メールの添付ファイルとして、doc01に格納された文書の「fileFolder」部品と「fileFolder_2」に登録されたファイルを設定する。
※<メッセージ送信>タグ配下に必須のタグではありません。
メッセージ送信イベントハンドラで参照可能な情報
メッセージ送信イベントハンドラで参照可能な情報と、参照のために記述する変数を説明します。
詳細な記載方法については【通知の記載方法について】を参照してください。
文書情報の参照方法
次の一覧にまとめられている情報は、「変数」欄の内容と、必要に応じて該当する部品の部品IDや部品キーを( )内に代入することで参照できます。
バインダ通知定義で使用できる変数も「宛先($recipient.name)」を除いて使用可能です。
表 各種プロセス情報の参照方法
取得する情報 | 変数 | 備考 |
---|---|---|
送信者名 | $sender.name | |
見出し | $!context.processInstance.title | |
業務名 | $!context.processDefinition.title | |
アクティビティ名 | $!context.activityDefinition.title | |
業務開始時のコメント | $!context.processInstance.comment | |
アクティビティ実施時のコメント | $!context.buttonClickEvent.comment | アクティビティ開始時は利用できません。 アクティビティ終了時に定義した場合、複数の担当者がいても最後に操作された際のコメントを取得します。 |
プロセス開始日時 | $!context.processInstance.startDate | 日時の出力形式は変数のフォーマットを参照してください。 |
アクティビティ開始日時 | $!context.activityInstance.startDate | 日時の出力形式は変数のフォーマットを参照してください。 |
プロセス変数 | $!context.getPVarValue("変数名") | 文字列型(string) 、 数値型(number) が指定可能。プロセス変数については、【プロセス変数】を参照してください。 |
遷移先のキー | $!context.EndCode | 遷移矢印のキーが設定された場合に情報を取得 アクティビティ開始時は利用できません。 |
バインダ名 | $binder.name | |
部品の項目名 | $contents.get(部品ID/"部品キー").title | |
部品に入力されたデータ | $contents.get(部品ID/"部品キー").value | |
文書情報を取得する。詳細は文書変数の利用を参照してください。 | $!document | 詳細は文書変数の利用を参照してください。 |
また、関連する文書やアクティビティ実施URLも取得可能です。
※$urlを$relUrlに変更することで相対パスに変更することも可能です。プロキシを利用していてURLが異なる場合など特殊なケースでご利用ください。
表 各種URL
取得する情報 | 変数 | 備考 |
---|---|---|
通知対象となった文書の詳細画面のURL | $url.documentDetail | |
通知対象となった文書の詳細画面(フレームなし)のURL | $url.documentDetailNoFrame | |
通知対象となった文書の簡易閲覧画面のURL | $url.documentSimple | |
通知対象となったバインダの文書一覧のURL | $url.documentList | |
通知対象となったバインダの文書一覧(フレームなし)のURL | $url.documentListNoFrame | |
アクティビティ実施画面のURL | $url.execute | |
ワークリストのURL | $url.worklist | |
実施履歴画面のURL | $url.history |
高度な使い方が必要なプロセス情報の参照方法
下記の情報は、「変数」欄の内容を記述した上でさらに記述を追加する必要があります。
表 高度な使い方が必要なプロセス情報の参照方法
分類 | 取得するデータ | 変数 | 実施者情報 |
---|---|---|
業務開始者 | $!context.ProcessStarter | |
直前アクティビティの実施者 | $!context.PreviousTaskExecutor | |
アクティビティの実施者 | $!context.CurrentTaskExecutor | |
代行者が実施した場合の元々の担当者 | $!context.buttonClickEvent.sourcePrincipal |
以下は、「$!context.ProcessStarter」を使用するタグの利用例です。
「$!context.ProcessStarter」の利用例
サンプル結果:取得する情報::業務開始者のMID
$!context.ProcessStarter.Id
サンプル結果:取得する情報::業務開始者の名前
$!context.ProcessStarter.name
メッセージが送信されない場合
次の場合はイベントハンドラで設定されたメッセージが送信されない場合があります。
宛先のメールアドレスが無効である場合
メールアドレスが無効な場合とは、次の場合を指します。無効なアドレスにはメールが送信されません。
- メールアドレスが送信先の制限に一致した場合
- メールアドレスがメールアドレスのフォーマットに合致しない場合
複数の宛先が設定されている場合は、無効なアドレスのみにメールが送信されず、有効なアドレスにはメールが送信されます。送信者には送信失敗の連絡メールが送信されます。
送信される項目は次のとおりです。
表 送信失敗の連絡メール内容
項目 | 説明 |
---|---|
宛先 | 送信者 |
差出人 | システムアカウント |
件名 | [Delivery Failed]メール通知は中止されました |
内容 | 本文 以下のプロセスのメール通知は中止されました。 宛先が正しくありません。 中止された宛先を確認してください。その他の正しい宛先には送信しました。 失敗した宛先の情報(次のいずれか) システムで送信制限されている宛先 入力が不正な宛先 プロセス・文書の情報 プロセス定義名 アクティビティ名 通知対象文書の文書番号 通知対象文書の詳細画面URL |
注意事項
- メールで文書の情報を参照する場合の権限
メールで文書の情報を参照する場合、アクティビティ実施者や宛先に設定されたユーザは、権限による制限を受けません。閲覧権限のないデータが含まれている場合も、イベントハンドラで送信されるメールにはデータが参照されます。
送信されるメールの内容はすべての宛先に対して同一です。
- メール表示の言語
多言語対応環境の場合、イベントハンドラによって送信されるメールはアクティビティ実施者の言語設定に従います。言語設定の影響を受けるのは、ユーザ・グループ名の表示のみです。