コンテンツにスキップ

items.GetSiteByGroupName

概要

itemsオブジェクトの「GetSiteByGroupNameメソッド」です。指定したサイトグループ名をもとにサイト情報を取得します。

構文

items.GetSiteByGroupName(groupName)

パラメータ

パラメータ 型 必須 説明
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}件`);
    });
}

実行結果

東京支店(16491)の未着手: 11件
大阪支店(16492)の未着手: 24件
福岡支店(16493)の未着手: 8件

関連情報