Impressão padrão (com filtros)
Nesse documento você encontra informações sobre:
Importante
É imprescindível que seja verificado o tópico que trata sobre o conceito de impressão via PrintService para entendimento do processo de impressão como um todo, e verificação dos pré-requisitos para que o processo seja executado com sucesso.
Em um processo de impressão padrão (com utilização de filtros de impressão), o Monitor e o Serviço do eDocs podem se comunicar com um ou mais PrintServices, e com uma ou mais impressoras. É através da utilização de filtros de impressão que é possível determinar em qual PrintService e em qual Impressora disponibilizada pelo PrintService a impressão é realizada. Esta determinação é baseada em características que os documentos possuirão como, por exemplo: série legal, observações do contribuinte, entre outros.
A parametrização de impressão possibilita a definição de apenas um PrintService para cada tipo de documento a ser impresso em cada filial. No entanto, através da utilização de filtros de impressão é possível transcender esta limitação. Neste caso, se a rotina de impressão com filtros estiver adequadamente parametrizada, tendo como base o fluxo de impressão presente no início deste tópico, um DANFE de NF-e emitido pela filial 1 pode ser impresso na Impressora E enquanto que um outro DANFE de NF-e também emitido pela filial 1 poderá ser impressora na Impressora A (a impressão é realizada em impressoras diferentes mesmo que as impressoras estão disponibilizadas em PrintServices distintos e as NF-e tendo sido emitidas pela mesma Filial, no entanto, deve existir alguma diferença entre as NF-e que possibilitará o sistema eDocs identificar qual a impressora receberá a requisição de impressão).
O Serviço do eDocs e o Monitor sempre consultarão os registros de filtros de impressão armazenados na base de dados antes de efetuar a requisição de impressão ao PrintService. Desta forma, a requisição de impressão é efetuada diretamente ao PrintService que precisa receber a requisição, onde é repassada a informação da impressora que deve imprimir o arquivo.
Importante
Caso, no momento em que seja efetuada a impressão de um documento, as características deste documento não sejam equivalentes as características definidas em pelo menos um filtro de impressão cadastrado, o processo de impressão segue o fluxo padrão, ou seja, como se não existisse filtro de impressão cadastrado. Neste caso, é utilizado o PrintService parametrizado como padrão da filial para o tipo de documento que é impresso, e a requisição de impressão é enviada pelo PrintService para a impressora padrão definida no Configurador.
Componentes do processo
- Monitor: efetuar comunicação diretamente com um ou mais PrintServices, para enviar requisições de impressão que são acionadas através do acionamento do botão Imprimir. Quando o envio da impressão ao PrintService for efetuado com sucesso, o status do indicativo de impressão no Monitor (primeira coluna presente nas telas de monitoramento dos documentos eletrônicos) será atualizado para Documento eletrônico enviado para impressão (). O Monitor respeitará os filtros de impressão definidos no momento em que a impressão for solicitada.
Importante
O Monitor disponibiliza eventos que auxiliam na identificação de falha no processo de impressão e solicitações de impressão automática, e registra eventos de impressão manual que ocorreram com sucesso.
- Serviço eDocs: é responsável por verificar os registros marcados na base de dados do eDocs para serem impressos. A cada ciclo de execução da rotina, ele envia os registros para o PrintService para que sejam impressos. Neste momento marca o status do indicativo de impressão no Monitor (primeira coluna presente nas telas de monitoramento dos documentos eletrônicos) como Documento eletrônico enviado para impressão (). O serviço do eDocs respeita os filtros de impressão definidos no momento em que a impressão for solicitada.
Importante
Existem outros status que podem ser definidos para a impressão dos documentos auxiliares: Falha, Impressão Não Realizada, Impressão pendente e Impressão em Contingência. Para maiores informações sobre estes status, consulte o tópico específico de cada documento no Manual do usuário.
O Monitor e o serviço do eDocs encaminham uma requisição ao PrintService solicitando que o mesmo envie o documento para a impressora. No momento em que o Monitor ou o serviço do eDocs conseguem conexão com PrintService e enviam com sucesso esta requisição ao mesmo, o indicativo de impressão é atualizado no Monitor. No entanto, isso não garante que o documento tenha sido impresso, pois a impressão ainda depende do sucesso da comunicação do PrintService com a impressora.
- PrintService: é o componente responsável por receber as requisições de impressão enviadas pelo Monitor e pelo Serviço do eDocs e encaminhar a impressão para as impressoras. O PrintService possui uma fila própria (fila mantida em memória) e executa o envio das impressões para as impressões em intervalos de execução pré-definidos.
- Filtros de impressão: são responsáveis por criar distinção entre os documentos eletrônicos emitidos pelo sistema, de forma que determinados documentos sejam impressos em uma impressora, e outros determinados documentos sejam impressos em outra impressora. As diferenças levarão como base informações presentes no arquivo XML gerado pelo ERP.
- Impressoras: são as impressoras que estão instaladas no sistema operacional Windows e estão disponíveis para receber a requisição de impressão encaminhada pelos PrintServices.
Abaixo são indicadas as parametrizações necessárias para ativar a impressão via PrintService, levando em conta que não serão utilizados filtros de impressão.
Importante
Qualquer alteração de parametrização só terá efeito após o reinício dos serviços (eDocs e PrintService).
As parametrizações são efetuadas na guia Print Service do Configurador (Configurador da instância que possui o componente PrintService instalado):
- Campo Impressora Local: deve ser definida a impressora padrão do PrintService. Esta impressora padrão é responsável por imprimir os documentos quando não tenha sido definida uma impressora diferente através de um filtro de impressão.
Dica
O nome das impressoras exibido na lista presente no campo Impressora Local pode ser utilizado para criação de filtros de impressão no Monitor. No Monitor, o nome da impressora deverá ser digitado exatamente da forma como é exibido neste campo.
O campo é definido como Impressora local porque, apesar de ser possível enviar a impressão para uma impressora de rede, ela deverá estar instalada no sistema operacional Windows onde o PrintService foi instalado.
- Campo Porta: neste campo é definido o número da Porta em que o serviço do PrintService receberá as requisições no computador/servidor onde ele está instalado. A Porta deve estar liberada para comunicação externa por eventual Firewall ou Antivirus, e nenhum outro aplicativo poderá utilizar esta porta. A porta padrão é 1024.
Observação
Outros campos disponíveis para parametrização do PrintService se referem a outras formas de impressão ou configurações adicionais e não serão tratadas neste tópico.
As parametrizações a serem efetuadas no Monitor são efetuadas na parametrização de cada filial e no tipo de documento emitido por cada filial.
- Guia Filial da tela Configuração de Filial:
Campo Ativar impressão em arquivo PDF: este parâmetro deverá estar definido como Não. Ele só é utilizado caso seja utilizada a funcionalidade de impressão em PDF (tipo de impressão tratada em outro tópico específico). Se ele for definido como Sim e a funcionalidade de Impressão em PDF não estiver configurada, as impressões não são realizadas.
- Configuração > Filial > aba Filial > aba <Documento_Eletrônico> (onde <Documento_Eletrônico> é cada tipo de documento gerenciado pelo DE – NF-e, NFS-e, CT-e, MDF-e, NFC-e, CF-e).
Para exemplificar a parametrização, é utilizado como exemplo a parametrização para NF-e (guia NF-e).
DANFE automático
Define se será impresso o DANFE da NF-e automaticamente após a NF-e ter sido autorizada (em ambiente normal ou em contingência). Caso o parâmetro seja definido como Não, as impressões deverão ser solicitadas através do Monitor (botão Imprimir);
Importante
A ação de geração de DANFE através do botão DANFE, localizado em NF-e > Emissões > DANFE, segue o mesmo conceito das rotinas explicadas e conceituadas nessa documentação.
URL serviço de impressão
Neste campo deve ser definida a URL para comunicação do serviço do eDocs e do Monitor com o PrintService que será utilizado por padrão pela filial para impressão de NF-e. A URL deve estar no formato endereço:porta, sem definição de protocolo http na frente. Exemplo: SERVBNU:1024. Por padrão, este campo é inicializado como localhost:1024. Neste caso, leva-se em consideração que o PrintService estaria instalado no mesmo computador que o Monitor e o serviço do eDocs (por isso o endereço localhost), e estaria utilizando a porta 1024. O endereço poderá ser substituído pelo IP do servidor, desde que haja garantia da comunicação e de que o IP não é dinâmico.
Template
Para definir qual será o template utilizado na geração dos documentos auxiliares (tanto na geração do PDF para ser efetuado o download pelo Monitor, quanto na geração do PDF que será enviado ao PrintService ou enviado por e-mail), basta acessar Configurações > Filiais > selecionar a aba Documento Eletrônico desejado (NF-e, NFS-e, CT-e, MDF-e, NFC-e, CF-e ou GNRE) > Impressão > Campo Templates > Configurar.
Dica
Campos a serem parametrizados para impressão de outros tipos de documento (NFS-e, CT-e, MDF-e, NFC-e, CF-e) podem ser consultadas no Manual do usuário de cada tela. No entanto, os conceitos de comunicação com PrintService e definição de templates são padrões para todos os tipos de documento.
Os filtros de impressão podem ser parametrizados no eDocs a nível de empresa ou de filial.
Durante a impressão do documento, o sistema verifica se existe filtro de impressão cadastrado na filial para aquele documento e, se existir, aplica o filtro cadastrado. Caso não exista filtro cadastrado na filial, verifica se existe na empresa e, se houver, utiliza-o. Ou seja, por padrão o sistema prioriza o filtro cadastrado na filial, porém, caso na empresa e na filial existam filtros cadastrados, é utilizado o da filial.
Filtro de NF-e na empresa onde as Filiais X e Y estão ligadas:
Se série = 1, impressora = A;
Se série = 2, impressora = D.
Filtro de NF-e na filial X:
Se série = 2, impressora = B;
Se série = 3, impressora = C.
A filial Y não possui filtros de impressão cadastrados.
Resultado
Ao imprimir o DANFE da NF-e da filial X com série 2, o sistema utiliza a impressora B;
Ao imprimir o DANFE da NF-e da filial Y com série 2, o sistema utiliza a impressora D;
Ao imprimir o DANFE da NF-e da filial X com série 1, o sistema utiliza a impressora A.
A parametrização dos filtros de impressão é realizada nas seguintes telas:
À nível de empresa:
- NF-e: guia Impressão > NF-e da tela Configuração de Empresa;
- NFS-e: Guia Impressão > NFS-e da tela Configuração de Empresa;
- MDF-e: guia Impressão > NF-e da tela Configuração de Empresa;
- CT-e: guia Impressão > NF-e da tela Configuração de Empresa.
À nível de Filial:
- NF-e: Configuração > Filial > aba NF-e > aba Impressão > link “Configurar Filtros”;
- NFS-e: Configuração > Filial > aba NFS-e > aba Impressão > link “Configurar Filtros”;
- MDF-e: Configuração > Filial > aba MDF-e > aba Impressão > link “Configurar Filtros”;
- CT-e: Configuração > Filial > aba CT-e > aba Impressão > link “Configurar Filtros”.
Importante
O eDocs já está preparado para efetuar filtros de impressão para NFS-e e MDF-e a partir da versão 5.8.8.2. O ERP gera informações nos XMLs de NFS-e, MDF-e para que o sistema eDocs possa efetuar os filtros a partir da versão 5.8.9.2. A geração destas informações é efetuada através dos identificadores de regras VEN-140NEINF02 e VEN-140NEINF03.
Para exemplificarmos a parametrização dos filtros, utilizaremos como exemplo a parametrização de filtros de impressão de NF-e para uma filial.
Ao acessar o link Configurar Filtros, da guia NF-e > Impressão da tela Configuração de Filial, é exibida a seguinte tela:
Na tela acima é possível identificar que nenhum filtro está cadastrado, ainda, por isso a mensagem Nenhum registro encontrado é exibida. Abaixo seguem informações sobre os componentes da tela:
- Dados da Filial: são exibidos os dados da Filial onde o Filtro de Impressão está sendo parametrizado;
- Filtros cadastrados: são exibidos todos os filtros cadastrados para a Filial e para o tipo de documento selecionado anteriormente;
- Novo: ao clicar neste botão, é possível inserir um novo filtro;
- Alterar: ao selecionar um filtro e clicar neste botão, é aberta a tela de cadastramento de filtros, no entanto, com todos os dados do filtro selecionado, permitindo-se alterar qualquer informação;
- Excluir: ao selecionar um filtro e clicar neste botão, o filtro selecionado é excluído. Não é solicitada confirmação para execução deste processo e ele é irreversível. Caso seja excluído um filtro indevidamente, o mesmo deve ser criado novamente.
Ao clicar no botão Novo ou Alterar, a tela Cadastro de filtros de impressão é exibida (quando for uma alteração, a tela será aberta já com os dados do filtro selecionado carregados):
- Nome do filtro: neste campo é definido um nome para o filtro que será cadastrado. No caso de uma alteração, o nome do filtro que está em alteração já é carregado na tela;
- Condições: nesta seção é possível identificar, incluir, alterar ou excluir condições associadas ao filtro de impressão que está cadastrado ou alterado. No caso de uma alteração, o nome do filtro que está em alteração já é carregado na tela. Informações adicionais sobre as condições dos filtros serão expostas mais abaixo;
- Servidor Impressão: neste campo deve ser definida a URL para comunicação do serviço do eDocs e do Monitor com o PrintService que é acionado quando o documento que tiver a impressão solicitada atender todas as condições definidas no filtro. A URL deve estar no formato endereço:porta, sem definição de protocolo http na frente. Exemplo: SERVBNU:1024. Caso o campo fique em branco na parametrização do Filtro, o sistema considera a parametrização definida na filial (no caso de NF-e, é a parametrização definida no campo URL serviço de impressão da guia NF-e > Impressão da tela Configuração de Filial.
- Nome Impressora: neste campo deve ser escrito o nome da impressora que está sendo disponibilizada pelo PrintService que irá receber a requisição de impressão.
Importante
O nome definido deve ser idêntico ao nome que é exibido no Configurador, do contrário, a impressora não será localizada pelo PrintService no momento da impressão, gerando erro no log. Se houver alteração do nome da impressora no computador onde o PrintService está instalado, deve ser revista a parametrização dos filtros de impressão que apontam para a impressora que teve o nome alterado.
- Não imprimir (somente para impressão automática): este campo permite definir por NF-e se a impressão deve ou não ser realizada automaticamente após a emissão. Quando um filtro é cadastrado com essa opção selecionada, o sistema marca a impressão deste documento como Desativada e gerar um evento Impressão desativada, não realizando a impressão do documento.
Essa opção impacta somente a impressão automática, a impressão manual ou geração de PDF/e-mail ocorrem normalmente. - Usar filtro como impressão adicional: ao marcar esta opção, será possível utilizar o filtro de impressão para imprimir modelos diferentes de documentos auxiliares, além daquele configurado para impressão padrão. Quando esta opção estiver marcada, o campo Impressão será marcado automaticamente, já que o filtro será usado obrigatoriamente para impressão.
Exemplo de utilização: quando for necessário imprimir uma via de DANFE padrão e uma via do DANFE Simplificado, a impressão automática poderá ser configurada no modelo padrão e adicionar um filtro de impressão com a opção Usar filtro como impressão adicional com o template de DANFE Simplificado. - Aplicar template para: este campo possui quatro opções para seleção, sendo elas:
- Impressão
- Visualização de tela
- Envio de e-mail
- Webservice de download de PDF
A seleção destas opções permite que o filtro de impressão seja aplicado de acordo com a operação desejada.
Exemplo de utilização: quando for necessário imprimir e mandar por e-mail o mesmo template, ele pode selecionar as opções Impressão (manual e automática) e Envio de e-mail. Dessa forma, o template será aplicado somente nestas duas operações. Nas restantes, como Visualização de tela e Webservice de download de PDF, o template será o configurado como padrão. - Template: neste campo são listados todos modelos cadastrados na base de dados do eDocs para o tipo de documento correspondente ao filtro de impressão. Desta forma, o modelo desejado poderá ser selecionado utilizando o campo Template sem a necessidade de possuir um arquivo físico em sua máquina. Caso seja necessário selecionar um template que não esteja listado, é possível utilizar o botão Escolher arquivo, que ficará disponível ao selecionar a opção Selecionar arquivo... para o campo Template, que a inserção de um template customizado será possível. Não é possível excluir um template listado na tela de filtros de impressão. Caso o upload de um template com o mesmo nome seja realizado, este template substituirá o existente de mesmo nome.
Exemplo de utilização: é possível selecionar a opção de NF-e simplificado, que já vem cadastrado na base do eDocs. Caso ele não encontre o template desejado e queira colocar um específico, é possível selecionar a opção Escolher arquivo e utilizar o template em questão.
- Quantidade vias adicionais: este campo permite personalizar quantas cópias adicionais serão impressas do documento caso os critérios do filtro sejam atendidos.
- Salvar: este botão deve ser acionado para garantir a inserção de um novo filtro ou salvar alterações efetuadas em um filtro já cadastrado. Caso seja fechada a tela sem clicar neste botão, as alterações/inserções não são salvas na base de dados.
- Fechar: fecha a tela atual, retornando à tela do cadastro de filtros de impressão.
Importante
Os campos Servidor Impressão, Nome Impressora e Template não precisam ser preenchidos em conjunto, no entanto, pelo menos um deles é obrigatório. Os campos que ficarem em branco não serão considerados para o envio da solicitação para impressão. Neste caso, é considerada a informação parametrizada por padrão na filial.
Exemplo de um cenário:
- Na parametrização de NF-e da Filial X está definido o campo URL serviço de impressão como SERVIDOR:1024;
- Existe um filtro de impressão cadastrado para esta mesma filial X, onde a condição cadastrada é Se série for igual a 2. Este filtro possui o campo Servidor Impressão em branco, tendo sido preenchidos os campos Nome Impressora como IMP_Faturamento e Template como Nfe_Padrao_Faturamento;
- Ao ser solicitada a impressão de uma NF-e da série legal 2 na filial X, a impressão será encaminhada para a impressora IMP_Faturamento, no PrintService localizado em SERVIDOR:1024, indicando a utilização do template Nfe_Padrao_Faturamento. Note que como não houve definição no filtro de uma URL distinta do servidor de impressão, o sistema considerará o servidor de impressão padrão da filial.
Não há problemas de serem preenchidos os campos com as mesmas informações já presentes na parametrização da Filial, no entanto, este processo é dispensável.
As condições de um filtro de impressão são cadastradas/alteradas em uma tela específica, que acionada através do botão Novo ou Alterar da tela Cadastro de filtros de impressão, conforme imagem abaixo:
- Campo: deve ser selecionado qual o campo oriundo do arquivo XML gerado pelo ERP que será utilizado parametrizar a condição do filtro. Os campos podem variar de acordo com o tipo e documento que está sendo configurado (NF-e, CT-e, NFS-e e MDF-e).
- Operador: é o operador lógico utilizado na condição. Estão disponíveis as opções: Igual, Diferente, Maior e Menor. As opções Maior e Menor só devem ser aplicadas quando o campo que for selecionado seja preenchido apenas com números, do contrário, o filtro não funcionará corretamente.
- Valor: é o valor que será utilizado como base para a condição do filtro.
- Salvar: botão que deve ser acionado para salvar as alterações efetuadas nas condições do filtro (ou confirmar inserção de uma nova condição). É importante salientar que ao acionar este botão, apenas as alterações nas condições são salvas. No entanto, para salvar as alterações no cadastro de um filtro já existente, é necessário acionar o botão Salvar da tela Cadastro de filtros de impressão.
- Fechar: ao clicar neste botão, o sistema retorna à tela Cadastro de filtros de impressão.
Importante
O comportamento padrão das condições de um filtro de impressão é E, quando adicionada mais de uma condição dentro do mesmo filtro. Ou seja, sempre que for adicionada mais de uma condição, para que a impressão seja efetuada corretamente deve-se atender todos os requisitos das condições. O botão Novo serve para adicionar mais uma condição que deve ser atendida para que a impressão seja efetuada.
Condição 1: Campo definido como Série, Operador definido como Igual e Valor definido como 2
Condição 2: Campo definido como Informações adicionais > Observações do contribuinte > xCampo, Operador definido como Igual e Valor definido como IMP101
Nesta configuração, a impressão utilizando o filtro definido somente ocorrerá quando a série da nota for 2 e a observação do contribuinte no XML NF-e for igual a IMP101. Neste caso, se a nota for da série 2 e não houver informações na observação (Condição OU), este filtro de impressão não será considerado.
Não devem ser cadastrados filtros de impressão para um mesmo tipo de documento e para uma mesma filial/empresa, onde estes filtros possuam as mesmas condições parametrizadas. Se esse tipo de cadastro for efetuado, não haverá garantia de qual filtro de impressão desejado seja o filtro utilizado pelo sistema, pois o sistema pode encontrar vários registros no momento de verificar qual o filtro terá as condições adequadas conforme o documento que teve a impressão solicitada.
Quando no eDocs é selecionada a utilização de Observações do Contribuinte para NF-e e CT-e para a condição de um filtro, o sistema espera que o ERP envie informações específicas no XML gerado pelo próprio ERP. Abaixo seguem informações de qual a tag do XML da NF-e/CT-e é utilizado pelo eDocs para efetuar o filtro de acordo com o campo utilizado na condição do filtro.
NF-e
Campo Filtro | Campo XML da NF-e | Como gerar informação pelo ERP |
---|---|---|
Informações adicionais > Observações contribuinte > xTexto | Tag <xTexto>, filha da tag <obsCont xCampo> que por sua vez é filha da tag <infAdic> | Somente através do identificador de regras VEN-140NEINF01 |
Informações adicionais > Observações contribuinte > xCampo | Tag <obsCont xCampo>, filha da tag <infAdic> | Somente através do identificador de regras VEN-140NEINF01 |
CT-e
Campo Filtro | Campo XML da CT-e | Como gerar informação pelo ERP | |
---|---|---|---|
Via tela | Via regra | ||
Informações adicionais > Observações contribuinte > xTexto | Tag <xTexto>, filha da tag <obsCont xCampo> que por sua vez é filha da tag <compl> | Através do campo Identificação da guia Contribuinte, guia Observações (7) para o CT-e gerado através da tela Preparação de CTRC (F140COL) | Através do identificador de regras VEN-140CTE0001 |
Informações adicionais > Observações contribuinte > xCampo | Tag <obsCont xCampo>, filha da tag <compl> | Através do campo Observação da guia Contribuinte, guia Observações (7) para o CT-e gerado através da tela Preparação de CTRC (F140COL) | Através do identificador de regras VEN-140CTE0001 |
Importante
- O eDocs já está preparado para efetuar filtros de impressão para NFS-e e MDF-e a partir da versão 5.8.8.2. O ERP gera informações nos XMLs de NFS-e, MDF-e para que o sistema eDocs possa efetuar os filtros a partir da versão 5.8.9.2. A geração destas informações é efetuada através dos identificadores de regras VEN-140NEINF02 e VEN-140NEINF03.
- O GO UP não possibilita a manipulação de regras. Desta forma, não é possível efetuar a utilização de filtros para NF-e utilizando as opções Informações adicionais > Observações contribuinte > xTexto e Informações adicionais > Observações contribuinte > xCampo.
- Informações geradas via regra sobrepõe informações definidas durante a geração dos documentos na base de dados. Desta forma, eventuais observações geradas via telas do sistema podem ser sobrepostas pelas regras eventualmente criadas.
Dica
Os filtros do eDocs muitas vezes não funcionam adequadamente porque a geração do XML está em desacordo com a parametrização efetuada no Monitor. Exemplo: no Monitor foi definido como condição de um filtro Informações adicionais > Observações do contribuinte > xCampo ser igual a IMP101, no entanto, o XML do ERP está sendo gerado com a informação IMP101 na tag <xTexto> ao invés de ser na tag <obsCont xCampo="IMP101">.
Filtros de impressão
Podem ser criados filtros de impressão para os documentos, nos quais é possível realizar a parametrização de condições para a impressão, através da opção Configurar Filtros, na guia Impressão da tela Configuração de Filial.
Os filtros configurados serão baseados nas informações geradas pelo ERP, conforme o tipo de documento:
- Para NF-e: serão utilizadas as informações dos campos xCampo e xTexto do grupo de tags <obsCont> geradas através do identificador de regras VEN-140NEINF01. O ERP não gera tag de <impressao> do grupo <InfSenior> para NF-e;
- Para NFS-e: serão utilizadas as informações geradas na tag <impressao> do grupo <infSenior>. Estas informações são geradas com base no identificador de regras VEN-140NEINF03 (conforme exemplos abaixo das tags geradas);
- Para MDF-e: serão utilizadas as informações geradas na tag <impressao> do grupo <infSenior>. Estas informações são geradas com base no identificador de regras VEN-140NEINF02 (conforme exemplos abaixo das tags geradas).
Os filtros configurados serão gerados na tag <impressao> do grupo <infSenior>, conforme exemplo:
<infSenior>
<impressao>
<filtros>
<item>
<campo>100</campo>
<valor>150</valor>
</item>
</filtros>
</impressao>
<emails>
<email>exemplo@email.com.br</email>
</emails>
</infSenior>
Abaixo são indicadas as parametrizações adicionais que poderão ser efetuadas com base em necessidades específicas de cada ambiente:
- Intervalo entre impressões (em milissegundos): indica ao PrintService quanto tempo deve aguardar entre as impressões. Em alguns casos, para que a impressora siga corretamente a ordem de impressão é necessário esse intervalo entre as impressões. O padrão desse campo é 0 (zero) e cada ambiente pode apresentar diferenças que influenciem no valor a ser atribuído, porém a recomendação é sempre informar o valor mais próximo de zero possível. O tempo informado deve estar em milissegundos, ou seja, se você quer inserir uma pausa de 1 segundo deve informar 1000. Para uma pausa de meio segundo, devo informar 500. Este parâmetro é utilizado em conjunto com o campo Quantidade de processamentos paralelos para impressão da tela Configuração de Filial.
Observação
Informações sobre impressão em arquivo PDF, impressão em Cloud e funcionalidade de seleção de impressora serão tratados em tópicos específicos.
Item Impressão, da guia Filial da tela Configuração de Filial:
Quantidade de processamentos paralelos para impressão: indica quantas impressões paralelas são executadas. Por padrão, este campo vm preenchido com 5. Quando este campo estiver parametrizado com um valor maior que 1, a impressão dos documentos eletrônicos não é impressa em ordem numérica, pois as impressões ocorrem paralelamente. Para que os documentos eletrônicos sejam impressos em ordem, este campo deve ser parametrizado com 1 e o campo Intervalo entre impressões (em milissegundos), presente na guia Print Service do Configurador, deve estar configurado de acordo com o ambiente, porém neste caso a impressão dos documentos pode levar mais tempo. Este parâmetro influencia tanto no processo de impressão quanto no processo de reimpressão.
Importante
Esse parâmetro permite ligar ou desligar o paralelismo no momento de enviar as impressões ao PrintService, que posteriormente fará o envio ao sistema operacional e à impressora. O fato do paralelismo estar desligado faz com o que o eDocs busque os documentos (em situação de impressão no momento) ordenados pelo número da nota, porém não temos como garantir que essa mesma ordenação será respeitada pelo sistema operacional e driver da impressora.
Quantidade de tentativas de impressão (apenas comunicação): indica quantas tentativas são realizadas de envio da impressão ao PrintService (tentativa de comunicação a partir do serviço eDocs – não aplicado a impressão manual via Monitor). Após ultrapassar a quantidade de tentativas, onde não tenha havido sucesso na comunicação, o sistema marca a impressão como Falha. Caso seja informado o valor 0 (zero) neste campo, o sistema tenta recorrentemente realizar o envio e não marca como Falha. O valor padrão deste campo é 0 (zero), no entanto, é indicado definir um limite de tentativas, pois em eventual problema no processo de impressão, pode ocorrer sobrecarga no servidor do serviço do eDocs, pois o serviço tenta infinitamente enviar documentos pendentes para a impressão.
Observação
Informações sobre utilização de filtros de impressão e diretórios extras de integração serão tratadas em tópicos específicos.
Verificando a imagem do processo presente no início deste documento, é possível perceber de que o Monitor e o serviço do eDocs se comunicam diretamente com o PrintService para enviar uma solicitação de impressão. Desta forma, a primeira verificação a ser realizada é descobrir se a comunicação entre os componentes está ocorrendo corretamente.
Observação
Para exemplificar as verificações a serem realizadas, será utilizado como base a impressão de DANFE de uma NF-e. No entanto, as verificações valem para outros tipos de documentos cujas impressões são realizadas pelo eDocs.
Quando houve a comunicação do Monitor ou do Serviço do Manual do usuário com o PrintService e tenha sido enviada a requisição de impressão ao PrintService corretamente, o registro é marcado como Documento eletrônico enviado para impressão () (ou o equivalente para impressão em contingência ). Na imagem abaixo é possível verificar este indicativo em destaque na coluna D.
Se a comunicação com o PrintService não tenha sido realizada com sucesso, o registro ficará como Pendente de impressão (),caso o parâmetro Quantidade de tentativas de impressão (apenas comunicação) esteja definido como zero, ou como Falha de impressão (), caso o parâmetro Quantidade de tentativas de impressão (apenas comunicação) esteja definido com um valor maior que zero e todas as tentativas de comunicação já tenham sido esgotadas.
Eventuais erros de comunicação entre o serviço do eDocs e o PrintService para processo de reimpressão ou impressão automática, estarão registrados no log, indicando problemas de impressão do documento.
Importante
Documentos que não foram autorizados, não serão enviados para impressão. Portanto, a análise não pode se basear em um documento que ainda não tenha sido autorizado.
Em um processo de impressão manual, caso o indicativo de impressão já esteja como Documento eletrônico enviado para impressão (), uma eventual falha no processo de impressão manual não alter a situação da impressão do documento, permanecendo ele com o status de Documento eletrônico enviado para impressão ().
O botão Imprimir, presente no Monitor, faz com que ele envie uma requisição de impressão diretamente para o PrintService. Para confirmar a comunicação com o PrintService, pode ser solicitada a impressão através do botão Imprimir.
Importante
O sistema sempre verifica os filtros de impressão no momento da geração da solicitação de impressão. Desta forma, se todas as condições definidas em um filtro de impressão sejam atendidas pelo documento que está sendo impresso, este filtro de impressão será utilizado para a solicitação de impressão.
Caso ocorra um erro de comunicação do Monitor com o PrintService é gerada uma mensagem ao usuário indicando que não foi possível enviar o documento para impressão (Exemplo: Não foi possível imprimir a NFe número 302205 (sequência 1749). Verifique o arquivo de log para maiores informações.). Neste caso, o motivo de não ter havido a comunicação será registrado no log.
Se a comunicação com o PrintService não ocorra com sucesso:
- Verifique se o PrintService está iniciado.
Para verificar se o serviço do PrintService está iniciado, pode ser utilizado o Configurador ou o Console de Serviços do Windows (services.msc). No console, o nome do serviço é Senior Documentos Eletrônicos PrintService - <Instância_Instalação> (onde <Instância_Instalação> é o nome dado a instalação no momento que o sistema foi instalado).
No Log do PrintService também é possível identificar se ele foi iniciado com sucesso. Se a inicialização ocorreu com sucesso, será possível encontrar este trecho no log (data e hora irão variar de acordo com a data e hora de inicialização do serviço):
2016-06-15 13:41:17,332 [5] WARN Senior.SapiensNfe.Processos.Sistema.Aplicacao - Aplicação inicializada
2016-06-15 13:41:17,999 [5] WARN Senior.SapiensNfe.Processos.Service.Impressao.ImpressaoControlador - Serviço escutando no endereço: net.tcp://servidor:1024/Impressao.
2016-06-15 13:41:18,089 [5] WARN Senior.SapiensNfe.PrintServer.MainService - Serviço iniciado
Onde:
servidor: é o nome do servidor onde o PrintService está instalado;
1024: é a porta parametrizada no Configurador (porta que o PrintService utilizará para receber requisições).
Importante
Para garantir de que seja verificado o log atual do PrintService, convém parar o serviço do PrintService, para então efetuar a limpeza dos Logs do PrintService (logs antigos), e somente então iniciar o PrintService novamente, para somente então verificar no log se ele foi iniciado com sucesso.
- Verifique se o PrintService está respondendo.
Um teste simples que pode ser efetuado para garantir que o PrintService esteja respondendo as requisições, é executar uma conexão telnet ao PrintService.
Se tivermos como exemplo um PrintService sendo executado na porta 1024 de um servidor que tenha o nome de PCBNU00006, nosso comando telnet será: telnet PCBNU00006 1024. O comando pode ser executado a partir do Prompt de Comando do Windows (cmd.exe).
Abaixo segue imagem de exemplo do resultado do teste quando há um problema de comunicação com o PrintService:
Abaixo segue imagem de exemplo do resultado do teste quando a conexão com o PrintService foi realizada com sucesso:
É possível notar que, quando a comunicação é estabelecida com sucesso, o retorno do teste em telnet será a tela sem nenhuma mensagem, apenas com um cursor piscando no canto superior esquerdo.
Importante
Para efetuar uma conexão telnet, é necessário que o componente Telnet esteja instalado no Windows. Caso o componente não esteja instalado, verifique junto ao responsável pela TI a instalação do componente.
O teste via telnet também pode ser utilizado para garantir a comunicação com o PrintService que esteja sendo executado em um computador/servidor diferente do computador/servidor onde o Monitor ou o Serviço do eDocs estão instalados. Neste caso, a partir do comutador/servidor onde o serviço do eDocs esteja instalado (Exemplo: SERVIDORSENIOR) é executada uma conexão telnet apontando para o computador/servidor onde o PrintService está instalado (Exemplo: SERVIDORIMPRESSAO). A porta do PrintService é a 1024. O comando telnet será executado a partir do servidor SERVIDORSENIOR com a seguinte sintaxe telnet SERVIDORIMPRESSAO 1024.
- Verifique se a parametrização do PrintService está correta no Monitor (endereço e porta) para a filial que está solicitando impressão.
Em casos em que o serviço PrintService estiver respondendo corretamente (inclusive no teste via telnet), mas ao ser solicitada a impressão pelo Monitor seja gerada mensagem de erro de comunicação, é necessário identificar as parametrizações presentes no Monitor para comunicação da filial com o PrintService, pois elas devem estar incorretas (Exemplo: apontando para a porta errada do PrintService). Detalhes sobre a parametrização podem ser verificados em tópicos anteriores desta documentação.
Conforme informado no tópico Avaliar se a comunicação com o PrintService ocorreu com sucesso, quando houve a comunicação do Monitor com o PrintService e tenha sido enviada a requisição de impressão ao PrintService corretamente, o registro é marcado como Documento eletrônico enviado para impressão ().
A partir deste momento a responsabilidade de enviar a impressão para a impressora é do serviço do PrintService.
Eventuais erros de envio da impressão a partir do PrintService para a Impressora serão registrados no Log. Quando o nível de log definido no PrintService for WARN, só serão registradas mensagens da inicialização do serviço do PrintService ou mensagens de erro da execução da rotina de impressão.
Muitos erros ocorrem porque, no momento em que o PrintService se comunica com a impressora, ela não esta disponível. Neste caso, no Log é possível encontrar uma mensagem de erro indicando este problema.
Para um maior detalhamento dos processos executados pelo PrintService, é necessário alterar o nível de log do mesmo para DEBUG (alteração efetuada através do Configurador). A partir desta alteração, é possível identificar detalhes nos processos executados pelo componente PrintService.
Tendo em vista o processo de impressão como um todo, para comprovar de que o PrintService está enviando corretamente a requisição de impressão para a impressora, poderão ser adotados os procedimentos:
- Defina o nível do log do PrintService como Debug.
Antes de definir o log como DEBUG, convém efetuar a limpeza dos logs, para garantir que os logs a serem avaliados são atuais. Para isso, o serviço do PrintService deve estar parado. Lembrando que a alteração do log é efetuada pelo Configurador e só terá efeito após a reinicialização do serviço do PrintService.
- Coloque a impressora que irá receber a impressão em Pausa;
Este processo é executado através do console de administração de impressoras do Windows do computador/servidor onde o PrintService está instalado. Para isso, acesse o menu Impressora do console e selecione a opção Pausar Impressora.
Importante
O processo para Pausar Impressão poderá variar de acordo com a versão do Windows utilizada. Da mesma forma, permissões de ambiente poderão bloquear o processo de pausa de uma impressora. Para estas situações, o administrador de TI deverá ser acionado para apoiar a execução do processo.
- Solicite a impressão de um documento pelo Monitor do sistema, utilizando a funcionalidade de seleção de impressora.
Neste caso, tem-se como pré-requisito que a comunicação do Monitor com o PrintService está ocorrendo corretamente. Caso contrário, é necessário avaliar as informações presentes no tópico Avaliar se a comunicação com o PrintService ocorreu com sucesso deste documento.
A solicitação de impressão ocorre através do acionamento do botão Imprimir das telas do Monitor. Para exemplificar o processo, utilizaremos a solicitação de impressão de um DANFE de NF-e através da guia Notas Fiscais da tela de emissão de NF-e.
Ao solicitar a impressão, o Monitor retorna a mensagem Documento eletrônico enviado para impressão.
Para exemplificar o processo, teremos como exemplo a solicitação de impressão do DANFE da NF-e número 302167 (chave: 42151280680093000181553290003021671227036836).
- Verifique os registros no Log
No Log é possível encontrar as seguintes informações, conforme imagem abaixo
No trecho destacado em vermelho, é possível identificar a inicialização do processo de impressão pelo PrintService, no entanto, neste momento (às 16:55:46), o PrintService ainda não possuía nenhum arquivo pendente em sua fila para encaminhar a impressão para impressora.
No trecho destacado em verde, é possível identificar uma nova a inicialização do processo de impressão pelo PrintService (o processo é executado a cada 30 segundos, por padrão), no entanto, neste momento o PrintService já possui a solicitação de impressão do DANFE da NF-e 302167 em sua fila. Com isso, é possível identificar que a impressão foi enviada para a impressora Brother DPC-116C.
Importante
Em ambientes onde há restrições de acesso aos recursos de rede e de infraestrutura, no Log em modo DEBUG pode ser possível identificar que o envio da impressão a impressora foi encaminhado, no entanto, a impressão não chega até a impressora. Nestas situações, é necessário verificar as credenciais definidas para instanciar o serviço do PrintService.
- Consulte o console da Impressora para verificar as impressões pendentes.
Ao verificar o console da Impressora (O que está sendo impresso), é possível identificar que a solicitação de impressão chegou à impressora (pelo menos no Spooler de impressão do Windows). Conforme imagem abaixo:
Quando temos o registro da solicitação de impressão no console da impressora, temos a garantia de que todo o processo executado pelo eDocs está correto, sendo de inteira responsabilidade do sistema operacional Windows e da infraestrutura do cliente garantir que o documento seja efetivamente impresso na impressora. Caso não seja identificada a solicitação de impressão no console da impressora, é necessário avaliar em qual ponto da comunicação Monitor/Serviço de eDocs > PrintService > Impressora está ocorrendo o problema, com base nos procedimentos indicados anteriormente neste documento.
Quando é utilizada a funcionalidade de filtros de impressão, em que são utilizados vários PrintServices e várias impressoras, uma das situações que mais ocorrem é a impressão ser realizada na impressora incorreta. Exemplo: foram criados filtros de impressão para que notas fiscais de uma determinada série sejam impressas em determinada impressora, no entanto, a impressão está sendo efetuada na impressora padrão da filial.
Conforme informado no tópico Avaliar se a comunicação com o PrintService ocorreu com sucesso acima, os filtros de impressão são verificados tanto na impressão automática (executada pelo serviço do eDocs) como através de impressão manual (executada através do Monitor). Desta forma, a maneira mais fácil de identificar quais são os parâmetros utilizados para a realização da impressão é a verificação do log do Monitor (Monitor.log) quando tiver sido solicitada a impressão manual (através do Botão Imprimir).
No entanto, o Log no padrão WARN não mostra os detalhes dos parâmetros que serão utilizados para a impressão, sendo necessária a alteração do nível de log. O log no nível DEBUG também registra muitas informações (mais do que as informações necessárias). Desta forma, o nível indicado para esta verificação é o nível INFO.
Para alterar o nível do Log do Monitor é necessário seguir estes procedimentos:
- Altere o nível do log do Monitor no Configurador para INFO:
A imagem acima indica o campo que precisa ser alterado. Após efetuar a alteração, é necessário clicar no botão Salvar do Configurador para salvar as alterações.
Importante
O Configurador deve ser executado com usuário administrador do servidor/computador, do contrário, as alterações efetuadas podem não ser salvas ao clicar no botão Salvar.
- Pare o serviço do IIS no servidor do Monitor
A parada do serviço do IIS no servidor do Monitor é necessária para que o novo nível de Log seja aplicado e para que seja possível renomear o log (possibilitando a verificação de informações atuais que serão geradas).
A parada do serviço do IIS ocorre através do aplicativo Gerenciador do Serviços de Informação da Internet (IIS) (inetmgr.exe).
- Selecione o servidor: no gerenciador do IIS, deve-se selecionar o nome do Servidor, para que as opções adequadas sejam mostradas;
- Parar: após ter sido selecionado o servidor, deve ser acionado o botão Parar para parar a execução do IIS.
- Renomeie o log Monitor.log
Indicamos que o log Monitor.log seja renomeado (ou até movido para outra pasta). Isso é indicado para que, ao ser iniciado o IIS novamente, o aplicativo Monitor crie um novo arquivo de log Monitor.log, agora somente com informações atuais.
O arquivo de log Monitor.log é encontrado no diretório de instalação do eDocs.
Dica
Para maiores informações sobre como encontrar o diretório em que o eDocs está instalado e localizar os logs do sistema, consulte o tópico Conceito e coleta de logs.
- Inicie o serviço do IIS no servidor do Monitor
- Selecione o servidor: no gerenciador do IIS, deve-se selecionar o nome do Servidor, para que as opções adequadas sejam mostradas;
- Iniciar: após ter sido selecionado o servidor, deverá ser acionado o botão Iniciar para iniciar a execução do IIS. A partir do momento que for iniciado o IIS será criado um novo log Monitor.log.
- Solicite a impressão do documento que está sendo impresso na impressora errada.
A solicitação de impressão ocorre através do botão Imprimir das telas do Monitor. Para exemplificar o processo, utilizaremos a solicitação de impressão de um DANFE de NF-e através da tela Emissão de NF-e. Ao solicitar a impressão, o Monitor retorna a mensagem Documento eletrônico enviado para impressão.
Para exemplificar o processo, teremos como exemplo a solicitação de impressão do DANFE da NF-e número 302217 (chave: 42160680680093000181553290003022171446176770).
Após solicitar a impressão e ter sido exibida a mensagem Documento eletrônico enviado para impressão, no log Monitor.log é possível identificar a solicitação de impressão, em que o sistema verifica as parametrizações definidas na base de dados para identificar para qual PrintService/Impressora é enviada a requisição de impressão.
No log é possível identificar:
- O início do processo de impressão através da linha que contenha a informação Iniciando rotina de processamento de parâmetros de Impressão;
- O término da execução deste processo pode ser identificado através da linha que contenha a informação Finalizando a rotina de processamento de parâmetros de Impressão;
- As verificações que o sistema efetua para validar eventuais filtros de impressão cadastrados na base de dados (é possível identificar estas verificações no bloco de informações registradas no Log entre o início e o término da rotina executada);
- A finalização da criação do parâmetro de impressão, que nada mais é do que a junção de todos os parâmetros que serão utilizados para indicar como o documento deverá ser impresso.
Abaixo segue o trecho do log em que é possível identificar as informações indicadas acima.
Em vermelho é possível identificar o início e o fim do processo de solicitação de impressão através do Monitor.
Já em azul é possível identificar os momentos em que o sistema encontra filtros de impressão a serem avaliados, para verificar se o documento que teve a impressão solicitada atende as condições de algum dos filtros (no Log destacado, é possível identificar que o documento que teve impressão solicitadas atendeu a todas as condições do filtro de nome Filtro 1).
Destacado em verde está o parâmetro de impressão que é utilizado na solicitação efetiva da impressão, onde é possível identificar o Template utilizado, o nome do arquivo que foi enviado para impressão, se a impressão é em PDF ou não, a impressora (se não houver definição, o PrintService utilizará sua impressora padrão) e o PrintService que atenderá a requisição de impressão.
Desta forma, através da análise do Log do Monitor é possível identificar qual o filtro de impressão que está sendo utilizado para enviar a requisição de impressão ao PrintService, sendo possível reavaliar as condições presentes neste filtro, de forma que o documento passe a ser impresso em outro PrintService/Impressora, pois o sistema passará a considerar outro filtro/parametrização para envio da solicitação de impressão.