Neues Thema starten

MultiColumnRenamer?

 Hallo Team, ich muß massenhaft Spaltennamen prefixen. Sagen wir, ich habe 350 Spalten, die ersten Spaltennamen sollen so bleiben wie sie sind, alle anderen sollen ein Prefix "TD " erhalten. Geht das irgendwie? Im Step "MultiColumnFunction" komme ich ja an die die Spaltennamen mit "_currentTitle" heran, aber kann ich die auch ändern?


Gruß Micha


Bisher haben wir da noch nichts. Klingt aber praktisch. Wir besprechen das mal intern.

Prima! Solange das nicht geht, würde ich das über den Umweg Mapper-->Spreadsheet2XML-->XMLReader lösen wollen, wobei ich im Reader dann das ParsingTemplate entsprechend aufbaue. Leider klappt das nicht wie gewünscht - einfaches Beispiel:

Das kommt an:

<?xml version="1.0" encoding="UTF-8"?>

<zeilen>

 <zeile><GTIN>8710755118944</GTIN><ProductCode>819847</ProductCode><Test>B&#252;gelbrettbezug, </Test></zeile>

 <zeile><GTIN>8014808947698</GTIN><ProductCode>908853</ProductCode><Test></Test></zeile>

 <zeile><GTIN>4006160636383</GTIN><ProductCode>596556</ProductCode><Test></Test></zeile>

</zeilen>


Ich will nun alle Spalten außer "Test" parsen und den anderen das Prefix verpassen - irgendwie klappt das nicht. Mein Ansatz:


<#assign row = target.addRow()>

<#list xml["zeilen"]["zeile"] as book>

  <#assign row = target.addRow()>

  ${addColumns(row, book, "TD ", {columns:["Test"], "mode":"exclude"})}

</#list>


Ergebnis:

image


"Test" wird also nicht ignoriert. Wieso klappt das nicht?

Das Wort columns muss in Anführungsstriche.


Also ${addColumns(row, book, "TD ", {"columns":["Test"], "mode":"exclude"})}


Super, danke!

Das klappt leider doch nicht wie gewünscht. Neues Problem: Wenn ich aus dem Spreadsheet eine XML mache, die ich danach wieder über ein Parsing-Template einlese, bekomme ich Fehler, weil die Spalten Leerzeichen beinhalten. Also Beispiel:

Spreadsheet:

image

==>Spreadsheet2XML

image


==>XMLReader==>

image


Wie kann ich das verhindern? Das Einzige, was ich im ...2XML-Step machen kann, ist eine Einstellung beim Escape-Zeichen. Da kann ich aber nichts eingeben, sondern nur statt des Standards "Wrap in CDATA" wählen, was aber auch einen Fehler produziert. Ich bin langsam am Ende mit meinem Latein.

warte mal bitte noch bis Anfang nächster Woche. Wir haben eine relativ einfache Lösung gefunden und sind da schon dran. Ab nächste Woche kommt ein Step der Spalten analog zum MultiColumnFunction umbennen kann. Kann kannst du dir diese ganzen Workarounds sparen. Wir geben uns wirklich Mühe, dass wir das Anfang der Woche live bekommen. Der SpreadseetXMLWriter funktioniert nur für simple Spaltennamen... da XML auch nur bestimmte Zeichen erlaubt.

Schönes Wochenende :)

Hallo Micha,

es wird gerade ein neuer Step ColumnRenamer deployed. Im UI (Step-Vorschau) ist er schon verfügbar. Auf allen anderen Server im laufe der nächsten 1-2 Stunden. 


Damit kannst du Spalten einens Spreadsheets umbenennen. Anbei mal ein Beispiel für deinen Prefix-Anwendungsfall. 






1 Person gefällt dies

Sehr geil! Werde ich morgen gleich ausprobieren, danke für die Info und schnelle Umsetzung der Idee.


Liebe Grüße, Micha

Anmelden um einen Kommentar zu veröffentlichen