26. 5-я программа в SAP. Использование Authorization продолжение.

В этой стаье я расскажу как собственно реализовать проверку полномочий, про которую начали разговаривать в http://fibed.net/T/ . Итак теперь добавим в код программы оператор проверки полномочий. Откроем код программы ZKRE_HW5.

image_368

 

*&---------------------------------------------------------------------*
*& Report  ZKRE_HW4
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zkre_hw5 MESSAGE-ID zkre_m_hw5.
*&SPWIZARD: DECLARATION OF TABLECONTROL 'ZK_100' ITSELF
CONTROLS: zk_100 TYPE TABLEVIEW USING SCREEN 0100.
TABLES: sscrfields.
DATA: gt_products TYPE zkre_t_hw3,
      gs_products LIKE LINE OF gt_products,
      it_ran_quant TYPE zkre_r_quant,
      wa_ran_quant LIKE LINE OF it_ran_quant,
      amount TYPE n.

SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.
PARAMETERS: p_id TYPE zkre_products-id. "MATCHCODE OBJECT zkre_sh_hw5.
PARAMETERS: p_name TYPE zkre_products-name MODIF ID m1.
SELECT-OPTIONS: p_quant FOR gs_products-quantity.
SELECT-OPTIONS: p_desc FOR gs_products-description NO INTERVALS.
PARAMETERS: p_s1 RADIOBUTTON GROUP uc1,
            p_s2 RADIOBUTTON GROUP uc1.

SELECTION-SCREEN END OF BLOCK bl1.

SELECTION-SCREEN SKIP.
SELECTION-SCREEN PUSHBUTTON 1(10) bt1 USER-COMMAND uc2.

INITIALIZATION.
  bt1 = text-bt1.

AT SELECTION-SCREEN.


  AUTHORITY-CHECK OBJECT 'ZKRE_AUTH' FOR USER sy-uname

  ID 'ACTVT' DUMMY.

  IF sy-subrc = 0.
    MESSAGE i004 WITH sy-uname.
  ELSEIF sy-subrc <> 0.
    MESSAGE e005 WITH sy-uname.
    LEAVE PROGRAM.
  ENDIF.



  CASE sscrfields-ucomm.
    WHEN 'UC2'.
      CLEAR: p_id, p_name, p_quant[], p_desc[].
  ENDCASE.

START-OF-SELECTION.

  MESSAGE i002.

  CALL SCREEN 100.

  INCLUDE zkre_hw5_status_0100o01.
  INCLUDE zkre_hw5_dataf01.
  INCLUDE zkre_hw5_user_command_0100i01.

END-OF-SELECTION.


Добавим два новых сообщения в наш класс сообщений.

image_369

Итак запустим на выполнение программу. 

image_370

Теперь зайдем под тестовым юзером TESTA и через транзакцию SE38 запустим программу.

В строке статуса получим сообщение об ошибке.

image_371

Вот таким образом можно реализовать полномочия в SAP на выполнение программ. Следующая тема - http://fibed.net/W/ это реализация логгирования в SAP.

Комментарии

Чтобы оставить комментарий, необходимо Войти или Зарегистрироваться.