11.3. スクリプト開発モデル¶
ここでは、ワークフロー案件処理API(スクリプト開発モデル)の基本的な利用方法を説明します。APIのインタフェース情報については「 IM-FormaDesigner for Accel Platform APIドキュメント(スクリプト開発モデル) 」を参照してください。注意
この章では、IM-FormaDesigner の API を利用した場合のサンプルコードを掲載しています。
11.3.1. 申請処理の実装¶
11.3.1.1. パラメータ¶
申請処理APIを実行するには、ワークフローデータおよびアプリケーションデータの2つのパラメータが必要です。
パラメータ(ワークフローデータ)
ワークフローの案件を作成するための情報です。下記は必須項目です。
パラメータ(ワークフローデータ) パラメータ 説明 フローID 申請時に利用するフロー定義のIDを指定します。 案件名 作成する案件のタイトルを指定します。 申請基準日 ワークフローの処理を行う際の基準日を表す日付文字列を指定します。 申請実行者コード 申請処理を実行するユーザのユーザコードを指定します。通常は、権限者と同一のユーザを指定しますが、代理申請の場合には代理先ユーザのユーザコードを指定します。申請権限者コード ワークフローの案件の申請者として記録されるユーザコードを指定します。通常は、実行者と同一のユーザを指定しますが、代理申請の場合には代理元ユーザのユーザコードを指定します。// パラメータ(ワークフローデータ)の作成 var applyParam = {}; applyParam.flowId = 'SampleFlowId'; applyParam.matterName = 'サンプル案件'; applyParam.applyBaseDate = '2015/02/14'; applyParam.applyExecuteUserCode = 'ueda'; applyParam.applyAuthUserCode = 'aoyagi';
パラメータ(アプリケーションデータ)
ワークフローの案件にひもづく業務データです。以下の3種類が存在します。
パラメータ(アプリケーションデータ) 種類 説明 入力アイテムデータ 単項目の画面アイテムに入力するデータを指定します。 テーブルアイテムデータ 明細項目の画面アイテムに入力するデータを指定します。 ファイルアップロードアイテムデータ 画面アイテム「ファイルアップロード」に添付するファイル情報を指定します。 // パラメータ(アプリケーションデータ)の作成 var formaUserParam = {}; var items = {}; var files = [n]; formaUserParam.items = items; formaUserParam.files = files;
パラメータ(アプリケーションデータ) ― 入力アイテムデータ
フィールド識別IDをキーに各アイテムの入力値を作成していきます。各アイテムのデータ型に応じてセットするデータ型が異なることに注意してください。// パラメータ(アプリケーションデータ)の作成 var formaUserParam = {}; var items = {}; // フィールド識別IDをキーに入力値をセットします。 items.textbox1 = 'あいうえお'; // 文字列型のアイテムは、String型で指定します。 items.number1 = 1000;// 数値型のアイテムは、Number型で指定します。 items.calendar1 = new Date(); // 日付型は、Date型で指定します。 items.timestamp1 = new Date(); // タイムスタンプ型は、Date型で指定します。 // 入力アイテムデータをアプリケーションデータのパラメータにセットします。 formaUserParam.items = items;コラム
複数選択可能な文字列型のアイテム(チェックボックス・リストボックスなど)では、カンマ区切りで複数要素を指定します。items.checkbox1 = 'sample1,sample2,sample3';
パラメータ(アプリケーションデータ) ― テーブルアイテムデータ
各行ごとに、入力値を格納するオブジェクトを作成します。オブジェクトのプロパティに各列のフィールド識別IDを指定し、値に入力値を指定します。// パラメータ(アプリケーションデータ)の作成 var formaUserParam = {}; var items = {}; // テーブルアイテムデータを格納するための配列を作成します。 // 配列の1要素がテーブルの1行に相当します。 var tb1 = []; // テーブルアイテム 1行目のデータ // 各カラムの入力値は、オブジェクトに格納します。 // オブジェクトのプロパティは、各列のフィールド識別IDです。 var detail11 = {}; detail11.tb1_textbox1 = 'あいうえお'; detail11.tb1_number1 = 1000; detail11.tb1_calendar1 = new Date(); detail11.tb1_timestamp1 = new Date(); tb1.push(detail11); // テーブルアイテム 2行目のデータ var detail12 = {}; detail12.tb1_textbox1 = 'かきくけこ'; detail12.tb1_number1 = 2000; detail12.tb1_calendar1 = new Date(); detail12.tb1_timestamp1 = new Date(); tb1.push(detail12); // テーブル識別IDをキーに各テーブルアイテムの情報を格納します。 items.tb1 = tb1; // テーブルアイテムデータをアプリケーションデータのパラメータにセットします。 formaUserParam.items = items;
パラメータ(アプリケーションデータ) ― ファイルアップロードアイテムデータ
添付ファイル情報を格納するためのオブジェクトを作成します。ファイルの実体は、Fileオブジェクトで指定します。// パラメータ(アプリケーションデータ)の作成 var formaUserParam = {}; var items = {}; // 添付するファイルごとにオブジェクトを作成します。 var file1 = {}; file1.file = new File('C://sample/sampleFile.txt'); // 添付ファイルの実体をFileオブジェクトで指定します。 file1.uploadItemId = 'attach_fileupload_item1'; // アイテム識別IDを指定します。 file1.notes = 'サンプルのファイルです。'; // ファイル情報のオブジェクトを格納する配列を作成します。 var files = [file1]; // ファイルアップロードアイテムデータをアプリケーションデータのパラメータにセットします。 formaUserParam.files = files;
11.3.1.2. 申請処理を実装する¶
ワークフローデータ・アプリケーションデータのパラメータをそれぞれ指定した上で、申請処理APIを実行します。// 申請処理APIのインスタンスを作成します。 var applyManager = new FormaApplyManager(); var applyParam = {}; var userParam = {}; var formaUserParam = {}; var items = {}; // パラメータ(ワークフローデータ)の作成 applyParam.flowId = 'SampleFlowId'; applyParam.matterName = 'サンプル案件'; applyParam.applyBaseDate = '2015/02/14'; applyParam.applyExecuteUserCode = 'aoyagi'; applyParam.applyAuthUserCode = 'aoyagi'; // パラメータ(アプリケーションデータ)の作成 items.textbox1 = 'あいうえお'; items.number1 = 1000; formaUserParam.items = items; // 作成したパラメータを指定した上で、申請処理APIを実行します。 var applyResult = applyManager.apply(applyParam, userParam, formaUserParam);
11.3.1.3. 戻り値¶
処理結果に加えて、以下の情報が取得できます。
戻り値 パラメータ 説明 システム案件ID 作成したワークフローの案件を一意に識別できるID情報。承認処理APIを実行する際には、指定する必要があります。ユーザデータID 作成したアプリケーションデータを一意に識別できるID情報。 案件番号 ユーザが画面から案件を識別するためのID情報。
11.3.2. 承認処理の実装¶
案件と処理ノードを特定するためのパラメータを指定して、承認処理APIのインスタンスを作成します。作成した承認処理APIのインスタンスに、案件を処理するためのパラメータを指定して、実行します。
11.3.2.1. パラメータ¶
承認処理APIを実行するには、ワークフローデータおよびアプリケーションデータの2つのパラメータが必要です。
パラメータ(ワークフローデータ)
ワークフローの案件を処理する際のための情報です。下記は必須項目です。
パラメータ(ワークフローデータ) パラメータ 説明 処理実行者コード 承認処理を実行するユーザのユーザコードを指定します。通常は、権限者と同一のユーザを指定しますが、代理承認の場合には代理先ユーザのユーザコードを指定します。処理権限者コード ワークフローの案件の承認者として記録されるユーザコードを指定します。通常は、実行者と同一のユーザを指定しますが、代理承認の場合には代理元ユーザのユーザコードを指定します。// パラメータ(ワークフローデータ)の作成 var approveParam = {}; approveParam.applyExecuteUserCode = 'ueda'; approveParam.applyAuthUserCode = 'aoyagi';
パラメータ(アプリケーションデータ)
ワークフローの案件にひもづく業務データです。パラメータの基本的なデータ構造は申請時と同じですが、承認時には追記する項目のみセットします。// パラメータ(アプリケーションデータ)の作成 var formaUserParam = {}; var items = {}; // フィールド識別IDをキーに入力値をセットします。 items.timestamp1 = new Date(); // 追記する項目のみセットします。 // 入力アイテムデータをアプリケーションデータのパラメータにセットします。 formaUserParam.items = items;
11.3.2.2. 承認処理を実装する¶
承認処理に必要なパラメータを作成します。案件と処理ノードを特定するためのパラメータを指定して、承認処理APIのインスタンスを作成します。作成した承認処理APIのインスタンスにパラメータを指定して、実行します。var approveParam = {}; var userParam = {}; var formaUserParam = {}; // パラメータ(ワークフローデータ)の作成 approveParam.executeUserCode = 'ueda'; approveParam.authUserCode = 'aoyagi'; // パラメータ(アプリケーションデータ)の作成 var items = {}; items.calendar1 = new Date(); // 追記可能な項目にのみ値をセットします。 formaUserParam.items = items; // システム案件ID・ノードIDを指定して、承認処理APIのインスタンスを作成します。 var processManager = new FormaProcessManager('SampleSystemMatterId', 'SampleNodeId'); // 作成したパラメータを指定した上で、承認処理APIを実行します。 processManager.approve(approveParam, userParam, formaUserParam);
11.3.2.3. 戻り値¶
処理結果のみ取得できます。