Ver la Versión Completa : borrado masivo de Roles 6.0
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.
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web