Externe Komponente in Popup aufrufen- Problem

ABAP Web Dynpro, BusinessServerPages; Erstellung von Webapplikationen.
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Externe Komponente in Popup aufrufen- Problem

Beitrag von fba9901 (ForumUser / 38 / 6 / 0 ) »
Hi zusammen,

ich habe in Komponente A einen View V1 aus dem ich einen View V2 einer anderen Komponente B bei Klick auf einen Button aufrufen möchte. Folgender Code führt zum Erfolg:

Code: Alles auswählen.

DATA: lo_window_manager TYPE REF TO if_wd_window_manager,
        lo_api_component  TYPE REF TO if_wd_component,
        lo_view_api       TYPE REF TO if_wd_view_controller,
        lo_window         TYPE REF TO if_wd_window,
        lt_buttons        TYPE wdr_popup_button_list,
        ls_canc_action    TYPE wdr_popup_button_action.


    lo_api_component           = wd_comp_controller->wd_get_api( ).
    lo_view_api = wd_this->wd_get_api( ).

    lo_window_manager          = lo_api_component->get_window_manager( ).
* create the cancel icon, but without any action handler
    ls_canc_action-action_name = '*'.
* Simple example, see docu of method create_and_open_popup for details
    lt_buttons                 = lo_window_manager->get_buttons_ok("cancel(
      default_button = if_wd_window=>co_buttons_ok
    ).

    lo_window              = lo_window_manager->create_and_open_popup(
      window_name          = 'W_SUCHE'
      component_usage_name = 'C_SUCHE'
*     title                =
      message_type         = if_wd_window=>co_msg_type_none
      message_display_mode = if_wd_window=>co_msg_display_mode_selected
*     is_resizable         = ABAP_TRUE
      buttons              = lt_buttons
      cancel_action        = ls_canc_action
    ).

    CALL METHOD lo_window->subscribe_to_button_event
      EXPORTING
        button            = if_wd_window=>co_button_ok
        button_text       = 'Übernehmen'
*       tooltip           =
        action_name       = 'ACTION_OK_CLICK'
        action_view       = lo_view_api
        is_default_button = abap_true
    .
  lo_window->open( ).
Wenn ich das Popup jetzt beende und nochmal den Button klicke, wird kein neues Popup erzeugt, sondern folgende Fehlermeldung erscheint:
ERROR: WebDynpro Exception: INIT-Methode kann nur einmal aufgerufen werden (termination: RABAX_STATE)

Hat jemand eine Idee, was schief geht ?

Viele Grüße,
B.

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


Re: Externe Komponente in Popup aufrufen- Problem

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
hallo B.,

ich schätze mal das es an folgender Methode liegt: lo_window = lo_window_manager->create_and_open_popup. Ich kann das gerade nicht verifizieren, aber ich gehe davon aus, dass hierbei der INIT des Windows oder des Views ja nicht mehr durchlaufen kann, da beides zur Laufzeit noch existiert und nur geschlossen wurde. Was du brauchst ist eine Unterscheidung, ob das Window schon einmal erstellt wurde und wenn ja musst du es nur wieder aufrufen und nicht noch einmal erstellen.
Gruß,
der Matze

Re: Externe Komponente in Popup aufrufen- Problem

Beitrag von fba9901 (ForumUser / 38 / 6 / 0 ) »
Hallo Matze,

ja, das dachte ich mir auch schon und habe das Window dann als Attribut hinterlegt. Der Init-Fehler kommt dann nicht mehr, dafür folgender:

500 SAP Internal Server Error
ERROR: Die Referenz auf das Dialogfenster W_SUCHE ist nicht mehr gültig. Das Dialogfenster muß neu erzeugt werden. (termination: RABAX_STATE)

Das verstehe ich jetzt nicht. - Ich darf die Init-nur einmal durchlaufen aber das Fenster wird ungültig wenn ich es halte.
Kann ich denn dieses Window der externen Komponente 'C_SUCHE' manuell erstellen ?

VG,
B.

Re: Externe Komponente in Popup aufrufen- Problem

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Moin,

sorry, das ich jetzt erst antworte, war paar Tage außer Gefecht gesetzt.

Ich denke der bessere Weg ist, erstmal herauszufinden, welche Init-Methode du nicht 2mal durchlaufen darfst.
Am besten debuggst du dich mal durch die Routinen, wenn du das Fenster das erste mal öffnest. Es bleiben ja m.M.n. nur 2 Init-Methoden übrig, nämlich die des Views und die der Komponente an sich. Wenn wir wissen welche Methode sich da sträubt 2mal durchlaufen zu werden finden wir auch eine Lösung, dem beizukommen.
Gruß,
der Matze

Seite 1 von 1

Vergleichbare Themen

2
Antw.
6206
Views
Mit SAP XI externe Programme aufrufen?
von matrix2 » 13.06.2007 09:44 • Verfasst in Exchange Infrastructure
2
Antw.
4790
Views
dynpro als popup aufrufen
von crustycheesewithextrachee » 22.08.2007 14:38 • Verfasst in ABAP Objects®
0
Antw.
615
Views
Bei "Hilfe zur Anwendung" externe URL aufrufen
von MGrossmann » 22.11.2022 16:43 • Verfasst in ABAP® Core
17
Antw.
6597
Views
Selektionstabelle (Komponente LOW)
von ServantOfSonata » 21.11.2013 15:31 • Verfasst in ABAP® für Anfänger
0
Antw.
1334
Views
UI Komponente bestimmen
von Kai999 » 24.04.2017 15:46 • Verfasst in ABAP Objects®

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Eclipse - warum/wann verwendet ihr es [nicht]
vor einer Stunde von tar 11 / 837
Zeilenumbrüche ersetzen
vor 18 Stunden von ralf.wenzel 6 / 167
Dialog-Container mit Toolbar/Status
Gestern von tar gelöst 19 / 2327
SAP Trial Version für SAP Fiori
vor 2 Tagen von tar 2 / 1542

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

Eclipse - warum/wann verwendet ihr es [nicht]
vor einer Stunde von tar 11 / 837
Zeilenumbrüche ersetzen
vor 18 Stunden von ralf.wenzel 6 / 167
Dialog-Container mit Toolbar/Status
Gestern von tar gelöst 19 / 2327
SAP Trial Version für SAP Fiori
vor 2 Tagen von tar 2 / 1542

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 606
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2235
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8827