次の方法で共有


アクセス チームおよび所有者チームを使用して、共同作業したり情報を共有したりする

所有者チームまたはアクセス チームを使用すると、ビジネス オブジェクトを簡単に共有し、Microsoft Dataverse のビジネス ユニット間でユーザーと共同作業を行うことができます。 チームは 1 つの部署に属していますが、他の部署のユーザーを含めることができます。 一人のユーザーを複数のチームに関連付けることができます。

所有者チームは行を所有し、チームにセキュリティ ロールが割り当てられています。 チームの特権は、これらのセキュリティ ロールによって定義されます。 チーム メンバーは、チームによって提供される特権に加えて、個々のセキュリティ ロールと、メンバーである他のチームのロールによって定義された特権を持ちます。 チームは、チームが所有するレコードに対するフル アクセス権を持っています。

チームはユーザーのグループへのアクセスを提供しますが、ユーザー所有のレコードを作成、更新、または削除するために必要な特権を付与するセキュリティ ロールに個々のユーザーを関連付ける必要があります。 これらの特権は、セキュリティ ロールをチームに割り当ててから、そのチームにユーザーを追加して適用することはできません。

アクセス チームは独自のレコードを所有していないし、チームにセキュリティ ロールが割り当てられていません。 チーム メンバーには、個々のセキュリティ ロールと、メンバーであるチームのロールによって定義された特権があります。 レコードはアクセス チームと共有され、チームには読み取り、書き込み、追加などのレコードに対するアクセス権が付与されるため、アクセス チーム メンバーはアクセス チームのアクセス権を使用してレコードを作成できません。 ユーザーは、レコードを作成するための作成特権を持つセキュリティ ロールを持っている必要があります。

チーム機能は、 Team テーブルと TeamTemplate テーブルでサポートされています。 Team テーブルは、所有者チームとユーザーが作成したアクセス チームを作成するために使用されます。 自動作成されたアクセス チームの場合は、 Team テーブルと TeamTemplate テーブルが使用されます。

所有者チームまたはアクセス チーム

チームの種類の選択は、目標、プロジェクトの性質、組織の規模によって異なります。 チームの種類を選択するときに使用できるガイドラインがいくつかあります。

所有者チームを使用するタイミング

  • ユーザー以外のチームによるレコードの所有は、会社のビジネス ポリシーによって必要です。

  • チームの数は、Dataverse システムの設計時にわかっています。

  • チームを所有することで進捗状況を毎日報告する必要があります。

アクセス チームを使用する時

  • チームは動的に形成され、溶解されます。 これは通常、確立された地域、製品、ボリュームなど、チームを定義するための明確な基準が提供されていない場合に発生します。

  • Dataverse システムの設計時にチームの数が不明です。

  • チーム メンバーには、レコードに対して異なるアクセス権が必要です。 レコードは複数のアクセス チームと共有でき、各チームはレコードに対して異なるアクセス権を提供します。 たとえば、1 つのチームにはアカウントの読み取りアクセス権が付与され、別のチームには同じアカウントの読み取り、書き込み、共有のアクセス権が付与されます。

  • 一意のユーザー セットでは、レコードの所有権を持たずに 1 つのレコードにアクセスする必要があります。

別の種類の "アクセス チーム" は、Web アプリケーションによって使用されるアクセス チーム テンプレートによって対処されます。 これは、特定の取引先企業レコードの営業チームなど、頻繁に変更されるチームの種類です。 ユーザーがアカウントの営業チームに追加されると、Web アプリケーションはバックグラウンドでこのレコードに固有のチームを作成し、そのレコードにユーザーを追加します。

この種類のアクセス チームについては、このトピックでは説明しません。

チームのセットアップ

所有者チームとアクセス チームの種類に加えて、アクセス チームはユーザー作成チームと自動作成チーム (システム管理) チームにさらに分割されます。 セットアップ情報は、各チームの種類に固有です。

所有者チーム

所有者チームは複数の行を所有できます。 所有者チームを作成するには、 Team テーブルを使用し、 Team.TeamType 列を Ownerに設定します。 TeamType値の一覧については、Team テーブルリファレンスを参照してください

環境内のテーブル定義を表示するには、環境内のテーブル定義の参照に関するページで説明されている テーブル定義ブラウザー ソリューションをインストールします。 テーブル リファレンスでテーブルのリファレンスドキュメントを閲覧することもできます。

チームを行の所有者にするには、行をチームに割り当てる必要があります。 割り当てるには、 AssignRequest メッセージを使用します。 所有者チームに行を一括で割り当てるには、 ReassignObjectsOwnerRequest メッセージまたは ReassignObjectsSystemUserRequest メッセージを使用します。

チームが所有する行には、 OwnershipType プロパティが OwnershipTypes.TeamOwned に設定されている必要があります。

所有者チームが行を所有せず、セキュリティ ロールがチームに割り当てられない場合は、 ConvertOwnerTeamToAccessTeamRequest メッセージを使用してアクセス チームに変換できます。 これは一方向の変換です。 アクセス チームを所有者チームに戻すことはできません。 変換中に、チームに関連付けられているすべてのキューとメールボックスが削除されます。

チーム メンバーを追加または削除するには、 AddMembersTeamRequest メッセージと RemoveMembersTeamRequest メッセージを使用します。

ユーザーが作成したアクセスチーム

ユーザーが作成したアクセス チームと複数の行を共有できます。

  • アクセス チームを作成するには、 Team テーブルを使用し、 Team.TeamType 列を Access に設定します。 TeamType値の一覧については、Teamテーブル定義を参照してください。

  • ユーザーが作成したアクセス チームとレコードを共有するには、 GrantAccessRequest メッセージを使用します。 ユーザーが作成したチームの場合、 Team.SystemManaged 属性は falseTeam.SystemManaged値の一覧については、Teamテーブル定義を参照してください。

  • チーム メンバーを追加または削除するには、 AddMembersTeamRequest メッセージと RemoveMembersTeamRequest メッセージを使用します。

  • チーム メンバーにレコードに対する異なるアクセス権を付与するには、複数のチームを作成し、各チームにレコードに対する異なるアクセス権のセットを付与します。

自動作成 (システム管理) アクセス チーム

自動作成 (システム管理) チームは、特定の行に対して作成され、他のレコードと共有することはできません。 システム管理チームの場合は、チーム テンプレートを指定する必要があります。 テンプレートを作成するには、 TeamTemplate テーブルを使用します。 テンプレートでは、チームの作成時にチーム ユーザーに付与される読み取りまたは書き込みなど、テーブルの種類とテーブル内の行に対するアクセス権を指定する必要があります。 テンプレートで指定するテーブルは、自動作成されたアクセス チームに対して有効にする必要があります。 行に対して異なるアクセス権をチーム メンバーに提供するには、複数のチーム テンプレートを作成します。 たとえば、アカウント テーブルの場合、行を表示するだけで済むチームの読み取りアクセス権を持つテンプレートを 1 つ指定します。 同じ行へのより多くのアクセス権を必要とするチームに対して、読み取り、書き込み、共有のアクセス権を持つ 2 つ目のテンプレートを提供します。

自動作成されたアクセス チームのテーブルを有効にするには、 AutoCreateAccessTeams 属性を true に設定します。

テーブルに対して作成できるチーム テンプレートの最大数は、 MaxAutoCreatedAccessTeamsPerEntity環境データベースの設定で指定します。 既定値は 4 です。 自動作成されたアクセス チームに対して有効にできるテーブルの最大数は、 MaxEntitiesEnabledForAutoCreatedAccessTeams環境データベースの設定で指定します。 既定値は 100 です。 これらの設定は、 OrganizationSettingsEditor の uinsg で更新できます。

ユーザーは、 AddUserToRecordTeamRequest メッセージと RemoveUserFromRecordTeamRequest メッセージを使用して特定のレコード内のユーザーを追加または削除すると、システム管理チームで自動的に追加および削除されます。 レコードに最初のユーザーを追加すると、実際のチームが作成され、チーム ID が AccessTeamIdで返されます。 このチームの Team.SystemManaged 列は trueに設定されています。 Team.SystemManaged値の一覧については、Team エンティティメタデータを参照してください。 この情報は、環境内のテーブル定義で確認できます。 メッセージの呼び出し元には、テーブルに対する共有権限と、テンプレートで指定されたアクセス権に一致する行に対するアクセス権が必要です。 たとえば、テンプレートで読み取りアクセス権が指定されている場合、呼び出し元のユーザーは行に対する読み取りアクセス権を持っている必要があります。 チームに追加するには、テンプレートで指定されたテーブルに対してユーザーが持っている必要がある最小アクセス レベルは、基本 (ユーザー) 読み取りです。

チーム テンプレートとシステム管理アクセス チームの間の保護者関係のため、テンプレートを削除すると、テンプレートに関連付けられているすべてのチームがカスケードルールに従って削除されます。

チーム テンプレートのアクセス権を変更した場合、変更は新しい自動作成アクセス チームにのみ適用されます。 既存のチームは影響を受けません。

チームへのクイック リファレンス

使用可能なチームへのクイック リファレンスとして、次の情報を使用します。

チーム 使用するタイミング どのエンティティを使用しますか? チーム テンプレートを使用しますか? チーム メンバーの追加または削除に使用するメッセージは何ですか? レコードを所有していますか? いくつの行を所有またはアクセスできるか? セキュリティ ロールは割り当て済みですか?
オーナー 所有権の記録はチームによって行う必要があります。

チームの数は、設計時にわかっています。
Team いいえ AddMembersTeamRequest
RemoveMembersTeamRequest
イエス 複数のレコードを所有できます。 イエス
アクセス、ユーザー作成 複数のレコードをチームと共有する必要があります。

デザイン時にチームの数が不明です。

チーム メンバーには、レコードに対して異なるアクセス権が必要です。
Team いいえ AddMembersTeamRequest
RemoveMembersTeamRequest
いいえ 複数のレコードにアクセスできます。 No. レコードに対するアクセス権を提供します。
アクセス、自動作成 (システム管理) 一意のユーザー セットは、1 つのレコードで動作します。

チーム メンバーには、レコードに対して異なるアクセス権が必要です。

レコードごとにチームを自動的に作成することが望ましいです。
TeamTemplate

Team
イエス AddUserToRecordTeamRequest
RemoveUserFromRecordTeamRequest
いいえ アクセスできるレコードは 1 つだけです。 No. レコードに対するアクセス権を提供します。

所有者チームとアクセス チームでは、レコードおよび、取引先企業とその取引先企業に関連するすべての営業案件などの関連する行にアクセス権が付与されます。 レコード間に親子関係がある場合は、カスケードルールが適用されます。 所有者チームの場合は、ユーザーに割り当てられたロールに加えて、ユーザーがメンバーであるチームに割り当てられたロールに基づいてテーブルにアクセスできます。 これにより、ユーザーは部署外の特権を持つことができます。 詳細情報: テーブル リレーションシップの動作

ユーザーには、アクセス チームに参加するための十分な特権が必要です。 たとえば、アクセス チームがアカウントに対する削除アクセス権を持っている場合、ユーザーは、チームに参加するために Account エンティティに対する Delete 権限を持っている必要があります。 特権が不十分なユーザーを追加しようとすると、"ユーザーがエンティティに対して十分な特権を持っていないため、アクセス チームにユーザーを追加できません" というエラー メッセージが表示されます。

こちらも参照ください

サンプル: アクセス チームを使用してレコードを共有する
ユーザー テーブルとチーム テーブル

チーム テーブル

TeamTemplate テーブル