Выглядит примерно так, в начале сформирована табличка OUTTABE, в которой собраны все пользователи связаны с HR по 0105ИТ, нужно изменить данные ФИО и должности в УЗ пользователя для выбранной записи: data: GT_LOGONDATA LIKE BAPILOGOND, GT_ADDRESS LIKE BAPIADDR3, ret6 TYPE TABLE OF BAPIRET2, GT_RETURN type BAPIRET2 OCCURS 0 WITH HEADER LINE. LOOP AT OUTTABE where box eq 'X'. clear GT_ADDRESS. * Данные из управляющей записи пользователя CALL FUNCTION 'BAPI_USER_GET_DETAIL' EXPORTING USERNAME = OUTTABE-username CACHE_RESULTS = 'X' IMPORTING LOGONDATA = GT_LOGONDATA * DEFAULTS = ADDRESS = GT_ADDRESS TABLES RETURN = GT_RETURN . IF sy-subrc eq 0 GT_ADDRESS-LASTNAME = OUTTABE-NACHN . CONCATENATE OUTTABE-VORNA OUTTABE-MIDNM INTO GT_ADDRESS- firstname SEPARATED BY space. GT_ADDRESS-FUNCTION = OUTTABE-PLSTX. CONCATENATE OUTTABE-NACHN OUTTABE-VORNA OUTTABE-MIDNM INTO GT_ADDRESS-FULLNAME . ENDIF
*заблокировать сотрудника * PERFORM user_enqueue USING OUTTABE-username rc prim. CALL FUNCTION 'BAPI_USER_CHANGE' EXPORTING USERNAME = OUTTABE-username ADDRESS = GT_ADDRESS TABLES RETURN = ret6 . IF SY-SUBRC EQ 0. CALL FUNCTION 'DB_COMMIT' EXCEPTIONS OTHERS = 1. ENDIF.
** Разблокировка пользователя * PERFORM user_dequeue USING OUTTABE-username. ENDLOOP.
|
|