Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa tarde pessoal!

De um tempo pra cá, o ambiente de produção restrita está muito lento, e por varias vezes vem ocorrendo timeout no envio do lote.
Para recuperar o protocolo, vi que é necessário enviar o evento com o mesmo id, que no processamento é retornado o protocolo do envio original e o evento é definido como duplicado.

Como estão fazendo para recuperar o protocolo de envio se ao passar o id para o evento, ao gerar o xml o componente sempre gera um novo id?
Estão carregando o xml enviado anteriormente? Mas ai teria que manipular o xml para remover a assinatura aplicada.

Postado
8 horas atrás, Alisson Souza Pereira disse:

Na verdade o componente não gera um novo ID, implemente algo que ligue os dois envios e quando for esse caso vc popula com o ID do primeiro envio e será sucesso. 

Obrigado pela resposta Alisson, na verdade fiz uma afirmação sem ao menos testar se era isso mesmo. Vendo o código da função GerarXML dos eventos parece que o Id é sempre gerado pela função GerarChaveEsocial, mas entrando nela constatei que faz o teste se o Id está preenchido e retorna ele mesmo.

Estou armazenando os lotes enviados no bd, então quando não consigo concluir o envio do lote marco o evento como "timeout", quando é feita nova transmissão vinculo o novo lote ao anterior. Na consulta, se veio a flag de evento duplicado pego o protocolo e gravo no lote anterior. "Acho que é por ai!". Mais uma vez obrigado!

Postado

Só toma cuidado que dentro de um lote pode ter eventos que deram certo e outros não, o seu controle tem que ser por evento, para obter o recibo de um evento duplicado vc tem que enviar o mesmo ID e vai te gerar outro protocolo, 
Mas o caminho é bem esse ai mesmo. 

  • 2 semanas depois ...
Postado

Como recuperar pra qual ID de evento se refere o protocolo retornado então? em nenhuma das propriedades da sequencia ACBreSocial.WebServices.EnvioLote.RetEnvioLote.dadosRecLote.Protocolo consegui identificar uma propriedade do ID para poder gravar no banco de log da transmissao. Devo transmitir cada Lote com apenas um evento, em sua opinião? Minha tabela de rubricas tem 300 rubricas que eu gostaria de registrar o status da transmissao de cada já que alguma pode não ser aceita pelo eSocial.

Postado

Seria bom se algum usuario que ja consegue transmitir integrado ao seu sistema, dispor de um mini roteiro de como transmitir e acompanhar a transmissao, não contribuí com isto por não estar seguro dos passos e não quero confundir, mas imaginei que deveria preencher as instancias dos objetos do ACBr.Eventos, gerar os arquivos XML, registrar cada ID de cada evento para log e chamar o metodo Enviar, deixar em loop de monitoramento e receber o protocolo de envio para cada evento transmitido (já que é assíncrono), registrar na tabela de log se foi aceito,  com o recibo de transmissao, ou se nao, o motivo, ao final atualizar o status no seu banco de dados de seu ERP. O exemplo fornecido com ACBr apenas mostra os passos iniciais, da a opcao de transmitir e visualizar um Memo com o retorno, mas não parece fazer muita interação entre as instâncias que geraram os registros ou mesmo como repassar para as tabelas do ERP do desenvolvedor. Uma humilde opinião. O curioso é que não foi possível encontrar nem um vídeo simples que fosse, ou apostila, pago ou não, de como utilizar o componente no ACBr.

Postado

Muito obrigado pela ideia, estou tentando desenvolver um modulo que outros desenvolvedores chamam de Modulo de Mensageria, para acompanhamento das transmissões, será bom termos um modulo assim na ACBr pois dada a complexidade do eSocial acredito ser interessante algo dedicado, o ACBr Monitor Plus é muito eficiente para NFe, mas acredito que precisamos de mais alguns avanços para atender o eSocial e a integração com os ERPs. Mais uma vez, obrigado pela contribuição.

Postado

Ok, estou tentando relacionar agora o protocolo recebido com a instancia do evento que gerou o XML (pelo ID)  para poder gravar no log, eu teria que buscar no XML de retorno ou existe um jeito de pegar o ID em ACBreSocial1.WebServices.EnvioLote.RetEnvioLote?

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