你会认为这很明显,但通过文档,SAP论坛,谷歌搜索等搜索,我已经非常失败了。我正在使用以下代码在solaris文件系统上的ABAP中创建一个文件:
OPEN DATASET p_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
生成的文件是根据预定义的管理员用户拥有和分组的,这很好,但粘性检票口是权限设置为660 / rw-rw ----,这意味着我无法检查结果。有没有办法(可能使用模糊定义的TYPE添加?)我可以在新文件中指定结果权限吗?
谢谢!
答案 0 :(得分:4)
转到SM69,创建一个逻辑系统命令,你可以称之为ZCHMOD。
将该命令映射到chmod
,然后使用正确的参数调用
(命令行上的man chmod
是你的朋友)。
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.
显然,这将是一个两步的过程,但它确实有效。
答案 1 :(得分:3)
这适用于4.6B:
CONCATENATE 'chmod ugo=rw ' lc_filename
INTO lc_chmod SEPARATED BY space.
CALL 'SYSTEM' ID 'COMMAND' FIELD lc_chmod.
希望这有帮助。
干杯, 的Heiko
答案 2 :(得分:1)
在RZ10中添加参数安装/ umask 。 默认值为007,您可以更改它:000,002 ... 因此,创建的文件将是-rw-rw-rw - , - rw-rw-r --...