[DICA] Auxílio na criação de Dashboard e Componentes de BI

Aproveitando a pergunta do nosso grande colega @RenatoHAlex1972 sobre Ordem de Serviço via API, gostaria de compartilhar a todos a biblioteca que desenvolvi que torna o processamento no frontend das páginas de Dashboard bem mais simples e fácil quanto chover depois de lavar o carro.

Um processamento comum é geralmente feito de modo manual com uma requisição de salvamento de várias linhas, tratamento de erros, conversão de responses, cast do corpo de requisição, poluição de código entre outras “dores de cabeça que nem doriu resolve”, mas com essa biblioteca, isso acaba sendo comprimido em, no máximo, 2 linhas:

// Exemplo Real para salvamento na Tabela _TGFMAR_ (MarcaProduto)
(new QueryJX).save ({ DESCRICAO: 'Nome Qualquer' }, 'MarcaProduto', { CODIGO: '999' }).
    then (response => console.log (response));

Nessa biblioteca, Eu implementei um carinha chamado >> QueryJX << que fica responsável pelas requisições de SELECT(Via DBExplorer), SAVE e DELETE (não testado com a tabela TGFCAB (CabecalhoNota)), LOGIN (não funcional no front por causa do CORS e ainda sendo implementado para NodeJS) e algo super bacana que é o acionamento remoto dos botões de ação SQL, JAVA e nosso grande amigo JS (Nashhorn) pelo ACTION.

Também há outro sujeito chamado >> HostJX << que cuida do processo de LOADFILE (Carrega os arquivos armazenados junto com a página do Dashboard), REMOVEFRAME (Remove o frame externo dos dashboards), GETURL, GETCOOKIE (Recupera de maneira bem mais simples determinado cookie), OPENNEWTAB (Abre o frame em uma nova aba limpa do navegador) e CLOSETAB (Fecha a aba interna das abas do Sankhya ou a aba do navegador).

Tudo isso com a compatibilidade do navegador Sankhya e navegadores comuns devido a ser uma biblioteca construida em vanilla JS (Javascript puro), com a modelagem assincrona (via Promise) e ainda, de brinde, Você leva para a casa de presente, em 12 vezes sem juros no boleto, a implementação de objetos nativos:

  • String
    • String.format
    • String.add
    • String.padLeft
    • String.toDouble
  • Date
    • Date.getArray
    • Date.toSQLTimestamp
    • Date.toSQLString
  • Number
    • Number.excelToDate
    • Number.excelToSQLDate

Ainda não tem a documentação formada e precisa de refinamentos e melhorias, porém, nessa versão 8.0, já é possível tirar um bom proveito dos recursos.

A biblioteca é a JX Utils 8.0. Aliás, o uso é livre a todos e aceito ajuda para melhorar ainda mais (através de fork e deploys na branch DEV).

Espero que possa ser bem útil. Abraços!

Obs: Todos os métodos que retornam algo, já está trazendo as informações como objetos JS no modo mais simples possível. Ex: QueryJX.SELECT retorna um Array vazio ou com objetos onde, cada objeto tem como propriedade os campos retornados e tratados para o tipo String, Number ou mesmo undefined.

11 respostas