Customizing-Tabelle mit Texten aus einer bestehenden Tabelle
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
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
Anlegen der Customizing-Tabelle
Transaktion SE11: Namen vergeben
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.
Auslieferung und Pflege
Als erstes gebe ich der Tabelle eine Bezeichnung und wähle für die Tabelle die Auslieferungsklasse C (Customizingtabelle).
Felder
Meine Tabelle soll die Felder MANDT, WERKS und LIFNR bekommen.
Fremdschlüssel
Um weitere Tabellen in einem Pflegeview zur Auswahl zur erhalten, ist es wichtig, dass mindestens ein Feld der Tabelle eine Fremdschlüsselbeziehung erhält.
Fremdschlüssel für WERKS
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.
Fremdschlüssel für LIFNR
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.
Technische Einstellungen
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.
Anlegen des Pflegeviews
Transaktion SE11: Namen vergeben
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.
Typ auswählen
Der Typ des Views muss ein Pflege-View sein.
Beschreibung und Tabellenauswahl
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.
Viewfelder
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.
Pflegemerkmal für View
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.
Tabellen-Pflegedialog
Um Daten über die Transaktion SM30 zu pflegen benötige ich noch einen Tabellen-Pflegedialog.
Tabellenpflegegenerator
Den Tabellenpflegegenerator rufe ich direkt aus der Bearbeitung des Pflegeviews über Hilfsmittel->Tabellenpflegegenerator auf.
Technische Angaben zum Dialog
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.
Angaben zum Datentransport
Nach dem Anlegen der Funktionsgruppe setzte ich noch das Flag für die Standard Aufzeichnungsroutine, damit Änderungen an dieser Tabelle transportiert werden.
Testen der Umsetzung
Jetzt habe ich alle Schritte für die Anforderung abgeschlossen und ich kann schauen, ob alles so funktioniert, wie es gewünscht ist.
Transaktion SM30: Customizing durchführen
Die Tabellenpflege kann ich über die Transaktion SM30 durch Angabe der des Viewnamens durchführen.
Eintrag hinzufügen
Beim Hinzufügen eines neuen Eintrags wähle ich jeweils ein Werk und einen Lieferanten aus.
Eintrag mit Enter bestätigen
Nach dem Betätigen der Enter-Taste werden nun die Texte zu dem Werk und dem Lieferanten nachgeladen und in der Anzeige aktualisiert.
Nähere Erläuterung, warum keine Entwicklung notwendig ist
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.
Dynpro des Pflegeviews
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_“. Also immer wenn man diese Includs in einem Dynpro sieht, bedeutet es, dass hier weitere Daten nachgeladen und in die Anzeige übernommen werden.
Modul zum Vervollständigen
In dem Modul wird ledeglich das Unterprogramm “COMPLETE_EXPROFIELDS” aufgerufen.
Aufruf des Unterprogramms zum Vervollständigen
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_“.
Unterprogramm zum Vervollständigen
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.