Wie einzustellen (Unix) Berechtigungen, wenn eine Datei in SAP ABAP zu erstellen?
Frage
würden Sie denken, dies offensichtlich sein würde, aber durch Dokumentation der Suche, SAP-Foren, googeln, usw., ich habe spektakulär erfolglos. Ich bin eine Datei in ABAP auf einem solaris Dateisystem erstellt den folgenden Code verwenden:
OPEN DATASET p_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
die resultierende Datei ist im Besitz und gruppierte nach einem vordefinierten Admin-Benutzer, was in Ordnung ist, aber das Sticky Wicket ist, dass die Berechtigungen festgelegt werden, auf 660 / rw-rw ----, was bedeutet, ich nicht untersuchen kann die Ergebnisse. gibt es eine Möglichkeit (möglicherweise, dass die vage definierte TYPE-Zusatz verwenden?) ich die resultierenden Berechtigungen für die neue Datei angeben kann?
Danke!
Lösung
Dies funktioniert in 4.6B:
CONCATENATE 'chmod ugo=rw ' lc_filename
INTO lc_chmod SEPARATED BY space.
CALL 'SYSTEM' ID 'COMMAND' FIELD lc_chmod.
Hope, das hilft.
Cheers, Heiko
Andere Tipps
zu SM69 gehen, erstellen Sie ein logisches System Befehl, können Sie es ZCHMOD nennen könnte.
Karte, die auf chmod
gebiete, dann mit dem richtigen Parameter aufrufen
(man chmod
auf der Kommandozeile ist dein Freund).
CALL FUNCTION 'SXPG_COMMAND_EXECUTE'
EXPORTING
commandname = 'ZCHMOD'
additional_parameters = l_par
operatingsystem = l_os
TABLES
exec_protocol = it_log
EXCEPTIONS
no_permission = 1
command_not_found = 2
parameters_too_long = 3
security_risk = 4
wrong_check_call_interface = 5
program_start_error = 6
program_termination_error = 7
x_error = 8
parameter_expected = 9
too_many_parameters = 10
illegal_command = 11
wrong_asynchronous_parameters = 12
cant_enq_tbtco_entry = 13
jobcount_generation_error = 14
OTHERS = 15.
Natürlich, das wäre ein 2-Stufen-Prozess, aber es funktioniert.
In RZ10 fügen Parameter Installieren / umask . Der Standardwert ist 007, Sie können es ändern: 000, 002 ... So werden die Dateien erstellt werden -rw-rw-rw-, -rw-rw-r --...