Dados

Updated: 22 Setembro, 2017

Visão Global

O Flexidash permite a visualização de informações provenientes de um ou vários sistemas de informação do cliente, e de múltiplas localizações.

A alimentação de dados do dashboard é feita utilizando um dos seguintes métodos:

  • envio de dados para o dashboard (PUSH),
  • o dashboard lê os dados a partir de um determinado URL (PULL)
  • ou leitura interna na cloud LVEngine, para quem tem um site LVEngine

Todos os dados apresentados no dashboard são mantidos exclusivamente em memória pelo nosso sistema, não havendo qualquer tipo de registo dos mesmos.

Sincronizador Flexidash

A documentação apresentada nesta página consiste na explicação do processo de actualização de dados, no entanto e de modo a facilitar a implementação, é disponibilizado um software para Windows, que permite a sincronização de dados entre uma base de dados relacional com o Flexidash.

Para saber mais, consulte a página Sincronizador Flexidash.

Push

O método PUSH DATA permite que sejam enviados em intervalos regulares dados de modo a alimentar um ou vários widgets simultaneamente. O processo consiste em fazer um HTTP POST com informação em formato JSON.

Para enviar os dados, fazer um HTTP POST para:

https://dashboard.lvengine.com/171900b062ff6f3a1a349ec5b96d02f3/push

O conjunto de letras e números que supercede o domínio, é o identificador único do seu dashboard (hash_key), deverá trocar para ser o do seu dashboard. Pode consultar essa informação na sua área de administração.

Formato do POST

O Flexidash utiliza um HTTP POST para fazer o envio de dados para o dashboard.  O POST pode alimentar um ou vários widgets ao mesmo tempo.

O HTTP POST deve conter:

  • api_key corresponde ao código da sua conta Flexidash, poderá consultar essa informação na área de administração
  • widget_id ou slot, que varia se está a enviar para um widget específico ou para uma posição de memória
  • data, que corresponde aos dados propriamente ditos. A estrutura dos dados depende consoante está a enviar dados simples, ou uma lista de valores

Os dados são enviados preenchendo o campo data, com valores em formato JSON. Recomenda-se que o nome usado nas variáveis seja o mais genérico possível, utilizando por exemplo: val1, val2 em vez de nome, numero_contribuinte:

"data" : {
     "val1" : "1211",
     "val2" : "2312"
  }

Detalhes

Enviar os dados para um widget específico:

{
"api_key" : "xxxx-xxxx-xxxx-xxxx",
"widget_id" : "454",
"data" : {
     "val1" : "1211",
     "val2" : "2312"
  }
}

O widget_id é o número a laranja que vê quando está a configurar o widget. 

Enviar dados para alimentar vários widgets:

Em vez de especificar um widget_id, utilizará um espaço de memória (slot) que cada dashboard possui.

{
"api_key" : "xxxx-xxxx-xxxx-xxxx",
"slot" : "1",
"data" : {
     "val1" : "1211",
     "val2" : "2312"
  }
}

Cada dashboard possui 32 slots portanto o número deverá ser de 1 a 32.

Índices

O campo data pode ter a informação dividida por vários indices, ou seja, basicamente divide os dados em sub-níveis:

    "data" : {
        "index1" : {
            "val1" : "1212",
            "val2" : "3245",
        },
        "index2" : {
            "val1" : "6352",
            "val2" : "4561",
        },
    }    

O nome para os sub-níveis e variáveis podem ser o que quiser, mas não pode conter acentos, espaços ou caracteres especiais. Atenção também para o facto que é case-sensitive. Para que o widget utilize os dados de um determinado índice, deverá preencher o campo Data index na janela de configuração, com o índice pretendido.

 

Resultado

O resultado da operação é dado em JSON, retornando 3 valores: success que indica se a operação teve sucesso. No caso caso de erro, vem preenchido o error_code e o error_message com o problema detectado.

Operação com sucesso

{
  "success" : "true",  
  "error_message" : "",
  "error_code" : ""
}

Operação com erro

Um erro ao efectuar um push resultará num JSON que inclui um código de erro e respectiva mensagem informativa:

{
  "success" : "false",
  "error_message" : "Mensagem informativa do erro",
  "error_code" : "000"
}

Na tabela seguinte tem algumas condições de erro que podem ser apresentadas:
 

Erro Código do erro
Erro de preenchimento 400
Dados de acesso inválidos 401
Sem permissão para efectuar o Push 403
Push demasiado grande 413

 

Tenha em atenção que mesmo que seja uma operação que tenha dado erro, o HTTP status retornado é na mesma 200 OK.

 

Exemplo com cURL

Exemplo rápido para testar o envio de dados para um dashboard, utilizando o comando cURL:

curl -X POST https://dashboard.lvengine.com/171900b062ff6f3a1a349ec5b96d02f3/push -d 
'{"api_key":"xxxx-xxxx-xxxx-xxxx","slot":"1","data":{"val1":"1211","val2":"2312"}}'

Tanto a hash do dashboard, como a api_key deverão ser modificadas para corresponder aos seus dados.

 

Exemplos

Indicador númerico

Tipo de widget indicado para mostrar a variação de um valor númerico relativamente a outro, ou a variação desse valor no tempo.

 

Exemplificação dos dados em JSON

{
"data" : {
     "val1" : "3753.54",
     "val2" : "589.40"
  }
}

Indicador de totais

Tipo de widget que permite mostrar três valores com importâncias distintas.

 

Exemplificação dos dados em JSON

{
    "data" : {
        "val1" : "276",
        "val2" : "340",
        "val2" : "341",
    }
}
 

 

 

Gráfico

Tipo de widget que permite demonstrar dados através de gráficos.

 

Exemplificação dos dados JSON

    {
        "data" : [
         {  "val1" : 8,  "val2" : "74"  },
         {  "val1" : 9,  "val2" : "130" },
         {  "val1" : 10, "val2" : "133" },
         ...
        ]
    }

Indicador de texto

Tipo de widget que permite apresentar texto estático. Pode ser texto simples ou HTML. Permite a utilização directa de valores recebidos, através da utilização de macros. Cada macro é o nome do valor recebido nos dados.

 

* Neste caso o val2 está a ser declarado 
para que possa assumir uma formatação

Exemplificação dos dados em JSON

{
    "data" : {
        "val1" : "sent",
        "val2" : "2014-04-07 11:30:05"
    }
}

Indicador de espaço

Tipo de widget que permite mostrar a relação proporcional de uma lista de valores.

 

Exemplificação dos dados JSON

    {
        "data" : [
         {  "url" : "semalt.semalt.com",  "counter" : "68"  },
         {  "url" : "www.google.pt",  "counter" : "44" },
         ...
        ]
    }

Indicador de espaço - II

 

Exemplificação dos dados JSON

    {
        "data" : [
         {  "nome" : "Leads",  "valor" : "357", "objectivo" : "400", "total" : "600"  },
         {  "nome" : "Clientes",  "valor" : "118", "objectivo" : "110", "total" : "200" },
         ...
        ]
    }

Indicador de Entrada/Saída

Tipo de widget que permite apresentar a comparação entre dois valores.

 

Exemplificação dos dados em JSON

{
    "data" : {
        "val1" : "7407736.39",
        "val2" : "5801215.23"
    }
}

Indicador de Entrada/Saída - II

Comparação entre dois valores, mas com apresentação de barras verticais.

 

 

Tabela de valores

Tipo de widget para apresentar os dados dispostos numa tabela.

 

Exemplificação dos dados JSON

    {
        "data" : [
         {  "val1" : "Super Aguiar S.A.",  "val2" : "23", "val3" : "628,29"  },
         {  "val2" : "AutoGiesta",  "val2" : "-72", "val3" : "1087,90" },
         ...
        ]
    }

Manómetro

Tipo de widget que mostra um manómetro para o valor recebido

 

Exemplificação dos dados em JSON

{
"data" : {
     "val1" : "18000"
  }
}

 

Mapa Geográfico

Tipo de widget que permite dados num mapa geográfico

 

Exemplificação dos dados JSON

    {
        "data" : [
        "europa" : [
         {  "val1" : "BE", "val2" : "1478219.51"  },
         {  "val2" : "CZ", "val2" : "132087,90" },
         ...
        ]
        ]
    }
O conteúdo desta página foi útil?