Eigene Dynpro-Bestandteile in Standard-Transaktionen

www.4AP.de - ABAP Syntaxbeispiel: eigene Dynpro-Bestandteile in Standard-Trasaktionen

Beispielcoding: eigene Dynpro-Bestandteile im Standard anlegen (kopieren erlaubt aber auf eigene Gefahr :-))



oftmals sollen in den Standardtransaktionen eigene Dynpro-Bestandteile angezeigt werden. In den Transaktionen aus dem MM (z.B. MM02) und SD (z.B. VA22) ist das von der SAP schon vorgedacht und sehr einfach zu implementieren. Wenn allerdings keine Erweiterung der vorhandenen Strukturen / Tabellen (z.B. MARA bzw. VBAK) vorgenommen werden soll sind auch noch ein paar Zeilen Coding nötig.

In dem Screenshot ist zu erkennen, dass das Dynpro 8459 unter anderem die Felder 'Wettbewerber 1' und 'Wettbewerber 2' enthält. Der Screnshot wurde kurz vor einem Enter (also dem Durchlaufen von PAI und PBO gemacht:

eigene Dynproinhalte in der VA22

In den Eingabefeldern können die Wettbewerber abgelegt werden. Dabei sind NUR die 'Nummern' als Felder zur VBAP hinterlegt. Die Namen der dazugehörenden Wettbewerbernummern sollen in einer Z-Tabelle abgelegt werden und zur Laufzeit in dem violetten Kringel daneben dargestellt werden.

Neben den beiden Feldern sind die Namen vor dem Durchlaufen PAI/PBO noch nicht ausgefüllt.

Nach dem PAI/PBO sieht das anders aus:

- es ist keine Bildbeschreibung verfügbar -

Die dazu nötigen Codingstrecken sind hier dargestellt:
 
*&---------------------------------------------------------------------*
*
* Coded by Thorsten Neubüser - www.4ap.de
*
*&---------------------------------------------------------------------*

Dynpro 8459 Ablaufsteuerung:


					
					
					PROCESS BEFORE OUTPUT.
 *  Verarbeitung vor der Ausgabe
<...>
   CHAIN.
     FIELD wettbew1_name1.
     FIELD wettbew2_name1.

     MODULE zz_wettbew_name1.
   ENDCHAIN.


 PROCESS AFTER INPUT.
 * Verarbeitung nach der Eingabe
<...>  
 * >> TN20091208 Datenfelder für Angebotsverfolgung
   CHAIN.
     FIELD vbap-zwettbew1.
     FIELD vbap-zwettbew2.

     MODULE zz_wettbew_pruefen.
   ENDCHAIN.
 * << TN20091208 Datenfelder für Angebotsverfolgung 




*&---------------------------------------------------------------------*
 *&      Module  ZZ_WETTBEW_PRUEFEN  INPUT
 *&---------------------------------------------------------------------*
 module ZZ_WETTBEW_PRUEFEN input.
 * TN20091208 Datenfelder für Angebotsverfolgung
   INCLUDE Ziva_WETTBEW_PRUEFEN.
 endmodule.                 " ZZ_WETTBEW_PRUEFEN  INPUT

 *&---------------------------------------------------------------------*
 *&      Module  ZZ_WETTBEW_NAME1  OUTPUT
 *&---------------------------------------------------------------------*
 module ZZ_WETTBEW_NAME1 output.

 * TN20091208 Datenfelder für Angebotsverfolgung
   INCLUDE Ziva_WETTBEW_NAME1.
 endmodule.                 " ZZ_AOSD068_WETTBEW_NAME1  OUTPUT
  

					
					*&---------------------------------------------------------------------*
 *&  Include           ZIVA_WETTBEW_PRUEFEN
 *&---------------------------------------------------------------------*
 * TN20091208 Datenfelder für Angebotsverfolgung
 * Dieser Include wird aus dem MODULE ZZ_WIEDERVORLAGE des
 * Include MV45AFZZ im Modulpool SAPMV45A aufgerufen.
 * Es handelt sich um einen Moduleaufruf des Dynpros SAPMV45A 8459
 *
 *   Die Eingaben im Feld Wettbewerber-1 und -2 sollen gegen eine neu
 *   einzurichtende Tabelle geprüft. = ZWETTBEW
 * In die neue Prüftabelle sollen durch den Fachbereich die möglichen
 * Eingabewerte mit Kürzel und Bezeichnung manuell hinterlegt werden

   DATAlv_zwettbew TYPE zwettbew-zwettbew.
   IF NOT vbap-zwettbew1 IS INITIAL.
     SELECT SINGLE zwettbew FROM zwettbew CLIENT SPECIFIED
       INTO lv_zwettbew
      WHERE mandt sy-mandt
        AND zwettbew vbap-zwettbew1.
     IF sy-subrc NE 0" SELECT SINGLE zwettbew FROM zwettbew
*      Message: Wettbewerber &1 (&2) ist nicht in Tabelle ZWETTBEW hinterlegt.
       MESSAGE w321(zaoWITH vbap-zwettbew1 'Wettbewerber 1'.
     ENDIF" sy-subrc NE 0. " SELECT SINGLE zwettbew FROM zwettbew
   ENDIF" NOT vbap-zwettbew1 IS INITIAL

   IF NOT vbap-zwettbew2 IS INITIAL.
     SELECT SINGLE zwettbew FROM zwettbew CLIENT SPECIFIED
       INTO lv_zwettbew
      WHERE mandt sy-mandt
        AND zwettbew vbap-zwettbew2.
     IF sy-subrc NE 0" SELECT SINGLE zwettbew FROM zwettbew
       MESSAGE w321(zaoWITH vbap-zwettbew2 'Wettbewerber 2'.
     ENDIF" sy-subrc NE 0. " SELECT SINGLE zwettbew FROM zwettbew
   ENDIF" NOT vbap-zwettbew2 IS INITIAL

 ***************
 *             *
 *  T       T  *
 *      N      *
 *             *
 *    `---´    *
 *             *
 ***************
					
					*&---------------------------------------------------------------------*
 *&  Include           ZIVA_WETTBEW_NAME1
 *&---------------------------------------------------------------------*
 * TN20091208 Datenfelder für Angebotsverfolgung
 * Dieser Include wird aus dem MODULE ZZ_WIEDERVORLAGE des
 * Include MV45AFZZ im Modulpool SAPMV45A aufgerufen.
 * Es handelt sich um einen Moduleaufruf des Dynpros SAPMV45A 8459
 *
 *   Die Eingaben im Feld Wettbewerber-1 und -2 sollen gegen eine neu
 *   einzurichtende Tabelle geprüft. = ZWETTBEW
 * In die neue Prüftabelle sollen durch den Fachbereich die möglichen
 * Eingabewerte mit Kürzel und Bezeichnung manuell hinterlegt werden

   clearwettbew1_name1wettbew2_name1.

   SELECT SINGLE name1 FROM zwettbew CLIENT SPECIFIED
     INTO wettbew1_name1
    WHERE mandt    sy-mandt
      AND zwettbew vbap-zwettbew1.

   SELECT SINGLE name1 FROM zwettbew CLIENT SPECIFIED
     INTO wettbew2_name1
    WHERE mandt    sy-mandt
      AND zwettbew vbap-zwettbew2.

 ***************
 *             *
 *  T       T  *
 *      N      *
 *             *
 *    `---´    *
 *             *
 *************** 


An passender Stelle (z.B. im Include MV45ATZZ) sind die Felder zu definiern:
					
					* TN20091208 
 DATA:   wettbew1_name1 TYPE name1_gp,
         wettbew2_name1 TYPE name1_gp. 


Sie werden dann über die Namensgleichheit auf das Dynpro transportiert:

Namensgleichheit der Felder transportiert die daten auf das Dynpro

				Namensgleichheit der Felder transportiert die Daten auf das Dynpro