Neues Thema starten

Anzahl Aufträge Anhand der Order-ID ermitteln

Hallo Support, 

in meinem Spreadsheet "Auftrag" ist jede Position eine Zeile, manche Aufträge (Order_ID) haben mehrere Positionen. 

Ich möchte gerne die Anzahl an Bestellungen ermitteln (Anzahl verschiedener Order_IDs) und diesen Wert im nächsten Step "Email Send" im Betreff anzeigen:
Betreff sieht dann z.Bsp. so aus:

01.01.2017 Aufträge DE | Anzahl Aufträge: 23

Keine Ahnung wie ich da dran gehe. Vielen Dank vorab.

Mit herzlichem Gruß, 

Patric 



Hallo Patric,


schau mal in deinem SpreadsheetMapper gibt es oben einen Button "Einstellungen" dort kannst du die Funktion "Nach Spaltennamen Gruppieren" auswählen, und gibst in deinem Fall die Spalte Order_ID an.

Jetzt werden alle Zeilen mit der selben Order_ID in eine zusammengefasst.
Nun kannst du in einer anderen Spalte auf den "Funktionen" Link klicken. Dort hast du verschiedene Auswahlmöglichkeiten. Unter "Aggregatfunktionen hast du mehrere Ausgaben, die du bei zusammengefassten Spreadsheets anwenden kannst. U.a. auch Einträge zählen, was dir die Anzahl der zusammengefassten Zeilen ausgibt.

ok, der erste Teil hat geklappt. Ich hab dann eine neue Spalte "NoOfOrders" eingefügt, Aggregatsfunktion "Zeilen zählen" gewählt. Das System gibt dann für jede Zeile "1" aus. Wenn es jetzt die Funktion gibt, hiervon die Summe abzurufen, damit ich diese als Wert für EmailSend in den Betreff bekomme, muss ich vorher aber wieder die Einstellungen zurücknehmen, damit in der csv alle Zeilen erscheinen. Das geht nicht, oder? Ich kann mit im Step EmailSend ja nicht auf zwei verschiedene Spreadsheets beziehen. Sorry, bin verwirrt ;)

Was genau möchten Sie denn genau machen?

Möchten Sie die Anzahl aller Zeilen pro Order_ID so funktioniert das wie beschrieben.

Jetzt möchten Sie die Anzahl der Zeilen des Spreadsheets kompletten Spreadsheets (ohne Aggregatfunktion) noch in einen Email Betreff schreiben? 

Hallo Patric, ich habe deine Antwort mal in das Forum verschoben: 


Hi Florian, 


also das Spreadsheet "Auftrag" wird gesplittet in Aufträge aus DE und "nicht DE" und an meinen Logistikpartner als CSV versendet. Der Betreff dieser Emails soll idealerweise so aussehen:


01.01.17 ESS Aufträge DE | Anzahl: XX


bzw. 


01.01.17 ESS Aufträge EU | Anzahl: XX


Dafür möchte ich die Anzahl der Aufträge je Spreadsheet/CSV ermitteln. 


Bisher habe ich die folgende Formel, aber der 2. Teil stimmt eben nicht: 


${prop_actualruntime?string("dd.MM.yyyy ")} ESS Aufträge DE | ${outputNumWrittenRows@SpreadsheetCSVWriter_15!}


Wie kann ich das lösen?


Vielen Dank!


Mit herzlichem Gruß, 


Patric

Hallo Patric, 


du kannst einen weiteren SpreadsheetMapper verwenden und nach einer Hilfsspalte mit festen Wert gruppieren. In der Order_ID Spalte kannst du dann die Aggregatfunktion "Eindeutige Werte zählen (nicht-leer)" verwenden. Das Ergebnis ist dann ein Spreadsheet mit einer Zeile. In der Order_ID Spalte steht die Anzahl der Orders (Anzahl unterschiedliche Order IDs). Den Wert kannst du im Betreff  


${prop_actualruntime?string("dd.MM.yyyy ")} ESS Aufträge DE | ${spreadsheet@SpreadsheetMapper_N.firstRow("Order_ID")!}


einfügen. Den Outputkey spreadsheet@SpreadsheetMapper_N musst du noch durch den deines Hilfspreadsheets ersetzen. 



Viele Grüße,

Ihr Synesty Support

Hallo Patric,


wenn ich Sie richtig verstehe, so wollen Sie nun nur noch die Anzahl der Zeilen, die das anhand der Order_ID zusammengefasste Spreadsheet besitzt zählen und diese Zahl dann in dem Email Betreff angeben.
Ich würde das mittels TextHTMLWriter - Step verwirklichen.
Mit diesen Skript zählen sie die Anzahl der Zeilen des entsprechenden Spreadsheets und geben sie aus.Diese Ausgabe lässt sich wiederum in der Betreff Zeile verwenden:

 

<#assign counter = 0>

<#-- Hier den Ausdruck "spreadsheet@SpreadsheetMapper_4" durch ihr Spreadsheet austauschen-->
<#list spreadsheet@SpreadsheetMapper_4.getRows() as row>
        <#--Variable wird für jede Zeile hochgezählt-->
	<#assign counter = counter + 1 >	
</#list>
  <#-- Ausgabe der Zählvariable (Anzahl Zeilen)-->
  ${counter}

 

Nun nur noch im EmailStep beim Betreff auf das Plus klicken, den TextHTML Writer raussuchen, fertig.
Sie können diese Ausgabe im Betreff mit einem beliebigen Freitext kombinieren


Gruß

Florian


Anmelden um einen Kommentar zu veröffentlichen