ALV - Selected Rows funktioniert nur ein Mal

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Benutzeroberflächen in SAP®-Systemen.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

ALV - Selected Rows funktioniert nur ein Mal

Beitrag von SaskuAc (Specialist / 321 / 37 / 44 ) »
Hallo miteinander,

ich schreibe aktuell ein Programm für HR, mit dem sie dynamisch E-Mail Benachrichtigungen einstellen können. Und wenn dann eine bestimmte Maßnahme eintritt, wird die E-Mail versendet. Hierfür habe ich ein Dynpro ( keinen Selection-Screen! ) gebaut. Dann habe ich ein Dynpro welches über einen FuBa gesteuert wird. Dieser FuBa soll mir mehr oder weniger "Varianten anzeigen" und dann auch liefern.

Das Mache ich über ein ALV ( mit CL_GUI_ALV_GRID ).

Nun möchte ich, dass der User eine Zeile auswählt und dann Enter klickt ( Grüner Hacken oder einfach die Enter taste ). Somit bekommt er seine Variante. Das funktioniert auch, aber nur ein Mal. Heißt während einer laufenden Programmsitzung ( oder wenn ich den FuBa über die SAP GUI teste ), funktioniert das nur ein Mal...

Heißt, User startet Transaktion. User holt sich über FuBa Benachrichtigung ( Variante ) eins. User macht seine Änderungen und speichert dies ab. User will sich über FuBa die 2. "Variante" ( Benachrichtigung ) holen. Und hier läuft es dann schief. Der User wählt aus und drückt auf Enter, aber die Methode "get_selected_rows" liefert nichts zurück. Es ist egal, welche Variante ich auswähle, beim 2. Aufruf wird nie etwas zurückgeliefert.

Coding:

Erste und Zweite Verwendung ( initialisierung des Grids )
PBO:

Code: Alles auswählen.

  METHOD pbo.

    container = NEW cl_gui_custom_container( container_name = 'CC_HELP' ).
    help_alv = NEW cl_gui_alv_grid( container ).

" selecting Data usw. 

   DATA(fc) = build_fc( ).

    help_alv->set_table_for_first_display(
         EXPORTING
            is_layout       = build_layout( ) " layout
         CHANGING
            it_outtab        = notifications " email notifications
            it_fieldcatalog  = fc " field catalog
         ).


  ENDMETHOD.

3. Verwendung
Modul PAI ruft Methode PAI der lokalen klasse auf. Die Methode PAI ruft dann die Methode "get_rows" auf, bei entsprechendem SY-UCOMM:

Code: Alles auswählen.

  METHOD get_rows.

    help_alv->get_selected_rows(
      IMPORTING
        et_index_rows = DATA(index_rows)    " Indizes der selektierten Zeilen
    ).

    TRY.
        " denkt euch hier bitte die eckigen klammern... Das Forum kann es leider nicht ordentlich darstellen &#91 ist offen und &#93 ist geschlossen 
        massn = notifications[ index_rows[ 1 ]-index ]-massn.
        massg = notifications[ index_rows[ 1 ]-index ]-massg.
        detail_1 = notifications[ index_rows[ 1 ]-index ]-detail_1.
        detail_2 = notifications[ index_rows[ 1 ]-index ]-detail_2.

        reason = SWITCH i(
                notifications[ index_rows[ 1 ]-index ]-scenario
                      WHEN 'Infotyp' THEN '1'
                      WHEN 'Rollen'  THEN '2'
                ).

      CATCH cx_sy_itab_line_not_found.

    ENDTRY.


  ENDMETHOD.
Immer beim 2. Aufruf der Methode ( also innerhalb einer Programmsitzung ) wird mir beim Methodenaufruf "get_selected_rows", nichts mehr zurückgeliefert.

Mein letzter Aufruf:
Im Funktionsbaustein, wenn das Dynpro soweit fertig ist und geschlossen wurde wird die Methode clear aufgerufen ( weil ich dachte, dass das Problem durch eventuelle fehlende clears auftritt, wobei das nicht geholfen hat ):

Code: Alles auswählen.

  
  METHOD clear.
    CLEAR: reason, detail_1, detail_2, massn,massg,notifications, help_alv,container.
  ENDMETHOD.
Nun dachte ich mir, dass es damit doch funktionieren müsste. Ich mache zum Schluss im FuBa sogar noch einen Clear auf das Objekt, der lokalen klasse. Heißt es existiert schlichtweg keinerlei Möglichkeit mehr auf irgend ein Objekt oder so zuzugreifen. Es wird immer ein neues Objekt erstellt bei jedem Aufruf des FuBas ... daher bin ich extrem verwirrt, wieso es nicht funktioniert. Habe dann auch noch alles in der lokalen Klasse statisch gemacht, hat auch nichts funktioniert... so langsam weiß ich nicht mehr weiter und mache mir gedanken um einen echt miesen Workaround ..

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


Re: ALV - Selected Rows funktioniert nur ein Mal

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Deine Probleme:
Du erzeugt STÄNDIG bei jedem PAI/PBO neue Instanzen deines ALV-Grids und Containers (IF ... IS NOT BOUND).
Zusätzlich hast du vergessen, beim Verlassen des Dynpros die erzeugten Instanzen korrekt zu entladen (Methode FREE des jeweiligen Controls aufrufen)
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: ALV - Selected Rows funktioniert nur ein Mal

Beitrag von SaskuAc (Specialist / 321 / 37 / 44 ) »
a-dead-trousers hat geschrieben:Du erzeugt STÄNDIG bei jedem PAI/PBO neue Instanzen deines ALV-Grids und Containers (IF ... IS NOT BOUND).
Zusätzlich hast du vergessen, beim Verlassen des Dynpros die erzeugten Instanzen korrekt zu entladen (Methode FREE des jeweiligen Controls aufrufen)
danke!
mir ist da mein Denkfehler gerade aufgefallen!

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1478
Views
get selected Rows mit delete Anweisung
von JohnLocklay » 27.10.2016 09:08 • Verfasst in ABAP® Core
2
Antw.
3423
Views
ALV Grid - Selected Rows by Ausgabe mit Filtern
von ernst » 01.12.2004 16:02 • Verfasst in ABAP Objects®
0
Antw.
1321
Views
TRACE: Erseter FETCH bei UP TO N Rows extrem hoch
von c0lt.seavers » 27.10.2008 11:38 • Verfasst in ABAP® Core
2
Antw.
1245
Views
Join 2er Tabellen ohne doppelter Rows in der Ergebnistabelle
von Bitfummler » 08.06.2006 15:09 • Verfasst in ABAP® Core
8
Antw.
3048
Views
SELECT SINGLE oder SELECT UP TO 1 ROWS?
von nickname8 » 12.04.2021 10:38 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor einer Stunde von DeathAndPain gelöst 22 / 2765
Daten an Tabelle binden
vor 6 Stunden von Lukas Sanders 2 / 844

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

Dialog-Container mit Toolbar/Status
vor einer Stunde von DeathAndPain gelöst 22 / 2765
Daten an Tabelle binden
vor 6 Stunden von Lukas Sanders 2 / 844

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2441
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9026