開発者向け機能:スクリプト:$p.deptId
## 概要
ログインしているユーザの組織IDを取得する関数について説明します。
## 構文
```
$p.deptId()
```
## 使用例
以下は組織を入力する項目にログインしているユーザの組織IDを設定するスクリプトです。
##### JavaScript
```
$p.set($p.getControl('ClassA'), $p.deptId());
```
## サンプルコード
<details>
<summary>1.所属組織に応じて選択肢を絞り込む</summary>
新規作成・編集画面を開いた際に、ログイン中のユーザが所属している組織(部署)に応じて、プルダウン項目(分類項目)の選択肢を絞り込みます。
対応表にない組織のユーザには選択肢は空白となります。
#### 実務での使いどころ
営業部第一課のユーザには営業関連の選択肢だけ、開発部システム開発課のユーザにはマニュアル・サンプルコード関連の選択肢だけ、といったように、組織(部署)ごとに入力してよい選択肢を分けたい場面に使えます。
#### 事前準備
1:プルダウン項目(分類項目)を1つ用意し、選択肢一覧に絞り込み対象の選択肢をすべて登録します。
1-1:「テーブルの管理 > 項目」タブで対象の分類項目(例:分類A)を選択します。
1-2:「選択肢」欄に、改行区切りで選択肢を入力します(例:営業資料 / 提案書 / マニュアル / サンプルコード)。
##### 選択肢設定(分類A)
```
営業資料
提案書
マニュアル
サンプルコード
```
2:対象ユーザーに組織(部署)を設定しておきます。
※本サンプルでは「営業部 第一課(DEPT002)」「開発部 システム開発課(DEPT004)」の2組織を使用します。
3:スクリプトを登録します。
3-1:「テーブルの管理 > スクリプト」タブで「新規作成」を選択します。
| 設定項目 | 設定値 |
|:--|:--|
| タイトル | 任意の名前(例:所属組織による選択肢絞り込み) |
| スクリプト | 下記サンプルコードを貼り付け |
| 出力先 | 「全て」のチェックを外し、「編集」にチェック(「編集」は新規作成画面にも適用されます) |
##### JavaScript
```
const COLUMN_NAME = 'ClassA';
const DEPT_OPTION_MAP = {
2: ['営業資料', '提案書'], // DEPT002 営業部 第一課
4: ['マニュアル', 'サンプルコード'] // DEPT004 開発部 システム開発課
};
$p.events.on_editor_load = function () {
// ログイン中のユーザが所属する組織IDを取得する(単一の値、数値)
const deptId = $p.deptId();
// 対応表にない組織の場合は、選択肢を全て非表示(空)にする
const allowedValues = DEPT_OPTION_MAP.hasOwnProperty(deptId)
? DEPT_OPTION_MAP[deptId]
: [];
// 分類Aの要素(プルダウン)を取得し、許可されていない選択肢を削除する
const $select = $p.getControl(COLUMN_NAME);
$select.find('option').each(function () {
const value = $(this).val();
// 未選択用の空の選択肢は残す
if (value !== '' && allowedValues.indexOf(value) === -1) {
$(this).remove();
}
});
};
```
##### 実行結果(営業部 第一課の所属ユーザーの場合)
```
分類Aの選択肢: 営業資料, 提案書
```
##### 実行結果(開発部システム開発課の所属ユーザーの場合)
```
分類Aの選択肢: マニュアル, サンプルコード
```
##### 実行結果(DEPT_OPTION_MAPにない組織所属ユーザーの場合)
```
分類Aの選択肢: (なし)
```
</details>



