Ir para conteúdo
  • Cadastre-se

dev botao

Compartilhamento De Sat


Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 2761 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • 4 meses depois ...
Postado

Bom dia pessoal!

Poderiam me ajudar com alguma ideia?

Ontem comecei a desenvolver um projeto para utilização do sat compartilhado, criei um server datasnap centralizando as funções nele e enviando as informações para os client e até ai tudo certo. 

Estou com um problema na execução do mesmo metodo ao mesmo tempo de dois clients diferentes, sei que preciso criar um fila de requisição para o equipamento, gostaria de saber se existe alguma forma nativa de tratar isso com o datasnap ou algumas dicas, comecei mexer ontem com o datasnap não tenho muito conhecimento.

Obrigado des de ja.

Postado

Inicia uma TCriticalSection para controlar o fluxo (fila).

Ela precisa sem global no servidor e todas as chamadas utilizar a mesma instancia.

var FLock : TCriticalSection;

 

.......

FLock.acquire;

try

           Codigo.....

Finally

FLock.release;

end;

 

 

 

 

 

  • Curtir 1

Amarildo Lacerda

Storeware Team

Postado

Olá amigos estou implementando meu gerenciador do SAT com o DataSnap, muito boa essa dica do Lacerda de usar TCriticalSection , mas fica aqui uma dica=dúvida, e se os métodos forem implementados utilizando o LiveCycle Server do DataSnap, isso não faria com que o próprio servidor DataSnap criasse internamente a fila de requisições, usando um LiveCycle Session, ou invocation, aí sim essas requisições estariam isoladas, estou correto ?

Simone D. Russo , quando ao escopo do projeto, estou desenvolvendo visando 1-1 e 1-n, ou seja tenho um servidor SAT que controla tudo do SAT, e esse servidor pode ser conectado local ( instalando o servidor e cliente na mesma máquina) , ou remoto, onde tenho uma máquina como servidora do SAT e "n" clientes pendurados nele.

Vale dizer o seguinte, se o SAT pifar, tem que ter outro para por no lugar, não importa se vc trabalha 1-1 ou 1-n ,  só irá variar o tamanho do barulho.

Eu implantei aqui também o esquema de "FailOver" assim tenho equipamentos de infra no backup, caso pare um HUB, ou o servidor, meu servidor de bkp entra em ação instantaneamente, processando os cupons normalmente. Mas faço a ressalva , usar 1-n tem que estar com a infra bem em dia. No meu caso, teremos uns 30 pdvs por loja, e pretendemos ter 1 SAT para cada 3 PDVs, assim se a infra não atender o SAT será conectado local e o servidor local iniciado, possibilitando as vendas off-line na LAN.

Todo esse cenário ainda está na homologação, sei bem que produção é diferente, mas espero ter ajudado dentro do possível.

abraços.

  • 3 semanas depois ...
Postado

Em minha opinião,

me dá uma reviravolta no estômago lendo que pessoas tão inteligentes como vocês são, se deixam levar por uma coisa que do ponto de vista comercial é tão clara.

Porque vou perder meu tempo, em desenvolver algo que somente vai me quebrar ali na frente...

Porque vou dar uma ferramenta para alguém que amanha só vai dar dor de cabeça.

E o porque pior de todos, porque vender 1 SAT, se poderia vender 3?

Única ressalva, se seu cliente tiver, 5 ou mais PDV's, aew acho que ele tem total capacidade de bancar seu desenvolvimento, mais único e exclusivo a ele, pois os outros clientes você vai cair no erro do meu 3º Porque.

Isto é o que vejo.

 

  • Curtir 4
  • 2 meses depois ...
Postado (editado)

Pessoal, boa tarde. Tudo bem com vocês ? 

Acompanhei  a discussão, e gostaria de interagir junto com vocês.Conversei com um representante de vendas do SAT, e busquei algumas informações sobre a implantação e questões físicas e de desempenho do SAT.

Não sou desenvolver, mas atuo na área técnica em implantação de sistemas, com isso vou passar o que sei, e de repente podemos ampliar nossos conhecimentos. A questão do compartilhamento do SAT, é possível como alguns mencionaram acima, utilizando um gerenciador que organize em filas as transações para o SAT em um Servidor por exemplo.

Algumas questões foram levantadas e temos que considerar; Para que tenhamos um desempenho bom, teríamos que ter uma infra-estrutura boa, com menos emenda possível na rede (Cabeamento, Switch, Roteadores, Adaptadores, etc.), estabilidade de sinal de internet e um cuidado em querer usar apenas 1 SAT para vários PDV.

Para que vocês entendam melhor, no cliente em que estou implantando, tenho 6 PDV's rodando simultaneamente das 07h:45min ~ 20h:00min. Média de 300 cupons por dia/ECF.

Me sugeriram comprar em primeira instancia, 2 SAT para dividir para os 6 PDV, que no caso ficaria 1 para cada 3. Com isso, teria que existir uma maneira de conseguirmos apontar no ERP o IP do SAT, e o gerenciador faria todo o processo.

Minha pergunta seria, alguém de vocês que já desenvolveram esse gerenciador, conseguiram instalar + de 1 SAT na mesma máquina ?

Alem disso, caso a resposta seja positiva, seria possível quando 1 dos SAT's parar de funcionar por algum motivo, as vendas centralizar do que está funcionando ?

Editado por Thiago Felippete
  • Fundadores
Postado

Comprar e manter esse gerenciador, não irá ser mais caro do que comprar 6 SATs ?

Lembre-se de que dessa maneira, compartilhando por Rede, você mata a grande vantagem do SAT, que é poder trabalhar totalmente Off-Line 

Instale um SAT por caixa e durma sossegado...

  • Curtir 4
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado

Concordo com o Daniel...

O grande problema é convencer alguns clientes que não enxergam assim... não são todos, uma minoria não aceita essa visão.

Por enquanto não precisamos cair nessa besteira, mas para previnir cheguei a fazer um gerenciador de fila usando REST e troca de arquivos, mas não está em produção e espero não precisar colocar em cliente nenhum...

Postado

Bom dia Pessoal, tudo bem?

Um membro do fórum me mandou uma mensgem privada esses dias perguntando se eu desenvolvi a fila, já que eu comecei a discussão rsrsr, vou copiar para vocês o que respondi pra ele:

Eu implementei o compartilhamento sim, tem funcionado muito bem nos clientes.

Fizemos um controle bem simples:

1) O SAT fica instalado num servidor.

2) Na estação, onde está o ERP instalado, quando o usuário na tela de vendas clica em "Emitir SAT", o sistema grava numa tabela do banco de dados chamada "FILA DO SAT" uma requisição de autorização (que contém um id único), e fica esperando a resposta (controlo isso num campo na tabela FILA, 0 = aguardando 1 = processado).

3) No servidor, onde está instalado o SAT, eu criei um programa que monitora essa tabela "FILA DO SAT", buscando registros do tipo "0 = aguardando". O programa pega esse registro (que contém o número da venda), gera o xml, envia ao aparelho, se aprovado, grava o xml de retorno. O próximo passo é gravar na tabela FILA, o resultado da operação "0 = reprovado e a mensagem de retorno/1 = aprovado" e seta "1 = processado".

4) A aplicação (que ficou num repeat until por até 20 segundos esperando o registro ser alterado para "1 = processado", ao receber a resposta, se aprovado, imprime o recibo, se reprovado envia a mensagem de retorno. Se em 20 segundos não recebeu retorno algum, retorna ao usuário a mensagem "SAT remoto não respondeu."

Basicamente é isso. O controle desenvolvido é bem simples, mas tem funcionado bem em nossos clientes, já temos mais de 300 CNPJS vinculados à nossa empresa.

 

 

  • Curtir 2
Postado

Bom vou deixar os meus 2 cents aqui.

Estou trabalhando com SATs compartilhados desde junho de 2015, e no atual momento estou rodando uma loja de 23 checkouts com 4 aparelhos redundantes-paralelos resultando em um montante de mais de 260 mil cupons emitidos desde então.

A diferença do sistema que eu desenvolvi tanto na parte do servidor quanto na parte do checkout é a questão da redundância paralela, os 4 sats do servidor funcionam em paralelo, tanto para balanceamento de carga quanto para backup. Na parte do checkout, eu tenho 3 servidores, um com 4 sats (o primário) e 2 servidores backup com 3 sats cada (secundário e terciário), que o pdv faz um "loop" até achar um servidor online que tenha sats "ociosos" (no meu cenário de 23 checkouts é muito raro que aconteça uma venda no servidor secundário por exemplo, a incidência de finalizações no mesmo instante é muito rara). Além de ter uma redução considerável nos custos, a administração dos aparelhos ficou muito fácil, já que periodicamente o servidor consulta status dos aparelhos, logs e etc.

Na questão de infra as alterações que fiz foram:

Comprei um switch a mais e metade dos pdvs ficaram no switch original e a outra metade no novo switch.

Um dos servidores fica ligado em um dos switchs dos caixas.

 

Obs: Só para constar, o paralelismo-redundante só é possível com equipamentos da Kryptus, nenhum outro fabricante consegue tratar mais que um sat por máquina de forma confiável.

 

sats_dc.png

  • Fundadores
Postado

Mas se o Switch morre, todos os caixas param de operar.... Já se perguntaram se Burger King, Americanas, Carrefour usariam esse modelo ? Para quem o cliente vai ligar desesperado, quando o Switch cair, e todos os caixas pararem ?

Dependendo do volume do cliente, talvez só o prejuízo causado por uma situação dessas (lucro cessante), por alguns minutos, já represente um valor maior do que o do SAT...

Na minha opinião o PDV deve ser capaz de funcionar mesmo totalmente off-line... e a transição on-line / off-line, deve ocorrer de forma transparente para o operador...

Para quem nunca fez certificação de PAF-ECF, pode ser muito difícil de implementar um PDV totalmente off-line ... mas com certeza isso é um recurso muito valioso no momento da venda do sistema...

  • Curtir 4
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado

Se "o" switch morre, morre o TEF, a NFCE e assim vai... Investir em infra de rede não é algo necessário só para esse cenário, mas como vários outros também.

Concordo que existe esse risco, por mais baixo que seja, por isso coloquei os caixas pares em um switch e os impares em outro.

Em outra filial eu tenho caixas com SATs locais que funcionam 100% offline.

  • Curtir 1
  • Moderadores
Postado
12 minutos atrás, guilhermesmc disse:

Se "o" switch morre, morre o TEF, a NFCE e assim vai... Investir em infra de rede não é algo necessário só para esse cenário, mas como vários outros também.

Concordo que existe esse risco, por mais baixo que seja, por isso coloquei os caixas pares em um switch e os impares em outro.

Em outra filial eu tenho caixas com SATs locais que funcionam 100% offline.

vamos lá sem o TEF ainda assim ele consegue vender??? tem dinheiro né?

NFC-e emite em contingência??? não dá???

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado
1 minuto atrás, Juliomar Marchetti disse:

vamos lá sem o TEF ainda assim ele consegue vender??? tem dinheiro né?

NFC-e emite em contingência??? não dá???

Com 60% pra mais de vendas em TEF depende muito se a pessoa tem dinheiro ou não na falta do mesmo.

Quanto à NFCE, desculpe minha falta de familiaridade com o projeto... mas é o pdv que comunica diretamente com a sefaz e no caso de falta de conexão emite em contingência ou tem um servidor que faz o processamento online/contingênciado para os checkouts?

  • Fundadores
Postado

Sim... no caso do TEF, as maquininhas autônomas (chamadas de "POS"), podem ser usadas com contingência...  e NFCe, pode ser usada em modo off-line...

A conta que deve ser feita é:
- Qual a economia gerada na compra de SATs ?
- Qual o prejuízo/hora, se o todos os caixas pararem ?

  • Curtir 3
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado
1 hora atrás, guilhermesmc disse:

Bom vou deixar os meus 2 cents aqui.

Estou trabalhando com SATs compartilhados desde junho de 2015, e no atual momento estou rodando uma loja de 23 checkouts com 4 aparelhos redundantes-paralelos resultando em um montante de mais de 260 mil cupons emitidos desde então.

A diferença do sistema que eu desenvolvi tanto na parte do servidor quanto na parte do checkout é a questão da redundância paralela, os 4 sats do servidor funcionam em paralelo, tanto para balanceamento de carga quanto para backup. Na parte do checkout, eu tenho 3 servidores, um com 4 sats (o primário) e 2 servidores backup com 3 sats cada (secundário e terciário), que o pdv faz um "loop" até achar um servidor online que tenha sats "ociosos" (no meu cenário de 23 checkouts é muito raro que aconteça uma venda no servidor secundário por exemplo, a incidência de finalizações no mesmo instante é muito rara). Além de ter uma redução considerável nos custos, a administração dos aparelhos ficou muito fácil, já que periodicamente o servidor consulta status dos aparelhos, logs e etc.

Na questão de infra as alterações que fiz foram:

Comprei um switch a mais e metade dos pdvs ficaram no switch original e a outra metade no novo switch.

Um dos servidores fica ligado em um dos switchs dos caixas.

 

Obs: Só para constar, o paralelismo-redundante só é possível com equipamentos da Kryptus, nenhum outro fabricante consegue tratar mais que um sat por máquina de forma confiável.

 

sats_dc.png

Olá Guilherme pode me dar mais informações sobre esse equipamento da Kryptus ? 

Tenho um servidor SAT para alguns PDVs, hoje estamos com somente um PDV ligado nele, e estaremos colocando no max 6. ainda estamos testando as rotinas para rodar seguramente os 6 PDVs no mesmo servidor SAT.

 

Postado

NFCE utilizada em modo offline: falta de conexão com a sefaz e também no caso de falta de conexão interna do estabelecimento (ex: todos os switchs/hubs queimaram)?

No caso de SP o contribuinte que optar por utilizar a NFCE vai comprar um SAT para cada checkout também já que não existe contingência offline? Pra que utilizar NFCE em primeiro lugar? Ou compraria 1/2/3 SATs compartilhados para o estab inteiro só de backup no caso de queda da conexão/sefaz?

Dependendo da quantidade de checkouts, do dia e da quantidade de máquinas POS que um varejo tem, fica praticamente impossível trabalhar nesse cenário.

Qual a possibilidade real de 2/3 switchs darem problema no mesmo dia? Que eu equipe todos os pdvs com uma conexão de rede secundária (ex wifi), qual será meu gasto perto de ~1200/pdv por um aparelho que se vier a apresentar algum problema não tem conserto.

 

Postado

Guilherme eu estou nesse cenário também de SAT num servidor de aplicação, tenho uma aplicação concentradora do SAT ( que deve ser ligado por USB, se tivessem projetado com comunicação TCP/IP seria muito melhor ). E os PDVs falam com o servidor que conversa com o SAT. 

Ainda tenho que verificar uma maneira de manter 2 (ou mais) servidores SAT e fazer o fail over e balanceamento desses ( aceito sugestões ), trabalho numa rede de varejo atacado, nossas lojas tem mais de 30 checkouts, e já me foi instruído para usar o máx de PDVs por SAT, isso terá um custo menor de equipamentos, mesmo com o custo de ter uma rede redundante , e um wifi como contingencia.

Até agora testamos em homologação com 3 PDVs e na produção devemos entrar com o 2 PDV paralelo essa semana.

Fiquei curioso quando disse  "questão da redundância paralela"

Ainda temos alguns pontos para acertar, porém a facilidade é ter o ambiente cliente no PDV e deixar pronto também o ambiente Servidor, assim numa catástrofe geral, o aparelho SAT pode ser conectado ao checkout e o mesmo irá funcionar off line.( seria uma terceira contingencia).

 

Postado
12 minutos atrás, josehenriquebr disse:

Guilherme eu estou nesse cenário também de SAT num servidor de aplicação, tenho uma aplicação concentradora do SAT ( que deve ser ligado por USB, se tivessem projetado com comunicação TCP/IP seria muito melhor ). E os PDVs falam com o servidor que conversa com o SAT. 

Ainda tenho que verificar uma maneira de manter 2 (ou mais) servidores SAT e fazer o fail over e balanceamento desses ( aceito sugestões ), trabalho numa rede de varejo atacado, nossas lojas tem mais de 30 checkouts, e já me foi instruído para usar o máx de PDVs por SAT, isso terá um custo menor de equipamentos, mesmo com o custo de ter uma rede redundante , e um wifi como contingencia.

Até agora testamos em homologação com 3 PDVs e na produção devemos entrar com o 2 PDV paralelo essa semana.

Fiquei curioso quando disse  "questão da redundância paralela"

Ainda temos alguns pontos para acertar, porém a facilidade é ter o ambiente cliente no PDV e deixar pronto também o ambiente Servidor, assim numa catástrofe geral, o aparelho SAT pode ser conectado ao checkout e o mesmo irá funcionar off line.( seria uma terceira contingencia).

 

A questão da redundância paralela é simplesmente isso:

O servidor roda com 4 sats em paralelo no mesmo servidor, logo consegue processar 4 vendas por vez (balanceamento) e no caso de um dos sats parar os outros 3 continuam processando (redundância).

Cada sat roda em um processo separado que o servidor gerencia, logo se um processo travar ou crashar os outros continuam funcionando.

Cada processo tem um loop onde ele tenta pegar uma venda para processar.

Processo que ele efetua:

Existe uma tabela onde o servidor grava os xmls recebidos dos pdvs.

Cada processo com o seu sat tenta dar um update na tabela colocando o numero de serie dele em um dos campos, por mais que os 4 tentem ao mesmo tempo o banco de dados só vai deixar um conseguir dar esse update.

Se ele não conseguir, tenta com outro xml no banco.

Se ele conseguir ele grava no banco o numero de sessão que ele irá utilizar para processar a venda (qualquer problema o numero de sessão está lá para ser utilizado no ConsultarUltimoNumeroSessao).

Ele envia a venda, pega o retorno do sat e grava no banco.

Durante todo esse processo o pdv estava conectado ao servidor consultando o "status" da venda enviada.

Após o processamento o servidor retorna ao pdv o resultado (xml retornado ou erro retornado).

O servidor só deixa conectar N sockets ao mesmo tempo, onde N = número de sats ativos e desbloqueados.

No caso do client no pdv, ele tenta conectar no primeiro servidor, se não conseguir (servidor offline ou com todos os sockets em uso) vai pro segundo e assim vai.

Uma vez que ele conseguir enviar o xml e pegar o identificador referente à aquele xml, ele continua com aquele servidor até o termino do processo.

 

Espero ter ajudado... Abs

  • Fundadores
Postado

Mais um ponto de preocupação (além do Switch e cabos de rede)... se a máquina do Servidor SAT para... TODOS os caixas morrem...

Sei que não é simples desenvolver um servidor desse nível...e deve ser muito bacana ver ele funcionando... mas sinceramente... acho que isso é "economia a base da porcaria"... eu não entro nessa conversa do Cliente... Seu cliente pode achar que está economizando... mas no dia que der um problema em um dos componentes cruciais...e ele ter prejuízos e reclamações,  ele vai querer achar um culpado... mesmo que o motivo seja a queima dos equipamentos por descarga elétrica...

Bom... acho que já deixei claro meu ponto de vista... vou parar de monitorar esse tópico...

 

  • Curtir 3
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado
1 hora atrás, Daniel Simoes disse:

Mais um ponto de preocupação (além do Switch e cabos de rede)... se a máquina do Servidor SAT para... TODOS os caixas morrem...

Sei que não é simples desenvolver um servidor desse nível...e deve ser muito bacana ver ele funcionando... mas sinceramente... acho que isso é "economia a base da porcaria"... eu não entro nessa conversa do Cliente... Seu cliente pode achar que está economizando... mas no dia que der um problema em um dos componentes cruciais...e ele ter prejuízos e reclamações,  ele vai querer achar um culpado... mesmo que o motivo seja a queima dos equipamentos por descarga elétrica...

Bom... acho que já deixei claro meu ponto de vista... vou parar de monitorar esse tópico...

 

Daniel, não discordo do seu ponto de vista e inclusive reconheço que não é qualquer cliente que pode fazer isso... Eu fiz pois sou o desenvolvedor e o cliente, então eu sei a infra que eu tenho e o que da ou não da para fazer, tanto que na filial em que utilizo os sats direto nos pdvs, é devido a loja estar em reforma e não ter a confiabilidade necessária para utilizar os servidores.

A única coisa que eu fiz foi dar meus 2 cents sobre o assunto para quem quiser mexer com isso.

Obs: Por isso mesmo que eu tenho 3 servidores totalizando 10 sats e não somente um servidor, afinal, quem tem 1 não tem nada rs.

  • Curtir 1
  • 4 meses depois ...
Postado

Bom dia a todos!

Com relação a emissão meu gerenciador está funcionando bem e bem rápido tambem, utilizo o SAT da Gertec, mas ainda não encontrei solução para retornar a impressão do Cupom para o checkout que gerou a requisição, alguem teria alguma idéia?

  • 3 semanas depois ...
Postado
Em 22/06/2016 at 10:54, Wladimir disse:

Bom dia a todos!

Com relação a emissão meu gerenciador está funcionando bem e bem rápido tambem, utilizo o SAT da Gertec, mas ainda não encontrei solução para retornar a impressão do Cupom para o checkout que gerou a requisição, alguem teria alguma idéia?

No meu caso que fiz um gerenciador bem simples, pois era 2 caixas para 1 SAT em uma loja que o fluxo é bem calmo

Eu tive duas opções, enviar para o servidor a impressora que deve ser impresso, porém a impressora deveria estar em rede ou compartilhada

Ou fazer o caixa imprimir o arquivo XML, após ele receber o retorno que a venda foi concluída, que foi a opção mais fácil de ser implantada

  • 3 semanas depois ...
Postado
Em 12/07/2016 at 11:47, kohzito disse:

No meu caso que fiz um gerenciador bem simples, pois era 2 caixas para 1 SAT em uma loja que o fluxo é bem calmo

Eu tive duas opções, enviar para o servidor a impressora que deve ser impresso, porém a impressora deveria estar em rede ou compartilhada

Ou fazer o caixa imprimir o arquivo XML, após ele receber o retorno que a venda foi concluída, que foi a opção mais fácil de ser implantada

Caro Kohzito,
Obrigado por sua sugestão, mas fiz diferente, cada caixa tem uma impressora não fiscal, então o que eu fiz foi compartilhar a impressora, permitir acesso total na pasta Printers e gravar o caminho do micro que compartilha a impressora exemplo: "\\micro01\generic" desta maneira o sistema grava estas informações na tabela de pedidos e envia para o Gerenciador, que por sua ves envia o SAT e imprime o Cupom no caixa correspondente.

Abraço

  • Este tópico foi criado há 2761 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.