Impressão remota
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.
A impressão remota é utilizada em clientes que utilização a solução Cloud. Esta funcionalidade permite que o serviço do eDocs seja executado no ambiente Cloud da Senior e o PrintService seja executado no ambiente do cliente que utiliza o eDocs. Através da tecnologia adotada pelo eDocs e com as devidas parametrizações, o serviço do eDocs consegue se comunicar diretamente com os PrintServices do cliente.
A impressão remota funciona normalmente para todos os processos de impressão (manual, automático, em PDF, com seleção de impressora, com filtros de impressão).
Neste modelo de impressão, o eDocs instalado no ambiente Cloud é responsável por disponibilizar um web service de impressão. Este web service recebe requisições oriundas dos PrintServices parametrizados no cliente, que enviaram ao serviço do eDocs informações de IP e Porta de comunicação, além da lista das impressoras disponíveis em cada PrintService. Com a informação do IP, Porta e Lista de impressoras disponíveis registradas na base de dados, no momento em que o serviço do eDocs ou o Monitor precisarem enviar uma requisição de impressão, eles irão se comunicar, através da Internet, diretamente com o PrintService instalado no ambiente do cliente.
Um dos principais pontos da utilização da rotina de impressão remota é a correta liberação de acesso tanto no Firewall do ambiente Cloud quanto no Firewall do ambiente do cliente. Caso a liberação não seja efetuada adequadamente, os componentes do sistema não conseguirão estabelecer comunicação, não sendo possível utilizar a rotina.
Importante
- A tecnologia de impressão remota não suporta utilização do recurso NAT (Network Address Translation), onde haja um redirecionamento de portas. Exemplo: o PrintService, no ambiente do cliente, está parametrizado para utilizar, na rede interna, a porta 1024. No entanto, o Firewall do cliente está efetuando um redirecionamento da porta externa 10540 para a porta 1024. Nesta situação, a funcionalidade de impressão remota não funcionará. A mesma porta utilizada para acesso externo deverá ser a porta utilizada na rede interna do cliente.
- Esta documentação tem como objetivo demonstrar a parametrização de impressão em ambiente Cloud levando em conta um processo padrão de impressão, onde não é utilizada impressão em PDF, seleção de impressora ou utilização de filtros de impressão. Caso haja necessidade de utilizar estes recursos citados em conjunto com a impressão remota, a documentação das demais funcionalidades pode ser consultada, onde as parametrizações podem ser realizadas de forma convergente.
- Apesar da funcionalidade de impressão remota ter sido construída para utilização no ambiente Cloud da Senior, é possível parametrizar a funcionalidade em um ambiente de testes. Desta forma, canais e consultores da Senior poderão efetuar verificações sobre como a rotina funciona sem a utilização do ambiente Cloud da Senior, bastante ter a licença do sistema com a funcionalidade de Cloud Computing habilitada.
Informações técnicas específicas sobre o web service de impressão podem ser encontrados no manual do usuário.
Componentes do processo:
- Monitor: o Monitor pode efetuar comunicação diretamente com um ou mais PrintServices, para enviar requisições de impressão que são acionadas através 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) é atualizado para Documento eletrônico enviado para impressão ().
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: o serviço é responsável por verificar os registros marcados na base de dados para serem impressos. A cada ciclo de execução da rotina, o eDocs 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 ().
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 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. No processo de impressão e Cloud, o PrintService é responsável por encaminhar ao serviço do eDocs a lista de impressoras disponíveis para serem selecionadas na parametrização do sistema, bem como IP e Porta onde o PrintService receberá as requisições de impressão. No caso de impressão remota os PrintServices sempre estarão instalados no ambiente do cliente, nunca no ambiente Cloud Senior.
- 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. As impressoras devem estar devidamente parametrizadas no ambiente do cliente, onde os PrintServices também estão instalados.
Abaixo são indicadas as parametrizações necessárias para ativar a funcionalidade de impressão remota. Será exemplificada a ativação da rotina em um PrintService, no entanto, a rotina deverá ser ativada, obrigatoriamente, em todos os PrintServices que serão utilizados para impressão.
Importante
Nesta funcionalidade de impressão remota, cada PrintService terá possibilidade de se comunicar com apenas uma Empresa cadastrada no sistema. Desta forma, caso sejam utilizadas mais do que uma empresa, e deseja-se parametrizar a funcionalidade para mais do que uma empresa, é necessário efetuar a utilização de, pelo menos, um PrintService para cada empresa.
Caso estejam cadastradas mais empresas na base de dados e deseja-se ativar a rotina para todas elas, as parametrizações a nível de empresa devem ser repetidas para cada empresa. O mesmo ocorre para filiais, pois existem parâmetros que são a nível de filial.
Qualquer alteração de parametrização só terá efeito após o reinício do serviço do PrintService.
Antes de serem iniciadas as parametrizações no Monitor e PrintServices, é pré-requisito que sejam efetuadas as devidas liberações nos Firewalls do ambiente Cloud e ambiente do Cliente.
Liberações no ambiente Cloud (responsabilidade da Senior TI)
Primeiramente é necessário solicitar a liberação no ambiente Cloud. Esta liberação se dará através do registro de um chamado no 0800Net para o produto Senior TI em nome do cliente que esta utilizando a rotina. Neste chamado, deverão ser repassadas as seguintes informações:
- IP/URL externo para acesso ao local onde o PrintService estará disponível;
- Quantidade de PrintServices que serão utilizados.
Após a liberação ter ocorrido, a Senior TI retorna no chamado as seguintes informações:
- Confirmação de que a liberação foi efetuada com sucesso (tanto para processos de entrada como de saída);
- IP/URL do ambiente Cloud onde esta disponibilizado o web service de impressão do eDocs;
- Porta Parametrização Monitor: é indicado o número de uma porta que será utilizada para parametrização do web service do eDocs no Monitor;
- Porta Parametrização PrintService: é indicado o número de uma porta que é utilizada para parametrização no PrintService (através do Configurador). É retornada a quantidade de portas de acordo com a quantidade de PrintServices que serão utilizados. Se na requisição do chamado tenha sido indicado que serão utilizados 3 PrintServices, então será efetuado o retorno de 3 portas para utilização (além da porta a ser utilizada pelo web service – parametrização no Monitor).
Liberações no ambiente do Cliente (responsabilidade da TI do cliente)
A liberação efetuada no ambiente do cliente deve ser realizada com base no IP e nas portas retornadas pela Senior TI através do chamado.
No ambiente do cliente deverão ser criadas regras no Firewall (tanto regras de entrada como de saída), garantindo que o servidor/computador onde cada PrintService será instalado tenha liberação de acesso ao IP e as mesmas portas liberadas no ambiente Cloud pela Senior TI.
Importante
A Senior TI é responsável apenas pela parametrização do Firewall do ambiente Cloud. A parametrização do Firewall do cliente é de responsabilidade da TI do cliente.
A parametrização do Monitor é dividida em duas partes, pois há necessidade de serem efetuados procedimentos no PrintService primeiro, antes de serem efetuadas algumas parametrizações no Monitor. A parametrização destas configurações é de responsabilidade do cliente ou do consultor de implantação.
- Guia Geral da tela Configuração Geral:
Ativar impressão remota
Este parâmetro deve estar definido como Sim. Ele permite que o PrintService atualize automaticamente o endereço IP, permitindo realizar a impressão em localidades remotas que não possuam estrutura de IP fixo.
- Guia Integração da tela Configuração Geral:
Porta
Indica a porta na qual os web services do eDocs serão ativados no servidor onde o serviço é instanciado. Este campo deverá ser preenchido com o número da Porta Parametrização Monitor que foi retornada pela Senior TI no chamado que foi registrado.
Importante
A porta deverá ser a que foi definida pela Senior TI, não podendo ser parametrizada uma porta diferente.
- Item Web Service, da guia Integração da tela Configuração Geral:
Usuário e Senha
Nestes campos são definidas as credenciais (usuário e senha) que serão validadas nas requisições a serem efetuadas ao web service do eDocs. É obrigatório que cada empresa tenha um usuário diferente definido (esta validação já é efetuada pelo Monitor). Essa exigência é feita, pois é através do usuário definido na requisição que o serviço do eDocs define qual a empresa irá atender a requisição. Estas credenciais serão utilizadas para parametrização do PrintService.
Importante
Quando o sistema está utilizando uma licença que habilite o módulo Cloud Computing, é obrigatória a definição do usuário no padrão usuario@dominio.com.
Estas credenciais não serão utilizadas para nenhuma validação de acesso ao sistema ERP ou eDocs, apenas para verificação no momento que for efetuada uma requisição via web service do eDocs.
- Item Impressão, da guia Filial da tela Configuração Geral:
Quantidade de tentativas de impressão (apenas comunicação)
Indica quantas tentativas serã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 irá marcar 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, quando é utilizado ambiente Cloud é extremamente indicado definir um limite de tentativas, pois em eventual problema no processo de impressão, poderá ocorrer sobrecarga no servidor do serviço do eDocs, pois o serviço tenta infinitamente enviar documentos pendentes para a impressão.
Ativar impressão em arquivo PDF
Este parâmetro deve 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 serão realizadas.
O PrintService é instalado no ambiente do cliente. A instalação do mesmo é de responsabilidade do cliente ou consultor de implantação.
Dicas
- A instalação no ambiente do cliente pode ser efetuada selecionando somente o componente Impressão no Instalador, pois assim somente o componente PrintService é instalado, além dos componentes básicos para funcionamento de qualquer módulo do sistema. Para mais informações sobre o processo de instalação dos componentes do sistema, verifique o manual de instalação e Atualização do sistema.
- É pré-requisito para que o processo funcione que o web service disponibilizado pelo eDocs no ambiente Cloud esteja disponível a partir do computador onde o PrintService está instalado no ambiente do cliente. Por este motivo, antes de iniciar a parametrização do PrintService no ambiente do cliente, convém realizar o teste de comunicação com o web service. Informações sobre este teste poderão ser verificadas no tópico Verificando o acesso ao web service de impressão ao longo deste arquivo.
As parametrizações são efetuadas no Configurador (Configurador da instância que possui o componente PrintService instalado). Estas parametrizações devem ser realizadas para cada PrintService que utiliza a impressão remota. As parametrizações são efetuadas na guia Print Service do Configurador:
- Impressora Local: deve ser definida a impressora padrão do PrintService. Em um ambiente onde não serão utilizados filtros de impressão, todas as requisições de impressão recebidas por este PrintService serão enviadas para esta impressora.
Observação
O campo é definido como Impressora local porque, apesar de ser possível enviar a impressão para uma impressora de rede, ela deve estar instalada no sistema operacional Windows onde o PrintService foi instalado.
- Porta: neste campo é definido o número da Porta em que o serviço do PrintService que receberá as requisições a partir do servidor do eDocs que está instalado em Cloud. A porta definida neste campo deve ser obrigatoriamente a porta definida pela Senior TI para utilização do PrintService e que foi liberada no Firewall do Cliente para entrada e saída.
- Ativar impressão remota: este parâmetro deve estar marcado para ativar a funcionalidade de impressão remota no PrintService. Quando este parâmetro está marcado, os campos disponibilizados na guia Configuração de URL estarão disponíveis para alteração, bem como será possível acionar a guia Opções da Internet e acionar o botão Atualizar;
- Guia Sincronização de endereços: nesta guia estão disponíveis as parametrizações necessárias para definir a comunicação do PrintService com o web service do eDocs (que está disponibilizado no ambiente Cloud);
- Guia Configuração de URL: nesta guia são definidos todo os parâmetros para comunicação do PrintService com o web service do eDocs;
- Guia Opções da Internet: nesta guia estão disponibilizadas parametrizações referente a utilização de Proxy, caso o ambiente onde o PrintService esteja instalado (ambiente do cliente) possua um controle de acesso à internet através de um Proxy. Por padrão, o PrintService não utiliza Proxy.
- URL impressão: este campo deve ser preenchido com o endereço do web service de impressão disponibilizado pelo eDocs no padrão: http://<IP_repassado_pela_Senior_TI>:<porta_repassada_pela_Senior_TI>/Sde/Impressao. O parâmetro < IP_repassado_pela_Senior_TI > deve ser preenchido com o nome/IP do disponibilizado pela Senior TI para configuração no Monitor. O parâmetro <porta_repassada_pela_Senior_TI> deve ser preenchido com o número da porta definida no campo Porta da tela Configuração Geral (que efetivamente é a mesma porta liberada pela Senior TI paa utilização no Monitor). Se, por exemplo, a Senior TI indicar o IP 201.10.125.47 e a porta de parametrização do Monitor como 10874, teremos a URL definida da seguinte forma: http://201.10.125.47:10874/Sde/Impressao.
Importante
Consulte o tópico Verificando acesso ao web service ao longo deste documentos para garantir que o serviço do eDocs está disponibilizando o web service de Impressão no endereço configurado no campo URL impressão.
- Usuário e Senha: estes campos devem ser preenchidos com as credenciais parametrizadas nos campos Usuário e Senha na tela Configuração de Empresa. As credenciais variam de acordo com a empresa cadastrada, estão é importante tomar cuidado para definir as credenciais corretas. Em uma parametrização de impressão remota, o usuário obrigatoriamente será no padrão usuário@domínio.com.
- Descrição do Print Service (auxilia na identificação durante a configuração no Monitor: neste campo é possível dar um nome amigável ao Print Service. Este nome aparece no Monitor, ao lado do nome das impressoras que estão sendo disponibilizadas por cada PrintService.
- Identificador (GUID): Globally Unique Identifier (GUID), é um identificador hexadecimal gerado para garantir que o PrintService seja reconhecido pelo serviço do eDocs e possa haver comunicação entre estes componentes. Esse identificador é único por instalação e não pode ser editado.
- Atualizar: este botão tem a funcionalidade de enviar ao serviço do eDocs o registro do PrintService para ser selecionado no Monitor. Após a ativação da rotina, é indicado o acionamento deste botão, para que o registro do PrintService seja enviado ao serviço do eDocs e esteja disponível no Monitor. Mais informações sobre o registro e exclusão de impressora poderá ser identificado no tópico Registro e exclusão de Impressoras na lista de seleção de impressoras.
Importante
Todas as configurações definidas no PrintService são enviadas para o serviço do eDocs quando é acionada a rotina de registro de impressoras. Desta forma, eventuais alterações em parametrizações, independente de qual for, deve ser acionado o botão Atualizar para enviar o registro dos novos dados para o serviço do eDocs. Mais informações sobre este processo, verifique o tópico Registro e exclusão de Impressoras na lista de seleção de impressoras.
Qualquer alteração no PrintService só é aplicada após terem sido salvas no Configurador e ter havido o reinício do serviço do PrintService.
Importante
Para efetuar a segunda parte da parametrização é necessário que a comunicação do PrintService com o web service do eDocs tenha ocorrido corretamente e já tenha havido pelo menos um registro dos PrintServices. Por este motivo, caso não seja possível visualizar o PrintService desejado para parametrização, verifique os tópicos Verificando o acesso ao web service de impressão e Registro do PrintService para identificar qual o problema no registro do PrintService e suas respectivas impressoras.
Indica-se, também, verificar o tópico Garantindo comunicação do ambiente Cloud com o PrintService, pois a rotina de impressão só funciona se houver comunicação do ambiente Cloud com o ambiente do cliente.
- 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 devem ser solicitadas através do Monitor (botão Imprimir);
URL serviço de impressão
Neste campo deve ser selecionado um PrintService que foi previamente registrado no eDocs, através do botão Atualizar do Configurador. Este PrintService é o utilizado por padrão pela filial para envio de impressão do documento que está sendo parametrizado. Caso nenhum registro seja encontrado para seleção, verifique os tópicos Verificando o acesso ao web service de impressão e Registro e exclusão de impressoras na lista de seleção de impressoras, para identificar qual o problema no registro do PrintService e suas respectivas impressoras.
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 em cada uma das telas. No entanto, os conceitos de comunicação com PrintService e definição de templates são padrões para todos os tipos de documento.
Para que a funcionalidade de seleção de impressora possa ser utilizada corretamente, é pré-requisito que o PrintService tenha comunicação ao web service do eDocs.
Para garantir que o web service de impressão do eDocs esteja acessível, pode ser feito o seguinte teste:
- Acesse o computador em que o PrintService está instalado;
- Abra o endereço do web service do eDocs em um navegador da web a partir do computador onde o PrintService está instalado;
Para efetuar o teste de acesso, basta abrir qualquer navegador da web e acessar o endereço do web service de impressão do eDocs, adicionando o sufixo ?WSDL ao endereço.
Se a Senior TI indicar o IP 201.10.125.47 e a porta de parametrização do Monitor como 10874 durante o processo de liberação, teremos a URL a ser utilizada no Navegador Web definida da seguinte forma: http://201.10.125.47:10874/Sde/Impressao?WSDL.
Importante
Na parametrização da URL de impressão do Configurador não deve ser adicionado o sufixo ?WSDL. Este sufixo serve apenas para verificar o WSDL do web service no navegador, e garantir de que haja comunicação com o web service.
Ao acessar o endereço, deverão ser mostradas informações sobre o web service, conforme exemplificado na imagem abaixo.
Caso não haja acesso ao web service, verifique:
- As parametrizações do Monitor citadas anteriormente;
- Necessidade de ajustes em controles internos de acesso (Firewall, Proxy);
- Se o serviço do eDocs está iniciado;
- Junto a Senior TI se as liberações necessárias foram efetuadas no ambiente Cloud.
Importante
Se o acesso ao web service de impressão do eDocs disponibilizado no ambiente Cloud não ocorrer a partir do computador onde o PrintService está instalado no ambiente do cliente, não será possível efetuar o registro do PrintService no eDocs e, consequentemente, não será possível seguir com a parametrização e utilização da rotina.
O eDocs possui a funcionalidade do registro de impressoras para que as mesmas fiquem disponíveis no Monitor. Da mesma forma, o sistema disponibiliza uma rotina onde são excluídos os registros de impressoras que não receberam atualização dentro de um determinado tempo.
O registro dos PrintServices ocorre através da comunicação com o serviço do eDocs, através do web service de Impressão. Este registro ocorrerá em dois momentos:
- Ao ser acionado o botão Atualizar na guia Print Service no Configurador;
- A cada uma hora que o serviço do PrintService está sendo executado. (Caso o serviço seja reiniciado antes de uma hora, o contador será reiniciado, ou seja, levará mais uma hora após a reinicialização).
Sempre que a rotina for acionada, no log do PrintService em modo DEBUG é possível identificar as impressoras que foram enviadas para o serviço do eDocs pelo PrintService, e a informação de que a URL de impressão foi registrada com sucesso. Abaixo segue imagem que exemplifica o registro no Log da execução do processo.
Dica
Os registros dos PrintServices são armazenados na tabela N100PRT do banco de dados. Já os registros das impressoras de cada PrintService são armazenados na tabela N100IMP.
Quando o PrintService não possui permissão para acesso a determinadas impressoras (Exemplo: impressora de rede), não são enviadas estas impressoras para o serviço do eDocs. Através da verificação do Log do PrintService em DEBUG é possível verificar as impressoras que não estão sendo enviadas. Neste caso, deve-se verificar as permissões do usuário que instancia o serviço do eDocs.
Caso ocorra alguma falha na comunicação do PrintService com o serviço do eDocs para registro das impressoras, o Log também mostrará estas falhas.
A partir do momento que o registro tenha sido efetuado com sucesso, as impressoras disponíveis no PrintService estão disponíveis para seleção no Monitor. No entanto, no Monitor é necessário atualizar a página, caso ela já houver sido carregada antes do registro do PrintService.
O sistema eDocs não efetua exclusão de registros de PrintServices que não tiveram comunicação com o DE presente no Cloud. Estes registros são tratados apenas pelas telas do próprio Monitor, onde PrintServices que não tiveram atualização do registro nos últimos 30 dias não são mais exibidos na lista de PrintServices disponíveis para configuração no Monitor.
Detalhes do processo: Sempre que um PrintService envia ao serviço do eDocs a solicitação do seu registro na base de dados do DE, quando o pedido de registro é atendido com sucesso, o sistema eDocs inclui esta informação na tabela N100PRT. Nesta tabela são registrados, também, a data e hora em que a requisição de registro do PrintService foi atendida com sucesso. O Monitor, nas telas que permitem parametrização do PrintService, sempre efetua um filtro dos registros presentes na tabela N100PRT, exibindo apenas PrintServices que tiveram o registro atualizado a menos que 30 dias a partir da data atual. Desta forma, PrintServices que não tiveram mais atualização de registros não são exibidos no Monitor, mas são mantidos na base de dados. Desta forma, caso um PrintService não seja mais utilizado, ele não estará mais disponível para parametrizações no Monitor após 30 dias da data da última atualização do seu registro.
Observação
O parâmetro Tempo em dias de permanência de impressoras de Configuração Geral, guia Avançado > Intervalo de Execução do Monitor é específico para exclusão da lista de impressoras tratadas pela rotina de impressão onde utiliza-se a funcionalidade de Seleção de Impressora.
Para que a rotina de impressão remota funcione adequadamente, deve-se garantir que o computador onde o PrintService está instalado no ambiente do Cliente tenha acesso ao web service do eDocs (situação tratada no tópico Verificando o acesso ao web service de impressão) e o registro do PrintService ocorra normalmente (situação tratada no tópico Registro de PrintService). Desta forma, garante-se que a comunicação no fluxo Cliente > Ambiente Cloud está ocorrendo normalmente.
No entanto, a rotina de impressão somente funciona adequadamente se a comunicação no fluxo Ambiente Cloud > Cliente também estiver ocorrendo normalmente. Esta comunicação é necessária para que o serviço do eDocs que fica instalado no ambiente Cloud possa enviar as requisições de impressão para o PrintService que está instalado no ambiente do Cliente.
A forma mais simples de garantir que a comunicação com o PrintService do ambiente do cliente esteja ocorrendo normalmente a partir do Ambiente Cloud é efetuar um teste de comunicação via telnet.
Observação
A execução deste procedimento pode necessitar de apoio da Senior TI. Desta forma, caso haja necessidade, poderá ser registrado um chamado específico à Senior TI solicitando a execução do teste via telnet para garantir a comunicação com o PrintService.
Se tivermos como exemplo um PrintService no ambiente do cliente parametrizado para utilizar a porta 10584 (porta liberada no Firewall do cliente), onde o endereço de acesso externo seja http://201.10.165.1, nosso comando telnet é: telnet 201.10.165.1 10584. O comando pode ser executado a partir do Prompt de Comando do Windows (cmd.exe), e deve ser executado diretamente a partir do ambiente Cloud (a execução através de outro ambiente não terá validade).
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, deve ser verificado junto a Senior TI a disponibilização do componente no ambiente Cloud.
Cabe salientar que, se a partir do ambiente Cloud não seja possível efetuar a conexão com o PrintService disponibilizado no ambiente do cliente, é possível efetuar o registro do PrintService (se o PrintService no ambiente do cliente conseguir acesso ao web service do eDocs disponibilizado no ambiente Cloud), no entanto, no momento em que for enviada uma solicitação de impressão ao PrintService, a impressão não ocorre, pois o PrintService não será encontrado pelo eDocs.
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, tendo como link de comunicação entre os componentes a Internet. 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, é 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 eDocs 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 campo Quantidade de tentativas de impressão (apenas comunicação) esteja definido como 0 (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 0 (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 “Sde.log”, indicando problemas de impressão do documento.
Importante
Documentos que não foram autorizados, não sã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 alterará 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 o Monitor 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.
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 no ambiente do Cliente
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://PCCliente:10587/Impressao.
2016-06-15 13:41:18,089 [5] WARN Senior.SapiensNfe.PrintServer.MainService - Serviço iniciado
Onde:
PCCliente: é o nome do computador onde o PrintService está instalado no ambiente do cliente;
10587: é a porta parametrizada no Configurador (porta que o PrintService utilizará para receber requisições oriundas do ambiente Cloud).
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 a partir do ambiente Cloud
Podem ser utilizadas as informações presentes no tópico Garantindo comunicação do ambiente Cloud com o PrintService disponível neste documento para avaliar se, a partir do ambiente Cloud, está sendo possível efetuar a comunicação com o PrintService que está instalado no ambiente do Cliente.
- Verifique se a parametrização do PrintService está correta no Monitor para a Filial que está solicitando impressão
Em casos onde 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. No caso da impressão remota, pode ter havido a alteração do endereço de comunicação com o PrintService instalado no Cliente, desta forma, se faz necessária a atualização do registro do PrintService no eDocs (veja o tópico Registro do PrintService para mais informações sobre este processo).
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 PrintService.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 PrintService.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 (no ambiente do Cliente);
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 no ambiente Cloud
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 presente neste arquivo.
A solicitação de impressão ocorrerá 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 tela Emissão de NF-e.
Ao solicitar a impressão, o Monitor retornará 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 PrintService.log no ambiente do Cliente
No Log PrintService.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 PrintService.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.