items.GetSiteByGroupName
概要¶
itemsオブジェクトの「GetSiteByGroupNameメソッド」です。指定したサイトグループ名をもとにサイト情報を取得します。
構文¶
パラメータ¶
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| groupName | object | ○ | サイトグループ名を指定 |
戻り値¶
該当するサイトのapiModelの配列を返却します。
使用例¶
以下の例では、サイト名が "SiteAdministrationGroup" のサイト情報を取得します。
const sites = Array.from(items.GetSiteByGroupName('SiteAdministrationGroup'));
if (sites.length) {
sites.forEach(site => {
context.Log(site.SiteId);
context.Log(site.Title);
context.Log(site.ReferenceType);
});
}
サンプルコード¶
Note
コード内の【 ... 】は適宜修正してください。
1. 指定したサイトグループ名で支店ごとの未着手の件数を一覧表示する
サイトグループ名が一致する全サイトを一括取得し、支店ごとの「未着手」の件数を集計します。
実務での使いどころ¶
複数拠点・複数案件のように同じ構成のサイトが増えていく運用で、リンク設定やサイトIDの管理をせずに集計対象を束ねられます。
新しい支店サイトを追加した場合も、サイトグループ名を設定するだけで自動的に集計対象へ加わります。
本部サイトから横断的に状況を集計したいダッシュボード的な用途に向いています。
前提条件¶
あらかじめ、集計対象にしたい各サイトの「サイトの設定」→「その他」→「サイトグループ名」に、共通の値を設定しておく必要があります。
同じグループ名を他の用途で使い回すと、意図しないサイトまで集計対象に含まれてしまうため、目的が分かる名前を付けてください(例:本部集計_サマリ用)。
// 実行条件:一覧表示前
const GROUP_NAME = '【グループ名】';
const STATUS_UNPROCESSED = 100; // 未着手
const sites = Array.from(items.GetSiteByGroupName(GROUP_NAME));
if (!sites.length) {
logs.LogUserError(`${GROUP_NAME} に該当するサイトが見つかりませんでした`, 'GroupSummary');
} else {
sites.forEach((site) => {
const view = {
View: {
ColumnFilterHash: {
Status: `["${STATUS_UNPROCESSED}"]`
}
}
};
const records = items.Get(site.SiteId, JSON.stringify(view));
context.Log(`${site.Title}(${site.SiteId})の未着手: ${records.Length}件`);
});
}
