Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => SE37 - Построитель функций => Тема начата: Uukrul от Сентябрь 25, 2008, 03:53:51 pm

Название: SXPG_CALL_SYSTEM - Выполнение команд операционной системы
Отправлено: Uukrul от Сентябрь 25, 2008, 03:53:51 pm
SXPG_CALL_SYSTEM - Выполнение команд операционной системы, например нужно скопировать файлик из одного каталога сервера в другой или еще чего запустить.
Код: You are not allowed to view links. Register or Login
  DATA: mv_status   LIKE extcmdexex-status,
        mv_exitcode LIKE extcmdexex-exitcode,
        copy_command LIKE sxpgcolist-parameters.
  DATA: btcxpm_tab LIKE btcxpm OCCURS 10 WITH HEADER LINE.

  CALL FUNCTION 'SXPG_CALL_SYSTEM'
       EXPORTING
            commandname                = 'ZYCOPY'
            additional_parameters      = copy_command
       IMPORTING
            status                     = mv_status
            exitcode                   = mv_exitcode
       TABLES
            exec_protocol              = btcxpm_tab
       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
            OTHERS                     = 12.
  IF mv_status = 'E' OR sy-subrc <> 0.
*   Однако тута ошибка или команды или вызова ФМ
  ENDIF.
ZYCOPY - Определена через SM69 как ссылка на выполнение команды cp,
copy_command - Ну тут просто указываем что хотим скопировать и куда, формат параметров юниксовый который требуется командочка cp.

Короче, пока писал, так подумалось, ну для юниксовго сервака не так в тупую, а вот для виндовой машинки, открываем файлик в бинари моде и заливаем на сервер исполняемый файлик, который потом можно попытаться запустить на выполнение... чисто по приколу, посмотреть выйдет ли  ;)