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

Index der Umsetzungsschritte

  1. Anlegen der Customizing-Tabelle
    1. Transaktion SE11: Namen vergeben
    2. Auslieferung und Pflege
    3. Felder
    4. Fremdschlüssel
      1. Fremdschlüssel für WERKS
      2. Fremdschlüssel für LIFNR
    5. Technische Einstellungen
  2. Anlegen des Pflegeviews
    1. Transaktion SE11: Namen vergeben
    2. Typ auswählen
    3. Beschreibung und Tabellenauswahl
    4. Viewfelder
    5. Pflegemerkmal für View
  3. Tabellen-Pflegedialog
    1. Tabellenpflegegenerator
    2. Technische Angaben zum Dialog
    3. Angaben zum Datentransport
  4. Testen der Umsetzung
    1. Transaktion SM30: Customizing durchführen
    2. Eintrag hinzufügen
    3. Eintrag mit Enter bestätigen
  5. Nähere Erläuterung, warum keine Entwicklung notwendig ist
    1. Dynpro des Pflegeviews
    2. Modul zum Vervollständigen
    3. Aufruf des Unterprogramms zum Vervollständigen
    4. Unterprogramm zum Vervollständigen

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.

  1. Anlegen der Customizing-Tabelle
    1. Transaktion SE11: Namen vergeben
    2. 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.

    3. Auslieferung und Pflege
    4. Als erstes gebe ich der Tabelle eine Bezeichnung und wähle für die Tabelle die Auslieferungsklasse C (Customizingtabelle).

    5. Felder
    6. Meine Tabelle soll die Felder MANDT, WERKS und LIFNR bekommen.

    7. Fremdschlüssel
    8. Um weitere Tabellen in einem Pflegeview zur Auswahl zur erhalten, ist es wichtig, dass mindestens ein Feld der Tabelle eine Fremdschlüsselbeziehung erhält.

      1. Fremdschlüssel für WERKS
      2. 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.

      3. Fremdschlüssel für LIFNR
      4. 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.

    9. Technische Einstellungen
    10. 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.

  2. Anlegen des Pflegeviews
    1. Transaktion SE11: Namen vergeben
    2. 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.

    3. Typ auswählen
    4. Der Typ des Views muss ein Pflege-View sein.

    5. Beschreibung und Tabellenauswahl
    6. 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.

    7. Viewfelder
    8. 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.

    9. Pflegemerkmal für View
    10. 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.

  3. Tabellen-Pflegedialog
  4. Um Daten über die Transaktion SM30 zu pflegen benötige ich noch einen Tabellen-Pflegedialog.

    1. Tabellenpflegegenerator
    2. Den Tabellenpflegegenerator rufe ich direkt aus der Bearbeitung des Pflegeviews über Hilfsmittel->Tabellenpflegegenerator auf.

    3. Technische Angaben zum Dialog
    4. 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.

    5. Angaben zum Datentransport
    6. Nach dem Anlegen der Funktionsgruppe setzte ich noch das Flag für die Standard Aufzeichnungsroutine, damit Änderungen an dieser Tabelle transportiert werden.

  5. Testen der Umsetzung
  6. Jetzt habe ich alle Schritte für die Anforderung abgeschlossen und ich kann schauen, ob alles so funktioniert, wie es gewünscht ist.

    1. Transaktion SM30: Customizing durchführen
    2. Die Tabellenpflege kann ich über die Transaktion SM30 durch Angabe der des Viewnamens durchführen.

    3. Eintrag hinzufügen
    4. Beim Hinzufügen eines neuen Eintrags wähle ich jeweils ein Werk und einen Lieferanten aus.

    5. Eintrag mit Enter bestätigen
    6. Nach dem Betätigen der Enter-Taste werden nun die Texte zu dem Werk und dem Lieferanten nachgeladen und in der Anzeige aktualisiert.

  7. Nähere Erläuterung, warum keine Entwicklung notwendig ist
  8. 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.

    1. Dynpro des Pflegeviews
    2. 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.

    3. Modul zum Vervollständigen
    4. In dem Modul wird ledeglich das Unterprogramm “COMPLETE_EXPROFIELDS” aufgerufen.

    5. Aufruf des Unterprogramms zum Vervollständigen
    6. 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_“.

    7. Unterprogramm zum Vervollständigen
    8. 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.