レコードの取得(Web API)

Forguncyではレコードの取得を行うための以下の2つのメソッドを提供しています。

Forguncy.getTableData( tableName, primaryKey, successCallback, errorCallback )

指定したテーブルに対してレコードが一意になるフィールド名と値を指定し、1件のレコード内容を取得します。

パラメーター

tableName

Type: String

取得したいデータが格納されているテーブルの名前。

primaryKey

Type: PlainObject

取得対象のレコードにおいて一意となるフィールド名と値を指定。
※プロパティ名にフィールド名、値にそのフィールドの値を持つオブジェクトを指定します。
※指定するフィールドが必ずしもデータベース上で一意制約を持つフィールドである必要はありません。

successCallback

Type: Function( PlainObject data )

レコードの取得が成功したときに実行するコールバック関数を指定します。引数にはリクエスト結果が渡されます。

errorCallback

Type: Function( String errorMessage )

レコードの取得が失敗したときに実行するコールバック関数を指定します。 引数にエラーメッセージが渡されます。
なお、テーブル名の指定に誤りがあるなどのデータベースアクセスにおける構文エラーについては、本コールバック関数を使用してエラーをハンドルすることはできません。そのような場合のエラー内容については、HTTP応答ヘッダーの内容を確認する必要があります。

 

 サンプルコード

Forguncy.getTableData("テーブル1", {"ID":2}, 
    function(data){             // レコードの取得に成功した場合
        Forguncy.Page.getCell("textBoxCell1").setValue(data.フィールド1);
    }, 
    function(errorMessage){        // レコードの取得に失敗した場合
        alert(errorMessage);
    }
);

複数のフィールドを組み合わせて一意なレコードを特定する場合、以下のようなコードを使用します。

Forguncy.getTableData("テーブル1", { "ID1": 2, "ID2" : 33  }, 
    function(data){             // レコードの取得に成功した場合
        Forguncy.Page.getCell("textBoxCell1").setValue(data.フィールド1);
    }, 
    function(errorMessage){        // レコードの取得に失敗した場合
        alert(errorMessage);
    }
);

 

Forguncy.getTableDataByOData( odataParam, successCallBack, errorCallBack )

指定したODataのリソースパスを使用して、レコード内容を取得します。指定可能なODataのリソースパスについては、 OData を参照してください。

パラメーター

odataParam

Type: String

ODataのリソースパスを指定します。ルートURIは含めず、リソースパス以降を指定してください。

successCallback

Type: Function( PlainObject data )

レコードの取得が成功したときに実行するコールバック関数を指定します。引数にはリクエスト結果が渡されます。

errorCallback

Type: Function( String errorMessage )

レコードの取得が失敗したときに実行するコールバック関数を指定します。 引数にエラーメッセージが渡されます。
なお、テーブル名の指定に誤りがあるなどのデータベースアクセスにおける構文エラーについては、本コールバック関数を使用してエラーをハンドルすることはできません。そのような場合のエラー内容については、HTTP応答ヘッダーの内容を確認する必要があります。

 

 サンプルコード

「Caterories」テーブルのレコード数を取得し、「countLabel」という名前が付いたセルに値として設定するサンプルコードです。

Forguncy.getTableDataByOData("Categories/$count",
    // 成功した場合のコールバック処理
    function (data) { /* データ型 Type:object */
        Forguncy.Page.getCell("countLabel").setValue(data);
    },
    // エラー時のコールバック処理
    function (e) {
        alert(e);
    });

「Caterories」テーブルの全レコードを取得し、表示に適切な内容に整形したうえで「resultLabel」という名前が付いたセルに値として設定するサンプルコードです。

Forguncy.getTableDataByOData("Categories",
    // 成功した場合のコールバック処理
    function (data) { /* データ型 Type:List<Dictionary<string, object>> */
        var str = "";
        for (var index = 0; index < data.length; index++) {
            var rowData = data[index];
            str += "ID:" + rowData["Category ID"] + "\r\n" +
                    "カテゴリ名:" + rowData["Category Name"] + "\r\n" +
                    "説明:" + rowData["Description"] + "\r\n\r\n"
        }
        Forguncy.Page.getCell("resultLabel").setValue(str);
    },
    // エラー時のコールバック処理
    function (e) {
        alert(e);
    });