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: Dateipfad im .NETheater anpassen

Dateipfad im .NETheater anpassen 5 Jahre 4 Monate her #579

  • Andreas Knobloch
  • Andreas Knoblochs Avatar
  • Offline
  • Junior Member
  • Beiträge: 33
Hallo Herr Stark,

Sie haben mir bei dem Thema "Dateinamen dynamisch anpassen" schon sehr geholfen. Hier zu habe ich noch ein oder zwei Fragen und zwar:
    Wie kann ich den Pfad für die dynamisch angepasste Datei im Skript mit angeben?
    Wie kann ich in dem FTP-Skript den Pfad wo die Datei liegt mit angeben?

Mit freundlichen Grüßen

Andreas Knobloch
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Dateipfad im .NETheater anpassen 5 Jahre 4 Monate her #581

  • Andreas Knobloch
  • Andreas Knoblochs Avatar
  • Offline
  • Junior Member
  • Beiträge: 33
HAllo Zusammen,

mit ein wenig probieren und durch Zufall im Forum gefunden:
string path = @"C:\Pfadangabe\";

Dafür habe ich zwei neue Sachen in Bezug auf FTP und zwar:
  1. Wie kann ich die FTP-Übertragung erst nach dem Export aus der Datenbank starten?
  2. Die Steuerzeichen \r\n werden in der Steuerdatei als 83770 angezeigt beim "put". Ist dies so richtig?
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Dateipfad im .NETheater anpassen 5 Jahre 4 Monate her #582

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

hier das FTP Skript angepasst mit Pfadangabe. Den Pfad können/müssen Sie im Skript noch ändern.

Zu Ihren weiteren Fragen)
  1. Das müsste nach der Definition manuell oder über eine CMD Batch automatisch ausgeführt werden.

    @echo off
    FHBatch.exe export-bilder.fhd
    ftp –s:ftp.txt

    Damit das funktioniert müsste das Skript angepasst werden, so dass die FTP Steuerdatei alle exportierten Bilder/Dateien enthält. Wenn Sie das wirklich so machen möchten, kann ich das Skript gerne so anpassen.
  2. Mit welchen Editor schauen Sie sich denn die ftp.txt Datei an? Die Steuerzeichen "\r\n" (= HEX 0x0d0a) stehen für den normalen Zeilenumbruch unter Windows.
public object DoWork()
{
  if (InValues.Length != 1)
    throw new Exception("1 Eingangsparameter erwartet!");

  string ftpserv = "127.0.0.1";       // FTP Server, IP oder DNS
  string ftpuser = "user";            // hier den FTP User eintragen
  string ftppass = "password";        // hier das FTP Passwort eintragen
  string ftpdir  = "/upload";         // hier das FTP Verzeichnis angeben

  // ersten Inputparameter abufen = Dateiname
  string sFile = (string)InValues[0].GetString();

  if (sFile == null)
    return null;

  // Dateiname ohne Pfadangabe
  sFile = Path.GetFileName(sFile);

  //Hier den Dateipfad ggf. ändern
  string path = @"C:\Pfadangabe\";

  string ftp = "";
  ftp += "open " + ftpserv + "\r\n";
  ftp += ftpuser + "\r\n";
  ftp += ftppass + "\r\n";
  ftp += "binary\r\n";
  ftp += "put " + Path.Combine(path, sFile) + " " + Path.Combine(ftpdir, sFile) + "\r\n";
  ftp += "by\r\n";
   
  // FTP Parameter Datei speichern
  File.WriteAllText("ftp.txt", ftp);

  // ftp.exe aufrufen und die oben erstellte Befehlsdatei übergeben
  System.Diagnostics.Process.Start("ftp.exe", "-s:ftp.txt").WaitForExit();

  // Dateiname zuückliefern
  return sFile;
}
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.

Aw: Dateipfad im .NETheater anpassen 5 Jahre 4 Monate her #589

  • Andreas Knobloch
  • Andreas Knoblochs Avatar
  • Offline
  • Junior Member
  • Beiträge: 33
Hallo Herr Stark,

die Steuerzeichen werden richtig erkannt. Ich habe mir am Wochenende durch den Kopf gehen lassen. Ich hatte das ursprüngliche Skript falsch interpretiert. Ich übergeben die Dateiname ja nicht über einen Import.
Zur Erläuterung, in der Definition wird einmal eine Datei mit Datum im Namen erzeugt und per Appendheater und Fileheater eine Datei ohne Datum, diese soll am Ende übertragen werden. Meine Fragen hierzu sind:
  1. Wie kann ich den Dateinamen der erzeugten Datei einlesen bzw. aus dem X-Valueheater
  2. Wie kann ich das Skript (Netheater) für den Upload innerhalb der Definition am Ende (if(EOF)?) starten oder besser in der Batch in welcher die Definition gestartet wird?
Mit freundlichen Grüßen

Andreas Knobloch
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Dateipfad im .NETheater anpassen 5 Jahre 4 Monate her #594

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

zu 1) Ich vermute Sie möchten den erzeugten Dateinamen in die zweite (Protokoll) Datei mit ausgeben? Dazu brauchen Sie nur den Dateinamen erneut zu bilden und dem File Heater zu übergeben. Verwenden Sie anstatt des X-Value Heater das u.s. Skript. Hier wird nur der Dateiname gebildet und zurückgegeben. Im Anhang befindet sich ein kleines Beispiel wie es theoretisch auch ohne Skript (Programmierung) funktioniert. Nur zur Veranschaulichung :)

zu 2) das geht z.Zt. leider nur anschließend über die Batch (CMD) Datei. Demnächst wird es aber dazu im Skript Heater erweiterte Optionen geben, worüber gesteuert werden kann wann das Skript ausgeführt wird.

Anhang dateiname_vormonat.zip nicht gefunden

Anhang:
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.

Aw: Dateipfad im .NETheater anpassen 5 Jahre 4 Monate her #601

  • Andreas Knobloch
  • Andreas Knoblochs Avatar
  • Offline
  • Junior Member
  • Beiträge: 33
Hallo Herr Stark,

hat eine Weile mit den anderen Definitionen zu tun.
Zu 1)
Ich habe mir ihr Skript mal angeschaut und es ist auf jeden Fall ein sehr interessanter Weg und die Fähigkeiten von Flowheater kommen auch voll zur Geltung.

Ich denke meine Beschreibung der Aufgabenstellung war nicht ausreichend genug bzw. mißverständlich. Ich möchte nicht den Dateinamen der erstellten Datei in der Datei sonder in der Steuerdatei für den FTPtransfer.

Ich habe ein Beispiel angehängt, hoffe es ist verständlich.

Und zwar soll die Datei die im Layer "Kopie schreiben" erzeugt wird, im letzten Layer in die Steuerdatei geschrieben werden. Geht dies oder ist es sinnvoller den Dateinamen aus dem Kopielayer statisch einzutragen?

Zu 2)
Ok. Dann werde ich dies erstmal über die Batch implementieren.


Mit freundlichen Grüßen

Andreas Knobloch

Anhang Export_Datenbank_Archiv_Kopie_Ftp.zip nicht gefunden

Anhang:
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Dateipfad im .NETheater anpassen 5 Jahre 4 Monate her #604

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

ich habe Ihr Beispiel etwas angepasst. So können Sie auf die anderen Parameter zugreifen.
Ich glaube aber nicht dass Sie das so durchführen möchten. So wird die geschriebene Archivdatei pro Datensatz der verarbeitet wird an den FTP Server übertragen, die alte Archivdatei wird dabei jeweils mit den neuen angereicherten Inhalt überschrieben.

Besser und wesentlich schneller wäre es wenn Sie den FTP Upload der Archivdatei nachgelagert in der Batch CMD Datei durchführen.

z.B.
@echo off
FHBatch.exe ihre-import-export-definition.fhd
ftp –s:upload-archiv.txt

Anhang Export_Datenbank_Archiv_Kopie_ohne_Ftp.zip nicht gefunden

Anhang:
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.

Aw: Dateipfad im .NETheater anpassen 5 Jahre 4 Monate her #606

  • Andreas Knobloch
  • Andreas Knoblochs Avatar
  • Offline
  • Junior Member
  • Beiträge: 33
Hallo Herr Stark,

vielen Dank für die Hilfe. In meinem hochgeladenen Beispiel habe ich vergessen den FTP-Aufruf zu entfernen :whistle: . Mit den von ihnen gemachten Änderungen ist mein Problem nun gelöst. Es werden zwei Dateien (mit aktuellem Datum und ohne Datum) erzeugt und eine Steuerdatei die den zweiten Dateinamen enthält.

Ich möchte ihnen an dieser Stelle nochmals ein großes Lob für ihre Unterstützung und für ihr Produkt aussprechen.

Mit freundlichen Grüßen und besten Dank,

Andreas Knobloch

P.S.: Können Sie schon sagen wann der neue NET-Heater zur Verfügung stehen wird?
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Dateipfad im .NETheater anpassen 5 Jahre 4 Monate her #608

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

ich denke das diese Funktion ca. Ende September / Anfang Oktober zur Verfügung stehen wird.
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.

Aw: Dateipfad im .NETheater anpassen 5 Jahre 4 Monate her #609

  • Andreas Knobloch
  • Andreas Knoblochs Avatar
  • Offline
  • Junior Member
  • Beiträge: 33
Hallo Herr Stark,

ich musste eben leider feststellen, dass die Zweite Datei immer nur einen Datensatz enthält :( . Es sieht so aus als ob die Datei nach jedem Datensatz gelöscht und neu angelegt wird. Sollte dies nicht im Skript verhindert werden?
bool bFirst = true;

public object DoWork()
{
  // nur beim 1. Datensatz/Zeile
  if (bFirst)
  {    
    bFirst = false;

    //Dateiname kommt jetzt aus dem 1. Übergabeparameter
    string filename = "C:\\Programme\\FlowHeater V2\\Transfer\\"+ (string)InValues[0].GetString();

    
    if (File.Exists(filename))
    {
      File.Delete(filename);
    }
  }
	
  return false;
}

Wird dieses Skript pro Datensatz ausgeführt? Wenn ja dann wird doch bFirst immer wieder auf "true gesetztg oder nicht?
Habe Sie vielleicht eine Idee?

Mit freundlichen Grüßen,

Andreas Knobloch
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Dateipfad im .NETheater anpassen 5 Jahre 4 Monate her #610

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

sorry mein Fehler, ich hatte in Ihrer Definition was übersehen. Das Problem liegt an ihren File Heater Einstellungen. Hier müssen Sie die Option "vorhandene Datei überschreiben" deaktivieren und die Optionen "Anfügen" und "Zeilenumbruch anfügen" aktivieren.

Zu Ihrer Skript Frage) Das Skript bzw. die Funktion DoWork() wird jedes Mal ausgeführt. Die "Globale" Variable "bFirst" wird aber nur währende der Kompilierung einmalig auf "TRUE" gesetzt.
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.

Aw: Dateipfad im .NETheater anpassen 5 Jahre 4 Monate her #611

  • Andreas Knobloch
  • Andreas Knoblochs Avatar
  • Offline
  • Junior Member
  • Beiträge: 33
Hallo Herr Stark,

habe die Option "Anhängen" aktiviert. Ein Fehler ist noch aufgetreten, den konnte ich allerdings beheben. In der Kopie war alles in einer Zeile und ohne Trennzeichen. Im Filehaeter noch Zeilenumbruch aktiviert und im Appendheater das Trennzeichen eingefügt :blush: . Dann klappts auch :) .

Mit freundlichen Grüßen,

Andreas Knobloch
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.102 Sekunden