Ir para conteúdo
  • Cadastre-se

dev botao

Recommended Posts

Postado (editado)

Boa noite pessoal,

Estou utilizando a AcbrLibNFe com c# no visual studio.

Ao utilizar o método ObterXML(0) estou recebendo uma mensagem de erro em alguns XMLs e outros não.

Sempre carrego um por um , por isso o índice 0(zero) ObterXML(0).

Fiz várias tentativas para descobrir o problema porém não consegui.

Alguém pode me dar uma ajuda?

Funciona_35240707022044000161550010000016491040000356.xml Nao_Funciona_35240233269378000144550010000011631998448692.xml

Editado por Nelson A Sousa
Acrescentei informação.
  • Moderadores
Postado
8 horas atrás, Nelson A Sousa disse:

Sempre carrego um por um , por isso o índice 0(zero) ObterXML(0).

como assim carrega?
lembrando que esse comando é pra pegar o xml após a emissão.

então tu manda o ini ou usa a classe de alto nivel preenchido, é feito a emissão envio e dai tu pega o xml

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado (editado)

Bom dia! @Juliomar Marchetti

Obrigado pela resposta!

Me desculpe, eu não fui claro!

Estou utilizando para importação de notas de compra.

                    ACBrNFe _AcbrNFe = new ACBrNFe(NgGlobais.PubPastaEmpresa + @"\Dados\Logs\ACBrLib.ini", "");

                    _AcbrNFe.LimparLista();
                    _AcbrNFe.LimparListaEventos();
                    _AcbrNFe.CarregarXML(XMLNameFull);

                    #region ::TRABALHANDO XML
                    var steste = _AcbrNFe.ObterNFe(0);
                    TxtNomeFornecedor.Text = steste.Emitente.xNome;

                    #endregion

Depois de carregar o xml da compra, eu tento obter os dados na NFe de compra carregando-os no objeto steste. Uma vez carregados os dados eu vou extraindo de steste aqueles que desejo exibir na tela.

Os dois XMLs acima são enviados por fornecedores diferentes, devidamente autorizados pela SEFAZ.

Com um deles eu consigo extrair os dados sem problema, já o outro me retorna o erro: "A cadeia de caracteres não estava em um formato correto".

Editado por Nelson A Sousa
Acrescentei informação.
Postado

Me parece que o problema está no CRT.

Com CRT=3 o valor padrão do CST é carregado como 0.

Já com CRT=1 o valor padrão do CST é nulo ou vazio "". Ao converter nulo pra inteiro no método ReadFromINi() ocorre o erro.

Tenta_Converter_Null_Pra_Int.png

CST_Vazio_Erro.png

Outro_XML_Aqui_Da_Certo.png

  • Moderadores
Postado

Se tu usa C# dai pra ler o xml dos dados é mais fácil tu usar o que ele possui

do que tu mandar pra uma dll pra ela mandar devolta.

e sim vai depender de como está vindo a informação no xml.  CRT 3 é CST com dois digitos, simples é CSOSN

mas volto a dizer que é melhor usar os recursos do C# pra ler

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado

Sim,

Você tem razão!  É perfeitamente possível com as ferramentas do C# resgatar os dados do XML.

Mas como a AcbrLib já está incorporada em meu aplicativ,o eu estou tentando aproveitar a mesma pra agilizar o processo de carregamento dos dados do XML, economizar na codificação, e, inclusive aproveitar a classe AcbrLib.NFe.NotaFiscal pra salvar os dados no BD.

Eu continuei verificando aqui com outros XMLs e o problema está realmente no CST, não na quantidade de dígitos, pois encontrei problemas tanto com CSON101 como com o CST60.

A questão é o valor nulo que vem "carregado" na key CST. Me parece que alguns CSTs e CSONs ainda não tiveram os valores padrão designados.

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.