表結合を行う場合、参照型とID連携の2択があるが、Multi-Layerと内部結合と外部結合を省き、参照型を採用すべきであることがわかった。本結論にいたるまでの調査結果について述べる
Many-to-oneの場合、参照型の方がややローコードになるが大差はないことがわかった。根拠は以下の例を参照 ・Many-to-oneでID連携した場合のコード例 ・PowerApps Dataverse 多対1の参照列で表結合するには
Many-to-Manyの場合、参照型の方が圧倒的にローコードになるがわかった。根拠は以下の例を参照 ・[Office365ユーザ]で複数ユーザを選択しUPNで連携するには(ID連携 による多対多の表結合) ・PowerApps Dataverse 多対多の参照列で表結合するには
Multi-Layerの場合は、参照型は利用できない事がわかった。根拠は以下参照
・PowerApps 参照列で多対1のMulti-Layer展開はサポートされていない
Outer-join、Inner-joinは参照型にできないので、ID連携を利用せざるをえない ・Outer-joinのID連携の例 ・Inner-jointのID連携の例
AzureADのようなAPIが用意されているテーブルに対してMany-to-manyのリレーションする場合は参照型の方がローコードになる事がわかった。根拠は以下の例を参照 ・Many-to-manyでAzureADをID連携させた場合のコード例 ・Many-to-manyでAzureADを参照型で連携した場合のコード例
SharePointなのか、Dataverseなのかは、どちらの参照型の利用が可能である、その扱いはCollectionに入れてしまえば同じ扱いができるためである
PowerAppsでユーザ選択を行う場合、Entra ID(Azure AD),Entra ID Users(AAD Users),Office365 Usersどれを採用すべきかの3択があるが、複数ユーザ選択、単数ユーザ選択に関わらず、「AAD User(EntraID User」を採用が最適であるすべきであることがわかった。本結論にいたるまでの調査結果について述べる
まず、前述の3択が以下の条件でどれが最もローコードになるかで判断することにした。
リーレーション方式:lookup column/ID join
単ユーザ選択/複数ユーザ選択
実際に以下のパターンでそれぞれ、コード量がどの程度になるか調査した。
・lookup columnにできるのはAAD Userのみであることがわかった。・複数ユーザを選択する場合lookup column(AAD User)を採用したほうがローコードになることがわかった。・単数ユーザ選択においてはID Join(UPN join)もlookup column(AAD User)も同じであった。・lookup column(AAD User)を採用した場合、UPN,Diplay Name以外の属性を取得するには「Office 365 Users」を追加する必要があることがわかった