1
resposta

Após Split, arquivos gerados não mostram informações do pedido

Olá,

Ao realizar, conforme mostrado no video, o Split e posteriormente o Filter dos pedidos, pude perceber que os arquivos gerados na pasta de saída não continham as informações de Pedido (bem como Id, dataCompra, e pagamento). Aparentemente, os arquivos estão sendo gerados somente com os dados dos itens mesmo.

Arquivo original: 2_pedido.xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<pedido>
    <id>6532463</id>
    <dataCompra>2013-12-05T18:10:07.963-02:00</dataCompra>
    <itens>
        <item>
            <formato>IMPRESSO</formato>
            <quantidade>1</quantidade>
            <livro>
                <codigo>mean</codigo>
                <titulo>Full stack JavaScript para aplicações web com MongoDB, Express, Angular e Node</titulo>
                <tituloCurto>MEAN</tituloCurto>
                <nomeAutor>Flávio Almeida</nomeAutor>
                <valorEbook>39.90</valorEbook>
                <valorImpresso>69.90</valorImpresso>
            </livro>
        </item>
        <item>
            <formato>EBOOK</formato>
            <quantidade>1</quantidade>
            <livro>
                <codigo>ARQ</codigo>
                <titulo>Introdução à Arquitetura e Design de Software</titulo>
                <tituloCurto>Arquitetura Java</tituloCurto>
                <nomeAutor>Sergio Lopes, Paulo Silveira, Guilherme Silveira, Nico Steppat, outros</nomeAutor>
                <valorEbook>29.90</valorEbook>
                <valorImpresso>79.90</valorImpresso>
            </livro>
        </item>
    </itens>
    <pagamento>
        <status>CONFIRMADO</status>
        <valor>99.80</valor>
        <titular>Joana Galindo</titular>
        <email-titular>jgal@efg.com</email-titular>
    </pagamento>
</pedido>

Arquivo gerado:

{"formato":"EBOOK","quantidade":"1","livro":{"codigo":"ARQ","titulo":"Introdução à Arquitetura e Design de Software","tituloCurto":"Arquitetura Java","nomeAutor":"Sergio Lopes, Paulo Silveira, Guilherme Silveira, Nico Steppat, outros","valorEbook":"29.90","valorImpresso":"79.90"}}

Existe alguma maneira de fazer com que os arquivos sejam gerados por completo (incluindo informações de pagamento, por exemplo), mas somente com os itens filtrados?

1 resposta

Oi Yuri,

uma forma de resolver o seu problema é usar o XSLT. Através do XSLT vc define regras dentro de uma arquivo para transformar um XML em outro formato (pode ser XML, HTML ou json).

Ou seja, o XML do pedido passa pela transformação XSLT para criar um novo XML.

O Apache Camel já vem preparado para usar XSLT e existe um componente para tal (só precisa colocar as dependências):

http://camel.apache.org/xslt.html

Alem disso, vc precisa aprender como criar o arquivo com as regras de transformação:

https://www.w3schools.com/xml/xsl_intro.asp

Espero ter ajudado!

abs, Nico

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software