ユーザーとユーザーが所属するグループを一覧でエクスポートする方法はありますか?

2024年3月23日テクニカルメモ

ユーザーとグループ一覧の取得

WebFOCUSのClient Restアダプタとサンプルで用意されているシノニムを使用することで取得が可能です。

  • 利用するもの
    • データアダプタ WebFOCUS Client REST
    • シノニム GET_USERS、GET_GROUPS_WITHIN_USER

取得結果例

サンプルソース

本サンプルについて

本サンプルでは、以下を前提に作成しています。

  • 各シノニムは /ibi/apps/clrest に配置
サンプルソースを確認する

処理概要

  1. [GET_USERS]から"ユーザーID"とユーザーの"説明"を取得し結果をHOLDファイル[ALLUSER]に出力
  2. 1の結果から取得したユーザー数分以下処理を実施し、HOLDファイル[USERLIST]に出力(APPEND)
    • 1のHOLDファイルの結果を -READFILE で変数に格納
    • 変数に格納したユーザーIDを条件として、[GET_GROUPS_WITHIN_USER]から該当ユーザーの所属グループを取得
    • 取得した結果をHOLDファイル[USERLIST]に出力
  3. 2の結果から、以下を含む最終アウトプットをHTMLで出力
    • ユーザーID
    • ユーザーの詳細
    • グループID
    • グループの詳細
SET HOLDLIST = PRINTONLY
SET ASNAMES = ON

TABLE FILE clrest/GET_USERS
PRINT

   GET_USERS.ITEM.NAME3 AS 'USERID'
   GET_USERS.ITEM.DESCRIPTION1 AS 'USERDES'

ON TABLE HOLD AS ALLUSER FORMAT ALPHA 
END

-RUN

-DEFAULTH &USERID = '';
-DEFAULTH &USERDES = '';

FILEDEF USERLIST DISK USERLIST.FTM (APPEND

-REPEAT LAB1 &LINES TIMES

-READFILE ALLUSER

-SET &UNAME = TRUNCATE(&USERID);
-SET &UDES = TRUNCATE(&USERDES);

-SET &IBIRS_PATH = '/SSYS/USERS/' || '&UNAME.EVAL';

TABLE FILE clrest/GET_GROUPS_WITHIN_USER
PRINT
   COMPUTE UNAME/A30 = '&UNAME.EVAL';
   COMPUTE USERDES/A1000 = '&UDES.EVAL';
   COMPUTE GNAME/A100 = SUBSTRING(GET_GROUPS_WITHIN_USER.ITEM.FULLPATH1,19,100);
   COMPUTE GROUPDES/A100 = GET_GROUPS_WITHIN_USER.ITEM.DESCRIPTION1;
WHERE GET_GROUPS_WITHIN_USER.M6ILO.IBIRS_PATH EQ '&IBIRS_PATH'
WHERE GET_GROUPS_WITHIN_USER.ITEM.MEMBERSHIPTYPE EQ 'DirectAssignment'
ON TABLE HOLD AS USERLIST FORMAT ALPHA
END

-RUN

-LAB1

TABLE FILE USERLIST
PRINT
   GROUPDES AS 'グループの詳細'
BY UNAME AS 'ユーザーID'
BY USERDES AS 'ユーザーの詳細'
BY GNAME AS 'グループID'
ON TABLE SET STYLE *
     INCLUDE = IBFS:/EDA/EDASERVE/_EDAHOME/ETC/warm.sty,
$
ENDSTYLE
END

WebFOCUS Client RESTアダプタと各シノニムを使用することでユーザーとユーザーが所属しているグループ一覧が取得できるんだね。
ほかにも様々なシノニムが用意されているみたいだし、気になったら確認してみてね!