FlowHeater Demo Video
 
Der Daten Import / Export Spezialist
 
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
×

Erweiterte Suche

Suche nach Stichwort
×

Suchoptionen

Finde Beiträge von
Ergebnisse sortieren nach
Suche zu einem bestimmten Zeitpunkt
Zu Resultat springen
Suche in Kategorien
×

Suchergebnisse

Gesucht wurde: GroupBy
24 Aug 2010 10:37
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Stoeger,

hierzu benötigen Sie 2 FlowHeater Definitionen. Die erste für die Infozeile, die zweite dann für Ihre eigentlichen Export Daten. Wenn Sie das automatisiert ausführen lassen, können Sie die zweite Definition einfach im Batch Skript (.CMD) vorher ausführen lassen (siehe Beispiel).

Warnung: Spoiler!


In der zweiten Definition geben Sie dann im Configurator für den Excel Adapter an, dass die Daten erst ab der zweiten Zeile (oder wo ganz anders) geschrieben werden sollen.

Sollte die Infozeile statisch sein, können Sie für diese Definition den TestData Adapter verwenden. Schalten Sie hierzu die zu generierenden Datensätze auf 1 ein. Für den Text können Sie entweder ein Feld vom TestData Adapter mit Default Value verwenden oder aber den X-Value Heater in der Defintion.

Soll die Infozeile dynamisch aufgebaut werden, z.B. "Datei enthält xy Export Datensätze" verwenden Sie hierfür die gleichen Einstellungen auf der READ Seite wie für den eigentlichen Excel Export. Damit jetzt nur ein Datensatz geschrieben wird, müssen Sie noch den GroupBy Heater auf die Definition ziehen. Als Input für diesen Heater verwenden Sie einen X-Value Heater mit einem statischen Wert z.B. "1". Hiermit werden alle vorhandenen Datensätze zu einem zusammengefasst. Die Anzahl der Datensätze können Sie nun über den AutoID Heater, mit eingeschalteter Gruppierungsfunktion ermitteln lassen.

Falls Sie mit der Beschreibung nicht klarkommen, kann ich Ihnen hierzu auch ein kleines Beispiel erstellen.
Kategorie: Excel Adapter
20 Aug 2010 17:38
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Berthold,

wenn Sie die zwischen Datenbank (Tabelle) eh benötigen können Sie das Ganze auch direkt über diese Tabelle abwickeln.

Verwenden Sie dann als SQL SELECT Statement

z.B. select * from IhreTabelle order by ArtikelNr

Den GroupBy sowie den MIN bzw. MAX Heater können Sie hierauf genauso anwenden wie bereits beschrieben.

Wegen den doppelten SQL Feldnamen können Sie alternativ auch den SQL SELECT so abändern, dass Sie nicht

Select * from …

Verwenden sondern die SQL Felder inkl. Tabellennamen separat im SQL SELECT angeben.

z.B. select sg_auf_artikel.SG_AUF_ARTIKEL_PK, sg_auf_artikel.Feld2,
sg_auf_vkpreis.SG_AUF_ARTIKEL_PK, sg_auf_vkpreis.Feld2, ... from ...


Zu Ihrer Fehlermeldung) Heißt das PrimaryKey Schlüsselfeld in der Preis Tabelle wirklich auch „SG_AUF_ARTIKEL_PK“? Die Fehlermeldung deutet eigentlich darauf hin, dass das Feld hier nicht so heißt bzw. existiert!
Kategorie: TextFile Adapter
19 Aug 2010 07:54
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Berthold,

den Umweg über die separate Datenbank (Tabelle) können Sie sich sparen, Sie brauchen lediglich nur eine FlowHeater Definition!

Geben Sie dazu auf der READ Seite im SQL Select Statement die zweite Tabelle über einen Join mit an.

z.B. select * from Artikel inner join Preis on artikel.artnr = preise.artnr order by artikel.artnr

das Order By am Ende des SQL Select Statements ist in diesem Fall unbedingt notwendig, da wir im FlowHeater gleich den GroupBy Heater verwenden.

Ziehen Sie nun den GroupBy Heater auf den Designer und verbinden das Artikel Schlüsselfeld mit dem GroupBy Heater. Hiermit werden gleiche Artikel auf der WRITE Seite zu einem Datensatz zusammengefasst. Damit Sie nur den kleinsten bzw. größten Betrag exportieren verwenden Sie für dieses Feld den MIN bzw. MAX Heater mit eingeschalteter Gruppierungsfunktion. Die Gruppierung können Sie über einen Rechtsklick auf den MIN bzw. MAX Heater über den Menüeintrag GroupBy aktivieren.

Schauen Sie sich hierzu auch mal folgendes Beispiel an. Daten gruppieren und summieren
Kategorie: TextFile Adapter
24 Jun 2010 05:27
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Reiner,

Um das abzubilden gibt es 4 Möglichkeiten.

1) Über den Primary Key der Tabelle:
Dein Ansatz mit (Insert + vorhandenen Datensätze ignorieren) war/ist schon richtig gewesen. Ich vermute mal du hast im Primary Key zusätzlich noch einen AutoWert oder ein Datumsfeld mit Sekunden oder so. In diesem Fall ist der gerade bearbeitete Datensatz natürlich unterschiedlich und wird wiederum in die Tabelle geschrieben. Sollte der Datensatz gleich sein, würde die Datenbank bei einem weiteren Insert/Import einen Fehler melden.

Du kannst auf der WRITE Seite im Configurator für den Datenbank Adapter die Felder auswählen anhand der FlowHeater Updates vornimmt bzw. prüft ob der Datensatz bereits existiert. Beim einlesen des Schemas der Tabelle sind das automatisch die Primary Key Felder. Diese können nach dem einlesen geändert werden. Bitte prüfe das nochmal und entferne einfach die Hacken für Primary Key bei den nicht gewünschten Feldern bzw. füge weitere hinzu, das ganze sollte eigentlich klappen.

2) Über eine Gruppierung:
Auf der READ Seite sortierst du die Datenquelle anhand der Felder die für dich dem Kriterium entsprechen dass der Datensatz gleich ist.

select * from deinetabelle order by feld1, feld2, …

Diese Felder ziehst du dann in der Definition alle auf einen GroupBy Heater. Hiermit werden bereits alle gleichen Datensätze auf der READ Seite zu einem Datensatz zusammengefasst, an der WRITE Seite kommt dann lediglich ein SQL Insert an. Dies hat bei großen Datenmengen den Vorteil, dass nicht (massenhaft) unnötig geprüft werden muss ob der Datensatz bereits existiert.

WICHTIG: Für eine Gruppierung im FlowHeater muss die Datenquelle sortiert sein! Sollte die Datenquelle keine Sortierung unterstützen, kannst du dafür auch den Sort Heater verwenden.

3) Über den Lookup Heater:
Hiermit kannst du dir ein (am besten immer gefülltes) Feld aus der WRITE Datenquelle zurückliefern lassen. Als Kriterium musst du wiederum alle Felder, anhand du den Datensatz identifizierst auf den Lookup Heater ziehen und eine SQL Where Klausel bilden. Den so zurückgelieferten Wert prüft du über einen IF-THEN-ELSE auf ungleich NULL, das Ergebnis dieser Prüfung muss dann noch mit dem Filter Heater verbunden werden.

Hiermit werden diejenigen Datensätze gefiltert/übersprungen, bei denen die Bedingung:
Wert vom Lookup Heater ungleich NULL = TRUE bzw. WAHR = Datensatz wird gefiltert.

4) Über den .NET Script Heater:
Ähnliches Vorgehen wie bei 3, nur können hiermit wesentlich komplexere SQL Statements gebildet und abgesetzt werden. Hierzu wird es demnächst ein eigenes Beispiel geben.



Ich würde dir die Lösung 2) vorschlagen. Ist am einfachsten zu implementieren sowie Performance technisch am günstigsten.

Hoffe damit weitergeholfen zu haben!
Kategorie: Anregungen
14 Mai 2010 08:11
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Wolfgang,

dazu benötigst du den Sort Heater, sowie den GroupBy Heater.
Ziehe beide Heater auf den Designer. Verbinde die Felder KDNR und
Datum mit dem Sort Heater und das Feld KDNR ein weiters mal mit dem
GroupBy Heater, das war´s auch schon.

Achtung: Der Sort Heater funktioniert im FlowHeater nicht im
Massendaten Modus! Solltest du größere Datenmengen verarbeiten wollen,
müsstest du die Sortierung über die Datenbank durchführen. Dazu musst
du dann im Configurator für den ODBC Adapter an den Select lediglich
einen „Order by KDNR, Datum“ am Ende anhängen.
Kategorie: ODBC Adapter
91 - 95 von 95 Ergebnissen angezeigt.
Ladezeit der Seite: 0.072 Sekunden

andere Sprachen

en

FlowHeater Home

de en

Impressum/Kontakt

Datenschutz

Copyright © 2009-2021 by FlowHeater GmbH.
Alle Rechte vorbehalten.

Follow us on

twitter  facebook

YouTube

 de en