context.AddMessage
概要¶
サーバスクリプトでブラウザの下部にメッセージを出力するメソッドです。複数回実行すると複数のメッセージを出力します。
構文¶
パラメータ¶
| パラメータ | 型 | 必須 | 概要 |
|---|---|---|---|
| message | string | ○ | メッセージ |
| css | string | CSSクラス名 |
戻り値¶
戻り値はありません。
使用例¶
下記の例では、組織ID 3 のユーザが状況項目が完了の場合にメッセージを出力します。
JavaScript¶
CSSクラス名¶
下記のCSSクラス名が使用できます。独自のCSSを作成し割り当てることも可能です。
| CSSクラス名 | スタイル |
|---|---|
| alert-information | 青の背景で情報を表します |
| alert-warning | 黄色の背景で警告を表します |
| alert-success | 緑の背景で警告を表します |
| alert-error | 赤の背景でエラーを表します |
サンプルコード¶
1. 完了にしたとき、保存は止めずに入力漏れと予定との差を知らせる
タスク管理のテーブルで、状況を「完了」にして更新したとき、保存は止めずに、実績工数の入力漏れや、予定工数との差をcontext.AddMessageでメッセージに出します。実績工数が空のときは黄色の警告、予定工数の1.2倍を超えたときは青の知らせを出します。
実務での使いどころ¶
実績工数の入力漏れは、工数の集計や見積の振り返りを狂わせます。項目の入力検証などで必須にすると、未入力のまま完了にできなくなり、現場の作業が止まります。このサンプルでは、完了の操作はそのまま通し、更新したその画面で入力漏れや予定との差を知らせます。保存を止めたいときはcontext.Errorを使います。
事前準備¶
1:「タスク管理」テーブル(期限付きテーブル)で、以下の項目を有効化してください。
| 項目コード | 内容 |
|---|---|
| 数値A(NumA) | 実績工数 |
| 数値B(NumB) | 予定工数 |
2:スクリプトを登録します。
2-1:「テーブルの管理 > サーバスクリプト」タブで「新規作成」を選択する。
2-2:タイトル: 任意の名前(例:noticeOnComplete)
2-3:スクリプト: 下記サンプルコードを貼り付け
2-4:条件: 「更新前」にチェック
JavaScript¶
// 完了の状況の値
const COMPLETED_STATUS = 900;
// 実績工数が予定工数のこの倍率を超えたら知らせる
const OVER_RATE = 1.2;
// 状況を完了にして更新するとき、保存は止めずに、入力漏れや予定との差をメッセージで知らせる
function noticeOnComplete() {
if (model.Status !== COMPLETED_STATUS) {
return;
}
const actual = model.NumA; // 実績工数
const planned = model.NumB; // 予定工数
if (!actual) {
context.AddMessage('実績工数が未入力のまま完了にしました。実績工数を入力して、もう一度更新してください。', 'alert-warning');
return;
}
if (planned && actual > planned * OVER_RATE) {
context.AddMessage(
`実績工数(${actual}時間)が予定工数(${planned}時間)を2割以上超えています。原因を内容欄に残してください。`,
'alert-information'
);
}
}
noticeOnComplete();
注記¶
- メッセージを出しても、保存は止まりません。標準の「更新しました」の下に並んで表示されます。
- 「作成前」でも
context.AddMessageは呼べますが、作成のあとは編集画面へ切り替わるため、メッセージは消えます。このサンプルの条件は「更新前」のみにしています。 - 実績工数が 0 のときも、未入力として扱います。
