Ir para conteúdo
  • Cadastre-se

dev botao

NFSe São José dos Campos


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

Recommended Posts

  • Consultores
Postado

Boa noite,

Cola o print do programa de exemplo com o retorno do envio.

Aparentemente este provedor devolve as mensagens na lista de erros, no campo descrição.

procedure TACBrNFSeProviderABRASFv1.ProcessarMensagemErros(RootNode: TACBrXmlNode;
  Response: TNFSeWebserviceResponse; const AListTag, AMessageTag: string);
 .
 .
 .
  for I := Low(ANodeArray) to High(ANodeArray) do
  begin
    Mensagem := ObterConteudoTag(ANodeArray[I].Childrens.FindAnyNs('Mensagem'), tcStr);

    if Mensagem <> '' then
    begin
      AErro := Response.Erros.New;
      AErro.Codigo := ObterConteudoTag(ANodeArray[I].Childrens.FindAnyNs('Codigo'), tcStr);
      AErro.Descricao := ACBrStr(Mensagem);
      AErro.Correcao := ACBrStr(ObterConteudoTag(ANodeArray[I].Childrens.FindAnyNs('Correcao'), tcStr));
    end;
  end;

 

  • Curtir 1
Postado
  Em 22/03/2023 at 01:00, Renato Rubinho disse:

Boa noite,

Cola o print do programa de exemplo com o retorno do envio.

Aparentemente este provedor devolve as mensagens na lista de erros, no campo descrição.

procedure TACBrNFSeProviderABRASFv1.ProcessarMensagemErros(RootNode: TACBrXmlNode;
  Response: TNFSeWebserviceResponse; const AListTag, AMessageTag: string);
 .
 .
 .
  for I := Low(ANodeArray) to High(ANodeArray) do
  begin
    Mensagem := ObterConteudoTag(ANodeArray[I].Childrens.FindAnyNs('Mensagem'), tcStr);

    if Mensagem <> '' then
    begin
      AErro := Response.Erros.New;
      AErro.Codigo := ObterConteudoTag(ANodeArray[I].Childrens.FindAnyNs('Codigo'), tcStr);
      AErro.Descricao := ACBrStr(Mensagem);
      AErro.Correcao := ACBrStr(ObterConteudoTag(ANodeArray[I].Childrens.FindAnyNs('Correcao'), tcStr));
    end;
  end;

 

Expandir  

Rubinho, obrigado, consegui pelo exemplo a pegar o retornos de erro, eu queria apenas mostrar o ultimo retorno de erro, mais acho que não tem jeito né

Diz uma coisa esse provedor ele é bem lento e assim entra em idle e assim a tela de processamento some, não teria como manter ela, enquanto o provedor não retorna nenhum mensagem, o windows acha que não esta processando nada e fica com não respondendo

E uma outra coisa como que você trata retorno de lote em processamento, hoje fazendo testes as notas retornam tudo como lote em processamento

  • Consultores
Postado
  Em 22/03/2023 at 13:57, Adhelmar Rondon disse:

queria apenas mostrar o ultimo retorno de erro, mais acho que não tem jeito né

Expandir  

Na minha opinião é melhor sempre mostrar todos os erros para o usuário corrigir de uma vez, claro que neste caso a descrição é a mesma, mas veja que o código veio diferente, deve ser uma falha do provedor.

  Em 22/03/2023 at 13:57, Adhelmar Rondon disse:

enquanto o provedor não retorna nenhum mensagem, o windows acha que não esta processando nada e fica com não respondendo

Expandir  

É um comportamento do Windows, não teria muito o que fazer no componente, mas você pode ver de talvez enviar e consultar utilizando threads do seu lado se for tão demorado assim.

  Em 22/03/2023 at 13:57, Adhelmar Rondon disse:

uma outra coisa como que você trata retorno de lote em processamento, hoje fazendo testes as notas retornam tudo como lote em processamento

Expandir  

Se for assíncrono, não tem jeito, tem que consultar o lote após o envio.

Postado
  Em 22/03/2023 at 16:55, Renato Rubinho disse:

Na minha opinião é melhor sempre mostrar todos os erros para o usuário corrigir de uma vez, claro que neste caso a descrição é a mesma, mas veja que o código veio diferente, deve ser uma falha do provedor.

É um comportamento do Windows, não teria muito o que fazer no componente, mas você pode ver de talvez enviar e consultar utilizando threads do seu lado se for tão demorado assim.

Se for assíncrono, não tem jeito, tem que consultar o lote após o envio.

Expandir  

Consulta o lote após o envio, mais percebi que servidor de homologação deles as vezes da problema

  • Curtir 2
  • 2 semanas depois ...
  • Solution
Postado
  Em 22/03/2023 at 01:00, Renato Rubinho disse:

Boa noite,

Cola o print do programa de exemplo com o retorno do envio.

Aparentemente este provedor devolve as mensagens na lista de erros, no campo descrição.

procedure TACBrNFSeProviderABRASFv1.ProcessarMensagemErros(RootNode: TACBrXmlNode;
  Response: TNFSeWebserviceResponse; const AListTag, AMessageTag: string);
 .
 .
 .
  for I := Low(ANodeArray) to High(ANodeArray) do
  begin
    Mensagem := ObterConteudoTag(ANodeArray[I].Childrens.FindAnyNs('Mensagem'), tcStr);

    if Mensagem <> '' then
    begin
      AErro := Response.Erros.New;
      AErro.Codigo := ObterConteudoTag(ANodeArray[I].Childrens.FindAnyNs('Codigo'), tcStr);
      AErro.Descricao := ACBrStr(Mensagem);
      AErro.Correcao := ACBrStr(ObterConteudoTag(ANodeArray[I].Childrens.FindAnyNs('Correcao'), tcStr));
    end;
  end;

 

Expandir  

Bom dia, Rubinho

Então deve ser algum problema com homologação, apesar do suporte falar que não tem problema algum, fim de semana em homologação não da pra emitir, em produção o cliente esta usando normal

 

grato pela sua ajuda

  • Curtir 1
  • Este tópico foi criado há 734 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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 7 segundos...