2020.11.9

今回ご紹介するのは、intra-mart既存のテーブルより”ユーザ別所属組織情報”を取得する方法になります。
通常、直接検索することは少ないかもしれませんが、覚えておくと便利です。
主要となるのは以下のテーブルになります。
・IMM_USER (ユーザ情報)
・IMM_DEPARTMENT (組織マスタ)
・IMM_DEPARTMENT_ATH (組織所属マスタ)
■実行SQL ・以下の例では、現在有効なユーザ別所属組織情報を取得しています。
SELECT
, IMM_USER.USER_CD -- ユーザコード
, IMM_USER.USER_NAME -- ユーザ名
, IMM_DEPARTMENT.DEPARTMENT_CD -- 組織コード
, IMM_DEPARTMENT.DEPARTMENT_NAME -- 組織名
, IMM_DEPARTMENT_ATH.DEPARTMENT_MAIN -- 主所属フラグ(0: 、1:主所属)
, IMM_USER.START_DATE -- (ユーザ)有効期間開始日
, IMM_USER.END_DATE -- (ユーザ)有効期間終了日
, IMM_DEPARTMENT_ATH.START_DATE -- (ユーザ所属)有効期間開始日
, IMM_DEPARTMENT_ATH.END_DATE -- (ユーザ所属)有効期間終了日
, IMM_DEPARTMENT.START_DATE -- (組織)有効期間開始日
, IMM_DEPARTMENT.END_DATE -- (組織)有効期間終了日
FROM
IMM_USER
INNER JOIN IMM_DEPARTMENT_ATH
ON IMM_USER.USER_CD = IMM_DEPARTMENT_ATH.USER_CD
AND SYSDATE BETWEEN IMM_DEPARTMENT_ATH.START_DATE AND IMM_DEPARTMENT_ATH.END_DATE -- 現在有効な期間
INNER JOIN IMM_DEPARTMENT
ON IMM_DEPARTMENT_ATH.COMPANY_CD = IMM_DEPARTMENT.COMPANY_CD
AND IMM_DEPARTMENT_ATH.DEPARTMENT_SET_CD = IMM_DEPARTMENT.DEPARTMENT_SET_CD
AND IMM_DEPARTMENT_ATH.DEPARTMENT_CD = IMM_DEPARTMENT.DEPARTMENT_CD
AND SYSDATE BETWEEN IMM_DEPARTMENT.START_DATE AND IMM_DEPARTMENT.END_DATE -- 現在有効な期間
AND IMM_DEPARTMENT.LOCALE_ID = 'ja'
AND IMM_DEPARTMENT.DELETE_FLAG = '0'
WHERE
SYSDATE BETWEEN IMM_USER.START_DATE AND IMM_USER.END_DATE -- 現在有効な期間
AND IMM_USER.LOCALE_ID = 'ja'
AND IMM_USER.DELETE_FLAG = '0'
他にも関連するテーブルはありますが、探す場合は「IMM_USER_○○」や「IMM_DEPARTMENT_○○」で調べてみて下さい。
また、intra-martの製品情報サイトにてintra-mart Accel Platform (iAP) のテーブル定義情報も公開されていますので、
こちらから調べてみるのも良いかもしれません。
それではまた次回。。。(^^)/~~