В этой стаье я расскажу как собственно реализовать проверку полномочий, про которую начали разговаривать в http://fibed.net/T/ . Итак теперь добавим в код программы оператор проверки полномочий. Откроем код программы ZKRE_HW5.
*&---------------------------------------------------------------------*
*& 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.
Добавим два новых сообщения в наш класс сообщений.
Итак запустим на выполнение программу.
Теперь зайдем под тестовым юзером TESTA и через транзакцию SE38 запустим программу.
В строке статуса получим сообщение об ошибке.
Вот таким образом можно реализовать полномочия в SAP на выполнение программ. Следующая тема - http://fibed.net/W/ это реализация логгирования в SAP.
Комментарии