Ir para conteúdo
  • Cadastre-se

dev botao

Envio de XML


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

Recommended Posts

  • Membros Pro

Bom dia;

Estou com um problema de envio de xml: após a confirmação do cte(status= 100), de tempos em tempos(15 em 15 minutos), meu sistema localiza todos os CTe pendentes para envia para o tomado; Com isso acontece de as vezes ter mais de 100 cte para envia; O problema é que: alguns XML(Anexo) esta indo com tomador errado(TAG esta indo errada); em vez de ir TOMA3 = 3 esta indo TOMA3 = 0; Acredito que seja decorrência de um Cte anterior;  

Carregar o componente para envio de XML:

...

        ACBrCTe.Conhecimentos.Clear;
        ACBrCTe.Conhecimentos.LoadFromString(DM.Pesq_CTe_EmailXML.Value);
...

Fico no aguardo... Obrigado

372209_TOMA=0.xml

372209_TOMA=3.xml

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Se possível anexe a rotina completa que está utilizando nesta situação... Aparentemente se está limpando o componente antes de carregar o XML isso não deveria ocorrer...

Consultor SAC ACBr

José Junior
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

  • Membros Pro

      while not DM.Pesq_CTe_Email.Eof do
      begin
        if DM.Pesq_CTe_EmailENVIAR_DACTE.Value = 'S' then
         v_EnviarPDF := True
        else
         v_EnviarPDF := False;
        ACBrCTe.Conhecimentos.Clear;
        ACBrCTe.Conhecimentos.LoadFromString(DM.Pesq_CTe_EmailXML.Value);

        Mensagem:= TStringList.Create;
        Mensagem.Clear;
        if RzEdEmailTeste.Text <> EmptyStr then
         V_Email:= RzEdEmailTeste.Text
        else
         V_Email:= DM.Pesq_CTe_EmailEMAIL.Value;
        //Mensagem CT-e
        V_DataEnvio:= Now;
        Mensagem.Add('CT-e: ' + DM.Pesq_CTe_EmailNCT.AsString + ', Série: ' + DM.Pesq_CTe_EmailSERIE.Value);
        if DM.Pesq_CTe_EmailPRECTE.AsString <> EmptyStr then
        begin
          Mensagem.Add('Pre-CTe: ' + DM.Pesq_CTe_EmailPRECTE.AsString);
          v_Assunto:= 'Pre-CTe: ' + DM.Pesq_CTe_EmailPRECTE.AsString;
        end
        else
         v_Assunto:= 'CT-e: ' + DM.Pesq_CTe_EmailNCT.AsString + ' Série: ' + DM.Pesq_CTe_EmailSERIE.Value;
        //Mensagem.Add('Valor do Frete: ' + FormatFloat('#,##0.00', DM.Pesq_CTe_EmailVALORFRETE.Value));
        Mensagem.Add('Chave do CT-e: ' + Trim(copy(ACBrCTe.Conhecimentos.Items[0].CTe.infCTe.ID,4,44)));
        Mensagem.Add('PortaL para consulta do CT-e:');
        Mensagem.Add('http://www.cte.fazenda.gov.br/consulta.aspx?tipoConsulta=completa&tipoConteudo=mCK/KoCqru0=');
        Mensagem.Add('');
        Mensagem.Add('Arquivo XML em anexo, Data de Envio:' + FormatDateTime('dd/mm/yyyy hh:mm:ss', V_DataEnvio));
        Mensagem.Add('Não Responder a este EMAIL!');
        if V_Email <> EmptyStr then
        begin
          Memo1.Lines.Add('Enviando CT-e: ' + IntToStr(DM.Pesq_CTe_EmailNCT.Value) +
            ' Série: ' + DM.Pesq_CTe_EmailSERIE.Value +
            ' Para email: ' + DM.Pesq_CTe_EmailEMAIL.Value);
          if ACBrCTe.Conhecimentos.Items[0].CTe.procCTe.cStat = 100 then
           ACBrCTe.Conhecimentos.Items[0].EnviarEmail(V_Email
                                             , 'CT-e: ' + Trim(copy(ACBrCTe.Conhecimentos.Items[0].CTe.infCTe.ID,4,44)) + ' Série: ' + DM.Pesq_CTe_EmailSERIE.Value
                                             , Mensagem
                                             , v_EnviarPDF //Enviar PDF junto
                                             , nil //Lista com emails que serão enviado cópias - TStrings
                                             , nil); // Lista de anexos - TStrings
         Mensagem.Free;
        end;
        DM.Pesq_CTe_Email.Next;
      end;

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Boa tarde Robinho,

Procure sempre utilizar o da seguinte forma:

ACBrCTe.Conhecimentos.Clear;
ACBrCTe.Conhecimentos.LoadFromString(DM.Pesq_CTe_EmailXML.Value, False);

Isso faz com que o XML não seja gerado novamente.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

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