サービスタスク(データ設定)

機能概要

プロセスにおいて、システムが処理する自動工程を表します。
数値型、日付型/日時型、文字型、選択型データ項目に、動的な値や演算結果を代入します。

アプリ管理権限を持つユーザが対象です。

機能一覧

ワークフロー図 ワークフロー図の作成を行います。
スイムレーンや各ノードを配置し、フローを作成して、作業の順序を定義します。
ヒューマンタスク プロセスにおいて、処理担当者が作業する手動工程を表します。
プロセス実行時に、データを入力するフォーム(タスク処理画面)が表示されます。
サービスタスク
(データ設定)
プロセスにおいて、システムが処理する自動工程を表します。
数値型、日付型/日時型、文字型、選択型データ項目に、動的な値や演算結果を代入します。
サービスタスク
(PDF生成)
プロセスにおいて、システムが処理する自動工程を表します。
業務データ(各データ項目に保持されている値)を埋め込んだPDF帳票を生成します。
サービスタスク
(選択肢マスタ更新)
プロセスにおいて、システムが処理する自動工程を表します。
指定の選択型データ項目の内容を、アプリ共有アドオンの[選択型データ項目で使用する選択肢マスタ]として更新します。
スクリプトタスク プロセスにおいて、システムが処理する自動工程を表します。
ECMAスクリプトを使用して、業務データ(各データ項目に保持されている値)を編集します。
受信タスク
(フォーム)
プロセスにおいて、システムが処理する自動工程を表します。
アカウントを持たないユーザに対して、プロセスの途中での入力フォームを提供します。
メッセージ開始イベント(フォーム)を使用してユーザにWeb入力フォームを提供したあとに、メールによる本人確認を経て、詳細情報を入力するようなWeb入力フォームを表示します。
受信タスク
(Webhook)
プロセスにおいて、システムが処理する自動工程を表します。
外部サービス側のWebhook通知の受信まで待機し、受信後にトークンが進みます。
サービスタスク
(Add-on)
プロセスにおいて、システムが処理する自動工程を表します。
ユーザ独自定義のサービスタスクを処理します。
タイマー開始イベント プロセスにおいて、システムが処理する自動工程を表します。
設定した日時にプロセスを自動的に開始します。
タイマー中間イベント プロセスにおいて、システムが処理する自動工程を表します。
指定した日時まで待機し、指定日時を経過するとトークンが進みます。
メッセージ開始・
受信中間イベント(HTTP)
プロセスにおいて、システムが処理する自動工程を表します。
メッセージ開始イベント(HTTP): 外部システムまたはDataSpider BPMの他のプロセスから受け取ったメッセージをもとにプロセスを開始します。
メッセージ受信中間イベント(HTTP): プロセスの実行途中で、外部システムまたはDataSpider BPMの他のプロセスから受け取ったメッセージをもとにデータを入力できます。
メッセージ開始イベント
(フォーム)
プロセスにおいて、システムが処理する自動工程を表します。
Webページの入力フォームから受け取ったメッセージをもとにプロセスを開始します。
入力フォームは、データ項目のレイアウトをWebページに埋め込んで使用します。
メッセージ開始イベント
(Webhook)
プロセスにおいて、システムが処理する自動工程を表します。
外部サービス側のWebhook通知の受信を起点とし、プロセスを自動的に開始します。
メッセージ送信中間イベント
(HTTP)
プロセスにおいて、システムが処理する自動工程を表します。
指定したURLに、HTTPリクエストを送信します。
外部システムまたはDataSpider BPMの他のプロセスへのデータ送信が可能となります。
メッセージ送信中間イベント
(メール)
プロセスにおいて、システムが処理する自動工程を表します。
設定した内容でメールを送信します。
送信先は任意に設定できます。
メール本文に、データ項目の入力内容を埋め込むことができます。
メッセージ送信中間イベント
(DataSpider Servista)
プロセスにおいて、システムが処理する自動工程を表します。
指定したDataSpider Servistaのスクリプトを実行することができます。
イベントの実行時には、DataSpider BPM側のデータ項目の値を、DataSpider Servista側で定義されている入力変数へ渡すことができます。
スクリプト終了時には、DataSpider Servista側で定義されている出力変数の値を、DataSpider BPM側のデータ項目の値として受け取ることができます。
スクリプトの実行結果(結果の戻り値:ExitStatusおよびエラー内容)を受け取り、その後のタスクや条件分岐処理等で使用することができます。
分岐 ワークフロー図に分岐がある場合、分岐・遷移先の設定を行います。

項目説明

項目名 必須 説明
工程名 任意 タスクの名称を入力します。
メモ 任意 タスクの注意点や目的などに関するメモを入力します。
必須データ項目の
値をクリアすることを
許可する
任意 チェックを入れた場合、[必須]として設定したデータ項目に保持されている値を空(未入力)の状態にすることができます。
データ項目 - [設定対象のデータ項目を選択]で選択したデータ項目の型を表示します。
値または式 任意 動的な値または演算式(EL式)を入力します。
指定できる動的な値および演算式(EL式)の例は、こちらを参照してください。
設定対象のデータ項目を選択 必須 動的な値または演算結果を保存するデータ項目をリストから選択します。
選択可能なデータ項目のデータ型は以下のとおりです。
  • 件名
  • 文字型: 文字(単一行、複数行)
  • 数値型: 数値
  • 選択型: 選択(ラジオボタン、セレクト、検索セレクト、チェックボックス)
  • 日付型: 日付(年月日、年月、年、月日)
  • 日時型: 日時

動的な値(EL式)の例: 文字型(件名含む)

値の内容 書式 処理結果
固定値 Hello World! Hello World!
アプリID #{processModelInfoId} 12
アプリ名 #{processModelInfoName} 企画書レビュー
プロセスID #{processInstanceId} 12345
p#{processInstanceId} p12345
#{#sformat('%d', processInstanceId)} 12345
#{#sformat('%06d', processInstanceId)} 012345
指定桁数(6桁)までゼロ詰め(パディング)します。
プロセス連番 #{processInstanceSequenceNumber} 67890
#{#sformat('%06d', processInstanceSequenceNumber)} 067890
xyz#{#sformat('%06d', processInstanceSequenceNumber)} xyz067890
プロセス開始日時 #{processInstanceStartDatetime} 2012-03-14 23:45
#{#format(processInstanceStartDatetime, 'yyyy年MM月dd日 HH時mm分')} 2012年03月14日 23時45分
#{#format(processInstanceStartDatetime, 'yy年M月')} 12年3月
プロセス開始ユーザ #{processInstanceInitQuserName}
または
#{processInstanceInitQuser?.name}
佐藤 太郎
#{processInstanceInitQuser?.getEmail()} taro.sato@example.com
#{processInstanceInitQuser?.getId()} 1
プロセス開始組織 #{processInstanceInitQgroupName}
または
#{processInstanceInitQgroup?.name}
マーケティング部
#{processInstanceInitQgroup?.getEmail()} marketing@example.com
#{processInstanceInitQgroup?.getId()} 3
アプリ変数 ${var[<アプリ変数名>]} 変数設定で定義したアプリ変数の値を指定します。
システム変数
(アプリケーションルートURL)
${var[applicationRoot]} https://bpmserver:18443/userweb/
設定ファイル(qbpms.config)の[qbpms.contextPath]の値を指定します。
件名 #{processInstanceTitle} 購入申請
データ項目(数値型) #{#<フィールド名>}
または
#{data['XX']}
12,345.67
#{#sformat("%1.1f", #<フィールド名>)}
または
#{#sformat("%1.1f", data['XX'])}
12345.7
データ項目(日付型/日時型) #{#format(#<フィールド名>, 'yyyy年MM月dd日')}
または
#{#format(data['XX'], 'yyyy年MM月dd日')}
2012年11月10日
データ項目(ユーザ型) #{#<フィールド名>}
または
#{data['XX']}
佐藤 太郎 <taro.sato@example.com>
#{#<フィールド名>?.name}
#{#<フィールド名>?.getName()}
または
#{data['XX']?.name}
#{data['XX']?.getName()}
佐藤 太郎
#{#<フィールド名>?.email}
#{#<フィールド名>?.getEmail()}
または
#{data['XX']?.email}
#{data['XX']?.getEmail()}
taro.sato@example.com
#{#<フィールド名>?.id}
#{#<フィールド名>?.getId()}
または
#{data['XX']?.id}
#{data['XX']?.getId()}
1
データ項目(組織型) #{#<フィールド名>}
または
#{data['XX']}
Sales <Sales@example.com>
#{#<フィールド名>?.name}
#{#<フィールド名>?.getName()}
または
#{data['XX']?.name}
#{data['XX']?.getName()}
Sales
#{#<フィールド名>?.email}
#{#<フィールド名>?.getEmail()}
または
#{data['XX']?.email}
#{data['XX']?.getEmail()}
Sales@example.com
#{#<フィールド名>?.id}
#{#<フィールド名>?.getId()}
または
#{data['XX']?.id}
#{data['XX']?.getId()}
3
データ項目(テーブル型) #{#<フィールド名>}
または
#{data['XX']}
2 row(s)
テーブル型のデータ項目に登録したデータ行数のみを取得します。
#{#<フィールド名>?.get(2, 0)}
または
#{data['XX']?.get(2, 0)}
ノートパソコン
3行目の1番目のカラムの値を取得します。
行番号およびカラム番号は0から始まります。
#{#<フィールド名>?.getSummary()?.getCol(3)}
または
#{data['XX']?.getSummary()?.getCol(3)}
453000
4番目のカラムのサマリー行の値を取得します。
カラム番号は0から始まります。
データ項目(ファイル型) #{#<フィールド名>}
または
#{data['XX']}
sample.jpg, output.csv
ファイル名を取得します。
      複数のファイルを指定している場合は、「,」で区切って出力します。
データ項目(選択型) #{#<フィールド名>}
または
#{data['XX']}
Japan, United States of America
選択した値の表示ラベルを取得します。
      複数の選択項目を指定している場合は、「,」で区切って出力します。
#{#<フィールド名>?.get(1)?.value}
または
#{data['XX']?.get(1)?.value}
USA
指定の選択番号(選択している選択肢の順番)の選択肢IDを取得します。
最初の選択肢は、選択番号が0から始まります。
#{#<フィールド名>?.get(1)?.getDisplay()}
または
#{data['XX']?.get(1)?.getDisplay()}
United States of America
指定の選択番号(選択している選択肢の順番)の表示ラベルを取得します。
最初の選択肢は、選択番号が0から始まります。
#{#<フィールド名>?.![display]}
または
#{data['XX']?.![display]}
Japan, United States of America
選択している選択肢すべての表示ラベルを取得します。
データ項目(掲示板型) #{#<フィールド名>}
または
#{data['XX']}
------- [2020-03-10 15:42] <佐藤 太郎>
Hello World!
掲示板に投稿した内容を取得します。
文字型(単一行)に設定するとエラーになります。
      文字型(複数行)に設定してください。
その他
関数
#{#escapeEcmaScript(#<フィールド名>)}
または
#{#escapeEcmaScript(data['XX'])}
JavaScriptエスケープされた文字列を取得します。
#{#escapeXml(#<フィールド名>)}
または
#{#escapeXml(data['XX'])}
XMLエスケープされた文字列を取得します。
#{#sha256(processInstanceTitle)} 指定文字列から、256ビットのハッシュ値を生成します。
#{#randomString(12)} pJBAzTDft8wT
指定文字数のランダムな英数文字列を生成します。
#{
    #join(
      #q_table1?.rows?.![
        #join(cols, ' | ')
      ], #NL)
}
商品A | 10 | 300
商品B | 20 | 600
テーブル型データ項目の各カラムを「 | 」で連結(#join)し、各行を改行(#NL)します。
上記の「<フィールド名>」部分は、データ項目の「q_」で始まる[フィールド名]です。
       フィールド名に関する詳細は、
「データ項目」を参照してください。
上記の「XX」部分はデータ項目番号と呼ばれ、アプリ作成時にデータ項目を定義した順番に依存します。
       データ項目番号に関する詳細は、「データ項目」を参照してください。
単一行の文字型に、複数行のデータを代入した場合はエラーとなります。
値や書式を何も指定しない場合、空文字が代入されます(値が消去されます)。

演算式(EL式)の例: 数値型

値の内容 書式 処理結果
固定値 123.45 123.45
データ項目(数値型) #q_numeric9
または
data['9']
12345.67
#q_numeric8
または
data['8']
1.1
#q_numeric9 + #q_numeric8
または
data['9'] + data['8']
12346.77
( #q_numeric9 + #q_numeric8 ) * 1.05 / 12
または
( data['9'] + data['8'] ) * 1.05 / 12
1080.34
データ項目(テーブル型内の数値型の集計値) #q_numeric7.summary['3']
または
data['7'].summary['3']
567.89
#q_numeric7.summary['3'] * 0.05 + 0.005
または
data['7'].summary['3'] * 0.05 + 0.005
28.39
演算結果は代入先の有効数字設定にあわせて切り捨てられます。
代入するデータ項目に設定している[桁区切り文字]と異なる場合はエラーとなります。
値や書式を何も指定しない場合、空が代入されます(値が消去されます)。

演算式(EL式)の例: 日付型/日時型

値の内容 書式 処理結果
固定値 2012-01-01 01:23 2012-01-01 01:23
プロセス開始日時 processInstanceStartDatetime 2012-03-14 23:45
processInstanceStartDatetime.addMinutes(10) 2012-03-14 23:55
プロセス開始日時から10分後を取得します。
processInstanceStartDatetime.addHours(2) 2012-03-15 01:45
プロセス開始日時から2時間後を取得します。
processInstanceStartDatetime.addDays(3) 2012-03-17 23:45
プロセス開始日時から3日後を取得します。
processInstanceStartDatetime.addMonths(-4) 2011-11-14 23:45
プロセス開始日時から4カ月前を取得します。
processInstanceStartDatetime.addMonths(1).getFirstTimeInMonth() 2012-04-01 00:00
プロセス開始日時から1カ月後の、月の最初の日時を取得します。
processInstanceStartDatetime.addMonths(1).getLastTimeInMonth() 2012-04-30 23:59
プロセス開始日時から1カ月後の、月の最後の日時を取得します。
processInstanceStartDatetime.addDays(1).getFirstTimeInDate().addHours(9) 2012-03-15 09:00
プロセス開始日時から1日後の、日の最初の時刻から9時間後を取得します。
今日 #today 2012-03-14
#today.addMonths(1) 2012-04-14
今日から1カ月後の日付を取得します。
#now 2012-03-14 23:45
#now.addDays(-7) 2012-03-07 23:45
今から7日前の日時を取得します。
#now.addDays(1).getFirstTimeInDate().addHours(9) 2012-03-15 09:00
今から1日後の、日の最初の時刻から9時間後を取得します。
データ項目(日付型/日時型) #q_datetime9
または
data['9']
2012-04-01 09:00
[フィールド名]が「#q_datetime9」の、日時型データ項目の値を取得します。
データ項目番号「9」の、日時型データ項目の値を取得します。
#q_datetime9.addHours(9)
または
data['9'].addHours(9)
2012-04-01 18:00
[フィールド名]が「#q_datetime9」の、日時型データ項目の値から9時間後の値を取得します。
データ項目番号「9」の、日時型データ項目の値から9時間後の値を取得します。
日時型と日付型の相互変換(代入)ができます。代入の際には、元のデータに不足している情報には「2000-01-01 00:00」が補完されます。
      例) 日付型(月日): 「03-14」 → 日時型: 「2000-03-14 00:00」
値や書式を何も指定しない場合、空が代入されます(値が消去されます)。

演算式(EL式)の例: 選択型

値の内容 書式 処理結果
選択肢ID ja 選択肢IDが「ja」の選択肢の表示ラベル
指定できる選択肢IDは1つのみとなります。
チェックボックスの複数指定には対応していません。

操作メニュー説明

表示
(HTML5版)
表示
(Flash版)
操作メニュー 説明
[ヘルプ]アイコン
[ヘルプ]ボタン
このマニュアルページを表示します。
[適用して閉じる]ボタン
[閉じる]ボタン
設定した値を適用して、サービスタスク(データ設定)のプロパティ設定ダイアログを閉じます。
- [適用する]ボタン 設定した値を適用します。
- [キャンセル]ボタン 設定した値を適用せずに、サービスタスク(データ設定)のプロパティ設定ダイアログを閉じます。
[編集]アイコン
[追加]ボタン
データ項目へのデータ設定を追加します。
[削除]アイコン
[削除]ボタン
指定のデータ設定を削除します。


または

[参照を挿入する...]アイコン
[データの参照を挿入する...]リストボックス
定義したプロパティに、プロセス情報や変数の参照を挿入します。
  • [件名]: #{processInstanceTitle}
  • [プロセスID]: #{processInstanceId}
  • [プロセス開始ユーザ]: #{processInstanceInitQuserName}
  • [プロセス開始組織]: #{processInstanceInitQgroupName}
  • [プロセス開始日時]: #{processInstanceStartDatetime}
  • [プロセス連番]: #{processInstanceSequenceNumber}
  • [アプリID]: #{processModelInfoId}
  • [アプリ名]: #{processModelInfoName}
  • [<データ項目>]: #{#<データ項目の[フィールド名]>}
  • [アプリ変数]: ${var[<変数名>]}
  • [システム変数]: ${var[applicationRoot]}
アプリ変数に関する詳細は、「変数設定(アプリ変数)」を参照してください。
システム変数に関する詳細は、「設定ファイル(qbpms.config)」を参照してください。

仕様制限