모든 콜렉션
고급 구성 및 FAQ
고급 구성
Power BI에 Fusion Operations 연결
Power BI에 Fusion Operations 연결

대시보드를 작성하기 위해 Power BI에서 데이터를 가져오는 방법을 알아봅니다.

David Andrade avatar
작성자: David Andrade
1주 전에 업데이트함

Microsoft Power BI는 비즈니스 인텔리전스에 중점을 둔 대화식 데이터 시각화 소프트웨어입니다. 이 도구를 Fusion Operations API 서비스(여기에서 제공되는 설명서)와 결합하면 Power BI에서 데이터를 가져오고, 분석 및 대시보드를 작성할 수 있습니다.

이 문서에서는 필요한 단계를 살펴봅니다.

Fusion Operations에서 데이터 검색

1. 새 Power BI를 열고 (1) "데이터 가져오기" 및 (2) "빈 쿼리"를 클릭합니다.

2. 맨 위 메뉴에서 (1) "매개변수 관리"를 선택한 다음 새 매개변수를 작성합니다.

다음 매개변수를 작성합니다.

2.1. apiKey, 유형이 "텍스트"로 설정되고 필수입니다. 이 매개변수 값은 Autodesk Fusion Operations 프로파일(1)에서 가져올 수 있습니다.

2.2. apiSecret, 유형이 "텍스트"로 설정되고 필수입니다. 이 매개변수의 값은 Autodesk Fusion Operations 프로파일(2)에서 가져올 수도 있습니다.

2.3. lastNDays, 유형이 "십진수"로 설정되고 필수입니다. 이 매개변수는 Fusion Operations에서 검색되는 데이터 일 수를 결정합니다. 이 숫자가 클수록 대시보드를 새로 고치는 데 시간이 더 오래 걸립니다.

2.4. retryAfter, 유형이 "십진수"로 설정되고 필수입니다. 이 매개변수는 Fusion Operations의 API에 대해 연속 요청 사이의 버퍼(초)로 사용됩니다. 0.25로 설정합니다.

네 개의 매개변수가 모두 화면 왼쪽에 표시됩니다.

3. "새 소스"를 선택한 다음 "빈 쿼리"를 선택합니다.

4. 왼쪽 메뉴에서 쿼리(1)를 두 번 클릭하고 이름을 "getProductionRecords"로 바꾼 다음 (2) "고급 편집기"를 클릭합니다.

5. Power BI에서 함수를 작성하려면 아래 텍스트를 복사하여 고급 편집기에 붙여 넣으십시오.

(page as number) =>let    Source = Json.Document(Web.Contents("https://fusionoperations.autodesk.com/api/authorization",        [Headers=                [#"Content-Type"="application/json",                Authorization="Basic " & Binary.ToText(Text.ToBinary(apiKey & ":" & apiSecret), 0),                #"Accept"="*/*"],            Content = Json.FromValue([scopes = {"productions_write"},                random=Number.Random()])        ])),    access_token= Record.ToTable(Source){2}[Value],    endpointUrl = "https://fusionoperations.autodesk.com/api/productions",    startTime =        Number.ToText(Date.Year(Date.AddDays(DateTime.FixedLocalNow(),-lastNDays))) & "-" &        Number.ToText(Date.Month(Date.AddDays(DateTime.FixedLocalNow(),-lastNDays))) & "-" &        Number.ToText(Date.Day(Date.AddDays(DateTime.FixedLocalNow(),-lastNDays))),    Origin = Json.Document(Web.Contents(endpointUrl,        [Query=[access_token = access_token,            #"start-time-after" = startTime,            #"worker-name" = "true",            page = Number.ToText(page)]]))in    Origin

6. 3단계와 4단계를 반복하되 새 함수의 이름을 "allProductionRecords"로 바꿉니다. 생산 기록 외에 API를 통해 데이터를 가져오려는 경우 그에 따라 쿼리 이름과 "endpointUrl"을 변경합니다.

7. 5단계를 반복하되, 컨텐츠를 복사하여 아래에 붙여넣습니다.

let    Query = List.Generate(()=>[Result = if List.IsEmpty(getProductionRecords(1)) then null else    getProductionRecords(1), page=1],each [Result]<>null,each [MidRes = Function.InvokeAfter(()=>getProductionRecords([page]+1),        #duration(0,0,0,retryAfter)),    Result = if List.IsEmpty(MidRes) then null else        MidRes,page=[page]+1],each [Result])in    Query

8. 잘 진행되었습니다! 이제 데이터가 포함된 리스트가 Fusion Operations에 의해 반환되어야 합니다.

데이터 처리

1. 데이터(JSON 형식)를 처리하려면 (1) "테이블로"를 클릭합니다.

2. 아래 옵션을 선택하고 확인을 누릅니다.

3. (1) 확산 화살표 아이콘을 클릭하여 리스트를 확장하고 (2) "새 행으로 확장"을 선택합니다.

4. (1) 분기 화살표 아이콘을 다시 클릭하여 기록을 확장하고 (2) Power BI에서 처리할 정보를 선택하고 (3) "원래 열을 접두사로 사용" 옵션을 제거한 다음 (4) 확인을 클릭합니다.

5. 확장해야 하는 열에 대한 분기 화살표를 클릭합니다(1). 이는 수행할 분석에 따라 다릅니다.

이 경우 (i) 작업, (ii) 작업자, (iii) 수량, (iv) 작업 시간, (v) 시작 시간, (vi) 종료 시간 열을 확장합니다. 각 열의 의미를 보다 잘 이해하려면 "원래 열을 접두사로 사용" 옵션을 활성화해야 합니다(체크 포인트 4).

6. 관련된 각 열에 대해 헤더 왼쪽의 (1)을 클릭하고 데이터를 올바른 유형으로 설정합니다.

이 예에서는 Operation.code 및 Operation.product를 텍스트로 설정해야 하며, Worker.number는 정수로 설정해야 하며, 수량은 십진수로 설정해야 하며, 근무 시간은 텍스트로 설정해야 합니다. 시작 시간과 종료 시간은 날짜/시간/시간대로 설정되어야 합니다.

7. 앞서 언급한 바와 같이 기간 열은 Power BI가 "00H00m16s"를 기간 필드로 구문 분석할 수 없으므로 처리해야 합니다. 대신 이 열의 값을 분으로 변환합니다.

7.1. (1) 열 추가를 클릭하고 (2) 사용자 열을 클릭합니다.

7.2. 이 사용자 정의 열에서 이름을 (1) 작업-시간-분으로 지정하고 상자 (2) 아래 수식을 붙여 넣습니다. (3) 확인을 클릭하여 공식을 제출하고 열을 작성합니다.

Number.From(Text.Start([#"work-time"],Text.Length([#"work-time"])-7))*60 +Number.From(Text.Middle([#"work-time"],Text.Length([#"work-time"])-6,2)) +Number.From(Text.Middle([#"work-time"],Text.Length([#"work-time"])-3,2))/60

7.3. "십진수" 유형으로 "작업-시간-분" 열을 저장합니다.

8. 또한 시작 시간 및 종료 시간 필드에서 두 개의 새 열을 추가합니다. 이러한 필드의 이름은 시작일 및 종료일로 지정됩니다. 이러한 두 개의 열은 최종 대시보드에 유용합니다.

8.1. (1) 열을 선택하고 (2) 날짜를 클릭한 다음 (3) 날짜만을 선택합니다.

8.2. (1) "시작일" 열의 이름을 바꿉니다.

8.3. 종료 시간 열에 대해 이 프로세스를 반복합니다. 마지막 열의 이름을 "종료일"로 지정합니다.

9. (1) 홈 탭을 선택하고 (2) 닫기 및 적용을 클릭합니다.

간단한 대시보드 작성

1. 다음 화면에서 (1) 대시보드 유형을 선택합니다. 클러스터된 막대 차트를 선택하되 다른 차트는 선택할 수 있습니다. 그런 다음 productionRecordsList를 확장합니다(2).

2. (1) 데이터 필드를 대시보드 필드로 끕니다.

3. (1)을 눌러 대시보드를 사용자화합니다. 이러한 옵션은 선택한 대시보드 유형에 따라 달라집니다.

4. 더 많은 데이터와 시각화를 추가하고 맞춤형 생산 대시보드를 만드십시오!

위의 대시보드를 생성하려면 이 문서에 설명된 단계(이미지 오른쪽의 데이터 메뉴 아래에서 볼 수 있듯이)에 비해 훨씬 더 많은 단계가 필요하다는 점에 유의하십시오.

오류 문제 해결

Fusion Operations에서 Power BI로 데이터를 가져올 때 일부 오류가 반환될 수 있습니다. 아래 리스트와 해결 방법을 확인할 수 있습니다.

1. Formula.Firewall: 'allProductionRecords' 쿼리는 함께 사용할 수 없는 개인 정보 수준이 있는 데이터 소스에 액세스합니다. 이 데이터 조합을 다시 빌드하십시오.

이 오류를 해결하려면 아래 단계를 따르십시오.

1.1 "데이터 소스 설정"을 클릭합니다.

1.2 (1) 모든 Fusion Operations 관련 항목을 선택하고 (2) "권한 편집"을 클릭합니다.

1.3. "공용"으로 개인 정보 레벨을 선택합니다. 변경 사항을 꼭 저장하십시오.

2. " 쿼리에서 오류가 발생했습니다. DataSource.Error: 내용 옵션이 있는 Web.Contents는 익명으로 연결할 때만 지원됩니다.
세부사항:
DataSourceKind=Web
DataSourcePath=https://fusionoperations.autodesk.com/api/authorization

이 오류를 해결하려면 아래 단계를 따르십시오.

2.1 "데이터 소스 설정"을 클릭합니다.

2.2 "https://fusionoperations.autodesk.com/api/authorization"를 선택하고 "권한 편집"을 클릭합니다.

2.3 "자격 증명"에서 "편집..."을 선택합니다.

2.4 왼쪽 메뉴에서 (1) "익명"을 선택합니다. (2) 변경 사항을 저장하는 것을 잊지 마십시오.

아직 몇 가지 의문점이 남아 있다면, Autodesk 라이브 채팅 기능을 통해 문의하십시오.

도움이 필요하십니까? 여기에서 Fusion Operations 전문가에게 연락을 요청하십시오.

답변이 도움되었나요?