| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/09/2010 21:05:36
|
Andre Brito
JWizard
Membro desde: 21/07/2007 17:44:31
Mensagens: 2485
Localização: Paraná
Offline
|
Pessoal, é o seguinte.
Temos um sistema que pega as informações da NFe da receita. Só que ele não depende de certificados digitais... Eu utilizo HttpClient da Apache pra pegar as páginas. Até aí tudo bem... Consigo pegar os htmls. O problema está em parsear os malditos... Não é simplesmente usar uma API de XML ou HTML ou algum parser que existe pronto (tipo o Bison), porque o HTML vem TODO desformatado.
Depois de longas horas examinando uns HTMLs muito ruins de ler, encontrei um pequeno padrão. Depois disso, com auxílio da lib HttpParser, eu consegui separar as coisas que eu realmente preciso. O problema é que ainda assim está extremamente complexo de dar manutenção, porque é um algoritmo que é muito ruim de acompanhar (pense numa nota com 20 itens, pegando cada propriedade dele... é muito extenso). Sem contar que alguns dados vem com as propriedades diferentes... Por exemplo... Na seção de produtos, as vezes o título da base de cálculo vem assim:
Base de Cálculo
E as vezes vem assim:
Base de Cálculo do ICMS
São ambos a mesma coisa no site. Esse último geralmente aparece quando tem ICMS ST junto, mas existem VÁRIAS regras pra isso... Que eu fui descobrindo só testando o algoritmo em cima dos htmls. Dá pra ver que é MUITO... 'volátil', digamos assim (uma hora tá de um jeito, outra hora tá de outro). Isso geralmente acontece na seção de produtos, que é totalmente bagunçada... Várias notas dão certo, mas peguei umas chaves de acesso que estou me batendo pra descobrir a maneira de arrumar.
E o 'parseamento' foi feito dessa forma... Pega uma chave, testa, compara e gera um arquivo dizendo as propriedades do mesmo (pros testes automatizados). Vocês podem até dizer "aaah, mas é muito fácil... já tem uns testes automatizados, qual a dificuldade disso?". Certo. O problema é que depois de algum tempo a nota sai do site... E aí vários testes quebram.
Bom... está MUITO custoso dar manutenção pra ele... Eu tenho que debugar com muita cautela pra verificar cada campo, se eles 'pularam' alguma coisa ou algo do gênero. Eu seeeeeeeeeeeei que posso usar o certificado pra consumir o WS do governo, mas quero procurar outras alternativas, pra não precisar gastar a graninha do certificado.
Vocês saberiam me dizer se existe algo mais simples a se fazer? Algum WS que faz isso ou coisa do tipo? Ou melhor, alguma coisa free que faça isso?
This message was edited 2 times. Last update was at 16/09/2010 21:11:38
|
Como organizar o GUJ.
Meu Twitter.
Meu blog.
Future proofing means making code easy to change, not trying to anticipate every possible way your code might need to change. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/09/2010 21:42:11
|
asaudate
GUJ Master
![[Avatar]](/images/avatar/974e2945a18e0bfb8e3aa8becac3e65c.jpg)
Membro desde: 01/09/2007 19:31:41
Mensagens: 1794
Localização: São Paulo
Offline
|
Pô, mas aí você tá de sacanagem... é óbvio que vai quebrar, sites HTML não são feitos para serem consumidos por aplicações, mas sim, pra serem vistos por seres humanos. E um ser humano sabe muito bem que "base de cálculo" é igual a "base de cálculo do ICMS" (e coisas assim).
Se você precisa TANTO assim usar esse sistema, e está custoso pra dar manutenção, será que a grana do certificado não compensa??
[]´s
|
Alexandre Saudate
__________________________
Do not try to bend the spoon - that's impossible. Instead, only try to realize the truth: there is no spoon.
Série quickstart: Spring+Spring Security+Jersey (REST) +Hibernate (JPA) -> https://github.com/alesaudate/kickstart-springjerseyhibernate
Evite usar Axis2!!! Leia aqui para mais detalhes!
@alesaudate
Quer ler um blog especializado em web services e SOA?
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/09/2010 22:24:45
|
jbmsegundo
JavaBaby
![[Avatar]](/images/avatar/fb5b5e2c58d0e0b90301b27bd3068fe5.jpg)
Membro desde: 27/04/2007 13:22:04
Mensagens: 90
Offline
|
Existem poréns. Pelo que entendi você ou sua empresa pretendem vender um serviço, e para adquirir o certificado a empresa tem que ser emissora de NFe coisa que você não vai fazer pois você não ta interessado em Emitir NF-e. Até quando trabalhei com projeto nfe não existia certificados para software houses.
|
http://www.jsegundo.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/09/2010 23:02:15
|
Andre Brito
JWizard
Membro desde: 21/07/2007 17:44:31
Mensagens: 2485
Localização: Paraná
Offline
|
asaudate wrote:Pô, mas aí você tá de sacanagem... é óbvio que vai quebrar, sites HTML não são feitos para serem consumidos por aplicações, mas sim, pra serem vistos por seres humanos. E um ser humano sabe muito bem que "base de cálculo" é igual a "base de cálculo do ICMS" (e coisas assim).
Se você precisa TANTO assim usar esse sistema, e está custoso pra dar manutenção, será que a grana do certificado não compensa??
[]´s
Pois é... acho que vou ter que optar pelo certificado mesmo.
Valeu pelas respostas, pessoal.
|
Como organizar o GUJ.
Meu Twitter.
Meu blog.
Future proofing means making code easy to change, not trying to anticipate every possible way your code might need to change. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/10/2010 08:46:37
|
bruxel
JavaTeenager
![[Avatar]](/images/avatar/923380fe3bc45ac9ca087f0233cf678b.jpg)
Membro desde: 28/12/2006 12:00:59
Mensagens: 175
Localização: Colinas/RS
Offline
|
kara vc ta tentando recuperar a nota direto do site da receita utilizando somente a chave da NFe ?
se sim, vc teve algum sucesso a mais, como vc fez, tambem estou tentando fazer isto.
|
Bruxel, Alexsandro
Bal. Administração, com Análise de Sistemas |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2011 07:05:49
|
Tino_
Debugger
![[Avatar]](/images/avatar/8099a957ec1f416d0034d4301e49f56c.jpg)
Membro desde: 19/11/2008 08:22:00
Mensagens: 58
Offline
|
UP UP...
e ai amigo, você conseguiu fazer isso?
estou com o mesmo problema preciso pegar essas informações do site da receita..
como você conseguiu fazer isso?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2011 07:40:48
|
JoaoBluSCBR
JavaEvangelist
![[Avatar]](/images/avatar/018f418df303f0090d6f81837408e107.png)
Membro desde: 18/11/2010 15:53:29
Mensagens: 474
Localização: Blumenau (SC)
Offline
|
Pessoal, tem um tópico específico sobre NFe, com mais de 800 participações,
comecem por lá.
Esse sistema foi tão bem construído, com xml e schemas que são fáceis de
fazer marshalling e un usando JAXB, tudo validado e assinado.
E vocês querem garimpar as notas em HTMLs??? kkkkkk
Tão de brincadeira, isso é trabalhar na contramão da história.
Vão no google e digitem:
"Nfe Certificados para teste"
Vão encontrar formas de solicitar certificados para serem usados em testes de software houses.
|
Venci !!! Acessei um webservice usando J2ME com ksoap e kxml. kkkkkk |
|
|
 |
|
|