Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
nicolett_yuri

Um projeto Nprinting - Parte 01

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.

O Projeto

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:

  • O vendedor "Yuri Nicolett" se repete com os códigos 1 e 5
  • O próprio "Yuri Nicolett" é também um supervisor
  • O vendedor "David Bernardi" esta cadastrado com dois e-mails, um deles é o "Yuri Nicolett"

Vamos entender melhor essa treta!  

Os usuários no NPrinting

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!    

Importar usuários

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. 

Informações para cadastro de usuário

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😞

  • E-mail: Insira um endereço de e-mail exclusivo e válido do usuário, que será usado para efetuar o logon.
  • Nome do usuário: Insira um identificador para o usuário que será usado no Qlik NPrinting. Por exemplo, você verá a lista de nomes de usuário ao adicionar um usuário a uma tarefa de publicação.
  • Senha: Digite uma senha. Força da senha será exibido no campo. A borda ficará vermelha se a senha não for complexa o suficiente. Isso é apenas informativo, e não para o processo de criação do usuário.
  • Confirmar senha: Digite a senha novamente.
  • Conta de domínio: Digite o nome de domínio e de usuário se quiser associar o usuário a uma conta de domínio.Um usuário deve ter uma conta de domínio associada para usar os seguintes recursos:
    • Receber relatórios no hub do Qlik Sense.
    • Criar relatórios do On-Demand no QlikView.A conta de usuário do Windows Active Directory do usuário deve estar associada como a conta de domínio.
  • Fuso horário: Selecione um fuso horário para o usuário. As inscrições agendadas para o usuário serão executadas de acordo com o fuso horário.
  • Local: Selecione um local para o usuário. Isso define o idioma da interface do usuário do Qlik NPrinting web console, do NewsStand e do Qlik NPrinting Designer.
  • Pasta: Digite o caminho para uma pasta de distribuição na qual o usuário pode encontrar seus relatórios (opcional).
  • Subpasta: Digite o nome de uma subpasta (opcional). Pode ser combinado a um caminho digitado manualmente, nome de usuário, variáveis do QlikView ou pasta de usuário para criar o caminho de entrega final.
  • Habilitado: Desmarque a caixa de seleção, caso deseje salvar o usuário, mas manter a conta inativa.

Informações apenas descritivas, não influenciarão nos relatórios:

  • Apelido
  • Título
  • Empresa
  • Cargo
  • Departamento
  • Escritório

OK, entendemos o que precisamos de informação do usuário, mas como podemos importa-los? 

Como automatizar a importação de usuários

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:

  • Filters: Cadastro de filtros/seleções que serão realizadas pelo Nprinting
  • Users: Cadastro de usuários
  • Groups: Cadastro de grupo de usuários



Para esse primeiro post não iremos falar de filtros, mas abordaremos no próximo post. 

Montando a estrutura de usuários no Qlik

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!

  1. Carregue a planilha com a hierarquia dos vendedores

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:

    • Repare que os filtros ainda não estão preenchidos (próximo post)
    • Coluna Password: Necessário cadastrar uma senha
    • Coluna Domain Account: Não é um usuário de domínio, por isso não estou preenchendo.

  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:

  1. Faça a leitura dos usuários e retira a informação da coluna [Groups]

Com a função SubField (maiores detalhes), consigo quebrar a informação que estava na mesma linha, em linhas diferentes.


Resultado:

   

O relatório gerado

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

  

Importando no Nprinting

O processo de importação da planilha é simples, mas acho que vale a pena mostrar:

  1. Navegue em Tasks -> Import Task, na tela abaixo, crie uma nova tarefa de importação

 




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:

    • Criar usuários, se inexistentes
    • Atualizar usuários, se modificados
    • Remover os usuários adicionados na execução anterior desta tarefa, se não estiverem presentes no arquivo de importaçãoAo marcar essa opção, somente usuários adicionados em uma execução anterior da mesma importação serão removidos. Outros usuários, por exemplo, os adicionados manualmente, não serão removidos.
    • Remova os filtros adicionados na execução anterior desta tarefa, se não estiverem presentes no arquivo de importaçãoAo marcar essa opção, somente filtros adicionados em uma execução anterior da mesma importação serão removidos. Outros filtros, por exemplo, os adicionados manualmente, não serão removidos.
    • Substituir associações de usuário existentes (filtros, funções e grupos) por aquelas contidas no arquivo de importaçãoAo marcar essa opção, as associações existentes com filtros, funções e grupos serão removidas se não estiverem presentes no arquivo de importação. Caso contrário, novas associações as estenderão.
    • Substitua campos de filtro existentes por aqueles no arquivo de importaçãoAo marcar essa opção, os campos de filtro existentes serão removidos se não estiverem presentes no arquivo de importação. Caso contrário, eles serão adicionados além dos existentes.
    • Criar filtros se inexistentes
    • Atualizar filtros se modificados

  




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. 

Conclusão

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:

  1. Como fazer cada vendedor receber o seu relatório
  2. Como fazer cada supervisor receber o seu relatório
  3. Como trabalhar com filtros diferentes, para os mesmos usuários, porém em relatórios diferentes

Para cumprir esses itens, irei explicar:

  • Sintaxe de filtro
  • Conexões

  

Agradecimentos

Quero deixar o agradecimento ao Pablo Labbe e ao Jhonatan Borges, sem a ajuda deles não conseguiria ter finalizado este projeto.   

Arquivos para download

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:

  • Modelo_Importacao_Nprinting.xlsx - Planilha modelo para importação dos usuários, filtros e grupos
  • Hierarquia.xlsx - Planilha com a hierarquia de Vendedores e Supervisores
  • CadastroUsuarios.xlsx - Relatório gerado no NPrinting, com os usuários e grupos já tratados
  • BlogNicolett - Projeto NPrinting - Parte 01.qvf - QVF com o código para tratar os usuários

Valeu galera e até a próxima!

Labels (1)
4 Replies
pablolabbe
Luminary Alumni
Luminary Alumni

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.

nicolett_yuri
Author

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.

pablolabbe
Luminary Alumni
Luminary Alumni

Também sinto falta desse recurso de encadeamento de tarefas igual ao que tem no Qlik Sense e QlikView.

nicolett_yuri
Author

pablolabbe‌ a esperança será executar as tarefas via linha de comando, talvez assim seja possível simular lo encadeamento das tasks