xmlmapper_0.gif O XML Mapper é um programa fornecido juntamente com a sua distribuição do DELPHI 6-7 em diante!. É um recurso pouco documentado, mas muito útil para quem trabalha com arquivos XML no Delphi e, na era da Nota Fiscal Eletrônica quem não entende XML pode estar em apuros nesse momento. Vou demonstrar aqui como usá-lo para facilitar o seu dia a dia com os XMLs que vêm por aí!.

O que é o “XML mapper”?
Esse programa lhe permite ler e criar um “XML transformer” (XML Transformador) de um arquivo XML padrão W3C para um XML no formato Datapacket (usado pelo ClientDataSet); ou seja, com ele vc cria automáticamente um arquivo de transformação de qualquer XML para abrir os dados na sua aplicação usando o ClientDataSet.

Fácil de manusear?
Muito simples; em três cliques do mouse vc. vai ver o seu arquivo XML na tela em formato DataSet!. Por exemplo, um arquivo da Nota Fiscal Eletrônica. Interessante?, vamos ver agora como fazer isso logo a seguir.

Visualizando um arquivo NF-e usando o XML Mapper
Abaixo segue um passo a passo, conforme eu havia dito, apenas 03 (três) cliques do mouse. Bom, antes disso, localize o XML Mapper que fica localizado em “Iniciar\Programas\Borland Delphi x\XML Mapper”. Agora com o programa aberto execute os passos à seguir:

  1. Clique em “File Open” e localize um arquivo de uma NF-e gerado pela sua aplicação.
  2. Posicione o mouse em “infNFe” e com o botão direito escolha a opção “Select All Children”.
  3. Agora dê um clique no botão “Create and Test Transformation”.

E se tudo correu bem vc. está vendo todos os dados do cabeçalho da sua nota fiscal eletrônica. Por enquanto é isso; espero que esse pequeno artigo seja útil.

Posts Relacionados

Tags: , , ,



54 Comentários

  • At 2008.08.18 10:56, Caio Oliveira said:

    Se entendi, vc. está usando a nfe_util.dll? Se, for o caso, nós usamos ela e funcionou sem problemas. Mas, verifique o arquivo ws.xml que deve estar localizado na mesma pasta do aplicativo (esse arquivo contêm os endereços dos servidores web da SEFAZ). Conversei com o meu pessoal de suporte e me disseram que não foi necessário mexer nesse arquivo.

    Qualquer coisa, me envie uma cópia do arquivo do lote que vc. está enviando para que eu possa dar uma olhada e ver se encontro a resposta para o problema ali.

    • At 2008.08.18 11:04, Claudio said:

      bom o q tem dentro do ws.xml para a tag MT eh isso q vou postar abaixo, mas a principio se vcs estao usando e funciona bem entao deve estar certo, nem vou alterar… com relação a nfe_util.dll estou usando ela sim.

      vou postar ao final um arquivo de lote que estou enviando, ou melhor nao eh de lote, eh uma unica NFE

      brigado Caio, jah estou devendo duas caixas hehehehe

      MT

      https://homologacao.sefaz.mt.gov.br/nfews/NfeRecepcao
      https://homologacao.sefaz.mt.gov.br/nfews/NfeRetRecepcao
      https://homologacao.sefaz.mt.gov.br/nfews/NfeCancelamento
      https://homologacao.sefaz.mt.gov.br/nfews/NfeInutilizacao
      https://homologacao.sefaz.mt.gov.br/nfews/NfeConsulta
      https://homologacao.sefaz.mt.gov.br/nfews/NfeStatusServico
      https://homologacao.sefaz.mt.gov.br/nfews/CadConsultaCadastro

      https://nfe.sefaz.mt.gov.br/nfews/NfeRecepcao
      https://nfe.sefaz.mt.gov.br/nfews/NfeRetRecepcao
      https://nfe.sefaz.mt.gov.br/nfews/NfeCancelamento
      https://nfe.sefaz.mt.gov.br/nfews/NfeInutilizacao
      https://nfe.sefaz.mt.gov.br/nfews/NfeConsulta
      https://nfe.sefaz.mt.gov.br/nfews/NfeStatusServico
      https://nfe.sefaz.mt.gov.br/nfews/CadConsultaCadastro

      meu XML q estou enviando para WS

      41174651527VENDA DE MERCADORIA ADQUIRIDA OU RECEBIDA DE TERCEIROS055182302007-06-162007-06-16141209031102101,484b05602870000154EMPRESA TESTEMERIDIONALAV/ PINHEIRAIS330CENTRO4120903QUEDAS DO IGUACUPR854600001058BRASIL4635323125902774726165598580063EDSON ZUANAZZILINHA IGUACU330IGUACU4120903QUEDAS DO IGUACUPR854600001058BRASIL46991141072786CALCARIO DOLOMITICO (TON)5102TN25.680063.00001617.84TN25.680063.0000000010000000.0018.001800000.000110000000.000.65650000110000000.002.00200000.000.000.0000.000.000.000.000.000.000.000.000.000.000.00156465465465465REUNIDADAS TRNS. E CARGASCENTROQUEDAS DO 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

      • At 2008.08.18 11:08, admin said:

        Olá Claudio,

        Me envia o arquivo em pvt pois aqui ele vai perde o formato original..

        • At 2008.08.18 12:22, Claudio said:

          e como q eu fasso pra enviar em PVT?

          • At 2008.08.18 14:11, Caio Oliveira said:

            Oi Claudio,

            Desculpe a economia de palavras; pvt “private”. Envie arquivo anexado direto para o e-mail: caiohugueney@gmail.com.

            Sds,

            • At 2008.08.18 16:02, Claudio said:

              opa guri
              nao vai ser preciso, encontrei o erro, eu estava enviando uma unica NFE para testar, e agora estou enviando a nfe dentro de um lote, eu achava q se eu fosse enviar um unica NFE nao era necessário enviar dentro do lote.

              brigadao Caio

              • At 2008.08.18 16:13, Claudio said:

                oque eu precisaria agora eh um exemplo de XML de envio de lote sem assinatura… se nao for te atrapalhar muito terias condições de me fornecer um?
                se nao der tudo bem fica susse :)

                vlw Caio

                • At 2008.08.18 18:31, admin said:

                  Oi Claudio,

                  É a mesma coisa, vc. precisa apenas “encaixar as NFe” na tag principal do lote, veja como fazer aqui: http://www.caiooliveira.com.br/?p=63

                  Sds

                  • At 2008.08.19 09:28, Claudio said:

                    show de bola Caio, vlw pela dica, agora entendi como coisa funciona, eu tenho que assinar cada NFE dentro do enviNFe, eu estava querendo assinar o lote todo como uma só NFE hehehehe

                    GRATO mais uma ves :)

                    • At 2008.08.19 14:08, Claudio said:

                      funcionou tudo aqui Caio
                      eh coisa mais linda ver isso funcionando
                      como disse o lorde pra min otro dia: “o cara fica loko” qndo funciona hehehe

                      vlw

                      Lote processado ;)

                      • At 2008.08.19 14:22, admin said:

                        Blz, sucesso pra vc!

                        • At 2008.08.21 14:21, Claudio said:

                          olá Caio
                          aqui estou eu novamente :)
                          meu gerador de NFE está show de bola, gera lote, envia, recebe resposta de recebimento de lote, cancela nota e tudo mais, detalhe, a NFE_UTIL que estou usando possue as funcionalidades de cancelamento e inutilização da numeração são pagas. :(

                          na sua empresa voces contornaram essa situação? como?

                          vlw Caio

                          • At 2008.08.21 14:50, Caio Oliveira said:

                            Olá Claudio,

                            Por enquanto, pagando também…

                            • At 2008.08.21 15:27, Claudio said:

                              menos mal…

                              mudando de assunto, vi qu evoce gosta de moto, bom, meu esporte é outro, mas caso queira ver e talvez até participar do nosso evento, disponibilizei um video no youtube, caso queria ver basta procurar no youtube por skate rock festa 4

                              abraço Caio
                              bom fds

                              • At 2008.08.22 09:24, Claudio said:

                                ;)

                                Inutilizacao de numero homologado

                                hehehe

                                acho q terminei, sem susa ajuda o trabalho teria sido muito mais arduo
                                OBRIGADO Caio

                                precisando estou a disposição

                                abraço

                                • At 2008.08.22 13:40, admin said:

                                  Legal,

                                  Se consegui lhe ajudar então uns dos objetivos de BLOG está sendo cumprido.

                                  abraços!

                                  • At 2008.08.25 13:55, Claudio said:

                                    boa tarde Caio
                                    relativo ao DataPacket, com o XML mapper eu consigo converter meu XML da NFE no formato aceitavel pelo CDS, mas e via delphi, sabes me dizer como eu faria isso?
                                    no caso oq quero é ler o XML da minha NFE através de um dbgrid ou outra estrutura similar.

                                    flw guri

                                    • At 2008.08.25 16:49, Caio Oliveira said:

                                      Olá Claudio,

                                      Após criar o “conversor” usando o XML mapper, você pode usá-lo para conectar a base XML usando o ClientDataSet em conjunto com o componente XMLTransform. Veja abaixo como linkar tudo:

                                      Insira no seu DataModule: um ClientDataset, um XMLTransform e um DataSource. No ClientDataSet, Conecte a propriedade “ProviderName” com o XMLTransform. No XMLTransform conecte o item “TransformationFile” das propriedades “XMLTransformRead” e “XMLTransformWrite” com o seu arquivo criado no XMLmapper. O DataSource basta ligar então com o ClientDataSet.

                                      Insira um DBGrid e conecte-o com o DataSource do trio acima.

                                      Sds, Caio

                                      • At 2008.08.28 08:38, Claudio said:

                                        nao vai um Data Set Provider em algum lugar Caio?
                                        porque com esse esquema que vc me repassou ele da erro:
                                        Missing Data Provider ou Data Packet.

                                        e as propriedades “XMLTransformRead” e “XMLTransformWrite” sao do componente XmlTransFormProvider e nao do XmlTransform

                                        vou dar mais uma olhada aqui, se eu conseguir resolver postarei a resposta, se eu nao conseguir vo te incomodar denovo
                                        hehehehe

                                        vlw Caio
                                        sds…

                                        • At 2008.08.28 08:50, Caio Oliveira said:

                                          Olá Claudio,

                                          É assim mesmo, em tempo de projeto dá erro, mas ao abrir o ClientDataSet em execução vai funcionar (desde que o XML origem e o XTR estejam disponíveis).

                                          Sim vc tem razão, o componente é o XMLTransformProvider.

                                          Sds,

                                          • At 2008.08.28 10:08, Claudio said:

                                            tenho a seguinte situação aqui:

                                            um data source, um client data set e um xmlprovider

                                            no xml provider a seguinte configuração:
                                            transformread : C:\TMP\TmpXmlVisualizarNfesEmitidas.xtr
                                            transformwrite: C:\TMP\TmpXmlVisualizarNfesEmitidas.xtr
                                            xmldatafile : C:\TMP\TmpXmlVisualizarNfesEmitidas.xml

                                            o client data set esta ligado pela propriedade providername no xmlprovider e o data set esta ligado no cliente data set

                                            o arquivo TmpXmlVisualizarNfesEmitidas.xtr é resultado da transformação da minha NFE em data packet e o arquivo TmpXmlVisualizarNfesEmitidas.xml eh minha NFE em formato NAO data packet.

                                            msm qndo eu rodo a aplicação recebo o erro: o sistema nao pode localizar o objeto especificado.

                                            hummm, devo utilizar em algum momento o componente XML transform?

                                            qndo tiveh um tempo Caio, se puder responder

                                            thank´s
                                            :)

                                            • At 2008.08.28 15:51, Claudio said:

                                              opa Caio
                                              funcionou tudo aqui

                                              vlw mais uma vez irmao

                                              achei tb um texto na site da codegear que ajudou, mais as suas e mais uma vez tudo sob controle

                                              flw irmao

                                              • At 2008.08.28 21:02, Caio Oliveira said:

                                                Blz, agora ficou tranquilo né? E olha que pouca gente conheçe essa facilidade.

                                                At+

                                                • At 2008.09.29 07:41, Nei said:

                                                  Olá Caio, bom dia.

                                                  Cara, estou com um problemão. Eu tenho um projeto rodando com a emissão de NFe. Estou utilizando o Delphi 2006 junto com o componente Indy 10. O problema é que estou utilizando o certificado de um novo cliente e quando o componente IdHttp tenta conectar ao WS eu recebo o erro Error connecting with SSL.
                                                  E é só com o certificado deste cliente.

                                                  Vc tem alguma idéia para me ajudar?

                                                  Obrigado.

                                                  • At 2008.09.29 13:18, admin said:

                                                    Boa tarde Nei,

                                                    Normalmente os problemas com o certificado estão relacionados com a “cadeia de certificação”; baixe a cadeia completa à partir do site do provedor do certificado; instale e tente novamente.

                                                    Sds, Caio

                                                    • [...] fazer isso usando o utilitário que acompanha o Delphi “XML Mapper”; o qual uso muito (veja o post) quando preciso integrar um arquivo XML com meu sistema de forma [...]

                                                      • At 2008.12.11 01:13, nilton cleverson de oliveira said:

                                                        Ola caio nunca vi um blog tão bom assim eu sou programador amador nunca tinha usado essa tal de xlm mais graças a você estou consegindo fazer trabalho em uma empressa frigorifica em amontada-CE sou o unico programador da região estou por enquanto desevolvelndo o arquivo xlm não tenho a minima ideia de como faço para a autenticação digital quanto mais como faço para inviar para o sefaz do Ceara mais so teimoso não vou desistir espero que mais a frente eu possa pedir sua ajuda um abraço mesmo sem le conhecer estou adimirado com o seu trabalho em ajudar as pessoas que deus cuide e elumine seu caminho um abraço

                                                        • At 2008.12.11 12:05, Caio said:

                                                          Olá Nilton,

                                                          Muito bom saber que o Blog está sendo útil. Esse é nosso objetivo.

                                                          abçs

                                                          • At 2008.12.18 10:44, Adriano said:

                                                            Olá Caio,

                                                            Bem já comecei a gerar as primeiras NOTAS, agora estou no processo de CANCELAMENTO, me tire uma dúvida mo cancelamento vai ter que gerar, assinar e validar igual na geração da XML e gostaria tb de saber onde tem exemplos de XML de Cancelamento, pois parece que o SEFAZ RS mudou o site e não estou conseguindo acessar os exemplos de xml

                                                            Desde já agradeço

                                                            • At 2008.12.18 11:13, admin said:

                                                              Olá Adriano,

                                                              Primeiro, parabéns!, estando nessa fase vc já passou pelos processos mais trabalhosos. Vc. está usando a NFe_util.dll certo?, nesse caso é muito simples, vc vai precisar chamar a função “CancelaNF()” da .dll passando para ela os parâmetros; como abaixo:

                                                              Ex.: Chamada da função CancelaNF

                                                              Util.CancelaNF(siglaUF, tpamb, nomeCertificado, cabMsg, DadosMsg, retWS,
                                                                msg, chaveacesso , protocolo, justificativa, proxy, usuario,
                                                                senha, licenca);

                                                              onde:
                                                              siglaUF = UF do estado
                                                              tpamb = tipo ambiente (homologação/produção)
                                                              nomeCertificado = nome do certificado
                                                              cabMsg = (passar em branco)
                                                              dadosMsg = (passar em branco)
                                                              retWS = XML Retorno
                                                              msg = Mensagem textual do retorno
                                                              chaveacessoNFe = Chave de Acesso da NFe
                                                              protocolo = N. protocolo de autorização de uso
                                                              justificativa = justificativa para o cancelamento
                                                              proxy = endereço do proxy ou branco
                                                              usuario = nome usuario ou branco
                                                              senha = senha usuario ou branco
                                                              licenca = numero da licenca de registro da NFe_util.dll (apenas produção).

                                                              • At 2008.12.18 13:43, Adriano said:

                                                                Caio,

                                                                Obrigado, mas eu não estou usando a dll util esta sendo tudo, o que fiz até agora foi gerar a XML, valida e assinar, bem tentei a trasmissão como fiz na Integração da XML mas seu retorno esta acusando erro 215 rejeição falha no esquema XML.Porém vi que o layout de retorno pede um Id.Eu queria saber oque é esse ID se é euq ue vou ter que gerar ou é um retorno

                                                                Desde já agradeço

                                                                • At 2008.12.19 08:54, Caio Oliveira said:

                                                                  Olá Adriano,

                                                                  O campo Id (que vai dentro do XML contendo a mensagem de solicitação de cancelamento) deve conter a CHAVE DE ACESSO da NFe precedida do literal “ID”.

                                                                  Sds,

                                                                  • At 2009.01.16 12:33, Alderico said:

                                                                    Caio boa tarde. Amigo estive vendo seus posts no forum e gostaria de perguntar: Eu tenho um xml e preciso pegar apenas os nós do xml. Ex:

                                                                    1
                                                                    teste

                                                                    1
                                                                    teste

                                                                    1
                                                                    teste

                                                                    Eu preciso de alguma rotina ou comando para obter apenas os nos (Cliente, fornecedor e produto), para eu saber quais nos existe no arquivo.
                                                                    Figo muito grato. Até +.

                                                                    • At 2009.01.16 17:30, admin said:

                                                                      Olá Alderico,

                                                                      Vc. pode usar algom como o código abaixo:

                                                                        vXMLDoc := TXMLDocument.Create(self);
                                                                        try
                                                                        vXMLDoc.LoadFromFile('seu_arquivo.xml');
                                                                        vXMLDoc.Active := True;
                                                                       
                                                                        NodePai := vXMLDoc.DocumentElement;
                                                                        For nK := 0 to NodePai.ChildNodes.Count - 1 do begin
                                                                            Memo.Lines.Add( NodePai.ChildNodes.Nodes[nK].NodeName );
                                                                       
                                                                        end;
                                                                        finally
                                                                           VXMLDOc.Free
                                                                        end;
                                                                      • At 2009.04.08 12:43, Ailton Lima said:

                                                                        Boa tarde.

                                                                        Meu aplicativo para pesquisa do XML das NF-e’s está com uma exceção intermitente quando tento abrí-lo:

                                                                        “Access violation at addess ???? in module Midas.dll”

                                                                        Já pesquisei por aí mas a única pista que encontrei seria a uma atualização do Midas.dll.

                                                                        É verdade ?

                                                                        • At 2009.05.07 09:50, Weber said:

                                                                          Estou usando este estrutura para fazer o cancelamento da NFe porém me retorna erro 402.. já passou por isso?

                                                                          Result := TXMLDocument.Create(Self);

                                                                          Result.Active := True;
                                                                          Result.Version := ’1.0′;
                                                                          Result.Encoding := ‘UTF-8′;
                                                                          Result.AddChild(‘cancNFe’, ‘http://www.portalfiscal.inf.br/nfe’);
                                                                          //Result.AddChild(‘TCancNFe’, ‘http://www.portalfiscal.inf.br/nfe’);

                                                                          Result.DocumentElement.Attributes['versao'] := ’1.07′;

                                                                          // Segundo nivel da arvore
                                                                          Result.DocumentElement.AddChild(‘infCanc’);
                                                                          Result.DocumentElement.ChildNodes['infCanc'].Attributes['Id'] := ‘NFe’ + NotaCancelarDTO.ChaveNF;

                                                                          // Terceito nivel do XML
                                                                          Result.DocumentElement.ChildNodes['infCanc'].AddChild(‘tpAmb’).NodeValue := TNFE_Utils.getInstancia.TpAmbiente;
                                                                          Result.DocumentElement.ChildNodes['infCanc'].AddChild(‘xServ’).NodeValue := ‘CANCELAR’;

                                                                          Result.DocumentElement.ChildNodes['infCanc'].AddChild(‘chNFe’).NodeValue := NotaCancelarDTO.ChaveNF;
                                                                          Result.DocumentElement.ChildNodes['infCanc'].AddChild(‘nProt’).NodeValue := NotaCancelarDTO.NumeroProtocolo;
                                                                          Result.DocumentElement.ChildNodes['infCanc'].AddChild(‘xJust’).NodeValue := TNFE_Utils.getInstancia.FormatarString(NotaCancelarDTO.xJust, 0);

                                                                          //Result := XmlDocument;

                                                                          • At 2009.08.27 12:00, Evandro said:

                                                                            Comprei recentemente o Delphi 2009 Professional, e nele não consigo encontrar o XML Mapper. Será que a versão não tem ele instalado

                                                                            • At 2009.08.27 19:32, admin said:

                                                                              Olá Evandro,

                                                                              Eu não tenho essa distribuição, mas, não acredito que tenha sido descontinuado; veja na pasta /bin da instalação do seu Delphi se o “xmlmapper.exe” não está ali. Qualquer coisa vc. pode usar o da versão anterior.

                                                                              Ou ainda, acesse a code central da Embarcadero” e veja se encontra ali.

                                                                              Sds, Caio

                                                                              • At 2009.08.27 21:52, EVANDRO said:

                                                                                Olá Caio:

                                                                                Obrigado pela atenção.

                                                                                Já verifiquei na pasta /bin e ele não está lá.

                                                                                Gostaria de saber se consigo baixá-lo na net.

                                                                                Sds
                                                                                Evandro

                                                                                • At 2009.09.17 17:06, diego said:

                                                                                  boa noite,

                                                                                  estou com problemas de ssl, quando envio notas para qualquer sefaz , está dando erro intermitente de ssl, e ja atualizei todas as cadeias de certificação, alguem poderia me dar uma ajuda????

                                                                                  • At 2010.03.28 15:32, Joan said:

                                                                                    estava com o mesmo problema do Claudio
                                                                                    e as explicações do Caio foram satisfatórias

                                                                                    obg. pela força Caio.

                                                                                    • At 2010.05.13 14:49, Edson Clemente said:

                                                                                      Caio, boa tarde, pegando uma carona no exemplo que vc deu em um dos comentários:

                                                                                      vXMLDoc := TXMLDocument.Create(self);
                                                                                      try
                                                                                      vXMLDoc.LoadFromFile(‘seu_arquivo.xml’);
                                                                                      vXMLDoc.Active := True;

                                                                                      NodePai := vXMLDoc.DocumentElement;
                                                                                      For nK := 0 to NodePai.ChildNodes.Count – 1 do begin
                                                                                      Memo.Lines.Add( NodePai.ChildNodes.Nodes[nK].NodeName );

                                                                                      end;
                                                                                      finally
                                                                                      VXMLDOc.Free
                                                                                      end;

                                                                                      Testei e funciou, o nome dos nós apareceram e agora como faço para ler cada item de cada nó ?

                                                                                      Desde já agradeço sua atenção
                                                                                      Edson Clemente

                                                                                      • At 2010.08.06 14:34, joao climaco said:

                                                                                        Boa tarde Caio,
                                                                                        Aproveitando a deixa do TXMLDocument, estou tentando gerar um xml da Fatura NFe da seguinte maneira:

                                                                                        While not dmCraclie0.qryConNdup.Eof Do
                                                                                        begin
                                                                                        NodeNivelZ := NodeNivelY.ChildNodes['dup'];
                                                                                        NodeNivelZ.AddChil(‘nDup’).Nodevalue := IntToStr(StrToInt (NumNotaNFE)) + ‘/’ + dmCraclie0.qryConNdupSCRCNDES.AsString;
                                                                                        NodeNivelZ.AddChild ‘dVenc’).Nodevalue := FormatDateTime(‘YYYY-MM-DD’,dmCraclie0.qryConNdupSCRTVCT.AsDateTime);
                                                                                        NodeNivelZ.AddChild(‘vDup’).Nodevalue := FormatFloat (‘########0.00′, dmCraclie0.qryConNdupSCRVSALDO.AsFloat);

                                                                                        dmCraclie0.qryConNdup.Next;
                                                                                        end;

                                                                                        No desdobramento esta saindo assim:

                                                                                        152/1
                                                                                        2010-08-05
                                                                                        1161.68
                                                                                        152/2
                                                                                        2010-08-20
                                                                                        6710.00
                                                                                        152/3
                                                                                        2010-08-27
                                                                                        6710.00

                                                                                        Quando deveria sair:

                                                                                        152/1
                                                                                        2010-08-05
                                                                                        1161.68

                                                                                        152/2
                                                                                        2010-08-20
                                                                                        6710.00

                                                                                        152/3
                                                                                        2010-08-27
                                                                                        6710.00

                                                                                        O que estou fazendo de errado, desde já agradeço a ajuda.

                                                                                        • At 2010.08.19 11:18, Alexandre said:

                                                                                          Olá.

                                                                                          Estou com o seguinte problema:

                                                                                          No xtr gerado pelo schema leiauteNFe_v2.00 esta dando erro no tamanho de alguns campos tipados (exemplo TChNFe) ele cria o campo ChNFe com tamanho 31 e nao 44

                                                                                          Alguem ja passou por isso?

                                                                                          • At 2010.10.22 06:30, Helio Alves said:

                                                                                            BOM DIA CAIO

                                                                                            A s notas estão indo bem… porem quando não tem internet .. como faço para tirar as notas ? . se tenho que emviar o xml, o que seria o numero do lote.?..
                                                                                            um abraço..

                                                                                            • At 2010.10.22 14:27, admin said:

                                                                                              Olá Helio Alves,

                                                                                              Sem internet, sem NF-e; verifique o sistema de Contigência no manual de orientação do contribuinte.

                                                                                              Sds

                                                                                              • At 2011.02.11 12:20, Eduardo Flaeschen said:

                                                                                                Olá Caio,
                                                                                                Primeiramente, parabéns pelo site !
                                                                                                Estou com o seguinte problema: tenho um webservice (win32) com um método select implementado. Na minha aplicação Delphi para consumir o ws tudo funciona corretamente mas estou com problemas quando a aplicação é ASP, PHP, ASP.net pois o xml é incompatível já que o resultado é um datapacket. Já fiz alguns testes utilizando o xmlmapper para trasnformar com sucesso mas não quero utilizar essa ferramenta. Como você poderia me ajudar ?
                                                                                                Obrigado,
                                                                                                Eduardo

                                                                                                • At 2011.02.11 13:41, admin said:

                                                                                                  Olá Eduardo,

                                                                                                  O Datapacket é um XML num como outro qualquer, a diferença principal é que a maioria dos dados está dentro de atributos ao invés de ser posicionados em tags separadamente; mas, vc. pode ler o XML usando o TXMLDocument, por exemplo, como faz com outros XMLs quaisquer; veja o exemplo abaixo:

                                                                                                  var vXMLDoc: TXMLDocument;
                                                                                                      NodeRaiz, NodeROWDATA: iXMLNode;
                                                                                                      DP_row: string;
                                                                                                  begin
                                                                                                    vXMLDoc := TXMLDocument.Create(self);
                                                                                                    vXMLDoc.LoadFromFile('c:\tempo\dadosloja_datapacket.xml');  // XML Exemplo (um DataPacket com dois campos ID e RAZAO).
                                                                                                   
                                                                                                    NodeRaiz := vXMLDoc.DocumentElement.ChildNodes.FindNode('ROWDATA');
                                                                                                   
                                                                                                    Memo4.Lines.Clear;
                                                                                                   
                                                                                                    NodeROWDATA := NodeRaiz.ChildNodes.FindNode('ROW');
                                                                                                    NodeROWDATA.ChildNodes.First;
                                                                                                   
                                                                                                    repeat
                                                                                                        try
                                                                                                          DP_ROW := NodeROWDATA.GetAttributeNS('RAZAO','')
                                                                                                        except
                                                                                                          exit;
                                                                                                        end;
                                                                                                        if  DP_ROW  '' then
                                                                                                        begin
                                                                                                        Memo4.Lines.Add('Razao: '+NodeROWDATA.GetAttributeNS('RAZAO','')+' Numero:'+NodeROWDATA.GetAttributeNS('ID',''));
                                                                                                        end;
                                                                                                        NodeROWDATA := NodeROWDATA.NextSibling;
                                                                                                    until DP_ROW = '';

                                                                                                  Sds

                                                                                                  • At 2011.11.24 11:16, Ricardo de Assis said:

                                                                                                    Funciona que uma blz… só que quando converte do DataSet para as tabelas do banco de dados, onde os valores double ficam com . (ponto) exemplo, 84.99, ao migrar para o banco de dados da erro de conversão no StrToFloat…., Caio Vc tem uma ideia de como resolver isto ? Obrigado

                                                                                                    • At 2012.07.10 14:56, Ricardo de Assis said:

                                                                                                      E quando os CST dos itens possui um valores diferentes, tipo 010 ou 060, se estiver mapedao para 010 não vai encontrar os registro do 060, como posso contornar isso, usando XTR ?

                                                                                                      • 4 old comments are not displayed. Click to display all comments

                                                                                                      You must be logged in to post a comment.