rex0220 計算式プラグイン ユーザー情報の取得

rex0220 計算式プラグイン Ver.61 で、ユーザー情報・組織情報・グループ情報を扱うことができるようになりました。
ユーザー情報から所属組織、所属グループを取得してみます。

# 概要

ユーザー選択項目から、所属組織・所属グループを取得し、さらに所属組織の所属ユーザーをテーブルに展開します。
※ゲストユーザーは、ユーザー情報・組織情報・グループ情報を取得できません。

![2023-04-12_01h08_51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/235e3525-167c-3603-97b0-331c0cfbd824.png)

# 操作例

![2023-04-12_01h25_13.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/f48c2150-f914-4b12-7f38-62d8e2e21324.gif)

# プラグイン設定

![2023-04-12_01h28_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/5ca14a52-35cb-2274-e4c1-8627a375fd8f.png)

```.JS
// 誕生日
JOIN(UINFO(
  SLICE(SEL_CODE(ユーザー選択,"array"),0,1),"birthDate"
),"")
// 所属組織
SET_CODE(
  SPLIT(UINFO(SEL_CODE(ユーザー選択,"array"),"orgs"),",")
)
// 優先する組織
OINFO(
  UINFO(
    SEL_CODE(ユーザー選択,"array"),
  "primaryOrganization"),
"name")
// 所属グループ
SET_CODE(
  SPLIT(UINFO(SEL_CODE(ユーザー選択,"array"),"groups"),",")
)
// 組織テーブル
MAX(1,
  ARRAY_COUNT(
    SEL_CODE(所属組織,"array")
  )
)
// T組織選択
SET_CODE(ARRAY_GET(
  SEL_CODE(所属組織,"array")
,ROWNO(組織テーブル)))
// T組織所属ユーザー
SET_CODE(
  SPLIT(OINFO(SEL_CODE(T組織選択,"array"),"users"),",")
)
```

# 計算式ツールで UINFO 関数実行

計算式ツールで UINFO 関数を選択すると、関数の説明・使用例が表示されます。
UINFO() で、ユーザーのコード一覧が返ってきます。

![2023-04-12_01h39_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/e7bd344d-f32e-ecc2-0f5f-2d8b995be120.png)

計算式ツールで UINFO("ユーザーコード") を実行すると、指定したユーザーの情報が表示されます。
どのような情報があるのか確認できます。

![2023-04-12_01h35_42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/dd011357-e81e-1087-f3c3-444937201dd2.png)

オプションを並べることで、複数の情報を取得できます。
UINFO("営業太郎","id,code,name,birthDate")

![2023-04-12_01h46_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/64b6382a-270b-b73f-d8a4-6bb866fad954.png)

項目の計算式の確認と実行
項目の計算式を表示・実行して動作を確認できます。

![2023-04-12_01h49_32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/1cf944e3-ebaf-82ca-f756-e6f1e3f1d246.png)

# ユーザー情報 UINFOの使い方

- UINFO： ユーザー情報
    - UINFO([user][,option][,separator])
        - user: [code...] or [id..] or [code,id...]
        - option:
            - id: ユーザーid
            - code: ログイン名
            - ctime: 作成日
            - mtime: 更新日
            - valid: 有効
            - name: 表示名
            - surName: 姓
            - givenName: 名
            - surNameReading: よみがな（姓）
            - givenNameReading: よみがな（名）
            - localName: 別言語での表示名
            - localNameLocale: 別言語
            - timezone: タイムゾーン
            - locale: 言語
            - description: コメント
            - phone: 電話番号
            - mobilePhone: 携帯電話
            - extensionNumber: 内線
            - email: メールアドレス
            - callto:
            - url: URL
            - employeeNumber: 社員番号
            - birthDate: 誕生日
            - joinDate: 入社日
            - primaryOrganization: 優先する組織のid
            - sortOrder: 表示優先度
            - #xxxx: カスタマイズ項目のコード
            - orgs: 所属組織
            - groups: 所属グループ
        - separator：　区切り文字
- 例
    -  UINFO() -> ["code1",...]
    - UINFO("code1") -> [{"id":"1","code":"code1",...}]
    - UINFO("code1,code2") -> [{"id":"1","code":"code1",...},{"id":"2","code":"code2",...}]
    - UINFO("code1","name") -> ["name1"]
    - UINFO("code1","name,birthDate") -> ["name1,2000-01-01"]
    - UINFO("code1,code2","name,birthDate") -> ["name1,2000-01-01","name2,2000-01-01"]
    - UINFO("code1,code2","name,birthDate","+") -> ["name1+2000-01-01","name2+2000-01-01"]
    - UINFO("code1","orgs") -> ["org1,org2"]
    - UINFO("code1","groups") -> ["group1,group2"]

※ユーザー情報から取得します。

カスタマイズ項目は、#xxxx のように指定します。

![2023-04-12_07h59_50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/54713e92-69e9-3e72-7314-9d02384444c5.png)