Bom dia.
Faz algum tempo que estou com problemas de processamento de lotes na SEFAZ MG Homologação (e SVC Homologação). O problema não acontece sempre, mas com uma frequência irritante.
O lote é enviado, processado na SEFAZ (que retorna protocolo de processamento do lote - n recebimento), mas o lote fica com status 103 no GRC e em processamento (triangulo amarelo).
Analisando o problema com mais cuidado (executando o proxy de retorno do processamento do lote) reparei que a SEFAZ esta retornando no campo <verAplic> da mensagem nfeRetAutorizacaoLoteResponseum valor superior a 20 caracteres (limite estabelecido no esquema/manual de integração/XSD). E com isso esta dando erro no processamento do proxy (vide anexo returnBatchProcess_fromSEFAZ.jpg).
A solução de contorno foi alterar o message mapping:
BATSR_nfeRetAutorizacaoLote_Merge_nfeRetAutorizacaoLoteResponse_TO_nfeRetAutorizacaoLoteResponse
Criando uma User-Defined function com o código abaixo e colocando ela no meio do mapeamento de ambos os campos verAplic da mensagem:
if (verAplic.length() > 20)
verAplic = verAplic.substring(0, 19);
return verAplic;
Como o problema não esta ocorrendo em PRD, mantive esse MM alterado somente em DEV e QAs.
Mandei um e-mail para SEFAZ MG alertando sobre o problema.
Fica a dica.
At.,
Bernardo Braga