estranho cara eu fiz isso e nao muda nd
olha como esta
String nfeDadosMsg = "<nfeDadosMsg><consStatServ versao=\"2.00\""
+ " xmlns=\"http://www.portalfiscal.inf.br/nfe\">"
+ "<tpAmb> "+ tpAmb +" </tpAmb><cUF>"+ cod_uf +"</cUF><xServ>STATUS</xServ></consStatServ></nfeDadosMsg>";
para SP funciona to tentando MT e volta
215 - Rejeicao: Falha no schema XML
Nossa cara… que estranho…
justamente o de MT eu nao rodei, passei despercebido…
porem agora que fui rodar retornou o seguinte…
<?xml version="1.0" encoding="iso-8859-1"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<soapenv:Fault>
<faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Client.NoSOAPAction</faultcode>
<faultstring>no SOAPAction header!</faultstring>
<detail>
<ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">vermelho4.sefaz.mt.gov.br</ns2:hostname>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
Minha Msg soap esta sendo enviada assim:
<?xml version="1.0" encoding="iso-8859-1"?>
<soap12:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<soap12:Header xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<nfeCabecMsg xmlns="http://www.portalfiscal.inf.br/nfe">
<cUF>51</cUF>
<versaoDados>2.00</versaoDados>
</nfeCabecMsg>
</soap12:Header>
<soap12:Body xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2">
<consStatServ versao="2.00" xmlns="http://www.portalfiscal.inf.br/nfe">
<tpAmb>2</tpAmb>
<cUF>51</cUF>
<xServ>STATUS</xServ>
</consStatServ>
</nfeDadosMsg>
</soap12:Body>
</soap12:Envelope>
Voce consegue entender alguma coisa disso ?
Olá amigo boa noticia, consegui consultar MT sim…
precisa colocar um tal de SoapAction no header:
Fiz assim e funcionou:!!!
MessageFactory mf = MessageFactory.newInstance();
SOAPMessage sm = mf.createMessage();
...
sm.getMimeHeaders().addHeader("SOAPAction", "urn:NfeStatusServico2");
Resultado da consulta para MT:
<?xml version="1.0" encoding="iso-8859-1"?>
<soapenv:Envelope
xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<nfeCabecMsg soapenv:mustUnderstand="false"
soapenv:role="http://schemas.xmlsoap.org/soap/actor/next" xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2">
<versaoDados>2.00</versaoDados>
<cUF>51</cUF>
</nfeCabecMsg>
</soapenv:Header>
<soapenv:Body>
<nfeStatusServicoNFResult xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2">
<retConsStatServ versao="2.00" xmlns="http://www.portalfiscal.inf.br/nfe">
<tpAmb>2</tpAmb>
<verAplic>2.00</verAplic>
<cStat>107</cStat>
<xMotivo>Servico em Operacao</xMotivo>
<cUF>51</cUF>
<dhRecbto>2010-03-08T17:25:37</dhRecbto>
<tMed>1</tMed>
</retConsStatServ>
</nfeStatusServicoNFResult>
</soapenv:Body>
</soapenv:Envelope>
Testei ainda com os outros estados esse nova configuracao, e aparentemente não deu nenhum problema.
Acho que eh isso…
Abracos
Não entendi mto bem pq a String nfeDadosMsg eu monto
String nfeDadosMsg = "<nfeDadosMsg><consStatServ versao=\"2.00\""
+ " xmlns=\"http://www.portalfiscal.inf.br/nfe\">"
+ "<tpAmb> "+ tpAmb +" </tpAmb><cUF>"+ cod_uf +"</cUF><xServ>STATUS</xServ></consStatServ></nfeDadosMsg>";
e não com soapenv:Envelope …
é que eu criei a msg soap na mao…
por isso tenho melhor controle do que enviar…
vc montou a comunicação usando as classes criadas pelo wizard do axis2 ??
usei o wizard do eclipse sim
Estranho, fiz pelo wizard e tbm deu certo…
olha so como fiz:
String[] aUrl = {"homologacao.sefaz.mt.gov.br","/nfews/NfeStatusServico2"};
String sUf = "51"; // MT ok
/* conecao segura */
NfeStatusServico2Stub nfe = new NfeStatusServico2Stub("https://" + aUrl[0] + aUrl[1]);
NfeCabecMsgE nfeCabecMsg1 = new NfeCabecMsgE();
NfeCabecMsg param = new NfeCabecMsg();
param.setCUF(sUf);
param.setVersaoDados("2.00");
nfeCabecMsg1.setNfeCabecMsg(param);
OMElement ome = AXIOMUtil.stringToOM(
"<consStatServ xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"2.00\">" +
" <tpAmb>2</tpAmb>" +
" <cUF>" + sUf + "</cUF>" +
" <xServ>STATUS</xServ>" +
"</consStatServ>");
NfeDadosMsg nf2 = new NfeDadosMsg();
nf2.setExtraElement(ome);
NfeStatusServicoNF2Result resp = nfe.nfeStatusServicoNF2(nf2, nfeCabecMsg1);
System.out.println("Resposta : \n" + resp.getExtraElement().toString());
Tente isso… abraco
Fala pessoal, estou com uma dificuldade no envio de Lote de NFE, quando eu monto o arquivo XML de Acordo com o Manual ver: (4.01-NT2009.006) -
na hora do :
me retorna uma mensagem ( Unexpected subelement NFe ), sempre que eu coloca a TAG de 0000001.
Se eu não colocar a TAG de lote e só gerar 1 nota no arquivo passa, mais se colocar mais de uma nota no arquivo da esse erro. alguem tem alguma dica ?
vou postar o XML que gerei aqui embaixo:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<enviNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
<idLote>20100311092210</idLote>
<NFe><infNFe Id="NFe35100307206673000141550010001838981003051089" versao="2.00">
<ide> .............................
</NFe>
<NFe><infNFe Id="NFe35100307206673000141550010001838991003051159" versao="2.00">
<ide> ..............................
</NFe>
</enviNFe>
desde já aradeço,
Dankshit
dankshit, voce só pode ter 1 elemento “NFe”
Para enviar mais de uma nota no mesmo lote, acredito que a estrutura deva ser +/- assim:
<enviNFe versao="2.00" xmlns="http://www.portalfiscal.inf.br/nfe">
<idLote>20100311092210</idLote>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
<infNFe Id="NFe35100307206673000141550010001838981003051089" versao="2.00">
<ide> .............................
</infNFe>
<infNFe Id="NFe35100307206673000141550010001838991003051159" versao="2.00">
<ide> .............................
</infNFe>
<NFe>
</enviNFe>
Não tenho ctz… mas acredito que seja assim…
Fala pessoal,
guilherme_ha, e ai blz ? eu mudei a estrutura do XML para ficar desta forma que vc disse, realmente fica ais certo, mais se eu colocar a TAG de dá o mesmo erro, se tirar a TAG do lote passa blz várias notas no mesmo arquivo, Estranho to errando em alguma coisa.
Eu to acessando o Serviço assim:
NfeRecepcao2Stub nfeStub = new NfeRecepcao2Stub();
NfeRecepcaoLote2Result res = nfeStub.nfeRecepcaoLote2(nfeDados, nfeCabecE);
retRecepcao = res.getExtraElement().toString();
Assim é para enviar notas em Lote, qual é o metodo para enviar notas individualmente, não achei na calsse.
Se puder dar uma dica agradeço.
dankshit, o metodo para o envio de uma nf ou varias é o mesmo, o que muda é a estrutura do xml, vc pode enviar so uma nf do mesmo jeito que esta fazendo.
tente enviar 1 nota e depois post seu xml da msg de envio.
o metodo é o msm
o que indentifica qtas notas vao em um lote é a tag entao se vc repetir essas tags dentro do grupo de tag determina a qtde de notas enviadas
um detalhe agora para vc poder enviar as notas nesse novo sistema do webservices é que antes da tag ficava assim o envio
<enviNFe versao="2.00" xmlns="http://www.portalfiscal.inf.br/nfe">
<idLote>20100311092210</idLote>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
agora estou tendo q mandar assim
<msgDados><enviNFe versao="2.00" xmlns="http://www.portalfiscal.inf.br/nfe">
<idLote>20100311092210</idLote>
Fala pessoal,
XXX entendi sobre o envio das notas muito obrigado.
Sobre o XML vou postar ele aqui. Se eu tirar a TAG de passa tudo certinho sem problemas, e eu olhando o manual versão 4 parece estar tudo correto, to pensado em largar mão de enviar por lote as notas e fazer o envio individual de cada nota, uma a uma.heheh
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<enviNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
<idLote>20100311120111</idLote>
<NFe>
<infNFe Id="NFe35100307206673000141550010001839401003051084" versao="2.00">
<ide><cUf>35</cUf><cNF>305108</cNF><natOp>COMPRA MAT CONSCONSDIRETONSEC</natOp><indPag>1</indPag><mod>55</mod><serie>1</serie><nNF>183940</nNF><dEmi>2010-03-11</dEmi><dSaiEnt>2010-03-11</dSaiEnt><hSaiEnt>12:01</hSaiEnt><tpNF>1</tpNF><cMunFG>3503356</cMunFG><tpImp>1</tpImp><tpEmis>1</tpEmis><cDV>4</cDV><tpAmb>2</tpAmb><finNFe>1</finNFe><procEmi>0</procEmi><verProc>TESTE 135</verProc></ide>
<emit><CNPJ>07206673000141</CNPJ><xNome>KBG INDUSTRIA ALIMENTICIA LTDA</xNome><xFant>MOVEIS BECHARA</xFant><enderEmit><xLgr>RUA FRANCISCO GLICERIO</xLgr><nro> 1330</nro><xCpl/><xBairro>JARDIM BRASILIA</xBairro><cMun>3503356</cMun><xMun>ARARAS</xMun><UF>SP</UF><CEP>13607300</CEP><cPais>1058</cPais><xPais>BRASIL</xPais><fone>00173272101</fone></enderEmit><IE>182166265117</IE><IM>25650</IM><CNAE>123456789</CNAE></emit>
<avulsa><CNPJ/><xOrgao/><matr/><xAgente/><fone/><UF/><nDAR/><dEmi/><vDAR/><repEmi/><dPag/></avulsa>
<dest><CNPJ>57143828000205</CNPJ><xNome>CREDI FERRARI ELETRODOMESTICOS</xNome><enderDest><xLgr>AV MELVIN JONES</xLgr><nro> 04</nro><xCpl/><xBairro>CENTRO</xBairro><cMun>3550308</cMun><xMun>SAO PAULO</xMun><UF>SP</UF><CEP>13250330</CEP><cPais>1058</cPais><xPais>BRASIL</xPais><fone>00114524309</fone></enderDest><IE>382033709118</IE><ISUF/><email/></dest>
<det nItem="1"><prod><cProd>4000</cProd><cEAN/><xProd>MDF MM</xProd><NCM>99</NCM><CFOP>155601</CFOP><uCom>M </uCom><qCom>2.0000</qCom><vUnCom>11.0290</vUnCom><vProd>200.0000</vProd><cEANTrib/><uTrib>M </uTrib><qTrib>2.0000</qTrib><vUnTrib>200.0000</vUnTrib><vFrete/><vSeg/><vDesc/><vOutro/><indTot>1</indTot><DI><nDI/><dDI/><xLocDesemb/><UFDesemb/><cExportador/><adi/><nAdicao/><cFabricante/><vDescDI/></DI><xPed/><nItemPed/></prod>
<imposto><ICMS/>
<PIS><PISNT><CST>07</CST></PISNT></PIS>
<COFINS><COFINSNT><CST>07</CST></COFINSNT></COFINS>
</imposto></det>
<det nItem="2"><prod><cProd>542</cProd><cEAN/><xProd>MDF MM X</xProd><NCM>99</NCM><CFOP>155601</CFOP><uCom>M </uCom><qCom>3.0000</qCom><vUnCom>0.0000</vUnCom><vProd>50.0000</vProd><cEANTrib/><uTrib>M </uTrib><qTrib>3.0000</qTrib><vUnTrib>50.0000</vUnTrib><vFrete/><vSeg/><vDesc/><vOutro/><indTot>1</indTot><DI><nDI/><dDI/><xLocDesemb/><UFDesemb/><cExportador/><adi/><nAdicao/><cFabricante/><vDescDI/></DI><xPed/><nItemPed/></prod>
<imposto><ICMS/>
<PIS><PISNT><CST>07</CST></PISNT></PIS>
<COFINS><COFINSNT><CST>07</CST></COFINSNT></COFINS>
</imposto></det>
<det nItem="3"><prod><cProd>806</cProd><cEAN/><xProd>MDF MM X</xProd><NCM>99</NCM><CFOP>155601</CFOP><uCom>M </uCom><qCom>5.0000</qCom><vUnCom>0.0000</vUnCom><vProd>30.0000</vProd><cEANTrib/><uTrib>M </uTrib><qTrib>5.0000</qTrib><vUnTrib>30.0000</vUnTrib><vFrete/><vSeg/><vDesc/><vOutro/><indTot>1</indTot><DI><nDI/><dDI/><xLocDesemb/><UFDesemb/><cExportador/><adi/><nAdicao/><cFabricante/><vDescDI/></DI><xPed/><nItemPed/></prod>
<imposto><ICMS/>
<PIS><PISNT><CST>07</CST></PISNT></PIS>
<COFINS><COFINSNT><CST>07</CST></COFINSNT></COFINS>
</imposto></det>
<total><ICMSTot><vBC>0.00</vBC><vICMS>0.00</vICMS><vBCST>0.00</vBCST><vST>0.00</vST><vProd>0.00</vProd><vFrete>0.00</vFrete><vSeg>0.00</vSeg><vDesc>0.00</vDesc><vII>0.00</vII><vIPI>0.00</vIPI><vPIS>0.00</vPIS><vCOFINS>0.00</vCOFINS><vOutro>0.00</vOutro><vNF>0.00</vNF></ICMSTot><ISSQNtot><vServ>0.00</vServ><vBC>0.00</vBC><vISS>0.00</vISS><vPIS/><vCOFINS/></ISSQNtot></total>
</infNFe><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"/><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><Reference URI="#NFe35100307206673000141550010001839401003051084"><Transforms><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>5MVe8is2rZbgwpk+S0xCEFrAp9Y=</DigestValue></Reference></SignedInfo><SignatureValue>PPgja9r+vdhDqJFaHe/BNhxnst4/cgorSqDlBJ7cUGJ+vnSvWKuP8OMHpo4+7lEuYG1IclJQQ5QL
1XsTlJdRPtChfeIKBffcmUiz1omk3WRNrEOF/CZUtpKu64219GmoAidbup+uQHCQlSnKg5HuS4I+
b2ThVuD16SHleUlbtTY=</SignatureValue><KeyInfo><X509Data><X509Certificate>MIIGLTCCBRWgAwIBAgIIB+QG8EuLBUcwDQYJKoZIhvcNAQEFBQAwTDELMAkGA1UEBhMCQlIxEzAR
BgNVBAoTCklDUC1CcmFzaWwxKDAmBgNVBAMTH1NFUkFTQSBDZXJ0aWZpY2Fkb3JhIERpZ2l0YWwg
djEwHhcNMDkxMTExMTYwNTM2WhcNMTAxMTExMTYwNTM2WjCB6zELMAkGA1UEBhMCQlIxEzARBgNV
BAoTCklDUC1CcmFzaWwxFDASBgNVBAsTCyhFTSBCUkFOQ08pMRgwFgYDVQQLEw8wMDAwMDEwMDA3
MDIwMjMxFDASBgNVBAsTCyhFTSBCUkFOQ08pMRQwEgYDVQQLEwsoRU0gQlJBTkNPKTEUMBIGA1UE
CxMLKEVNIEJSQU5DTykxFDASBgNVBAsTCyhFTSBCUkFOQ08pMRQwEgYDVQQLEwsoRU0gQlJBTkNP
KTEpMCcGA1UEAxMgSyBCIEcgSU5EVVNUUklBIEFMSU1FTlRJQ0lBIExUREEwgZ8wDQYJKoZIhvcN
AQEBBQADgY0AMIGJAoGBALtWCa0WPQcKRNVilynWQVxehjXBs13WhLDyQBxpYeD1oa8FfU5NCQ8v
7dY/xiSOQcdW7NCVIv+/w9XV4ZubtfJt8eYNyUvJFIKRR1ASBpP1rbCrzdje6N3okTUfJv3v3sv0
QbyzCu7gYZTLLElr7S2LqofbrDazYrhdtJ0ZMHHNAgMBAAGjggL1MIIC8TAOBgNVHQ8BAf8EBAMC
BeAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMB8GA1UdIwQYMBaAFLdgqFv5sqauAO10
69VKyZZoZvVcMIG4BgNVHREEgbAwga2BFktCR0FSQVJBU0BURVJSQS5DT00uQlKgOAYFYEwBAwSg
LxMtMDMxMjE5NTI3NzQwOTMzNzgzNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwoCUGBWBMAQMC
oBwTGkFOVE9OSU8gUk9CRVJUTyBHSElSQUxESU5JoBkGBWBMAQMDoBATDjA3MjA2NjczMDAwMTQx
oBcGBWBMAQMHoA4TDDAwMDAwMDAwMDAwMDBXBgNVHSAEUDBOMEwGBmBMAQIBBjBCMEAGCCsGAQUF
BwIBFjRodHRwOi8vd3d3LmNlcnRpZmljYWRvZGlnaXRhbC5jb20uYnIvcmVwb3NpdG9yaW8vZHBj
MIHwBgNVHR8EgegwgeUwSaBHoEWGQ2h0dHA6Ly93d3cuY2VydGlmaWNhZG9kaWdpdGFsLmNvbS5i
ci9yZXBvc2l0b3Jpby9sY3Ivc2VyYXNhY2R2MS5jcmwwQ6BBoD+GPWh0dHA6Ly9sY3IuY2VydGlm
aWNhZG9zLmNvbS5ici9yZXBvc2l0b3Jpby9sY3Ivc2VyYXNhY2R2MS5jcmwwU6BRoE+GTWh0dHA6
Ly9yZXBvc2l0b3Jpby5pY3BicmFzaWwuZ292LmJyL2xjci9TZXJhc2EvcmVwb3NpdG9yaW8vbGNy
L3NlcmFzYWNkdjEuY3JsMIGXBggrBgEFBQcBAQSBijCBhzA8BggrBgEFBQcwAYYwaHR0cDovL29j
c3AuY2VydGlmaWNhZG9kaWdpdGFsLmNvbS5ici9zZXJhc2FjZHYxMEcGCCsGAQUFBzAChjtodHRw
Oi8vd3d3LmNlcnRpZmljYWRvZGlnaXRhbC5jb20uYnIvY2FkZWlhcy9zZXJhc2FjZHYxLnA3YjAN
BgkqhkiG9w0BAQUFAAOCAQEAFFyu834lK6QpZBB/lZ2oysNeMe/ra4RWRTT7fSi4LxOEtSJerTLF
BIQMxi9X+dPq85mVl39MlG8z/iPQRPDBZQuulwJk72mUts6u/YJ36RO+whs90Q7vTepqujLwRtYN
ERGGec38I5ZRQXlr31KA/3sTYOkrh0nyNlEckuXfW4XWmrtNS8zmZRV+I4MzECtG9gERRAvMlwux
QCMsX3au9/0iLOe+Z1JYrkx1/VuwKezME2g35EgZvDLocfLP1J1ccN92U6qMHhsWHI0bLU5tXm2a
wY2Z9hpeDB+oTNQv0DKt7mVifQisrceZtaOWc0UKOvVyseGQ7Xuxo9BKej7dAw==</X509Certificate></X509Data></KeyInfo></Signature>
</NFe>
</enviNFe>
Fala pessoal,
Inacreditavel evandromib , nunca ia descobrir sozinho, fiz o que vc falou, coloquei as TAGS e tudo começou a dar certo, agora tá tudo funcionando.
Muito Obrigado pela ajudaa de todos, por enquanto…heheheheheh
Fiz assim e deu certo:
[code]<msgDados><enviNFe versao="2.00" xmlns="http://www.portalfiscal.inf.br/nfe">
20100311092210
…
…
[/code]
hehehhe…t+
alguem conseguiu consultar serviço em outro estado
aqui minha resposta volta
215 - Rejeicao: Falha no schema XML
ja setei 2000 tipos de nfeDadosMsg
String nfeDadosMsg = "<nfeDadosMsg><consStatServ versao=\"2.00\""
//+ " xmlns=\"http://www.portalfiscal.inf.br/nfe\">"
+ " xmlns=\"http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2\">"
+ "<tpAmb> "+ tpAmb +" </tpAmb><cUF>"+ cod_uf +"</cUF><xServ>STATUS</xServ></consStatServ></nfeDadosMsg>";
alguem tem mais alguma dica ?
Opa , dankshit
q bom q funcionou ai , se precisar estamos por aqui
flw
Eu consegui para todos os estados…
mas precisa da namespace “http://www.portalfiscal.inf.br/nfe”
sem isso comigo nao funcionou tbm …!!
<nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2">
<consStatServ versao="2.00" xmlns="http://www.portalfiscal.inf.br/nfe">
<tpAmb>2</tpAmb>
<cUF>51</cUF>
<xServ>STATUS</xServ>
</consStatServ>
</nfeDadosMsg>
eu consegui agora mandar para outros estados
na verdade guilherme_ha não era nem o namespace “http://www.portalfiscal.inf.br/nfe” o meu estava certo , e o seu tb da certo o q estava errado era
String nfeDadosMsg = "<nfeDadosMsg><consStatServ versao=\"2.00\""
+ " xmlns=\"http://www.portalfiscal.inf.br/nfe\">"
+ "<tpAmb>" + tpAmb +"</tpAmb><cUF>"+ cod_uf +"</cUF><xServ>STATUS</xServ></consStatServ></nfeDadosMsg>";
do lado da variavel tpAmb antes do sinal de + tinha um spaço e tava dando erro no schema do xml
foi tirar o spaço q funcionou rsrs
mais valeu pela ajuda
flw
hehehe menos mau…
agente se apega tanto a outras coisas que as pequenas passam despercebido…!!!
Que enorme esse topico, devia ter uma forma de organizar melhor todo o conhecimento produzido aqui.