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:
Testando no Power BI
Troque pelo o dominio para o qual você configurou o token
Neste ultimo passo, o usuario deve configurar as estruturas da tabela no powerBI