セキュリティセンターのユーザーをエクスポートするプロシジャ

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

WebFOCUS Clientのセキュリティセンターで管理されるユーザーエクスポートは、WebFOCUS Client REST アダプタの機能を使用したプロシジャにより行います。
本稿では、ユーザーエクスポート用のCSVを出力するプロシジャの作成、使用方法についてご紹介いたします。

なお、本稿でご紹介する手順はWebFOCUS Client REST アダプタがすでに構成済みであることが条件となります。
WebFOCUS Client REST アダプタの構成がお済みでない場合は、こちらの記事(データアダプタの構成)を参考にアダプタの構成および「wfcrest」フォルダの作成とプログラムの配置を実施ください。

ユーザーエクスポート用プロシジャの作成

下記を参考にプロシジャを作成・配置します。
Reporting Serverの管理コンソールより、プロシジャ編集画面を立ち上げ、下記のプログラムをコピーし任意の場所・名前で保存します。
テキストエディタ等で作成し、直接フォルダに配置するなどの方法でも可能ですので、任意の方法で実施ください。

なお、本稿のプログラムはアプリケーションフォルダとしてwfcrestが作成済みであり、かつWebFOCUS Client REST用のシノニムやサンプルプログラムが適切に配置されていることが前提となる点にご注意ください。
出力先(追記先)はご利用の環境に合わせ変更することも可能です。

◆プログラム

-*********************************************
-* ユーザ情報の取得
-*********************************************
TABLE FILE wfcrest/GET_USERS                                                        
PRINT                                                                           
     GET_USERS.ITEM.NAME3        AS 'USERID'                                           
     GET_USERS.ITEM.DESCRIPTION1 AS 'USERNAME'                          
     GET_USERS.ITEM.EMAIL        AS 'EMAIL'                                    
     GET_USERS.ITEM.NAME2        AS 'STATUS'                                           
WHERE NOT GET_USERS.ITEM.NAME3 IN ( 'admin','superuser','public','wfdesktop')
ON TABLE HOLD AS HLDUSER
ON TABLE SET ASNAMES ON
END
-RUN


-*********************************************
-* ユーザのグループ情報の取得
-*********************************************
-* ユーザ数分の処理回数を取得
-SET &REPTIME = &LINES;

-*** CSV に書き込む情報の初期設定 ***
-* 出力先
FILEDEF USERCSV DISK baseapp/userimport.csv
-RUN

-* ユーザ情報の変数の初期設定
-DEFAULTH &USERID=''
-DEFAULTH &USERNAME=''
-DEFAULTH &EMAIL=''

SET MSG = OFF

-*** リピート処理 (開始)****
-REPEAT :CRT_USRLST &REPTIME TIMES;
-READFILE HLDUSER                                                    
-SET &USERID   = TRUNCATE(&USERID);
-SET &USERNAME = TRUNCATE(&USERNAME);
-SET &EMAIL    = TRUNCATE(&EMAIL);
-RUN   
 
-SET &IBIRS_PATH = '/SSYS/USERS/' || &USERID;                                         

-TYPE ************************
-TYPE 対象ユーザ:&IBIRS_PATH

DEFINE FILE wfcrest/GET_GROUPS_WITHIN_USER 
 USERID/STRING   = '&USERID';
 PASSWARD/STRING = '&USERID';
 USERNAME/STRING = '&USERNAME';
 EMAIL/STRING    = '&EMAIL';
 STATUS/STRING   = 'MUSTCHANGE';
 GRPNAME/STRING  = REPLACE(GET_GROUPS_WITHIN_USER.ITEM.FULLPATH1,'IBFS:/SSYS/GROUPS/','');
END
TABLE FILE wfcrest/GET_GROUPS_WITHIN_USER                                           
SUM
 COMPUTE CNT/I4      = CNT + 1; NOPRINT
 COMPUTE GRPS/STRING = IF CNT EQ 1 THEN GRPNAME ELSE LAST GRPS || ';' || GRPNAME; AS 'GROUPS'                          
BY USERID 
BY PASSWARD 
BY USERNAME 
BY EMAIL 
BY STATUS
BY TOTAL HIGHEST 1 GRPNAME NOPRINT
BY GRPNAME NOPRINT
WHERE GET_GROUPS_WITHIN_USER.M6ILO.IBIRS_PATH EQ '&IBIRS_PATH.IBFS Path to a User.'
WHERE GET_GROUPS_WITHIN_USER.ITEM.MEMBERSHIPTYPE EQ 'DirectAssignment'
ON TABLE SET HOLDLIST PRINTONLY
ON TABLE HOLD AS USERCSV FORMAT DFIX HEADER NO DELIMITER ,
END                                                                             
-RUN
-TYPE 所属グループ数:&RECORDS
-TYPE ************************

-*** CSVへ追記 ***
FILEDEF USERCSV DISK baseapp/userimport.csv (APPEND
-RUN
 
-:CRT_USRLST
-*** リピート処理 (終了)****

実行と結果の確認

作成したプロシジャを実行し、出力されたCSVファイルをご確認ください。
デフォルト設定時のファイルの出力場所:/ibi/apps/baseapp/userimport.csv
CSVファイルはWebFOCUS Clientのセキュリティセンターよりインポートが可能です。