1Copyright © Questetra,Inc. All right Reserved.
Questetraハンズオンセミナー業務プロセス設計中級編(データ自動更新)
Wifiに接続し、https://seminar-ja.questetra.netに接続できることを確認してください
アジェンダ
1. データの初期値
2. ヒューマンタスクの自動処理
3. サービスタスク(データ設定)
4. サービスタスク (Add-on)の活用
5. スクリプトタスク
ユーザと組織
• https://seminar-ja.questetra.net
• 以下のいずれかのユーザでログインしてください
• 他の人と違うユーザを選択してください
• [email protected]– パスワードは ‘g’が8つ
• [email protected] – パスワードは ‘o’ が8つ
• [email protected]– パスワードは ‘s’が8つ
• [email protected]– パスワードは ‘m’が8つ
• 営業部
– Hawaii
• 営業1課
– Galapagos
– Oahu
• 営業2課
– Solomon
– Midway
全社
開発部 営業部
営業1課
営業2課
管理部
• 全社
– SouthPole
• 管理部
– Sumatera
– Maldives
• 開発部
– Canarias
– SaintHelena
• 以下のプロセス図のプロセスモデルを作成してください。
• データ項目は、ガイドパネル以外、全種類– 文字型複数行/数値型/選択型ラジオ
– 日付型年月日/日時型/ファイル型
– ユーザ型検索セレクト/組織型掲示板型
– テーブル型(テーブル項目は、文字/数値/選択/日付)
• 「入力」工程はすべて「編集可」「確認」工程はすべて「表示のみ」
データの初期値
データの初期値
初期値は、プロセスを開始した時に、データに自動的に設定される値
• 件名/文字– (詳細は後述)
• 数値– プロセスID /プロセスモデルID /任意の数値
• 選択– 選択肢の中から1つ
• 日付/日時– (詳細は後述)
• ファイル– 未対応
• ユーザ– プロセス開始ユーザ
• 組織– プロセス開始組織
• 掲示板– 未対応
• テーブル– 未対応
件名/文字型データの初期値
• 件名/文字型データの初期値では、「参照」を使用可能– プロセスID /プロセス連番など
• 「参照」の部分は、プロセス開始時に実際の値に置換される
• 文字型複数行データの初期値を以下の通りに
• processInstanceSequenceNumberなどの部分が参照
• #{…}は文字出力を意味
関数
• 参照と組み合わせて使用可能な関数がある
• #format()プロセス開始日時など日時データの書式指定http://docs.oracle.com/javase/jp/8/docs/api/java/text/SimpleDateFormat.html
• #sformat()プロセス IDなど数値データも対象にする、より強力な書式指定http://docs.oracle.com/javase/jp/8/docs/api/java/util/Formatter.html
• 件名の初期値を以下の通りに
日付型/日時型データの初期値
• プロセス開始日時を参照可能– 加減算した上で初期値にすることが可能
• addMonths() / addDays() / addHours() / addMinutes()月/日/時間/分単位で加減算
• getFirstTimeInDate() / getFirstTimeInMonth()その日/月の最初の時刻 (0時0分)を返す
• getLastTimeInMonth()その月の最後の時刻 (23時59分)を返す
• 日付型では、時刻など不要な部分は無視される
• 日時型データの初期値を以下の値(翌月1日の10時)にprocessInstanceStartDatetime.addMonths(1).getFirstTimeInMonth().addHours(10)
プロセスを開始してみて、件名/文字型データ/日時型データの初期値が意図通りであることを確認してください
ヒューマンタスクの自動処理
ヒューマンタスクの自動処理
• タスクの処理完了時に、そのタスクの処理記録をデータにコピーすることができる– データとして残しておく
– 後工程で利用する
• 後述するサービスタスク(データ設定)やスクリプトタスクでもこれらの値は取れない
• 「入力」工程のプロパティダイアログで、以下のように
プロセスを動かし、ヒューマンタスクの自動処理が意図通りに動作することを確認してください
サービスタスク(データ設定)
• プロセス図を以下のように変更サービスタスク(データ設定)を追加
• サービスタスク(データ設定)は、プロセスの途中でデータの値を書き換える自動工程– スクリプトタスクも同様のことができるが、遥かに簡単
• 複数のデータの値を同時に書き換えることができる– 1つでもバリデーションエラーの場合、すべての値が元に戻る
サービスタスク(データ設定)
サービスタスク(データ設定)
各データを書き換える値の指定は、データの初期値設定とほぼ同じ
• 件名/文字– 初期値の設定方法と同じ。データも参照することができる。
• 数値– 数式を設定できる。詳細は後述。
• 選択– 選択肢を1つ指定できる。参照を使用することはできない。
• 日付/日時– 初期値の設定方法と同じ。データも参照することができる。
• ファイル– 未対応
• ユーザ– 未対応
• 組織– 未対応
• 掲示板– 未対応
• テーブル– 未対応
サービスタスク(データ設定)の数値型データ
• 四則演算に対応– % (剰余)は未対応
• 有効桁数は、保存先の数値型データの設定に依存– 丸目は常に切り捨て
• 数値型データに対して、以下の値を設定するように(数値型データが番号 1の前提です)
サービスタスク(データ設定)の件名/文字型データ
• データを参照できることを除けば、初期値設定と同じ
• #csv()テーブル型データをCSVで出力する
• #escapeEcmaScript()文字型データを、Javascriptエスケープして出力する
• #escapeXml()文字型データを、XMLエスケープして出力する
• 文字型データに対して、以下の値を設定するように(文字型データが番号 0、テーブル型データが番号 9の前提です)
サービスタスク(データ設定)の日付型/日時型データ
• データを参照できることを除けば、初期値設定と同じ
• #today「今日」を表わす特別な参照
• #now「今」を表わす特別な参照
• 日付型データに対して、以下の値を設定するように
プロセスを動かし、サービスタスク(データ設定)が意図通りに動作することを確認してください
サービスタスク(Add-on)の活用
サービスタスクをアドオン
• 初期状態では、標準に提供されている自動工程しか使用できない
• 設定ファイルを登録することで、使用可能なサービスタスクを追加できる(アドオン)
• クエステトラからも多数提供https://www.questetra.com/ja/tour/m4/m415/
• データの値を書き換える以上のことをするものも多数ある
サービスタスク(Add-on)の追加
• https://www.questetra.com/ja/tour/m4/m415/から「コンバータ (Date to和暦テキスト)」をダウンロード
サービスタスク(Add-on)の追加
• プロセスモデルファイルから、「サービスタスクの定義ファイル」を登録
• プロセス図を以下のように変更
• 和暦コンバータの設定は以下
プロセスを動かし、和暦コンバータが意図通りに動作することを確認してください
スクリプトタスク
• プロセス図を以下のように変更スクリプトタスクを追加
• スクリプトタスクは、サービスタスク(データ設定) と同じく、プロセスの途中でデータの値を書き換える自動工程– Javascript (EcmaScript)でデータの参照/書き換えができる
– HTTP通信など、データを書き換える以上のこともできる
• 設定にスキル(Javascript / Java)を要求し、メンテナンスも容易ではない極力、サービスタスク(データ設定 / Add-on)ですませるのが原則
スクリプトタスク
• スクリプトを以下のように変更(文字型データが番号 0の前提)
• データの値は dataオブジェクトから取得する。
• データの値を上書きする場合、retValオブジェクトに登録する。– 変更しない場合は、何もしなくて良い
• dataオブジェクトから取得、retValオブジェクトに登録する際のキーは、いずれも番号。
• サンプルでは、文字型データの後ろに「こんにちは」と追加している。
スクリプトタスクで文字型データの書き換え
プロセスを動かし、スクリプトが意図通りに動作することを確認してください
参照/上書き時のオブジェクト
データ型によって、参照/上書き時に使用するオブジェクトが異なる。
• 文字– 文字列
• 数値– java.math.BigDecimal
• 選択– 参照は com.questetra.bpms.core.select.Itemのリスト
– 上書きは文字列(選択肢の値)のリスト
• 日付– java.sql.Date
• 日時– java.sql.Timestamp
• ファイル– com.questetra.bpms.core.event.scripttask.QfileView.QfileView のリスト
– 上書き時に新しくファイルを追加する場合は、com.questetra.bpms.core.event.scripttask.NewQfileをリストに含める
• ユーザ– com.questetra.bpms.core.event.scripttask.QuserView.QuserView
• 組織– com.questetra.bpms.core.event.scripttask.QgroupView.QgroupView
• 掲示板– 未対応
• テーブル– com.questetra.bpms.core.model.formdata.ListArray
• スクリプトを以下のように変更(文字型データが番号 0、ファイル型データが番号 5の前提)
• 文字型データの後ろに「こんにちは」と追加しているのは変わらず。
• 文字型データを中身とするテキストファイルをファイル型に添付。– 既にファイルが添付されていても、このファイルだけになる
• 他のデータ型については、以下にある R2301のサンプルを参照http://www.questetra.com/ja/tour/m2/m230/
スクリプトタスクでファイル型データの書き換え
プロセスを動かし、スクリプトが意図通りに動作することを確認してください
まとめ
1. データの初期値– プロセスの開始時に自動的に設定される
2. ヒューマンタスクの自動処理– タスクの処理完了時に、処理ユーザ等をデータにコピー
3. サービスタスク(データ設定)– ほぼデータの初期値の設定と同じで簡単
4. サービスタスク (Add-on)の活用– 自動工程を追加(アドオン)することができる
– クエステトラからも、多数のデータを変更するアドオンが提供
5. スクリプトタスク– Javascriptでデータの参照/書き換えができる
– メンテナンスも大変なので、サービスタスク (データ設定 / Add-on)ですませるのが基本