Ir para conteúdo
  • Cadastre-se

dev botao

Erro EFD-REINF


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

Recommended Posts

  • 2 semanas depois ...

Bom dia.

A aplicação exemplo do Reinf está me retornando o seguinte erro:

Capturar.PNG.514758a5e13195851927a8b15922ab68.PNG

Debugando, cheguei ao seguinte método:

OBS: Observe as variáveis, a schema está vazia.

Capturar_delphi.thumb.PNG.c89a506cdce631049b449841c987b5f0.PNG

Já atualizei os fontes, reinstalei tudo, baixei schemas atualizados (versão 1.03.00) e nada. :(

Peço a ajuda da comunidade.

Grato.

Márcio M. Gomes

Link para o comentário
Compartilhar em outros sites

  • Moderadores
16 minutos atrás, Márcio M Gomes disse:

A aplicação exemplo do Reinf está me retornando o seguinte erro:

Como está a configuração do path dos Schemas?

Funciona se informar SSLXmlSignLib = xsMsXML?

  • Curtir 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

lembrando que xsLibXML2, não suporta Paths de rede, como por exemplo: //SERVIDOR/PastaSchemas... é necessário um Path regular Ex: (C:\Schemas\)

  • 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

17 minutos atrás, BigWings disse:

Como está a configuração do path dos Schemas?

Funciona se informar SSLXmlSignLib = xsMsXML?

19 minutos atrás, Daniel Simoes disse:

lembrando que xsLibXML2, não suporta Paths de rede, como por exemplo: //SERVIDOR/PastaSchemas... é necessário um Path regular Ex: (C:\Schemas\)

O caminho do schema: C:\ACBR_Atualizado\Exemplos\ACBrDFe\ACBrReinf\Delphi\Schemas).

A variável ArqSchema está OK. Tanto que não dá erro ao atribuir à parser_ctxt.

Com xsMsXML dá a mensagem: "Necessário DigestMethod Algorithm = sha256 -> SSLLib = libOpenSSL."
Não posso utilizar a OpenSSL devido a utilização de Certificado A3.

 

Link para o comentário
Compartilhar em outros sites

  • Solution
3 minutos atrás, Renato Rubinho disse:

Confirma se seu caminho está correto realmente.

O que você postou: C:\ACBR_Atualizado\Exemplos\ACBrDFe\ACBrReinf\Delphi\Schemas

está fora do padrão do componente "..\Acbr\Exemplos\ACBrDFe\Schemas\Reinf"

Rubinho, você me deu uma luz. rsrsrsr.

Na minha pasta "customizada" de schemas, estava faltando o "xmldsig-core-schema.xsd". Coloquei ele lá e funcionou. :)

Grato a todos.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
45 minutos atrás, Felipe Wollmann disse:

Sim, estou conseguindo enviar o evento R2099, mas ainda não encontrei a forma correta de buscar o código de recibo dos eventos.

Para pegar o Recibo e Consultar,  fiz assim:

ACBrReinf.WebServices.EnvioLote.RetEnvioLote.Leitor.Grupo :=  ACBrReinf.WebServices.EnvioLote.RetEnvioLote.Leitor.rExtrai( 1, 'infoTotal') ; ;
Recibo := ACBrReinf.WebServices.EnvioLote.RetEnvioLote.Leitor.rCampo( tcStr, 'nrRecArqBase' ) ;

ACBrReinf.Consultar(Recibo) ;

Não fiz um teste completo ainda devido a equipe que está desenvolvendo o XML (em outro sistema) não ter finalizado ainda.

Espero que ajude.

Att,

 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
Em 24/03/2018 at 12:11, Paulo Alves N Junior disse:

Bom dia, só consegui tratar corretamente o retorno dos  eventos quando realizei algumas alterações no código fonte da Unit ACBrReinfWebServices.pas (em anexo). Quando tentei usar da mesma forma que está no fonte de exemplo, não consegui recuperar as informações de retorno, nem as mensagens de inconsistências e nem o número de recibo quando a validação pela Sefaz ocorre com sucesso. Favor analisarem as alterações, as mesmas ocorreram na function TEnvioLote.TratarResposta: Boolean;

 

ACBrReinfWebServices.pas

Boa tarde Paulo estou usando seu exemplo da function TratarResposta: pode me dizer onde você criou o tipo TRetornoLoteEventos? poderia por favor postar a unit da declaração deste tipo?

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
16 horas atrás, cleyton44 disse:

Boa tarde realmente o exemplo esta comentado e não encontrei as propriedades para capturar os dados do retorno. Há alguma previsão para esta implementação?

 

grato

 

Cleyton

Analisando o código do componente encontrei um jeito de pegar os retornos das ocorrências e creio que do recibo tbm, por favor me corrijam caso não seja a forma indicada.

TR5001(ACBr_Reinf.WebServices.EnvioLote.RetEnvioLote.evento.Items[0].Evento).EvtTotal.InfoTotal.nrRecArqBase; // recibo

TR5001(ACBr_Reinf.WebServices.EnvioLote.RetEnvioLote.evento.Items[0].Evento).EvtTotal.IdeStatus.regOcorrs.Items[wi_Evento] // ocorrencias 

codResp;
dscResp;
tpOcorr;
localErroAviso;
 

 

 

Link para o comentário
Compartilhar em outros sites

Olá pessoal.

Eu estou fazendo um teste com dados fictícios pelo programa de exemplo, Evento R-2010 e me deparei com o erro abaixo:

Erro: ProjectExemploReinf.exe raised exception class EOleException with message 'Erro não especificado'.

// Assinando com MSXML e CryptoLib //
signedKey := xmldsig.sign(dsigKey, CERTIFICATES);

os valores passados são:

dsigKey = Pointer($4415C90) as IXMLDSigKey
CERTIFICATES = 2

Grato pela atenção,

Clemente Neri

Link para o comentário
Compartilhar em outros sites

Em 17/04/2018 at 09:36, Márcio M Gomes disse:

Para pegar o Recibo e Consultar,  fiz assim:

ACBrReinf.WebServices.EnvioLote.RetEnvioLote.Leitor.Grupo :=  ACBrReinf.WebServices.EnvioLote.RetEnvioLote.Leitor.rExtrai( 1, 'infoTotal') ; ;
Recibo := ACBrReinf.WebServices.EnvioLote.RetEnvioLote.Leitor.rCampo( tcStr, 'nrRecArqBase' ) ;

ACBrReinf.Consultar(Recibo) ;

Não fiz um teste completo ainda devido a equipe que está desenvolvendo o XML (em outro sistema) não ter finalizado ainda.

Espero que ajude.

Att,

 

 

Obrigado Márcio! Me ajudou!

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Em 17/04/2018 at 15:39, cleyton44 disse:

Boa tarde Paulo estou usando seu exemplo da function TratarResposta: pode me dizer onde você criou o tipo TRetornoLoteEventos? poderia por favor postar a unit da declaração deste tipo?

Boa tarde, não posso postar toda a Unit, devido cláusula de confidencialidade da empresa onde trabalho, mas segue trecho do código:

 

procedure carregaRetornoEvento(var Reg: RegRetornoEvento; TipoEvento: string; Evento: IEventoReinf);
var
  evtR5001: TR5001;
  i: integer;
  mensagem: string;
begin

  if TipoEvento = 'R5001' then
     begin
        evtR5001 := TR5001(Evento);
        Reg.Recibo := evtR5001.EvtTotal.InfoTotal.nrRecArqBase;
        Reg.TipoEvento := 'R' + evtR5001.EvtTotal.InfoRecEv.tpEv;
        Reg.xml := evtR5001.Xml;
        Reg.Ocorrencias.status := StrToInt(evtR5001.EvtTotal.IdeStatus.cdRetorno);

        if Reg.Ocorrencias.status = 1 then
           begin
              Reg.Ocorrencias.QtdOcorencias := evtR5001.EvtTotal.IdeStatus.regOcorrs.Count;

              for i := 0 to Reg.Ocorrencias.QtdOcorencias - 1 do
                 begin
                    mensagem := FormataString(Reg.TipoEvento, 8, 1);
                    mensagem := mensagem + ' ' + FormataString(Reg.Identificador, 37, 1);
                    mensagem := mensagem + ' ' + FormataString(evtR5001.EvtTotal.IdeStatus.regOcorrs.Items.codResp, 11, 1);
                    mensagem := mensagem + ' ' + FormataString(evtR5001.EvtTotal.IdeStatus.regOcorrs.Items.dscResp, 200, 1);

                    Avisos(mensagem);
                 end;
           end;
     end;
end;

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2170 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.