Montag, 22. Juli 2013

Neue Transaktion ANST_SEARCH_TOOL Automatisierte Hinweissuche & Ermittlungswerkzeug für Kundenquelltext

Mit folgenden Support Packages kommt die Transaktion ANST_SEARCH_TOOL in den SAP Standard:

SAP_BASIS 700 SAPKB70028
SAP_BASIS 701 SAPKB70113
SAP_BASIS 702 SAPKB70213
SAP_BASIS 731 SAPKB73106

Hierbei handelt es sich um einen völlig neuen Ansatz der Problembehebung basierend auf dem Prozess-Trace. Die Anwendung sucht nach SAP-Korrekturhinweisen für ein bestimmtes Problem basierend auf der Problemreplikation in Ihrem System. Zusätzlich erhalten Sie eine Liste mit dem beteiligten Kundencode.
Wenn ein Problem auftritt und Sie vermuten, dass es sich um einen Fehler handelt, für den es eine SAP-Korrekturanleitung gibt, rufen Sie die neue Transaktion ANST_SEARCH_TOOL auf und reproduzieren Sie das Problem, indem Sie die beteiligte Transaktion oder das beteiligte Programm aufrufen.

Beispiel:

Sie haben in der Transaktion SU01 ein Problem!

Dann starten Sie die Transkation ANST_SEARCH_TOOL und erstellen einen Trace für diese Transaktion:


Sie arbeiten ganz normal in der Transaktion bis es zu Fehlermeldung kommt - dann wird der Trace gespeichert und man kann danach ganz einfach aus der neuen Transaktion nach SAP Hinweisen suchen:




































Alleine das starten der Transaktion SU01 hat 116 Komponenten gezogen - nun kann man oben im Menü auf Hinweissuche klicken und über die RFC Verbindung werden alle relevanten Hinweise gefunden:

Am Status wird erkannt ob der Hinweis bereits im System ist oder ob man diesen einbauen kann.

Man kann sich auch anzeigen lassen welche Customizing Tabellen beim start der Transaktion durchlaufen worden sind:




Es gibt auch noch die Möglichkeit sich den Quelltext des Kunden anzuzeigen wenn in einem Report ein Userexit verwendet worden ist.

Doku:
1818192 - FAQ: Automated Note Search Tool

Dienstag, 9. Juli 2013

Massenlöschen von Aktivitätsgruppen / Rollen - Transaktion PFCG

Symptom

Sehr viele nicht mehr benötigte Rollen sollen aus Übersichtsgründen gelöscht werden. Im Standard ist dafür keine geeignete Funktion vorgesehen.

Weitere Begriffe
PFCG Massenlöschen Performance

Ursache und Voraussetzungen
Nutzung des Profilgenerators,
hohe Anzahl zu löschender Aktivitätsgruppen im System

Lösung
Der beigefügte, in der Anlage beigefügte, Report ist ein Vorschlag zur Implementierung, einer im Standard nicht vorhandenen Funktionalität.

Das Coding und die Nutzungsmöglichkeiten sind grundsätzlich in der eigenen Umgebung nochmals zu prüfen, um ungewollte Löschungen zu vermeiden.

Vor der Anwendung des Reports sollte über die PFCG ein Transportauftrag mit allen Aktivitätsgruppen erstellt und freigegeben werden, um im Schadensfall (ungewolltes Löschen) den letzten Stand herstellen zu können.

Quelle SAP

Hinweis 313587 - Massenlöschen von Aktivitätsgruppen


REPORT Z_DEL_AGR .
*--------------------------------------------------------------*
* Version valid from 4.5b - 7.xx                               *
*--------------------------------------------------------------*
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.