$p.deptId
概要¶
ログインしているユーザの組織IDを取得する関数について説明します。
構文¶
使用例¶
以下は組織を入力する項目にログインしているユーザの組織IDを設定するスクリプトです。
JavaScript¶
サンプルコード¶
Note
コード内の【 ... 】は適宜修正してください。
1. 新規作成の画面で、所属組織に応じた受付窓口と拠点を入れておく
依頼のテーブルで新規作成の画面を開いたとき、ログイン中のユーザが所属している組織に応じて、受付窓口(分類B)と拠点(分類C)に値を入れておきます。入れるのは画面の値のみで、保存する前に選び直せます。対応表にない組織のユーザのとき、すでに値が入っている項目は変えません。
実務での使いどころ¶
本社・支店など、拠点ごとに受付窓口が違う依頼(備品・施設・アカウントの申請など)で、窓口の選び間違いや選び忘れを減らせます。標準の既定値は項目ごとに1つの値で、組織ごとに変えることはできません。このサンプルでは、組織に応じた値を新規作成の画面に入れておき、出張先の拠点に頼むときなどはその場で選び直せるようにします。
事前準備¶
1:「依頼」テーブル(期限付きテーブル)で、以下の項目を有効化し、選択肢一覧を設定してください。
| 項目コード | 内容 | 選択肢一覧(例) |
|---|---|---|
| 分類B(ClassB) | 受付窓口 | 本社総務、大阪総務 |
| 分類C(ClassC) | 拠点 | 東京本社、大阪支店 |
2:スクリプトを登録します。
2-1:「テーブルの管理 > スクリプト」タブで「新規作成」を選択する。
2-2:タイトル: 任意の名前(例:組織による初期値)
2-3:スクリプト: 下記サンプルコードを貼り付け
2-4:出力先:「全て」にチェック
JavaScript¶
/**
* ================================================================
* サンプル 新規作成の画面で、所属組織に応じた受付窓口と拠点を入れておく
* ================================================================
*
* 【概要】
* 新規作成の画面を開いたとき、ログイン中のユーザが所属している組織に
* 応じて、受付窓口(分類B)と拠点(分類C)に値を入れておきます。
* 入れるのは画面の値のみで、保存する前に選び直せます。
*
* 【使い方】
* DEFAULTS_BY_DEPT を、組織IDごとに入れておく項目と値の対応表に
* 置き換えてください。値は各項目の選択肢にあるものを書きます。
* ================================================================
*/
// 組織ごとに、新規作成のときに入れておく値(項目名: 値)。値は各項目の選択肢にあるものを書く
const DEFAULTS_BY_DEPT = {
【組織ID_1】: { ClassB: '本社総務', ClassC: '東京本社' }, // 東京本社の組織
【組織ID_2】: { ClassB: '大阪総務', ClassC: '大阪支店' } // 大阪支店の組織
};
// 新規作成の画面を開いたとき、自分の組織に応じた値を入れておく(選び直しは自由)
$p.events.on_editor_load = function () {
if ($p.action() !== 'new') {
return;
}
const defaults = DEFAULTS_BY_DEPT[$p.deptId()];
if (!defaults) {
return;
}
Object.keys(defaults).forEach(function (columnName) {
const $control = $p.getControl(columnName);
// すでに値が入っている項目(既定値など)は変えない
if ($control.val()) {
return;
}
$p.set($control, defaults[columnName]);
});
};
注記¶
- 対応表の値は、各項目の選択肢一覧にある値を書いてください。
$p.action()がnew(新規作成画面)のときのみ値を入れます。編集画面では入れません。- 値を入れるときは
$p.setを使っています。$p.setで入れた値は、そのまま保存しても送られます。
