A liberação do servidor do S@T ocorreu na versão 1.3.005.000.
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:
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. |
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. |
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.
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.
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.
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).
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.
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
Segue a descrição dos itens:
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.
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 para associar o CNPJ da empresa que utilizará o SAT e a empresa desenvolvedora para identificação perante a SEFAZ. | ||
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. | ||
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. | ||
Permite bloquear o SAT impossibilitando efetuar venda. Geralmente utilizado quando o mesmo irá ficar desativado por um longo período de tempo. | ||
Comando para efetuar um teste rápido para sabermos se o SAT está em operação. | ||
Comando para desbloquear o SAT caso o mesmo esteja no estado BLOQUEADO. | ||
Comando para enviar os dados para o SAT, para que o mesmo possa autenticar e retornar uma resposta. | ||
Comando utilizado pelo framework interno do servidor para efetuar uma validação rápida se o componente do mesmo está habilitado. | ||
Permite modificar as configurações de acesso a rede do SAT, como IP, Gateway, DNS, proxy, entre outros. | ||
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. | ||
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. | ||
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. | ||
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. | ||
Comando utilizado para efetuar um teste completo de comunicação entre o aplicativo comercial, o SAT e a SEFAZ. | ||
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. | ||
Comando utilizado pelo framework interno do servidor para desinicializar o componente de acesso ao SAT. | ||
Comando utilizado pelo framework interno do servidor para inicializar o componente de acesso ao SAT. | ||
Comando utilizado pelo framework interno do servidor para inicializar o componente de acesso ao SAT. É uma variação do comando anterior. | ||
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. |
5.
Nesta aba deve constar as seguintes informações fidedignas da empresa que irá utilizar o equipamento:
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.
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. |