Neues Thema starten
Beantwortet

CSV in XML umwandeln - Zeilen überspringen

Hallo zusammen,


wir lesen eine CSV Datei ein und exportieren eine XML Datei. 

Innerhalb der CSV Datei befinden sich verkaufte Artikel. 


Anhand folgendem Script iterieren wir über die Artikel, um sie in die XML zu schreiben:  

<#-- iterate over article numbers to generate a new Item-Tag for each item -->
<#list article_numbers as artNo>
	<#-- check if it is a retoure -->
  	<#if retoure_numbers[artNo?index]?trim != "no">
    	<#assign type = "R">
   	<#else>
    	<#assign type = "S">
  	</#if>
	<#-- check if a 'R' is the starting letter of RENummer -->
<#assign reNo = RENummer>
<#if reNo?contains("R")>
<#assign reNo = reNo?replace("R","")?trim>
</#if>

  	<#assign output +=  item_tag>
  	<#assign output += '<Itemno>' + artNo + '</Itemno>'>
    <#assign output += '<Saleqty>' + generateValue(REPosMenge,artNo?index) + '</Saleqty>'>
    <#assign output += '<Cost>' + generateValue(REPosBrutto,artNo?index) + '</Cost>'>  	
  	<#assign output += '<Dateoftrans>' + generateValue(REErstellungszeitpunkt,artNo?index)+ '</Dateoftrans>'>
  	<#assign output += '<Type>${type}</Type>'>
   	<#assign output += '<Empno></Empno>'>
  	<#assign output += '<Refno><![CDATA[' +generateValue(reNo,artNo?index) +']]></Refno>'>
   	<#assign output += '<Branchno>${LagerNummer}</Branchno>'>
   	<#assign output += '<Customerid></Customerid>'>
   	<#assign output += item_closing>
</#list>

Nun haben wir aber das Problem, dass sich in der CSV Datei ein bestimmter Artikel befindet, welcher nicht in die XML geschrieben werden darf.


Hier benötigen wir eine if-Abfrage über eine Artikelnummer. Leider weiß ich nicht, wie wir diese Abfrage in das Script bauen, sodass die Schleife den Artikel überspringt und nicht komplett abbricht.


Hätten Sie da eine Lösung?


Danke schon Mal.


Viele Grüße

Daniel Ehrlich




Beste Antwort

Hallo Herr Ehrlich, 


das sollte mit einer if-Abfrage nach der list Anweisung funktionieren:  

...
<#list article_numbers as artNo>
	<#if artNo != "DieseArtikelnummerNicht">
		<#-- check if it is a retoure -->
...
		<#assign output += item_closing>
	</#if>
</#list>


Viele Grüße

Torsten Felsch


Antwort

Hallo Herr Ehrlich, 


das sollte mit einer if-Abfrage nach der list Anweisung funktionieren:  

...
<#list article_numbers as artNo>
	<#if artNo != "DieseArtikelnummerNicht">
		<#-- check if it is a retoure -->
...
		<#assign output += item_closing>
	</#if>
</#list>


Viele Grüße

Torsten Felsch

Hallo Herr Felsch,


hat geklappt, danke Ihnen!


Viele Grüße

Anmelden um einen Kommentar zu veröffentlichen