ユーザマニュアル

「プリザンターをもっと活用するために」資料ダウンロード

2025/12/15

MANUAL

開発者向け機能:サーバスクリプト:items.Get

## 概要 [itemsオブジェクト](/ja/manual/server-script-items)の「Getメソッド」です。指定したレコードまたは、指定したテーブルのレコードを情報を取得します。[サイト統合](/ja/manual/table-site-integration)を設定しているテーブルの場合は、統合された各レコードの情報もあわせて取得します。 ## 制限事項 1. 取得できるレコードの件数は Api.json の PageSize(デフォルトで 200) が最大となります。200件以上のレコードを取得する場合は、[FAQ:API で 200 レコードを超えるデータを取得したい](/ja/manual/faq-api-paging)をご参照ください。 ## 構文 ``` items.Get(id, data) ``` ## パラメータ |パラメータ|型|必須|説明| |:----------|:----------|:---:|:---------------------------| |id|object|○|サイトID、レコードIDを指定| |data|string|-|選択するレコードのフィルタやソート等をJSON形式で指定| ## 戻り値 該当するレコードの[apiModel](/ja/manual/server-script-api-model)の配列を返却します。 ## サンプルコード ##### コード内の{{ ... }} は適宜修正してください。 <details> <summary>1. レコードIDを指定して取得する</summary> レコードIDを指定して取得します。 ##### itemsGetP1.js ``` // レコードIDを指定し1件取得 const recordId = {{レコードID}}; const results = items.Get(recordId); logs.LogInfo(`${results[0].Title} ${results[0].ClassA}`); ``` ##### 実行結果 ``` (Info):サンプル案件E 改善要望 ``` </details> <details> <summary>2. サイトIDを指定しレコード全件取得する</summary> サイトIDを指定し、レコード全件します。 ##### itemsGetP2.js ``` // サイト名を指定し全件取得 const siteName = '{{サイト名}}'; // サイト情報を取得 const site = items.GetClosestSite(siteName); if (!site) { logs.LogInfo(`${siteName} サイト情報取得失敗`); return false; } const results = items.Get(site.SiteId); for (const item of results) { logs.LogInfo(`${item.Title} ${item.ClassA}`); } ``` ##### 実行結果 ``` (Info):サンプル案件E 改善要望 (Info):サンプル案件D 問い合わせ (Info):サンプル案件C 障害 (Info):サンプル案件B 改善要望 (Info):サンプル案件A 問い合わせ ``` </details> <details> <summary>3. 日付の期間を指定しレコードを取得する</summary> 日付の期間を指定しレコードを取得します。 ##### itemsGetP3.js ``` // サイト名と日付期間を指定し取得 const siteName = '({サイト名}}'; // サイト情報を取得 const site = items.GetClosestSite(siteName); if (!site) { logs.LogInfo(`${siteName} サイト情報取得失敗`); return false; } // 取得対象の期間を指定する const start = '2025/01/10'; const end = '2025/01/12'; const data = { View: { ColumnFilterHash: { DateA: `["${start} 00:00:00, ${end} 23:59:59"]`, }, ColumnSorterHash: { DateA: 'asc' }, }, }; const results = items.Get(site.SiteId, JSON.stringify(data)); for (const item of results) { logs.LogInfo(`${item.Title} ${item.ClassA} ${item.DateA}`); } ``` ##### 実行結果 ``` (Info):サンプル案件A 問い合わせ Fri Jan 10 2025 00:00:00 GMT+0900 (日本標準時) (Info):サンプル案件B 改善要望 Sat Jan 11 2025 00:00:00 GMT+0900 (日本標準時) (Info):サンプル案件C 障害 Sun Jan 12 2025 00:00:00 GMT+0900 (日本標準時) ``` </details> <details> <summary>4. ステータスコードを指定し取得する</summary> ステータスを指定し取得します。 ##### itemsGetP4.js ``` // サイト名とステータスコードを指定し取得 const siteName = '{{サイト名}}'; // サイト情報を取得 const site = items.GetClosestSite(siteName); if (!site) { logs.LogInfo(`${siteName} サイト情報取得失敗`); return false; } const status_codes = `["100","200"]`; const data = { View: { ColumnFilterHash: { Status: `${status_codes}`, }, ColumnSorterHash: { DateA: 'asc' }, }, }; const results = items.Get(site.SiteId, JSON.stringify(data)); for (const item of results) { logs.LogInfo(`${item.Title} ${item.ClassA} ${item.Status}`); } ``` ##### 実行結果 ``` (Info):サンプル案件A 問い合わせ 200 (Info):サンプル案件B 改善要望 100 (Info):サンプル案件C 障害 200 ``` </details> <details> <summary>5. 文字列で検索(部分一致)し取得する</summary> 文字列で検索(部分一致)し取得します。 ##### itemsGetP5.js ``` // サイト名と文字列で検索(部分一致)し取得 const siteName = '{{サイト名}}'; // サイト情報を取得 const site = items.GetClosestSite(siteName); if (!site) { logs.LogInfo(`${siteName} サイト情報取得失敗`); return false; } const text = `リリース`; const data = { View: { ColumnFilterHash: { DescriptionA: `${text}` }, ColumnSorterHash: { DateA: 'asc' }, ColumnFilterSearchTypes: { DescriptionA: 'PartialMatch' }, }, }; const results = items.Get(site.SiteId, JSON.stringify(data)); for (const item of results) { logs.LogInfo(`${item.Title} ${item.ClassA} ${item.DescriptionA}`); } ``` ##### 実行結果 ``` (Info):サンプル案件B 改善要望 次期リリース候補 (Info):サンプル案件E 改善要望 仕様確定しリリース済 ``` </details> <details> <summary>6. 200件を超えるレコードを取得する</summary> 200件を超えるレコードを取得します。 ##### itemsGetP6.js ``` // サイト名を指定 const siteName = '{{サイト名}}'; // サイト情報を取得 const site = items.GetClosestSite(siteName); if (!site) { logs.LogInfo(`${siteName} サイト情報取得失敗`); return false; } let offset = 0; let totalCount = 0; const allItems = []; while (true) { const data = { Offset: offset, }; // items.Get は第2引数に JSON 文字列を渡す const results = Array.from( items.Get(site.SiteId, JSON.stringify(data)) ); // 取得件数が 0 になったら終了 if (!results || results.length === 0) { break; } // 今回分を配列に追加 for (const item of results) { allItems.push(item); } // ログ出力 logs.LogInfo(`Offset=${offset}, 取得件数=${results.length}`); totalCount += results.length; // Offset を「今回取得した件数ぶん」進める offset += results.length; } logs.LogInfo(`最終的な取得件数: ${totalCount} 件`); // 取得した全レコードを処理 for (const item of allItems) { logs.LogInfo(`${item.Title} ${item.ClassA}`); } ``` ##### 実行結果 ``` (Info):Offset=0, 取得件数=200 (Info):Offset=200, 取得件数=150 (Info):最終的な取得件数: 350 件 (Info):サンプル案件A 問い合わせ (Info):サンプル案件B 改善要望 (Info):サンプル案件C 障害 (Info):サンプル案件D 問い合わせ (Info):サンプル案件E 改善要望 ・・・ ``` </details> ## 注意事項 こちらは[サーバスクリプト](/ja/manual/table-management-server-script)で使用するメソッドです。[スクリプト](/ja/manual/table-management-script)では使用できません。 ## 関連情報 ・[テーブルの管理:サーバスクリプト](/manual/table-management-server-script) ・[オブジェクトごとの実行タイミング](/manual/server-script-conditions) ・[itemsオブジェクト](/manual/server-script-items)
TOP