Loading

[Intra-mart] 管理に役立つ便利なクエリ集~ユーザ管理編~

intra-mart_user_admin

NTT Dataが提供するシステム共通基盤(PaaS)のIntra-mart。Intra-martのユーザ管理に利用できる便利なクエリを集めました。クエリを活用して、ユーザメンテナンスにお役立て下さい(。・ω・。)

Intra-mart管理に役立つ便利なクエリ集~ユーザ管理編~

0. 環境

  • Package : WebPlatform /AppFramework Version7.2x
  • DataBase : SQL Server

※WebPlatformとバージョンは昔のものですが、基本的なDB構造に違いはないと。。信じてます(ノд・。)

1. Intra-martユーザ x 組織 x 役職情報一覧取得クエリ

Intra-martに登録しているユーザをベースに、そのユーザの組織・役職情報を一覧で取得します。削除ユーザ、廃止組織は含まず、有効なデータのみ取得しています。

SELECT
  a.user_cd 'ユーザコード'
  , a.user_name 'ユーザ名'
  , b.company_cd '会社コード'
  , d.department_name '会社名'
  , b.department_cd '組織コード'
  , c.department_name '組織名'
  , b.department_main '主管フラグ'
  , e.post_cd '役職コード'
  , f.post_name '役職名'
FROM
  imm_user a
  LEFT JOIN imm_department_ath b --# ユーザx組織紐付けテーブル
    ON
      b.user_cd = a.user_cd
      AND GETDATE() BETWEEN b.start_date AND b.end_date
      AND b.delete_flag = '0'
  LEFT JOIN imm_department c --# 組織テーブル(組織名取得用)
    ON
      c.company_cd = b.company_cd
      AND c.department_set_cd = b.department_set_cd
      AND c.department_cd = b.department_cd
      AND GETDATE() BETWEEN c.start_date AND c.end_date
      AND c.delete_flag = '0' 
  LEFT JOIN imm_department d --# 組織テーブル(会社名取得用)
    ON
      d.company_cd = b.company_cd
      AND d.department_set_cd = b.department_set_cd
      AND d.department_cd = b.company_cd --# 会社名取得用
      AND GETDATE() BETWEEN d.start_date AND d.end_date
      AND d.delete_flag = '0' 
  LEFT JOIN imm_department_post_ath e --# 組織x役職紐付けテーブル
    ON
      e.company_cd = b.company_cd
      AND e.department_set_cd = b.department_set_cd
      AND e.department_cd = b.department_cd
      AND e.user_cd = b.user_cd
      AND GETDATE() BETWEEN e.start_date AND e.end_date
      AND e.delete_flag = '0'
  LEFT JOIN imm_company_post f --# 会社x役職紐付けテーブル
    ON
      f.company_cd = e.company_cd
      AND f.department_set_cd = e.department_set_cd
      AND f.post_cd = e.post_cd
      AND GETDATE() BETWEEN f.start_date AND f.end_date
      AND f.delete_flag = '0' 
WHERE
  GETDATE() BETWEEN a.start_date AND a.end_date --# 現在有効期間内のユーザのみを対象とする
  AND a.delete_flag = '0' --# 削除されていないユーザのみを対象とする
ORDER BY
  a.user_cd ASC;

2. Intra-martユーザ x ロール紐付け一覧取得クエリ

Intra-martに登録されているユーザをベースに、各ユーザが保持するロールの一覧を取得します。

SELECT
	a.user_id
	, c.user_name AS user_name
	, a.role_id
	, b.display_name
FROM
	b_m_account_role_b a
	LEFT JOIN b_m_role_i b
		ON
			a.role_id = b.role_id --# ロールは期間化されないため時系列比較不要
			AND b.locale_id = 'ja'
	LEFT JOIN imm_user c
		ON
			c.user_cd = a.user_id
			AND GETDATE() BETWEEN c.start_date AND c.end_date
			AND c.delete_flag = '0'
WHERE
	CONVERT(NVARCHAR, GETDATE(), 111) + '|00:00:00' BETWEEN valid_start_date AND valid_end_date
	AND c.user_name IS NOT NULL --# 削除済みユーザは対象から除去

3. Intra-martユーザ x パブリックグループ紐付け一覧取得クエリ

Intra-martに登録されているユーザベースに、ユーザが保持するパブリックグループ・役割の一覧を取得します。

SELECT
	ipga.public_group_cd 'PGコード'
	, ipg.public_group_name 'PG名称'
	, ipgra.role_cd '役割コード'
	, ipgr.role_name '役割名称'
	, ipga.user_cd 'ユーザコード'
	, imu.user_name 'ユーザ名'
FROM
	imm_public_grp_ath ipga --# パブグル紐付け
	LEFT JOIN imm_public_grp ipg
		ON
			ipg.public_group_cd  = ipga.public_group_cd
			AND ipg.delete_flag = '0'
			AND GETDATE() BETWEEN ipg.start_date AND ipg.end_date
	LEFT JOIN imm_public_grp_role_ath ipgra
		ON
			ipgra.public_group_cd = ipg.public_group_cd
			AND ipgra.user_cd = ipga.user_cd
			AND ipgra.delete_flag = '0'
			AND GETDATE() BETWEEN ipgra.start_date AND ipgra.end_date
	LEFT JOIN imm_public_grp_role ipgr
		ON
			ipgr.role_cd = ipgra.role_cd
			AND ipgr.public_group_set_cd = ipgra.public_group_set_cd
			AND ipgr.delete_flag = '0'
			AND GETDATE() BETWEEN ipgr.start_date AND ipgr.end_date
	LEFT JOIN imm_user imu
		ON
			imu.user_cd = ipga.user_cd
			AND GETDATE() BETWEEN imu.start_date AND imu.end_date
			AND imu.delete_flag = '0'
WHERE
	ipga.delete_flag = '0'
	AND GETDATE() BETWEEN ipga.start_date AND ipga.end_date
	AND imu.user_name IS NOT NULL --# 削除済みユーザは対象から除去

4. Intra-martロール内包情報取得クエリ

Intra-martに登録されているロール情報を一覧で取得します。ロールは階層(2階層)を保持しているため、親階層、小階層を取得しています。

SELECT 
	a.role_id
	, b.child_role_id
	, a.category
FROM
	b_m_role_b a
	LEFT JOIN b_m_role_inclusion_b b
		ON
			b.parent_role_id = a.role_id

5. Intra-martパブリックグループと役割一覧取得クエリ

Intra-martに登録されているパブリックグループの情報を一覧で取得します。各パブリックグループには役割が登録されているため、パブリックグループと役割を一覧で取得します。

SELECT
	ipg.public_group_cd 'PGコード'
	, ipg.public_group_name 'PG名称'
	, ipgr.role_cd '役割コード'
	, ipgr.role_name '役割名称'
FROM
	imm_public_grp ipg
	LEFT JOIN imm_public_grp_role ipgr
		ON
			ipgr.public_group_set_cd = ipg.public_group_set_cd
			AND GETDATE() BETWEEN ipgr.start_date AND ipgr.end_date
WHERE
	GETDATE() BETWEEN ipg.start_date AND ipg.end_date;

アニメのタイトルロゴを作成できるロゴジェネレーターまとめ

Azureで無料のWordPress環境を構築する

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


New Article

  1. ドラクエウォーク イオ 特技こころ
  2. ドラクエウォーク バギ属性とくぎ こころ
  3. ドラクエⅣ BGM
  4. ドラクエウォーク 賢者 やまびこ
  5. ドラクエウォーク バトルマスタ 怒り
PAGE TOP