Fonte de dados

Instruções para Consulta SQL em Excel da fonte de dados



Essa funcionalidade habilita que uma consulta seja realizada sobre uma fonte de dados que tem origem num arquivo Excel. Segue abaixo uma tabela exemplo que representa alguns dados da planilha de um Excel:




A

B

C

D

E

1

ID

Solicitante

Prioridade

Criado em

SLA Atendido

2

112

Ricardo

3: normal

28/08/2017

Sim

3

150

Luis

3: normal

28/08/2017

Não

4

253

Marcos

1: crítica

17/10/2017

Não

5

300

Luis

2: urgente

25/10/2017

Sim


Para realizar a consulta são usados os conceitos abaixo:


  • O nome da tabela a ser usada no SQL é excel, independente do arquivo, apenas serão importados os dados existentes na primeira planilha do arquivo Excel;
  • O nome das colunas a serem usadas no SQL tem o mesmo nome das referências na planilha. Por exemplo, a coluna Prioridade, na consulta será coluna_C;
  • A consulta deve ter como projeções de retorno apenas valor e data;
  • Para utilizar filtro de data na cláusula WHERE, deve ser utilizado o texto no formato ‘aaaa-mm-dd’.

 

 

Exemplo:

 

Consulta com as projeções requeridas e filtros na cláususa WHERE:


SELECT COUNT(coluna_E) AS valor, coluna_D as data FROM excel WHERE coluna_E = ‘Sim’ AND coluna_D = ‘2017-08-28’ GROUP BY coluna_D



Fontes de dados de indicador do tipo Excel com SQL

No cadastro de fonte de dados, ao selecionar a opção Excel com SQL, será exibido o campo Tipo de arquivo com as opções Caminho do arquivo e Upload arquivo

  1. Caminho do arquivo (comportamento anterior): usuário deve informar o caminho do arquivo que deve estar no diretório configurado na propriedade LOCAL_ARQUIVO_INDICADOR_DS informada no jexp.ini
  2. Upload do arquivo: usuário envia o arquivo via interface, este arquivo será guardado na diretório informado na propriedade LOCAL_ARQUIVO_INDICADOR_DS do jexp.ini
    Nesta opção também será possível baixar o arquivo - Link Ver arquivo.
  1. Será possível alternar entre as opções acima, sem perder a configuração e o arquivo.
  2. Caso a propriedade LOCAL_ARQUIVO_INDICADOR_DS não for informada no jexp.ini, os campos ficam bloqueado e será exibido mensagem de erro com orientação para configurar:



  3. Ao alterar o diretório na propriedade LOCAL_ARQUIVO_INDICADOR_DS, usuário deve mover os arquivos das fontes de dados para o novo diretório manualmente


API para envio de arquivos para fonte de dados de indicadores

  1. Criado API para envio de arquivos para o Fonte de dados de indicadores http://[URL]/channel/v2/api/v1/datasource/{ID_FONTE_DADOS}/uploadFile
  2. Na URL deve conter o ID da fonte de dados, o body deve ser do tipo form-data com o atributo file
    Exemplo para obter o TOKEN de autenticação (deve-se informar o e-mail do usuário) (alterar para URL do ambiente):
    curl --request POST \
      --url https://channel.jexperts.com.br/channel/v2/auth2 \
      --header 'Content-Type: application/json' \
      --cookie 'cloud-environment=production' \
      --data '{
        "email": "jexperts@jexperts.com.br",
        "password": "123456"
    }'

    Exemplo de envio do arquivo:
    curl --location 'https://channel.jexperts.com.br/channel/v2/api/v1/datasource/1/uploadFile' \
    --header 'Authorization: Bearer TOKEN' \
    --form 'file=@"/home/user/testeds.xlsx"'

  3. Esta API retorna as seguintes mensagens de validação com status 400:
    1. Nenhum arquivo foi enviado - quando não é informado o atributo file no form ou o arquivo enviado é vazio (0 bytes).
    2. Arquivo deve ter extenção XLSX
    3. ID da fonte de dados não informado
    4. Esta faltando propriedade LOCAL_ARQUIVO_INDICADOR_DS=/usr/java/channel_files no jexp.ini
    5. Fonte de dados não encontrada
    6. Esta fonte de dados não é SGBD > Excel com SQL
  4. Retorno da API: Arquivo salvo com sucesso (Status 200)
  5. Se ocorrer algum erro, será retornado status 500 junto da mensagem de erro
  6. Caso token inválido será retornado status 401 - Não autorizado


Observações:
  1. A primeira linha do arquivo é considerada cabeçalho e não será lida
  2. O arquivo não pode utilizar fórmulas (colunas com fórmula serão lidas como texto, não permitindo realizar cálculos)
  3. Em anexo segue exemplo de planilha
  4. Exemplo de consulta: SELECT SUM(coluna_d) as valor, now() as data FROM excel WHERE coluna_a = 'Tomate'