コンテンツにスキップ

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
let user = users.Get(1);
context.Log(`${user.Name},${user.DeptId}`);

サンプルコード

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 では組織名が入りました。
  • 入るのは保存した時点の組織名です。あとで組織名を変えても、保存済みのレコードの所属は変わりません。

関連情報