2020.11.9

今回ご紹介するのは、intra-mart既存のテーブルより”ユーザ別所属組織情報”を取得する方法になります。
通常、直接検索することは少ないかもしれませんが、覚えておくと便利です。
主要となるのは以下のテーブルになります。
・IMM_USER (ユーザ情報)
・B_M_ROLE_B (ロールマスタ)
・B_M_ACCOUNT_ROLE_B (アカウント付与ロール)
■実行SQL ・以下の例では、現在有効なユーザ別ロール情報を取得しています。
SELECT
IMM_USER.USER_CD -- ユーザコード
, IMM_USER.USER_NAME -- ユーザ名
, B_M_ACCOUNT_ROLE_B.ROLE_ID -- ロールID
, B_M_ROLE_B.ROLE_NAME -- ロール名
, B_M_ROLE_I.DISPLAY_NAME -- (ロール)画面表示名
, IMM_USER.START_DATE -- (ユーザ)有効期間開始日
, IMM_USER.END_DATE -- (ユーザ)有効期間終了日
, B_M_ACCOUNT_ROLE_B.VALID_START_DATE -- (ロール)有効期間開始日
, B_M_ACCOUNT_ROLE_B.VALID_END_DATE -- (ロール)有効期間終了日
FROM
IMM_USER
LEFT OUTER JOIN B_M_ACCOUNT_ROLE_B
ON IMM_USER.USER_CD = B_M_ACCOUNT_ROLE_B.USER_CD
INNER JOIN B_M_ROLE_I
ON B_M_ACCOUNT_ROLE_B.ROLE_ID = B_M_ROLE_I.ROLE_ID
INNER JOIN B_M_ROLE_B
ON B_M_ACCOUNT_ROLE_B.ROLE_ID = B_M_ROLE_B.ROLE_ID
WHERE
SYSDATE BETWEEN IMM_USER.START_DATE AND IMM_USER.END_DATE
AND IMM_USER.LOCALE_ID = 'ja'
AND SYSDATE BETWEEN B_M_ACCOUNT_ROLE_B.VALID_START_DATE AND B_M_ACCOUNT_ROLE_B.VALID_END_DATE
AND B_M_ROLE_I.LOCALE_ID = 'ja'
他にも関連するテーブルはありますが、探す場合は「IMM_USER_○○」や「B_M_ROLE_○○」で調べてみて下さい。
また、intra-martの製品情報サイトにてintra-mart Accel Platform (iAP) のテーブル定義情報も公開されていますので、
こちらから調べてみるのも良いかもしれません。
それではまた次回。。。(^^)/~~