お知らせ:

当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

行の取得

Catalyst Data Storeのテーブルから、単一行または複数行のデータを取得できます。これらのコードスニペットで使用されている table オブジェクトは、コンポーネントインスタンスページで定義されています。

行オブジェクトの取得

Data Storeのテーブルから行を取得する前に、以下に示すように行の一意のRow IDを使用して行オブジェクトを作成する必要があります。これはサーバーサイドの呼び出しを発生させません。

copy
//Create a row object using the Rowid
var datastore = catalyst.table; 
var table = datastore.tableId("ShipmentTracking"); 
var row = table.rowId("12781121212121");

単一行の取得

get() メソッドを使用して、テーブルから単一行を取得できます。以下に示すように、前のセクションで作成した行オブジェクトに行の一意のRow IDを渡す必要があります。

ここで返されるPromiseは、content キーに行オブジェクトを含むJSON行オブジェクトに解決されます。

copy
//Fetch the row details by passing the row ID to the row object 
var datastore = catalyst.table; 
var table = datastore.tableId('ShipmentTracking'); 
var row = table.rowId("12781121212121"); 
var rowPromise = row.get();
rowPromise.then((response) => { console.log(response.content); }) .catch((err) => { console.log(err); });

受け取るサンプルレスポンスを以下に示します。レスポンスはWeb SDKの全バージョンで同じです。

copy
{
CREATORID: "2136000000006003",
MODIFIEDTIME: "2021-08-17 13:02:11:184",
CREATEDTIME: "2021-08-16 16:29:10:499",
CityName: "Pune",
ROWID: "2136000000011011"
}

ページネーションによる全行の取得

getPagedRows() ファンクションを使用して、コードにページネーションを組み込むことで、Data Storeのテーブルからすべての行データを取得できます。ページネーションを使用すると、テーブルの行をイテレーションを通じてバッチまたはページ単位で取得できます。

このイテレーションは、以下のサンプルコードに示すように hasNext によって検証され、すべての行が取得されるまで実行されます。テーブルは一意のテーブルIDまたは名前で参照できます。

たとえば、個別のページとして100件ずつバッチで行を取得する場合、以下に示すように max_rows パラメータのカウントを100に指定できます。

Note: max_rows パラメータはオプションです。この値が指定されない場合、SDK呼び出しはデフォルトで単一ページに200行を返します。

また、ループの各実行後、レスポンスデータに後続のデータ取得を認可するトークン文字列が返されます。以下に示すように、後続のイテレーション中に next_token パラメータを通じてこのトークンを渡す必要があります。ループの最初の実行時、next_token 文字列の値は undefined が割り当てられます。次のレコードセットは、レスポンスデータの more_records を通じて取得されます。

Note: ページネーションはWeb SDK v3.1.0アップデートから利用可能になりました。以前のバージョンのWeb SDKでは利用できません。
copy
{
if (!hasNext) {
return;
} 
catalyst.table
.tableId('userDetails') //Specify the Table ID or Table name of the table to fetch the records from
.getPagedRows({ next_token, max_rows: 100 }) //1ページで取得する最大行数を定義する and pass it along with nextToken
.then(resp => {
console.log('rows : ', resp.content); //テーブルから行を取得する
return getMyPagedRows(resp.more_records, resp.next_token); //次のレコードセットと次の反復用のトークン文字列を取得する
})
.catch((err) => {
console.log(err.toString());
}); 
}

さらにレコードが利用可能な場合に受け取るサンプルレスポンスを以下に示します。この場合、more_records パラメータは true に設定されます。

Web SDK v3.1.0

Web SDK v3.1.0
copy
{
"status": 200,
"content": [
{
"CREATORID": "3359000000006003",
"MODIFIEDTIME": "2022-01-11 18:18:24:855",
"name": "raj",
"CREATEDTIME": "2022-01-11 18:18:24:855",
"ROWID": "3359000000108111"
},
{
"CREATORID": "3359000000006003",
"MODIFIEDTIME": "2022-01-11 18:18:25:117",
"name": "raj",
"CREATEDTIME": "2022-01-11 18:18:25:117",
"ROWID": "3359000000108114"
},
{
"CREATORID": "3359000000006003",
"MODIFIEDTIME": "2022-01-11 18:18:25:120",
"name": "raj",
"CREATEDTIME": "2022-01-11 18:18:25:120",
"ROWID": "3359000000108117"
}
],
"message": "OK",
"more_records": true,
"next_token": "{{token}}"
}
View more

これ以上レコードが利用できない場合に受け取るサンプルレスポンスを以下に示します。この場合、more_records パラメータは false に設定されます。

Web SDK v3.1.0
copy
{
"status": 200,
"content": [
{
"CREATORID": "3359000000006003",
"MODIFIEDTIME": "2022-01-11 18:18:43:556",
"name": "raj99",
"CREATEDTIME": "2022-01-11 18:18:43:556",
"ROWID": "3359000000108410"
},
{
"CREATORID": "3359000000006003",
"MODIFIEDTIME": "2022-01-11 18:18:43:557",
"name": "raj98",
"CREATEDTIME": "2022-01-11 18:18:43:557",
"ROWID": "3359000000108413"
},
{
"CREATORID": "3359000000006003",
"MODIFIEDTIME": "2022-01-11 18:18:43:568",
"name": "raj96",
"CREATEDTIME": "2022-01-11 18:18:43:568",
"ROWID": "3359000000108417"
}
],
"message": "OK",
"more_records": false
}
View more
Note: テーブルから複数行のデータを取得するために以前のバージョンのWeb SDKで利用可能だった getAllRows() メソッドのサポートは廃止されました。ページネーションは、取得する行数の制限なくすべての行を取得できる拡張機能として利用可能になりました。getAllRows() メソッドは、今後のすべてのSDKバージョンから削除されます。コードを適宜アップグレードしてください。

最終更新日 2026-03-24 17:38:39 +0530 IST