Power BIでManager値が重複する問題

  • 更新

LMS365 内に重複したユーザーアカウントが存在する場合、Power BI は重複した値とそれに関連するログイン名について以下のエラーを返すことがあります。

Duplicate Manager Values1.png

このエラーは、Microsoft Entra ID(Azure Active Directory)からユーザーが削除され、再度同じアカウントが作成された場合に発生する可能性が高くなります。

このエラーが何度も発生する場合は、Microsoft Entra IDからアカウントを削除する前に特定の期間ユーザーを無効にすることをお勧めします。

Power BIでレポートを実行するには、Power BIのテーブル関係を変更するか、2つのアカウントをマージします。

これには2つの方法があります。

Power BI を使用する:この場合は、1度の作業で完了できます。ただし、もし重複するアカウントが異なる2人の人物であった場合、Power BI レポートはマネージャーと部下の関係について、これら2人の異なる人物の両方を参照することになります。

API を使用する:この方法のメリットは、ユーザーの登録履歴が正確にLMS365アカウントに転送されることです。デメリットは、手順がいくつか増えることと、複数回行う必要があることです(Active Directoryのプロセスでユーザーの削除と再追加が繰り返される場合など)。

以下でそれぞれの手順をご説明します。

 

Power BI でテーブルのリレーションシップを変更する

Power BI でテーブルのリレーションシップを変更して、このエラーが発生を防ぎます。

1.画面左側で「データ ビュー」を選択します。

Duplicate Manager Values2.png

 

2.メニューの「リレーションシップの管理」を選択します。

Duplicate Manager Values3.png

3.リレーションシップの管理が開きます。「Users to Managers」 リレーションシップを選択し「編集」を選択します。

Duplicate Manager Values4.png

4.Cardinality(カーディナリティ)を 「多対多(*:*)」に変更し、「OK」を選択します。

Duplicate Manager Values5.png

5.レポートを更新し、エラーが解消されていることを確認してください。

APIでユーザー アカウントをマージする

APIでユーザー アカウントをマージします。

1.https://api.365.systems/ にアクセスします。

2.APIキーで認証します。詳細は「LMS365 API と Postman での認証」をご参照ください。

3.ユーザーアカウントの DirectoryObjectId を確認します。

Usersセクションを展開し、GET​/odata​/v2​/Users Returns the list of Users を選択し、、開いた画面で右上の「Try it out」を選択します。

4.「Execute」を選択してリクエストを実行します。

5.Response body で結果を確認します。Ctrl+Fで特定のユーザーアカウントを検索することができます。

以下は重複するアカウントの例です。どちらも同じメールアドレスを持っていますが、オブジェクトIDは異なります。一番上のアカウントの "IsDeleted" 状態が True になっていることに注意してください。

Duplicate Manager Values6.png

 

6.両方のアカウントのすべての情報を取得したら、アカウントをマージします。

Usersセクションを展開し、POST /odata/v2/Users('{LoginName}')/Merge Merges user's data を選択し、開いた画面で右上の「Try it out」を選択します。

7.フィールドに入力します。

  • key: LoginName :保持するアカウント(プライマリアカウント)の DirectoryObjectId を入力します。マージされると、このアカウントのデータは保存され、セカンダリアカウントのデータはこのアカウントに統合されます。
  • "sourceUserLoginName": "string": プライマリアカウントに統合するアカウント(セカンダリアカウント)を設定します。"string" をセカンダリアカウントの DirectoryObjectId に置き換えます。

注記:どのアカウントを保持し、削除するかを判断するには、"IsDeleted "フィールドを確認します。ほとんどの場合、削除の対象となるアカウントは "IsDeleted "フィールドがTrueになっています。

Duplicate Manager Values7.png

7.入力後、「Execute」を選択してリクエストを実行します。2つのアカウントがマージされます。

8.Responses ブロックで結果を確認します。Codeの下にある2XX(例:200)という数字は、リクエストが正しく動作したことを示します。

マージ後の情報を確認するには、手順3に戻ってコマンドを再実行し、すべてのユーザーリストをダウンロードして、重複アカウントが削除されたことを確認します。

複数のユーザーが対象の場合、それらすべてのユーザーをマージ処理してください。

9.レポートを更新し、エラーが解消されていることを確認してください。