DAX 문에서 데이터를 가져 오는 Power BI Matrix 작업

Aug 15 2020

다음과 같은 요구 사항이 있습니다.

  • 사용자는 웹 페이지에서 Power BI Matrix를 볼 수 있습니다 (Power BI Desktop과 반대).
  • 웹 페이지에는 텍스트 필드, 단추 및 Power BI Matrix (잠재적으로 Power BI 보고서에 포함됨)의 세 가지 요소가 있어야합니다.
  • 사용자는 텍스트 필드에 DAX 문을 입력하고 버튼을 클릭하여 Matrix가 DAX 문을 가져와 실행하고 데이터를 채우도록 지시합니다.
  • 사용자는 Matrix에서 드릴 다운 할 수 있어야합니다.
  • 사용자는 새 DAX 문을 다시 입력하여 Matrix를 새로 고칠 수 있습니다.

이제 여기 에서 찾을 수있는 모든 설명서 에서 Power BI Desktop의 매트릭스 (예 : 웹 페이지 아님)와 수동으로 테이블 / 열 / 측정 값 (화면 오른쪽)을 선택하여 가져온 데이터에 대해 설명합니다.

Power BI Studio에서는 상단 표시 줄에 테이블을 만들어 DAX 문을 입력 할 수 있다는 것을 알고 있습니다 (예 : DAX가있는 경우).

 EVALUATE TOPN (3, branches)

매트릭스를 채울 테이블을 만들 수 있습니다.

BranchesTable = TOPN (3, branches)

그러나 런타임에 정의 된 DAX 문을 웹 페이지의 Matrix에 동적으로 연결하는 방법은 무엇입니까?

답변

1 vvvv4d Aug 15 2020 at 21:20

현재로서는 원하는 작업을 정확히 수행 할 수 없습니다. 데이터 원본을 동적으로 변경하고 특정 보고서에 사용 된 쿼리를 업데이트 할 수 있지만 보고서의 시각적 개체에있는 열을 업데이트하는 데 사용할 수있는 API (PowerBI REST 또는 PowerBI JavaScript)가 없습니다. 원하는 내용에 매우 근접 할 수 있지만 보고서는 View모드 로 표시 될 수 없으며 모드로 표시되어야 Edit합니다. 따라서 사용자는 업데이트 된 DAX 쿼리 결과에서 생성 된 필드를 Matrix 시각적 개체로 수동으로 끌어 올 수 있습니다. 변경 사항을 제출합니다.

사전 필수 앱 등록 설정 및 구성이 이미 완료되었고 여기에 임베드 할 준비가되었다고 가정하면 원하는 항목에 근접하기위한 몇 가지 단계가 있습니다. 포함 할 준비가되지 않은 경우 포함 할 수있는 필수 구성 요소 설정을 완료하기 위해 제공 한 8 단계 아래에 몇 가지 문서가 있습니다.

  1. PowerBI Desktop 사용 매트릭스 시각적 개체와 사용하려는 데이터 원본에 대한 연결이있는 템플릿 보고서를 만듭니다. SQL이든 SSAS이든 데이터 소스의 모든 테이블이 아닌 특정 쿼리를 사용하여이 보고서를 설정해야합니다. (보고서에서 데이터 소스를 처음 설정할 때 고급 옵션에서 쿼리를 지정합니다.)
  2. 보고서에서 사용하는 데이터 원본에 대한 Power BI 데이터 게이트웨이 설정
  3. PowerBI.com에서 보고서를 업로드 할 작업 영역을 만듭니다.
  4. PowerBI 데스크톱 사용 1 단계에서 생성 한 보고서를 3 단계에서 생성 한 작업 공간에 게시합니다.
  5. 웹 응용 프로그램에서 사용자가 보고서 뷰어 페이지를 볼 때 각 사용자를 식별하는 방법이 필요합니다. UserId각 사용자에 대한 고유 ID 인 필드가 있다고 가정합니다 . 그룹에서 GetReports 호출https://docs.microsoft.com/en-us/rest/api/power-bi/reports/getreportsingroup. 알려진 보고서 이름과 UserId가 있어야합니다. DynamicReport를 가정 해 보겠습니다. 따라서 GetReports를 호출하고 DynamicReport_UserId웹 애플리케이션에서 보고서 뷰어 페이지를 보려는 사용자에 대해 존재 하는지 확인하십시오 .
  6. 5 단계의 API 호출 결과에서 사용자에 대한 보고서가 없으면 https://docs.microsoft.com/en-us/rest/api/power-bi/reports/clonereport 4 단계에서 게시 한 템플릿 보고서를 복제합니다.
  7. 사용자에 대한 사용자 별 템플릿 보고서 (DynamicReport_UserId)를 포함하고 표시합니다.
  8. 사용자 POST가 DAX 쿼리를 제출할 수 있도록 보고서 뷰어 페이지에 논리가 있습니다. 제출할 때 사용할 논리가 있습니다.https://docs.microsoft.com/en-us/rest/api/power-bi/datasets/updatedatasources 백엔드에서 보고서의 데이터 원본을 업데이트 한 다음 DAX 문 및 변경된 데이터로 보고서를 다시 포함합니다.

시각적 개체는 사용자가 제출 한 새 쿼리의 새 필드로 자동 업데이트되지 않지만 편집기 모드에서 사용 가능한 데이터 필드는 변경됩니다. 사용자는 DAX 쿼리의 필드를 Matrix 시각적 개체 또는 사용하기로 선택한 시각적 유형으로 끌어서 놓아야합니다. View시각적 인 필드를 프로그래밍 방식으로 업데이트 할 방법이 없기 때문에 모드 에서 보고서를 표시 할 수 없습니다. 사용자는 변경된 쿼리 및 이전에 사용 된 쿼리의 시각적 참조 필드로 인해 처음에 깨진 시각적 개체를 보게 될 수도 있습니다. PowerBI Javascript API를 사용하여 기존 시각적 개체를 숨기면 사용자가 깨진 것을 보지 않는 사용자 경험을 개선 할 수 있습니다.

이러한 API 호출이나 사용 방법에 대한 구체적인 질문이 있으면 알려주세요.

여기에서 Power BI JavaScript 기능을 찾고있었습니다. https://github.com/Microsoft/powerbi-javascript/wiki (매트릭스 비주얼과 관련된 것은 찾을 수 없습니다. 비주얼 유형이 아닌 매트릭스 또는 카드와 같은 비주얼 유형이 아닌 비주얼에 대한 JavaScript 기능)

다음은 사용 가능한 REST API에 대한 Microsoft의 문서입니다. https://docs.microsoft.com/en-us/rest/api/power-bi/

다음은 임베딩에 대해 자세히 알아볼 수있는 좋은 리소스입니다.

https://docs.microsoft.com/en-us/power-bi/developer/embedded/register-app https://docs.microsoft.com/en-us/power-bi/developer/embedded/embedding

드릴 다운 기능이 필요한 경우 계층 구조가 좋은 옵션입니다.

https://spreadsheeto.com/power-bi-hierarchy/