FlowHeater Demo Video
 
FlowHeater - The Data Import / Export Specialist
 
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
×

Suchergebnis

Gesucht wurde: string append heater
16 Aug 2019 05:18
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Herrmannsfeldt,

Bin mir nicht sicher ob ich das richtig verstanden habe, habe mal ein einfaches Beispiel dazu erstellt, siehe Anlage.

Im Beispiel wird im ersten Verarbeitungsschritt die CSV Datei in eine InMemory Adapter Tabelle eingelesen.

Info: Wenn Sie den SQL Server Export gleich richtig sortieren kann der erste Verarbeitungsschritt sowie der Umweg über die InMemory Adapter Tabelle weggelassen werden!

Im zweiten Verarbeitungsschritt wird dann die interne InMemory Adapter Tabelle sortiert anhand der Felder Artikelnummer und ListenID ausgegeben sowie über den GroupBy Heater wird dann die Verarbeitung anhand des Feldes Artikelnummer gruppiert. Jetzt können Sie die Feldinhalte anhand der Gruppierung über den String Append Heater zusammenfassen, als Trennzeichen verwenden Sie das gleiche Trennzeichen das für die CSV Datei verwendet haben.

Achtung: Für den String Append Heater muss die Gruppierung aktiviert werden, siehe Screenshot.

Auf der WRITE Seite geben Sie dann dieses gruppierte Feld in einem Feld aus. Wenn Sie Feldnamen mit ausgeben möchten, muss hierbei der Feldname für dieses Feld „PreisListe_1;PreisListe_2;PreisListe_3;PreisListe_4;PreisListe_5;… bis zum Maximum das Sie erwarten“ lauten!



Dateianhang:

Dateiname: gruppierun...8-16.zip
Dateigröße:196 KB
Kategorie: Excel Adapter
07 Aug 2019 08:49
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
16 Jun 2019 09:59
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr May,

hier fehlt wohl noch eine Option im String Append Heater . In der aktuellen Beta Version wurde im String Append Heater eine weitere Option „Bereits vorhandene Werte ignorieren“ hinzugefügt. Wenn Sie diese in Ihrer Definition aktivieren sollte das Ergebnis so sein wie Sie es erwarten, siehe Screenshot.



Beta Version Download
FlowHeater Beta 32 Bit
FlowHeater Beta 64 Bit
FlowHeater Server Beta
Kategorie: Allgemein
14 Feb 2019 19:05
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo HerrStelling,

ich gehe mal davon aus, dass Sie weiter keine Änderungen an den CSV Spalten bzw. den Inhalten vornehmen möchten? Der einfachste Fall mehrere CSV Zeilen, anhand eines Kennzeichens, zu einer Ausgabezeile zusammenzufassen ist folgender Trick.

Sie lesen auf der READ Seite die CSV Datei als ganze Zeile ein und ignorieren die einzelnen Spalten. Hierzu wählen Sie im TextFile Adapter , auf dem Reiter „Trennzeichen“ ein Spaltentrennzeichen, das in der Textdatei so nicht vorkommt. Im Beispiel, siehe Anhang, habe ich die Zeichen „###“ in Kombination verwendet. So liest der TextFile Adapter jede Zeile als eine Spalte ein.

Jetzt benötigen Sie den String Split Heater um die Zeile wieder in separate Spalten aufzuteilen um das Kriterium, anhand die Zeilen zusammengefasst werden sollen herauszufiltern. Im Beispiel ist das die zweite Spalte. Dieser Wert wandert zum GroupBy Heater , der alle gleichen Werte (der zweiten Spalte) zu einer Ausgabezeile zusammenfasst.

Zum Schluss benötigen Sie noch den String Append Heater , mit Auswirkung auf GroupBy und schon sind mehrere CSV Zeilen der READ Seite zu einer CSV Zeile WRITE Seite zusammengefasst. Im String Append Heater müssen Sie noch das normale CSV Trennzeichen angeben, das verwendet werden soll um die Zeilen miteinander zu verknüpfen.

Müssen die einzelnen CSV Spalten vorher noch bearbeitet / angepasst werden geht das natürlich auch, ist nur ein wenig komplizierter.



Dateianhang:

Dateiname: csv-zeilen...eren.zip
Dateigröße:2 KB
Kategorie: TextFile Adapter
05 Jan 2019 12:39
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Schauerte,

das können Sie mit dem AutoID Heater durchführen.  Hier müssen Sie lediglich die Option „Gleiche Eingangsparameter -> Alle gleichen Werte“ aktivieren, das war´s.

Um den aktuell gezählten Wert an die Artikelnummer zu hängenbenötigen Sie noch den String Append Heater . Zusätzlich wurde hier noch der String Format Heater verwendet um bei Werten ab 1000 das Tausendertrennzeichen zu unterdrücken!

Im Anhang finden Sie ein kleines Beispiel dazu.



Dateianhang:

Dateiname: gleiche-we...hlen.zip
Dateigröße:2 KB
Kategorie: MySQL Adapter
29 Dez 2018 09:48
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Schauerte,

am einfachsten wird es sein, wenn Sie dazu ein kleines Skript für den .NET Script Heater verwenden. Ich habe Ihnen das Skript soweit vorbereitet, siehe unten. Sie müssen im Skript lediglich die maximale Länge pro Spalte/Feld eintragen. Anhand dieser Angabe fügt das Skript in die übergebene Zeichenfolge jeweils ein Trennzeichen "-#-" an der Position der Teilzeichenkette ein die die Maximale Länge wiederspiegelt. Falls das verwendete Trennzeichen "-#-" bei Ihnen in den Zeichenfolgen vorkommen kann, ggf. ein anderes Trennzeichen verwenden.

Das Skript bzw. der .NET Script Heater erfordert einen Eingabeparameter mit der Zeichenfolge die dann mit dem Trennzeichen präpariert werden soll. Hierzu verwenden Sie den String Append Heater um die 5 ODBC Felder miteinander zu einer Zeichenfolge zu verbinden. Als Trennzeichen verwenden Sie hier ein Leerzeichen.

Um die so präparierte Zeichenfolge nun auf die 3 Spalten/Felder der MySQL WRITE Seite aufzuteilen benötigen Sie 3x den String Split Heater , der die Zeichenfolgen anhand des Trennzeichen „-#-“ in drei Teile aufteilt. Hinweis: Wenn Sie die Option „Warnung generieren, wenn Rückgabespalte größer als verfügbare Spalten“ deaktivieren, wird keine Warnung ausgegeben falls mal eine kürzere Zeichenfolge vorhanden sein sollte.

Im Anhang finden Sie ein kleines Beispiel dazu.

Dateianhang:

Dateiname: skript-str...plit.zip
Dateigröße:3 KB
Kategorie: MySQL Adapter
30 Okt 2018 06:02
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Seiffert,

Sie müssen im zweiten String Append Heater (siehe Screenshot und Markierung) die GroupBy Option aktivieren. So wird hinter dem Heater die gescheifte Klammer angezeigt.

PS: Anscheinend stimmt Ihre Auswahl der Codepage nicht, Umlaute werden nicht richtig angezeigt! Versuchen Sie mal auf der READ Seite UTF8 oder aber CP 1252 zu verwenden.

Kategorie: TextFile Adapter
29 Okt 2018 06:12
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Seiffert,

das können Sie über einen weiteren String Append Heater , der zuerst die 2 Spalten der Zeile zusammenfasst. Der zweite String Append Heater fasst dann die Werte der gruppierten Zeilen zusammen, siehe Beispiel im Anhang.



Dateianhang:

Dateiname: csv-lookup...0-29.zip
Dateigröße:2 KB
Kategorie: TextFile Adapter
26 Okt 2018 05:24
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Seiffert,

Sie müssen die CSV Lookup Datei bereits so erzeugen, dass hier die zusammengefasst werden. Das können Sie über den GroupBy Heater zusammen mit dem String Append Heater durchführen. Im Anhang finden Sie ein kleines Beispiel dazu.

Hinweis: Die Datenquelle muss dazu sortiert sein! Evtl. vorher mit dem Sort Heater sortieren.

Dateianhang:

Dateiname: csv-lookup...ssen.zip
Dateigröße:2 KB
Kategorie: TextFile Adapter
22 Okt 2018 08:37
  • Andre Seiffert
  • Andre Seifferts Avatar
Ich habe eine Datanorm dessen Spalten mit verschiedenen Sätzen markiert sind. Nicht zu berücksichtigende Sätze habe ich mit einem If-Then-Else Heater und einem Filter ausgeblendet. Ich habe folgende Ausgangslage:

Spaltenüberschriften Write-Seite: Satz;HAN;Kurztext1;Kurztext2;Preiseinheit;Mengeneinheit;Preis;Preistyp;Rabattgruppe;Langtext;Langtext_Satz;EAN

Zeile 1 Read Seite: A;0120708;Artikel 1 kurztext1; Artikel 1 kurztext2;0;ST;651,00;Bruttopreis;;;;
Zeile 2 Read Seite: B;0120708;;;0;0;40.280.630.015,32;0;;;;4123463001532

Von der Spalte B möchte ich jetzt das Feld EAN (also hier den Wert 4123463001532) in die 1 Zeile pro Artikel geschrieben haben. Leider erstellt der FlowHeater derzeit eine 2. Zeile für den identischen Artikel. Vermutlich muss der String Append Heater verwendet werden. Das bekomme ich leider nicht hin.

Wer kann helfen?
Kategorie: TextFile Adapter
02 Jul 2018 18:04
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Seiffert,

Um Bedingungen mit dem IF-THEN-ELSE Heater mit zwei Eingangsparameter vergleichen zu können müssen Sie einen kleinen Workaround anwenden.

Am einfachsten geht es wenn Sie die zwei Parameter vorher über einen String Append Heater vorher miteinander kopieren und dann in der Bedingung den kombinierten Wert vergleichen.

z.B. =99991231#net_list (hier wurde zusätzlich im String Append Heater das Zeichen # als Trennzeichen verwendet.

So geht es eigentlich relativ einfach. Im Anhang habe ich Ihnen ein kleines Beispiel basierend auf Ihre beigefügte XML Datei erstellt.

Allerdings gibt es hier ein kleines Problem. Sie wissen nicht wie viele Produktpreis Knoten in der XML Datei vorhanden sind. Im Beispiel habe ich jetzt mal die 6 Produktpreis verglichen die im ersten Artikel vorhanden sind. Würden jetzt 7 Preise zu einem Artikel geliefert würde der 7. (Preis)knoten nicht in die Verarbeitung mit einfließen, da der FlowHeater momentan XML Unterknoten nicht dynamisch lesen kann! Das sind derzeit leider die Grenzen bei der FlowHeater XML Verarbeitung auf der READ Seite.

Dateianhang:

Dateiname: xml-read.zip
Dateigröße:39 KB
Kategorie: Allgemein
15 Jan 2018 18:51
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Kober,

es gibt natürlich eine schlanke Lösung :) Der FlowHeater kann Problemlos CSV Daten gruppieren und den über mehrere Felder gruppierten Inhalt, getrennt durch Zeilenumbrüche, in ein separates Excel Feld Importieren. Im Anhang finden Sie ein kleines Beispiel.

Vorgehensweise
Sie benötigen dazu einen Sort Heater , nur falls die CSV Datenquelle nicht sortiert vorliegt.

Dann wird noch der GroupBy Heater benötigt um alle CSV Zeilen für die Excel Ausgabe zusammenzufassen. Im Beispiel verwende ich die CSV Felder „Nutzer“ und „ID“ für die Gruppierung der CSV Eingabedatei. Hinweis: Der GroupBy Heater benötigt für eine sortierte Datenquelle!

Feldmapping
Das Feld Nutzer wird 1:1 mit dem Excel Adapter verbunden. Um nun alle Kommentare zum Nutzer in ein separates Feld pro Nutzer zu schreiben benötigen zusätzlich einen String Replace Heater mit aktivierter „GroupBy“ Option. Hinweis: Die Option kann über das Kontextmenü des Heaters aktiviert werden!

Als Trennzeichen muss hier eine Zeichenkombination verwendet werden, die im normalen Text nicht vorkommt. Im Beispiel wurde „###“ verwendet. Hiermit werden alle Kommentare zu einem Nutzer zu einer einzeiligen Zeichenkette, getrennt durch „###“ zusammengefügt.
z.B. Kommentar 1###Kommentar 2###Kommentar …

Zum Schluss ersetzen wir dann noch mittels des String Replace Heater die temporären Trennzeichen „###“ jeweils durch einen Zeilenumbruch.



Dateianhang:

Dateiname: csv-excel-...eren.zip
Dateigröße:2 KB
Kategorie: Allgemein
13 Jan 2018 11:43
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Schanzel,

im Anhang finden Sie ein kleines Beispiel wie Sie das mit dem TextFile Adapter umsetzen können. Das Datum wird hier über mehrere Heater dynamisch gebildet.

Zuerst wird der Monat (1, 2, …) anhand des Namens (Januar, Februar, …) über eine CSV Ersetzungsliste mit Hilfe des String Replace Heater ermittelt. Anschließend wird er Wert über den String Append Heater zusammen mit der Jahreszahl und einem Statischen Wert ( X-Value Heater ) zu einem Datum zusammengefügt.

Dateianhang:

Dateiname: beispiel.zip
Dateigröße:2 KB
Kategorie: TextFile Adapter
08 Jul 2017 11:06
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Matthias,

wenn deine Datenbasis einen Auto Inkrement Zähler oder aber eine Datumsfeld mit dem Erzeugungsdatum des Datensatzes hat ist das relativ einfach über FlowHeater Parameter und einem dynamischen SQL Statement auf der READ Seite umzusetzen.

z.B. SELECT * FROM tabellen_name WHERE ID > $LASTID$

so werden nur die seit der letzten Ausführung hinzugekommen Datensätze exportiert und verarbeitet.

So wie ich deine Frage verstehe ist bei Dir das aber nicht der Fall. Das unterstützt der FlowHeater noch nicht direkt, hierzu müsste ein kleines Skript für den .NET Script Heater verwendete werden.

Das Skript merkt sich die bereits verarbeiteten Datensätze anhand der dem Heater übergeben Eingangswerte. Diese Werte werden als Primary Key interpretiert und für die weitere Verwendung in einer separaten Textdatei (=Name = Name der Definition + Dateiendung .key) permanent gespeichert.
Wird die Definition ausgeführt liest das Skript diese Datei in eine interne HashTable ein um die bereits verarbeiteten Primary Key Werte zu erhalten. Pro Datensatz prüft dann das Skript ob dieser Schlüssel bereits verarbeitet wurde. Falls ja wird der Datensatz mittels des Filter Heater gefiltert, falls nein wird der Schlüssel in die Key/Schlüsseldatei für die weitere Verwendung weggeschrieben und der Datensatz wird anschließend ganz normal verarbeitet (nicht gefiltert).

Hinweis: Über diesen Mechanismus werden/müssen immer aller Daten der READ Seite verarbeitet werden. Besser bzw. performanter wäre es die Datenmenge bereits am SQL Server einzuschränken. Das ist natürlich nicht immer möglich!

Getestet wurde das Skript mit 1.000.000 Datensätzen auf der READ Seite. Die initiale Verarbeitung aller 1.000.000 Datensätze dauerte ca. eine Stunde. Ein anschließendes hinzufügen lediglich eines Datensatzes lief dann innerhalb einer Minute durch!

Im Anhang findest du eine kleines Beispiel, hier allerding nicht SQL-Server bezogen sondern mit einfachen CSV Textdateien realisiert.

C# Skript um nur neue hinzugekommene Datensätze zu verarbeiten
string keyfile = String.Empty;
Hashtable keys = new Hashtable();

public object DoWork()
{
  if (keyfile.Length == 0)
  {
    // KeyFile anlegen, gleicher Dateiname wie Definition, Dateiendung = .key
    keyfile = Path.GetFileNameWithoutExtension(AdapterRead.Definition.Flow.FileName) + ".key";
		
    // bereits vorhandene Schlüssel einlesen
    if (File.Exists(keyfile))
    {
      StringReader reader = new StringReader(File.ReadAllText(keyfile));
      while(true)
      {
        string line = reader.ReadLine();
        if (line == null)
          break;

        keys.Add(line, null);
      }
    }
  }

  // Key/Schlüssel zusammenbauen
  string key = String.Empty;
  for (int i = 0; i < InValues.Length; i++)
  {
    if (key.Length != 0)
      key += " | ";

    if (InValues[i].GetValue() == null || InValues[i].GetValue() == DBNull.Value)
      key += "-null-";
    else
      key += (string)InValues[i].GetString();
  }

  // Prüfen ob Key/Schlüssel bereits verarbeitet wurde
  if (!keys.ContainsKey(key))
  {
    // Key/Schlüssel noch nicht vorhanden, in Keyliste aufnehmen
    keys.Add(key, null);
    
    // nicht im Testmodus an Datei anfügen!
    if (!TestMode)
      File.AppendAllText(keyfile, key + Environment.NewLine);

    // noch nicht vorhanden, dieser Datensatz muss verarbeitet werden
    return false;
  }

  // Diesen Datensatz filtern
  return true;
}

Dateianhang:

Dateiname: nur-neue-d...iten.zip
Dateigröße:3 KB
Kategorie: Allgemein
04 Jun 2017 07:31
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Ankenbrand,

um lediglich alle Zeilen einer „unstrukturierten Textdatei in eine Spalte auf der WRITE Seite zusammenzuführen müssen Sie anders vorgehen.
Im Textfile Adapter auf der READ Seite wählen Sie auf dem Reiter „Trennzeichen“ die Option „Anderes“ und geben als Spaltentrennzeichen mehrere Zeichen ein die so in der Textdatei nicht erwartet werden. Ich habe im Beispiel „####“ verwendet. So liest der FlowHeater jede Zeile in nur einer Spalte ein. Das CSV Trennzeichen wird so ignoriert!

Um jetzt alle Zeilen der READ Seite zu einer Zeile und Spalte auf der WRITE Seite zuzuordnen benötigen Sie einen GroupBy Heater . Diesen übergeben Sie über den X-Value Heater einen beliebigen statischen Wert. So werten alle Zeilen zu einer zusammengefasst. Um jetzt noch den Inhalt der Zeilen mit einem Trennzeichen getrennt in das Ausgabefeld zu schrieben benötigen Sie noch einen String Append Heater mit eingeschalteter GroupBy Option. Im Anhang finden Sie ein kleines Beispiel.



Dateianhang:

Dateiname: zeilenumbr...rnen.zip
Dateigröße:2 KB
Kategorie: Allgemein
1 - 15 von 93 Ergebnissen angezeigt.

andere Sprachen

en

FlowHeater Home

de en

Impressum/Kontakt

Datenschutz

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

Follow us on

twitter  facebook

YouTube

 de en