Microsoft Power BI to interaktywne oprogramowanie do wizualizacji danych, które służy głównie do analiz biznesowych. Połączenie tego narzędzia z usługą Fusion Operations API (dokumentacja dostępna tutaj) umożliwia pobieranie danych, tworzenie analiz i pulpitów nawigacyjnych w oprogramowaniu Power BI.
W tym artykule omówimy wymagane czynności.
Pobieranie danych z programu Fusion Operations
1. Otwórz nowe wystąpienie programu Power BI, kliknij opcję (1) „Get Data” (Pobierz dane) i (2) „Blank Query” (Puste zapytanie).
2. W menu u góry wybierz opcję (1) „Manage Parameters” (Zarządzaj parametrami), a następnie utwórz nowy parametr.
Utwórz następujące parametry:
2.1. apiKey, z typem ustawionym na Text i obowiązkowym. Wartość tego parametru można uzyskać w profilu Autodesk Fusion Operations (1).
2.2. apiSecret, z typem ustawionym na Text i obowiązkowym. Wartość tego parametru można również uzyskać w profilu Autodesk Fusion Operations (2).
2.3. lastNDays, z typem ustawionym na Decimal Number i obowiązkowym. Ten parametr określa, ile dni danych zostanie pobranych z interfejsu API programu Fusion Operations. Należy pamiętać, że im większa liczba, tym dłuższy czas odświeżania tablicy narzędzi.
2.4. retryAfter, z typem ustawionym na „Decimal Number” i obowiązkowym. Ten parametr będzie używany jako bufor (w sekundach) między kolejnymi żądaniami wysyłanymi do interfejsu API programu Fusion Operations. Ustaw wartość na 0,25.
Wszystkie cztery parametry będą widoczne po lewej stronie ekranu.
3. Wybierz opcję „New Source” (Nowe źródło), a następnie i „Blank Query” (Puste zapytanie).
4. W menu po lewej stronie kliknij dwukrotnie zapytanie (1), zmień jego nazwę na „getProductionRecords” i kliknij opcję (2) Edytor zaawansowany.
5. Skopiuj poniższy tekst i wklej go do Edytora zaawansowanego, aby utworzyć funkcję w programie 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. Powtórz czynności opisane w punktach 3 i 4, ale zmień nazwę nowej funkcji na „allProductionRecords”. Jeśli oprócz rekordów produkcyjnych próbujesz pobrać dane za pośrednictwem interfejsu API , zmień odpowiednio nazwę zapytania i parametr „endpointUrl”.
7. Powtórz krok 5, ale skopiuj i wklej zawartość poniżej.
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. Wszystko powinno być gotowe. Program Fusion Operations powinien teraz zwrócić listę z danymi.
Przetwarzanie danych
1. Aby przetworzyć dane (w formacie JSON), kliknij opcję (1) „Do tabeli”.
2. Wybierz poniższe opcje i naciśnij przycisk OK.
3. Kliknij (1) ikonę rozwidlających się strzałek, aby rozwinąć listy i kliknij opcję (2) „Rozwiń na nowe wiersze”.
4. Kliknij ponownie (1) ikonę rozwidlających się strzałek, aby rozwinąć rekordy, wybierz (2) informacje do przetworzenia w programie Power BI, usuń (3) zaznaczenie opcji „Użyj oryginalnej kolumny jako przedrostka” i kliknij (4) przycisk OK.
5. Kliknij (1) ikonę rozwidlających się strzałek kolumn, które mają zostać rozwinięte, co będzie zależało od wykonywanej analizy.
W tym przypadku rozwiniemy kolumny (i) operacji, (ii) pracownika, (iii) ilości, (iv) czasu pracy, (v) godziny rozpoczęcia i (vi) zakończenia. Aby lepiej zrozumieć znaczenie każdej kolumny, opcja „Użyj oryginalnej kolumny jako przedrostka” powinna być teraz aktywna (punkt kontrolny 4).
6. Dla każdej odpowiedniej kolumny kliknij (1) po lewej stronie nagłówka i ustaw odpowiedni typ danych.
W tym przykładzie parametry operation.code i operation.product powinny być ustawione na tekst, parametr work.number na liczbę całkowitą, quantity na wartość dziesiętną, czas-pracy na tekst (będziemy musieli go przetworzyć), a parametry godzina-rozpoczęcia i godzina-zakończenia na data/godzina/godzina/strefa czasowa.
7. Jak wspomniano wcześniej, kolumna czasu trwania powinna zostać przetworzona, ponieważ program Power BI nie może przetworzyć wartości „00H00m16s” na pole czasu trwania. Zamiast tego wartości w tej kolumnie zostaną przekonwertowane na minuty.
7.1. Kliknij opcję (1) Dodaj kolumnę i (2) Kolumna niestandardowa.
7.2. Nadaj tej kolumnie niestandardowej (1) czas-pracy-minuty i wklej w polu (2) poniższy wzór. Kliknij przycisk (3) OK, aby przesłać formułę i utworzyć kolumnę.
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. Zapisz kolumnę „czas-pracy-minuty” z typem „wartość dziesiętna”.
8. Dodamy również dwie nowe kolumny z pól godzina-rozpoczęcia i godzina-zakończenia. Pola te będą nosiły nazwę dzień-początkowy i dzień-końcowy. Te dwie kolumny będą przydatne w końcowej tablicy narzędzi.
8.1. Wybierz (1) kolumnę, kliknij (2) opcję Data i wybierz opcję (3) Tylko data.
8.2. Zmień nazwę (1) kolumny „data-rozpoczęcia”.
8.3. Powtórz proces w odniesieniu do kolumny godzina-zakończenia. Nazwij ostatnią kolumnę „data-zakończenia”.
9. Wybierz (1) kartę Strona Główna i kliknij (2) opcję Zamknij i zastosuj.
Tworzenie prostej tablicy narzędzi
1. Na poniższym ekranie wybierz (1) typ tablicy narzędzi. Wybierzemy zgrupowany wykres słupkowy, ale można wybrać dowolny inny typ. Następnie rozwiń (2) pozycję productionRecordsList.
2. Przeciągnij (1) pola danych do pól tablicy narzędzi.
3. Dotknij (1), aby dostosować tablicę narzędzi. Te opcje będą zależały od typu wybranej tablicy narzędzi.
4. Dodaj więcej danych, wizualizacje i utwórz własne tablice narzędzi produkcji!
Należy pamiętać, że utworzenie powyższej tablicy narzędzi wymagało znacznie większej liczby kroków niż opisano w tym dokumencie (jak widać na prawym obrazie w menu Dane).
Rozwiązywanie problemów
Podczas pobierania danych z programu Fusion Operations do programu Power BI mogą zostać zwrócone pewne błędy. Poniżej znajduje się lista i sposób ich eliminowania:
1. Formula.Firewall: zapytanie „allProductionRecords” uzyskuje dostęp do źródeł danych, które mają poziomy prywatności, których nie można używać razem. Utwórz ponownie tę kombinację danych.
Aby usunąć ten błąd, wykonaj poniższe czynności:
1.1 Kliknij opcję „Ustawienia źródła danych”.
1.2 Wybierz (1) wszystkie pozycje związane z programem Fusion Operations i kliknij (2) opcję „Edytuj uprawnienia”.
1.3. Wybierz poziom prywatności „Publiczne”. Nie zapomnij zapisać zmian!
2. Wystąpił błąd w zapytaniu „”. Parametr DataSource.Error: Web.Contents z opcją Zawartość jest obsługiwany tylko podczas łączenia anonimowego.
Szczegóły:
DataSourceKind=Web
DataSourcePath=https://fusionoperations.autodesk.com/api/authorization
Aby usunąć ten błąd, wykonaj poniższe czynności:
2.1 Kliknij opcję „Ustawienia źródła danych”.
2.2 Wybierz opcję „https://fusionoperations.autodesk.com/api/authorization” i kliknij opcję „Edytuj uprawnienia”.
2.3 W obszarze „Poświadczenia” wybierz opcję „Edytuj...”.
2.4 W menu po lewej stronie wybierz opcję (1) „Anonimowe”. Nie zapomnij (2) zapisać zmian!
Jeśli jakieś kwestie nie są dla Ciebie jasne, skontaktuj się z nami za pomocą naszej funkcji czatu na żywo.
Potrzebujesz pomocy? Poproś eksperta ds. Fusion Operations o skontaktowanie się z Tobą tutaj.