通知テンプレート

通知テンプレートでは、業務プロセスの担当者通知の内容をカスタマイズすることができます。

  • 標準テンプレート:担当者通知で共通で使用している通知内容のテンプレート
  • カスタムテンプレート:承認アクテビティと汎用アクティビティのアクティビティ開始時に適用可能なテンプレート

カスタムテンプレートを利用する場合、 プロセス定義の基本情報の通知設定で「カスタム」を選択し、アクティテビィの通知設定で対象のテンプレートを選択する必要があります。

通知テンプレートのメニューは、全体プロセス管理者、業務プロセス追加可能者に表示されます。 付与された権限により、以下のように可能な操作が変ります。

全体プロセス管理者 業務プロセス追加可能者
標準テンプレートの一覧、閲覧、記述式参照
標準テンプレート(正常系)の編集 ×
カスタムテンプレートの一覧、閲覧、記述式参照
カスタムテンプレートの編集 自分が新規追加したもののみ
カスタムテンプレートの削除 自分が新規追加したもののみ

標準テンプレート

標準テンプレートは、業務プロセスの実施後、各アクティビティの担当者となるユーザ、または業務プロセスの終了時に対象となるユーザへのメール通知やTeams通知、Slack通知などの、通知内容を設定したテンプレートです。 各業務プロセスで共通で使用する通知内容をカスタマイズしたい場合に、標準テンプレートを変更してください。

手順

全体プロセス管理者、あるいは業務プロセス追加可能者でバインダ・プロセス管理画面を開きます。

サイドメニューのプロセス管理から「通知テンプレート」をクリックします。

通知テンプレート画面が表示されます。

閲覧・編集したい通知テンプレートの左端にある「詳細」ボタンをクリックします。

通知テンプレートの内容を確認・編集します。

カスタムテンプレート

カスタムテンプレートは、承認アクテビティと汎用アクティビティのアクティビティ開始時に使用可能なテンプレートです。 標準テンプレート以外の通知内容としたい場合に、カスタムテンプレートを使用してください。

手順

全体プロセス管理者、あるいは業務プロセス追加可能者でバインダ・プロセス管理画面を開き、サイドメニューのプロセス管理から「通知テンプレート」をクリックします。 通知テンプレート画面で「カスタムテンプレート」タブをクリックします。

「新規登録」ボタンをクリックします。

下記内容を入力します。

■基本情報:

項目 内容
通知名 通知名を入力します。
最大255文字まで
キー キーを入力します。
キーの重複はできません。
通知タイミング 「アクティビティ開始時」固定
パラメータ 「記述式」のリンク
通知方法 「メール」「Teams」「Slack」「モバイルアプリ」から通知方法をチェックします。

:必須項目

■メール
通知方法でメールをチェックした場合に表示されます。

項目 内容
言語 「日本語」「英語」「中国語」固定
タイトル 各言語向けのタイトルを入力します。
最大500文字まで、改行した場合は最初の行のみ
本文 各言語向けの本文を入力します。
最大1000文字まで

:必須項目

■Teams
通知方法で「Teams」をチェックした場合に表示されます。

項目 内容
言語 「日本語」「英語」「中国語」固定
タイトル 各言語向けのタイトルを入力します。
最大500文字まで、改行した場合は最初の行のみ
本文 各言語向けの本文を入力します。
最大1000文字まで

:必須項目

■Slack

通知方法で「Slack」をチェックした場合に表示されます。

項目 内容
言語 「日本語」「英語」「中国語」固定
タイトル 各言語向けのタイトルを入力します。
本文 各言語向けの本文を入力します。最大1000文字まで

:必須項目

■モバイルアプリ
通知方法で「モバイルアプリ」をチェックした場合に表示されます。

項目 内容
言語 「日本語」「英語」「中国語」固定
タイトル 各言語向けのタイトルを入力します。
最大500文字まで、改行した場合は最初の行のみ
本文 各言語向けの本文を入力します。
最大1000文字まで

:必須項目

「登録」ボタンをクリックします。

通知の記載方法について

通知情報の作成にはVelocityを利用しているため、VTL(Velocity Template Language)を利用して記述します。

また、記述式ではStringUtilsのクラスも利用可能ですが、これらの仕組みを利用した高度な記述方法に関してはSmartDB独自の記載ルールではないため、サポートでは対応いたしかねます。

基本的な記述ルール

下記サンプルのように、Velocityの変数や指示子と文章を組み合わせて記載することが可能です。
Velocityの指示子を利用した高度な記述方法に関してはSmartDB独自の記載ルールではないため、サポートでは対応いたしかねます。

通知の記載方法のサンプルです。

アクティビティ名:$!{activity.name}

## 指示子ifを利用した記述例
#if(${process.priorityLabel} == "優先")
優先して対応をお願いします。
#end


## foreachを使ったループ処理の記述例
■コメント履歴
#foreach($comment in $allComments)
実施者:$comment.executor.name
実施日時:$date.serializeDateWithSystemTimezone($comment.date, 'yyyy/MM/dd HH:mm(Z)')
コメント:$comment.comment
#end

## formatterと文書変数を利用した記述例
$!formatter.formatDate($startDoc.getDate(10005),"yyyy年M月d日")    

変数の記述方法について

変数はVelocityのルールに従って、下記のいずれかの記法を利用して記載してください。
通常の通知ではサイレント記法を使うことで、変数名が意図せずにユーザに見えてしまうことを防ぐことが可能です。

記法 説明
${変数} 通常の変数。変数の値が取得できない場合、変換されずにそのまま通知されます。
{}は省略可能です。
$!{変数} サイレント記法と呼ばれる変数。変数の値が取得できない場合は空欄となります。
{}は省略可能です。

通知テンプレートで使用可能な変数

通知テンプレートでは、各種変数を利用して、プロセス情報や開始文書情報、URL、コメント情報を取得しています。
使用可能な変数や使用方法は、以下となります。
一部の変数は特定のタイミングでのみアクティビティでのみ取得可能です。画面の「記述式」の表示もご参照ください。

※下記に記述のない、バインダの通知定義やイベントハンドラのメッセージ送信の変数は利用できません。

表 通知テンプレート中で使用可能な変数(プロセス情報)

項目 変数 備考
アクティビティ名 ${activity.name}
バインダ名 $binderName 開始バインダの名称を取得する
バインダID $document.binderId 開始バインダのIDを取得する
文書ID $document.recordId 文書のIDを取得する
期限の有効判定 $dateLimitEnabled 期限が利用できる環境だと"true"となる。
※設定不可のため必ず"true"
優先度の有効判定 $priorityEnabled 期限が利用できる環境だと"true"となる。
※設定不可のため必ず"true"
アクティビティ受信者 $recipients
開始文書(変数) $startDoc 文書変数のため単体では利用不可。詳細な利用方法は後述の【文書変数の利用】を参照。
強制終了の理由 ${process.abortReason}
期限 ${process.dateLimit}
優先度(文字列) ${process.priorityLabel}
優先度(数値) ${process.priorityValue} 通常:5
優先:7
至急:9
開始コメント ${process.comment}
プロセス定義の作成者 ${process.processCreator}
プロセス終了者 ${process.executor}
全体プロセス進行管理者 ${process.processInstanceAdmin}
プロセス定義名 ${process.name}
業務開始者 ${process.starter}
Teamsメッセージ ${process.teamsMessage} プロセス定義の基本情報欄にある「Teamsメッセージ」項目に入力された値。
Slackメッセージ ${process.slackMessage} プロセス定義の基本情報欄にある「Slackメッセージ」項目に入力された値。
見出し ${process.title}

表 通知テンプレート中で使用可能な変数(URL)

項目 変数 備考
アクテビティURL ${url.activity}
文書一覧URL ${url.binderUrl}
関連文書URL ${url.docUrl} 複数の文書を扱っている場合、下記の順に優先されて取得される。
・開始バインダ
・メイン文書
・BinderIdが最も大きい文書のURL
実施URL ${url.execute}
実施履歴URL ${url.history}
プロセス定義URL ${url.processDef}
ワークリストURL ${url.worklist}

表 通知テンプレート中で使用可能な変数(コメント情報)

項目 変数 備考
すべてのコメント(複数行) ※コメントを求めるを含む $allComments
コメントを求める際のコメント $askedComments
開始、実施コメント(複数行)※コメントを求める除く $comments
直前アクティビティのコメント(開始コメント除く) $previousComments

※コメント情報はすべてリストで取得されます。詳細な利用方法は記載方法のサンプルもご参照ください。

表 通知テンプレート中で使用可能な変数(その他情報)

項目 変数 利用可能な通知
メッセージ $message コメント依頼通知
コメント依頼回答通知
代行者設定通知
コメント依頼者 $asker コメント依頼通知
コメント回答者 $answerer コメント依頼回答通知
コメント依頼数 $askedCount コメント依頼回答通知
コメント回答数 $finishedCount コメント依頼回答通知
代行者を設定したユーザ ${destAccountName} 代行者設定通知
代行者設定画面のURL ${url} 代行者設定通知

文書変数の利用

開始文書(変数) $startDoc を利用して、開始文書情報を参照する方法は以下となります。
※メッセージ送信イベントハンドラで利用する場合は「$!startDoc」を「$!document」に読み換えてください。

表 文書変数から参照可能な情報

取得する情報 変数
文字列入力ボックス・文章入力エリア・入力可能な単一選択に入力されたデータ $!startDoc.getText(部品ID/"部品キー")
数値部品に入力されたデータ $!startDoc.getNumber(部品ID/"部品キー")
リッチテキスト部品に入力されたタグなしのデータ $!startDoc.getPlainText(部品ID/"部品キー")
単一選択(項目)、単一選択(メニュー)部品の選択された値のデータ $!startDoc.getChoice(部品ID/"部品キー").getValue()
単一選択(項目)、単一選択(メニュー)部品の選択肢の文言 $!startDoc.getChoice(部品ID/"部品キー").getName()
リンク部品の「URL」に入力されたデータ $!startDoc.getLinkUrl(部品ID/"部品キー")
リンク部品の「タイトル」部品に入力されたデータ $!startDoc.getLinkTitle(部品ID/"部品キー")
文字列型に変換した自動更新部品のデータ $!startDoc.getDynaChangeableGenericData(部品ID/"部品キー")
(部品IDまたは部品キー)の部品タイプ $!startDoc.getItemType(部品ID/"部品キー")
(部品キー)の部品ID
部品キーが未設定の場合も部品IDを返す
$!startDoc.getItemId("部品キー")
(部品ID)の部品キー
部品キーが未設定の場合は部品IDを返す
$!startDoc.getItemKey(部品ID)
文書がデータを持っている全部品のIDリスト $!startDoc.ItemIdList
アカウント部品の名前 $!startDoc.getAccount(部品ID/"部品キー").getName()

また、下記の情報はオブジェクトが取得されるため、そのままでは利用できない情報です。
後述のメソッドやフォーマッターと組み合わせて利用してください。

表 高度な利用方法が必要な文書変数から参照可能な情報

取得する情報 戻り値のデータ型 変数
複数選択部品に入力されたデータ List<Option> $!startDoc.getMultiChoice(部品ID/"部品キー")
単一選択(項目)、単一選択(メニュー)部品のデータ Option $!startDoc.getChoice(部品ID/"部品キー")
日付部品のデータ Date $!startDoc.getDate(部品ID/"部品キー")
ファイルフォルダ部品に登録されたデータ List<FileAttachment> $!startDoc.getFileList(部品ID/"部品キー")
画像部品に登録されたデータ FileAttachment $!startDoc.getImage(部品ID/"部品キー")
アカウント選択(メニュー)部品のデータ Account $!startDoc.getAccount(部品ID/"部品キー")
アカウント選択(ポップアップ)部品に登録された全アカウントのデータ List<Account> $!startDoc.getAccountList(部品ID/"部品キー")
文書リンク部品に入力されたデータ List<SmartDocument> $!startDoc.getLinkedDocumentList(部品ID/"部品キー")
バインダ参照部品に入力されたデータ SmartDocument $!startDoc.getLinkedDocument(部品ID/"部品キー")
カテゴリ部品のデータ Category $!startDoc.getCategory(部品ID/"部品キー")

表 データ型ごとに利用可能なメソッド

データ型 説明 メソッド
Option 選択肢の名前を取得する getName()
選択肢のIDを取得する getValue()
FileAttachment ファイルの名前を取得する getName()
ファイルのサイズを取得する getSize()
Account アカウントの内部ID(MID,GID)を取得する getId()
ユーザのメールアドレスを取得する getEmail()
アカウントの名前を取得する getName()
アカウントの状態を取得する
・ACTIVE:通常のユーザ・グループ
・DISAVLED:ログイン不能ユーザ、廃止グループ
getStatus()
アカウントのタイプを取得する
・USER:ユーザ
・ORGANIZATION:組織
・PROJECT:プロジェクト
getType()
SmartDocument 文書のバインダIDを取得する getBinderId()
文書番号を取得する getRecordId()
文書タイトルを取得する getTitle()
Category カテゴリIDを取得する getId()
カテゴリ名を取得する getName()
親カテゴリを取得する
※Categoryで返却される
getParent()

変数のフォーマット

通知の中では$!formatterを利用して、記載される値をフォーマットすることが可能です。
利用可能なフォーマッターは以下となります。

フォーマッターの説明 記載方法
Dateをフォーマットの形式で表示する。
※フォーマットは、 【日付選択】部品の表示フォーマットを参照。
$!formatter.formatDate([Date],"フォーマット")
数値1の値を数値2の桁数でゼロ埋めする。 $!formatter.zeroPadding([数値1],[数値2])
文字列に含まれる大文字を小文字に変換する。 $!formatter.lowerCase([文字列])
文字列に含まれる小文字を大文字に変換する。 $!formatter.upperCase([文字列])