Erster eigener Report im ALV ohne Menu

Getting started ... Alles für einen gelungenen Start.
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Erster eigener Report im ALV ohne Menu

Beitrag von Alexus (ForumUser / 2 / 0 / 0 ) »
Hallo zusammen,

ich bin recht neu in der ABAP Welt und komme bei meinem Report nicht ganz so weiter.

Ich habe vor zu den Selektierten Benutzernamen aus der AGR_USERS Tabelle mit den Schlüsseltort der Benutzerrollen einen Join auf die AGR_TCODES zu machen. Und am Ende soll es dann eine Ausgabeliste geben mit Benutzername Rolle Gültigkeit von bis und die Erlaubten Transaktionscodes der Rollen ausgegeben werden.

Könnt ihr mir einen Tipp geben wo ich hier einen Fehler im Code habe?

Code: Alles auswählen.

*&---------------------------------------------------------------------
*& Report Z_BUCHSELEKTUIN
*&---------------------------------------------------------------------
*&
*&---------------------------------------------------------------------
REPORT z_berechtigunbgen.

TYPES: BEGIN OF my_out,
         uname TYPE xubname,
         FROM_DAT TYPE agr_fdate,
         TO_DAT TYPE agr_tdate,
         AGR_NAME TYPE agr_name, " Hier muss das Feld für den Rollennamen rein
         tcode TYPE agxreport,
       END OF my_out.

DATA lt_out TYPE TABLE OF my_out. "interne Tabelle definiert
* Workarea
DATA ls_out TYPE my_out.

DATA: lt_berechtigungen TYPE TABLE OF AGR_users,
      ls_berechtigungen LIKE LINE OF lt_berechtigungen,
      l_berr TYPE string,
      o_salv TYPE REF TO cl_salv_table.

SELECTION-SCREEN BEGIN OF BLOCK b1.
PARAMETERS: pa_name TYPE agr_users-agr_name. "Parameter für den Rollennamen
SELECT-OPTIONS so_user FOR ls_berechtigungen-uname. "Die Option für die Benutzernamen
SELECTION-SCREEN END OF BLOCK b1.
CONCATENATE '%' pa_name '%' INTO l_berr.

* Korrekt referenzierte Felder in der SELECT-Anweisung
SELECT a~AGR_NAME,
       Ben~UNAME,
       Ben~FROM_DAT,
       Ben~TO_DAT ,
       a~TCODE
  FROM AGR_users AS Ben
  INNER JOIN AGR_TCODES AS a
  ON a~agr_name = ben~agr_name
  WHERE a~AGR_NAME LIKE @l_berr
        AND Ben~UNAME IN @so_user
  GROUP BY a~AGR_NAME, Ben~UNAME, a~TCODE,Ben~FROM_DAT,Ben~TO_DAT
    INTO CORRESPONDING FIELDS OF TABLE @lt_out.

TRY.
    CALL METHOD cl_salv_table=>factory
      EXPORTING
        list_display = if_salv_c_bool_sap=>false
      IMPORTING
        r_salv_table = o_salv
      CHANGING
        t_table = lt_out.

    o_salv->display( ).

  CATCH cx_salv_msg INTO DATA(lx_salv).
    " Fehlerbehandlung
    MESSAGE lx_salv->get_text( ) TYPE 'E'.

ENDTRY.
Aktueller Fehler er gibt mir nur eine Transaktion zur Benutzerrolle aus und nicht alle
// Seint doch zu funktionieren. Eine allgemeine Frage hätte ich da noch, da ich dazu noch nichts gelesen habe. Hierachrie ansicht erst wenn die ALV Buttens drin sind oder ist das auch einfach eine Codeanweisung?

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Erster eigener Report im ALV ohne Menu

Beitrag von JM1804_ABAP (ForumUser / 1 / 1 / 0 ) »
Hi Alexus,

ich bin selber noch nicht der beste im ABAP-Umfeld, habe mir aber mal was ähnliches programmiert und eventuell hilft es dir.

Code: Alles auswählen.

TYPES: BEGIN OF ts_data,
         uname    TYPE agr_users-uname,
         tcode    TYPE agr_tcodes-tcode,
         sprsl    TYPE tstct-sprsl,
         tstct    TYPE tstct-ttext,
         agr_name TYPE agr_users-agr_name,
       END OF ts_data.
    DATA: mt_data TYPE STANDARD TABLE OF ts_data.

SELECTION-SCREEN: BEGIN OF BLOCK b01 WITH FRAME TITLE TEXT-b01.
SELECT-OPTIONS: so_uname FOR agr_users-uname  NO INTERVALS,
                so_tcode FOR agr_tcodes-tcode NO INTERVALS,
                so_agrn  FOR agr_users-agr_name NO INTERVALS,
                so_sprsl FOR tstct-sprsl DEFAULT 'DE' NO INTERVALS.
SELECTION-SCREEN: END OF BLOCK b01.

    SELECT *
      FROM agr_users
      JOIN agr_tcodes
      ON agr_users~agr_name EQ agr_tcodes~agr_name
      LEFT JOIN tstct
      ON agr_tcodes~tcode EQ tstct~tcode
      INTO CORRESPONDING FIELDS OF TABLE @mt_data
      WHERE agr_users~uname    IN @so_uname
        AND agr_users~agr_name IN @so_agrn
        AND agr_tcodes~tcode   IN @so_tcode
        AND tstct~sprsl        IN @so_sprsl.
Mit dem Programm kann ich leicht nachschauen, ob User für bestimmte Transaktionen berechtigt sind und kann mir auch alle User für eine bestimmte Transaktion anzeigen.

Beste Grüße
Jan

Re: Erster eigener Report im ALV ohne Menu

Beitrag von PeterPaletti (Specialist / 358 / 33 / 99 ) »
Hi Alexus,
mir ist nicht ganz klar, was du mit Hierarchie-Ansicht meinst. Wenn du die Ausgabe durch Sortierung gruppieren willst, sind das ganz einfache Codingzeilen, dafür braucht du die Menüleiste nicht.

Re: Erster eigener Report im ALV ohne Menu

Beitrag von Alexus (ForumUser / 2 / 0 / 0 ) »
JM1804_ABAP hat geschrieben:
11.02.2025 14:46
Hi Alexus,

ich bin selber noch nicht der beste im ABAP-Umfeld, habe mir aber mal was ähnliches programmiert und eventuell hilft es dir.

Code: Alles auswählen.

TYPES: BEGIN OF ts_data,
         uname    TYPE agr_users-uname,
         tcode    TYPE agr_tcodes-tcode,
         sprsl    TYPE tstct-sprsl,
         tstct    TYPE tstct-ttext,
         agr_name TYPE agr_users-agr_name,
       END OF ts_data.
    DATA: mt_data TYPE STANDARD TABLE OF ts_data.

SELECTION-SCREEN: BEGIN OF BLOCK b01 WITH FRAME TITLE TEXT-b01.
SELECT-OPTIONS: so_uname FOR agr_users-uname  NO INTERVALS,
                so_tcode FOR agr_tcodes-tcode NO INTERVALS,
                so_agrn  FOR agr_users-agr_name NO INTERVALS,
                so_sprsl FOR tstct-sprsl DEFAULT 'DE' NO INTERVALS.
SELECTION-SCREEN: END OF BLOCK b01.

    SELECT *
      FROM agr_users
      JOIN agr_tcodes
      ON agr_users~agr_name EQ agr_tcodes~agr_name
      LEFT JOIN tstct
      ON agr_tcodes~tcode EQ tstct~tcode
      INTO CORRESPONDING FIELDS OF TABLE @mt_data
      WHERE agr_users~uname    IN @so_uname
        AND agr_users~agr_name IN @so_agrn
        AND agr_tcodes~tcode   IN @so_tcode
        AND tstct~sprsl        IN @so_sprsl.
Mit dem Programm kann ich leicht nachschauen, ob User für bestimmte Transaktionen berechtigt sind und kann mir auch alle User für eine bestimmte Transaktion anzeigen.

Beste Grüße
Jan
Hallo Jan,
Genau sowas habe ich auch vor nur eben mit anderen Daten. Da ich nur das SAP Mini trial System zur Verfügung habe bin ich da etwas beschränkt an Möglichkeiten.
PeterPaletti hat geschrieben:
11.02.2025 15:20
Hi Alexus,
mir ist nicht ganz klar, was du mit Hierarchie-Ansicht meinst. Wenn du die Ausgabe durch Sortierung gruppieren willst, sind das ganz einfache Codingzeilen, dafür braucht du die Menüleiste nicht.
Hallo @PeterPaletti

https://koester-consulting.eu/auf-und-zuklappen-im-alv/
Sowas in der Art habe ich gemeint nur das die Gruppierung sozusagen auf der Rolle liegt das es eben übersichtlich ist und man die Benutzer sieht mit den Rollen und bei Bedarf die Spalte Rolle „Aufklappen“ kann

Danke schonmal für die hilfreichen tipps.

Re: Erster eigener Report im ALV ohne Menu

Beitrag von Radinator (ForumUser / 46 / 10 / 6 ) »
Hallo @Alexus,

ich hab grad mal bei uns auf dem System nachgeschaut und die AGR_TCODES ist tatsächlich etwas leer. Zu leer ;)

Wenn ich dein Coding für meinen User aufrufe kommen auch nur pro Rolle eine Transaktion raus. Als Gegenprobe habe ich in der SE16N mal eine der Rollen, die für meinen User angezeigt werden, genommen und in der AGR_TCODES gesucht und bin hier ebenfalls auf nur einen Eintrag für diese Rolle gegkommen.

Schlussendlich denke ich nicht, dass dein Coding falsch ist, sondern die Tabelle nicht die Daten enhält, die du haben willst.

Lg radinator

Re: Erster eigener Report im ALV ohne Menu

Beitrag von PeterPaletti (Specialist / 358 / 33 / 99 ) »
Hallo @Alexus,

du könntest ein CDS-View kreieren oder auch im Data Dictionary ein Datenbank-View anlegen und dann mit SALV IDA arbeiten (Klasse cl_salv_gui_table_ida). Hier könntest du Sortieren und Gruppieren, so dass man bei Bedarf die Zeilen auf- und zuklappen kann.

Viel Spaß beim Ausprobieren

Seite 1 von 1

Vergleichbare Themen

4
Antw.
3172
Views
Erster und letzten Datensatz eines Reports
von sacair » 25.06.2009 10:09 • Verfasst in ABAP® für Anfänger
3
Antw.
1625
Views
in zeichenkette erster Treffer eines beliebigen Buchstaben
von meistercoach » 20.02.2018 11:20 • Verfasst in ABAP® für Anfänger
2
Antw.
1435
Views
Alle Knoten von einem Baum bei erster Anzeige aufklappen
von cuncon » 08.11.2018 09:32 • Verfasst in ABAP® für Anfänger
1
Antw.
3969
Views
Report von einem anderen Report als Hintergrundjob einplanen
von kbit100 » 04.01.2016 09:46 • Verfasst in ABAP® für Anfänger
1
Antw.
1852
Views
SAP Menü auslesen
von enrico_wehner » 13.02.2007 13:05 • Verfasst in Basis

Aktuelle Forenbeiträge

Mahnung erstellen
Gestern von wreichelt 2 / 50
Absprung VA02 Position
Gestern von gs3rr4 gelöst 3 / 69
OPD Druck im SPOOL
Gestern von Manfred K. 1 / 43

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Mahnung erstellen
Gestern von wreichelt 2 / 50
Absprung VA02 Position
Gestern von gs3rr4 gelöst 3 / 69
OPD Druck im SPOOL
Gestern von Manfred K. 1 / 43