Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Fala pessoal, tudo beleza?
Recentemente fiz um projeto com o Nprinting (versão Junho 2018 - Build: 181960), passei por diversas dificuldades ao longo do projeto, seja por mudanças que ocorreram na versão ou até falta de conhecimento. Com o objetivo de ajuda-los com essa ferramenta, estarei colocando vários posts sobre todos esses pontos em que encontrei dificuldades.
O objetivo deste post não é demonstrar coisas básicas do NPrinting, ou seja, é necessário ter um conhecimento básico da ferramenta. Caso seja necessário, podemos tratar disso em outro post
IMPORTANTE: Tudo o que estou descrevendo aqui serve apenas para a versão citada acima, pois em novas atualizações essas dificuldades podem não mais existir (espero).
Bora lá?
Antes de qualquer coisa, irei descrever o projeto (claro que será de uma forma mais simplista, mas resume bem o que passei), em que realizei o um desenvolvimento. Apesar de ser um projeto simples, existem vários pontos em que quebrei a cabeça.
Enviar relatório, em excel, para o time comercial da empresa, contendo os níveis de: Vendedor e Supervisor. Cada vendedor deverá receber o seu próprio conteúdo e cada supervisor o do seu time. Os relatórios deverão ser separados, um para o nível de vendedor e outro para o nível de supervisor.
As informações de vendedores e supervisores estão cadastradas no sistema, podendo haver modificação diária em seu cadastro.
Quando um vendedor estiver de férias, será nomeado um segundo vendedor para receber o relatório de quem se ausentou, por exemplo: Se o Vendedor A entrar em férias, o Vendedor B (ou outro indicado) ficará responsável por receber uma cópia do relatório do Vendedor A.
A tabela da hierarquia de Vendedores e Supervisores é esta:
Aparentemente é simples, mas se repararem temos alguns pontos a observar:
Vamos entender melhor essa treta!
De acordo com o help da qlik (aqui), o usuário do NPrinting é definido pelo seu e-mail, este deve ser único em seu cadastro, ou seja, não podemos ter dois usuários diferentes com o mesmo endereço de e-mail.
Só com essas informações já podemos notar que em nosso projeto teremos problema, pois o "Yuri Nicolett" possui o mesmo e-mail entre os vendedores de código: 1, 5 e 8. Além disso, não podemos esquecer de que o "Yuri Nicolett" também é um supervisor com o mesmo e-mail e, para melhorar ainda mais, o vendedor David possui dois e-mails cadastrados.
Mas isso é realmente um problema? Para quem estava acostumado com as versão antigas, sim, pois era possível repetir o cadastro de usuários, mudando apenas o seu ID (podendo ser até fictício), ou seja, criaríamos um usuário por cada ID de vendedor e cada ID de supervisor, independentemente de haver repetição de e-mail/nome ou não. Mas a realidade agora é outra... respira e vamos seguir.
Vamos continuar a entender o cadastro de usuário. De acordo com o help da qlik (aqui), um usuário pode fazer parte de um ou mais grupos de usuário.
-Opa, isso vai nos ajudar em relação aos grupos de Vendedores e Supervisores, boa notícia!
Beleza, vamos deixar o problema com o cadastro de lado, agora precisamos se preocupar com a forma de importação desses usuários. Em nosso exemplo, as informações de cadastro estão em sistema, ou seja, podemos montar um relatório, no qlik, para o NPrinting importar e sempre manter, o cadastro, atualizado.
A tela para cadastro de usuário esta localizada, dentro do painel de administração do NPrinting, em: Admin -> Users.Algumas informações básicas para o cadastro de usuário (descritivo completo😞
Informações apenas descritivas, não influenciarão nos relatórios:
OK, entendemos o que precisamos de informação do usuário, mas como podemos importa-los?
Para importar usuários, no painel de administração do Nprinting, navegue em: Tasks -> Import Task.
Ao clicar para adicionar uma tarefa, note que os únicos formatos aceitos são de planilha excel (xls, xlsx e xlsm*). Mas como assim NPrinting? Não podemos importar diretamente do Qlik? Vou ter que deixar o processo manual? Foi o que pensei na primeira vez, mas note que o Nprinting é um gerador de relatório, logo podemos gerar um relatório com as informações de usuários (é triste, mas é dessa forma mesmo rsrs).
*xlsm é possível utilizar o formato para cadastro de macros, porém ainda não é possível executa-las.Para gerar esse relatório, existe um padrão de planilha e nomenclatura dos campos, este padrão, por enquanto, deve ser mantido, conforme explicado pela Qlik:
"No momento, as planilhas e nomes de campo no Excel estão fixos e não podem ser mapeados. Você deve criar um arquivo do Excel com suas informações sem alterar os nomes ou as posições das planilhas e colunas."
Este padrão pode ser baixado diretamente pelo site da qlik (aqui) ou se quiserem tem aqui no blog também (aqui).O arquivo de modelo possui três abas:
Para esse primeiro post não iremos falar de filtros, mas abordaremos no próximo post.
Precisando gerar um relatório NPrinting para importar os usuários ou não, devemos ter essa estrutura tratada no qlik, então vamos entender parte a parte para termos a tabela montada no qlik.
Lembre-se que essa é a tabela de usuário, ou seja, não podemos ter usuário com e-mail repetido ou com dois e-mails!
O resultado desta extração será o mesmo da tabela mostrada aqui
2. Agora precisamos separar os Vendedores dos Supervisores e eliminar o e-mail duplicado do "David Bernardi". Neste caso, irei pegar o primeiro e-mail (que é o diferente Yuri Nicolett).
Primeiro vamos carregar as colunas de Vendedores, identifica-las com 'Vendedor' no campo Uuario.Grupo e depois carregamos as colunas dos Supervisores. Desta forma consigo isolar os cadastros e também consigo eliminar as duplicidades.
Note que o e-mail será utilizado como chave, pois este campo vai ligar com a nossa tabela de filtros (no próximo post) e é o campo que deve ser único no cadastro.
3. O resultado da leitura anterior será assim:
Repare que ainda temos uma duplicidade, pois o Yuri Nicolett é um Vendedor e Supervisor.
4. Para resolver, basta um Concat
Resultado:
Lembre-se: Um usuário pode ser de N grupos. A sintaxe deve ser a virgula.No fim, todos os usuários cadastrados, sem nenhuma duplicação.
5. Criando as demais colunas, conforme o padrão do modelo de importação
Alguns pontos importantes:
6. Tabela final a ser exportada ao NPrinting
Não esqueça do nome amigável no título, pois você localiza os objetos, no NPrinting, pelo seu título.
Podemos aproveitar e criar o cadastro de grupo:
Com a função SubField (maiores detalhes), consigo quebrar a informação que estava na mesma linha, em linhas diferentes.
Resultado:
Pronto, agora basta criar o relatório no Nprinting para exportar essa planilha (não vou demonstrar como criar, pois o processo é bem simples, mas se tiverem dúvida, posso mostrar em outro post).
Após gerar o relatório, teremos uma planilha da seguinte maneira:
Aba: Users
Aba: Groups
O processo de importação da planilha é simples, mas acho que vale a pena mostrar:
2. Nesta janela, adicione um nome a tarefa, uma descrição e o caminho do relatório que foi gerado, contendo os usuários:
As opções mostradas são para que os usuários sejam alterados, conforme a planilha. Vale a pena dar uma conferida:
3. Após criar a tarefa, execute-a para que os usuários sejam criados:
Verifique se a mesma foi carregada com sucesso, caso contrário verifique o problema no log.
4. Navegue até os usuários (Admin -> Users) e confira se foram criados:
5. Clique em um usuário (em seu nome) e veja os detalhes do cadastro:
Caso não tenha alguma informação, basta adiciona-la lá na rotina de geração da tabela no qlik!
6. Verifique se o usuário foi inserido nos grupos
Show de bola! Usuários e grupos criados.
Neste primeiro post, conseguimos entender como os usuários devem ser cadastrados no NPrinting, que as vezes teremos que tratar algumas particularidades de cadastro e assim atender a todos os requisitos de cadastro que a ferramenta solicita. Outro ponto importante foi sobre a importação automática, esta deve ser criada através de um report do Nprinting.
No próximo post, iremos trabalhar como filtros e iremos resolver aos seguintes problemas do projeto:
Para cumprir esses itens, irei explicar:
Quero deixar o agradecimento ao Pablo Labbe e ao Jhonatan Borges, sem a ajuda deles não conseguiria ter finalizado este projeto.
O projeto esta sendo realizado em Qlik Sense, desta forma todos poderão ter acesso ao código fonte do QVF.Link para acesso ao diretório do projeto: AQUI
No diretório existem os arquivos:
Valeu galera e até a próxima!
Excelente dica Yuri. Deveria ser parte da documentação oficial, já que ficamos orfãos da conexão direta ao app Qlik como existia na versão 16.
Só complementando que a tarefa por ser agendada na seção gatilhos (Triggers) para ser executada todos os dias para manter o sincronismo do cadastro de usuários.
Também acho que deveria existir a conexão direta, como já existia em outras versões, mas creio que é questão de tempo para voltarem.
Aproveitando que você falou sobre triggers, ainda esta faltando uma tela para gerenciar melhor as tarefas cadastradas (A task executions ainda é muito pobre e mostra apenas o que esta executando ou o que já executou) e também uma forma de linkar uma task na outra.
Também sinto falta desse recurso de encadeamento de tarefas igual ao que tem no Qlik Sense e QlikView.
pablolabbe a esperança será executar as tarefas via linha de comando, talvez assim seja possível simular lo encadeamento das tasks