Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Power BI

Para integramos nosso token ao Power BI, devemos seguir os passos descritos em Configurando o ambiente e seguiremos os passos de Acesso Web com algumas alterações:

1. Configuração:

1.1 EntryPoint

Para este caso precisamos fazer 2 configurações:

  • Criar o ENTRY_POINT com FILE_OR_DOMAIN igual a POWERBI e com o CODETYPE igual a PHP, a action desse entryPoint será passada na route da config(core_par_parametros):
INSERT INTO nfs_entry_point (SEQ_DB, FILE_OR_DOMAIN, `ACTION`, XMOVA_INSTALLCODE, XMOVA_INSTALLCODE_VERSION, EMPRESA, FILIAL, `LOCAL`, TABELA, ENTRY_NUM, CODE, VERSION, BUILD, ATIVO, CODETYPE, FIELD, DESCRIPTION, INS_DH, UPD_DH, NFS_USER, DB_USER) 
VALUES(287, 'POWERBI', 'aptPendenciaUltimas100', 9999, '9999', 9999, 9999, 9999, NULL, NULL, '$dao = Dao::table(''apontamento_pendencia'',''apt'')->limit(100)->orderBy(''apt.INI_DH'',''DESC'');
$result = $dao->get();
$this->outputValues = ArrayUtils::convertToCsv($result) ?? '';', 1, 26, 1, 'PHP', NULL, NULL, '', '', NULL, '');

Quando entryPoint a url poderá aceitar querys na url que poderão ser acessadas através do $this->inputValues no seu entryPoint.

Os dados serão retornados pela API através do $this->outputValues ;

Uma coisa muito importante na hora de montar o Entry Point é que o seu output será um Array e cada linha desse array será uma linha no resultado, exemplo:

Supondo que o seu resultado seja

 [ 
            [
                'ID' => 999,
                'FIELD_A' => 'LOREM',
                'FIELD_B' => 'IPSUM',
                'FIELD_C' => 'FOO;BAR',
                'FIELD_D' => 'FO,OB,AR',
                'FIELD_E' => 'ALGO|ALGO',
            ],
            [
                'ID' => 9999,
                'FIELD_A' => 'dolor "sit"',
                'FIELD_B' => 'AMET',
                'FIELD_C' => null,
                'FIELD_D' => '',
                'FIELD_E' => 0,
            ],
        ];

No caso o resultado do CSV vai ser:

            'ID|FIELD_A|FIELD_B|FIELD_C|FIELD_D|FIELD_E'.PHP_EOL.
            '999|"LOREM"|"IPSUM"|"FOO;BAR"|"FO,OB,AR"|"ALGO/ALGO"'.PHP_EOL.
            '9999|"dolor '."'sit'".'"|"AMET"||""|0'.PHP_EOL

Sendo a primeira linha as chaves do array, e as linhas seguintes cada item do do array.

  • Adicionar o entryPoint que criamos ao CONTEUDO do parâmetro ACESSO_POR_TOKEN(core_para_parametros):
{
    "EntryPoint: Ultimas 100 pendencias":{
        "route":"/nfs/api/powerbi/v1/aptPendenciaUltimas100"
    }
}

1.1.1 Parâmetros

Caso necessário podemos configurar parâmetros que poderão ser acessados através do $this->inputValues no entryPoint que criamos para consulta dos dados, isso deverá ser feito utilizando a propriedade "params" na configuração do nosso entryPoint exemplo:

{
  "Entry Fornecedor":{
      "route":"/nfs/api/powerbi/v1/powerBiFornecedor",
      "params":{
         "data_ini":{
            "type":"date",
			"format":"DD/MM/YYYY",
			"label":"Data inicial"
         },
         "data_fim":{
            "type":"date"
         },
         "seqDb":{
            type: "number"
         }
      }
   }
}

Por hora o ‘type’ dos parametro é baseados nos types do html e só o label pode ser configurado, alem do "format" para o type = "date" {.is-warning}

1.2 Tabela:

Podemos configurar a API para trazer os dados de uma tabela especifica sem que tenhamos que criar um Entry Point, para este caso basta adicionarmos a rota da powerBi com o caminho adicional /t/{tabela}, neste caso a consulta é limitada a 2000 registros caso a tabela seja MOBILE ou 5000 para as demais tabelas:

{
    "Tabela: Ultimos 2000 apontamentos pendencia":{
          "route":"/nfs/api/powerbi/v1/t/apontamento_pendencia"
    },
}

Utilizando a API

Para utilizarmos, basta geramos o token, validar o token através do e-mail, e copiarmos o link que estará disponível no perfil do usuário, segue um exemplo da utilização da API com o Insomnia: insominia.png

Testando no Power BI

insominia.png insominia.png insominia.png Troque pelo o dominio para o qual você configurou o token insominia.png

Neste ultimo passo, o usuario deve configurar as estruturas da tabela no powerBI