Harte Codingänderungen im generierten Coding Tabellenpflege (SM30)

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Siehe Tabellenpflege (Transaktion SM30).

Legt man in SE11 einen Tabellenpflegedialog für eine Tabelle oder View an, so wird eine Funktionsgruppe angelegt, bzw. genutzt. Dieses Coding ist im Kundennamensraum Z/Y und kann geändert werden.

Zur Vorsicht

  • Man sollte sich bewußt machen, dass man mit der folgenden Vorgehensweise das generierte Coding vom Pflegedialog ändert. Das ist im Prinzip auch keine Modifikation, da es eine Z-Fuktionsgruppe ist. Aber generiert man den Pflegedialog neu, dann würden auch die eigenen Änderungen verloren gehen.
  • Diese Vorgehensweise sollte daher nur bei wirklich kleinen Änderungen verwendet werden und wenn man erwartet, dass an dieser Tabellenpflege hinterher kaum noch Änderungen nötig sind.
  • Entsprechend sollte man nach den eigenen Änderungen möglichst den Pflegeview nicht neu generieren lassen, bzw. die eigenen Änderungen sichern, um sie dann schnell wiederherstellen zu können.
  • In aller Regel ist von dieser harten Änderung am Z-Coding eher abzuraten. Sehr häufig gibt es viel später doch nötige Änderungen am Tabellenpflegedialog und die vorhandenen Entwickler sind sich häufig dann nicht bewusst, dass hier Funktionalität bei der Neugenerierung vom Tabellenpflegedialog verloren gehen kann.
  • Meist sollte man den sauberen Weg und den Tabellenpflegedialog über Tabellenpflege SM30 mit Zeitpunkten anpassen gehen.

Projektbeispiel

  • In einem Projektbeispiel wurde ein zweistufiger Pflegeview für eine Tabelle ZSD_MAT_PRODJAHR generiert in die gleichnamige Funktionsgruppe ZSD_MAT_PRODJAHR.
  • Die beiden Felder AEDAT und UNAME sollen vom Pflegeview selber gefüllt, bzw. aktualisiert werden mit dem Systemdatum SY-UNAME und dem aktuellen User SY-UNAME.


Tabelle

SM30 0.jpg

Eingabebereitschaft entfernen im Layout vom Dynpro

Damit die Felder für das Änderungsdatum und den User auch nicht bewußt vom User zu ändern sind, werden diese Felder im SM30B 4.jpg auf Anzeige geändert.


SM30B 5.jpg


Die Checkbox "Eingabefeld" wird entfernt.

SM30B 6.jpg

Anpassen Coding im PBO und PAI vom Dynpro

Es wurden nun im Coding der genierten Funktionsbaustein im Detailbild vom Pfledialog (Funktionsgruppe ZSD_MAT_PRODJAHR) im Dynpro 0002 2 Module hinzugefügt:

  • Beim Ereignissen PBO (Process Before Output) Modul INIT_ZUSATZ
  • Beim Ereignis PAI (Process After Input) Modul PAI_ZUSATZ

SM30B 1.jpg


Beim Ereignis PBO wird nun zusätzlich das Modul INIT_ZUSATZ aufgerufen.

  • Wenn das Feld "zsd_mat_prodjahr-aedat" initial ist, wird es mit dem Systemdatum gefüllt.
  • Wenn das Feld "zsd_mat_prodjahr-uname" initial ist, wird es mit dem aktuellen User gefüllt.

SM30B 2.jpg


Beim Ereignis PAI wird nun zusätzlich das Modul PAI_ZUSATZ aufgerufen.

  • Wenn der Pflegeview nicht im Anzeigemodus aufgerufen wird, ist die Variable <STATUS>-UPD_FLAG = 'X'.
  • Das Feld "zsd_mat_prodjahr-aedat" wird mit dem Systemdatum gefüllt.
  • Das Feld "zsd_mat_prodjahr-uname" wird mit dem aktuellen User gefüllt.

SM30B 3.jpg