IM-FormaDesigner for Accel Platform / プログラミングガイド 第6版 2015-08-01

11.3. スクリプト開発モデル

ここでは、ワークフロー案件処理API(スクリプト開発モデル)の基本的な利用方法を説明します。
APIのインタフェース情報については「 IM-FormaDesigner for Accel Platform APIドキュメント(スクリプト開発モデル) 」を参照してください。

注意

この章では、IM-FormaDesigner の API を利用した場合のサンプルコードを掲載しています。

11.3.1. 申請処理の実装

11.3.1.1. パラメータ

申請処理APIを実行するには、ワークフローデータおよびアプリケーションデータの2つのパラメータが必要となります。
  • パラメータ(ワークフローデータ)

    ワークフローの案件を作成するための情報です。下記は必須項目です。
    // パラメータ(ワークフローデータ)の作成
    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. 戻り値

処理結果のみ取得できます。