ユーザマニュアル

【重要】年間サポートサービスプラン改定 プリザンター×MCPサーバ 「プリザンターをもっと活用するために」資料ダウンロード 「プリザンター入門」発売中!

2026/07/08

MANUAL

開発者向け機能:サーバスクリプト:depts

## 概要 [サーバスクリプト](/ja/manual/table-management-server-script)で使用可能な[組織](/ja/manual/table-management-choices-text-depts)に関する操作を行うオブジェクトです。 ## プロパティ プロパティはありません。 ## メソッド |No|Name|Description| |:---|:---|:---| |1|Get|「deptオブジェクト」を取得します。| ## 使用例 下記の例では、ログインユーザが所属している組織の情報を取得します。 ##### JavaScript ``` let myDept = depts.Get(context.DeptId); if (myDept) { context.Log(`DeptName: ${myDept.DeptName}`); } ``` ## サンプルコード <details> <summary>1. 複合条件判定によるボタン表示制御</summary> 組織・グループの所属状況を複合判断し、ボタン表示を制御するサンプルコードです。 ##### 機能要件 1. 以下条件で、ボタンの表示を制御します。 <table border="1"> <thead> <tr> <th>部門(組織)</th> <th>役職(グループ)</th> <th>承認</th> <th>更新</th> </tr> </thead> <tbody> <tr> <td rowspan="3">営業部</td> <td>部長</td> <td>表示</td> <td>表示</td> </tr> <tr> <td>課長</td> <td>非表示</td> <td>表示</td> </tr> <tr> <td>一般社員</td> <td>非表示</td> <td>非表示</td> </tr> <tr> <td rowspan="3">開発部</td> <td>部長</td> <td>非表示</td> <td>表示</td> </tr> <tr> <td>課長</td> <td>非表示</td> <td>表示</td> </tr> <tr> <td>一般社員</td> <td>非表示</td> <td>非表示</td> </tr> </tbody> </table> 2. 部門、役職を以下のように定義します。 |種類|ID|組織/グループ| |---|---|:---:| |営業部|6|組織| |開発部|7|組織| |部長|3|グループ| |課長|2|グループ| ※一般社員は、グループ所属無しの想定 3. ボタン制御 - 承認:プロセスで設定 - 更新:標準の更新ボタン これらを、elements.DisplayType で制御します。 ##### JavaScript 条件:画面表示の前 ```javascript // ===== 設定 ===== const deptSales = 6; // 営業部 const deptDev = 7; // 開発部 const groupManager = 3; // 部長 const groupSecManager = 2; // 課長 // ボタンごとの表示条件: // 「depts のいずれか」かつ「groups のいずれか」に所属していれば表示。 // 配列を空 [] にすると、その軸は「問わない(全員可)」を意味する。 const buttonRules = [ { id: 'Process_1', depts: [deptSales], groups: [groupManager] }, // 承認:営業部 × 部長 { id: 'UpdateCommand', depts: [deptSales, deptDev], groups: [groupManager, groupSecManager], }, // 更新:営業/開発 × 部長/課長 ]; // ===== エンジン:基本は触らない ===== const SHOW = 0; // DisplayType 0:標準(表示) const HIDE = 1; // DisplayType 1:無し(非表示) function isUserInDept(deptId, userId) { const dept = depts.Get(deptId); if (!dept) return false; return Array.from(dept.GetMembers()).some(function (m) { return m.UserId === userId; }); } function isUserInGroup(groupId, userId) { const group = groups.Get(groupId); if (!group) return false; return group.ContainsUser(userId); } // 軸(部門 or 役職)の判定: 未指定(空配列)なら無条件 true、そうでなければいずれかに一致 function matchesAny(ids, isMemberOf) { return ids.length === 0 || ids.some(isMemberOf); } const userId = context.UserId; buttonRules.forEach(function (rule) { const visible = matchesAny(rule.depts, function (id) { return isUserInDept(id, userId); }) && matchesAny(rule.groups, function (id) { return isUserInGroup(id, userId); }); elements.DisplayType(rule.id, visible ? SHOW : HIDE); }); ``` </details> ## 関連情報 <div id="ManualList"><ul><li><a href="/ja/manual/table-management-choices-text-depts">テーブルの管理:エディタ:項目の詳細設定:選択肢一覧:組織</a><span>2023/04/25 up</span></li></ul></article> <ul><li><a href="/ja/manual/table-management-server-script">テーブルの管理:サーバスクリプト</a><span>2026/02/10 up</span></li></ul></article> <ul><li><a href="/ja/manual/dept">組織管理機能</a><span>2025/07/08 up</span></li></ul></article> <ul><li><a href="/ja/manual/server-script">開発者向け機能:サーバスクリプト</a><span>2026/05/12 up</span></li></ul></article></div><input id="SearchTextHidden" type="hidden" value="" />
code VS Codeで開発作業をもっとスマートに

スクリプト開発の効率を高めたい方に、Code Assistをご用意しています。

Code Assistの詳細はこちら →
account_tree 複雑な構成も、すっきり視覚化

サイト構成やデータのつながりを可視化し、把握しやすくします。

Site Visualizerの詳細はこちら →
TOP