Ir para conteúdo
  • Cadastre-se

dev botao

ACBrNFSeX1.WebService.Emite.Protocolo não retorna o número do protocolo


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

Recommended Posts

Postado

Saudações a todos!!

 

Estou com problemas com o ACBrNFSeX ao enviar um lote de rps. Utilizo o método ACBrNFSeX1.Emitir(Lote, meLoteAssincrono); e em seguida tento obter o número de protocolo com ACBrNFSeX1.WebService.Emite.Protocolo mas o mesmo vem vazio. Nos arquivos que são salvos no disco o protocolo encontra-se no que tem nome no padrão 99999-rec.xml, mas pelo componente eu não consegui obter esse número

Postado

Boa tarde Ítalo,

 

o provedor é SigCorp, não tem arquivo *-soap.xml. Os arquivos com este padrão só tem de quando eu usava o componente antigo, com o novo não estão sendo gerados esses arquivos, a menos que esteja em outra pasta.

  • 2 semanas depois ...
  • Consultores
Postado

Bom dia Rogério,

Notei que no lote de Rps enviado para o webservice do provedor tem por volta de 7 Rps, até ai sem nenhum problema, pode até ter 50 Rps.

O provedor deveria retornar o protocolo e ao consultar o lote ele retornar as rejeições ou os XMLs das notas, mas ele já retornou as rejeições.

Se você abrir o *-rec-soap.xml vai notar o seguinte:

<ListaMensagemRetorno>
  <MensagemRetorno>
    <Codigo>E39</Codigo>
    <Mensagem>Apenas empresas inscritas neste município podem efetuar retenção de ISSQN.</Mensagem>
    <Correcao>O tomador do serviço não foi encontrado na base de dados do município</Correcao>
  </MensagemRetorno>
</ListaMensagemRetorno>

Pelo menos um desses 7 Rps incluídos no lote o tomador não esta inscrito no município e foi informado que existe retenção de ISSQN.

Infelizmente o webservice não informa qual dos Rps que provocou a rejeição.

Vai ser necessário verificar um por um para identifica-lo.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Bom dia Ítalo,

 

no caso do RPS que te enviei, realmente haviam mais de uma nota nele, mas mesmo quando envio uma nota só não estou conseguindo ler o número do protocolo, mesmo quando a nota é autorizada.

  • Consultores
Postado

Boa tarde Rogério,

Abra a Unit SigCorp.Provider e faça a seguinte alteração:

  Result := Executar('http://tempuri.org/RecepcionarLoteRps', Request,
                     ['RecepcionarLoteRpsResult', 'EnviarLoteRpsResposta'],
                     ['xmlns:tem="http://tempuri.org/"']);

A tag: RecepcionarLoteRps esta errada o correto é EnviarLoteRpsResposta.

Faça essa correção, reinstale o ACBr, por fim compila a aplicação e faça novos testes.

Essa correção em breve vai ser enviada para o SVN.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • 2 semanas depois ...
Postado

Boa tarde Ítalo,

fiz a alteração que sugeriu e ai passou a gravar o arquivo de retorno. Mas na sequência passou a dar o erro:

 

Debugger Exception Notification
---------------------------
Project XXXXX.exe raised exception class EConvertError with message ''2/' is not a valid integer value'.
---------------------------
Break   Continue   Help   

 

debugando, descobri que o problema era com a data do recebimento, que estava <DataRecebimento>2/11/2022 5:26:51 PM</DataRecebimento> (faltando o zero no mês e na hora). Alterei o conteúdo do xml durante o processo, deixando assim <DataRecebimento>02/11/2022 05:26:51 PM</DataRecebimento> e dando continuidade ao debug, na função LerDatas da unit ACBrXmlBase a variável xData recebeu o valor '2/11/2022 5:26:51 PM', que também alterei. Após estes passos deu tudo certo.

 

O anexo "Imagem debug.png" consta o print da tela de debug.

O anexo "20220211172649-rec - Original.xml" é o xml como foi salvo em disco pelo componente

O anexo "20220211172649-rec.xml" é o xml com as alterações que fiz.

 

 

Imagem debug.png

20220211172649-rec - Original.xml 20220211172649-rec.xml

Postado

Bom dia Ítalo,

 

atualizei os fontes, reinstalei o ACBr e recompilei o programa. Mesmo assim continua não buscando o número do protocolo. Lembrando que falta os 0 (zeros) no formato da data e hora na tag <DataRecebimento>2/28/2022 7:20:59 PM</DataRecebimento>

 

Postado

Confere sim Ítalo. Ela está desta forma no arquivo 20220228213547-rec.xml. Mas conforme disse anteriormente, se eu alterar o arquivo durante o debug, colocando o zero tanto no mês quanto na hora, dá certo

  • Consultores
Postado

Bom dia Rogério,

Favor atualizar os fontes e faça novos testes.

Preciso descobrir ainda uma maneira de identificar quando a data esta no formado MM/DD/AAAA

Uma vez que 04/03/2022 e 03/04/2022 não tem como saber.

Já a data 03/20/2022 fica claro que ela no formato MM/DD/AAAA.

Pensei em até pegar a data 03/04/2022 (por exemplo) e comparar com a data de hoje, se ela for maior então o dia e o mês precisa inverter, mas a rotina que faz a leitura da data é utilizada para ler qualquer data que esteja no XML e a data que ele possa estar lendo pode ser uma data futura, algo do tipo: data de vencimento da fatura.

 

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Este tópico foi criado há 1001 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

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.