Aus einer Klassenmethode Dynpro aufrufen.

Benutzeroberflächen in SAP Systemen.

Aus einer Klassenmethode Dynpro aufrufen.

Postby Carmen214 » Thu Mar 10, 2011 11:36 am

Hallo allerseits,

wollte fragen wie man aus einer Klassen-Methode ein Dynpro aufrufen kann.
Ich weiß nur theoretisch das es über Umwege mit Hilfe von FUBA geht, aber wie?

Kann mir jemand mit einem Coding-Beispiel weiterhelfen?

Danke im voraus.
Carmen214
..
..
 
Posts: 23
Joined: Fri Mar 26, 2010 10:34 am

Postby Katharina759 » Thu Mar 10, 2011 12:10 pm

Hi alrenemy,

hier ein Beispiel:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. FUNCTION z_de_call_dynpro .
  2. *"----------------------------------------------------------------------
  3. *"*"Lokale Schnittstelle:
  4. *"  IMPORTING
  5. *"     REFERENCE(ID_DYNNR) TYPE  DYNNR
  6. *"     REFERENCE(ID_POPUP) TYPE  SAP_BOOL
  7. *"     REFERENCE(ID_STARTING_X) TYPE  I OPTIONAL
  8. *"     REFERENCE(ID_ENDING_X) TYPE  I OPTIONAL
  9. *"     REFERENCE(ID_STARTING_Y) TYPE  I OPTIONAL
  10. *"     REFERENCE(ID_ENDING_Y) TYPE  I OPTIONAL
  11. *"----------------------------------------------------------------------
  12.  
  13.   IF id_popup = 'X'.
  14.     CALL SCREEN id_dynnr
  15.       STARTING AT id_starting_x id_starting_y
  16.       ENDING   AT id_ending_x   id_ending_y.
  17.   ELSE.
  18.     CALL SCREEN id_dynnr.
  19.   ENDIF.
  20.  
GeSHi ©
Katharina759
...
...
 
Posts: 250
Joined: Thu Jun 12, 2008 5:58 pm

Postby Carmen214 » Thu Mar 10, 2011 12:18 pm

Danke an CeyserSoze,

:wink:
Ich habe eine Fehlermeldung die mir sagt das das Dynpro nicht bekannt ist.

Das heißt das Dynpro aus meinem Programm muss auch in der Funktionsgruppe bekannt sein. Wie mache ich genau das Dynpro was ich aufrufen will und was nur in meinem Programm existiert iin der Funktionsgruppe bekannt??

Danke schon mal für weitere Antworten
Carmen214
..
..
 
Posts: 23
Joined: Fri Mar 26, 2010 10:34 am

Postby Ursula4506 » Thu Mar 10, 2011 12:22 pm

Hallo alrenemy,

der Aufruf ist doch mit call function zu realisieren, das unterscheidet sich ja nicht.
Was denke ich entscheidender ist, das du auf den Dynpros der entsprechenden Funktionsgruppe nur public attribute deiner Klasse darstellen kannst.

So ganz grob brauchst du also deine Klasse und
eine Funktionsgruppe, die deine Dynproaufrufe enthält und die entsprechenden Dynpros.

Ich habe das mal folgendermaßen gelöst:

- Transaktion ruft public instanz methode meiner Klasse auf (z.B. START_APPLICATION)
- der CLASS_CONSTRUCTOR und der CONSTRUCTOR werden durchlaufen
- es erfolgt der Aufruf eines Fubas , der die Objektreferenz (me) entgegen nimmt
- dort übernehme ich die Datenreferenz in eine globale referenz der Funktionsgruppe
- ich habe ein Attribut GV_SCREEN an meiner Instanz und rufe aus dem Fuba:
call screen gr_application->gv_screen.
- jetzt wird die Ablauflogik des Dynpros PBO prozessiert
- im pbo rufe ich methoden meiner instanz gr_application auf z.B.
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   TRY .
  2.       gr_application->pbo_1000( ).
  3.     CATCH zcx_exceptions INTO gr_exception.
  4.       gv_message = gr_exception->get_text( ).
  5.       MESSAGE i000 WITH gv_message.
  6.   ENDTRY.
  7.  
GeSHi ©

- analog dazu im PAI: gr_application->pai_1000( ).

Hoffe das hilft ein wenig weiter.

Schöne Grüße

Frank
Ursula4506
...
...
 
Posts: 286
Joined: Fri Apr 15, 2005 8:40 am


Return to Dialogprogrammierung

Who is online

Users browsing this forum: No registered users and 3 guests