コンテンツにスキップ

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 では組織名が入りました。
  • 入るのは保存した時点の組織名です。あとで組織名を変えても、保存済みのレコードの所属は変わりません。
2. 担当者が無効になっているレコードに、一覧で印を付ける

一覧を表示するとき、行ごとに担当者の「userオブジェクト」を取得し、Disabled(無効)であれば、その行に色を付けます。

実務での使いどころ

退職・休職・異動でアカウントを無効にしたあと、その人が担当者のまま残っている顧客・案件・問い合わせを見つけて、担当を引き継ぎたいときに使えます。一覧のフィルタでは、担当者が無効かどうかでは絞り込めません。

事前準備

1:「顧客台帳」テーブルで、担当者(Owner)を有効化してください。

2:「テーブルの管理 > スタイル」タブで、以下のスタイルを登録してください(出力先:一覧)。

.grid-row.disabled-owner td {
    background-color: #fde2e2;
}

3:スクリプトを登録します。

3-1:「テーブルの管理 > サーバスクリプト」タブで「新規作成」を選択する。
 3-2:タイトル: 任意の名前(例:markDisabledOwner)
 3-3:スクリプト: 下記サンプルコードを貼り付け
 3-4:条件: 「行表示の前」にチェック

JavaScript

条件:行表示の前

// 一覧で、担当者が無効(退職・休職など)になっているレコードの行に印を付ける。
// 行の見た目は、テーブルの管理の「スタイル」に登録した CSS のクラス(disabled-owner)で決める
const OWNER_COLUMN = 'Owner';

const ownerId = Number(model[OWNER_COLUMN]);
if (ownerId) {
    const owner = users.Get(ownerId);
    if (owner && owner.Disabled) {
        model.ExtendedRowCss = 'disabled-owner';
    }
}

注記

  • 管理者や分類項目([[Users]])の担当者を見るときは、OWNER_COLUMNをその項目名にしてください。

関連情報