Vor ein paar Tagen wurde in einem Gruppenchat eines Messengers die Frage gestellt, wie Texte (Name des Lieferanten, Name des Werkes, …) bei der Pflege einer Customizing-Tabelle nachgeladen werden, wenn der Anwender/die Anwenderin die Eingabe mit der Enter-Taste bestätigen. Da ich so eine Anforderung bisher nicht hatte, musste ich mir ich mir erstmal ein Beispiel anschauen, wie SAP sowas macht. Nach kurzer Analyse habe ich dann die Logik verstanden und habe dann das folgende Beispiel erstellt.
Anforderung an den Test:
- Customizing-Tabelle erstellen und einen Weg finden die Texte einzubinden
- Texte sollen nicht eingabebereit sein
Fragestellung und Entscheidung zur Umsetzung:
- Müssen die Texte in der Customizing-Tabelle aufgenommen
- Nein, da die Texte ja bereits schon in der Datenbank vorhanden sind
- Muss hier entwickelt werden?
- Nein, zu der Customizing-Tabelle wird ein Pflegeview angelegt
- Müssen hier Zeitpunkte (Events) des Tabellen-Pflegedialogs genutzt werden
- Nein
Index der Umsetzungsschritte
- Anlegen der Customizing-Tabelle
- Transaktion SE11: Namen vergeben
- Auslieferung und Pflege
- Felder
- Fremdschlüssel
- Technische Einstellungen
- Anlegen des Pflegeviews
- Transaktion SE11: Namen vergeben
- Typ auswählen
- Beschreibung und Tabellenauswahl
- Viewfelder
- Pflegemerkmal für View
- Tabellen-Pflegedialog
- Testen der Umsetzung
- Nähere Erläuterung, warum keine Entwicklung notwendig ist
Umsetzungsschritte
Info: Ich habe alle Popup mit Warnungen und Paketzuweisungen nicht in Artikel aufgenommen. Alle Warnungen, die in diesem Beispiel auftreten habe ignoriert und die Objekte habe ich das lokale Paket $TMP aufgenommen.
- Anlegen der Customizing-Tabelle
- Transaktion SE11: Namen vergeben
- Auslieferung und Pflege
- Felder
- Fremdschlüssel
- Fremdschlüssel für WERKS
- Fremdschlüssel für LIFNR
- Technische Einstellungen
- Anlegen des Pflegeviews
- Transaktion SE11: Namen vergeben
- Typ auswählen
- Beschreibung und Tabellenauswahl
- Viewfelder
- Pflegemerkmal für View
- Tabellen-Pflegedialog
- Tabellenpflegegenerator
- Technische Angaben zum Dialog
- Angaben zum Datentransport
- Testen der Umsetzung
- Transaktion SM30: Customizing durchführen
- Eintrag hinzufügen
- Eintrag mit Enter bestätigen
- Nähere Erläuterung, warum keine Entwicklung notwendig ist
- Dynpro des Pflegeviews
- Modul zum Vervollständigen
- Aufruf des Unterprogramms zum Vervollständigen
- Unterprogramm zum Vervollständigen
Zum Anlegen der Customizing-Tabelle benutze ich die Transaktion SE11. Im Einstiegsbild wähle ich Datenbanktabelle aus, vergebe einen Namen für die Tabelle (Hinweis: Der Name sollte so gut es geht selbstsprechend sein) und drücke die F5-Taste.
Als erstes gebe ich der Tabelle eine Bezeichnung und wähle für die Tabelle die Auslieferungsklasse C (Customizingtabelle).
Meine Tabelle soll die Felder MANDT, WERKS und LIFNR bekommen.
Um weitere Tabellen in einem Pflegeview zur Auswahl zur erhalten, ist es wichtig, dass mindestens ein Feld der Tabelle eine Fremdschlüsselbeziehung erhält.
Bei der Fremdschlüsselanlage für das Werk schlägt SAP automatisch die Tabelle T001W vor, welchen ich auch annehme.
Im Popup für die Fremdschlüsselanlage übernehme ich alle Vorschlagswerte und bestätige es mit Übernehmen.
Bei der Fremdschlüsselanlage für die Lieferantennummer schlägt SAP automatisch die Tabelle LFA1 vor, welchen ich auch annehme.
Im Popup für die Fremdschlüsselanlage übernehme ich alle Vorschlagswerte und bestätige es mit Übernehmen.
Um die Tabelle zu aktivieren muss ich noch die Technischen Einstellungen vornehmen. Dafür speichere ich erstmal die Tabelle und weise sie einem Paket zu. Bei der Datenart habe ich mich für APPL2 und die Größenkategorie 0 entschieden.
Jetzt speicher ich noch die Einstellungen und springe zurück in die Tabelle, welche ich nun aktivieren kann.
Zum Anlegen der Customizing-Tabelle benutze ich die Transaktion SE11. Im Einstiegsbild wähle ich View aus, vergebe einen Namen für den View (Hinweis: Der Name sollte so gut es geht selbstsprechend sein) und drücke die F5-Taste.
Der Typ des Views muss ein Pflege-View sein.
Als erstes gebe ich dem View eine Bezeichnung und trage in den Tabellen die gerade angelegte Tabelle ein und bestätige mit Enter.
Über die Drucktaste „Beziehungen“ kann ich nun die beiden Tabellen, die über die Fremdschlüsselbeziehung gefunden werden hinzufügen.
Nun muss ich noch bestimmen welche Felder der View erhalten soll. Die Auswahl der Felder kann ich über die Drucktaste „Tabellenfelder“ ausrufen.
Durch ein Doppelklick auf die Tabelle öffnet sich die Feldauswahl der Tabelle. Dort wähle ich für die Tabellen T001W und LFA1 jeweils das Feld „NAME1“ aus.
Zusätzlich habe ich natürlich auch noch das Feld „LIFNR“ aus meiner Tabelle eingefügt.
Damit die beiden Namensfelder nur als Ausgabefelder deklariert sind setze ich noch den Wert „R – Viewfeld kann nur gelesen werden“ in der Spalte Pflegemerkmal für View.
Um den View zu aktivieren, ist es notwendig eines der beiden Felder mit dem Namen NAME1 umzubenennen.
Jetzt kann ich den View aktivieren und einem Paket zuordnen.
Um Daten über die Transaktion SM30 zu pflegen benötige ich noch einen Tabellen-Pflegedialog.
Den Tabellenpflegegenerator rufe ich direkt aus der Bearbeitung des Pflegeviews über Hilfsmittel->Tabellenpflegegenerator auf.
Die Funktionsgruppe benenne ich genauso wie den Pflegeview und unter Berechtigungsgruppe benutze ich &NC&. Mein Pflegetyp ist einstufig und bekommt die Dynpronummer 1.
Jetzt kann ich über das Blatt in der Anwendungsfunktionsleiste die Funktionsgruppe und die dazugehörigen Logiken durch SAP anlegen lassen. Auch hier muss wieder angegeben in welchem Paket die Entwicklung aufgenommen werden soll.
Nach dem Anlegen der Funktionsgruppe setzte ich noch das Flag für die Standard Aufzeichnungsroutine, damit Änderungen an dieser Tabelle transportiert werden.
Jetzt habe ich alle Schritte für die Anforderung abgeschlossen und ich kann schauen, ob alles so funktioniert, wie es gewünscht ist.
Die Tabellenpflege kann ich über die Transaktion SM30 durch Angabe der des Viewnamens durchführen.
Beim Hinzufügen eines neuen Eintrags wähle ich jeweils ein Werk und einen Lieferanten aus.
Nach dem Betätigen der Enter-Taste werden nun die Texte zu dem Werk und dem Lieferanten nachgeladen und in der Anzeige aktualisiert.
Wie funktioniert denn nun das Beschaffen der Daten? Das habe ich mir natürlich auch mal ein bisschen angeschaut und werde es hier mal erläutern.
Da hier Daten im Dynpro nachgeladen werden, schaue ich mir die Ablauflogik des Dynpros genauer an. Dort ist mir aufgefallen, dass SAP das Modul „COMPLETE_ZMM_V_WERK_LIFNR“ im PROCESS AFTER INPUT implementiert hat. Dieses Include hat immer den gleichen Aufbau „COMPLETE_
In dem Modul wird ledeglich das Unterprogramm „COMPLETE_EXPROFIELDS“ aufgerufen.
In dem Unterprogramm „COMPLETE_EXPROFIELDS“ wird dann das Unterprogramm „COMPL_ZMM_V_WERK_LIFNR“ aufgerufen. Auch die Benennung des Unterprogramms hat immer den gleichen Aufbau „COMPL_
In dem Unterprogramm „COMPL_ZMM_V_WERK_LIFNR“ werden nun die zusätzlichen Daten aus der Datenbank nachgeladen. Durch diese Art der Implementierung hat SAP uns Entwicklern eine Menge Arbeit abgenommen.