6

您会认为这很明显,但是通过文档、SAP 论坛、谷歌搜索等搜索,我非常不成功。我正在使用以下代码在 solaris 文件系统上的 ABAP 中创建一个文件:

OPEN DATASET p_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

生成的文件是根据预定义的管理员用户拥有和分组的,这很好,但棘手的问题是权限设置为 660/rw-rw----,这意味着我无法检查结果。有没有办法(可能使用模糊定义的类型添加?)我可以指定新文件的结果权限?

谢谢!

4

3 回答 3

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.

显然,这将是一个两步的过程,但它确实有效。

于 2008-11-19T19:54:55.867 回答
3

这适用于 4.6B:

        CONCATENATE 'chmod ugo=rw ' lc_filename
          INTO lc_chmod SEPARATED BY space.
        CALL 'SYSTEM' ID 'COMMAND' FIELD lc_chmod.

希望这可以帮助。

干杯,海科

于 2008-12-01T09:23:12.943 回答
1

在 RZ10 添加参数install/umask。默认值为007,您可以更改它:000, 002... 所以,创建的文件将是-rw-rw-rw-, -rw-rw-r--...

于 2008-12-24T15:14:06.103 回答