PDA

Ver la Versión Completa : borrado masivo de Roles 6.0


KF26TK
28/06/07, 20:44:44
Consulta quien sabrá alguna forma de borrar masivamente roles, ya que debo borrar demasiados roles y esto de hacerlo uno por uno es muy lento.

aguerra
28/06/07, 23:01:23
Teniendo la lista en un archivo excel lo puedes hacer con un CATT desde la transacción SCAT.

Saludos

rikardote
06/08/08, 20:17:51
Intenta con este programa


Saludos.



REPORT ZDELETEROL .
*--------------------------------------------------------------*
* Version valid from 4.5b - 7.00 *
*--------------------------------------------------------------*
TABLES : AGR_DEFINE.
DATA: BEGIN OF ACTTAB OCCURS 0,
AGR_NAME LIKE AGR_DEFINE-AGR_NAME,
END OF ACTTAB.

SELECT-OPTIONS ACTGRP FOR AGR_DEFINE-AGR_NAME.
PARAMETERS: TEST(1) DEFAULT 'X'.

* F4 Hilfe für die Aktivitäsgruppe
AT SELECTION-SCREEN ON VALUE-REQUEST FOR ACTGRP-LOW.
DATA: SELECTED_VALUE LIKE AGR_DEFINE-AGR_NAME.
CALL FUNCTION 'PRGN_ACTIVITY_GROUPS_F4_HELP'
IMPORTING
SELECTED_VALUE = SELECTED_VALUE
EXCEPTIONS
NO_ACTIVITY_GROUP_SELECTED = 1
OTHERS = 2.
IF SY-SUBRC = 0.
ACTGRP-LOW = SELECTED_VALUE.
ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR ACTGRP-HIGH.
DATA: SELECTED_VALUE LIKE AGR_DEFINE-AGR_NAME.
CALL FUNCTION 'PRGN_ACTIVITY_GROUPS_F4_HELP'
IMPORTING
SELECTED_VALUE = SELECTED_VALUE
EXCEPTIONS
NO_ACTIVITY_GROUP_SELECTED = 1
OTHERS = 2.
IF SY-SUBRC = 0.
ACTGRP-HIGH = SELECTED_VALUE.
ENDIF.

START-OF-SELECTION.

SELECT AGR_NAME FROM AGR_DEFINE
INTO CORRESPONDING FIELDS OF TABLE ACTTAB
WHERE AGR_NAME IN ACTGRP.

LOOP AT ACTTAB.
CALL FUNCTION 'PRGN_AUTH_ACTIVITY_GROUP'
EXPORTING
ACTIVITY_GROUP = ACTTAB-AGR_NAME
ACTION_DELETE = 'X'
* MESSAGE_OUTPUT = 'X'
EXCEPTIONS
NOT_AUTHORIZED = 1
OTHERS = 2.

IF SY-SUBRC EQ 0.
IF TEST EQ SPACE.
WRITE : / 'Delete : ', ACTTAB.
CALL FUNCTION 'PRGN_ACTIVITY_GROUP_DELETE'
EXPORTING
ACTIVITY_GROUP = ACTTAB-AGR_NAME
show_dialog = ' '
ENQUEUE_AND_TRANSPORT = 'X'
EXCEPTIONS
NOT_AUTHORIZED = 1
TRANSPORT_CHECK_PROBLEM = 2
TRANSPORT_CANCELED_OR_PROBLEM = 3
ONE_OR_MORE_USERS_ENQUEUED = 4
FOREIGN_LOCK = 5
USER_CANCELS_ACTION = 6
OTHERS = 7.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ELSE.
WRITE : / 'Test Delete : ', ACTTAB.
ENDIF.
ELSE.
WRITE : / 'Missing authorization for :', ACTTAB-AGR_NAME.
ENDIF.
ENDLOOP.REPORT ZDELETEROL .
*--------------------------------------------------------------*
* Version valid from 4.5b - 7.00 *
*--------------------------------------------------------------*
TABLES : AGR_DEFINE.
DATA: BEGIN OF ACTTAB OCCURS 0,
AGR_NAME LIKE AGR_DEFINE-AGR_NAME,
END OF ACTTAB.

SELECT-OPTIONS ACTGRP FOR AGR_DEFINE-AGR_NAME.
PARAMETERS: TEST(1) DEFAULT 'X'.

* F4 Hilfe für die Aktivitäsgruppe
AT SELECTION-SCREEN ON VALUE-REQUEST FOR ACTGRP-LOW.
DATA: SELECTED_VALUE LIKE AGR_DEFINE-AGR_NAME.
CALL FUNCTION 'PRGN_ACTIVITY_GROUPS_F4_HELP'
IMPORTING
SELECTED_VALUE = SELECTED_VALUE
EXCEPTIONS
NO_ACTIVITY_GROUP_SELECTED = 1
OTHERS = 2.
IF SY-SUBRC = 0.
ACTGRP-LOW = SELECTED_VALUE.
ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR ACTGRP-HIGH.
DATA: SELECTED_VALUE LIKE AGR_DEFINE-AGR_NAME.
CALL FUNCTION 'PRGN_ACTIVITY_GROUPS_F4_HELP'
IMPORTING
SELECTED_VALUE = SELECTED_VALUE
EXCEPTIONS
NO_ACTIVITY_GROUP_SELECTED = 1
OTHERS = 2.
IF SY-SUBRC = 0.
ACTGRP-HIGH = SELECTED_VALUE.
ENDIF.

START-OF-SELECTION.

SELECT AGR_NAME FROM AGR_DEFINE
INTO CORRESPONDING FIELDS OF TABLE ACTTAB
WHERE AGR_NAME IN ACTGRP.

LOOP AT ACTTAB.
CALL FUNCTION 'PRGN_AUTH_ACTIVITY_GROUP'
EXPORTING
ACTIVITY_GROUP = ACTTAB-AGR_NAME
ACTION_DELETE = 'X'
* MESSAGE_OUTPUT = 'X'
EXCEPTIONS
NOT_AUTHORIZED = 1
OTHERS = 2.

IF SY-SUBRC EQ 0.
IF TEST EQ SPACE.
WRITE : / 'Delete : ', ACTTAB.
CALL FUNCTION 'PRGN_ACTIVITY_GROUP_DELETE'
EXPORTING
ACTIVITY_GROUP = ACTTAB-AGR_NAME
show_dialog = ' '
ENQUEUE_AND_TRANSPORT = 'X'
EXCEPTIONS
NOT_AUTHORIZED = 1
TRANSPORT_CHECK_PROBLEM = 2
TRANSPORT_CANCELED_OR_PROBLEM = 3
ONE_OR_MORE_USERS_ENQUEUED = 4
FOREIGN_LOCK = 5
USER_CANCELS_ACTION = 6
OTHERS = 7.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ELSE.
WRITE : / 'Test Delete : ', ACTTAB.
ENDIF.
ELSE.
WRITE : / 'Missing authorization for :', ACTTAB-AGR_NAME.
ENDIF.
ENDLOOP.

rikardote
06/08/08, 20:19:44
Te paso el código, esta adjunto a este mensaje.


Saludos.

glugliet
05/05/16, 22:40:13
Rikardote, un millón de gracias por compartir el código de este programa para borrado masivo de roles, ya lo probé y funciona a la perfección. :D :D :D

rikardote
05/05/16, 22:43:22
Es excelente saber que 8 años después sigue siendo de utilidad.!

JaZzDays
11/06/20, 19:49:14
Woow acabo de usar el programa en Hana y funciona perfecto. Muchísimas gracias.