Integração do Power BI

Importe suas entradas de tempo do TrackingTime para o Power BI.

Julia Chulman avatar
Escrito por Julia Chulman
Atualizado esta semana

Configuração usando um arquivo do Power BI

Passo 1: Baixe o Power Bi (baixe aqui)

Passo 2: Abra o arquivo com o Power Bi

Passo 3: Acesse o TrackingTime e gere uma senha de aplicativo (clique aqui)

Passo 4: Volte para o Power Bi e insira o nome de usuário: API_TOKEN e a senha gerada no Passo 4.

Configuração manual

Passo 1: Inicie o Power BI Desktop no seu computador

  • Inicie o Power BI Desktop no seu computador, caso ainda não o tenha feito.

Passo 2: Obtenha Dados da Web

  • Clique em "Início" no menu superior.

  • Selecione "Obter Dados".

  • Na janela "Obter Dados", role para baixo e escolha "Web".

Passo 3: Configure a Fonte de Dados da Web

  • Na parte superior, selecione a opção avançada e preencha o formulário.

  • Partes do URL (1)

    https://api.trackingtime.co/api/v4/events
  • Partes do URL (2)

    ?include_custom_fields=true&filter=COMPANY&from=2018-01-01&to=2030-01-01
  • Cabeçalho da solicitação HTTP:

    application/json

Passo 4: Autorizar

  • Depois de ter inserido a URL da fonte de dados da web e clicado em "OK",

  • Selecione "Básico".

    Nome de usuário:

    API_TOKEN

    Insira a senha do aplicativo que você gerou no TrackingTime.

  • Clique em "Conectar".

Passo 5: Formatar os dados JSON em uma tabela

  1. Converter o registro de dados em tabela

    Vá para a guia "Converter" > Selecione o registro de dados > Clique em "Em tabela".

  2. Converter lista em tabela

    Selecione a lista Expanda os registros para colunas.> Clique em "Para Tabela".

  3. Expanda os registros para colunas

    Clique no ícone ao lado de Coluna1 > depois na janela pop-up clique em OK.

  4. Altere os nomes das colunas

    Agora você verá seus dados como uma tabela. E você precisará alterar os nomes das colunas.

    • Clique com o botão direito na consulta > Editor avançado

    • Cole o código abaixo.

    • Clique em "Salvar".

    = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"id", "s", "e", "d", "se", "seid", "c", "cid", "p", "pid", "pn", "pif", "t", "tid", "tt", "tv", "tl", "dd", "et", "a", "u", "uid", "uhr", "uhc", "uau", "tz", "n", "co", "r", "b", "bd", "to", "er", "rf", "re", "rgi", "ety", "uci", "cci", "sci", "has_files", "toi", "users"}, {"ID", "Start", "End", "Duration", "Service", "Service Id", "Customer", "Customer Id", "Project", "Project Id", "Project Notes", "Project is favorite", "Task", "Task Id", "Task Type", "Task Visibility", "Task List", "Due Date", "Estimated Time", "Is Archived", "User", "User Id", "User Hourly Rate", "User Hourly Cost", "User Avatar Url", "Timezone", "Notes", "Color", "Hourly Rate", "Is Billable", "Is Billed", "Icalendar Token", "Event Repeat", "Repeat Rrequency" , "Repeat Every", "Repeat Group Id", "Event Type", "User Color Index", "Customer Color Index", "Service Color Index", "Has files", "Time Off Id", "Users"})

Passo 6: Paginação (opcional)

Se você tiver mais de 5000 resultados, será necessário implementar a paginação. Para fazer isso, você precisará usar o editor avançado para implementar um código personalizado que transforma a consulta para obter várias páginas e, em seguida, mesclar os dados em um único conjunto de dados.

1. Transforme a consulta em uma função para obter os resultados de uma única página.

  • Vamos criar uma função chamada "ObterRegistrosPorPágina"

  • Clique com o botão direito sobre a consulta e selecione "Editor Avançado".

  • Cole o código a seguir na caixa:

let
GetRecordsPerPage = (page) =>
let
Source = Json.Document(Web.Contents("https://api.trackingtime.co/api/v4/events/min?include_custom_fields=true&filter=COMPANY&from=2016-01-01&to=2030-01-01&page=" & Text.From(page) & "&page_size=1000", [Headers=[#"Content-Type"="application/json"]])),
#"Converted to Table1" = Record.ToTable(Source),
Value = #"Converted to Table1"{1}[Value],
#"Converted to Table" = Table.FromList(Value, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"id", "s", "e", "d", "se", "seid", "c", "cid", "p", "pid", "pn", "pif", "t", "tid", "tt", "tv", "tl", "dd", "et", "a", "u", "uid", "uhr", "uhc", "uau", "tz", "n", "co", "r", "b", "bd", "to", "er", "rf", "re", "rgi", "ety", "uci", "cci", "sci", "has_files", "toi", "users"}, {"ID", "Start", "End", "Duration", "Service", "Service Id", "Customer", "Customer Id", "Project", "Project Id", "Project Notes", "Project is favorite", "Task", "Task Id", "Task Type", "Task Visibility", "Task List", "Due Date", "Estimated Time", "Is Archived", "User", "User Id", "User Hourly Rate", "User Hourly Cost", "User Avatar Url", "Timezone", "Notes", "Color", "Hourly Rate", "Is Billable", "Is Billed", "Icalendar Token", "Event Repeat", "Repeat Rrequency" , "Repeat Every", "Repeat Group Id", "Event Type", "User Color Index", "Customer Color Index", "Service Color Index", "Has files", "Time Off Id", "Users"})
in
#"Expanded Column1"
in
GetRecordsPerPage
  • Clique em "Concluído".

  • Defina o nome como "ObterRegistrosPorPágina".

  • ok

2. Crie uma função para obter o número total de registros que você possui.

  • Vamos criar uma função chamada "ObterQuantidadeRegistros".

  • Clique com o botão direito na função "ObterRegistrosPorPágina" e clique em duplicar e depois em "Editar".

  • Defina o nome como "ObterQuantidadeRegistros" e cole o código abaixo.

let
Source = () => let
Source = Json.Document(Web.Contents("https://api.trackingtime.co/api/v4/events/count?filter=COMPANY&from=2016-01-01&to=2030-01-01", [Headers=[#"Content-Type"="application/json"]])),
#"Converted to Table1" = Record.ToTable(Source),
Value = #"Converted to Table1"{1}[Value],
#"Converted to Table" = Record.ToTable(Value)
in
#"Converted to Table"
in
Source

3. Crie uma função para mesclar todas as páginas.

  • Vamos criar uma função chamada "MesclarPáginas".

  • Clique com o botão direito na função "ObterQuantidadeRegistros" e clique em duplicar e depois em "Editar".

  • Defina o nome como "MesclarPáginas" e cole o código abaixo.

let
NumPages = (List.First(GetCountRecords()[Value]) / 1000) + 1,

Data = Table.Combine(List.Generate(
() => [Page = 0, Information = GetRecordsPerPage(0)],
each [Page] < NumPages,
each [Page = [Page] + 1, Information = GetRecordsPerPage([Page])],
each [Information]
))

in
Data

Passo 7: Criar Visualizações

Com seus dados da web agora importados no Power BI, você pode prosseguir para criar visualizações, analisar os dados e criar relatórios para obter insights.

Isto respondeu à sua pergunta?