ユーザマニュアル



プリザンター大型オンラインイベントアーカイブ公開中
ITreview2000円ブレゼントキャンペーン 【5/12(月)無料セミナー】インプリム主催セミナー「プリザンターを使いこなす」を開催します!

2024/07/12

MANUAL

FAQ:一覧表示するレコードを所属組織別に分けたい

回答

拡張SQLの「OnSelectingWhere」を使用してください。


概要

事前に作成した組織・グループ別にレコード一覧画面に表示するレコードを制御します。このページでは本社(組織)に所属するユーザは登録された全てのレコードを閲覧することができ、その他の組織に所属するユーザは同グループ内で登録されたレコードのみを閲覧することができるようになります。

事前準備

(1) システム管理者でログイン後、下記の表を参考に[管理]-[ユーザの管理]、[組織の管理]、[グループの管理]からグループと組織情報を含めたユーザ情報を作成してください。ここでは本社に所属するユーザと各営業店に所属するユーザを想定し、組織とグループを構成します。下記にその構成を表に記載いたします。

ユーザ 組織 グループ
branch-user1 営業店1 グループ1
branch-user2 営業店2
branch-user3 営業店3 グループ2
head-user1 本社 -

image image image

(2)[管理]-[テーブルの管理]-[エディタ]より分類Bを任意の表示名にして(ここでは”店番”,わかりやすいように分類Cを”店名”に設定)、[一覧]タブからそれぞれを有効化してください。

(3) 各ユーザでレコードを少なくても一つ作成してください。
image (4) 以下のサンプルコード(Sql)の@_Dの値とサンプルコード(JSON)のSiteIdListの値を環境に合わせ、変更してください。
この例では@_Dの値は21,SiteIdListの値は1166になります。
image

(5) Extensionsテーブルに(3)で作成したサンプルコードとその他の項目を記入してください。
  拡張SQLについてはこちらをご確認下さい(/manual/extended-sql)

(6)プリザンダーを再起動してください。

Sql
(
    @_U = 1 or @_D = 1 --システム管理者のユーザIDまたは本社組織の組織ID
    or [ClassB] in (
        select [Depts].[DeptCode]
        from [GroupMembers]
        left join [Depts] 
        on Depts.DeptId = GroupMembers.DeptId
            and ([GroupMembers].[GroupId] in(
                select [GroupId] 
                from [GroupMembers] 
                where [DeptId] = @_D))
        where [Depts].[DeptCode] is not null)
)
JSON
{
    "SiteIdList": [2],
    "OnSelectingWhere": true
}

結果

以下のようにユーザ毎に所属するグループまたは組織によって表示(取得)されるレコードが変わります。

・本社ユーザでログインした場合
image ・営業店2に所属するユーザでログインした場合
image ・営業店3に所属するユーザでログインした場合
image

関連情報

TOP
このページをシェアする
記載された商品名、各製品名は各社の登録商標または商標です。 © Implem Inc.