XML -> CSV different Results when using batch-mode

Hi,
I’m transforming multiple XML-Files to one CSV. The XML-Files can contain one or more datasets.
When I stack and transform them, I’m getting the desired result.

When I use the Batch function with *.xml and the same transformation, some records are different. I can’t figure out why.

Input looks like this:

<?xml version="1.0" encoding="utf-8"?>
<liefermeldungen>
  <liefermeldung>
    <liefermeldung_id>1471252</liefermeldung_id>
    <belegart>LD</belegart>
    <belegnr>3189586</belegnr>
    <belegdatum>05.10.2022</belegdatum>
    <kl_nr>4019200</kl_nr>
    <auftragsnummer>1261</auftragsnummer>
    <hinweis></hinweis>
    <anrede></anrede>
    <name1>Anne Nonymous</name1>
    <name2></name2>
    <name3></name3>
    <strasse>White Hat Lane 2</strasse>
    <plz>23421</plz>
    <ort>sdflkjasdf</ort>
    <land>D</land>
    <telefon></telefon>
    <telefax></telefax>
    <e_mail>foo@bar.com</e_mail>
    <anzahl_paletten>0</anzahl_paletten>
    <anzahl_pakete>1</anzahl_pakete>
    <gewicht>1,38</gewicht>
    <trackingnummer1>00340434658775004565</trackingnummer1>
    <trackingnummer2 />
    <trackingnummer3 />
    <trackingnummer4 />
    <trackingnummer5 />
    <paket1_gewicht_gesamt>1,380</paket1_gewicht_gesamt>
    <paket2_gewicht_gesamt />
    <paket3_gewicht_gesamt />
    <paket4_gewicht_gesamt />
    <paket5_gewicht_gesamt />
    <paket1_gewicht_verpackung1>160</paket1_gewicht_verpackung1>
    <paket2_gewicht_verpackung1 />
    <paket3_gewicht_verpackung1 />
    <paket4_gewicht_verpackung1 />
    <paket5_gewicht_verpackung1 />
    <paket1_gewicht_verpackung2>0</paket1_gewicht_verpackung2>
    <paket2_gewicht_verpackung2 />
    <paket3_gewicht_verpackung2 />
    <paket4_gewicht_verpackung2 />
    <paket5_gewicht_verpackung2 />
    <positionen>
      <position>
        <liefermeldungpos_id>11503638</liefermeldungpos_id>
        <positionsnr>1</positionsnr>
        <artikelnr>0678247978347B</artikelnr>
        <artikelart>BÜCHERBOX19</artikelart>
        <artikel_ean>678247978347</artikel_ean>
        <artikel_titel>Bobo Siebenschläfer Memo</artikel_titel>
        <artikel_autor>BoboSiebenschläfer-Paket</artikel_autor>
        <artikel_verlag>WIMMELBUCHVERLAG</artikel_verlag>
        <preis_ek>0.0000</preis_ek>
        <bestellte_menge>1</bestellte_menge>
        <gelieferte_menge>1</gelieferte_menge>
      </position>
      <position>
        <liefermeldungpos_id>11503639</liefermeldungpos_id>
        <positionsnr>2</positionsnr>
        <artikelnr>0678247978323B</artikelnr>
        <artikelart>BÜCHERBOX19</artikelart>
        <artikel_ean>678247978323</artikel_ean>
        <artikel_titel>Bobo Siebenschläfer Puzzle</artikel_titel>
        <artikel_autor>BoboSiebenschläfer-Paket</artikel_autor>
        <artikel_verlag>WIMMELBUCHVERLAG</artikel_verlag>
        <preis_ek>0.0000</preis_ek>
        <bestellte_menge>1</bestellte_menge>
        <gelieferte_menge>1</gelieferte_menge>
      </position>
      <position>
        <liefermeldungpos_id>11503640</liefermeldungpos_id>
        <positionsnr>3</positionsnr>
        <artikelnr>9783948638122B</artikelnr>
        <artikelart>BÜCHERBOX7</artikelart>
        <artikel_ean>9783948638122</artikel_ean>
        <artikel_titel>Bobo Siebenschläfer Stickerbuch</artikel_titel>
        <artikel_autor>BoboSiebenschläfer-Paket</artikel_autor>
        <artikel_verlag>WIMMELBUCHVERLAG</artikel_verlag>
        <preis_ek>0.0000</preis_ek>
        <bestellte_menge>1</bestellte_menge>
        <gelieferte_menge>1</gelieferte_menge>
      </position>
      <position>
        <liefermeldungpos_id>11503641</liefermeldungpos_id>
        <positionsnr>4</positionsnr>
        <artikelnr>9783948638139B</artikelnr>
        <artikelart>BÜCHERBOX7</artikelart>
        <artikel_ean>9783948638139</artikel_ean>
        <artikel_titel>Bobo Siebenschläfer Kritzelmalbuch - ab </artikel_titel>
        <artikel_autor>BoboSiebenschläfer-Paket</artikel_autor>
        <artikel_verlag>WIMMELBUCHVERLAG</artikel_verlag>
        <preis_ek>0.0000</preis_ek>
        <bestellte_menge>1</bestellte_menge>
        <gelieferte_menge>1</gelieferte_menge>
      </position>
      <position>
        <liefermeldungpos_id>11503642</liefermeldungpos_id>
        <positionsnr>5</positionsnr>
        <artikelnr>9783985850334B</artikelnr>
        <artikelart>BÜCHERBOX7</artikelart>
        <artikel_ean>9783985850334</artikel_ean>
        <artikel_titel>Bobo Siebenschläfer Wimmelbuch - Durch d</artikel_titel>
        <artikel_autor>BoboSiebenschläfer-Paket</artikel_autor>
        <artikel_verlag>WIMMELBUCHVERLAG</artikel_verlag>
        <preis_ek>0.0000</preis_ek>
        <bestellte_menge>1</bestellte_menge>
        <gelieferte_menge>1</gelieferte_menge>
      </position>
    </positionen>
  </liefermeldung>
</liefermeldungen>

Output should look like this:

order_id,tracking_provider,tracking_number,date_shipped,status_shipped
1261,Deutsche Post DHL,00340434658775004572,05/01/2022,1

But sometimes looks like this (only in Batch mode). This seems to use the wrong line. One above the desired one:

order_id,tracking_provider,tracking_number,date_shipped,status_shipped
1261,Deutsche Post DHL,"1,380",05/01/2022,1

Is it possible to send to support a minimal example that reproduces the issue?

1 Like

I had a quick go at reproducing the issue here:

But the batch mode produced the exact same output.

I just sent you a minimal example with my XML-Files

Am looking at it now.

So you are assuming that the different XML files will be imported with the exact same column names and ordering. But this is not the case. For example Liefermeldung_20221005_073201.xml has it’s first telefon value blank:

<telefon></telefon>

This results in telefon being column 75 in the table.

Whereas Liefermeldung_20221005_090201.xml has all it’s telefon values non-empty. Which results in telefon being column 12 in the table.

I will make a note to look into whether we can avoid this re-ordering issue due to blank values. Until then you can avoid the issue by using Stack to ensure the column order, as described under Same columns with the same names, but in a different order at:

For example:

image

NB/ The existing Stack in the .transform isn’t doing anything as it only has 1 input.

Ah, OK!. This is why it works, when I don’t use batch output. My Stack command was set up in this way.

So I’m assuming I can’t use the batch mode right now to get my desired results?

1 Like

@ shorshe The issue that 2 XML files with the same schema could be read in with columns in different order (depending on which values are blank) will be fixed in the next release.