EL式を利用して文字列を出力する際の設定書式です。[データ更新]の文字型データ項目への代入や[メッセージ送信中間イベント(メール)]のメール本文等の設定、各工程の設定値をセットする際に利用されます。「データ項目の参照」「アプリやプロセス情報の参照」を利用可能です。また、フォーマット関数を利用して出力書式を指定したり、JSON/XML のエスケープやハッシュ値を計算する関数も利用可能です。
ここでは、基本的なEL式の記述方法について説明しています。Questetraで使用できるEL式の詳細な仕様や豊富な活用サンプルについては、R2275: EL式による文字列としての出力(データ設定式)(上級編)をご覧ください。
BPMNアイコン:[データ更新]、[メッセージ送信中間イベント(メール)]、など
ワークフローの変数を参照する
ワークフロー基盤
アプリケーションルートURL(システム定数)
| 設定書式 | 出力される文字列 |
|---|---|
| ${var[applicationRoot]} | https://example.questetra.net/ |
アプリ
アプリID
| 設定書式 | 出力される文字列 |
|---|---|
| #{processModelInfoId} | 12 |
アプリ名
| #{processModelInfoName} | 問合対応フロー |
プロセス
プロセスID
| 設定書式 | 出力される文字列 |
|---|---|
| #{processInstanceId} | 12345 |
| p#{processInstanceId} | p12345 |
| #{#sformat('%d', processInstanceId)} | 12345 |
| #{#sformat('%04d', processInstanceId)} | 12345 |
| #{#sformat('%06d', processInstanceId)} | 012345 |
プロセス連番
| #{processInstanceSequenceNumber} | 67890 |
| #{#sformat('%06d', processInstanceSequenceNumber)} | 067890 |
| xyz#{#sformat('%06d', processInstanceSequenceNumber)} | xyz067890 |
プロセス開始日時
| #{processInstanceStartDatetime} | 2020-03-14 09:45 |
| #{#dateFormatter.format('yyyy年MM月dd日 HH時mm分 (E) Z', processInstanceStartDatetime)} | 2020年03月14日 09時45分 (水) +0900 |
| #{#dateFormatter.format('yy年M月', processInstanceStartDatetime)} | 20年3月 |
プロセス開始ユーザ
| #{processInstanceInitQuserName} | SUZUKI Ichiro |
| #{processInstanceInitQuser?.getEmail()} | suzuki@example.com |
プロセス開始組織
| #{processInstanceInitQgroupName} | Sales |
| #{processInstanceInitQgroup?.getEmail()} | sales@example.com |
親プロセス ID
| #{parentProcessInstanceId} | 1234 |
- 同一ワークフロー基盤 から送信された HTTP リクエストにより[メッセージ開始イベント(HTTP/Webhook)]から開始されたプロセスで利用可能
データ項目を参照する
文字型
| 設定書式 | 出力される文字列 |
|---|---|
| #{#q_string} | ABC, def |
数値型
| #{#q_numeric} | 12,345.67 |
| #{#sformat("%1.1f", #q_numeric)} | 12345.7 |
| #{#sformat("%1.1f", #q_numeric - 45)} | 12300.7 |
- 小数点表記はデータ項目の設定に従って出力されます
- 接頭/接尾文字は出力されません
- 演算結果を出力させるように設定することも可能です
選択型
| #{#q_select_radio} | Brazil |
| #{#q_select_radio?.![value]} | br(選択肢のID) |
| #{#q_select_check} | Japan, Brazil(選択された選択肢の表示ラベル) |
| #{#q_select_check?.![value]} | ja, br(選択された選択肢のID) |
| #{#q_select_check?.get(1)} | Brazil (ふたつめの選択肢の表示ラベル) |
| #{#q_select_check?.get(0)?.value} | ja(ひとつめの選択肢のID) |
- 選択型データ項目(チェックボックス)で複数選択肢が出力される際、区切り文字(デリミタ)は「,(カンマ)」
日付型/日時型
| #{#q_date} |
2020-03-14 (日付型 Y/M/D) |
| #{#q_datetime} | 2020-03-14 23:45 (日時型) |
| #{#q_datetime.addHours(9)} | 2020-03-15 08:45(9時間後) |
| #{#q_datetime.addDays(#q_num.intValue())} | 2020-03-24(数値型データ項目(q_num)の値を参照) |
| #{#dateFormatter.format('yyyy年MM月dd日', #q_datetime)} | 2020年03月14日 |
- データ項目のサブタイプ設定に従う
ファイル型
| #{#q_file} | ((ファイル名の一覧)) |
| #{#q_file?.![contentType]} | ((Content-Type の一覧)) |
| #{#q_file?.get(0)?.getCharset()} | ((先頭ファイルの Content-Type のうち charset パートの値)) |
| #{#q_file?.get(1)?.length} | ((2番目のファイルのサイズ)) |
- 複数ファイルの場合は、「, (カンマ)」区切り
ユーザ型
| #{#q_user} | SUZUKI Ichiro <suzuki@example.com> |
| #{#q_user?.name} or #{#q_user?.getName()} |
SUZUKI Ichiro |
| #{#q_user?.id} or #{#q_user?.getId()} |
13 (ユーザID) |
| #{#q_user?.email} or #{#q_user?.getEmail()} |
suzuki@example.com |
| #{#q_quser?.isDeletedInFuture()} | true/false ([削除予定]フラグの有無) |
組織型
| #{#q_org} | Sales <sales@example.com> |
| #{#q_org?.name} or #{#q_org?.getName()} |
Sales |
| #{#q_org?.id} or #{#q_org?.getId()} |
5 (組織ID) |
| #{#q_org?.email} or #{#q_org?.getEmail()} |
sales@example.com |
| #{#q_org?.isDeletedInFuture()} | true/false ([削除予定]フラグの有無) |
テーブル型
| #{#q_table} | 2 row(s) |
| #{#q_table?.getSummary()?.get('price')} | 300 |
| #{#q_table?.get(0, 2)} | キャッシュ |
| #{#q_table?.getObject(0, 2)?.getDisplay()} | キャッシュ |
| #{#q_table?.getObject(0, 'kind')?.display} | 交通費 |
| #{#q_table?.rows?.![#this['name'] + '|' + #this['price']]} | りんご|100, みかん|200 |
掲示板型
| #{#q_discussion} | ------- [2020-02-07 13:29] <NAKAMURA Haruko> Hello, Good-bye (単一行への代入はエラーになります) |
ガイドパネル型
| (参照不可) | (表示専用) |
Notes
- 変数に使用されるEL式は、SpEL (Spring Expression Language) の実装にしたがっています
- 複数のEL式を活用した書式も設定可能です
- 例)「プロセスIDは#{processInstanceId}です。プロセス連番は#{processInstanceSequenceNumber}です」と設定すれば、「プロセスIDは12345です。プロセス連番は67890です」という値が代入されます
- 単一行の文字型データ項目に、複数行のデータを代入しようとした場合など、矛盾が生じた際にはエラーとなります
- [データ更新]では、設定書式として何も設定しない場合、「空」が代入されます(データが消去されます)
コメント
0件のコメント
記事コメントは受け付けていません。