- Beiträge: 3
Zusätzliche Zeile erstellen + Beträge Summieren - InMemory Tabellen
- Frank Rösler
- Autor
- Offline
- Benutzer
Weniger
Mehr
5 Jahre 11 Monate her #3579
von Frank Rösler
Zusätzliche Zeile erstellen + Beträge Summieren - InMemory Tabellen wurde erstellt von Frank Rösler
Hallo,
ich habe folgendes Problem und komme leider nicht weiter.
Wir haben eine csv / Tab getrennte Datei
Kundennummer Artikelnummer Preis Transportkosten
302458 123456 2,95 2,32
302458 564877 3,65 1,45
Es handelt sich um die gleiche Kundennummer.
Er soll jetzt wenn die Kundennummer immer gleich ist eine neue Zeile drunter machen wo die Transportkosten addiert sind und wenn er dann wie jetzt 3,77 erhält soll er die Artikelnummer 0 schreiben. Wenn er bei den Transportkosten auf 4,95 kommt soll er bei der Artikelnummer die 06 schreiben usw. Aber auch immer die Kundennummer mit schreiben
So soll es aussehen
Kundennummer Artikelnummer Preis Transportkosten
302458 123456 2,95 2,32
302458 564877 3,65 1,45
302458 0 3,77
Schöne Grüße
Frank
ich habe folgendes Problem und komme leider nicht weiter.
Wir haben eine csv / Tab getrennte Datei
Kundennummer Artikelnummer Preis Transportkosten
302458 123456 2,95 2,32
302458 564877 3,65 1,45
Es handelt sich um die gleiche Kundennummer.
Er soll jetzt wenn die Kundennummer immer gleich ist eine neue Zeile drunter machen wo die Transportkosten addiert sind und wenn er dann wie jetzt 3,77 erhält soll er die Artikelnummer 0 schreiben. Wenn er bei den Transportkosten auf 4,95 kommt soll er bei der Artikelnummer die 06 schreiben usw. Aber auch immer die Kundennummer mit schreiben
So soll es aussehen
Kundennummer Artikelnummer Preis Transportkosten
302458 123456 2,95 2,32
302458 564877 3,65 1,45
302458 0 3,77
Schöne Grüße
Frank
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
5 Jahre 11 Monate her #3580
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Zusätzliche Zeile erstellen + Beträge Summieren - InMemory Tabellen
Hallo Herr Rösler,
mit der aktuellen Version geht das leider nur schwer bis gar nicht. Allerdings wäre es mit der aktuellen Beta Version, Download Links siehe unten, relativ einfach möglich. Die aktuelle Beta Version bietet die Möglichkeit über einen neuen InMemory Adapter Daten im Hauptspeicher anzureichern und anschließend wieder auszugeben.
Für Ihren Fall müssen die Daten im erstenVerarbeitungsschritt erst einmal in eine InMemory Tabelle eingelesen werden. Hier wird ein zusätzliches Feld „Sort“ über einen AutoID Heater gefüllt. Dieses Feld wird zum Schluss dazu verwendet die Daten anhand der gleichen Reihenfolge wieder auszugeben. Bitte beachten Sie, dass der AutoID Heater mit der Schrittweite 10 konfiguriert wurde!
Im zweiten Verarbeitungsschritt wird die Summen derTransportkosten anhand der Kundennummer berechnet. Hier wird ein weiteres Feld „Anzahl“ in der InMemory Tabelle gefüllt. In diesem Feld wird die Anzahl der Datensätze festgehalten die pro Gruppierung vorhanden sind. Das Feld wird benötigt um die Vorgabe zu erfüllen, dass die Summenzeile nur bei mehreren gleichen ausgegeben werden soll. Zusätzlich werden in dem Schritt die Transportkosten berechnet. Hierzu wird der GroupBy Heater sowie Additons Heater mit eingeschalteter Gruppierung verwendet. In diesem Schritt wird im Prinzip pro Kundennummer ein weiterer Datensatz an die InMemory Tabelle hinzugefügt. Damit dieser Datensatz bei der Ausgabe dann auch an der richtigen Stelle steht wird das Feld „Sort“ mit dem letzten Wert der Gruppe + 1 belegt.
Bitte beachten, dieser Schritt bzw. Berechnung greift auchauf die Ursprüngliche CSV Datei zu. Nicht von der gleichen InMemory Tabelle lesen und auf der anderen Seite in die gleiche Tabelle schreiben!
Im letzten Schritt wird die InMemory Tabelle über das Feld „Sort“sortiert ausgegeben. Hier wurde zusätzliche ein Filter eingebaut, der anhand des Feldes Anzahl die Summenzeile nur ausgibt falls mehr als eine Datensatz pro Gruppe vorhanden ist.
Schauen Sie sich das beiliegende Beispiel mal. Benötigt dieaktuelle Beta Version, siehe Download Links.
Hinweis: Die Anzeige der InMemory Tabelle nach jedem Schritt zeigt derzeit nur die aktuell verarbeiteten Datensätze an und nicht den
kompletten Inhalt! Daran wird noch gearbeitet
Sortierte Ausgabe über den InMemory Adapter
BetaVersion Download FlowHeaterBeta 32 Bit FlowHeaterBeta 64 Bit FlowHeaterServer Beta
mit der aktuellen Version geht das leider nur schwer bis gar nicht. Allerdings wäre es mit der aktuellen Beta Version, Download Links siehe unten, relativ einfach möglich. Die aktuelle Beta Version bietet die Möglichkeit über einen neuen InMemory Adapter Daten im Hauptspeicher anzureichern und anschließend wieder auszugeben.
Für Ihren Fall müssen die Daten im erstenVerarbeitungsschritt erst einmal in eine InMemory Tabelle eingelesen werden. Hier wird ein zusätzliches Feld „Sort“ über einen AutoID Heater gefüllt. Dieses Feld wird zum Schluss dazu verwendet die Daten anhand der gleichen Reihenfolge wieder auszugeben. Bitte beachten Sie, dass der AutoID Heater mit der Schrittweite 10 konfiguriert wurde!
Im zweiten Verarbeitungsschritt wird die Summen derTransportkosten anhand der Kundennummer berechnet. Hier wird ein weiteres Feld „Anzahl“ in der InMemory Tabelle gefüllt. In diesem Feld wird die Anzahl der Datensätze festgehalten die pro Gruppierung vorhanden sind. Das Feld wird benötigt um die Vorgabe zu erfüllen, dass die Summenzeile nur bei mehreren gleichen ausgegeben werden soll. Zusätzlich werden in dem Schritt die Transportkosten berechnet. Hierzu wird der GroupBy Heater sowie Additons Heater mit eingeschalteter Gruppierung verwendet. In diesem Schritt wird im Prinzip pro Kundennummer ein weiterer Datensatz an die InMemory Tabelle hinzugefügt. Damit dieser Datensatz bei der Ausgabe dann auch an der richtigen Stelle steht wird das Feld „Sort“ mit dem letzten Wert der Gruppe + 1 belegt.
Bitte beachten, dieser Schritt bzw. Berechnung greift auchauf die Ursprüngliche CSV Datei zu. Nicht von der gleichen InMemory Tabelle lesen und auf der anderen Seite in die gleiche Tabelle schreiben!
Im letzten Schritt wird die InMemory Tabelle über das Feld „Sort“sortiert ausgegeben. Hier wurde zusätzliche ein Filter eingebaut, der anhand des Feldes Anzahl die Summenzeile nur ausgibt falls mehr als eine Datensatz pro Gruppe vorhanden ist.
Schauen Sie sich das beiliegende Beispiel mal. Benötigt dieaktuelle Beta Version, siehe Download Links.
Hinweis: Die Anzeige der InMemory Tabelle nach jedem Schritt zeigt derzeit nur die aktuell verarbeiteten Datensätze an und nicht den
kompletten Inhalt! Daran wird noch gearbeitet
Sortierte Ausgabe über den InMemory Adapter
BetaVersion Download FlowHeaterBeta 32 Bit FlowHeaterBeta 64 Bit FlowHeaterServer Beta
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Frank Rösler
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 3
5 Jahre 11 Monate her #3581
von Frank Rösler
Frank Rösler antwortete auf Zusätzliche Zeile erstellen + Beträge Summieren - InMemory Tabellen
Hallo Herr Stark,
Wenn er jetzt wie in der Datei 3,77 findet soll er 06 in dem Feld Artikelnummer schreiben. Wir haben mehrere Versandarten. Und immer wenn er den richtigen Betrag finden soll er auch die richtige Artikelnummer schreiben.
3,77 = 06
4,68 = 0
12,95 = 04
1,45 = 02
usw.
Und
Er soll auch wenn die Kundennummer nur einmal vor kommt eine zusätzliche Zeile schreiben genau so wie bei den anderen. Summieren müßte er ja die Transportkosten nicht mehr nur noch die 1,45 in der Zeile mit der Artikelnummer 02 ausgeben.
Wenn er jetzt wie in der Datei 3,77 findet soll er 06 in dem Feld Artikelnummer schreiben. Wir haben mehrere Versandarten. Und immer wenn er den richtigen Betrag finden soll er auch die richtige Artikelnummer schreiben.
3,77 = 06
4,68 = 0
12,95 = 04
1,45 = 02
usw.
Und
Er soll auch wenn die Kundennummer nur einmal vor kommt eine zusätzliche Zeile schreiben genau so wie bei den anderen. Summieren müßte er ja die Transportkosten nicht mehr nur noch die 1,45 in der Zeile mit der Artikelnummer 02 ausgeben.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
5 Jahre 11 Monate her #3582
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Zusätzliche Zeile erstellen + Beträge Summieren - InMemory Tabellen
Hallo Herr Rösler,
ich habe die Definition ein wenig angepasst. Einmal unterstützt nun die neu Beta 4.1.3.2 Beta7 das gleichzeitige lesen und schreiben von der gleichen InMemory Tabelle. Hier wird nun im zweiten Schritt nicht mehr von der CSV Datei gelesen, sondern direkt von der bereits eingelesenen InMemory Tabelle.
Die Artikelnummer für die Transportkosten wird ebenfalls im zweiten Schritt über einen CSV Lookup mittels des String Replace Heater realisiert, siehe Screenshot. Hier wird im Prinzip nach dem ersten Wert in der Liste gesucht und falls gefunden der zweite Wert verwendet. Falls kein passender Wert gefunden wird, wird der definierte Standardwert zurückgegeben.
Zum Schluss wurde im letzten Verarbeitungsschritt der Filter entfernt, so dass auch die Summenzeile ausgegeben wird wenn die Kundennummer nur einmal vorkommt.
ich habe die Definition ein wenig angepasst. Einmal unterstützt nun die neu Beta 4.1.3.2 Beta7 das gleichzeitige lesen und schreiben von der gleichen InMemory Tabelle. Hier wird nun im zweiten Schritt nicht mehr von der CSV Datei gelesen, sondern direkt von der bereits eingelesenen InMemory Tabelle.
Die Artikelnummer für die Transportkosten wird ebenfalls im zweiten Schritt über einen CSV Lookup mittels des String Replace Heater realisiert, siehe Screenshot. Hier wird im Prinzip nach dem ersten Wert in der Liste gesucht und falls gefunden der zweite Wert verwendet. Falls kein passender Wert gefunden wird, wird der definierte Standardwert zurückgegeben.
Zum Schluss wurde im letzten Verarbeitungsschritt der Filter entfernt, so dass auch die Summenzeile ausgegeben wird wenn die Kundennummer nur einmal vorkommt.
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.304 Sekunden