コンテンツにスキップ

$p.deptId

概要

ログインしているユーザの組織IDを取得する関数について説明します。

構文

$p.deptId()

使用例

以下は組織を入力する項目にログインしているユーザの組織IDを設定するスクリプトです。

JavaScript
$p.set($p.getControl('ClassA'), $p.deptId());

サンプルコード

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で入れた値は、そのまま保存しても送られます。