Nelson A Sousa Postado 25 Outubro Postado 25 Outubro (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 25 Outubro por Nelson A Sousa Acrescentei informação.
Moderadores Juliomar Marchetti Postado 26 Outubro Moderadores Postado 26 Outubro 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 Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Nelson A Sousa Postado 26 Outubro Autor Postado 26 Outubro (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 26 Outubro por Nelson A Sousa Acrescentei informação.
Nelson A Sousa Postado 26 Outubro Autor Postado 26 Outubro Rastrei até a leitura da seção de Icms. Parece que a Dll não consegue ler se o CST for igual a 101. Com o valor do CST igual 00 lê tranquilo.
Nelson A Sousa Postado 26 Outubro Autor Postado 26 Outubro 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.
Moderadores Juliomar Marchetti Postado 26 Outubro Moderadores Postado 26 Outubro 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 Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Nelson A Sousa Postado 26 Outubro Autor Postado 26 Outubro 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.
Recommended Posts
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 contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora