Tabela de conteúdos

Servidor S@T

A liberação do servidor do S@T ocorreu na versão 1.3.005.000.

Para a utilização deste módulo é muito importante efetuar na retaguarda, no fechamento do dia, a Conferência das Vendas e o Fechamento de Caixa, com a finalidade de evitar divergências entre a SEFAZ e o sistema.

Foi criado um aplicativo servidor de modo que implementa um sistema de fila de comandos a serem enviados para o SAT. O SAT não realiza multiprocessamento, logo é processado um comando por vez. O objetivo é que no máximo três PDVs possam emitir venda utilizando um único SAT. O funcionamento é basicamente o seguinte:

  1. PDV1 envia um COMANDO1 e o PDV2 envia um COMANDO2.
  2. Será aberta CONEXAO1 e CONEXAO2 no servidor com duas sessões associadas.
  3. Na fila do banco de dados do servidor será gravada COMANDO1 e COMANDO2.
  4. Em um intervalo pré-determinado o COMANDO1 é processado no SAT e o resultado é retornado para a CONEXAO1 que volta para o PDV1. A conexão é fechada.
  5. Em um intervalo pré-determinado o COMANDO2 é processado e retornado para a CONEXAO2 que volta para o PDV2. A conexão é fechada.

A limitação de no máximo três caixas se deve ao fato que quanto mais comandos a serem processados estiverem na fila, mais lento irá ficar para os caixas conectados ao servidor operarem normalmente. Este comportamento deve-se ao fato que o último a chegar será o último a processar, isso para cada comando.

A arquitetura de rede utilizada no processo é descrita na imagem abaixo:

O servidor do SAT possui um arquivo de configuração, chamado EasyCashSRV.ini que possui as seguintes tags:

a) Conexão com o Banco de Dados:

[BDServer]

UserName=SYSDBA Usuário do Firebird para acesso ao banco de dados.
Pwd=XXXXXXXXXXXXXXXXXXXX Senha do Firebird criptografada
Path=C:\IWS\EC\BD\SERVER_SAT.fdb Caminho do banco de dados do frente de caixa. Pode ser informado um caminho físico até o arquivo FDB, um caminho de rede ou até mesmo um alias devidamente configurado no Firebird.
Charset=WIN1252 Configuração do Firebird para que seja utilizado caracteres de acentuação.
Embedded=0 Descrição a seguir.

Segue as configurações padrões de acesso ao banco de dados que é realizada no EasyCash. Um detalhe a chamar a atenção é a tag Embedded, que pode ser:

b) Conexão com o equipamento SAT:

Trace=0 Habilita um log adicional para arquivar dados adicionais em relação as conexões executadas ao servidor. Utilizado para questões de suporte. Por padrão, vêm desabilitada.
ServerPorta=5060 Porta que o servidor do SAT está operando.
AcessoDLL=2 Forma de acesso as funções da DLL do SAT. Bematech e Sweda utiliza padrão 2, no caso de ser outro fabricante, verificar a configuração correta no manual do SAT.

Nesta tag é aceito:

Porta=COM18 Porta do equipamento SAT
Marca=BEMATECH Modelo do equipamento SAT
NomeDLL=C:\IWS\EC\Client\SAT\BemaSAT32.dll Caminho da DLL do SAT que deve ficar dentro da pasta SAT.
CodigoAtivacao=5F8181818383DA64E2 Código de ativação do SAT. Esse código de ativação é criptografado.
SwHAssinatura=XXXXXXXX Esse é o vinculo entre CNPJ do cliente e o CNPJ da Software House criptografado e informado pela IWS conforme item anterior Associar Assinatura.
PaginaDeCodigo=65001 Sistema trabalha com o padrão UTF-8. Verificar no manual do SAT se trabalha com esse padrão.
VersaoDadosEnt=0,07 Versão do XML. Padrão do sistema de acordo com a SEFAZ.

Opções

Iniciar Servidor

Ao acionar esta opção, fará com que o servidor do SAT inicie para receber conexão via rede do aplicativo EasyCash configurado para acessar o mesmo. Lembrando que o servidor já abre iniciado, então só deve ser utilizado caso a opção abaixo seja acionada primeiro.

É uma opção implementada para suporte ou manutenção de alguma informação. Deve ser utilizada com restrição.

Parar Servidor

Ao acionar esta opção, fará com que o servidor do SAT não receba mais conexão via rede do aplicativo EasyCash configurado para acessar o mesmo, parando o processamento das vendas.

É uma opção implementada para suporte ou manutenção de alguma informação. Deve ser utilizada com restrição.

Iniciar Processo

É uma opção implementada para suporte. Ao acionar esta opção, fará com que o servidor inicie o processamento das requisições recebidas via rede do aplicativo EasyCash configurado para acessar o mesmo. Lembrando que o servidor já abre com o processamento iniciado, então só deve ser utilizado caso a opção abaixo seja acionada primeiro.

É uma opção implementada para suporte ou manutenção de alguma informação. Deve ser utilizada com restrição.

Parar Processo

É uma opção implementada para suporte. Ao acionar esta opção, fará com que o servidor aceite as conexões do EasyCash configurado para acessar o mesmo mas não irá processar o comando enviado na requisição, fazendo com que o tempo expire(timeout).

É uma opção implementada para suporte ou manutenção de alguma informação. Deve ser utilizada com restrição.

Trocar Senha

Permite que o cliente defina sua própria senha para o servidor, para retringir o acesso a funções vitais do aplicativo, como por exemplo: Parar Servidor. É recomendável que cada cliente crie sua própria senha para que possa controlar o acesso a configurações sensíveis do servidor.

Fechar

Permite fechar o servidor. Deve ter cuidado ao acionar esta opção, sempre verificando se não existe nenhum caixa conectado, pois isso faria com que o processamento do comando do mesmo fosse interrompido. Se for uma venda, pode ocorrer problema no processamento.

SAT

Ferramentas

Vejas as funcionalidades através do link: Manual de Instrução SAT

Consulta de Lote

Permite consultar os CF-e emitidos nos últimos 30 dias no máximo. O cliente deve ter uma chave de segurança cadastrada no sistema SGRSAT da Secretaria da Fazenda do respectivo estado de atuação.

No caso do estado de São Paulo, para maiores informações a respeito deste procedimento consulte na seção Downloads o documento Manual para Consultar lotes enviados via Webservice (Estadual) no link: Portal SEFAZ SP#Downloads

Última Comunicação SEFAZ

Veja esta funcionalidade através do link: Manual de Instrução SAT

Validação de Conexão de Rede

Veja esta funcionalidade através do link: Manual de Instrução SAT

Aba Status Geral

Segue a descrição dos itens:

  1. Mostra o IP da máquina cliente que está acessando o servidor.
  2. Mostra a sessão associada a cada conexão que está processando no servidor.
  3. Lista as requisições que estão ATIVO ou IDLE no banco de dados. No caso de utilizar o Firebird Embedded algumas informações deste grid são suprimidas.
  4. Instruções que estão sendo processadas em tempo real no servidor. A cada refresh é mostrado no grid a data/hora, instrução processada e qual PDV requisitou.
  5. Mostra a quantidade de memória física disponível da máquina em relação a quantidade de memória total sendo utilizada da máquina. Na segunda barra de progresso mostra a quantidade de memória utilizada pelo aplicativo do servidor em relação a quantidade de memória física total disponível. Lembrando que como trata-se de um servidor, a segunda barra de progresso deve ter ao longo do tempo uma variação mínima, alocando e desalocando(variando) de acordo com a necessidade.
  6. Mostra a porta em que o servidor de aplicativo está em modo LISTENING e também a quantidade de conexões ativas no momento.
  7. Mostra a porta do servidor do banco de dados em que o mesmo está em modo LISTENING e a quantidade de conexões ativas no momento.
  8. Mostra a quantidade de comandos pendentes na fila de processamento do SAT.
  9. Os três painéis mostra o status do servidor, do processo(processamento da fila) e do equipamento SAT(Recurso). Caso esteja verde significa que estão iniciados corretamente. Se apresentar a cor vermelha, significa que foi parado através do menu ou que no momento de iniciar automaticamente ocorreu algum erro.
  10. O primeiro ícone será mostrado caso esteja utilizando o Firebird Embedded. O segundo ícone só é exibido em caso de teste em homologação. Para cliente final em produção não é utilizado.

Aba Recurso - SAT

É mostrado todos os dados do SAT, como tipo de rede, número de série, entre outros.

Aba Configuração

Para qualquer alteração efetuada nesta aba, o servidor deve ser reiniciado para que a mesma faça efeito.

Segue a descrição dos itens:

1. Permite trocar a porta do servidor em que os clientes EasyCash irão conectar. Caso efetue esta alteração deve-se alterar a configuração de porta no frente para o mesmo poder encontrar o servidor. Por padrão a porta do servidor é a 5060.

2.

3. Refere-se ao tempo de inatividade no fim de cada processamento da fila com o intuito de evitar erros no SAT, ou seja, o SAT terminou um processamento e está finalizando ainda os seus procedimentos internos e já recebe um novo comando, gerando o erro: “SAT em processamento. Tente novamente.”

4. Refere-se aos tempos de espera máximos que cada requisição do frente de caixa irá esperar antes de retornar timeout(tempo esgotado) para o operador.

Lembrando que caso o tempo de timeout seja setado, por exemplo, para 5 segundos e seja processado em 1 segundo, os outros 4 segundos não serão utilizados e a resposta já é retornada, ou seja, o processamento será em 1 segundo.

Para estes valores foi tomado como base estas duas diretrizes:

a) Os valores oficiais para o SAT do estado de São Paulo descritos no documento Especificação de Requisitos do SAT versão 02.18.08 na seção Especificação de Requisitos do SAT no link: Portal SEFAZ SP#Downloads

b) Os valores utilizados nos testes exaustivos efetuados pelo nosso departamento de Qualidade, levando em consideração variações na estrutura de rede.

Segue uma pequena descrição de cada comando e seu valor default para o servidor:

Comando
Descrição
Tempo Default
Associar Assinatura
Comando para associar o CNPJ da empresa que utilizará o SAT e a empresa desenvolvedora para identificação perante a SEFAZ.
20 segundos
Ativar SAT
Comando para poder efetuar a liberação do equipamento SAT junto a SEFAZ para utilização em produção. Neste processo o SAT recebe os parâmetros e diretrizes de trabalho.
300 segundos
Atualizar Software
Comando utilizado para receber uma nova versão do layout dos XML enviados para o webservice da SEFAZ caso exista algum disponível. Lembrando que o aplicativo comercial também deve ser compatível com a nova versão para comunicar com sucesso com o equipamento SAT.
1800 segundos
Bloquear SAT
Permite bloquear o SAT impossibilitando efetuar venda. Geralmente utilizado quando o mesmo irá ficar desativado por um longo período de tempo.
300 segundos
Consultar SAT
Comando para efetuar um teste rápido para sabermos se o SAT está em operação.
10 segundos
Desbloquear SAT
Comando para desbloquear o SAT caso o mesmo esteja no estado BLOQUEADO.
20 segundos
Enviar Dados Venda
Comando para enviar os dados para o SAT, para que o mesmo possa autenticar e retornar uma resposta.
10 segundos
Inicializado
Comando utilizado pelo framework interno do servidor para efetuar uma validação rápida se o componente do mesmo está habilitado.
30 segundos
Configurar Interface de Rede
Permite modificar as configurações de acesso a rede do SAT, como IP, Gateway, DNS, proxy, entre outros.
20 segundos
Comunica Certificado ICP Brasil
Comando utilizado caso o cliente quiser enviar o seu próprio certificado devidamente registrado e homologado por uma entidade certificadora. No caso do estado de São Paulo a própria SEFAZ no momento do cadastro disponibiliza um certificado gratuito para autenticação e transmissão dos XML de venda.
30 segundos
Consultar Número Sessão
Comando para poder efetuar uma consulta utilizando o número de sessão, para poder visualizar o status de determinado CF-e associado ao mesmo na SEFAZ.
20 segundos
Consultar Status Operacional
Comando que permite obter um detalhamento completo das informações do SAT, como: Tipo de rede, IP, DNS, Gateway, número de série, data e hora do SAT, data e hora da última comunicação com a SEFAZ, data de validade do certificado, status de trabalho do SAT, último CF-e transmitido para a SEFAZ, entre outros.
20 segundos
Cancelar Última Venda
Comando utilizado para poder efetuar o cancelamento de uma venda, respeitando o limite máximo de tempo de que o CF-e têm que ter sido emitido nos últimos 30 minutos.
10 segundos
Teste Fim-a-Fim
Comando utilizado para efetuar um teste completo de comunicação entre o aplicativo comercial, o SAT e a SEFAZ.
20 segundos
Trocar Código de Ativação
Comando que possibilita trocar o código de segurança do SAT cadastrado na ativação. Este código é utilizado em vários procedimentos no SAT.
20 segundos
Desinicializar
Comando utilizado pelo framework interno do servidor para desinicializar o componente de acesso ao SAT.
30 segundos
Inicializar
Comando utilizado pelo framework interno do servidor para inicializar o componente de acesso ao SAT.
30 segundos
Inicializa
Comando utilizado pelo framework interno do servidor para inicializar o componente de acesso ao SAT. É uma variação do comando anterior.
30 segundos
Extrair Log
Comando utilizado para extrair os logs de registro de atividade que o SAT mantêm, muito útil em caso de erro, onde é necessário saber informações detalhadas do procedimento.
20 segundos

5.

Aba SAT

Veja esta funcionalidade através do link: Manual de Instrução SAT#Dados Gerais

Aba Empresa

Os dados informados nesta aba devem ser os mesmos utilizados para a ativação do SAT. Caso contrário os CF-e serão rejeitados pelo equipamento.

Nesta aba deve constar as seguintes informações fidedignas da empresa que irá utilizar o equipamento:

Watchdog

Junto com o servidor é distribuído um pequeno aplicativo que monitora o processamento do servidor. Sua função é validar se o servidor parar de responder por mais de 32 segundos(valor default). Caso isso ocorra o mesmo irá reiniciar o servidor automaticamente. É uma medida de segurança adicional para o servidor.

O valor default apresentado se refere ao tempo máximo de timeout de processamento dos comandos básicos do PDV no servidor somado a dois segundos adicionais de segurança.

Configurações do EasyCash

Para que o PDV EasyCash trabalhe com o servidor, é necessário adicionar ou alterar as seguintes tags no arquivo 'EasyCash1.ini'. Seguem:

[SAT]

Remoto=0 Desabilita(0) ou habilita(1) o EasyCash para trabalhar com o servidor SAT. Mesmo que o servidor seja o próprio caixa que irá utilizá-lo deve-se setar esta opção.
RemotoPorta=5060 Porta em que o servidor do EasyCash está em modo LISTENING. A porta padrão é 5060.
RemotoHost=192.168.0.14 IP do host onde o servidor está sendo executado.
RemotoConnectionTO=10000 Valor padrão em millisegundos do timeout de conexão.
RemotoCommunicationTO=10000 Valor padrão em millisegundos do timeout de comunicação.

Configurações da Retaguarda

Deve-se no cadastro dos caixas que forem utilizar o servidor de compartilhamento de SAT, setar o MESMO SERIAL e habilitar a flag REMOTO, conforme a imagem abaixo: