Bestimmte Zeilen in Spalten leeren

Hallo zusammen,


wir übergeben per CSV Werte an einen EDI-Dienstleister. Dieser wandelt die Nachrichten in das EDIFACT Format um und sendet Sie an den Endkunde.


Nun haben wir die schwierigkeit das bei einem bestimmten Kunden Rabatte berücksichtigt werden müssen, aber nur 1x pro Bestellung auch wenn diese mehrere Artikelzeilen haben.


Eine Beispieldatei hängt an:


Diese CSV übergibt nun eine einzelne Bestellung mit zwei Artikeln. Würde die Rechnungsliste weitere Bestellungen enthalten würde wieder die obere Zeile als nächstes kommen und darunter die Artikel.


Die angezeigten Spalten sollen nun pro Bestellung die Werte nur in der ersten Artikelzeile haben, die zweite Zeile soll dann leer sein für diese bestimmten Discounts.


Wichtig wie gesagt, bei mehreren Bestellungen in dieser Liste muss es immer pro Bestellung funktionieren.


Hat jemand eine Idee wie ich das abbilden kann?


Dankeund Grüße

Enrico

Hallo Enrico,


leider ist dein Beispiel nicht so richtig aussagekräftig... ich würde dir aber vllt folgenden Vorschlag unterbreiten:


Probiere doch einmal die Template Funktion setVariable. Weise pro Order einen Wert zu und prüfe dann, ob dieser für die aktuelle Order schon gesetzt wurde.

(https://apps.synesty.com/transformy?action=showTemplateFunctionDocumentation#setVariableTransformy)

Wenn der Eintrag bereits gesetzt wurde, kannst du davon ausgehen, dass die Zeilen keinen Discount erhalten. Ist dieser Eintrag nicht vorhanden, erhält die Zeile den Discount.


Ich hoffe das hilft weiter.


Beste Grüße,


Christian

Hallo Christian,


mit der setVariable Funkion komme ich noch nicht so richtig weiter, kannst du mir da einmal ein Beispiel geben? In so einer Rechnungsliste können mehrere hundert Aufträge sein (kann man natürlich auch auf 100 pro Liste begrenzen).


Ich habe nochmal eine Datei angehängt. Die rot markierten Zeilen sollen im Prinzip leer sein.


VG

Enrico




Hallo Enrico,


du kannst dir eine temporäre Spalte am Ende erstellen in der du über setVariable immer die aktuelle DespatchAdviceNumber speicherst. In den Discount... Spalte vergleichst du dann diesen gespeicherten Wert (getVariable) mit dem aktuellen Wert der Zeile. Wenn sich die DespatchAdviceNumber unterscheidet wird der Wert der Spalte ausgegeben, ansonsten bleibt das Feld leer. Hier ein Beispiel verkürzt auf die ersten beiden Discount Spalten:


![](upload://dfRsis7XGxME9GdR4pxikiZfTeC.png)


Beispiel Code für DiscoutPercentage1:


<#if  getVariable("lastNumber")! != DespatchAdviceNumber>${DiscoutPercentage1}<#else><#-- leer lassen --></#if>




Guten Morgen,


jetzt habe ich es verstanden, funktioniert einwandfrei, vielen Dank!


VG

Enrico