21 мая 2019

Проверка при сохранении техкарты (транзакция CA01/CA02)

Для проверки при сохранении техкарты (тр. CA01/CA02) можно использовать enhancement spot ES_SAPLCPDI, точки EHP604_LCPDIFV1_01 и EHP604_LCPDIFP1_02. Первая сработает при нажатии на кнопку "Сохранить", вторая - если сохранить при выходе через кнопку "Назад".

Пример проверки: заполнено ли поле "Вид работ".

  DATA:
    lt_plkz_tab TYPE plkz_tab,
    lt_plko_tab TYPE plko_tab,
    lt_plas_tab TYPE plas_tab,
    lt_plpo_tab TYPE plpo_tab,
    lt_plfh_tab TYPE plfh_tab,
    lt_plmz_tab TYPE plmz_tab,
    lt_stpo_tab TYPE stpo_tab,
    lt_plwp_tab TYPE plwp_tab,
    lv_error.
  FIELD-SYMBOLS:
    <fs_plpo_tab> LIKE LINE OF lt_plpo_tab.

  " Проверка на "заполненность" полей Вид работ

  PERFORM collect_task_list_data
    USING rc271
          tca01
          'X'
          'X'
          'X'
          'X'
    CHANGING lt_plkz_tab
             lt_plko_tab
             lt_plas_tab
             lt_plpo_tab
             lt_plfh_tab
             lt_plmz_tab
             lt_stpo_tab
             lt_plwp_tab.
  LOOP AT lt_plpo_tab ASSIGNING <fs_plpo_tab>.
    IF <fs_plpo_tab>-lar01 IS INITIAL AND
       <fs_plpo_tab>-lar02 IS INITIAL AND
       <fs_plpo_tab>-lar03 IS INITIAL.
      lv_error = abap_true.
      EXIT.
    ENDIF.
  ENDLOOP.

  IF lv_error IS NOT INITIAL.
    " Заполните Вид работ.
    MESSAGE s001(zca01_message) DISPLAY LIKE 'E'.
    ok-code = ok_const-enter.
    EXIT.
  ENDIF.


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

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