Ir para conteúdo
  • Cadastre-se

dev botao

Homologação Skytef/SiTef - sequência 6 - ajuste no ACBrTEFApi


edu
Ver Solução Respondido por joão vitor de fraga venancio,

Recommended Posts

Olá,

Estou fazendo a homologação com a Skytef usando ACBrTEFApi e tudo tem corrido bem, porém há um pequeno ajuste necessário no componente para atender a sequência 6 da homologação:

sitef.thumb.jpg.11300ee4b480990edac29454e1765bd6.jpg

 

Cheguei a tentar contato com a Skytef para confirmar essa informação, e tive esse retorno:

resposta.jpg.0690ca4ef56a1cc477243aadc63d1494.jpg

 

Na prática, o evento QuandoPerguntarCampo precisa permitir que eu envie uma instrução para voltar, assim como ocorre no evento QuandoPerguntarMenu. Assim eu posso criar um inputbox com os botões OK | VOLTAR | CANCELAR para tratar essa situação. Para permitir isso fiz um ajuste na rotina ContinuarRequisicaoSiTef. Nos comandos 30, 31, 34, 35 e 41 incluí um tratamento para que ao receber o valor "*VOLTAR*" o componente use a mesma variável Voltar que já está usando no comando 21:

altera.thumb.jpg.70247a3ae9f8a2c48fa51daf5f0231f6.jpg

 

Segue o arquivo alterado em anexo para avaliação.

ACBrTEFAPICliSiTef.pas

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Muito obrigado pela análise, relato e contribuição.. parabéns pela iniciativa...

Esta na minha fila para analisar e subir...

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.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Olá @edu,

Pelo que notei, a aplicação deveria sempre retornar a String "*VOLTAR*", para que o código funcionasse, correto ?

             TefAPI.QuandoPerguntarCampo(DefinicaoCampo, Resposta, Validado, Interromper);
             Voltar := (Resposta = '*VOLTAR*');
             if not Voltar then
               RespCliSiTef.GravaInformacao(TipoCampo, Resposta);

 

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.

Link para o comentário
Compartilhar em outros sites

Sim, quando o usuário clicar num botão que você definir com a função para voltar no seu sistema, ele envia esse texto *VOLTAR* na resposta, o que por sua vez aciona variável voltar, exatamente igual ocorre quando usa a opção -2 no ItemSelecionado do evento QuandoPerguntarMenu.

Fiz assim para evitar a criação de um novo parâmetro, o que envolveria alterar também a unit da PayGo (que não sei se suporta isso) e também obrigaria quem já homologou a alterar o sistema. Usei a palavra dessa forma para evitar o risco de acabar usando uma resposta válida para alguma situação. Caso ache interessante fazer isso de outra forma tudo bem. Pelo que percebi na homologação o SiTef permite voltar praticamente em todos os campos que testei, exceto claro na primeira interação. A sequência 6 da homologação é justamente para testar se o sistema está aceitando isso.

Usei o "if not voltar then" porque o texto *VOLTAR* não é uma resposta que o sistema vai passar para a SiTef, pelo que entendi "RespCliSiTef.GravaInformacao(TipoCampo, Resposta);" faz a gravação do valor recebido em Resposta como um retorno ao comando.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Fundadores

Não me agrada muito, a ideia de usar uma "String" como Flag... então provavelmente não devo incorporar a modificação...

Mas ainda não tive tempo de analisar qual seria a melhor solução

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.

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...

Olá, 

Passei pela mesma dificuldade, resolvi de forma parecida a do colega @edu. Segue a sugestão:

           // ACBrTEFAPICliSiTef.pas - Linha 573
           30:  // Deve ser lido um campo cujo tamanho está entre TamMinimo e TamMaximo
           begin
             DefinicaoCampo.TipoCampo := TipoCampo;
             DefinicaoCampo.TituloPergunta := ACBrStr(Mensagem);
             DefinicaoCampo.TipoDeEntrada := tedTodos;
             DefinicaoCampo.TamanhoMaximo := TamanhoMaximo;
             DefinicaoCampo.TamanhoMinimo := TamanhoMinimo;
             DefinicaoCampo.MascaraDeCaptura := EmptyStr;

             Validado := True;
             TefAPI.QuandoPerguntarCampo(DefinicaoCampo, Resposta, Validado, Interromper);

             if Resposta = '-1' then
               Interromper := True
             else
               if Resposta = '-2' then
                 Voltar := True
               else
                 RespCliSiTef.GravaInformacao(TipoCampo, Resposta);
           end;

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
13 minutos atrás, joão vitor de fraga venancio disse:

Olá, 

Passei pela mesma dificuldade, resolvi de forma parecida a do colega @edu. Segue a sugestão:

           // ACBrTEFAPICliSiTef.pas - Linha 573
           30:  // Deve ser lido um campo cujo tamanho está entre TamMinimo e TamMaximo
           begin
             DefinicaoCampo.TipoCampo := TipoCampo;
             DefinicaoCampo.TituloPergunta := ACBrStr(Mensagem);
             DefinicaoCampo.TipoDeEntrada := tedTodos;
             DefinicaoCampo.TamanhoMaximo := TamanhoMaximo;
             DefinicaoCampo.TamanhoMinimo := TamanhoMinimo;
             DefinicaoCampo.MascaraDeCaptura := EmptyStr;

             Validado := True;
             TefAPI.QuandoPerguntarCampo(DefinicaoCampo, Resposta, Validado, Interromper);

             if Resposta = '-1' then
               Interromper := True
             else
               if Resposta = '-2' then
                 Voltar := True
               else
                 RespCliSiTef.GravaInformacao(TipoCampo, Resposta);
           end;

 

no caso tu usou os códigos, que seria o melhor caminho do que uma string que pode ser modificada ou alterada

se quiser anexar sua solução também

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Parece fazer mais sentido...

O correto, seria modificar a assinatura do evento, para também ter o parâmetro "Voltar" por referencia..
mas isso quebraria todas as aplicações existentes... pois tornaria o evento incompatível, com o atual...

Portanto acho que a sua sugestão, é a que melhor pacifica o problema...

Obrigado pela contribuição, devo subir ao SVN, após uma pequena revisão...

  • Curtir 1
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.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Fundadores
Em 06/03/2024 at 10:15, joão vitor de fraga venancio disse:

Olá,

Segue o arquivo com as alterações.

ACBrTEFAPICliSiTef.pas 38.4 kB · 5 downloads

Enviada a contribuição do @joão vitor de fraga venancio... Commit [r33017]

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.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Notei que os Demos, precisariam de ajustes, para enviar a Resposta com '-1' ou '-2', conforme os botões pressionados...

Alguém pode por favor subir as Units dos Demos alteradas?

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.

Link para o comentário
Compartilhar em outros sites

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.