管理者は、組織が階層データを視覚化して操作できるようにする階層を設計および発行できます。 複数の階層を設計して異なるリレーションシップを表示したり、アクティブなレコードのみを表示したり、特定の国/地域でフィルター処理したりするなど、データの代替ビューを提供することができます。
ビジネス要件に応じて、次の種類の階層を設計できます。
- 単一テーブル (自己参照)
- 複数テーブル
- 単一テーブルリレーションシップとマルチテーブル リレーションシップの両方を組み合わせたハイブリッド階層。
[前提条件]
階層を設計して発行する前に、次の前提条件が満たされていることを確認します。
- システム管理者特権が必要です。
- 階層に含めるテーブルに必要なリレーションシップが必要です。
- 1 つのテーブル階層の場合、親行を指すリレーションシップが存在する必要があります。
- 複数テーブル階層の場合、テーブル間のリレーションシップが存在する必要があります。
リレーションシップを作成するには、「 エンティティ リレーションシップの作成と編集」を参照してください。
- Power Platform でレガシ階層制御機能が有効になっている場合は、無効にする必要があります。
レガシ階層コントロールは非推奨であり、新しいビジュアル階層機能には関連しません。 これを有効にしたままにすると、構成された階層を持つエンティティのコマンド バーに [ 階層の表示 ] ボタンが 2 回表示され、ユーザーが混乱します。
次の手順に従います。- Power Apps Maker Portal にサインインします。
- 左側のウィンドウから [ アプリ ] を選択し、販売アプリを選択します。
- アプリ デザイナーで、コマンド バーから [設定] を選択します。
-
[設定] ダイアログ ボックスで、[機能] タブを選択し、(廃止) [階層の表示] 機能オプションを有効にします。
- アプリを保存し、公開します。
デザインと公開
階層を設計して発行するには、次の手順に従います。
- 営業アプリにサインインし、ページの左下隅にある エリア変更>アプリの設定 に移動します。
- 全般設定で、階層のビジュアル化を選択します。
- 新しい階層を選択し、階層の名前を入力します。
-
階層のルート ノードを構成します。
注
1 つのテーブル階層を作成する場合、子ノードを追加する必要はありません。 ルート ノードを構成した後、手順 6 に進み、プロセスを完了します。
- 子ノードを構成します。
- 保存 を選択します。
- 階層を発行する前に次のタスクを実行するには、[プレビュー] を選択します。
- ノードの展開と折りたたみ、詳細の表示、クイック アクションの実行など、ユーザーが行うとおりに階層を操作します。
- 設定を変更し、結果に満足するまで変更をプレビューし続けてください。
- プレビュー ウィンドウの上部にあるレコード名を選択して、表示するデータを変更します。
- 組織で発行 する前に、階層のトラブルシューティングを行います。
-
公開を選択し、確認メッセージで OK を選択します。
階層はアクティブであり、ユーザーが表示および操作できます。
階層のルート ノードを構成する
目的のテーブルを選択して、階層のルート ノードを構成します。 テーブルは、階層の開始点です。
階層デザイナー ページで、[ 追加 ] を選択し、自己参照リレーションシップを持つ目的のテーブルを選択します。 ここでは、 Account テーブルを追加します。
設定ペインがページの右側に開きます。
[ 全般 ] タブで、子と親のリレーションシップを定義し、ビューとフォームを選択します。
Setting Description すべてのレベルを展開する 階層内の親ノードのすべての子レコードを表示するオプションを有効にします。 ユーザーが階層を開くと、親ノードのすべての子レコードが表示されます。 たとえば、親アカウントが Contoso で、4 つの子アカウントがある場合、 Contoso の下に 4 つの子アカウントが表示されます。
このオプションが有効になっていない場合、1 つのタイルは親アカウントを表し、階層は実際の親子関係に関係なくすべての子レコードをリンクします。 たとえば、親アカウント Contoso が北米、ヨーロッパ、アジアなどの異なるリージョンに子アカウントを持っている場合、[ Contoso ] タイルには、リージョンに関係なくすべての子アカウントが表示されます。親 ID を持つ列を選択する このオプションは、[ すべてのレベルを展開 ] オプションを有効にした場合にのみ使用できます。 階層の親 ID を含む列を選択します。 たとえば、 parent account IDテーブルの 列は親子関係を定義します。 この一覧には、自己参照列 (同じテーブルを参照する列) とテーブル間のリレーションシップが表示されます。 階層のレコードをリンクする場合は、1 つを選択します。 ここでは、parentaccountid列を選択します。 この列には、 潜在顧客などの他のテーブルとのテーブル間リレーションシップがあります。使用するビュー 階層には、選択したテーブル ビューのレコードが表示されます。 既定のビューを受け入れるか、別の既存のビューを選択します。 必要に応じて、 Power Platform Maker ポータルを使用して独自のビューを定義します。 ここでは、[ アクティブなアカウント] ビューを選択して、階層内のアクティブなアカウントのみを表示します。 タイルとして表示するフォーム タイルとして表示するフォームを選択します。 カスタム フォームを使用するには、簡単に識別できるように、Power Apps でクイック ビュー フォームを作成し_Hierarchy_Tileテーブルに名前を付けます。 最大 7 つのフィールドを表示できます。 基本的なデータ型 (文字列、日付、数値) を表示するフィールドのみがサポートされています。 フォームのフィールド ラベルを表示または非表示にして、タイルのラベルを制御します。 フィールドを連結して 1 行として表示するなど、ニーズに合わせてフォームをカスタマイズします。
たとえば、「Concatenate('Account Name' & " " & 'Main Phone')」という数式を使用して、同じ行に名前と携帯電話番号を追加します。 数式列の追加の詳細については、「数式列 の操作」を参照してください。詳細として表示するフォーム タイルが選択されているときに [詳細 ]ペインに表示するフォームを選択します。 ニーズを満たす既定のフォームがない場合は、Power Apps Maker Portal でフォームを作成して、必要なフィールドのみを含めることができます。 詳細ウィンドウには任意のフォームを表示したり、全画面表示にしたりできるため、Dynamics 365 Sales で通常使用されるのと同じフォームをここで使用できます。
たとえば、アカウント階層の場合は、アカウント フォームを使用できます。これは、アカウントを表示するときにアプリケーションで使用されるフォームと同じです。
[ タイル表示オプション ] タブで、タイルの外観をカスタマイズします。
Setting Description 画像を表示する タイルは必要に応じて、レコードの円で囲まれている画像を表示または非表示にすることができます。 有効にすると、画像が利用できない場合、代わりにレコードのイニシャルが表示されます。 たとえば、Maria Campbell に画像がない場合、タイルは MC として表示されます。 イニシャルが使用できない場合は、テーブルの既定のアイコンが表示されます。 このテーブルのクイック アクションを表示する 子テーブルのタイルにクイック アクション (...) を表示するには、このオプションを有効にします。 クイック アクションを使用すると、フォームでの表示や新しいレコードの追加など、一般的なタスクをタイルから直接実行できます。
注: クイック アクションは、階層を公開またはプレビューする場合にのみ表示されます。タイル サイズ タイルの幅と高さをピクセル単位で選択し、次にタイルの枠線の色を選択します。 カラー タイルの上部ヘッダーの色を 16 進形式で選択します。 ここでは、青の色に #0078D4 を使用しています。 注
- これらの設定は、この階層内のこのタイルにのみ適用されます。
- 統一感のある外観を実現するため、タイルのサイズと配置を統一して使用することをお勧めします。
クロステーブル階層またはハイブリッド階層を構成している場合は、子ノードを追加します。 単一テーブル階層の場合は、この手順をスキップできます。
階層を保存し、 設計および発行手順の手順 7 に進みます。
子ノードを構成する
クロステーブル階層またはハイブリッド階層に対して子ノードが追加され、他のテーブルの関連レコードが表示されます。 複数の子ノードを追加して、ビジネス データを正確に表す複雑な階層を設計できます。 ルート ノードを構成したら、次の手順に従って子ノードを追加します。
ルート ノードの下で、タイルの下にある追加アイコンを選択し、子ノードの名前を入力します。 ここでは、 Contact テーブルを子ノードとして Account テーブルに追加します。
テーブルを選択し、[ 追加] を選択します。 ここでは、[ 連絡先 ] テーブルを選択します。
設定ペインがページの右側に開きます。[ 全般 ] タブで、ルート ノード テーブルを使用してリレーションシップ設定を構成し、子と親のリレーションシップを定義して、ビューとフォームを選択します
Setting Description ブランチの表示名 既定では、テーブル名に基づいて名前が追加されます。 必要に応じて、ブランチの表示に別の名前を入力します。この名前を使用してブランチを識別するために階層に表示されます。 親子関係の選択 ビジネス ニーズに応じて、親テーブルを持つ子テーブルのリレーションシップの種類を選択します。 次のオプションを使用できます。
• 一致する {Parent_ID} の連絡先
{Parent_Account_team} に一致する連絡先
• 取引先企業の {Primary_Contact}
• Dataverse 接続テーブル
• カスタム接続テーブル
リレーションシップの種類の詳細については、「 子ノードのリレーションシップ選択オプション」を参照してください。すべてのレベルを展開する 階層内の親ノードのすべての子レコードを表示するオプションを有効にします。 ユーザーが階層を開くと、親ノードのすべての子レコードが表示されます。 たとえば、親アカウントが Contoso で、4 つの子アカウントがある場合、 Contoso の下に 4 つの子アカウントが表示されます。
このオプションが有効になっていない場合、1 つのタイルは親アカウントを表し、階層は実際の親子関係に関係なくすべての子レコードをリンクします。 たとえば、親アカウント Contoso が北米、ヨーロッパ、アジアなどの異なるリージョンに子アカウントを持っている場合、[ Contoso ] タイルには、リージョンに関係なくすべての子アカウントが表示されます。親 ID を持つ列を選択する このオプションは、[ すべてのレベルを展開 ] オプションが有効になっている場合にのみ使用できます。 階層の親 ID を含む列を選択します。 たとえば、 parent account IDテーブルの 列は親子関係を定義します。 この一覧には、自己参照列 (同じテーブルを参照する列) とテーブル間のリレーションシップが表示されます。 階層のレコードをリンクする場合は、1 つを選択します。 ここでは、parentaccountid列を選択します。 この列には、 潜在顧客などの他のテーブルとのテーブル間リレーションシップがあります。使用するビュー 階層には、選択したテーブル ビューのレコードが表示されます。 既定のビューを受け入れるか、別の既存のビューを選択します。 必要に応じて、 Power Platform Maker ポータルを使用して独自のビューを定義します。 ここでは、[ アクティブなアカウント] ビューを選択して、階層内のアクティブなアカウントのみを表示します。 タイルとして表示するフォーム タイルとして表示するフォームを選択します。 カスタム フォームを使用するには、簡単に識別できるように、Power Apps でクイック ビュー フォームを作成し_Hierarchy_Tileテーブルに名前を付けます。 最大 7 つのフィールドを表示できます。 基本的なデータ型 (文字列、日付、数値) を表示するフィールドのみがサポートされています。 フォームのフィールド ラベルを表示または非表示にして、タイルのラベルを制御します。 フィールドを連結して 1 行として表示するなど、ニーズに合わせてフォームをカスタマイズします。
たとえば、「Concatenate('Account Name' & " " & 'Main Phone')」という数式を使用して、同じ行に名前と携帯電話番号を追加します。 数式列の追加の詳細については、「数式列 の操作」を参照してください。詳細として表示するフォーム タイルが選択されているときに [詳細 ]ペインに表示するフォームを選択します。 ニーズを満たす既定のフォームがない場合は、Power Apps Maker Portal でフォームを作成して、必要なフィールドのみを含めることができます。 詳細ウィンドウには任意のフォームを表示したり、全画面表示にしたりできるため、Dynamics 365 Sales で通常使用されるのと同じフォームをここで使用できます。
たとえば、アカウント階層の場合は、アカウント フォームを使用できます。これは、アカウントを表示するときにアプリケーションで使用されるフォームと同じです。
[ タイル表示オプション ] タブで、タイルの外観をカスタマイズします。
Setting Description 画像を表示する タイルは必要に応じて、レコードの円で囲まれている画像を表示または非表示にすることができます。 有効にすると、画像が利用できない場合、代わりにレコードのイニシャルが表示されます。 たとえば、Maria Campbell に画像がない場合、タイルは MC として表示されます。 イニシャルが使用できない場合は、テーブルの既定のアイコンが表示されます。 このテーブルのクイック アクションを表示する 子テーブルのタイルにクイック アクション (...) を表示するには、このオプションを有効にします。 クイック アクションを使用すると、フォームでの表示や新しいレコードの追加など、一般的なタスクをタイルから直接実行できます。
注: クイック アクションは、階層を公開またはプレビューする場合にのみ表示されます。タイル サイズ タイルの幅と高さをピクセル単位で選択し、次にタイルの枠線の色を選択します。 カラー タイルの上部ヘッダーの色を 16 進形式で選択します。 ここでは、青の色に #0078D4 を使用しています。 注
- これらの設定は、この階層内のこのタイルにのみ適用されます。
- 統一感のある外観を実現するため、タイルのサイズと配置を統一して使用することをお勧めします。
手順 2 から 4 を繰り返して、必要に応じて子ノードを追加します。
すべての子ノードを追加した後、階層を保存し、 設計および発行手順の手順 7 に進みます。
階層へのアクセスを許可する
組織内のユーザーが階層を表示したり、組織内の管理者が階層を設計したりできるようにするには、まず、 階層構成 テーブルへのアクセス権を適切なセキュリティ ロールに付与する必要があります。 次の手順に従います。
- Power Platform 管理センターで、環境を選択します。
- アクセス セクションの セキュリティ ロール の下にある すべて表示 を選択します。
- 目的のセキュリティ ロールを開きます。 フィルターを [ すべてのテーブルを表示 ] に変更し 、[階層構成] テーブルを検索します。
-
その他のアクション (...) を選択し、[アクセス許可の設定] を選択します。
指定するアクセス レベルに基づいて、次のアクセス許可を付与します。- セキュリティ ロールに参照アクセス許可を与え、階層を表示できるようにします。
- セキュリティ ロールが完全なアクセス権を持って階層を設計して組織に発行することを許可します。
子ノードのリレーションシップ選択オプション
子ノードを追加するときは、リレーションシップの種類を選択して、子テーブルと親テーブルの関係を定義する必要があります。 使用可能なリレーションシップ オプションは、操作しているテーブルによって異なります。 発生する可能性がある一般的なリレーションシップの種類を次に示します。
| リレーションシップのタイプ | Description | Example |
|---|---|---|
| 一致するParent_IDを持つ連絡先 | このオプションでは、子テーブルの ParentCustomerId などの直接ルックアップ フィールドを使用して、各レコードを親テーブルにリンクします。 これは、従来の親子関係です。 |
特定のアカウントに関連付けられているすべての連絡先を階層ビューに表示する場合。 連絡先テーブルには、 ParentCustomerIdテーブルとのリレーションシップを確立するフィールド が含まれています。 このリレーションシップを選択すると、アプリケーションによってすべての連絡先が表示されます(Contact.ParentCustomerId = Account.AccountId)。これにより、アカウントとそれに関連する連絡先の間に親子階層が作成されます。 |
| 一致するParent_Account_teamを持つ連絡先 | このオプションは、直接の親子関係ではなく、共有チームまたはグループ フィールドに基づいて子レコードを親にリンクします。 これは、子レコードがチームを通じて親レコードに関連付けられている場合に便利です。 | 関連付けられているアカウントと同じチームに属しているすべての連絡先を表示します。 連絡先テーブルには、 連絡先 が属しているチームを示すフィールド TeamIdが含まれています。
Account テーブルには、TeamId フィールドもあります。 このリレーションシップを選択すると、アプリケーションによってすべての連絡先が表示されます(Contact.TeamId = Account.TeamId)。これにより、アカウントと連絡先の間にチームベースの階層が作成されます。 |
| アカウントのPrimary_Contact | このオプションでは、親テーブルの特定のフィールドを使用して、各親レコードのメイン連絡先が表示されます。 | 各アカウントに関連付けられているキー連絡先を識別して表示する必要があります。 取引先企業テーブルには PrimaryContactIdフィールドが含まれており、階層はこのフィールドを使用して、アカウントのContactIdと一致するPrimaryContactIdを持つ連絡先を検索します。これにより、各アカウントがその主要連絡先を指す直接リンクが作成されます。 |
| Dataverse 接続テーブル | このオプションでは、標準 の Dataverse Connections テーブルを使用します。これにより、Advisor、Family メンバーなどのロールとの柔軟で多対多のリレーションシップをモデル化できます。 | [ 接続 ] テーブルで定義されているさまざまなロールを使用して、アカウントに接続されているすべての連絡先を表示する必要があります。 [接続] テーブルでは、雇用主としてのアカウントや従業員としての連絡先などのロールを使用して、レコード間のリレーションシップを定義します。 階層は、接続テーブルのエントリを通じて、アカウントに接続されているすべての連絡先を取得します。 これにより、 Connections テーブルで定義されているロールに基づいて柔軟な階層が作成されます。 Connections テーブルの詳細については、「 接続 ロールを 持つテーブル間のリレーションシップについて説明する」を参照してください。 |
| カスタム接続テーブル | このオプションでは、親テーブルと子テーブルの間のリレーションシップを定義するために作成されたカスタム テーブルを使用します。これにより、高度なシナリオや組織固有のシナリオが可能になります。 | カスタムのリレーションシップ追跡に基づいて、特定のアカウントのメントーとして機能する連絡先を表示する必要があります。 カスタム メンタシップテーブルには、メンタリング 関係を定義するための AccountId や ContactId などのフィールドが含まれています。 このリレーションシップを選択すると、 アプリケーションには、メンタシップ テーブルを介してアカウントにリンクされているすべての連絡先が表示されます。これにより、テーブルで定義されているカスタム リレーションシップに基づいて階層が作成されます。 |