Wie kann ich auf dem SAP-Server eine Datei umbenennen?

Getting started ... Alles für einen gelungenen Start.
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Wie kann ich auf dem SAP-Server eine Datei umbenennen?

Beitrag von DeathAndPain (Top Expert / 1944 / 257 / 413 ) »
Hallo zusammen,

ich möchte eine Datei auf dem Applikationsserver umbenennen. Dazu habe ich folgenden Link gefunden: http://it-struggle.blogspot.com/2009/04 ... ennen.html Doch nachdem ich diesen Ansatz implementiert hatte und getestet habe, kam - April, April! - eine Meldung (TYPE X), dass die Klasse CL_ISH_AT_EDI_FILETRANSFER nicht mehr verwendet werden kann. (Danke SAP, dass ihr solch aufwendige Meldung erstellt und dann aber nicht reinschreibt, was man alternativ nutzen kann.)

Die Frage ist nun, ob es Alternativen gibt. Bei der Suche findet man viele Vorschläge, auf (IMHO) halbseidenen Wegen Betriebssystemkommandos abzusetzen. Ein solcher Weg ist mir aber sehr unsympathisch, weil ich ihn als riskant einschätze, zumal ich selber keinen Konsolenzugang zum SAP-Server habe.

Ferner fand ich http://zevolving.com/2011/10/copyingren ... -server-2/. Dort wird der Vorschlag gemacht, die Datei erst mit cl_cts_language_file_io=>copy_files_local zu kopieren und anschließend die Quelldatei zu löschen. Ist natürlich eine Krücke. Kennt jemand einen besseren Weg?

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Wie kann ich auf dem SAP-Server eine Datei umbenennen?

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Ich glaube der letzte Vorschlag von dir (Kopieren und Löschen) wäre der allgemein gangbarste. Vielleicht sogar eher noch mit Dataset lesen, unter neuem Namen schreiben und das alte löschen. Damit bleibst du auf der Standardschiene und musst dich nicht mit "nicht mehr verfügbaren Solution-Lösungen" herumschlagen.
Den CL_ISH_AT_EDI_FILETRANSFER hat Cerner bzw. die T-Systems (Entwickler von ISH/ISHMED) übrigens schon vor Jahren eingestampft. So wie der aussieht, scheint er auch von einer "Kundenlösung" in den "Standard" übernommen worden zu sein (Mischmasch aus FTP, R3 und GUI). Die T-Systems macht sowas gerne im ISH/ISHMED.

Sonst gäbe es auch noch eine "extrem dirty" Variante:

Code: Alles auswählen.

DATA:
  ld_command   TYPE text255,
  ld_directory TYPE text255,
  lt_result    TYPE tttext255.

* Unter Unix/Linux
ld_directory = '/usr/sap/tmp'.
ld_command = 'mv file1.txt file2.txt'.

* Unter Windows
ld_directory = 'C:\temp'.
ld_command = 'ren file1.txt file2.txt'.

CALL 'SYSTEM'
  ID 'COMMAND' FIELD ld_command
  ID 'PATH'    FIELD ld_directory
  ID 'TAB'     FIELD lt_result.
Diese Befehle kann man aber auch als "Betriebsystemkommandos" (SE69) pflegen und mit dem Baustein SXPG_COMMAND_EXECUTE aufrufen. Dann hättest du zumindest ein Berechtigungsobjekt und diverse Sicherheitsprüfungen rundherum. Im Herzen macht der Baustein aber nichts anderes.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Wie kann ich auf dem SAP-Server eine Datei umbenennen?

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
Moin D&P,
auch wenn du es "halbseiden" nennst. Die Vorschläge aus dem Netz und a-d-t mit dem OS-Kommando sind eigentlich der sauberste Weg. Du willst schließlich was auf Betriebssystemebene machen und dafür sind halt Betriebssystembefehle zuständig wenn SAP die nicht schon gekapselt alternativ zur Verfügung stellt die z.B. die DATASET Anweisungen.
Wenn du es halbwegs sicher machen willst (z.B. weil du das nur in einem bestimmten Pfad machen willst ) lege in der SM69 einen Satz an, der das Umbennen schon so weit parametrisiert, dass du ausschließlich Dateinamen neu und alt angeben musst und dein Eintrag den Pfad schon enthält.
Das mit dem "Kopieren und Löschen" habe ich früher auch oft praktiziert, halte es aber für den schlechteren Weg weil damit Zeitstempel oder andere Dateiattribute die du von SAP aus gar nicht beeinflussen kannst verloren gehen könnten und du dich selber dann um die Konsistenz kümmern musst wenn nach dem Kopieren das Löschen evtl. fehlschlägt (könnte von anderer Anwendung gesperrt sein).
Mit dem OS-Kommand klappt es entweder oder nicht. Du hast immer genau eine Datei - entweder mit altem Namen oder mit dem Neuen aber nie zwei Dateien gleichzeitig so wie es beim Kopieren und Löschen passiert.

Edit: Nachtrag: Wenn du das parametrisiert dann gleich so, dass die Anführungzeichen um die Filenamen schon im Betriebssystemkommando mit drin stehen damit du dich nicht darum kümmern muss dass da Leerzeichen im Dateinamen vorkommen könnten.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Wie kann ich auf dem SAP-Server eine Datei umbenennen?

Beitrag von DeathAndPain (Top Expert / 1944 / 257 / 413 ) »
Vielen Dank für die Versuche, aber leider funktioniert das alles nicht. Die Methode cl_cts_language_file_io=>copy_files_local meldet keinen Fehler, tut aber effektiv nichts (es entsteht keine Kopie der Datei im Zielverzeichnis). Bei a-d-t's Systemkommando ist es genauso: lt_result kommt als leere Tabelle zurück, doch die Datei wurde nicht umbenannt.

Ich möchte erwähnen, dass es sich beim Verzeichnispfad technisch gesehen um einen Mountpoint auf ein externes Verzeichnis handelt. Gleichwohl ist der Zugriff darauf aber möglich: Ich kann die Dateien mit OPEN DATASET problemlos lesen und mit DELETE DATASET auch durchaus löschen (habe also auch Schreibzugriffsrechte).

Wenn nichts passiert, aber man auch keine Fehlermeldung bekommt, ist es immer am blödesten. 😟 Ich werde mich wohl retten müssen, indem ich die Kopie mit den DATASET-Befehlen händisch programmiere.

Seite 1 von 1

Vergleichbare Themen

9
Antw.
3222
Views
CSV Datei umbenennen
von 82kolu1bma » 30.11.2015 15:06 • Verfasst in ABAP® für Anfänger
6
Antw.
5682
Views
Datei umbenennen
von thesaint » 23.05.2005 13:55 • Verfasst in ABAP® Core
11
Antw.
5905
Views
Datei umbenennen
von Gast » 03.05.2005 14:31 • Verfasst in ABAP® für Anfänger
2
Antw.
2297
Views
Datei umbenennen Frontend
von Dabap » 11.08.2010 11:37 • Verfasst in ABAP® für Anfänger
2
Antw.
2483
Views
Datei vom Appl Server auf Präsent. Server
von codierknecht » 29.04.2008 08:51 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 11 Stunden von DeathAndPain gelöst 22 / 3049
Daten an Tabelle binden
vor 16 Stunden von Lukas Sanders 2 / 1002
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 574

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 11 Stunden von DeathAndPain gelöst 22 / 3049
Daten an Tabelle binden
vor 16 Stunden von Lukas Sanders 2 / 1002
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 574

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2583
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9165