- Beiträge: 7
Gleiche Werte hochzählen und Gruppenzähler hinzufügen
- Sven Bönnighausen
- Autor
- Offline
- Benutzer
Weniger
Mehr
3 Jahre 10 Monate her - 3 Jahre 10 Monate her #4134
von Sven Bönnighausen
Gleiche Werte hochzählen und Gruppenzähler hinzufügen wurde erstellt von Sven Bönnighausen
Hallo Herr Stark,
ich habe eine Anforderung, die ich momentan leider nicht alleine lösen kann und Unterstützung benötige. Eventuell gibt es ja auch mehrere Lösungsansätze?
Folgende Ausgangssituation:
Eine TXT-Datei mit Messwerten die eine Spalte mit einem String enthält, soll in drei einzelne Spalten auf der Write-Seite aufgeteilt werden.
- Gleiche Werte-Bereiche (zwischen #), die mehr als ein Datensatz haben, sollen immer ab dem Ursprungswert einen Wert hochgezählt werden. Bei nur einem Datensatz wird der Ursprungswert einszueins übernommen. (Spalte1 / Messwert_ID)
- Gleiche Werte-Bereiche (zwischen #), die mehr als ein Datensatz haben, sollen zusätzlich einen gleichen Zähler bekommen, um eine Messwert-Gruppe abbilden zu können. Bei nur einem vorhandenen Datensatz soll die Verarbeitung ignoriert werden. (Spalte2 / Messwert_ID_Group)
- Die dritte Spalte ist einfach nur die Teilstring um die Bezeichnung zu separieren. (Spalte3 / Messwert_ID_Bezeichnung)
Ein entsprechendes Beispiel, habe ich als Datei angefügt.
Ich hoffe Sie können mir bei meinem Problem weiterhelfen, da die Importdatei leider nicht angepasst werden kann, da es sich dabei um einen Standardexport aus der Messsoftware handelt.
VG
Sven Bönnighausen
ich habe eine Anforderung, die ich momentan leider nicht alleine lösen kann und Unterstützung benötige. Eventuell gibt es ja auch mehrere Lösungsansätze?
Folgende Ausgangssituation:
Eine TXT-Datei mit Messwerten die eine Spalte mit einem String enthält, soll in drei einzelne Spalten auf der Write-Seite aufgeteilt werden.
- Gleiche Werte-Bereiche (zwischen #), die mehr als ein Datensatz haben, sollen immer ab dem Ursprungswert einen Wert hochgezählt werden. Bei nur einem Datensatz wird der Ursprungswert einszueins übernommen. (Spalte1 / Messwert_ID)
- Gleiche Werte-Bereiche (zwischen #), die mehr als ein Datensatz haben, sollen zusätzlich einen gleichen Zähler bekommen, um eine Messwert-Gruppe abbilden zu können. Bei nur einem vorhandenen Datensatz soll die Verarbeitung ignoriert werden. (Spalte2 / Messwert_ID_Group)
- Die dritte Spalte ist einfach nur die Teilstring um die Bezeichnung zu separieren. (Spalte3 / Messwert_ID_Bezeichnung)
Ein entsprechendes Beispiel, habe ich als Datei angefügt.
Ich hoffe Sie können mir bei meinem Problem weiterhelfen, da die Importdatei leider nicht angepasst werden kann, da es sich dabei um einen Standardexport aus der Messsoftware handelt.
VG
Sven Bönnighausen
Anhänge:
Letzte Änderung: 3 Jahre 10 Monate her von Sven Bönnighausen. Begründung: Beispieldaten wurden nicht übernommen. Datei angefügt.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
3 Jahre 10 Monate her #4136
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 Gleiche Werte hochzählen und Gruppenzähler hinzufügen
Hallo Herr Bönnighausen,
genau dafür wurde der FlowHeater konzipiert. Ich habe Ihnen im Anhang mal ein kleines Beispiel erstellt. Hier wird davon ausgegangen, dass die Messwerte (IDs) in sortierter Reihenfolge vorliegen. Das Beispiel funktioniert so mit Ihren gelieferten Testdaten .
Das Beispiel verwendet zwei Verarbeitungsschritte. Der erste „Anzahl ermitteln“ ermittelt über den GroupBy Heater zusammen mit dem AutoID Heater lediglich für jeden Messwert die Anzahl und speichert diese in einer InMemory Tabelle „Anzahl“ zwischen. Die Anzahl wird dann im zweiten Verarbeitungsschritt „Verarbeitung“ benötigt um zu entscheiden ob eine Berechnung der „Messwert_ID_Group“ stattfinden soll oder nicht.
Zuerst muss natürlich erst einmal das Feld mit den Inhalten extrahiert werden. Hierzu wird der String Split Heater mit dem Trennzeichen „#“ verwendet.
Anmerkung: Wenn Ihre Eingangsdatei nur diese Werte enthält, könnten Sie im TextFile Adapter als CSV Trennzeichen auch „#“ angeben und Sie hätten die Felder gleich während des Einlesens getrennt!
Dann wird mit Hilfe des String Replace Heater ein Daten Lookup auf die im ersten Verarbeitungsschritt zwischengespeicherte InMemory Tabelle „Anzahl“ an Messwerten durchgeführt. Mit diesem Wert wird über die IF-THEN-ELSE Heater geprüft (Anzahl != 1) ob eine Berechnung bzw. eine Ausgabe für diesen Messwert/Zeile notwendig ist. Die notwendige Berechnung findet über zwei AutoID Heater statt. Hier wurde einmal eingestellt, dass über „gleiche Eingangsparameter“ sowie einmal über „Gruppenwechsel“ gezählt werden soll, siehe Screenshot.
Der String Format Heater wird dazu benötigt um die berechneten Werte sauber als Ganzzahlwert ohne Dezimalstellen zu Formatieren, das könnte auch über die allgemeinen Format Adapter Einstellungen geändert werden.
Es gibt mehrere Möglichkeiten, das umzusetzen. Probieren Sie es mal aus, gerne können wir noch Änderungen vornehmen.
Fertige Definition
AutoID Einstellung zu "Zählen" gleicher Eingangsparameter
AutoID EInstellung zu "Zählen" auf Gruppenwechsel
genau dafür wurde der FlowHeater konzipiert. Ich habe Ihnen im Anhang mal ein kleines Beispiel erstellt. Hier wird davon ausgegangen, dass die Messwerte (IDs) in sortierter Reihenfolge vorliegen. Das Beispiel funktioniert so mit Ihren gelieferten Testdaten .
Das Beispiel verwendet zwei Verarbeitungsschritte. Der erste „Anzahl ermitteln“ ermittelt über den GroupBy Heater zusammen mit dem AutoID Heater lediglich für jeden Messwert die Anzahl und speichert diese in einer InMemory Tabelle „Anzahl“ zwischen. Die Anzahl wird dann im zweiten Verarbeitungsschritt „Verarbeitung“ benötigt um zu entscheiden ob eine Berechnung der „Messwert_ID_Group“ stattfinden soll oder nicht.
Zuerst muss natürlich erst einmal das Feld mit den Inhalten extrahiert werden. Hierzu wird der String Split Heater mit dem Trennzeichen „#“ verwendet.
Anmerkung: Wenn Ihre Eingangsdatei nur diese Werte enthält, könnten Sie im TextFile Adapter als CSV Trennzeichen auch „#“ angeben und Sie hätten die Felder gleich während des Einlesens getrennt!
Dann wird mit Hilfe des String Replace Heater ein Daten Lookup auf die im ersten Verarbeitungsschritt zwischengespeicherte InMemory Tabelle „Anzahl“ an Messwerten durchgeführt. Mit diesem Wert wird über die IF-THEN-ELSE Heater geprüft (Anzahl != 1) ob eine Berechnung bzw. eine Ausgabe für diesen Messwert/Zeile notwendig ist. Die notwendige Berechnung findet über zwei AutoID Heater statt. Hier wurde einmal eingestellt, dass über „gleiche Eingangsparameter“ sowie einmal über „Gruppenwechsel“ gezählt werden soll, siehe Screenshot.
Der String Format Heater wird dazu benötigt um die berechneten Werte sauber als Ganzzahlwert ohne Dezimalstellen zu Formatieren, das könnte auch über die allgemeinen Format Adapter Einstellungen geändert werden.
Es gibt mehrere Möglichkeiten, das umzusetzen. Probieren Sie es mal aus, gerne können wir noch Änderungen vornehmen.
Fertige Definition
AutoID Einstellung zu "Zählen" gleicher Eingangsparameter
AutoID EInstellung zu "Zählen" auf Gruppenwechsel
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.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Sven Bönnighausen
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 7
3 Jahre 10 Monate her #4137
von Sven Bönnighausen
Sven Bönnighausen antwortete auf Gleiche Werte hochzählen und Gruppenzähler hinzufügen
Hallo Herr Stark,
vielen Dank für die schnelle Unterstützung! Das ist genau das, was ich haben wollte! Die Verarbeitung läuft perfekt!
VG
Sven Bönnighausen
vielen Dank für die schnelle Unterstützung! Das ist genau das, was ich haben wollte! Die Verarbeitung läuft perfekt!
VG
Sven Bönnighausen
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.295 Sekunden