Ir para conteúdo
  • Cadastre-se

Daniel Simoes

Fundadores
  • Total de ítens

    26.198
  • Registro em

  • Última visita

  • Days Won

    749

Posts postados por Daniel Simoes

  1. @Italo Giurizzato Junior e @Diego Foliene

    Analisando essa questão, notei que o problema ocorre nas Units que ainda usam o antigo PCN...

    A antiga versão da rotina "ParseTXT" tinha uma característica (bug), de sempre retornar um ANSI, mesmo quando o parâmetro de entrada, era um UTF8...
    Isso causava problemas, quando precisávamos gravar os XMLs em UTF8, ou carregar ele na LibXML2

    Após a correção da ParseTXT, todos os métodos que chamam ela, precisam ser revisados

    O Delphi espera que os caracteres que ele irá manipular em Tela, estejam em ANSI (no windows) e UTF8 no Android e Linux...

    Então é necessário, tratar isso, antes de mover para as propriedades dos objetos... Exemplo de ajuste em ACBrCTeWebServices.pas, linha 1113


              FCTeRetornoSincrono.Leitor.Arquivo := UTF8ToNativeString(ParseText(AXML));
              FCTeRetornoSincrono.LerXml;

     

    O Problema não ocorre, nas classes que usam TACBrXmlDocument, como Reader, pois essa classe que faz uso da LibXML2, já espera os dados em UTF8

    • Curtir 2
  2. Desculpe pela demora na resposta...

    Faz muito tempo, que implementamos o componente MTER, e o Demo dele...

    Lembro que algumas coisas ocorriam de forma Assincrona.. então Sleeps não são uma boa técnica...

    Notei no Demo que tem o Evento:

    procedure TForm1.ACBrMTer1RecebeDados(const IP: AnsiString; const Recebido: AnsiString; var EchoMode: TACBrMTerEchoMode);  

    que acaba chamando o método:

    procedure AvaliarRespostaTerminal(aIP: String; const aResposta: String);

    Repare que ele tem estados que só pintam uma msg e saem, e que ele fica aguardando um "Enter", para buscar um Item, caso contrário, apenas adiciona o caractere digitado, no Buffer anterior

            if (aString[1] <> #13) then
            begin
              // Grava Resposta
              Edit;
              FieldByName('RESPOSTA').AsString := FieldByName('RESPOSTA').AsString + aString;
              Post;
    
              Exit;
            end;         

     

  3. Sempre haverá mudanças do Lado da Sefaz que exigirá mudanças do seu lado...

    Fazer uma versão específica do Monitor não parece ajudar no problema... pois logo haverá outro fator que exigirá ajustes do seu lado...

    Me parece ser muito mais estratégico você investir em recursos que te tragam mais agilidade no ajuste dos seus fontes

  4. Não compreendi..

    Você não conseguiria ajustar a chamada do parâmetro, do seu lado da aplicação ?

    Parece ser uma alteração simples... enviando apenas um parâmetro Boleano...

    Lembro ainda que a SEFAZ que decidiu mudar para não aceitar mais o modo Assincrono.. não foi uma mudança no ACBrMonitor

    • Curtir 3
  5. @IgorAcertSoft, parece ter havido algum problema com os anexos... consegue por favor repostar ?

    Tente informar esse parâmetros, antes de iniciar a Transação Administrativa de Instalação

          if ACBrTEFAPI1.TEF is TACBrTEFAPIClassPayGoWeb then
          begin
            with TACBrTEFAPIClassPayGoWeb(ACBrTEFAPI1.TEF) do
            begin
              TEFPayGoAPI.ParametrosAdicionais.ValueInfo[PWINFO_POSID] := '99999';   // PDC
              TEFPayGoAPI.ParametrosAdicionais.ValueInfo[PWINFO_DESTTCPIP] := 'esba-hom01.tpgweb.io:17500'  // Homologação
              TEFPayGoAPI.ParametrosAdicionais.ValueInfo[PWINFO_DESTTCPIP] := 'pl03.pgweb.io:17500'  // Produção
            end;
          end;

     

×
×
  • 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.

The popup will be closed in 10 segundos...