現在、ベータ(Beta)機能として提供しています。
ベータ(Beta)機能に関する注意点は、「このマニュアルについて」-「ベータ(Beta)機能について」を参照してください。
アプリ管理権限を持つユーザが対象です。
ECMAスクリプトおよびJavaの使用経験者を対象としています。| ワークフロー図 |
ワークフロー図の作成を行います。 スイムレーンや各ノードを配置し、フローを作成して、作業の順序を定義します。 |
|---|---|
| ヒューマンタスク |
プロセスにおいて、処理担当者が作業する手動工程を表します。 プロセス実行時に、データを入力するフォーム(タスク処理画面)が表示されます。 |
| サービスタスク (データ設定) |
プロセスにおいて、システムが処理する自動工程を表します。 数値型、日付型/日時型、文字型、選択型データ項目に、動的な値や演算結果を代入します。 |
| サービスタスク (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およびエラー内容)を受け取り、その後のタスクや条件分岐処理等で使用することができます。 |
| 分岐 | ワークフロー図に分岐がある場合、分岐・遷移先の設定を行います。 |
| 項目名 | 必須 | 説明 |
|---|---|---|
| 工程名 | 任意 | タスクの名称を入力します。 |
| メモ | 任意 | タスクの注意点や目的などに関するメモを入力します。 |
| 必須データ項目の 値をクリアすることを 許可する |
任意 | チェックを入れた場合、[必須]として設定したデータ項目に保持されている値を空(未入力)の状態にすることができます。 |
| 処理失敗時に、 トークンをエラー境界イベントに移動 |
任意 |
処理が失敗した際のフローを定義したい場合は、有効にします。 有効にした場合は、タスクの下部にエラー境界イベントが表示されます。
|
| スクリプトエンジン | 必須 |
スクリプトの実行エンジン(JavaScriptエンジン)を選択します。
前バージョン(DataSpider BPM 2.5以前)から使用しているスクリプトタスクのスクリプトエンジンは「RHINO」となります。 使用していたスクリプトエンジンを切り替えた場合は、使用できるクラスおよびメソッドが異なっていたり、同じ記述内容でもその挙動が異なる場合があります。十分な動作検証を行ってください。 |
| スクリプト | 必須 | スクリプトを記述する入力フィールドです。 |
| 表示 (HTML5版) |
表示 (Flash版) |
操作メニュー | 説明 |
|---|---|---|---|
![]() |
[ヘルプ]アイコン [ヘルプ]ボタン |
このマニュアルページを表示します。 | |
![]() |
![]() |
[適用して閉じる]ボタン [閉じる]ボタン |
設定した値を適用して、スクリプトタスクのプロパティ設定ダイアログを閉じます。 |
![]() |
- | [適用する]ボタン | 設定した値を適用します。 |
![]() |
- | [キャンセル]ボタン | 設定した値を適用せずに、スクリプトタスクのプロパティ設定ダイアログを閉じます。 |
エラー発生時には、コントロール権限を持つユーザに対して通知メールが送信されます。
30秒以上の処理時間になる可能性がある場合は、複数の「スクリプトタスク」に処理を分割してください。
処理時間は、DataSpider BPMサーバの負荷状況により変動します。
送信先の数や添付ファイルサイズの制限は、「メッセージ送信中間イベント(メール)」と同じ制限が適用されます。
Rhinoとは異なり、E4X、data、retValなどは使用できません。
let、constなどを新たに使用することができます。
ECMAスクリプト(ECMA-262)に関する詳細は、「Standard ECMA-262 ECMAScript(R) Language Specification」
browserオブジェクトは使用することができません。
以下に記載されているJavaクラス以外は使用することができません。| クラス | 型 | メソッド | メソッド説明 |
|---|---|---|---|
|
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 (プロセス属性情報) 参照名: processInstance で参照します。
|
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 (ユーザマスタ情報) 参照名: 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.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.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) |
セルデータを取得する - 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 (選択肢マスタ情報) 参照名: itemDao で参照します。
|
List<ItemView> | findAll(String fileName, boolean isSharedFile) | 選択肢マスタの全選択肢を検索します。 |
| ItemView | findByValue(String fileName, boolean isSharedFile, String value) | 選択肢マスタから特定の値(選択肢ID)を持つ選択肢を検索します。 | |
|
com.questetra.bpms.core.event.scripttask.QfileView (ファイル情報) |
String | getName() | ファイル名を取得します。 |
| Long | getLength() | ファイルサイズを取得します。 | |
| String | getContentType() | ファイルのContent-Typeを取得します。 | |
|
com.questetra.bpms.core.event.scripttask.NewQfile (新規ファイル情報) |
(NewQfile) | NewQfile(String fileName, String contentType, String text) |
テキストデータから文字コード変換した上でファイルを新規に作成します。 ファイル型データ項目やオープンチャットへ格納する場合のファイルのサイズは、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を取得します。 | |
|
com.questetra.bpms.core.event.scripttask.FileRepositoryWrapper (ファイル内容情報) 参照名: fileRepository で参照します。
|
void | readFile(QfileView file, String encoding, org.mozilla.javascript.Function function) |
テキストファイルを指定の文字コードで読み込み、1行ずつ指定した関数(function)に渡します。 10行のテキストファイルでは、10回functionが呼ばれます。
|
|
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) | メールの本文を設定します。 | |
| 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() | メールを送信します。 | |
|
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リクエストを作成します。 |
| String | getOAuth2Token(String configName) | OAuth2トークンを取得します。 | |
| int | getRequestingLimit() | HTTPリクエスト数の上限を取得します。 | |
|
com.questetra.bpms.core.event.scripttask.HttpClientWrapper.HttpRequestWrapper (HTTPクライアント情報: HTTPリクエスト) |
HttpRequestWrapper | queryParam(String name, String value) | リクエストクエリーに、パラメータを追加します。 |
| HttpRequestWrapper | basic(String userName, String password) | リクエストヘッダに、Basic認証情報(ユーザ名およびパスワード)を追加します。 | |
| HttpRequestWrapper | bearer(String token) | リクエストヘッダに、OAuth2トークンを追加します。 | |
| HttpRequestWrapper | header(String name, String value) |
リクエストヘッダに、カスタムヘッダを追加します。 追加できるカスタムヘッダは以下のとおりです。
|
|
| HttpRequestWrapper | body(QfileView file) | リクエストボディに、ファイルを設定します。 | |
| HttpRequestWrapper | body(String content, String contentType) | リクエストボディに、テキストを設定します。 | |
| 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() | レスポンスの文字コードを取得します。 | |
|
com.questetra.bpms.core.event.scripttask.WorkflowEngine (ワークフロー情報) 参照名: engine で参照します。
|
ProcessDataDefinitionView | findDataDefinitionByName(String name) |
データ項目を名前で検索します。 同じ名前のデータ項目が複数存在する場合は、最初のデータ項目を返します。 |
| ProcessDataDefinitionView | findDataDefinitionByNumber(Long number) | データ項目をデータ項目番号で検索します。 | |
| ProcessDataDefinitionView | findDataDefinitionByNumber(String number) | データ項目をデータ項目番号で検索します。 | |
| ProcessDataDefinitionView | findDataDefinitionByVarName(String varName) | データ項目をフィールド名で検索します。 | |
| List<ProcessDataDefinitionView> | findDataDefinitions() | データ項目の一覧を取得します。 | |
| String | getTimeZoneId() | システムのタイムゾーンIDを取得します。 | |
| int | getTimeZoneOffsetInMinutes() | システムのタイムゾーンのオフセット時間を分単位で取得します。 | |
| Object | findDataByNumber(String number) | データ項目番号でデータ項目の値を取得します。 | |
| Object | findDataByNumber(Long number) | データ項目番号でデータ項目の値を取得します。 | |
| Object | findDataByName(String name) | データ項目名でデータ項目の値を取得します。 | |
| Object | findDataByVarName(String varName) | フィールド名でデータ項目の値を取得します。 | |
| void | setDataByNumber(String number, Object value) | データ項目番号でデータ項目の値を設定します。 | |
| void | setDataByNumber(Long number, Object value) | データ項目番号でデータ項目の値を設定します。 | |
| void | setDataByName(String name, Object value) | データ項目名でデータ項目の値を設定します。 | |
| void | setDataByVarName(String varName, Object value) | フィールド名でデータ項目の値を設定します。 | |
| void | log(String message) |
デバッグを目的とした、処理ログを出力します。 出力した内容は、プロセス詳細画面の[処理記録]にて、[自動処理ログ]ボタン押下で確認することができます。
|
|
|
com.questetra.bpms.core.event.scripttask.ProcessDataDefinitionView (データ項目情報) |
String | getName() | データ項目名を取得します。 |
| long | getNumber() | データ項目番号を取得します。 | |
| String | getVarName() | フィールド名を取得します。 | |
| List<SubDataDefinitionView> | getSubDataDefinitions() | テーブル型の場合にて、テーブル内データ項目の一覧を取得します。 | |
| boolean | matchDataType(String dataType) | データ型を調べます。 | |
|
com.questetra.bpms.core.event.scripttask.SubDataDefinitionView (テーブル内データ項目情報) |
String | getName() | テーブル内データ項目名を取得します。 |
| long | getNumber() | テーブル内データ項目番号を取得します。 | |
| boolean | matchDataType(String dataType) | テーブル内データ項目のデータ型を調べます。 | |
| java.lang.String | - | - | - |
| java.lang.Long | - | - | - |
| java.lang.Math | - | - | - |
| java.util.ArrayList | - | - | - |
| java.util.Date | - | - | - |
| 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 | - | - | - |
data.get()は、[スクリプトエンジン]が「RHINO」の場合のみ使用できます。
data.get()は、今後のバージョンで廃止予定となります。
データ項目に入力がないまたは選択されていない場合は、取得した値はnullとなります。
retVal.put()は、[スクリプトエンジン]が「RHINO」の場合のみ使用できます。
retVal.put()は、今後のバージョンで廃止予定となります。
データ項目への設定は、スクリプト処理完了後にまとめて行われます。retVal.put()またはengine.setDataBy~()を実行したタイミングではありません。
| 文字型 | 文字型データ項目に対する値の取得と設定 |
|---|---|
| 数値型 | 数値型データ項目に対する値の取得と設定 |
| 選択型 | 選択型データ項目に対する値の取得と設定 |
| 日付型 | 日付型データ項目に対する値の取得と設定 |
| 日時型 | 日時型データ項目に対する値の取得と設定 |
| ファイル型 | ファイル型データ項目に対する値の取得と設定 |
| ユーザ型 | ユーザ型データ項目に対する値の取得と設定 |
| 組織型 | 組織型データ項目に対する値の取得と設定 |
| テーブル型 | テーブル型データ項目に対する値の取得と設定 |
| [その他] プロセス属性 | 全プロセス共通のプロセス属性に対する値の取得と設定 |
| [その他] 部門検索 | 「本部-部-課」という構造をもった組織における、所属する本部の取得と設定 |
| [その他] 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());
}