Ir para conteúdo
  • Cadastre-se

[Correção/Sugestão] Provedor MegaSoft - Erro Validação XML (Exigibilidade e Schema Desatualizado)


Ver Solução Respondido por Alexandre da Silva Lima,

Recommended Posts

Postado

Olá a todos,

Ao tentar realizar a emissão de NFS-e para o provedor MegaSoft, estava me deparando com erros de validação tanto locais (MSXML) quanto no próprio webservice, rejeitando o lote gerado.

Erro retornado (Validação Local / Webservice):

Código : X800 / E160
Mensagem: Erro de Validação:  --> 1871 - Element '{http://megasoftarrecadanet.com.br/xsd/nfse_v01.xsd}NumeroNbs': This element is not expected. Expected is ( {http://megasoftarrecadanet.com.br/xsd/nfse_v01.xsd}Exigibilidade ).

Após realizar alguns testes e re-testes com o webservice, identifiquei que a MegaSoft atualizou seu manual e os schemas oficiais, tornando a tag <Exigibilidade> obrigatória e alterando propriedades no XSD.

Fiz os ajustes nos fontes e nos arquivos de schema, o que resolveu o problema perfeitamente. Seguem as correções sugeridas para avaliação e possível commit no SVN:

1. Ajuste na Geração do XML (.pas)
Arquivo: \Fontes\ACBrDFe\ACBrNFSeX\Provedores\MegaSoft.GravarXml.pas
Procedure: TNFSeW_MegaSoft200.GerarServico

O que foi alterado:

Inclusão da tag <Exigibilidade> que estava ausente, antes de NumeroNbs.

Ajuste do tamanho da tag <NumeroNbs> de 9 para 12 caracteres.

Como ficou o código (trecho final da procedure):

Delphi

  Result.AppendChild(AddNode(tcStr, '#31', 'CodigoTributacaoMunicipio', 1, 20, 0,
                     NFSe.Servico.CodigoTributacaoMunicipio, DSC_CSERVTRIBMUN));

  // --- ALTERAÇÕES INICIAM AQUI ---
  // 1. Exigibilidade (Obrigatória na nova versão)
  Result.AppendChild(AddNode(tcStr, '#32', 'Exigibilidade', 1, 2, 1,
                     FpAOwner.ExigibilidadeISSToStr(NFSe.Servico.ExigibilidadeISS), 'Exigibilidade'));

  // 2. NumeroNbs (Obrigatório, tamanho limite ajustado para 12)
  Result.AppendChild(AddNode(tcStr, '#32', 'NumeroNbs', 1, 12, 1,
                                             NFSe.Servico.CodigoNBS, DSC_CMUN));

  // 3. Discriminacao
  Result.AppendChild(AddNode(tcStr, '#32', 'Discriminacao', 1, 2000, 1,
    StringReplace(NFSe.Servico.Discriminacao, Opcoes.QuebraLinha,
               FpAOwner.ConfigGeral.QuebradeLinha, [rfReplaceAll]), 'Discriminacao'));

  Result.AppendChild(AddNode(tcStr, '#39', 'InfAdicional', 1, 255, 0,
                                  NFSe.Servico.InfAdicional, DSC_INFADICIONAL));
end;
2. Atualização dos Schemas (.xsd) do Repositório
Arquivo: \Exemplos\ACBrDFe\Schemas\NFSe\MegaSoft\2.00\nfse_v01.xsd

O arquivo atualmente presente no SVN do ACBr possui duas divergências em relação ao schema oficial publicado em http://megasoftarrecadanet.com.br/xsd/nfse_v01.xsd.

Divergência A: Falta a declaração do elemento Exigibilidade dentro de tcDadosServico.
Correção: Inserir <xsd:element name="Exigibilidade" type="tsExigibilidadeISS" minOccurs="1" maxOccurs="1"/> antes do NumeroNbs.

Divergência B: Erro de digitação (typo) na declaração do tipo do elemento Numero dentro de tcIdentificacaoNfse.
Correção: Alterar de type="tsNumerNfse" para type="tsNumeroNfse".

Após aplicar a alteração no .pas e substituir o nfse_v01.xsd local pelo atualizado, o validador local aprova a estrutura e o webservice processa a requisição normalmente
(retornando as validações normais de negócio, como L000 - Assinatura sem acesso ao webservice, atestando que a barreira estrutural foi vencida).

Gostaria de sugerir essas alterações para os próximos commits.

Agradeço a atenção e o excelente trabalho com o componente!

nfse_v01 - Atualizado.xsd MegaSoft.GravarXml.pas

  • Consultores
Postado

Atualize o ACBr. 

foi feito algo nesse sentido nessa unit

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • 2 semanas depois ...
  • Consultores
Postado
41 minutos atrás, Alexandre da Silva Lima disse:

Agradeço muitissimo pelo seu retorno, Juliomar.  

Deu certo?

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

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.

The popup will be closed in 10 segundos...