現在、ベータ(Beta)機能として提供しています。
ベータ(Beta)機能に関する注意点は、「このマニュアルについて」-「ベータ(Beta)機能について」を参照してください。
アプリ管理権限を持つユーザが対象です。
ECMAスクリプトおよびJavaの使用経験者を対象としています。| ワークフロー図 |
ワークフロー図の作成を行います。 スイムレーンや各ノードを配置し、フローを作成して、作業の順序を定義します。 |
|---|---|
| ヒューマンタスク |
プロセスにおいて、処理担当者が作業する手動工程を表します。 プロセス実行時に、データを入力するフォーム(タスク処理画面)が表示されます。 |
| データ更新 |
プロセスにおいて、システムが処理する自動工程を表します。 数値型、日付型/日時型、文字型、選択型データ項目に、動的な値や演算結果を代入します。 |
| PDF ファイル生成 |
プロセスにおいて、システムが処理する自動工程を表します。 業務データ(各データ項目に保持されている値)を埋め込んだPDF帳票を生成します。 |
| 選択肢マスタ更新 |
プロセスにおいて、システムが処理する自動工程を表します。 指定の選択型データ項目の内容を、アプリ共有アドオンまたはアドオンの[選択型データ項目で使用する選択肢マスタ]として更新します。 |
| スクリプトタスク |
プロセスにおいて、システムが処理する自動工程を表します。 ECMAスクリプトを使用して、業務データ(各データ項目に保持されている値)を編集します。 |
| 受信タスク (フォーム) |
プロセスにおいて、システムが処理する自動工程を表します。 アカウントを持たないユーザに対して、プロセスの途中での入力フォームを提供します。 メッセージ開始イベント(フォーム)を使用してユーザにWeb入力フォームを提供したあとに、メールによる本人確認を経て、詳細情報を入力するようなWeb入力フォームを表示します。 |
| 受信タスク (Webhook) |
プロセスにおいて、システムが処理する自動工程を表します。 外部サービス側のWebhook通知の受信まで待機し、受信後にトークンが進みます。 |
| サービスタスク (アドオン) |
プロセスにおいて、システムが処理する自動工程を表します。 ユーザ独自定義の自動処理タスクを実行します。 |
| タイマー開始イベント |
プロセスにおいて、システムが処理する自動工程を表します。 設定した日時にプロセスを自動的に開始します。 |
| タイマー中間イベント |
プロセスにおいて、システムが処理する自動工程を表します。 指定した日時まで待機し、指定日時を経過するとトークンが進みます。 |
| メッセージ開始・ 受信中間イベント(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およびエラー内容)を受け取り、その後のタスクや条件分岐処理等で使用することができます。 |
| 分岐 | ワークフロー図に分岐がある場合、分岐・遷移先の設定を行います。 |
| 項目名 | 必須 | 説明 |
|---|---|---|
| 工程名 | 任意 | タスクの名称を入力します。 |
| メモ | 任意 | タスクの注意点や目的などに関するメモを入力します。 |
| 処理失敗時に、 トークンをエラー境界イベントに移動 |
任意 |
処理が失敗した際のフローを定義したい場合は、有効にします。 有効にした場合は、タスクの下部にエラー境界イベントが表示されます。
|
| 必須データ項目の 値をクリアすることを 許可する |
任意 | チェックを入れた場合、[必須]として設定したデータ項目に保持されている値を空(未入力)の状態にすることができます。 |
| スクリプトエンジン | 必須 |
スクリプトの実行エンジン(JavaScriptエンジン)を選択します。
DataSpider BPM 2.6.1では、「GraalJS」のみとなります。
|
| スクリプト | 必須 | スクリプトを記述する入力フィールドです。 |
| 表示 | 操作メニュー | 説明 |
|---|---|---|
| [ヘルプ]アイコン | このマニュアルページを表示します。 | |
| [プロセスログ]アイコン | この工程に関するプロセスログを表示します。 | |
![]() |
[この工程のみデバッグ]ボタン |
以下のワークフローが自動で作成され、この工程のみのデバッグプロセスを開始します。
「デバッグ対象工程」の実行に必要なテストデータを入力するための、[テストデータを入力]という工程名が付いた「ヒューマンタスク」が用意されます。
|
![]() |
[適用して閉じる]ボタン | 設定した値を適用して、スクリプトタスクのプロパティ設定ダイアログを閉じます。 |
![]() |
[適用する]ボタン | 設定した値を適用します。 |
![]() |
[キャンセル]ボタン | 設定した値を適用せずに、スクリプトタスクのプロパティ設定ダイアログを閉じます。 |
エラー発生時には、コントロール権限を持つユーザに対して通知メールが送信されます。
30秒以上の処理時間になる可能性がある場合は、複数の「スクリプトタスク」に処理を分割してください。
処理時間は、DataSpider BPMサーバの負荷状況により変動します。
送信先の数や添付ファイルサイズの制限は、「メッセージ送信中間イベント(メール)」と同じ制限が適用されます。
ECMAスクリプト(ECMA-262)に関する詳細は、「Standard ECMA-262 ECMAScript(R) Language Specification」
以下に記載されているJavaクラス以外は使用することができません。| クラス | 型 | メソッド | メソッド説明 |
|---|---|---|---|
|
com.questetra.bpms.core.event.scripttask.WorkflowEngine (ワークフロー情報) 参照名: engine で参照します。
|
String | getTimeZoneId() | システムのタイムゾーンIDを取得します。 |
| int | getTimeZoneOffsetInMinutes() | システムのタイムゾーンのオフセット時間を分単位で取得します。 | |
| void | log(String message) |
デバッグを目的とした、処理ログを出力します。 出力した内容は、プロセス詳細画面の[処理記録]にて、[自動処理ログ]ボタン押下で確認することができます。
|
|
| List<ProcessDataDefinitionView> | findDataDefinitions() | データ項目の一覧を取得します。 | |
| ProcessDataDefinitionView | findDataDefinitionByName(String name) |
データ項目を名前で検索します。 同じ名前のデータ項目が複数存在する場合は、最初のデータ項目を返します。 |
|
| ProcessDataDefinitionView | findDataDefinitionByNumber(String dataDefNum) | データ項目をデータ項目番号で検索します。 | |
| ProcessDataDefinitionView | findDataDefinitionByNumber(Long dataDefNum) | データ項目をデータ項目番号で検索します。 | |
| ProcessDataDefinitionView | findDataDefinitionByVarName(String fieldName) | データ項目をフィールド名で検索します。 | |
| Object | findDataByNumber(String number) | データ項目番号でデータ項目の値を取得します。 | |
| Object または List<Object> |
findDataByVarName(String fieldName) | フィールド名でデータ項目の値を取得します。 | |
| Object または List<Object> |
findDataByName(String name) | データ項目名でデータ項目の値を取得します。 | |
| Object または List<Object> |
findDataByNumber(String dataDefNum) | データ項目番号でデータ項目の値を取得します。 | |
| Object または List<Object> |
findDataByNumber(Long dataDefNum) | データ項目番号でデータ項目の値を取得します。 | |
| Object または List<Object> |
findData(ProcessDataDefinitionView pocket) |
データ定義オブジェクトで指定されたデータ項目に格納されているオブジェクトを取得します。
|
|
| void | setDataByVarName(String fieldName, Object value) | フィールド名でデータ項目の値を設定します。 | |
| void | setDataByName(String name, Object value) | データ項目名でデータ項目の値を設定します。 | |
| void | setDataByNumber(String dataDefNum, Object value) | データ項目番号でデータ項目の値を設定します。 | |
| void | setDataByNumber(Long dataDefNum, Object value) | データ項目番号でデータ項目の値を設定します。 | |
| void | setData(ProcessDataDefinitionView pocket, Object value) | データ定義オブジェクトで指定されたデータ項目に値(データオブジェクト)を設定します。 | |
|
com.questetra.bpms.core.event.scripttask.ProcessDataDefinitionView (データ項目情報) |
String | getName() | データ項目名を取得します。 |
| long | getNumber() | データ項目番号を取得します。 | |
| String | getVarName() | フィールド名を取得します。 | |
| List<SubDataDefinitionView> | getSubDataDefinitions() | テーブル型の場合にて、テーブル内データ項目の一覧を取得します。 | |
| ScriptListArray | createListArray() | テーブル型の場合に、空のテーブル(空のScriptListArrayオブジェクト)を生成します。 | |
| boolean | matchDataType(String dataType) |
データ型を調べます。 dataTypeには以下の値を指定します。
|
|
|
com.questetra.bpms.core.event.scripttask.SubDataDefinitionView (テーブル内データ項目情報) |
String | getName() | テーブル内データ項目名を取得します。 |
| String | getVarName() | テーブル内データ項目のフィールド名を取得します。 | |
| long | getNumber() | テーブル内データ項目番号を取得します。 | |
| boolean | matchDataType(String dataType) |
テーブル内データ項目のデータ型を調べます。 dataTypeには以下の値を指定します。
|
|
|
com.questetra.bpms.core.event.scripttask.ProcessInstanceView (プロセス属性情報) 参照名: processInstance で参照します。
|
Long | getProcessModelInfoId() | アプリ番号を取得します。 |
| String | getProcessModelInfoName() | アプリの名称を取得します。 | |
| String | getProcessModelInfoCategory() | アプリのカテゴリを取得します。 | |
| Long | getProcessModelVersion() | プロセスが開始されたときのアプリのバージョンを取得します。 | |
| Long | getProcessInstanceId() | プロセスIDを取得します。 | |
| Long | getParentProcessInstanceId() | 親プロセスのプロセスIDを取得します。 | |
| String | getProcessInstanceState() |
プロセスの状態を取得します。
|
|
| String | getProcessInstanceTitle() | プロセスの件名を取得します。 | |
| QuserView | getProcessInstanceInitQuser() | プロセス開始ユーザを取得します。 | |
| Long | getProcessInstanceInitQuserId() | プロセス開始ユーザのIDを取得します。 | |
| String | getProcessInstanceInitQuserName() | プロセス開始ユーザの名称を取得します。 | |
| QgroupView | getProcessInstanceInitQgroup() | プロセス開始組織を取得します。 | |
| Long | getProcessInstanceInitQgroupId() | プロセス開始組織のIDを取得します。 | |
| String | getProcessInstanceInitQgroupName() | プロセス開始組織の名称を取得します。 | |
| AddableTimestamp | getProcessInstanceStartDatetime() | プロセス開始日時を取得します。 | |
| Long | getProcessInstanceSequenceNumber() | プロセス連番を取得します。 | |
| void | setProcessInstanceTitle(String title) | プロセスの件名を設定します。 | |
| boolean | getProcessInstanceDebug() | デバッグプロセスかどうかを取得します。 | |
|
com.questetra.bpms.core.event.scripttask.ItemView (選択肢マスタの選択肢情報) |
String | getValue() | 選択肢IDを取得します。 |
| String | getDisplay() | 表示ラベルを取得します。 | |
|
com.questetra.bpms.core.event.scripttask.ItemDaoWrapper (選択肢マスタ情報) 参照名: itemDao で参照します。
|
List<ItemView> | findAll(String fileName, boolean isSharedFile) | 選択肢マスタの全選択肢を取得します。 |
| List<ItemView> | findAll(ProcessDataDefinitionView dataDef) |
選択肢マスタの全選択肢を取得します。 選択肢種別が「HTTP 経由で取得した選択肢」の場合はエラーとなります。
|
|
| ItemView | findByValue(String fileName, boolean isSharedFile, String value) | 選択肢マスタから特定の値(選択肢ID)を持つ選択肢を取得します。 | |
| ItemView | findByValue(ProcessDataDefinitionView dataDef, String value) |
選択肢マスタから特定の値(選択肢ID)を持つ選択肢を取得します。 選択肢種別が「HTTP 経由で取得した選択肢」の場合はエラーとなります。
|
|
|
com.questetra.bpms.util.AddableDate (日付情報) |
AddableDate | AddableDate() | 呼び出された時のDateを取得します。 |
| AddableDate | AddableDate(long time) | 1970-01-01 00:00:00 UTCからのミリ秒数(time)で指定されたDateを取得します。 | |
| long | getTime() | 1970-01-01 00:00:00 UTCからのミリ秒数を取得します。 | |
| AddableDate | addDays(int days) | 指定した日数を加えたDateを取得します。 | |
| AddableDate | addMonths(int months) | 指定した月数を加えたDateを取得します。 | |
| AddableDate | getFirstDateInMonth() |
その月の最初の日を取得します。 1日 |
|
| AddableDate | getFirstTimeInMonth() | その月の最初の時刻を取得します | |
| AddableDate | getLastDateInMonth() |
その月の最後の日を取得します。 翌月1日の1日前 |
|
| AddableDate | getLastTimeInMonth() | その月の最後の時刻を取得します。 | |
| AddableTimestamp | getFirstTimeInDate() | その日の最初の時刻を取得します。 | |
| String | toString() |
日付のサブタイプに応じた形式の文字列を取得します。
|
|
|
com.questetra.bpms.util.AddableTimestamp (日時情報) |
AddableTimestamp | AddableTimestamp() | 呼び出された時のTimestampを取得します。 |
| AddableTimestamp | AddableTimestamp(long time) | 1970-01-01 00:00:00 UTCからのミリ秒数(time)で指定されたTimestampを取得します。 | |
| long | getTime() | 1970-01-01 00:00:00 UTCからのミリ秒数を取得します。 | |
| AddableTimestamp | addMinutes(int minutes) | 指定した分を加えたTimestampを取得します。 | |
| 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.QuserView (ユーザ情報) |
Long | getId() | ユーザIDを取得します。 |
| String | getName() | ユーザ名を取得します。 | |
| String | getEmail() | ユーザのメールアドレスを取得します。 | |
| boolean | isDeletedInFuture() | 削除予定かどうかを取得します。 | |
|
com.questetra.bpms.core.event.scripttask.QuserDaoWrapper (ユーザマスタ情報) 参照名: quserDao で参照します。
|
QuserView | findByEmail(String email) | メールアドレスでユーザを取得します。 |
| QuserView | findById(Long id) | ユーザIDでユーザを取得します。 | |
| List<QuserView> | findByQgroup(QgroupView qgroup) | 組織に所属しているユーザ一覧を取得します。 | |
| List<QuserView> | findByQgroupAndPosition(QgoupView qgroup, boolean isLeader) | 組織にリーダ(true)またはスタッフ(false)として所属しているユーザ一覧を取得します。 | |
| List<QuserView> | findByQrole(QroleView qrole) | ロールに所属しているユーザ一覧を取得します。 | |
|
com.questetra.bpms.core.event.scripttask.QgroupView (組織情報) |
Long | getId() | 組織IDを取得します。 |
| String | getName() | 組織名を取得します。 | |
| String | getEmail() | 組織のメールアドレスを取得します。 | |
| boolean | isDeletedInFuture() | 削除予定かどうかを取得します。 | |
|
com.questetra.bpms.core.event.scripttask.QgroupDaoWrapper (組織マスタ情報) 参照名: qgroupDao で参照します。
|
QgroupView | findById(Long id) | IDで組織を取得します。 |
| QgroupView | findByName(String name) | 名称で組織を取得します。 | |
| QgroupView | findParentQgroup(QgroupView qgroup) | 組織の親組織を取得します。 | |
| QgroupView | findPrimaryQgroup(QuserView quser) | ユーザの主として所属する組織を取得します。 | |
| List<QgroupView> | findByQuser(QuserView quser) | ユーザが所属している組織一覧を取得します。 | |
| List<QgroupView> | findByQuserAndPosition(QuserView quser, boolean isLeader) | ユーザがリーダ(true)またはスタッフ(false)として所属している組織一覧を取得します。 | |
|
com.questetra.bpms.core.event.scripttask.QroleView (ロール情報) |
Long | getId() | ロールIDを取得します。 |
| String | getName() | ロール名を取得します。 | |
| boolean | isDeletedInFuture() | 削除予定かどうかを取得します。 | |
|
com.questetra.bpms.core.event.scripttask.QroleDaoWrapper (ロールマスタ情報) 参照名: qroleDao で参照します。
|
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) |
セルデータを取得します。
|
| 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) | サマリ行の内容を指定列数の空の内容で初期化します。 | |
| String | toXmlString() | XML文字列でテーブルを取得します。 | |
|
com.questetra.bpms.core.event.scripttask.ScriptListArray (テーブル情報) |
String | get(int row_index, int col_index) |
セルデータを取得します。
|
| Object | getObject(int row_index, int col_index) |
セルデータのオブジェクトを取得します。
|
|
| Object | getObject(int row_index, String varName) |
セルデータのオブジェクトを取得します。
|
|
| ScriptListArray.ScriptListRow | getRow(int row_index) | 指定行を取得します。 | |
| List<ScriptListArray.ScriptListRow> | getRows() | 全行を取得します。 | |
| int | size() | 行数を取得します。 | |
| ScriptListArray.ScriptListRow | addRow() | 空の行を追加します。 | |
| void | setRows(List<ListArray.ListRow> rows) | 全行を設定します。 | |
| void | addRow( ListArray.ListRow row ) | 行を追加します。 | |
| ScriptListArray.ScriptListRow | removeRow(int row_index) | 行を削除します。 | |
| ScriptListArray.ScriptListRow | getSummary() | サマリ行を取得します。 | |
| void | setSummary(ListArray.ListRow summary) | サマリ行に値を設定します。 | |
| void | clearSummary(int col_index) | サマリ行の内容を指定列数の空の内容で初期化します。 | |
| String | toXmlString() | XML文字列でテーブルを取得します。 | |
|
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.ScriptListArray.ScriptListRow (テーブル情報: 行単位) |
String | get(String field_name) | フィールド名で指定した列を取得します。 |
| String | getCol(int col_index) | 指定列を取得します。 | |
| List<String> | getCols() | 全列を取得します。 | |
| Object | getObject(int col_index) |
指定列のオブジェクトを取得します。
|
|
| Object | String field_name | フィールド名で指定したオブジェクトを取得します。 | |
| int | size() | 列数を取得します。 | |
| void | setCols(List<String> cell_strings) | 全列を上書きします。 | |
| void | addCol(String cell_string) | 列を追加します。 | |
| String | put(String field_name, String cell_string) |
フィールド名で指定した列を上書きし、元の値を取得します。 cell_stringの書式は以下のとおりです。
|
|
| void | setCol(int col_index, String cell_string) | 指定列を上書きします。 | |
|
com.questetra.bpms.core.event.scripttask.QfileView (ファイル情報) |
String | getName() | ファイル名を取得します。 |
| Long | getLength() | ファイルサイズを取得します。 | |
| String | getContentType() | ファイルのContent-Typeを取得します。 | |
| String | getCharset() | getContentType()で取得される値のうち、charsetの値のみを取得します。 | |
|
com.questetra.bpms.core.event.scripttask.NewQfile (新規ファイル情報) |
(NewQfile) | NewQfile(String fileName, String contentType, String text) |
テキストデータから文字コード変換した上でファイルを新規に作成します。 ファイル型データ項目やオープンチャットへ格納する場合のファイルのサイズは、100MB以下にしてください。
|
| (NewQfile) | NewQfile(String fileName, String contentType, String charset, String text) |
Content-Type、文字コード(charset)を指定して、テキストデータからファイルを新規に作成します。 ファイル型データ項目やオープンチャットへ格納する場合のファイルのサイズは、100MB以下にしてください。
|
|
| (NewQfile) | NewQfile(String fileName, String contentType, ByteArrayWrapper data) |
バイナリデータからファイルを新規に作成します。 ファイル型データ項目やオープンチャットへ格納する場合のファイルのサイズは、100MB以下にしてください。
|
|
| (NewQfile) | NewQfile(String fileName, String contentType, QfileView copyFrom) |
既存のファイルから複製してファイルを新規に作成します。 ファイル型データ項目やオープンチャットへ格納する場合のファイルのサイズは、100MB以下にしてください。
|
|
| String | getName() | ファイル名を取得します。 | |
| Long | getLength() | ファイルサイズを取得します。 | |
| String | getContentType() | ファイルのContent-Typeを取得します。 | |
| String | getCharset() | getContentType()で取得される値のうち、charsetの値のみを取得します。 | |
|
com.questetra.bpms.core.event.scripttask.FileRepositoryWrapper (ファイル内容情報) 参照名: fileRepository で参照します。
|
String | readFile(QfileView file, String encoding) |
テキストファイルを指定の文字コードで読み込みます。 読み込めるファイルのサイズは1MBまでとなります。
|
| void | readFile(QfileView file, String encoding, org.mozilla.javascript.Function function) |
テキストファイルを指定の文字コードで読み込み、1行ずつ指定した関数(function)に渡します。 10行のテキストファイルでは、10回functionが呼ばれます。
|
|
| ByteArrayWrapper | readFile(QfileView file) | ファイルをバイト配列として読み込みます。 | |
| void | readFile(QfileView file, int size, java.util.function.Consumer<ByteArrayWrapper> function) | ファイルを指定したサイズずつバイト配列として読み込み、指定した関数(function)に渡します。 | |
|
com.questetra.bpms.core.event.scripttask.Base64UtilsWrapper (Base64エンコード・デコード) 参照名: base64 で参照します。
|
String | encodeToString(ByteArrayWrapper bytes) | Base64エンコードします。(RFC 4648) |
| String | encodeToString(String src) | UTF-8文字として、Base64エンコードします。(RFC 4648) | |
| String | encodeToUrlSafeString(String src) | UTF-8文字として、Base64エンコードします。(RFC 4648: URL and Filename Safe Alphabet) | |
| String | decodeFromString(String src) | UTF-8文字に、Base64デコードします。(RFC 4648) | |
| String | decodeFromUrlSafeString(String src) | UTF-8文字に、Base64デコードします。(RFC 4648: URL and Filename Safe Alphabet) | |
| ByteArrayWrapper | decodeFromUrlSafeStringToByteArray(String src) | バイナリデータに、Base64デコードします。(RFC 4648: URL and Filename Safe Alphabet) | |
|
com.questetra.bpms.core.event.scripttask.DigestUtilsWrapper (ダイジェスト値) 参照名: digest で参照します。
|
ByteArrayWrapper | md5(ByteArrayWrapper bytes) | MD5のハッシュ値を計算します。 |
| ByteArrayWrapper | md5(QfileView qfile) | MD5のハッシュ値を計算します。 | |
| ByteArrayWrapper | sha1(ByteArrayWrapper bytes) | SHA1のハッシュ値を計算します。 | |
| ByteArrayWrapper | sha1(QfileView qfile) | SHA1のハッシュ値を計算します。 | |
| ByteArrayWrapper | sha256(ByteArrayWrapper bytes) | SHA256のハッシュ値を計算します。 | |
| ByteArrayWrapper | sha256(QfileView qfile) | SHA256のハッシュ値を計算します。 | |
| ByteArrayWrapper | sha384(ByteArrayWrapper bytes) | SHA384のハッシュ値を計算します。 | |
| ByteArrayWrapper | sha384(QfileView qfile) | SHA384のハッシュ値を計算します。 | |
| ByteArrayWrapper | sha512(ByteArrayWrapper bytes) | SHA512のハッシュ値を計算します。 | |
| ByteArrayWrapper | sha512(QfileView qfile) | SHA512のハッシュ値を計算します。 | |
|
com.questetra.bpms.core.event.scripttask.StringEscapeUtilsWrapper (文字エスケープ) 参照名: escaper で参照します。
|
String | escapeEcmaScript(String input) | EcmaScript向けにエスケープします。 |
| String | escapeJson(String input) | JSON向けにエスケープします。 | |
| String | escapeHtml(String input) | HTML向けにエスケープします。 | |
| String | escapeXml(String input) | XML向けにエスケープします。 | |
|
com.questetra.bpms.core.event.scripttask.FeedServiceWrapper (オープンチャット情報) 参照名: feedService で参照します。
|
FeedMessageWrapper | begin() | オープンチャットの投稿メッセージを作成します。 |
| int | getPostingLimit() | メッセージ投稿数の上限を取得します。 | |
|
com.questetra.bpms.core.event.scripttask.FeedServiceWrapper.FeedMessageWrapper (オープンチャット情報: 投稿メッセージ) |
FeedMessageWrapper | setMessage(String message) | 投稿メッセージの本文を設定します。 |
| FeedMessageWrapper | setShareQgroup(QgroupView qgroup) | 投稿メッセージの共有範囲組織を設定します。 | |
| FeedMessageWrapper | attachFile(QfileView file) |
投稿メッセージにファイルを添付します。 ファイルのサイズは、100MB以下にしてください。
|
|
| FeedMessageWrapper | attachLink(String url) |
投稿メッセージにURLリンクを添付します。 Webページへアクセスし、ページタイトルを取得しません。 リンクURLの文字数は、1,000文字以下にしてください。
|
|
| Long | post() | オープンチャットにメッセージを投稿します。 | |
|
com.questetra.bpms.core.event.scripttask.HttpClientWrapper (HTTPクライアント情報) 参照名: httpClient で参照します。
|
HttpRequestWrapper | begin() | HTTPリクエストを作成します。 |
| AuthSettingWrapper | findAuthSetting(String authSettingName, boolean sharedOrNot) | HTTP認証設定のオブジェクトを取得します。 | |
| String | getOAuth2Token(String authSettingName) |
HTTP認証設定を参照し、Tokenを取得します。
|
|
| String | getOAuth2Token(AuthSettingWrapper authSetting) |
HTTP認証設定を参照し、Tokenを取得します。
|
|
| int | getRequestingLimit() | HTTPリクエスト数の上限を取得します。 | |
|
com.questetra.bpms.core.event.scripttask.HttpClientWrapper.HttpRequestWrapper (HTTPクライアント情報: HTTPリクエスト) |
HttpRequestWrapper | queryParam(String name, String value) | リクエストクエリーに、パラメータを追加します。 |
| HttpRequestWrapper | authSetting(String authSettingName) |
HTTP認証設定を参照し、Authorizationヘッダを追加します。
|
|
| HttpRequestWrapper | authSetting(AuthSettingWrapper authSetting) |
HTTP認証設定を参照し、Authorizationヘッダを追加します。
|
|
| HttpRequestWrapper | basic(String userName, String password) | リクエストヘッダに、Basic認証の認証情報を設定します。 | |
| HttpRequestWrapper | bearer(String token) | リクエストヘッダに、OAuth2トークンを追加します。 | |
| HttpRequestWrapper | header(String name, String value) |
リクエストヘッダに、カスタムヘッダを追加します。 追加できるカスタムヘッダは以下のとおりです。
|
|
| boolean | containsHeader(String name) | 指定したヘッダが既にリクエストに設定されているかどうかを確認します。 | |
| HttpRequestWrapper | body() | ボディ部を空にセットします。(Content-Type無し) | |
| HttpRequestWrapper | body(QfileView file) | リクエストボディに、ファイルを設定します。 | |
| HttpRequestWrapper | body(QfileView file, String contentType) | リクエストボディに、Content-Typeを指定してファイルを設定します。 | |
| HttpRequestWrapper | body(String content, String contentType) | リクエストボディに、Content-Typeを指定してテキストを設定します。 | |
| HttpRequestWrapper | body(ByteArrayWrapper content, String contentType) | リクエストボディに、Content-Typeを指定してバイナリデータを設定します。 | |
| HttpRequestWrapper | formParam(String name, String value) |
リクエストボディに、パラメータを追加します。 (application/x-www-form-urlencoded) |
|
| HttpRequestWrapper | multipart(String name, String value) |
リクエストボディに、パラメータを追加します。 (multipart/form-data) |
|
| HttpRequestWrapper | multipart(String name, QfileView file) |
リクエストボディに、ファイルを追加します。 (multipart/form-data) |
|
| HttpRequestWrapper | multipart(String name, String fileContent, String contentType, String fileName) |
リクエストボディに、テキストデータを文字コード変換した上でファイルを追加します。 (multipart/form-data) |
|
| HttpResponseWrapper | get(String url) | GETメソッドでHTTPリクエストを送信します。 | |
| HttpResponseWrapper | post(String url) | POSTメソッドでHTTPリクエストを送信します。 | |
| HttpResponseWrapper | patch(String url) | PATCHメソッドでHTTPリクエストを送信します。 | |
| HttpResponseWrapper | put(String url) | PUTメソッドでHTTPリクエストを送信します。 | |
| HttpResponseWrapper | delete(String url) | DELETEメソッドでHTTPリクエストを送信します。 | |
|
com.questetra.bpms.core.event.scripttask.HttpClientWrapper.HttpResponseWrapper (HTTPクライアント情報: HTTPレスポンス) |
int | getStatusCode() | レスポンスのステータスコードを取得します。 |
| ByteArrayWrapper | getResponse() | レスポンスをバイナリデータとして取得します。 | |
| String | getResponseAsString() | レスポンスを文字列として取得します。 | |
| String | getContentType() | レスポンスのContent-Typeを取得します。 | |
| String | getCharset() | レスポンスの文字コードを取得します。 | |
| List<String> | getHeaderNames() | レスポンスのヘッダ一覧を取得します。 | |
| List<String> | getHeaderValues(String headerName) | レスポンスのヘッダのうち、指定されたヘッダの値の一覧を取得します。 | |
|
com.questetra.bpms.core.event.scripttask.AuthSettingWrapper (HTTP認証設定の情報) |
String | getName() | HTTP認証設定の名前を取得します。 |
| String | getToken() | トークン直接指定の場合、トークンの設定値を取得します。 | |
| String | getBasicUserName() | Basic認証の場合、ユーザ名の設定値を取得します。 | |
| String | getBasicUserName() | Basic認証の場合、パスワードの設定値を取得します。 | |
|
com.questetra.bpms.core.event.scripttask.EmailServiceWrapper (メール情報) 参照名: emailService で参照します。
|
EmailMessageWrapper | begin() | メールのメッセージを作成します。 |
| int | getSendingLimit() | メール送信数の上限を取得します。 | |
|
com.questetra.bpms.core.event.scripttask.EmailServiceWrapper.EmailMessageWrapper (メール情報: メールメッセージ) |
EmailMessageWrapper | addTo(String emailAddress, String fullName) | メールのToアドレスを追加します。 |
| EmailMessageWrapper | addCc(String emailAddress, String fullName) | メールのCcアドレスを追加します。 | |
| EmailMessageWrapper | addBcc(String emailAddress, String fullName) | メールのBccアドレスを追加します。 | |
| EmailMessageWrapper | setFrom(String emailAddress, String fullName) | メールのFromアドレスを設定します。 | |
| EmailMessageWrapper | setReplyTo(String emailAddress, String fullName) | メールのReplyToアドレスを設定します。 | |
| EmailMessageWrapper | setSubject(String subject) | メールの件名を設定します。 | |
| EmailMessageWrapper | setBody(String body) | メールの本文を設定します。(setTextBody()と同様) | |
| EmailMessageWrapper | setTextBody(String textBody) | テキストでメールの本文を設定します。 | |
| EmailMessageWrapper | setHtmlBody(String htmlBody) | HTMLでメールの本文を設定します。 | |
| EmailMessageWrapper | addAttachment(QfileView qfile) |
メールにファイルを添付します。 ファイルのサイズ制限は、設定ファイル(qbpms.config)の「qbpms.smtp.sizeLimit」の値に依存します(初期値: 10MB)。
|
|
| EmailMessageWrapper | addAttachment(String fileName, String contentType, String fileContent) |
テキストデータを文字コード変換した上でメールにファイルを添付します。 ファイルのサイズ制限は、設定ファイル(qbpms.config)の「qbpms.smtp.sizeLimit」の値に依存します(初期値: 10MB)。
|
|
| void | send() | メールを送信します。 | |
| java.lang.String | 標準のJavaクラス | - | - |
| java.lang.Long | 標準のJavaクラス | - | - |
| java.lang.Math | 標準のJavaクラス | - | - |
| java.util.ArrayList | 標準のJavaクラス | - | - |
| java.util.Date | 標準のJavaクラス | - | - |
| java.util.HashMap | 標準のJavaクラス | - | - |
| java.util.Locale | 標準のJavaクラス | - | - |
| java.util.regex.Pattern | 標準のJavaクラス | - | - |
| java.util.regex.Matcher | 標準のJavaクラス | - | - |
| java.math.BigDecimal | 標準のJavaクラス | - | - |
| java.text.SimpleDateFormat | 標準のJavaクラス | - | - |
| java.text.DecimalFormat | 標準のJavaクラス | - | - |
| java.sql.Date | 標準のJavaクラス | - | - |
| java.sql.Timestamp | 標準のJavaクラス | - | - |
データ項目に入力がないまたは選択されていない場合は、取得した値はnullとなります。
データ項目への設定は、スクリプト処理完了後にまとめて行われます。engine.setData~()を実行したタイミングではありません。
if (processInstance.getProcessInstanceDebug() === true) {
<デバッグプロセスだった場合の処理>
}
| 文字型 | 文字型データ項目に対する値の取得と設定 |
|---|---|
| 数値型 | 数値型データ項目に対する値の取得と設定 |
| 選択型 | 選択型データ項目に対する値の取得と設定 |
| 日付型 | 日付型データ項目に対する値の取得と設定 |
| 日時型 | 日時型データ項目に対する値の取得と設定 |
| ファイル型 | ファイル型データ項目に対する値の取得と設定 |
| ユーザ型 | ユーザ型データ項目に対する値の取得と設定 |
| 組織型 | 組織型データ項目に対する値の取得と設定 |
| テーブル型 | テーブル型データ項目に対する値の取得と設定 |
| [その他] プロセス属性 | 全プロセス共通のプロセス属性に対する値の取得と設定 |
| [その他] 部門検索 | 「本部-部-課」という構造をもった組織における、所属する本部の取得と設定 |
| [その他] JSON解析 | 文字型(複数行)に保持されているJSON形式の文字列を解析 |
| [その他] HTTPリクエスト | 入力したデータをもとに、HTTPリクエストを送信 |
掲示板型およびガイドパネル型の取得および設定には対応していません。
engine.setDataByNumber("0", "HelloWorld!!");
engine.setDataByNumber("1", "Hello\nWorld!!");
var newAgenda = engine.findDataByNumber("0");
var agendaList = engine.findDataByNumber("1");
agendaList += '\n';
agendaList += newAgenda;
engine.setDataByNumber("1", agendaList);
engine.setDataByNumber("2", new java.math.BigDecimal(123));
engine.setDataByNumber("3", new java.math.BigDecimal(Math.random()));
var quantity = engine.findDataByNumber("4");
var unitPrice = engine.findDataByNumber("5");
var price = quantity * unitPrice;
engine.setDataByNumber("6", new java.text.DecimalFormat('#,##0円').format(price));
選択肢リストすべてではなく、選択された値のみが取得できます。
選択肢を1つしか選べないフォームタイプ(ラジオボタン、セレクトボックス、検索セレクトボックス)にて、2つ以上の選択肢を設定した場合は、スクリプト実行時にエラーとなります。
選択肢リストにない選択肢IDを設定した場合は、エラーとならずに設定した値は無視されます。
var selects = new java.util.ArrayList();
selects.add("JP");
selects.add("US");
engine.setDataByNumber("7", selects);
var text = "";
var selects = engine.findDataByNumber("7");
for (var i=0; i < selects.size(); i++){
var select = selects.get(i);
text += select.getValue() + ":" + select.getDisplay();
text += '\n';
}
engine.setDataByNumber("8", text);
engine.setDataByName("設立日付", java.sql.Date.valueOf("2015-03-15"));
var text = "";
var requestDate = engine.findDataByName("請求日入力");
var dateFormatter = new java.text.SimpleDateFormat("GGGGyyyy年MM月dd日", new java.util.Locale("ja", "JP", "JP"));
text += dateFormatter.format(requestDate);
engine.setDataByName("請求日付", text);
engine.setDataByVarName("q_birthDateTime", java.sql.Timestamp.valueOf("2015-03-15 12:34:56"));
var manufactureDate = engine.findDataByVarName("q_manufactureDate");
engine.setDataByVarName("q_consumptionDate", manufactureDate.addMonths(2));
ファイルは、QfileViewのリスト配列(List<QfileView>)として保持されます。
var csvText = "";
var quoteFiles = engine.findDataByNumber("13");
var tableData = engine.findDataByNumber("14");
for (var i=0; i < tableData.size(); i++) {
csvText += tableData.get(i, 0) + ",";
csvText += tableData.get(i, 1) + ",";
csvText += tableData.get(i, 2) + ",";
csvText += tableData.get(i, 3) + "\n";
}
if (quoteFiles == null) {
quoteFiles = new java.util.ArrayList();
}
quoteFiles.add(new com.questetra.bpms.core.event.scripttask.NewQfile("QuoteDetails.csv", "text/csv", csvText));
engine.setDataByNumber("13", quoteFiles);
var repUser = quserDao.findByEmail("Ito@localhost.localdomain");
engine.setDataByNumber("14", repUser);
var text = "";
var repUser = engine.findDataByNumber("15");
var appUser = engine.findDataByNumber("16");
text = '担当者: ' + repUser.getName() + '[' + repUser.getEmail() + ']\n';
text += '承認者: ' + appUser.getName() + '[' + appUser.getEmail() + ']';
engine.setDataByNumber("17", text);
var repGroup = engine.findDataByNumber("18");
var appGroup = qgroupDao.findParentQgroup(repGroup);
engine.setDataByNumber("19", appGroup);
var productList = engine.findDataByNumber("20");
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);
engine.setDataByNumber("20", productList);
}
var seqNum = processInstance.getProcessInstanceSequenceNumber();
processInstance.setProcessInstanceTitle("第" + seqNum + "回 定例ミーティング開催");
var qGroup = qgroupDao.findById(processInstance.getProcessInstanceInitQgroupId());
var division = findDivision(qGroup);
engine.setDataByNumber("21", division);
function findDivision(aGroup){
while (aGroup != null && aGroup.getName().endsWith('本部') == false) {
aGroup = qgroupDao.findParentQgroup(aGroup);
}
return aGroup;
}
マイタスクの一覧を取得するAPIに関する詳細は、「ワークフローAPI: マイタスクの一覧を取得する」を参照してください。
var jsonText = engine.findDataByNumber("22");
var myTasks = JSON.parse(jsonText);
var taskList = "";
for (var i in myTasks.workitems){
taskList += '[プロセス]: ' + myTasks.workitems[i].processModelInfoName + ' [タスク]: ' + myTasks.workitems[i].nodeName;
taskList += '\n';
}
engine.setDataByNumber("23", taskList);
ユーザを追加するAPIに関する詳細は、「システム設定API: ユーザを追加する」を参照してください。
var userName = engine.findDataByNumber("24");
var userEmail = engine.findDataByNumber("25");
var userPwd = engine.findDataByNumber("26");
var httpReq = httpClient.begin();
httpReq.basic("Admin@localhost.localdomain", "MfZ91kYAPljyRhdmFAIEDxELp2uzi9pv");
httpReq.queryParam("name", userName);
httpReq.queryParam("email", userEmail);
httpReq.queryParam("password", userPwd);
var httpRes = httpReq.post("http://xxx.xxx.xxx.xxx:18080/userweb/API/UGA/Quser/add");
if (httpRes.getStatusCode() == 200) {
engine.setDataByNumber("27", "正常にユーザが登録されました。");
} else {
engine.setDataByNumber("27", "エラーが発生しユーザが登録できませんでした。\n" +
"レスポンスコード: " + httpRes.getStatusCode() + "\n" +
"エラー内容: \n" +
httpRes.getResponseAsString());
}