Как установить (unix) разрешения при создании файла в SAP ABAP? - PullRequest
6 голосов
/ 10 ноября 2008

Вы могли бы подумать, что это будет очевидно, но поиск по документации, форумам SAP, поиску в Google и т. Д., Я был поразительно неудачным. Я создаю файл в ABAP в файловой системе Solaris, используя следующий код:

OPEN DATASET p_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

Полученный файл принадлежит и сгруппирован в соответствии с заранее определенным пользователем-администратором, что нормально, но проблема в том, что права доступа установлены на 660 / rw-rw ----, то есть я не могу исследовать результаты, достижения. Есть ли способ (возможно, с использованием этого неопределенно определенного добавления TYPE?) Я могу указать результирующие разрешения для нового файла?

спасибо!

Ответы [ 3 ]

4 голосов
/ 19 ноября 2008

Перейдите к 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.

Очевидно, что это будет двухэтапный процесс, но он работает.

3 голосов
/ 01 декабря 2008

это работает в 4.6B:

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

Надеюсь, это поможет.

Cheers, Хайко

1 голос
/ 24 декабря 2008

В RZ10 добавить параметр install / umask . Значение по умолчанию 007, вы можете изменить его: 000, 002 ... Итак, созданные файлы будут -rw-rw-rw-, -rw-rw-r --...

...