0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

データローダーを使って、キューと公開グループに所属するロールを出してみた

Posted at

このドキュメントは何

SalesforceのロールとロールメンバーとグループをデータローダでExportして、
Excelでこねこねしてキューや公開グループに所属するロール一覧を作成しました。備忘として手順を記載しておきます。

背景

ロール変更の影響調査のため、どのキューや公開グループにどのロールが所属しているか知りたかった。

調査

以下のhelpを見てみると、どうやらキューはグループオブジェクト、キューメンバーはグループメンバーオブジェクトで管理されているらしい。

レポートを使用したキューメンバーの監視

help通りにレポートタイプ、レポートも作ってみたが、キューが正しく表示されない。そのため、データローダでデータをExportして、リストを突合してキューや公開グループに所属するロール一覧を作成してみることにした。

手順

  • データローダーでExport
    • グループ(Group)オブジェクトの全項目、全レコードをExport
    • 同様にグループメンバー(GroupMember)、ロール(Role)オブジェクトの全項目、全レコードをExport
  • Exportしたデータを加工してキューや公開グループに所属するロール一覧を作成
    作成するリストに必要な列は以下の通りです。
項目 説明 記述例
GroupMember.Id グループメンバーオブジェクトのId 「011」から始まる18桁の文字列
GroupId グループオブジェクトの参照項目 「00G」から始まる18桁の文字列
Group.Name グループのName項目。Group.TypeがRegularかQueueの場合には値が入る 公開グループやキューの表示ラベル
Group.Type グループの種別項目。公開グループ、キューなど。Regularが公開グループのこと。 Regular, Queue, RoleAndSubordinatesInternalなど
Group.種別 英語のままだと分かりずらかったのでGroup.Type列を日本語に置き換えました。Regularは公開グループ、Queueはキュー レギュラー、キューなど
GroupMember.UserOrGroupId ユーザーかグループオブジェクトの参照項目 「00G」(公開グループ)または「005」(ユーザー)から始まる18桁の文字列
Role.Name ロールオブジェクトのName項目 ロールの表示ラベル
  • グループメンバーオブジェクトのExportデータをもとにして、必要な列を他オブジェクトのシートからVLOOKUPなどで引っ張って追加します。上表の太字の項目が追加する列です。
    1. Group.Name
      1. GroupMember.GroupIdとGroup.Idが一致するグループオブジェクトのName項目の値を持ってきます。
    2. Group.Type
      1. GroupMember.GroupIdとGroup.Idが一致するグループオブジェクトのType項目の値を持ってきます。
    3. Group.種別
      1. 個人的に英語のままだと分かりずらかったのでGroup.Type列を日本語に置き換えました。Regularは公開グループ、Queueはキューに置き換えました。
    4. Role.Name
      1. ちょっとややこしく、二段階加工が必要になります。
      2. 前段階として、グループオブジェクトにRole.Nameという列を追加します。
      グループオブジェクトのName項目には、ロールの表示ラベルが入らないようです。Type項目の値がRoleから始まる文字列の場合はNameが空欄でした。(ちなみにType=Queue、RegularのNameには値が入っていました。)
      Group.RelatedIdとRole.Idが一致するロールオブジェクトのName項目を持ってきます。
      3. 続いて、これまで作成してきたリストに戻り、Role.Name列にGroupMember.UserOrGroupIdとGroup.Idが一致するRole.Name項目の値を持ってきます。
  • これで、キューや公開グループに所属するロール一覧を出すことができました。
    • 今回はロールの確認さえできればOKだったのでこれで終わりですが、ロール以外にキューや公開グループに所属するロール以外のメンバー(ユーザーやキュー、公開グループ)を出したい場合は、UserOrGroupIdをキーにユーザーオブジェクトやグループオブジェクトから必要な情報を追加すればよさそうです。

知見

  • キューはGroupオブジェクトで管理しているようでした。
  • ロールもGroupオブジェクトで管理しているようでした。(グループオブジェクトのTypeを分けて管理している様子)
  • Groupオブジェクトは公開グループ以外にも広めのものを管理するオブジェクトのようです。
    グループのメンバーとしてキューやロールなどいろいろなものを選べるので、そうしておかないと構造として難しいのかな。
  • GroupMemberオブジェクトはGroupと所属するユーザーやロールをつなぐ中間オブジェクト。GroupIdがグループの参照関係で、UserOrGroupIdがユーザーやロールの参照関係となっている
  • 公開グループはGroupオブジェクトで管理していて、ChatterグループはCollaborationGroupオブジェクトらしい
  • キュー(Queue)オブジェクトはないようだった。キューの sObject(QueueSobject)というオブジェクトがある。
    結局使わなかったのでなんなのかよく分かっていないです。

リファレンス

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?