26 ноября 2018

Вызов программы с передачей динамических параметров селекционного экрана

При вызове программы через SUBMIT, селекционный экран которой имеет динамические параметры, используем дополнение WITH FREE SELECTIONS lt_texpr, где lt_texpr имеет тип rsds_texpr. В следующем примере вызываем программу для транзакции FBL1N и передаём в динамический параметр "Блокировка платежа" значение "A".

DATA:
  lv_sydatum          TYPE sy-datum,
  lt_items            TYPE it_rfposxext,
  lt_trange           TYPE rsds_trange,
  lt_texpr            TYPE rsds_texpr.

FIELD-SYMBOLS:
  <lfs_trange>        LIKE LINE OF lt_trange,
  <lfs_frange>        LIKE LINE OF <lfs_trange>-frange_t,
  <lfs_selopt>        LIKE LINE OF <lfs_frange>-selopt_t.

lv_sydatum = sy-datum.
  
INSERT INITIAL LINE INTO TABLE lt_trange ASSIGNING <lfs_trange>.
<lfs_trange>-tablename = 'BSIK'.
INSERT INITIAL LINE INTO TABLE <lfs_trange>-frange_t ASSIGNING <lfs_frange>.
<lfs_frange>-fieldname = 'ZLSPR'.
INSERT INITIAL LINE INTO TABLE <lfs_frange>-selopt_t ASSIGNING <lfs_selopt>.
<lfs_selopt>-sign = 'I'.
<lfs_selopt>-option = 'EQ'.
<lfs_selopt>-low = 'A'.

CALL FUNCTION 'FREE_SELECTIONS_RANGE_2_EX'
  EXPORTING
    field_ranges = lt_trange
  IMPORTING
    expressions  = lt_texpr.

SUBMIT rfitemap
  WITH kd_bukrs IN s_bukrs    " БЕ
  WITH kd_lifnr IN s_lifnr    " Кредитор
  WITH pa_stida EQ lv_sydatum " Открытые на отчетную дату
  WITH pa_vari EQ '1SAP'      " Формат
  WITH x_aisel EQ ''          " Все позиции
  WITH x_apar EQ ''           " Позиции дебиторов
  WITH x_clsel EQ ''          " Выровненные позиции
  WITH x_merk EQ ''           " Памятные позиции
  WITH x_norm EQ 'X'          " Стандартные позиции
  WITH x_opsel EQ ''          " Открытые позиции
  WITH x_park EQ ''           " Предв. зарегистрированные
  WITH x_shbv EQ ''           " Операции Особой главной книги
  WITH FREE SELECTIONS lt_texpr
  EXPORTING LIST TO MEMORY
  AND RETURN.


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

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