サポート > リポジトリ > 関数 > アカウント
ja | en

アカウント処理に関する3個の関数を紹介します。

USERNAME()

ログオンアカウント名を返します。

例: ログオンアカウントが "admin" なら "管理者" という文字列を、そうでなければ "一般" という文字列をセットする。

>IF(EXACT(USERNAME(),"admin"), "管理者","一般")

USERINFO(項目名)

USERINFO(項目名#id)

ログオンアカウントに関する情報を返します。引数には juser モデルの項目名(英語)を指定します。

戻り値の型は文字列になります。

繰り返し項目の場合は item.0, item.1 と指定します。 繰り返しコンテナの場合は cont.0.str と指定します。

チェックボックスなど複数個の値をもつ場合は「空白」を区切り文字とした一つの文字列を返します。

対象項目がモデル参照の場合、「項目名」は内容部を、「項目名#id」はID部を返します。(なおID部も常に文字列型になります。)

例1: ログオンアカウントの氏名情報を取得する。

USERINFO("name")

例2: juserモデルに、別モデル "company" を参照する項目 "companyname" を用意した。その companyname 項目の ID 部を取得する。

USERINFO("companyname#id")

参照項目が参照する先のモデルが複合主キーの場合、最初の主キーは "#id" ですが、二番目の主キーは "#id2" で参照します。以降、"#id3", "#id4",... となります。

詳細

USERINFO関数の戻り値はログオン時にセットされる

USERINFO関数の戻り値は、ログオン時に一度 juser テーブルの値を読み込んで用意します。この方式のため、juser の更新後に USERINFO 関数が(更新前の)古い値を返すことがあります。

戻り値にnullは返されない

USERINFO関数の戻り値がnullとなることはありません。値がない場合は、空文字 "" を返します。

IF関数の条件部に用いるときは USERINFO("name") == null とするのではなく、次のようにISBLANK関数を利用して判定してください。

IF(ISBLANK(USERINFO("name")), ...)

JGROUPID()

ログオンアカウントが所属するグループIDの配列(整数型)を返します。値は昇順に並んでいます。

例:利用者の所属するグループが「ない」か、またはグループID 1000 に所属している場合は null を、そうでなければ(所属している)先頭のグループIDを返す。

IF(
  OR(
    ISEMPTY(JGROUPID()), 
    CONTAINS(JGROUPID(),1000)
  ), 
  null, 
  CHOOSE_INT(1,JGROUPID())
)

グループ「本社、A事業所、B事業所、C事業所」を想定します。本社のグループIDを1000とします。
本社所属の社員はA,B,C全ての事業所に所属させているとします。
グループで検索できるよう、検索画面にグループ(jgroupを参照する項目)を用意します。参照型はコンボボックスとします。ここで検索画面の初期値として上記式を設定すると、所属グループに本社が含まれている場合は、検索条件の初期値が 「(すべて)」(null) になります。本社が含まれていない場合は先頭の1件をコンボボックスにセットします。