Interne Tabellen in SAP-Directories speichern

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
16 Beiträge • Seite 1 von 2 (current) Nächste
16 Beiträge Seite 1 von 2 (current) Nächste

Interne Tabellen in SAP-Directories speichern

Beitrag von jp2008 (ForumUser / 12 / 0 / 0 ) »
Hallo zusammen,
ich habe mir mit Hilfe von ABAP mehrere interne Tabellen mit Daten befüllt und möchte diese gerne im SAP-Directories speichern. Zur Zeit verwende ich den Funktionsbaustein CNV_00001_DOWNLOAD. Mit diesem Fuba kann ich allerdings irgendwie nicht so wie gehofft auf das SAP-Directories zugreifen und dort meine Datein ablegen. Da ich erst vor kurzem mit ABAP begonnen habe weiß ich mitlerweile leider nicht mehr weiter.

Vielen Dank für eure Hilfe.

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


Re: Interne Tabellen in SAP-Directories speichern

Beitrag von cosmo (Specialist / 175 / 0 / 0 ) »
Hallo,

um daten auf den Verzeichnissen der SAP-Server ablegen zu können, musst du die Befehle

Code: Alles auswählen.

OPEN DATASET
und
TRANSFER TO DATASET
verwenden. Die ABAP-Doku zu den Befehlen sollte Dir alle weitere Infos bereitstellen können.

Viele Grüße
Jörg Krause, Anwendungsentwickler und SAP-Betreuer MM/PP

Re: Interne Tabellen in SAP-Directories speichern

Beitrag von jp2008 (ForumUser / 12 / 0 / 0 ) »
Danke,
ich habe das auch so weit umgesetzt.
Mein Code sieht wie folgt aus:

Code: Alles auswählen.

L_name = 'usr01'.
CONCATENATE L_weg sy-datum L_space L_name INTO L_pfad.
OPEN DATASET L_pfad FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
SELECT * FROM usr01 INTO L_usr01 WHERE bname LIKE L_text.
 ASSIGN L_usr01 TO <L_usr01> CASTING.
 TRANSFER <L_usr01> TO L_pfad.
ENDSELECT.
CLOSE DATASET L_pfad.
Für die meisten Tabellen die ich speichern will klappt das auch. Für die Tabellen usr02 und agr_users geht das allerdings nicht, da dort Datumsanzeigen und hashwerte abgelegt sind. Wie kann ich das am besten realisieren?
Gibt es zudem noch eine Möglichkeit die Spaltenüberschriften wie Mandant, Benutzername usw. mit zu übernehmen, da ich die Tabellen später wieder ins System spielen möchte.


Erneut vielen Dank für eure Hilfe.

Re: Interne Tabellen in SAP-Directories speichern

Beitrag von Alpha (ForumUser / 25 / 0 / 0 ) »
Hi

Schau dir mal das hier an funkt jedenfalls bei mir

Code: Alles auswählen.

data: w_outfilename(255) type c.

    close  dataset w_outfilename.
    delete dataset w_outfilename.

*-
    open dataset w_outfilename for output in text mode.
    check sy-subrc = 0.


*-
    loop at itab.
      transfer itab to w_outfilename.
    endloop.

*-
    close dataset w_outfilename.
Gruss

Alpha

Re: Interne Tabellen in SAP-Directories speichern

Beitrag von cosmo (Specialist / 175 / 0 / 0 ) »
So, wie sich mir das darstellt, möchtest Du Datenbanktabellen im Filesystem parken, um sie später wieder einzuspielen? Ich weiß nicht, ob das eine gute Idee ist. Bei einem solchen Vorgehen ist es sehr schwer, die Datenbank konsistent zu halten (vor allem wenns SAP-Tabellen sind, wie in deinem Beispiel).

Was ich auch nicht verstanden habe, ist, wozu du die Spaltenüberschriften brauchst. Beim Zurückspielen würde ja dann eine Zeile zusätzlich, nämlich die mit den Überschriften eingespielt werden.

Wichtig ist auf jeden Fall, dass Du das binäre Format verwendest (Kein Zusatz "in text mode" beim "open dataset"). Sonst kannst Du keine numerischen Werte speichern. Damit erübrigt sich aber auch das Ablegen er Spaltenüberschriften: Denn die Überschrift wäre dann ein Text, die Nutzdaten aber binär.

Viele Grüße und nochmal: Vorsicht!

Jörg
Jörg Krause, Anwendungsentwickler und SAP-Betreuer MM/PP

Re: Interne Tabellen in SAP-Directories speichern

Beitrag von jp2008 (ForumUser / 12 / 0 / 0 ) »
Hallo,
leider kann ich die Tabellen usr02 und agr_users nicht richtig abspeichern, da viele Werte als #### gespeichert werden.
Für die restlichen Daten funktioniert alles soweit ;)

Re: Interne Tabellen in SAP-Directories speichern

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
jp2008 hat geschrieben:Hallo,
leider kann ich die Tabellen usr02 und agr_users nicht richtig abspeichern, da viele Werte als #### gespeichert werden.
Für die restlichen Daten funktioniert alles soweit ;)
Beachte bitte, dass SAP bei Anzeige von Daten aus dem sogenannten Controlbereich (hex 00 bis 1F) als Ersetzungszeichen das Doppelkreuz benutzt.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Re: Interne Tabellen in SAP-Directories speichern

Beitrag von jp2008 (ForumUser / 12 / 0 / 0 ) »
Kann ich wenn ich mir aus meinen gespeicherten daten eine interne tabelle mache diese Ersetzungszeichen wieder als normale Zeichen anzeigen lassen oder bleiben die dann immer so?
Mein Problem ist ja, dass ich die Daten die ich Auslese also auch die Passwörter als Hashwert später wieder einspielen möchte damit sich die Benutzer wieder mit ihren normalen Kennwörtern anmelden können. Ich hab jetzt gesehen das alle Hashwerte in usr02 als RAW Dateien gespeichert werden. Ist es überhaupt möglich die Hashwerte richtig auszulesen oder bekomme ich immer das Problem, dass die Hashwerte mit Ersetzungszeichen teilweise dargestellt werden um ein auslesen zu verhindern?

Re: Interne Tabellen in SAP-Directories speichern

Beitrag von ChrisB (Specialist / 408 / 8 / 20 ) »
Wenn Du die Dateien binär speicherst, dann sollte das Zurücklesen eigentlich funktionieren. Aber wieso wählst Du denn die Tabellen als Datei zwischenspeichern? Ich halte das grundsätzliche Vorgehen auch noch für relativ kritisch und würde da eher eine alternative Lösung vorziehen. Um eine sinnvolle Lösung vorschlagen zu können wären aber ein paar weitere Informationen hilfreich...

Gruß
Chris

Re: Interne Tabellen in SAP-Directories speichern

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
ereglam hat geschrieben:
jp2008 hat geschrieben:Hallo,
leider kann ich die Tabellen usr02 und agr_users nicht richtig abspeichern, da viele Werte als #### gespeichert werden.
Für die restlichen Daten funktioniert alles soweit ;)
Beachte bitte, dass SAP bei Anzeige von Daten aus dem sogenannten Controlbereich (hex 00 bis 1F) als Ersetzungszeichen das Doppelkreuz benutzt.
Hallo jp2008,

ok, dann habe ich mich ungenügend genau ausgedrückt: die Daten in deinen Daten werden nicht verändert, wenn Du sie Dir im SAP anzeigen lässt. Es werden nur für die Anzeige nicht-darstellbare Zeichen durch ein Doppelkreuz ersetzt.
In der AL11 wird m.W. auch angeboten, die Daten in ihrer hexadezimalen Form anzeigen zu lassen. Dort wirst Du dann die tatsächlichen Werte sehen können.

PS:
auch ich halte das Speichern von SAP-Daten zum späteren Zurückspielen für hochgradig gefährlich und kann auch nur davor warnen, Euer Vorhaben in dieser Form umzusetzen!!!
Wenn Ihr eine Datensicherung vornehmen wollt, dann benutzt dazu geeignete Archivierungssysteme, die die Daten in konsistenter Form sichern.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Re: Interne Tabellen in SAP-Directories speichern

Beitrag von jp2008 (ForumUser / 12 / 0 / 0 ) »
Hallo,
also ein paar Infos zu meiner Aufgabe.

Ich soll eine Backupfunktion erstellen mit der ich nur einen bestimmten Anteil der Benutzer auslesen und sichern soll. Die Sicherung dieser Daten soll jede Woche erfolgen. Aus den gespeicherten Daten sucht sich der Administrator den gewünschten Stand wieder heraus und spielt diesen bei Bedarf, sprich wenn die aktuellen Benutzerobjekte nicht korrekt sind, wieder ins System ein. Also will ich quasi die aktuellen Daten im System mit den Backupdaten überschreiben. Ich arbeite auf dem SAP IDES System.

Re: Interne Tabellen in SAP-Directories speichern

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
jp2008 hat geschrieben:Hallo,
also ein paar Infos zu meiner Aufgabe.

Ich soll eine Backupfunktion erstellen mit der ich nur einen bestimmten Anteil der Benutzer auslesen und sichern soll. Die Sicherung dieser Daten soll jede Woche erfolgen. Aus den gespeicherten Daten sucht sich der Administrator den gewünschten Stand wieder heraus und spielt diesen bei Bedarf, sprich wenn die aktuellen Benutzerobjekte nicht korrekt sind, wieder ins System ein. Also will ich quasi die aktuellen Daten im System mit den Backupdaten überschreiben. Ich arbeite auf dem SAP IDES System.
wie kann es dazu kommen, dass 'Benutzerobjekte' nicht korrekt sind?

Da sollte man mal nachforschen, wie es zu diesen fehlerhaften Zuständen kommt, statt einfach ältere Daten 'drüberzuklatschen'!Möglicherweise habt Ihr ein fundamentales Problem, weil , basierend auf Deinen Angaben, nicht auszuschließen ist, dass andere Daten nicht auch korrumpiert wurden.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Re: Interne Tabellen in SAP-Directories speichern

Beitrag von jp2008 (ForumUser / 12 / 0 / 0 ) »
Wir gehen davon aus, da es sich ja um ein Schulungssystem handelt, dass ausschließlich von Azubis benutzt wird diese ab und an ausversehen ihre eigenen Benutzerobjekte verändern oder irgendetwas löschen wie z.B. ein paar Rollen. Daher wollen wir falls so etwas auftritt die Dateien wieder in den normalen zustand zurückversetzen. Es geht darum, dass dies passieren könnte und nicht das die Dateien bereits nicht korrekt sind.

Re: Interne Tabellen in SAP-Directories speichern

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
jp2008 hat geschrieben:Wir gehen davon aus, da es sich ja um ein Schulungssystem handelt, dass ausschließlich von Azubis benutzt wird diese ab und an ausversehen ihre eigenen Benutzerobjekte verändern oder irgendetwas löschen wie z.B. ein paar Rollen. Daher wollen wir falls so etwas auftritt die Dateien wieder in den normalen zustand zurückversetzen. Es geht darum, dass dies passieren könnte und nicht das die Dateien bereits nicht korrekt sind.
Hallo jp2008,

vielleicht wäre es hilfreich gewesen, auf diesen Sachverhalt bereits zu Anfang hinzuweisen, da die, von Dir skizzierte Aufgabe in einem 'Echtsystem' absolut nicht zu empfehlen ist.
Ein Laden von nicht zertifizierten Backups ist immer kritisch, da es Seiteneffekte geben kann, die nicht immer so einfach erkennbar sind.

Selbst in einem Schulungssystem sehe ich die Gefahr, dass Ihr einen User restaurieren wollt, dabei aber Andere mit überschreibt, die zwischenzeitlich begründet (z.B. Passwort) geändert wurden.
Besser wäre es, den Azubi die Berechtigung zum Pflegen von Berechtigungsdaten zu entziehen.

PS:
wenn es unbedingt notwendig ist, bestimmte Zustände zu sichern, sollten sie auf Basis von SAP-Standardanwendungen wieder ins System gebracht werden. In Eurem Fall durch Benutzung der SU01, Pflege von Rollen und Profilen.
Und vom Sichern von Passworten würde ich die Finger komplett weglassen.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Re: Interne Tabellen in SAP-Directories speichern

Beitrag von jp2008 (ForumUser / 12 / 0 / 0 ) »
Dankeschön,
dann werde ich die Passwörter nicht mit übernehmen. Jetzt habe ich nurnoch das Problem, das bei einer Speicherung von den Daten aus agr_users (die Rollen der Benutzer) die Zeit nur mit ### angezeigt wird ;)

Vergleichbare Themen

3
Antw.
5880
Views
2
Antw.
1208
Views
Interne Tabelle als CSV auf Anwender-PC speichern
von DeathAndPain » 05.08.2019 15:36 • Verfasst in ABAP® für Anfänger
3
Antw.
3338
Views
Parameter in interne Tabelle speichern
von hmaxi96 » 18.12.2015 11:16 • Verfasst in ABAP® für Anfänger
13
Antw.
13024
Views
interne Tabelle als CSV-Datei auf Festplatte speichern.
von Bright4.5 » 09.10.2018 09:23 • Verfasst in ABAP® für Anfänger
31
Antw.
32521
Views
Interne Tabelle als Excel-Datei speichern
von Bright4.5 » 22.08.2018 13:50 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

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.