開発者向け機能:サーバスクリプト:context.Log
概要
サーバスクリプトのログをブラウザのコンソールに出力します。サーバ側で出力したログをクライアントに送出し、クライアント側のスクリプトでブラウザのコンソールに出力します。
構文
パラメータ
| パラメータ | 型 | 必須 | 概要 |
| message | object | ○ | エラーメッセージ |
戻り値
戻り値はありません。
使用例
下記の例では、組織ID 3のユーザが状況項目を完了にしようとした際に、ログを出力します。また、try catchによりエラーを検出した場合にも、エラー情報をログに出力します。
| try {
if (context.DeptId === 3 && model.Status === 900) {
context.Log('条件に該当しました。');
}
} catch (e) {
context.Log(e.stack);
}
|
サンプルスクリプト
1. 指定したサイトグループ名で支店ごとの未着手の件数を一覧表示する
サイトグループ名が一致する全サイトを一括取得し、支店ごとの「未着手」の件数を集計します。
実務での使いどころ
複数拠点・複数案件のように同じ構成のサイトが増えていく運用で、リンク設定やサイトIDの管理をせずに集計対象を束ねられます。新しい支店サイトを追加した場合も、サイトグループ名を設定するだけで自動的に集計対象へ加わります。本部サイトから横断的に状況を集計したいダッシュボード的な用途に向いています。
前提条件
あらかじめ、集計対象にしたい各サイトの「サイトの設定」→「その他」→「サイトグループ名」に、共通の値を設定しておく必要があります。同じグループ名を他の用途で使い回すと、意図しないサイトまで集計対象に含まれてしまうため、目的が分かる名前を付けてください(例:本部集計_サマリ用)。
JavaScript
| // 実行条件:一覧表示前
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件
関連情報