Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Bom dia

Ao gerar a nfe eu chamo primeiramente a função validar no ACBR, para verificar se as informações enviadas

para a geração do xml estão corretas.

Porem ele me retorna uma mensagem gigantesca assim:

"'000000000' violates pattern constraint of '[0-9]{2}|[0][1-9] ...

The element '[http://www.portalfiscal.inf.br/nfe}NCM'

with value '0000000' failed to parse."

E o meio informando que é NCM que no caso está em branco. Mas eu gostaria de aproveita essa validação

para mostrar uma mensagem mais amigável ao usuário, de que simplismente o NCM é inválido ou não foi informado.

Alguém tem alguma sugestão de como posso tratar esse retorno do ACBR ?

Obrigado

Postado

Bom a questão é eu trato como exceção.

O problema é aquela é a mensagem que vem do exception do acbr, eu gostaria que retornasse apenas

"NCM inválido" e não toda aquela URL e codigos do XML.

Entendeu ?!

Postado

vc sabe usar o TRY EXCEPT??

como o marcio disse vc pode tratar a mensagem ANTES de mostrar pro usuario, eh soh vc pegar o conteudo dela no EXCEPT e pegar o que te interessa apenas.

Acho que esse seria o jeito mais simples

Postado

A classe do ACBR me permite modificar o tipo de alerta precisar que

eu fique idenficando a informação dentro da String para exibir apenas ela.

o pcnGerador tem uma propriedade FFormatoAlerta que eu defino que informações exibir a mensagem de Alerta.

Só que não consigo saber como e onde alterar esse formato da mensagem.

fazer esse tipo de tratamento no Try, Except é muito amador!

Obrigado

Postado

tratamento no Try, Except é muito amador!

Obrigado

Amigo, Try Except não é, e nunca foi amador, estude sobre ele, e verá que poderá fazer coisas bem bacana para mostrar para seus clientes a mensagem que quiser, mas veja só quem tem que dizer qual a mensagem deve aparecer é VOCÊ, não o delphi e nem o try except, por isso tem o nome "tratamento de exceção"

Abraço

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Postado

Try Except é amador se for usado para "Programação Orientada à Exceção" com aqueles tratamentos onde o except fica em branco. Não me sinto amador depois de fazer um windows services cheio de try except, capturando todas as mensagens de erros, tratando quando possível ou disponibilizando para posterior análise, isso sem deixar o serviço parar.

Sobre a dúvida, acredito que conseguirá "tirar" o retorno desta mensagem utilizando RegEx, mas infelizmente não posso te ajudar neste item, pois não sou profissional gabaritado em RegEx!

Abraços

- Sou desenvolvedor.

- De que linguagem, delphi? .NET? Java?

- Qualquer uma, sou desenvolvedor.

Postado

Beleza galera...

A grande questão é que não entenderam minha dúvida.

O Acbr possui uma mensagem de alerta, pois os erros já são tratados.

ACBrNFe1.NotasFiscais.Items[0].Alertas esse é o local que ele me mostraria a mensagem na qual ele já tratou

gerando um raise exception, e anteriormente eu fiz um try except esperando esse raise do acbr ...

A grande questão é que esse ACBrNFe1.NotasFiscais.Items[0].Alertas por algum motivo esta vindo em branco, e uma

outra variavel que é alimenta FMsg que é passada como parametro.

Se eu validar o xml pelo exemplo do acbr ele mostra as duas msg, tanto do Alertas quando do FMsg, mas no meu software

seguindo o mesmo exemplo do acbr não funciona.

Pergunta, por qual motivo, seria alguma configuração para que ele não preencha o Alertas ??

E por isso comentei sobre o Try Except, me desculpem...

  • Moderadores
Postado

Uma coisa são as validações do PCN e outra são as validações dos Schemas fornecidos pela receita.

No seu caso o PCN irá validar se o conteúdo q vc passou é do tipo que o componente espera e se é do tamanho correto.

Por exemplo, no caso do NCM ele irá verificar se o campo tem no mínimo 2 e no máximo 8, qualquer valor que vc colocar que preencha essas condições não irá gerar nenhum alerta, no seu caso vc colocou 0000000.

Feito isto o componente irá validar o XML com base nos schemas fornecidos pelo governo, e dae vai gerar uma exceção pois 0000000 não é um NCM válido. Os alertas não geram exceção.

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.xpos.com.br
Postado

Muito Obrigado cara.

É justamente isso.

E o acbr acaba não gerando nenhum alerta porque o NCM eu to mandando 00000000 e ele está no tamanho correto.

Porém ao testar no Schemas ele gera uma exceção sem tratamento.

Muito obrigado por compreender o problema.

Abraço

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