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:

  1. Müssen die Texte in der Customizing-Tabelle aufgenommen
    • Nein, da die Texte ja bereits schon in der Datenbank vorhanden sind
  2. Muss hier entwickelt werden?
    • Nein, zu der Customizing-Tabelle wird ein Pflegeview angelegt
  3. 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.