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:
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:
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
DATA: lv_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(zao) WITH 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(zao) WITH 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
clear: wettbew1_name1, wettbew2_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:
|