user
概要¶
サーバスクリプトでユーザの情報を読み取るためのオブジェクトです。「usersオブジェクト」のGetメソッドで取得します。
プロパティ¶
| No | プロパティ名 | get | set | type | 説明 |
|---|---|---|---|---|---|
| 1 | UserId | ○ | int | ユーザID | |
| 2 | DeptId | ○ | int | 組織ID | |
| 3 | LoginId | ○ | string | ログインID | |
| 4 | Name | ○ | string | 名前 | |
| 5 | UserCode | ○ | string | ユーザコード | |
| 6 | TenantManager | ○ | bool | テナント管理者 | |
| 7 | Disabled | ○ | bool | 無効 |
使用例¶
下記の例では「usersオブジェクト」からユーザID 1 の「userオブジェクト」を取得し,ユーザの名前と組織IDをログに出力します。
JavaScript¶
サンプルコード¶
1. 担当者を選んだら、その人の所属組織名を入れる
備品申請などのテーブルで、担当者(申請者)を選んだその場で、その人の所属組織名を「所属」の項目に入れます。担当者の項目に自動ポストバックを設定し、「計算式の前」でusers.Getとdepts.Getから組織名を取得してmodelに書き込みます。新規作成の画面を開いたとき、担当者を選び直したとき、保存したときのいずれでも、所属が担当者に合わせて入ります。
実務での使いどころ¶
申請書・作業記録・問い合わせなど、人を選んで部署を書く場面で、所属の書き間違いや書き漏れを防げます。プロセスの「データの変更」で入れられる組織は、操作しているログインユーザーの組織のみです。ルックアップはテーブルの値を引く機能で、ユーザー管理の所属組織は引けません。社員マスタをテーブルとして持っている場合は、ルックアップを使ってください。
事前準備¶
1:「備品申請」テーブル(記録テーブル)で、以下の項目を有効化してください。
| 項目コード | 内容 |
|---|---|
| 担当者(Owner) | 申請者。項目の詳細設定で「自動ポストバック」を有効にする |
| 分類B(ClassB) | 所属。スクリプトが入れる。手入力させない場合は読み取り専用にする |
2:スクリプトを登録します。
2-1:「テーブルの管理 > サーバスクリプト」タブで「新規作成」を選択する。
2-2:タイトル: 任意の名前(例:deptNameFromOwner)
2-3:スクリプト: 下記サンプルコードを貼り付け
2-4:条件: 「計算式の前」にチェック
JavaScript¶
// 元にするユーザーの項目(担当者)と、所属組織名を入れる項目
const USER_COLUMN = 'Owner';
const DEPT_NAME_COLUMN = 'ClassB';
// 選ばれているユーザーの所属組織名を入れる。ユーザー・組織が取れないときは空にする
function setDeptName() {
const userId = model[USER_COLUMN];
const user = userId ? users.Get(userId) : null;
const dept = user ? depts.Get(user.DeptId) : null;
model[DEPT_NAME_COLUMN] = dept ? dept.DeptName : '';
}
setDeptName();
注記¶
- 「計算式の前」は、自動ポストバックを設定した項目を画面で変えたとき(保存の前)にも動き、
modelに入れた値が画面に表示されます。 - 担当者の選択肢に出るのは、テーブルにアクセス権のあるユーザーです。
- 無効にした組織の扱いは、バージョンによって違いました。1.5.6.1 では
depts.Getで取得できず所属が空になり、1.5.8.1 では組織名が入りました。 - 入るのは保存した時点の組織名です。あとで組織名を変えても、保存済みのレコードの所属は変わりません。
