items.Get
概要¶
itemsオブジェクトの「Getメソッド」です。指定したレコードまたは、指定したテーブルのレコードを情報を取得します。サイト統合を設定しているテーブルの場合は、統合された各レコードの情報もあわせて取得します。
制限事項¶
- 取得できるレコードの件数は Api.json の PageSize(デフォルトで 200) が最大となります。200件以上のレコードを取得する場合は、FAQ:APIで200レコードを超えるデータを取得したいを参照してください。
構文¶
パラメータ¶
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | object | ○ | サイトID、レコードIDを指定 |
| data | string | - | 選択するレコードのフィルタやソート等をJSON形式で指定。指定内容はJSONデータレイアウト:共通、JSONデータレイアウト:Viewを参照してください |
戻り値¶
該当するレコードのapiModelの配列を返却します。
サンプルコード¶
コード内の【 ... 】 は適宜修正してください。¶
1. レコードIDを指定して取得する
レコードIDを指定して取得します。
JavaScript¶
// レコードIDを指定し1件取得
const recordId = 【レコードID】;
const results = items.Get(recordId);
logs.LogInfo(`${results[0].Title} ${results[0].ClassA}`);
実行結果¶
2. サイトIDを指定しレコード全件取得する
サイトIDを指定し、レコードを全件取得します。
コードの途中で return を使っているため、サーバスクリプトの「関数化」を有効にしてください。
JavaScript¶
// サイト名を指定し全件取得
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}`);
}
実行結果¶
3. 日付の期間を指定しレコードを取得する
日付の期間を指定しレコードを取得します。
コードの途中で return を使っているため、サーバスクリプトの「関数化」を有効にしてください。
JavaScript¶
// サイト名と日付期間を指定し取得
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}`);
}
実行結果¶
4. ステータスコードを指定し取得する
ステータスを指定し取得します。
コードの途中で return を使っているため、サーバスクリプトの「関数化」を有効にしてください。
JavaScript¶
// サイト名とステータスコードを指定し取得
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}`);
}
実行結果¶
5. 文字列で検索(部分一致)し取得する
文字列で検索(部分一致)し取得します。
コードの途中で return を使っているため、サーバスクリプトの「関数化」を有効にしてください。
JavaScript¶
// サイト名と文字列で検索(部分一致)し取得
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}`);
}
実行結果¶
6. 200件を超えるレコードを取得する
200件を超えるレコードを取得します。
コードの途中で return を使っているため、サーバスクリプトの「関数化」を有効にしてください。
JavaScript¶
// サイト名を指定
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}`);
}
実行結果¶
注意事項¶
こちらはサーバスクリプトで使用するメソッドです。スクリプトでは使用できません。
