Connessione di Fusion Operations a Power BI

Informazioni su come ottenere i dati in Power BI per la creazione di plance di comando

David Andrade avatar
Scritto da David Andrade
Aggiornato questa settimana

Microsoft Power BI è un software interattivo per la visualizzazione dei dati, che si concentra principalmente sull'intelligence aziendale. Combinando questo strumento con il servizio API Fusion Operations (documentazione disponibile qui) è possibile ottenere i dati, creare analisi e plance di comando in Power BI.

In questo articolo, esamineremo la procedura necessaria.

Recupero dei dati da Fusion Operations

1. Aprire una nuova finestra di Power BI, fare clic su (1) "Ottieni dati" e (2) "Query vuota".

2. Nel menu superiore, selezionare (1) "Gestisci parametri", quindi creare un nuovo parametro.

Creare i seguenti parametri:

2.1. apiKey, con il tipo impostato su "Testo" e obbligatorio. Il valore di questo parametro può essere ottenuto dal profilo Autodesk Fusion Operations (1).

2.2. apiSecret, con tipo impostato su "Testo" e obbligatorio. Anche il valore di questo parametro può essere ottenuto dal profilo Autodesk Fusion Operations (2).

2.3. lastNDays, con il tipo impostato su "Numero decimale" e obbligatorio. Questo parametro determina il numero di giorni di dati che verranno recuperati da Fusion Operations. Tenere presente che più elevato è il numero, più tempo sarà necessario per aggiornare la plancia di comando.

2.4. retryAfter, con il tipo impostato su "Numero decimale" e obbligatorio. Questo parametro verrà utilizzato come il buffer (in secondi) tra richieste consecutive da eseguire all'API di Fusion Operations. Impostarlo su 0,25.

Tutti e quattro i parametri saranno visibili sul lato sinistro dello schermo.

3. Selezionare "Nuova origine", quindi "Query vuota".

4. Nel menu a sinistra, fare doppio clic sulla query (1) e rinominarla in "getProductionRecords", quindi fare clic (2) su "Editor avanzato".

5. Copiare il testo seguente e incollarlo nell'editor avanzato per creare una funzione in 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. Ripetere i passaggi 3 e 4, ma rinominare la nuova funzione "allProductionRecords". Se si tenta di ottenere dati tramite l'API oltre ai record di produzione, modificare il nome della query e di "endpointUrl" di conseguenza.

7. Ripetere il passaggio 5, ma copiare e incollare invece il contenuto sottostante.

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. Il problema dovrebbe essere risolto Fusion Operations dovrebbe ora restituire un elenco con i dati.

Elaborazione dei dati

1. Per elaborare i dati (in formato JSON), fare clic su (1) "In tabella".

2. Selezionare le opzioni seguenti e premere OK.

3. Fare clic sull'(1)icona delle frecce divergenti per espandere gli elenchi e su (2) "Espandi in nuove righe".

4. Fare nuovamente clic sull'(1)icona delle frecce divergenti per espandere i record, selezionare le (2) informazioni da elaborare in Power BI, deselezionare (3) l'opzione "Usa colonna originale come prefisso" e fare clic su (4) OK.

5. Fare clic sulle (1) frecce divergenti per le colonne da espandere. Queste dipenderanno dall'analisi da eseguire.

In questo caso, verrà eseguita l'espansione delle colonne (i) operazione, (ii) lavoratore, (iii) quantità, (iv) orario di lavoro, (v) ora di inizio e (vi) ora di fine. Per comprendere meglio il significato di ogni colonna, ora dovrebbe essere attiva l'opzione "Usa colonna originale come prefisso" (punto di controllo 4).

6. Per ogni colonna pertinente, fare clic sul (1) lato sinistro dell'intestazione e impostare i dati sul tipo corretto.

In questo esempio, operation.code e operation.product devono essere impostati su testo, worker.number deve essere impostata su numero intero, quantità deve essere impostata su numero decimale, orario di lavoro deve essere impostato su testo (sarà necessario elaborarlo) e ora di inizio e ora di fine devono essere impostati su data/ora/fuso orario.

7. Come indicato, la colonna della durata deve essere elaborata, poiché Power BI non è in grado di analizzare "00H00m16s" in un campo della durata. I valori in questa colonna verranno invece convertiti in minuti.

7.1. Fare clic su (1) Aggiungi colonna e (2) Colonna personalizzata.

7.2. Denominare questa colonna personalizzata (1) orario di lavoro-minuti e incollare nella casella (2) la formula seguente. Fare clic su (3) OK per inviare la formula e creare la colonna.

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. Salvare la colonna "orario di lavoro-minuti" con il tipo "numero decimale".

8. Verranno aggiunte anche due nuove colonne dai campi ora di inizio e ora di fine. Questi campi verranno denominati giorno di inizio e giorno di fine. Queste due colonne saranno utili per il dashboard finale.

8.1. Selezionare (1) la colonna, fare clic su (2) Data e selezionare (3) Solo data.

8.2. Rinominare (1) la colonna "data di inizio".

8.3. Ripetere la procedura per la colonna ora di fine. Assegnare alla colonna finale il nome "data di fine".

9. Selezionare (1) la scheda Home, quindi fare clic su (2) Chiudi e applica.

Creazione di un dashboard semplice

1. Nella schermata seguente, selezionare (1) un tipo di dashboard. Verrà selezionato un grafico a barre raggruppate, ma è possibile selezionarne altri. Espandere (2) productionRecordsList.

2. Trascinare (1) i campi di dati nei campi del dashboard.

3. Toccare (1) per personalizzare il dashboard. Queste opzioni dipendono dal tipo di dashboard selezionato.

4. Aggiungere altri dati, visualizzazioni e creare dashboard di produzione personalizzati.

Tenere presente che la creazione del dashboard precedente richiede un numero notevolmente superiore di passaggi rispetto a quelli descritti in questo documento (come si può vedere sul lato destro dell'immagine, nel menu Dati).

Risoluzione degli errori

Durante il caricamento dei dati da Fusion Operations a Power BI, potrebbero essere restituiti alcuni errori. Di seguito è riportato un elenco di errori e di soluzioni:

1. Formula.Firewall: la query "allProductionRecords" accede a origini dati con livelli di privacy che non possono essere utilizzati insieme. Ricreare questa combinazione di dati.

Per risolvere questo errore, seguire la procedura seguente:

1.1 Fare clic su "Impostazioni origine dati"

1.2 Selezionare (1) tutte le voci correlate a Fusion Operations e fare clic (2) su "Modifica autorizzazioni"

1.3. Selezionare il livello di privacy "Pubblico". Ricordarsi di salvare le modifiche.

2. Si è verificato un errore nella query ". DataSource.Error: Web.Contents con l'opzione Content è supportato solo quando si esegue la connessione in modo anonimo.
Dettagli:
DataSourceKind=Web
DataSourcePath=https://fusionoperations.autodesk.com/api/authorization

Per risolvere questo errore, seguire la procedura seguente:

2.1 Fare clic su "Impostazioni origine dati"

2.2 Selezionare "https://fusionoperations.autodesk.com/api/authorization" e fare clic su "Modifica autorizzazioni"

2.3 In "Credenziali", selezionare "Modifica..."

2.4 Nel menu a sinistra selezionare (1) "Anonimo". Ricordarsi di (2) salvare le modifiche.

In caso di ulteriori dubbi, contattare Autodesk tramite la funzionalità live chat.

Per ricevere assistenza, richiedere ad un esperto di Fusion Operations di essere contattati qui.

Hai ricevuto la risposta alla tua domanda?