Suchergebnis (Gesucht wurde: csv lookup)
- FlowHeater-Team
-

10 März 2026 17:53
FlowHeater-Team antwortete auf Verwendung des Lookup Heater
Hallo Herr Herbert,
also wenn es sich nur um ein paar zehntausend Datensätze handelt würde ich pro Feld einen eigenen SQL Heater oder aber Lookup Heater verwenden. Oracle bzw. auch andere DBMS-Systeme können das gut skalieren, der Datensatz ist ja bereist eh schon selektiert bzw. im Cache und es muss nur eine andere Spalte bzw. Feld zurückgegeben werden. Natürlich muss hier immer pro Feld ein erneuter Connect zur Oracle Datenbank aufgebaut werden, was bei sehr vielen Daten sich dann schon aufsummiert.
Alternativ dazu könnte das über den SQL Heater durchgeführt werden. Hier müssten Sie aber im SELECT die Felder selbst zu einem Feld zusammenführen, da der SQL Heater nur eine Feld zurückgeben kann. Das ist dann gerade bei nicht Zeichenfolgen mit der Formatierung teilweise nicht ganz so einfach.
z.B. reine Textfelder über: select concat(feld1, ‘#’, feld2, ‘#’, feld3) from ihre_tabelle where pk = ‘$ID$’
Im Anschluss können Sie dann die Rückgabe mit dem String Split Heater und dem Trennzeichen ‚#‘ wieder auseinander splitten.
Sie werden die Daten über einen zusätzlichen Connect zur Oracle Datenbank geholt, sie sparen sich pro CSV-Zeile bei 3 Feldern 2 zusätzliche SQL-Abfragen.
Aus meiner Sicht ist der Kosten/Nutzen Faktor erst bei wirklich großen Datenmengen relevant, ansonsten würde ich immer einfach mehrere SQL Heater oder aber Lookup Heater verwenden.
also wenn es sich nur um ein paar zehntausend Datensätze handelt würde ich pro Feld einen eigenen SQL Heater oder aber Lookup Heater verwenden. Oracle bzw. auch andere DBMS-Systeme können das gut skalieren, der Datensatz ist ja bereist eh schon selektiert bzw. im Cache und es muss nur eine andere Spalte bzw. Feld zurückgegeben werden. Natürlich muss hier immer pro Feld ein erneuter Connect zur Oracle Datenbank aufgebaut werden, was bei sehr vielen Daten sich dann schon aufsummiert.
Alternativ dazu könnte das über den SQL Heater durchgeführt werden. Hier müssten Sie aber im SELECT die Felder selbst zu einem Feld zusammenführen, da der SQL Heater nur eine Feld zurückgeben kann. Das ist dann gerade bei nicht Zeichenfolgen mit der Formatierung teilweise nicht ganz so einfach.
z.B. reine Textfelder über: select concat(feld1, ‘#’, feld2, ‘#’, feld3) from ihre_tabelle where pk = ‘$ID$’
Im Anschluss können Sie dann die Rückgabe mit dem String Split Heater und dem Trennzeichen ‚#‘ wieder auseinander splitten.
Sie werden die Daten über einen zusätzlichen Connect zur Oracle Datenbank geholt, sie sparen sich pro CSV-Zeile bei 3 Feldern 2 zusätzliche SQL-Abfragen.
Aus meiner Sicht ist der Kosten/Nutzen Faktor erst bei wirklich großen Datenmengen relevant, ansonsten würde ich immer einfach mehrere SQL Heater oder aber Lookup Heater verwenden.
- FlowHeater-Team
-

05 Aug. 2025 17:41
FlowHeater-Team antwortete auf Komplexeres JSON abarbeiten
Hallo Herr Bosche,
im Prinzip ist es ganz einfach Sie müssen lediglich die JSON-Datei über separate Verarbeitungsschritte mehrmals lesen und die Daten einzeln abgreifen sowie am Ende wieder zusammenbringen.
Für Ihre JSON-Daten benötigen Sie lediglich 2 Verarbeitungsschritte.
Im Anhang finden Sie ein kleines Beispiel dazu. Weitere Infos wie Sie JSON-Dateien Lesen und Schreiben können finden Sie hier: Beispiele zur JSON zu/nach CSV Konvertierung
im Prinzip ist es ganz einfach Sie müssen lediglich die JSON-Datei über separate Verarbeitungsschritte mehrmals lesen und die Daten einzeln abgreifen sowie am Ende wieder zusammenbringen.
Für Ihre JSON-Daten benötigen Sie lediglich 2 Verarbeitungsschritte.
- Im ersten Verarbeitungsschritt lesen Sie das „dates“ Array indem Sie im
JSON Adapter
im JPATH „/dates“ angeben. Diese Werte fügen Sie an eine
InMemory Adapter
Tabelle an. Damit Sie einen Bezug herstellen können benötigen Sie hier noch einen
AutoID Heater
, der von 1 bis N hochzählt. 1 = der erste Messwert, 2 = der zweite, …
- Im zweiten Verarbeitungsschritt lesen Sie das „data“ Array. Hier benötigen Sie wieder einen AutoID Heater sowie einen String Replace Heater , der Ihnen per Datenlookup das dazugehörige Datum vom „dates“ Array aus der InMemory Adapter Tabelle holt.
Im Anhang finden Sie ein kleines Beispiel dazu. Weitere Infos wie Sie JSON-Dateien Lesen und Schreiben können finden Sie hier: Beispiele zur JSON zu/nach CSV Konvertierung
- FlowHeater-Team
-

25 Nov. 2024 09:28
FlowHeater-Team antwortete auf Lockup Heater und SQL Lookup Heater
Hallo Herr Monschau.
der Lookup Heater ist eine vereinfachte Version vom SQL Heater . Im Lookup Heater geben Sie lediglich die Tabelle, das gewünschte Feld und ggf. eine Einschränkung an was Sie abfragen möchten, hier sind so gut wie keine SQL Kenntnisse erforderlich. Wenn Sie z.B. in MS Access die VBA Funktion DLookup kennen, die funktioniert so ähnlich.
Mit dem SQL Heater können Sie beliebige SQL Statements absetzen, erfordert aber einiges an SQL Kenntnisse.
Wenn Sie auf der READ Seite eine CSV Datei sowie auf der WRITE Seite eine Datenbank haben wohin Sie importieren möchten und Sie benötigen noch weitere Felder für den Import die in dieser Datenbank in anderen Tabellen stehen, dann müssen Sie im SQL bzw. Lookup Heater die WRITE Seite angeben, so wird die Abfrage auf dieser Seite bzw. Datenbank ausgeführt. Wenn Sie in dem Fall die READ Seite auswählen wird es einen Fehler geben, da der TextFile Adapter keine direkten Lookups bzw. den SQL Heater nicht unterstützt.
der Lookup Heater ist eine vereinfachte Version vom SQL Heater . Im Lookup Heater geben Sie lediglich die Tabelle, das gewünschte Feld und ggf. eine Einschränkung an was Sie abfragen möchten, hier sind so gut wie keine SQL Kenntnisse erforderlich. Wenn Sie z.B. in MS Access die VBA Funktion DLookup kennen, die funktioniert so ähnlich.
Mit dem SQL Heater können Sie beliebige SQL Statements absetzen, erfordert aber einiges an SQL Kenntnisse.
Wenn Sie auf der READ Seite eine CSV Datei sowie auf der WRITE Seite eine Datenbank haben wohin Sie importieren möchten und Sie benötigen noch weitere Felder für den Import die in dieser Datenbank in anderen Tabellen stehen, dann müssen Sie im SQL bzw. Lookup Heater die WRITE Seite angeben, so wird die Abfrage auf dieser Seite bzw. Datenbank ausgeführt. Wenn Sie in dem Fall die READ Seite auswählen wird es einen Fehler geben, da der TextFile Adapter keine direkten Lookups bzw. den SQL Heater nicht unterstützt.
- Monschau
25 Nov. 2024 07:55
Lockup Heater und SQL Lookup Heater wurde erstellt von Monschau
Hallo,
ich stelle mich gerade ein wenig dumm an und verstehe die Erklärungen zu diesen beiden Adaptern nicht. Schon alleine "auf der Write-Seite oder auf der Read-Seite ausführen" ist zu hoch für mich.
Nehmen wir an ich habe auf der Readseite ein csv-file mit den Spalten Code und Name und auf der Write-Seite eine Datenbanktabelle ebenfals mit Code und Name und möchte das er in der Datenbanktabelle in allen Datensätzen, bei denen der Code mit dem auf der Writeseite übereinstimmt den Namen füllen, wie mass dann die Definition aussehen?
Lieben Dank im Voraus für die Antworten!
ich stelle mich gerade ein wenig dumm an und verstehe die Erklärungen zu diesen beiden Adaptern nicht. Schon alleine "auf der Write-Seite oder auf der Read-Seite ausführen" ist zu hoch für mich.
Nehmen wir an ich habe auf der Readseite ein csv-file mit den Spalten Code und Name und auf der Write-Seite eine Datenbanktabelle ebenfals mit Code und Name und möchte das er in der Datenbanktabelle in allen Datensätzen, bei denen der Code mit dem auf der Writeseite übereinstimmt den Namen füllen, wie mass dann die Definition aussehen?
Lieben Dank im Voraus für die Antworten!
- FlowHeater-Team
-

31 Jan. 2024 19:17
FlowHeater-Team antwortete auf Variabler Update-Befehl
Hallo Herr Herrmannsfeldt,
Ja, wenn es um normale Tabellen geht wie oben in Tabelle A und B bebildert, geht das auch mit einem CSV Lookup über den String Replace Heater .
Sie benötigen für jede Berechtigung „VK, Lager, …“ einen eigenen String Replace Heater . Set Parameter Heater werden aus meiner Sicht hierzu nicht benötigt.
Hier finden Sie einige Beispiele zum CSV Lookup .
Ja, wenn es um normale Tabellen geht wie oben in Tabelle A und B bebildert, geht das auch mit einem CSV Lookup über den String Replace Heater .
Sie benötigen für jede Berechtigung „VK, Lager, …“ einen eigenen String Replace Heater . Set Parameter Heater werden aus meiner Sicht hierzu nicht benötigt.
Hier finden Sie einige Beispiele zum CSV Lookup .
- FlowHeater-Team
-

05 Jan. 2023 08:26
FlowHeater-Team antwortete auf Verzeichnis Ueberwachen + bereits bearbeitete Dateien ignorieren
Hallo Herr Herbert,
das ist mal eine interessante Anforderung
Das würde über einen Vorgelagerten Verarbeitungsschritt gehen. Hier prüfen Sie mit Hilfe des String Replace Heater und einem CSV Lookup in einer Datei „_verarbeitet.txt“ ob der Name bereits verarbeitet wurde.
Wenn ja wird die Ausführung der Definition über den ersten Stop Heater beendet. Falls die Datei noch nicht bearbeitet wurde wird an die CSV Lookup Datei der Dateiname angefügt und der Verarbeitungsschritt wird nach einen Datensatz über den zweiten Stop Heater beendet. Die Verarbeitung geht dann mit dem nächsten Verarbeitungsschritt weiter. Im Anhang finden Sie ein kleines Beispiel dazu.
PS: Wenn Sie das Beispiel Testen bitte nach jeder Ausführung den Designer wieder schließen. Das Problem ist, das nach der zweiten Ausführung die erste erzeugte Datei angezeigt wird obwohl der zweite Verarbeitungsschritt in diesem Fall nicht ausgeführt wurde.
das ist mal eine interessante Anforderung
Das würde über einen Vorgelagerten Verarbeitungsschritt gehen. Hier prüfen Sie mit Hilfe des String Replace Heater und einem CSV Lookup in einer Datei „_verarbeitet.txt“ ob der Name bereits verarbeitet wurde.
Wenn ja wird die Ausführung der Definition über den ersten Stop Heater beendet. Falls die Datei noch nicht bearbeitet wurde wird an die CSV Lookup Datei der Dateiname angefügt und der Verarbeitungsschritt wird nach einen Datensatz über den zweiten Stop Heater beendet. Die Verarbeitung geht dann mit dem nächsten Verarbeitungsschritt weiter. Im Anhang finden Sie ein kleines Beispiel dazu.
PS: Wenn Sie das Beispiel Testen bitte nach jeder Ausführung den Designer wieder schließen. Das Problem ist, das nach der zweiten Ausführung die erste erzeugte Datei angezeigt wird obwohl der zweite Verarbeitungsschritt in diesem Fall nicht ausgeführt wurde.
- Philip Herbert
02 Jan. 2023 21:26
Verwendung des Lookup Heater wurde erstellt von Philip Herbert
Hallo,
ich habe eine Frage zur Verwendung des Lookup Heater.
Ich habe auf der Eingangsseite eine csv Datei, welche eine Rechnungsnummer als Teil eines Stringfeldes beinhaltet. Diese Rechnungsnummer extrahiere ich per RegEx (?<!\d)\d{6}(?!\d) aus dem entsprechenden CSV Feld, was soweit auch funktioniert.
Auf der Write - Seite habe ich aktuell zwei Adapter. Den In-Memory-Adapter für den späteren CSV Export (2. Verarbeitungschritt), sowie einen nur zu Definition des SQL-Connect für den Lookup verwendeten Oracle Adapter.
Das RegEx Ergebnis versuche ich über den Lookup Heater zu führen um entsprechende zusätzliche Informationen, die aus einer Oracle-Tabelle gelesen/ergänzt werden müssen zu erhalten.
Das scheint aber offenbar der falsche Weg zu sein.
Wie kann diese Anforderung abgebildet werden ?
Danke, Philip Herbert
ich habe eine Frage zur Verwendung des Lookup Heater.
Ich habe auf der Eingangsseite eine csv Datei, welche eine Rechnungsnummer als Teil eines Stringfeldes beinhaltet. Diese Rechnungsnummer extrahiere ich per RegEx (?<!\d)\d{6}(?!\d) aus dem entsprechenden CSV Feld, was soweit auch funktioniert.
Auf der Write - Seite habe ich aktuell zwei Adapter. Den In-Memory-Adapter für den späteren CSV Export (2. Verarbeitungschritt), sowie einen nur zu Definition des SQL-Connect für den Lookup verwendeten Oracle Adapter.
Das RegEx Ergebnis versuche ich über den Lookup Heater zu führen um entsprechende zusätzliche Informationen, die aus einer Oracle-Tabelle gelesen/ergänzt werden müssen zu erhalten.
Das scheint aber offenbar der falsche Weg zu sein.
Wie kann diese Anforderung abgebildet werden ?
Danke, Philip Herbert
- FlowHeater-Team
-

18 Apr. 2022 12:13
FlowHeater-Team antwortete auf Bestandsliste nach Abgängen pflegen
Hallo Ralf,
die Berechnungen könnten etwas kompliziert werden, das hängt davon wie die Datei aussehen bzw. wo die Daten herkommen. Aber im Prinzip bist du schon auf dem richtigen weg.
die Berechnungen könnten etwas kompliziert werden, das hängt davon wie die Datei aussehen bzw. wo die Daten herkommen. Aber im Prinzip bist du schon auf dem richtigen weg.
- Einrichten einer
FlowHeater Server
Aufgabe die den Ordner überwacht und falls eine
CSV
Datei vorhanden ist die Aufgabe an startet.
- Einlesen der
CSV
Datei Bestellungen mit den Bestellungen in eine
InMemory Tabelle
.
- Dann die
InMemory Tabelle
so sortieren, dass du mit dem GroupBy Heater über die Artikel Berechnungen bzgl. der Menge durchführen kannst. Das Ergebnis wird in eine weitere InMemory Tabelle geschrieben.
- Dann einlesen der Bestandsdatei in eine weitere
InMemory Tabelle
. Hierbei aktuallisiert du gleich die Werte mit dem CSV Lookup über den
String Replace Heater
.
- Am Ende liest du die eben geschrieben Bestandsdaten InMemory Tabelle und erstellst die CSV Bestandsliste mit den aktuellen Werten.
- Ralf Birk
17 Apr. 2022 20:28
Bestandsliste nach Abgängen pflegen wurde erstellt von Ralf Birk
Hallo Robert,
ich bin's schon wieder....
Ich habe vor 2 Tagen ein wie ich im Vorfeld gemeint habe "kleines" Projekt begonnen.
Leider habe ich mir da ganze anders vorgestellt und beiße mir gerade die Zähne aus.
Ich habe einen Eingangsordner in den jeden Tag um die gleiche Zeit eine CSV-Datei mit Bestellungen reinkommt.
In einem Anderen Verzeichnis habe ich ebenfalls als CSV eine Bestandsliste die angepasst werden muss.
In der Eingangsdatei ist für den Artikel eine ID, die auch in der Bestandsliste ist. In der Bestandsliste sind nur etwas 100 Artikel.
In der Eingangsdatei kann ein Artikel auf mehrmals abgerufen werden (Aber je Datensatz immer nur einen).
Die Ausgangsdatei ist wie folgt aufgebaut:
ArtikelID;Beschreibung;Anfangsbestand;Bestand Vortag;Entnahme;AktuellerBestand;Datum_Aktueller_Bestand
AT123;Testartikel1;20000;10753;16;10737;17.04.2022
ES456;Testartikel2;15000;8369;59;8310;17.04.2022
usw.
Ich habe mit Groupby und diese in einer Inmemory zu zählen angefangen, habe die Eingangsdatei einen CSV-Lookup probiert... alles hat nicht geklappt. Bestimmt habe ich nur einen kleinen Denkfehler. In einem fast 6 Jahre Post habe ich eine ähnliche Aufgabenstellung gesehen. Da wurde allerdings die Menge in der Ursprungsdatei aktualisiert. Das kann ich nachstellen. Mit der täglich zu aktualisierenden Gesamtbestandsliste geht das leider nicht.
Hab ich einen Denkfehler?
ich bin's schon wieder....
Ich habe vor 2 Tagen ein wie ich im Vorfeld gemeint habe "kleines" Projekt begonnen.
Leider habe ich mir da ganze anders vorgestellt und beiße mir gerade die Zähne aus.
Ich habe einen Eingangsordner in den jeden Tag um die gleiche Zeit eine CSV-Datei mit Bestellungen reinkommt.
In einem Anderen Verzeichnis habe ich ebenfalls als CSV eine Bestandsliste die angepasst werden muss.
In der Eingangsdatei ist für den Artikel eine ID, die auch in der Bestandsliste ist. In der Bestandsliste sind nur etwas 100 Artikel.
In der Eingangsdatei kann ein Artikel auf mehrmals abgerufen werden (Aber je Datensatz immer nur einen).
Die Ausgangsdatei ist wie folgt aufgebaut:
ArtikelID;Beschreibung;Anfangsbestand;Bestand Vortag;Entnahme;AktuellerBestand;Datum_Aktueller_Bestand
AT123;Testartikel1;20000;10753;16;10737;17.04.2022
ES456;Testartikel2;15000;8369;59;8310;17.04.2022
usw.
Ich habe mit Groupby und diese in einer Inmemory zu zählen angefangen, habe die Eingangsdatei einen CSV-Lookup probiert... alles hat nicht geklappt. Bestimmt habe ich nur einen kleinen Denkfehler. In einem fast 6 Jahre Post habe ich eine ähnliche Aufgabenstellung gesehen. Da wurde allerdings die Menge in der Ursprungsdatei aktualisiert. Das kann ich nachstellen. Mit der täglich zu aktualisierenden Gesamtbestandsliste geht das leider nicht.
Hab ich einen Denkfehler?
- FlowHeater-Team
-

06 Apr. 2022 13:49
FlowHeater-Team antwortete auf Flowheater Daten mit csv Datei abgleichen
Hallo Herr Müller,
wenn es nur darum geht anhand einer Spalte zu prüfen ob eine CSV Datensatz in einer anderen CSV Datei vorhanden ist funktioniert das über den bereits oben beschriebenen „ CSV Lookup “ mittels des String Replace Heater .
Weitere Infos dazu finden Sie hier
Im Anhang finden Sie ein kleines Beispiel dazu. Um jetzt noch Ihre 9 Dateien abzugleichen könnte jetzt diese Definition z.B. über das Batch Modul mit der Option /ReadFileName aufgerufen werden.
z.B. FHBatch.exe /ReadFileName Datei_*.csv abgleich.fhd
Hier gibt es natürlich wieder meherere Varianten. Um konkreter zu werden bräuchte ich etwas mehr Input von Ihnen.
wenn es nur darum geht anhand einer Spalte zu prüfen ob eine CSV Datensatz in einer anderen CSV Datei vorhanden ist funktioniert das über den bereits oben beschriebenen „ CSV Lookup “ mittels des String Replace Heater .
Weitere Infos dazu finden Sie hier
Im Anhang finden Sie ein kleines Beispiel dazu. Um jetzt noch Ihre 9 Dateien abzugleichen könnte jetzt diese Definition z.B. über das Batch Modul mit der Option /ReadFileName aufgerufen werden.
z.B. FHBatch.exe /ReadFileName Datei_*.csv abgleich.fhd
Hier gibt es natürlich wieder meherere Varianten. Um konkreter zu werden bräuchte ich etwas mehr Input von Ihnen.
- FlowHeater-Team
-

03 Apr. 2022 11:56
FlowHeater-Team antwortete auf Flowheater Daten mit csv Datei abgleichen
Hallo Herr Müller,
für den Abgleich von CSV Dateien gibt es mehrere Optionen. Welche die Beste ist, kommt daher sehr darauf wie Ihre Daten aussehen bzw. was genau Sie miteinander abgleichen möchten. Wenn Sie etwas genauer beschreiben was Sie durchführen möchten kann ich Ihnen dazu gerne ein kleines Beispiel erstellen. Zusätzlich Beispieldateien wären auch nicht schlecht
Grundsätzlich geht das meistens mit einem CSV Lookup über den String Replace Heater . Hierzu gibt es hier im Forum schon einige Bespiele, evtl. hilft Ihnen das schon weiter. Formunsbeiträge zum CSV Lookup
Dann wurde spezielle für den Abgleich/Anreicherung von Daten (nicht nur CSV) der InMemory Adapter entwickelt. Hier gibt es ein etwas ausführlicheres Beispiel dazu: CSV und Excel Daten über SQLite Datenbank zusammenführen
für den Abgleich von CSV Dateien gibt es mehrere Optionen. Welche die Beste ist, kommt daher sehr darauf wie Ihre Daten aussehen bzw. was genau Sie miteinander abgleichen möchten. Wenn Sie etwas genauer beschreiben was Sie durchführen möchten kann ich Ihnen dazu gerne ein kleines Beispiel erstellen. Zusätzlich Beispieldateien wären auch nicht schlecht
Grundsätzlich geht das meistens mit einem CSV Lookup über den String Replace Heater . Hierzu gibt es hier im Forum schon einige Bespiele, evtl. hilft Ihnen das schon weiter. Formunsbeiträge zum CSV Lookup
Dann wurde spezielle für den Abgleich/Anreicherung von Daten (nicht nur CSV) der InMemory Adapter entwickelt. Hier gibt es ein etwas ausführlicheres Beispiel dazu: CSV und Excel Daten über SQLite Datenbank zusammenführen
- FlowHeater-Team
-

18 Jan. 2021 17:24
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
- FlowHeater-Team
-

21 Sep. 2020 16:30
FlowHeater-Team antwortete auf WHERE auf Write Seite
Hallo Herr Fajkus,
auf der WRITE Seite geht das leider nicht direkt.
Sie können aber über den SQL Heater (oder auch Lookup Heater ) einen Datenbank Lookup durchführen und dann mittels des Rückgabewertes und dem Filter Heater die nicht gewünschten Datensätze, vor der eigentlichen Verarbeitung, herausfiltern.
Ich habe Ihnen im Anhang ein kleines Beispiel angefügt. Hier wird zuerst über den Parameter Heater ein FlowHeater Parameter $ID$ mit dem aktuellen Feldinhalt der READ Seite ( CSV Datei ) gesetzt. Dieser Paramater wird dann im SQL Heater verwendet um die Abfrage mit WHERE Bedingung auf der WRITE Abzusetzen. Der Rückgabewert wird dann in einer IF-THEN-ELSE Bedingung geprüft und falls der Wert „1“ ist wird der Datensatz dann durch den Filter Heater aus der Verarbeitung ausgeschlossen.
Schauen Sie sich mal das Beispiel im Anhang an, ich denke damit sollten Sie zurechtkommen.
auf der WRITE Seite geht das leider nicht direkt.
Sie können aber über den SQL Heater (oder auch Lookup Heater ) einen Datenbank Lookup durchführen und dann mittels des Rückgabewertes und dem Filter Heater die nicht gewünschten Datensätze, vor der eigentlichen Verarbeitung, herausfiltern.
Ich habe Ihnen im Anhang ein kleines Beispiel angefügt. Hier wird zuerst über den Parameter Heater ein FlowHeater Parameter $ID$ mit dem aktuellen Feldinhalt der READ Seite ( CSV Datei ) gesetzt. Dieser Paramater wird dann im SQL Heater verwendet um die Abfrage mit WHERE Bedingung auf der WRITE Abzusetzen. Der Rückgabewert wird dann in einer IF-THEN-ELSE Bedingung geprüft und falls der Wert „1“ ist wird der Datensatz dann durch den Filter Heater aus der Verarbeitung ausgeschlossen.
Schauen Sie sich mal das Beispiel im Anhang an, ich denke damit sollten Sie zurechtkommen.
- FlowHeater-Team
-

14 Feb. 2020 06:18 - 14 Feb. 2020 10:10
FlowHeater-Team antwortete auf Verarbeitungszeit optimieren
Hallo Herr Berto,
Optimierungen gehen immer
Hinweis: Die Verarbeitung läuft immer gleich ab. Es ist egal ob die Definition manuell über den Designer , per Skript über das Batch Modul oder aber komplett automatisiert über den FlowHeater Server ausgeführt wird!
Um eine genau Aussage bzgl. Optimierung treffen zu können, wäre natürlich eine tiefgreifende Analyse Ihrer Daten sowie Anforderung notwendig. Bitte haben Sie Verständnis dafür, dass das nicht Bestandteil des kostenlosen Supportes hier im Forum sein kann.
Aufgrund Ihrer beiden vorherigen Fragen hier hätte ich eine Anmerkung)
Einmal wird das Problem sein, dass Sie in der InMemory Adapter Tabelle keinen eindeutigen Schlüssel definiert haben. Das bremst die Verarbeitung enorm aus! Hier würde ich mal beim Einlesen der Daten einen eindeutigen Schlüssel (über AutoID oder aber eine GUID ) definieren anhand der dann die Updates ausgeführt werden. Die AGS Nummer holen Sie sich dann per SQL Heater oder String Replace Heater aus der Referenztabelle. Beim Einlesen der Referenztabelle wäre es auch Hilfreich wenn hier doppelte Werte per Filter Heater gefiltert werden würden, die werden ja eh wieder überschrieben! So können Sie darüber auch einen eindeutigen Index erstellen und die Verarbeitung sollte deutliche beschleunigt werden. Ich würde sagen die Verarbeitungszeit wird so mindestens halbiert, wenn nicht noch mehr!
Vorgehen kurz zusammengefasst
Optimierungen gehen immer
Hinweis: Die Verarbeitung läuft immer gleich ab. Es ist egal ob die Definition manuell über den Designer , per Skript über das Batch Modul oder aber komplett automatisiert über den FlowHeater Server ausgeführt wird!
Um eine genau Aussage bzgl. Optimierung treffen zu können, wäre natürlich eine tiefgreifende Analyse Ihrer Daten sowie Anforderung notwendig. Bitte haben Sie Verständnis dafür, dass das nicht Bestandteil des kostenlosen Supportes hier im Forum sein kann.
Aufgrund Ihrer beiden vorherigen Fragen hier hätte ich eine Anmerkung)
Einmal wird das Problem sein, dass Sie in der InMemory Adapter Tabelle keinen eindeutigen Schlüssel definiert haben. Das bremst die Verarbeitung enorm aus! Hier würde ich mal beim Einlesen der Daten einen eindeutigen Schlüssel (über AutoID oder aber eine GUID ) definieren anhand der dann die Updates ausgeführt werden. Die AGS Nummer holen Sie sich dann per SQL Heater oder String Replace Heater aus der Referenztabelle. Beim Einlesen der Referenztabelle wäre es auch Hilfreich wenn hier doppelte Werte per Filter Heater gefiltert werden würden, die werden ja eh wieder überschrieben! So können Sie darüber auch einen eindeutigen Index erstellen und die Verarbeitung sollte deutliche beschleunigt werden. Ich würde sagen die Verarbeitungszeit wird so mindestens halbiert, wenn nicht noch mehr!
Vorgehen kurz zusammengefasst
- Einlesen der
CSV
Referenztabelle in eine InMemory Tabelle und filtern per
Filter Heater
auf doppelte Werte. Eindeutigen Schlüssel anlegen über PLZ+Strasse+Hausnummer
- Einlesen der
CSV
Kunden die abgeglichen werden sollen in eine weitere InMemory Tabelle und hier ein weiteres Feld mit einer
AutoID
oder aber besser einer GUID anlegen. Weiter keine Verarbeitung in diesem Verarbeitungsschritt.
- Dann lesen der Kundendaten über die InMemory Tabelle und updaten in die gleiche InMemory Tabelle. PK ist das neue Feld ( AutoID oder aber GUID ). In diesen Verarbeitungsschritt ermitteln Sie mittels des SQL Heater oder String Replace Heater per Lookup die AGS Nummer (ggf. auch weitere Felder) aus der im ersten Verarbeitungsschritt eingelesene Referenztabelle.
- FlowHeater-Team
-

10 Jan. 2020 12:46
FlowHeater-Team antwortete auf InMemory
Hallo Herr Küffer,
Sie müssen schon etwas genauer beschreiben was Sie durchführen möchten, was Sie erwarten oder aber was nicht funktioniert. So kann ich jetzt nur vermuten was Sie durchführen möchten!
Ich nehme an Sie möchten Werte aus der im ersten Verarbeitungsschritt eingelesene CSV Datei über die InMemory Adapter Tabelle ersetzen lassen?
Hierzu benötigt der String Replace Heater natürlich ein Schlüsselfeld anhand dessen dann der Daten Lookup ausgeführt werden kann.
Bei Ihrem Beispiel war hier die Spalte „Text_Deutsch“ mit dem String Replace Heater verbunden. Dieses Feld ist in der in diesem Verarbeitungsschritt gelesenen CSV Datei aber immer Leer, deswegen kann hier auch keine Werteersetzung durchgeführt werden Wenn Sie wie im beigefügten Screenshot hier die erste Spalte verwenden werden Werte ersetzt. Ob das jetzt richtig ist kann ich aufgrund der fehlenden Beschreibung nicht beurteilen.
Sie müssen schon etwas genauer beschreiben was Sie durchführen möchten, was Sie erwarten oder aber was nicht funktioniert. So kann ich jetzt nur vermuten was Sie durchführen möchten!
Ich nehme an Sie möchten Werte aus der im ersten Verarbeitungsschritt eingelesene CSV Datei über die InMemory Adapter Tabelle ersetzen lassen?
Hierzu benötigt der String Replace Heater natürlich ein Schlüsselfeld anhand dessen dann der Daten Lookup ausgeführt werden kann.
Bei Ihrem Beispiel war hier die Spalte „Text_Deutsch“ mit dem String Replace Heater verbunden. Dieses Feld ist in der in diesem Verarbeitungsschritt gelesenen CSV Datei aber immer Leer, deswegen kann hier auch keine Werteersetzung durchgeführt werden Wenn Sie wie im beigefügten Screenshot hier die erste Spalte verwenden werden Werte ersetzt. Ob das jetzt richtig ist kann ich aufgrund der fehlenden Beschreibung nicht beurteilen.
Ladezeit der Seite: 0.313 Sekunden