Dynamischer Daten Import / Export

datenbank

weil Einfach - produktiver ist
Mit der Freeware Version können bis zu 10.000 Datensätze verarbeitet werden!
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Willkommen im FlowHeater Support Forum!

Hier werden Fragen zum Umgang mit dem FlowHeater beantwortet.

THEMA: Dateiname als Parameter

Dateiname als Parameter 1 Jahr 1 Woche her #2553

  • Ralf Birk
  • Ralf Birks Avatar
  • Offline
  • Senior Member
  • Beiträge: 45
Hallo Herr Stark,
ich komme mal wieder bei einem Projekt nicht weiter.
Vermutlich ist es nur eine kleinigkeit. Hier meine Frage:
Uber den Batchparameter /ReadFileName C:\Testordner\\Eingang\*.sel test.fhd starte ich den FH.
Dieser nimmt auch wunderschön die TXT-Datei. Ich sollte jetzt den Dateinamen (am besten ohne die Endung .sel) als String in eine Datenspalte einfügen und diesen auch im Outputname verwenden.
Geht dies über den Get-Parameter und wenn ja...Wie?

Freue mich schon auf Ihre Antwort

Gruß Ralf B.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Dateiname als Parameter 1 Jahr 1 Woche her #2554

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1102
Hallo Herr Birk,

um den Dateinamen dynamisch vom READ TextFile Adapter zu verwenden benötigen Sie den .NET Script Heater und eines der unten aufgeführten Skripte. Im Anhang finden Sie ein kleines Beispiel dazu.

Dateiname so wie im Adapter angegeben
public object DoWork()
{
	TextFileAdapter adapter = (TextFileAdapter)AdapterRead;
 	return adapter.Filename;
}

Dateiname ohne Erweiterung
public object DoWork()
{
	TextFileAdapter adapter = (TextFileAdapter)AdapterRead;
	return Path.GetFileNameWithoutExtension(adapter.Filename);
}

Kompletter Dateipfad
public object DoWork()
{
	TextFileAdapter adapter = (TextFileAdapter)AdapterRead;
	return Path.GetFullPath(adapter.Filename);
}

Kompletter Pfad ohne Dateiname
public object DoWork()
{
	TextFileAdapter adapter = (TextFileAdapter)AdapterRead;
	return Path.GetDirectoryName(Path.GetFullPath(adapter.Filename));
}

Dateianhang:

Dateiname: read-datei...agen.zip
Dateigröße:2 KB
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.
Letzte Änderung: 1 Jahr 6 Tage her von FlowHeater-Team.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Dateiname als Parameter 1 Jahr 1 Woche her #2555

  • Ralf Birk
  • Ralf Birks Avatar
  • Offline
  • Senior Member
  • Beiträge: 45
Hallo Herr Stark,

vielen Dank.... Funktioniert wie es sein sollte.
Hinter ihrem Netscript extrahiere ich den Benötigten Teil des Dateinamens als Substring und schreibe diesen in ein Datenfeld.
Besteht auch die Möglichkeit, den Parameter für den Writeadapter zu verwenden ?
Ich habe leider noch nicht heraus bekommen was ich zwischen die $$ schreiben soll.

Gruß Ralf B.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Dateiname als Parameter 1 Jahr 6 Tage her #2556

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1102
Hallo Herr Birk,
Die WRITE Seite kann auch abgefragt bzw. gesetzt werden.

Wenn Sie lediglich dynamisch abfragen möchten welche Datei gerade geschrieben wird können Sie die oben genannten Skripte verwenden, Sie müssen lediglich im Skript alle vorkommen von „ReadAdapter“ durch „WriteAdapter“ ersetzen.

Wenn Sei den Export Dateinamen dynamisch zu erzeugen möchten müssen Sie eine Parameter setzen, der Parametername ist dabei frei wählbar. Wenn Sie nun in der Definition den Parameter „XYZ“ setzen können Sie den Inhalt des Parameters auf der WRITE Seite über $XYZ$ im Dateinamen verwenden. Das geht auch zusammengesetzt z.B. C:\Temp\$XYZ$\output.csv

Hier finden Sie ein Beispiel wie dynamisch mehrere CSV Dateien mittels einer Definition exportiert werden können: CSV Export auf mehrere Dateien aufteilen (splitten)



Nachtrag zu den Skripten) Das geht natürlich auch mit dem Excel Adapter, hier die Skripte die verwendet werden müssen wenn der Excel Adapter auf der READ Seite verwendet wird. Ein Beispiel gibt’s im Anhang.

Dateiname so wie im Adapter angegeben
public object DoWork()
{
	ExcelAdapter adapter = (ExcelAdapter )AdapterRead;
 	return adapter.Workbook;
}

Dateiname ohne Erweiterung
public object DoWork()
{
	ExcelAdapter adapter = (ExcelAdapter )AdapterRead;
	return Path.GetFileNameWithoutExtension(adapter.Workbook);
}

Kompletter Dateipfad
public object DoWork()
{
	ExcelAdapter adapter = (ExcelAdapter )AdapterRead;
	return Path.GetFullPath(adapter.Workbook);
}

Kompletter Pfad ohne Dateiname
public object DoWork()
{
	ExcelAdapter adapter = (ExcelAdapter )AdapterRead;
	return Path.GetDirectoryName(Path.GetFullPath(adapter.Workbook));
}

Dateianhang:

Dateiname: read-excel...agen.zip
Dateigröße:9 KB
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.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Dateiname als Parameter 1 Jahr 5 Tage her #2557

  • Ralf Birk
  • Ralf Birks Avatar
  • Offline
  • Senior Member
  • Beiträge: 45
Vielen Dank Herr Stark,

auch dieser Punkt meines Projekts hat dank ihrer Hilfe geklappt.
Das Wäre der vorletzte Schritt gewesen.
Denke, das ich mit dem letzten Punkt doch an die Grenzen des Programms gestoßen bin.
Ich babe eine Txt Datei mit diversen Adaptern bearbeitet und am ende in 2 Dateien geteilt.
Die eine Datei wird zum sortieren mit einer eindeutigen ID, Str,PLZ und ort an einen fremden Server übertragen (Aus Datenschutzgründen ohne Namen und weiteren Angaben).
Die Daten bekomme ich dann mit diversen Feldern angereichert zurück.
Diese müsste ich das mit meiner 2. Datei wieder zusammenführen.
Leider ist ja auch dem letzten Update der 2. Read-Adapter noch nicht implementiert.
Über den Replace-Adapter kann ich das zwar erledigen. Hierbei habe ich bei bis zu 40.000 Datensätzen und ca 20 Datengelder die ich auf die andere Datenbank übertragen muss einen Rechenaufwand von ca 2,5 Std.
Die erzeugten Daten in Excel mit Sverweis zu verketten ist zwar um einiges schneller aber relativ schlecht zu händeln.
In Access benötigt der Vorgang nur Sekunden. Leider ist hier auch einiges an "Handarbeit" angesagt.
Da verschiedene Personen diesen Prozess handeln müssen ist die Möglichkeit von "Fehlgriffen relativ hoch.
Gibt es vieleicht auch hierzu noch einen Trick im FH ?

Wenn dies noch funktionieren würde könnte ich das Projekt endlich abschließen.

PS.: Hätte ich hierzu vieleicht lieber ein eigenes Thema aufmachen sollen?

Ein über jeden Tip unendlich dankbarer

Ralf.B
Letzte Änderung: 1 Jahr 5 Tage her von Ralf Birk. Begründung: Ergänzung
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Dateiname als Parameter 1 Jahr 5 Tage her #2558

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1102
Hallo Herr Birk,
auch das geht :) Sie benötigen den Umweg über eine SQLite Datenbank. Hier finden Sie ein Beispiel dazu wie eine Excel und eine CSV Datei miteinander verknüpft werden.

Beispiel: CSV und Excel Daten über SQLite Datenbank zusammenführen

Hinweis: Im SQLite Adapter ist es möglich, dass Datenbank, Tabellen und Felder dynamisch erzeugt werden, es sind keine weiteren Voraussetzungen wie Treiber notwendig!

PS: Ja, eine eigenes Thema wäre für diese Anfrage besser gewesen.
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.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.088 Sekunden