24 апреля 2019

Выполнение команд ОС из SAP GUI

Для запуска команд операционной системы из SAP перейти в транзакцию SM69, найти команду, выделить и нажать "Выполнить". Здесь также можно создать свою команду, нажав кнопку "Создать" и указав параметры: имя команды, команда операционной системы, параметры команды.


Пример вызова команды ОС из ABAP-программы:

  DATA:
    lv_command TYPE sxpgcolist-name,
    lv_param TYPE sxpgcolist-parameters,
    lv_status TYPE extcmdexex-status,
    lv_exitcode TYPE extcmdexex-exitcode,
    lt_protocol TYPE TABLE OF btcxpm.

  lv_command = 'PING'.
  lv_param = 'google.com'.

  CALL FUNCTION 'SXPG_COMMAND_EXECUTE'
    EXPORTING
      commandname                   = lv_command
      additional_parameters         = lv_param
      operatingsystem               = 'ANYOS' " sy-opsys
*     targetsystem                  = sy-host
*     destination                   =
*     stdout                        = 'X'
*     stderr                        = 'X'
*     terminationwait               = 'X'
*     trace                         =
*     dialog                        =
    IMPORTING
      status                        = lv_status
      exitcode                      = lv_exitcode
    TABLES
      exec_protocol                 = lt_protocol
    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.

  " lv_exitcode содержит результат выполнения команды, 
  " если 0, то успешно, иначе ошибка, 
  " lt_protocol - текст результата

Комментариев нет:

Отправить комментарий