ブログ

2022/05/18
【プリザンター】 第147回)拡張SQLを使った所属グループの確認テーブルの作成

所属グループの確認方法

こんにちは、CCSの田中です。久しぶりの投稿になります。

みなさん、プリザンターでのグループ設定を利用されていると思います。
ユーザをグループに所属させて、アクセス権限等の設定をするなどで使用しているのではないでしょうか?

このグループ設定は便利なのですが、現時点で機能的に不足しているところがあります。何かと言うと、例えばWindows(Active Directory)のように個人がどのグループに所属しているかの確認ができますが、プリザンターでは各グループに登録されているユーザは確認できるものの、個人の所属するグループを一括で確認する方法がありません。
そこで、今時点で困っている人もいるかもしれませんので、拡張SQLを使って「個人の所属するグループを確認するテーブル」を作成したいと思います。

拡張SQLは、プリザンター全体に影響が出てしまう部分があり、Webサービスの再起動も必要なため手間なのですが、興味がある方は作業に十分注意して実施してみてください。

拡張SQLを使った所属グループの確認テーブルの作成方法

まず、確認するテーブル(サイト)は以下の構成で作成してください。

  1. 記録テーブルを作成します。(サイトIDをメモっておいてください)
  2. テーブルに登録する項目は、IDとバージョン以外に「担当者」「分類A」を追加します。
  3. 「担当者」の選択肢一覧には、[[Users*]] などを指定します。確認したいユーザが含まれるようにすればよいです。
  4. 「分類A」の選択肢一覧には、[[Groups*]]を指定します。また複数選択にチェックを入れます。名前は「所属グループ」にします。


担当者設定

所属グループ

ここまでは難しくないと思います。
さて次に拡張SQLの設定です。

以下の2つのファイル(Group_Check.json、Group_Check.json.sql)を作成します。
これらをプリザンターのParameter\ExtendedSqls フォルダに保存します。
(Windowsの場合は、C:\web\pleasanter\Implem.Pleasanter\App_Data\Parameters\ExtendedSqlsなどです)

<Group_Check.json>

{
"Name": "Group_Check",
"Description": "所属グループ確認",
"SiteIdList" : [上記でメモしたサイトID] ,
"OnCreated": true,
"OnUpdated": true
}


<Group_Check.json.sql>
※下記のSQLはSQL Server用のため、PostgreSQLの場合の記載は異なります。

UPDATE
Results
SET
ClassA = STUFF((SELECT '","' + CONVERT(varchar,GroupId) FROM GroupMembers WHERE UserId = (SELECT Owner FROM Results WHERE ResultId = {{Id}}) FOR XML PATH('')), 1, 2, '[') + '"]'
WHERE
ResultId = {{Id}}



サイトIDは、上記でメモしたサイトIDに変更して保存してください。
保存した後に、Webサービス(Windowsの場合はIIS)を再起動します)

上記のテーブルで担当者を選択して「作成」または「更新」を選択すると、「所属グループ」にプリザンターに登録されているグループの一覧が表示され、所属しているグループにチェックが入った状態になります。

<作成/更新前>


<作成/更新後>

まとめ

さて、いかがでしたか?

拡張SQLを使われたことがない方もいらっしゃるかと思いますが、上記の様に便利に使うことができます。一度試していただくと、意外と簡単であることがわかります。今回所属グループに関しての設定でしたが、他のことにも流用できますので、参考にしてください。

導入の支援、スクリプト開発などでお困りの場合は、当社で支援もいたします。プリザンター逆引き辞典PDF版やスタイル・スクリプトサンプル集PDF版の販売もしております!

☆☆ブログ内容への質問や追加説明をご希望の方は
【問い合わせフォーム】 こちら からお気軽にお問い合わせください☆☆

PAGE TOP