[Gelöst]XML-Port im RTC -Probleme beim Download

18. März 2010 12:15

Hallo zusammen,

folgende Vorgeschichte: Da im RTC die Dataports nicht mehr funktionieren bin ich gerade dabei, diverse Dataports auf XML-Ports umzustellen.
Nachdem ich jetzt die Hürde genommen habe, dass man die Funktionalität im ClassicClient garnicht testen kann (für alle, die das noch nicht wussten), stehe ich vor folgendem Problem:

Die über den XML-Port erstellte Datei soll ein vorher im Programm ermittelten Dateinamen bekommen und sich den Pfad aus einer Einrichtungstabelle ziehen.
Da sich der Pfad Lokal bei mir auf dem Rechner befindet muss, laut diverse Foren- und Blogbeiträge, zuerst auf der Mittel-Schicht ein temporäres File erstellt werden. Dieses wird dann nach der Befüllung per Download in den vorgegebenen Pfad geschrieben. Soweit, so gut.
Leider bekomme ich jetzt beim Aufruf die Fehlermeldung "E/A - Ausnahme während des Vorgangs".

Code:
    TempFile.CREATETEMPFILE;
    TempPath := TempFile.NAME;
    TempFile.CLOSE;
    TempFile.CREATE(TempPath);
   
    TempFile.CREATEOUTSTREAM(OutstreamFile);
    ExportXML.SETDESTINATION(OutstreamFile);
    ExportXML.SETTABLEVIEW(l_OrgawareLogEntry);
    ExportXML.EXPORT;
    WHILE COPYSTR(FileLog."File Name",(STRLEN(FileLog."File Name")-I),1) <> '\' DO
      I := I + 1;
      PhysicalDrive := COPYSTR(FileLog."File Name",1,(STRLEN(FileLog."File Name")-I));
      FileNameL := COPYSTR(FileLog."File Name",(STRLEN(FileLog."File Name")-I)+1,30);
      FileTypeL := Text50101; //Alle Dateien (*.*)|*.*
    IF NOT DOWNLOAD(TempPath, Text50100, PhysicalDrive, FileTypeL, FileNameL) THEN BEGIN
      MESSAGE('%1 ,%2, %3',PhysicalDrive, FileNameL, TempPath);
      ERASE(TempPath);
    END;
    TempFile.CLOSE;
   


Den gleichen Fehler bekomme ich auch, wenn ich die Funktionen aus der CU419 nehme.

Gruß Dominik
Zuletzt geändert von rupperich1 am 19. März 2010 09:51, insgesamt 1-mal geändert.

Re: XML-Port im RTC -Probleme beim Download

19. März 2010 09:51

Neuer Morgen, neues Glück.
Jetzt hab ich den Fehler gleich selbst gefunden.
Die Fehlermeldung bedeutet, das zum Zeitpunkt der Aktion, also in dem Fall beim Download-Befehl, die Datei noch in Benutzung ist.
Das Gleiche passiert nämlich auch, wenn man versucht, eine in einem anderen Programm geöffnete Datei zu importieren.
Die Lösung: Vor dem DOWNLOAD - Befehl noch ein
Code:
TempFile.CLOSE

und schon funktionierts.