Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Pessoal.

          Estou implantando o ACBr para emitir NFSe em Campinas/SP, depois de alguns ajustes agora estou recebendo a informação: "Lote não processado ainda"

          Porém mesmo depois de um tempo a nota não é criada, segue o XML do RPS que foi criado, alguém sabe me dizer o que tem de errado?

 

          Obrigado, Abraços!

          Marcelo

   

1-Rps.xml

Postado

Perfeito Daniel.

        Por incrível que parece todas as anteriores estavam voltando com esta mensagem, porém nenhuma nota era emitida, depois percebi que estava faltando o valor total dentro dos itens. Fiz a modificação e enviei, mas deu a mesma mensagem "lote não processado ainda" então resolvi abrir o chamado.

       Porém eu só mandei enviar, não estou consultando e não está retornando nada. Código abaixo:

             with ACBrNFSe1 do
             begin
               if Enviar(FLOTERPS, False) then
               begin
                 FPROTOCOLO := WebServices.Enviar.Protocolo;
                 FDTA_ENVIO := WebServices.Enviar.DataRecebimento;
                 Result := True;
               end
               else
                 ShowMessage('Protocolo: '+WebServices.Enviar.Protocolo);
                 FMSG_RETORNO_WS := WebServices.Msg;
             end;

 

       O que acontece é que ao entrar no Enviar, dá o erro mensagem ("lote não processado ainda") e não me retorna nada... como se tivesse ocorrido um abort na aplicação.

       E eu não estou nem consultando, era apenas para enviar e pegar o protocolo.

 

 

Postado

Eu implementei este código primeiro fazendo para o município de Jundiaí - SP e funcionou perfeitamente só com o Enviar()

Qual maneira das que você sugeriu seria melhor para funcionar "multi-município"?

Pois meu objetivo é que funcione com a maioria dos municípios homologados no ACBrNFSe.

Ou eu deveria criar um parâmetro para utilizar um ou outro conforme o município?

 

Obrigado, Abraços!

 

Marcelo

  • Consultores
Postado

Boa tarde Marcelo,

Os municípios contratam os provedores através de licitação.

Se o provedor X ganhar a licitação, quando vencer o contrato uma nova licitação vai ocorrer e ai pode ganhar a empresa Y.

O problema é que os provedor não seguem a risca o padrão ABRASF, sendo assim, alguns disponibilizam o Web Service EnviarLoteRps e outros não.

Não devemos eleger um método e usar este para todas as cidades, e sim parametrizar o método a ser utilizado.

Alguns provedores se você envia através do método Enviar a resposta só estará disponível no dia seguinte, por outro lado se você enviar através do método Geral a resposta é imediata.

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

Entendi, mas como eu faço no caso específico de Campinas?

Pois utilizei o tipo de EnvioSincrono e deu erro que eu anexei acima.

Tenho que fazer algo diferente? Como eu descubro isso?

 

Obrigado, Abraços!

 

  • Consultores
Postado

Boa tarde Marcelo,

Analisando o código mais os schemas de validação, para o provedor de Campinas que o IssDSF temos que enviar o RPS somente através do método Enviar.

Não foi disponibilizado pelo provedor o EnviarSincrono e Gerar.

Quando ao status de lote ainda não processado é preciso entrar em contato com o provedor para saber se o RPS foi recebido e qual o resultado do processamento.

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

Boa Tarde Italo.

      O que me deixa intrigado é que quando recebe a mensagem de lote não processado o ACBrNFSe causa um "Abort()" e não tenho mais nada em mãos. Será que mesmo retornando lote não processado ainda, o provedor não manda nenhum protocolo? como faço, pois meus cliente irá emitir várias nfse por dia e se não tiver o retorno para poder consultar posteriormente, não sei o que fazer.

      Você tem alguma sugestão?

      Lembrando que quando utilizo o método enviar(), logo apos consulto no site do provedor as nfs já estão lá.

 

     Obrigado, Abraços!

 

     Marcelo

  • Consultores
Postado

Marcelo,

Se após enviar as notas constam no provedor como processadas, isso significa que o envio esta funcionando.

Peço então que você configure o componente para salvar os arquivos soap.

Configuracoes.WebServices.Salvar := True;

desta forma os arquivos de envio e de retorno serão salvos em disco com as TAGs soap, o nome dos arquivos contem a palavra soap para ficar fácil a identificação.

Peço a você que com essa configuração, faça um novo teste de envio.

Depois post como anexo aqui no fórum os arquivos *-soap.xml para que eu possa analisa-los.

Pode ser que esta vindo sim um retorno mas o componente não esta o identificando de forma correta.

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

  • Consultores
Postado

Marcelo,

Fiz algumas alterações nos fontes visando atender o provedor IssDSF.

Por favor atualize os fontes e teste novamente.

Configure o componente para apresentar as mensagens retornadas do provedor.

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

  • Consultores
Postado

Boa tarde Marcelo,

Pelo que pude ver o problema esta na demora do web service processar o RPS enviado.

O envio esta ocorrendo sem nenhum problema inclusive retorna o numero de lote gerado pelo Web Service.

E ao consultar o lote retorna que o mesmo ainda não foi processado.

Sugiro testar as outras consultas disponíveis para saber quais é o resultado.

Um outro teste é alterar o valor da propriedade Transacao de True para False e realizar um novo envio.

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

Fiz a alteração de Transacao = False, mas continua dando o mesmo erro.

O problema é que o componente não me retorna nenhuma informação, protocolo nada.. pra que eu possa tentar consultar futuramente.

O detalhe é que nesses últimos dois testes, a NF não está mais sendo emitida. Antes retornada erro mas emitia a NF.

Segue os arquivos para consulta.

196706063-lista-nfse-soap.xml

6-env-lot.xml

6-env-lot-soap.xml

6-rec.xml

6-rec-soap.xml

196706063-con-lot.xml

196706063-con-lot-soap.xml

196706063-lista-nfse.xml

  • Consultores
Postado

Bom dia Marcelo,

Vamos analisar 2 arquivos que são retornados pelo Web Services, para essa analise você pode abri-lo através de um navegador:

6-rec-soap.xml <== este é o retorno do envio do lote, note que temos uma TAG chamada <Sucesso> que contem o valor True no meu entendimento significa que o lote foi recebido e não possui nenhum alerta e ou erro e na TAG <NumeroLote> temos o numero (196706063) do lote gerado pelo Web Services para o lote recebido.

Você poderia considerar esse numero como sendo um numero de Recibo ou de Protocolo.

Observação: no nome do arquivo aparece o numero 6 que é o numero do lote atribuído pela sua aplicação.

196706063-lista-nfse-soap.xml <== este é o retorno da consulta, note que a TAG <Sucesso> contem o valor False que no meu entendimento significa que o lote ainda não foi processado e temos a confirmação disso no grupo <Alertas> onde temos o alerta de código 203 que significa: Lote não processado ainda.

Observação: no nome do arquivo aparece o numero 196706063 que é o numero do lote atribuído pelo Web Service.

Concluo que o problema encontra-se no Web Services, no que diz respeito a demora em processar o lote.

Se tomarmos como base o programa exemplo do ACBrNFSe temos os botões [Consultar NFSe por RPS] e [Consultar NFSe por Período], você chegou a utiliza-las para consultar os RPS enviados?

Observação o botão [Consultar Lote] realiza a mesma consulta realizada automaticamente pelo Enviar.

No caso do provedor IssDSF não existe o Consultar a Situação do Lote.

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

Boa Tarde Italo.

        Acredito que eu consegui entender o que você me falou, vou tentar explicar com minhas palavras pra ver se é isso mesmo.

        Ao enviar o Lote foi tudo certo e ele retornou que o número é 196706063, porém logo apos enviar, ele consulta automaticamente e este vem com "erro".

        1) Porém como eu faço para minha aplicação ter acesso a esse número de lote? 

        2) Dá pra configurar pra não consultar após o envio do lote?

        3) O IssDSF não disponibiliza a consulta de lote, mas posso usar a consulta do RPS se eu conseguir armazenar no meu sistema de alguma forma?

 

        Obrigado, Abraços!

 

        Marcelo

  • Consultores
Postado

Boa tarde Marcelo,

Vamos as respostas:

1. O numero de lote retornado pelo provedor pode ser lido através da linha:

 vAux := ACBrNFSe1.WebServices.Enviar.NFSeRetorno.InfRec.Protocolo;

2. Sim, existe uma propriedade de configuração para esse fim:

ACBrNFe1.Configuracoes.Webservices.ConsultaLoteAposEnvio := True ou False;

3. O provedor IssDSF não disponibiliza o método ConsultarSituacao por outro lado estão disponíveis os métodos: ConsultarLoteRps, ConsultarNFSeporRps e ConsultarNFSe.

O ConsultarLoteRps é executado automaticamente logo após o envio a não ser que o componente seja configurado para não realizar essa consulta.

O ConsultarNFSe é uma consulta por período.

A titulo de exemplo você se basear no programa exemplo do componente, ele possui um botão para cada tipo de método existente.

 

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 Italo.

          Agora fiz uma grande evolução graças a sua ajuda.

          Estou com duas coisas pendentes agora.

          1) Ainda quando consulto e me retorna um (sucess false) exemplo:

           ("Numero do RPS deve ser subsequente ao anterior enviado.Foi enviado o RPS 7 para ser convertido, porem o proximo RPS deve ser o 3 na Serie de Prestacao 99.")

            O ACBrNFSe dá um erro, isso é normal? Eu tenho que tratar o ConsultarLoteRps com Try? Pq no Ginfes ele retornava false pra função ConsultarLoteRPS e no false eu mostrava a mensagem.

 

           2) Qual é a melhor maneira de imprimir uma NFSe? 

           Pelo exemplo do ACBr, eu fazia um loadfromfile e depois mandava imprimir.

              ACBrNFSe1.NotasFiscais.Clear;
              ACBrNFSe1.NotasFiscais.LoadFromFile(sNFSe_Caminho);
              ACBrNFSe1.NotasFiscais.Imprimir;

 

            Porém existia um xml da nfse, em campinas só tenho esses xmls em anexo. Como devo proceder?

            Pq com esses xmls, eu chamo imprimir e não acontece nada.

 

            Obrigado, Abraços!

 

            Marcelo Lucena

 

           

196742064-con-lot.xml

196742064-con-lot-soap.xml

196742064-lista-nfse.xml

196742064-lista-nfse-soap.xml

  • Consultores
Postado

Boa tarde Marcelo,

O problema é que os demais provedores, pegam o XML do RPS e geram um novo XML com as TAGs da NFS-e.

E esse provedor não faz isso, ele simplesmente retorna que o RPS foi processado e retorna o código de verificação e o numero da NFS-e entre outros dados.

Será preciso rever algumas rotinas, para saber se não esta faltando nada.

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

Boa Tarde Italo.

       Por onde eu começo pra rever as rotinas? Me baseio no exemplo do delphi do ACBrNFSe? Pq foi ai que eu me baseei.

       Obrigado, Abraços!

 

       Marcelo Lucena

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