プロセス図 |
プロセス図の作成を行います。 スイムレーンや各アイテムを配置し、フローを作成して、作業の順序を定義します。 |
---|---|
ヒューマンタスク |
プロセスにおいて、処理担当者が作業する手動工程を表します。 プロセス実行時に、データを入力するフォーム(タスク処理画面)が表示されます。 |
サービスタスク (データ設定) |
プロセスにおいて、システムが処理する自動工程を表します。 数値型、日付型/日時型、文字型、選択型プロセスデータ項目に、動的な値や演算結果を代入します。 |
サービスタスク (PDF生成) |
プロセスにおいて、システムが処理する自動工程を表します。 業務データ(各プロセスデータ項目に保持されている値)を埋め込んだPDF帳票を生成します。 |
サービスタスク (選択肢マスタ更新) |
プロセスにおいて、システムが処理する自動工程を表します。 指定の選択型プロセスデータ項目の内容を、共有プロセスモデルファイルの[選択型プロセスデータで使用する選択肢マスタ]として更新します。 |
スクリプトタスク |
プロセスにおいて、システムが処理する自動工程を表します。 ECMAスクリプトを使用して、業務データ(各プロセスデータ項目に保持されている値)を編集します。 |
タイマー開始イベント |
プロセスにおいて、システムが処理する自動工程を表します。 設定した日時にプロセスを自動的に開始します。 |
タイマー中間イベント |
プロセスにおいて、システムが処理する自動工程を表します。 指定した日時まで待機し、指定日時を経過するとトークンが進みます。 |
メッセージ開始・ 受信中間イベント(HTTP) |
プロセスにおいて、システムが処理する自動工程を表します。 メッセージ開始イベント(HTTP): 外部システムまたはDataSpider BPMの他のプロセスから受け取ったメッセージをもとにプロセスを開始します。 メッセージ受信中間イベント(HTTP): プロセスの実行途中で、外部システムまたはDataSpider BPMの他のプロセスから受け取ったメッセージをもとにプロセスデータを入力できます。 |
メッセージ開始イベント (フォーム) |
プロセスにおいて、システムが処理する自動工程を表します。 Webページの入力フォームから受け取ったメッセージをもとにプロセスを開始します。 入力フォームは、プロセスデータ項目のレイアウトをWebページに埋め込んで使用します。 |
メッセージ送信中間イベント (HTTP) |
プロセスにおいて、システムが処理する自動工程を表します。 指定したURLに、HTTPリクエストを送信します。 外部システムまたはDataSpider BPMの他のプロセスへのデータ送信が可能となります。 |
メッセージ送信中間イベント (メール) |
プロセスにおいて、システムが処理する自動工程を表します。 設定した内容でメールを送信します。 送信先は任意に設定できます。 メール本文に、プロセスデータの入力内容を埋め込むことができます。 |
メッセージ送信中間イベント (DataSpider Servista) |
プロセスにおいて、システムが処理する自動工程を表します。 指定したDataSpider Servistaのスクリプトを実行することができます。 イベントの実行時には、DataSpider BPM側のプロセスデータ項目の値を、DataSpider Servista側で定義されている入力変数へ渡すことができます。 スクリプト終了時には、DataSpider Servista側で定義されている出力変数の値を、DataSpider BPM側のプロセスデータ項目の値として受け取ることができます。 スクリプトの実行結果(結果の戻り値:ExitStatusおよびエラー内容)を受け取り、その後のタスクや条件分岐処理等で使用することができます。 |
分岐 | プロセス図に分岐がある場合、分岐・遷移先の設定を行います。 |
項目名 | 必須 | 説明 | |
---|---|---|---|
基本 | 名称 | 任意 | タスクの名称を入力します。 |
メモ | 任意 | タスクの注意点や目的などに関するメモを入力します。 | |
スクリプト | 必須データ項目の 値をクリアすることを 許可する |
任意 | チェックを入れた場合、[必須]として設定したプロセスデータ項目に保持されている値を空(未入力)の状態にすることができます。 |
スクリプト 入力フィールド |
必須 | スクリプトを記述する入力フィールドです。 |
表示 | 操作メニュー | 説明 | |
---|---|---|---|
基本 | ![]() |
[閉じる]ボタン | タスクのプロパティダイアログを閉じます。 |
スクリプト | ![]() |
[マニュアル表示]ボタン | このマニュアルページを表示します。 |
クラス | 型 | メソッド | メソッド説明 |
---|---|---|---|
com.questetra.bpms.core.select.Item (選択型プロセスデータで使用) |
String | getValue() | 選択肢IDを取得します。 |
String | getDisplay() | 表示ラベルを取得します。 | |
com.questetra.bpms.util.AddableDate (日付型プロセスデータで使用) |
AddableDate | addDays(int days) | 指定した日数を加えたDateを返します。 |
AddableDate | addMonths(int months) | 指定した月数を加えたDateを返します。 | |
AddableDate | getFirstDateInMonth() |
その月の最初の日を返します。 1日 |
|
AddableDate | getFirstTimeInMonth() | 非推奨 | |
AddableDate | getLastDateInMonth() |
その月の最後の日を返します。 翌月1日の1日前 |
|
AddableDate | getLastTimeInMonth() | 非推奨 | |
com.questetra.bpms.util.AddableTimestamp (日時型プロセスデータで使用) |
AddableTimestamp | addHours(int hours) | 指定した時間を加えたTimestampを返します。 |
AddableTimestamp | addDays(int days) | 指定した日数を加えたTimestampを返します。 | |
AddableTimestamp | addMonths(int months) | 指定した月数を加えたTimestampを返します。 | |
AddableTimestamp | getFirstTimeInDate() | その日の最初の時刻を返します。 | |
AddableTimestamp | getFirstTimeInMonth() |
その月の最初の時刻を返します。 1日の0時0分0秒0ミリ秒 |
|
AddableTimestamp | getLastTimeInMonth() |
その月の最後の時刻を返します。 翌月1日の1ミリ秒前 |
|
String | toString() | 「yyyy-MM-dd HH:mm」形式の文字を返します。 | |
com.questetra.bpms.core.event.scripttask.ProcessInstanceView (プロセス属性) |
Long | getProcessModelInfoId() | プロセスモデル番号を取得します。 |
String | getProcessModelInfoName() | プロセスモデルの名称を取得します。 | |
String | getProcessModelInfoCategory() | プロセスモデルのカテゴリを取得します。 | |
Long | getProcessModelVersion() | プロセスが開始されたときのプロセスモデルのバージョンを取得します。 | |
Long | getProcessInstanceId() | プロセスIDを取得します。 | |
String | getProcessInstanceTitle() | プロセスの件名を取得します。 | |
Long | getProcessInstanceInitQuserId() | プロセス開始ユーザのIDを取得します。 | |
String | getProcessInstanceInitQuserName() | プロセス開始ユーザの名称を取得します。 | |
Long | getProcessInstanceInitQgroupId() | プロセス開始組織のIDを取得します。 | |
String | getProcessInstanceInitQgroupName() | プロセス開始組織の名称を取得します。 | |
AddableTimestamp | getProcessInstanceStartDatetime() | プロセス開始日時を取得します。 | |
Long | getProcessInstanceSequenceNumber() | プロセス連番を取得します。 | |
void | setProcessInstanceTitle(String title) | プロセスの件名を設定します。 | |
com.questetra.bpms.core.event.scripttask.QuserView (ユーザ型プロセスデータで使用) |
Long | getId() | ユーザIDを取得します。 |
String | getName() | ユーザ名を取得します。 | |
String | getEmail() | ユーザのメールアドレスを取得します。 | |
com.questetra.bpms.core.event.scripttask.QgroupView (組織型プロセスデータで使用) |
Long | getId() | 組織IDを取得します。 |
String | getName() | 組織名を取得します。 | |
String | getEmail() | 組織のメールアドレスを取得します。 | |
com.questetra.bpms.core.event.scripttask.QroleView (ロール情報) |
Long | getId() | ロールIDを取得します。 |
String | getName() | ロール名を取得します。 | |
com.questetra.bpms.core.event.scripttask.QuserDaoWrapper (ユーザ情報) |
QuserView | findByEmail(String email) | メールアドレスでユーザを検索します。 |
QuserView | findById(Long id) | ユーザIDでユーザを検索します。 | |
List<QuserView> | findByQgroup(QgroupView qgroup) | 指定した組織に所属しているユーザ一覧を検索します。 | |
List<QuserView> | findByQgroupAndPosition(QgoupView qgroup, boolean isLeader) | 指定した組織にリーダまたはスタッフとして所属しているユーザ一覧を検索します。 | |
List<QuserView> | findByQrole(QroleView qrole) | 指定したロールに所属しているユーザ一覧を検索します。 | |
com.questetra.bpms.core.event.scripttask.QgroupDaoWrapper (組織情報) |
QgroupView | findById(Long id) | IDで組織を検索します。 |
QgroupView | findByName(String name) | 名称で組織を検索します。 | |
QgroupView | findParentQgroup(QgroupView qgroup) | 指定した組織の親組織を検索します。 | |
List<QgroupView> | findByQuser(QuserView quser) | 指定したユーザが所属している組織一覧を検索します。 | |
List<QgroupView> | findByQuserAndPosition(QuserView quser, boolean isLeader) | 指定したユーザがリーダまたはスタッフとして所属している組織一覧を検索します。 | |
com.questetra.bpms.core.event.scripttask.QroleDaoWrapper (ロール情報) |
QroleView | findById(Long id) | ロールIDでロールを検索します。 |
QroleView | findByName(String name) | ロール名でロールを検索します。 | |
List<QroleView> | findByQuser(QuserView quser) | ユーザが所属しているロール一覧を検索します。 | |
com.questetra.bpms.core.model.formdata.ListArray (テーブル型プロセスデータで使用) |
String | get(int row_index, int col_index) |
セルデータを取得する - row_index : 行番号 0始まり - col_index : 列番号 0始まり |
ListArray.ListRow | getRow(int row_index) | 指定行を取得します。 | |
List<ListArray.ListRow> | getRows() | 全行を取得します。 | |
int | size() | 行数を取得します。 | |
void | setRows(List<ListArray.ListRow> rows) | 全行を設定します。 | |
void | addRow( ListArray.ListRow row ) | 行を追加します。 | |
ListArray.ListRow | removeRow(int row_index) | 行を削除します。 | |
ListArray.ListRow | getSummary() | サマリ行を取得します。 | |
void | setSummary(ListArray.ListRow summary) | サマリ行に値を設定します。 | |
void | clearSummary(int col_index) | サマリ行の内容を指定列数の空の内容で初期化します。 | |
com.questetra.bpms.core.model.formdata.ListArray.ListRow (テーブル型プロセスデータで使用: 行単位) |
List<String> | getCols() | 全列を取得します。 |
String | getCol(int col_index) | 指定列を取得します。 | |
int | size() | 列数を取得します。 | |
void | setCols(List<String> cell_strings) | 全列を上書きします。 | |
void | addCol(String cell_string) | 列を追加します。 | |
void | setCol(int col_index, String cell_string) | 指定列を上書きします。 | |
com.questetra.bpms.core.event.scripttask.ItemView (選択肢マスタ情報) |
String | getValue() | 選択肢IDを取得します。 |
String | getDisplay() | 表示ラベルを取得します。 | |
com.questetra.bpms.core.event.scripttask.ItemDaoWrapper (選択肢マスタ情報) |
List<ItemView> | findAll(String fileName, boolean isSharedFile) | 指定した選択肢マスタの全選択肢を検索します。 |
ItemView | findByValue(String fileName, boolean isSharedFile, String value) | 指定した選択肢マスタから特定の値(選択肢ID)を持つ選択肢を検索します。 | |
java.lang.String | - | - | - |
java.lang.Long | - | - | - |
java.lang.Math | - | - | - |
java.util.ArrayList | - | - | - |
java.util.HashMap | - | - | - |
java.util.Locale | - | - | - |
java.util.regex.Pattern | - | - | - |
java.util.regex.Matcher | - | - | - |
java.math.BigDecimal | - | - | - |
java.text.SimpleDateFormat | - | - | - |
java.text.DecimalFormat | - | - | - |
java.sql.Date | - | - | - |
java.sql.Timestamp | - | - | - |
文字型 | 文字型プロセスデータ項目に対する値の取得と設定 |
---|---|
数値型 | 数値型プロセスデータ項目に対する値の取得と設定 |
選択型 | 選択型プロセスデータ項目に対する値の取得と設定 |
日付型 | 日付型プロセスデータ項目に対する値の取得と設定 |
日時型 | 日時型プロセスデータ項目に対する値の取得と設定 |
ユーザ型 | ユーザ型プロセスデータ項目に対する値の取得と設定 |
組織型 | 組織型プロセスデータ項目に対する値の取得と設定 |
テーブル型 | テーブル型プロセスデータ項目に対する値の取得と設定 |
[その他] プロセス属性 | 全プロセス共通のプロセス属性に対する値の取得と設定 |
[その他] 部門検索 | 「本部-部-課」という構造をもった組織における、所属する本部の取得と設定 |
[その他] JSON解析 | 文字型(複数行)に保持されているJSON形式の文字列を解析 |
retVal.put("0", "HelloWorld!!"); retVal.put("1", "Hello\nWorld!!");
var newAgenda = data.get("0"); var agendaList = data.get("1"); agendaList += '\n'; agendaList += newAgenda; retVal.put("1", agendaList);
retVal.put("2", new java.math.BigDecimal(123)); retVal.put("3", new java.math.BigDecimal(Math.random()));
var quantity = data.get("4"); var unitPrice = data.get("5"); var price = quantity * unitPrice; retVal.put("6", new java.text.DecimalFormat('#,##0円').format(price));
var selects = new java.util.ArrayList(); selects.add("JP"); selects.add("US"); retVal.put("7", selects);
var text = ""; var selects = data.get("7"); for (var i=0; i < selects.size(); i++){ var select = selects.get(i); text += select.getValue() + ":" + select.getDisplay(); text += '\n'; } retVal.put("8", text);
retVal.put("9", java.sql.Date.valueOf("2015-03-15"));
var text = ""; var requestDate = data.get("9"); var dateFormatter = new java.text.SimpleDateFormat("GGGGyyyy年MM月dd日", new java.util.Locale("ja", "JP", "JP")); text += dateFormatter.format(requestDate); retVal.put("10", text);
retVal.put("11", java.sql.Timestamp.valueOf("2015-03-15 12:34:56"));
var manufactureDate = data.get("11"); retVal.put("12", manufactureDate.addMonths(2));
var repUser = quserDao.findByEmail("Ito@localhost.localdomain"); retVal.put("13", repUser);
var text = ""; var repUser = data.get("13"); var appUser = data.get("14"); text = '担当者: ' + repUser.getName() + '[' + repUser.getEmail() + ']\n'; text += '承認者: ' + appUser.getName() + '[' + appUser.getEmail() + ']'; retVal.put("15", text);
var repGroup = data.get("16"); var appGroup = qgroupDao.findParentQgroup(repGroup); retVal.put("17", appGroup);
var productList = data.get("18"); if (productList == null) { productList = new com.questetra.bpms.core.model.formdata.ListArray(); var row = new com.questetra.bpms.core.model.formdata.ListArray.ListRow(); row.addCol("PRODUCT-01"); row.addCol("10"); row.addCol("1200"); row.addCol("12000"); productList.addRow(row); retVal.put("18", productList); }
var seqNum = processInstance.getProcessInstanceSequenceNumber(); processInstance.setProcessInstanceTitle("第" + seqNum + "回 定例ミーティング開催");
var qGroup = qgroupDao.findById(processInstance.getProcessInstanceInitQgroupId()); var division = findDivision(qGroup); retVal.put("19", division); function findDivision(aGroup){ while (aGroup != null && aGroup.getName().endsWith('本部') == false) { aGroup = qgroupDao.findParentQgroup(aGroup); } return aGroup; }
var jsonText = data.get("20"); var myTasks = JSON.parse(jsonText); var taskList = ""; for (var i in myTasks.workitems){ taskList += '[プロセス]: ' + myTasks.workitems[i].processModelInfoName + ' [タスク]: ' + myTasks.workitems[i].nodeName; taskList += '\n'; } retVal.put("21", taskList);