Към основното съдържание

Свързване на Fusion Operations с Power BI

Научете как да получите данните си в Power BI за изграждане на табла

David Andrade avatar
Написано от David Andrade
Актуализирано тази седмица

Microsoft Power BI е интерактивен софтуер за визуализация на данни с основен фокус върху бизнес интелигентността. Комбинирането на този инструмент с Fusion Operations API услуга (налична документация тук) ви позволява да получите данните, да изграждате анализи и табла в Power BI.

В тази статия ще разгледаме необходимите стъпки.

Извличане на данните от Fusion Operations

1. Отворете нов Power BI, кликнете върху (1) "Get Data" и (2) "Blank Query".

2. В горното меню изберете (1) "Управление на параметрите" и след това създайте нов параметър.

Създайте следните параметри:

2.1. apiKey, като шрифтът е зададен на "Text" и е задължителен. Стойността на този параметър може да бъде получена от вашия Autodesk Fusion Operations профил (1).

2.2. apiSecret, като шрифтът е зададен на "Text" и е задължителен. Стойността на този параметър може да се получи и от вашия Autodesk Fusion Operations профил (2).

2.3. lastNDays, като шрифтът е зададен на "Десетично число" и е задължителен. Този параметър ще определи колко дни данни ще получим от Fusion Operations. Имайте предвид, че колкото по-голямо е това число, толкова по-дълго ще отнеме на таблото да се обнови.

2.4. retryAfter, като шрифтът е зададен на "Decimal Number" и е задължителен. Този параметър ще се използва като буфер (за секунди) между последователни заявки към API на Fusion Operations. Настрой го на 0.25.

Всички четири параметъра ще бъдат видими от лявата страна на екрана.

3. Изберете "New Source" и след това "Blank Query".

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. Изберете опциите по-долу и натиснете OK.

3. Кликнете върху (1) иконата с разклоняващи се стрелки, за да разширите списъците и (2) "Разшири до нови редове".

4. Кликнете отново върху (1) иконата с отклоняващи се стрелки, за да разширите записите, изберете (2) информацията, която трябва да се обработва в Power BI, премахнете (3) опцията "Използвайте оригиналната колона като префикс" и кликнете на (4) OK.

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) OK, за да подадете формулата и да създадете колоната.

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. Запазете колоната "work-time-minutes" с типа "десетично число".

8. Ще добавим и две нови колони от полетата: начално време и край. Тези полета ще бъдат наричани начални и крайни дни. Тези две колони ще са полезни за крайното табло.

8.1. Изберете (1) колоната, кликнете (2) Дата и изберете (3) Само дата.

8.2. Преименувайте (1) колоната "начална дата".

8.3. Повторете процеса за колоната за край на времето. Наречете последната колона "крайна дата".

9. Изберете (1) таба Home и кликнете на (2) Затвори и Приложи.

Изграждане на просто табло

1. На следващия екран изберете (1) тип табло. Ще изберем клъстерна стълбова диаграма, но всяка друга може да бъде избрана. След това разширете (2) productionRecordsList.

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.Content с опцията Съдържание се поддържа само при анонимна връзка.
Подробности:
DataSourceKind=Web
DataSourcePath=https://fusionoperations.autodesk.com/api/authorization

За да поправите тази грешка, следвайте стъпките по-долу:

2.1 Кликнете върху "Настройки на източника на данни"

2.2 Изберете "https://fusionoperations.autodesk.com/api/authorization" и кликнете върху "Edit Permissions"

2.3 Под "Credentials" изберете "Редактиране..."

2.4 В лявото меню изберете (1) "Анонимен". Не забравяйте да (2) запазите промените.

Ако все още имате някои съмнения, не се колебайте да се свържете с нас чрез нашата функция за чат на живо.

Нуждаете се от помощ? Помолете Fusion Operations експерт да свърже се с вас тук.

Това отговори ли на въпроса ви?