Bildaufbau

Der Bildaufbau wird in Steuertabellen hinterlegt. Anwendungen aus nachgelagerten Entwicklungsstufen können bestehende Bilder erweitern und umkonfigurieren. Das BDT unterscheidet beim Bildaufbau die Entitäten

  • Feldgruppe

  • Sicht

  • Abschnitt

  • Bild

Feldgruppen

In einer Feldgruppe werden die Felder zusammengefaßt, deren Eingabebereitschaft gemeinsam festgelegt wird. Die Einstellung pro Feldgruppe wird innerhalb der Feldmodifikationen vorgenommen.

Eine Feldgruppe darf nur Felder einer Anwendung enthalten. Ein Kunde sollte die Definition von SAP ausgelieferter Feldgruppen weder verändern noch erweitern, da dies eine Modifikation darstellt. Statt dessen sollte er eigene Feldgruppen definieren und diesen eigene Sichten zuordnen.

Menüpfad: Anfang des Navigationspfads Steuerung Navigationsschritt <Objekt Navigationsschritt > Navigationsschritt Bildaufbau Navigationsschritt Feldgruppen Ende des Navigationspfads

Vorgehen: Zum Definieren einer eigenen Feldgruppe gehen Sie wie folgt vor:

  • Feldgruppe definieren

Die Bezeichnung einer Feldgruppe ist sprachabhängig zu pflegen und erscheint bei der Pflege der Feldmodifikation.

Die durch den Kunden eingestellte Feldmodifikation kann durch ein Programm nachträglich abgeändert werden, falls feste logische Abhängigkeiten bestehen.

Ist für eine Feldgruppe Mußeingabe eingestellt, prüft das BDT vor dem Sichern der Daten automatisch, ob die Felder gefüllt sind. Ist dies nicht der Fall, wird eine Fehlermeldung ausgelöst. Bei einigen Feldgruppen ist eine andere Art der Mußfeldprüfung notwendig. Bei diesen Feldgruppen kann die automatische Prüfung ausgeschaltet und durch eine individuelle Prüfung ersetzt werden. Ein Beispiel hierfür stellen Bankverbindungen beim Geschäftspartner dar. Die individuelle Prüfung löst nur dann eine Fehlermeldung aus, wenn keine Bankverbindung eingegeben wurde. Eine spezifische Mußfeldprüfung auf Feldebene findet nicht statt.

  • Felder der Feldgruppe zuordnen

Tragen Sie hier die Namen der Dynprofelder ein, die der Feldgruppe zugeordnet werden. Dabei sollten Sie nicht nur Eingabefelder angegeben, sondern auch die Feldnamen von Erläuterungstexten, Arbeitsfeldern etc. Geben Sie je Feld an, ob es sich um ein eingabebereites Feld handelt oder nicht.

Namenskonvention: Für Feldgruppen sind die Werte 1 bis 1750 zulässig. Während für Entwicklungspartner die Gruppen 750-1000 und für Kunden die Gruppen 600 bis 749 reserviert sind, sollten die Bereiche innerhalb der SAP mit der für das Anwendungsobjekt verantwortlichen Entwicklungsgruppe abgestimmt werden. Für den Geschäftspartner (Anwendungsobjekt BUPA) sowie die Geschäftspartnerbeziehungen (Anwendungsobjekt BUPR) ist das die Entwicklungsgruppe Geschäftspartner .

Sichten

Eine oder mehrere Feldgruppen ergeben eine Sicht. Innerhalb einer Sicht werden alle Attribute zusammengefaßt, die gemeinsam angezeigt und verprobt werden. Die Felder einer Sicht können beim Bildaufbau nicht getrennt werden, da diese auf einem gemeinsamen Subscreen Platz finden.

Eine Sicht darf nur Felder einer Anwendung enthalten. Eine nachgelagerte Anwendung darf eine Sicht nicht erweitern, sondern sollte für ihre Attribute eigene Sichten anlegen und diesen Sichten eigene Subscreens zuordnen. Gleiches gilt auch für Kunden, da die Erweiterung einer Sicht eine Modifikation bedeuten würde.

Menüpfad: Anfang des Navigationspfads Steuerung Navigationsschritt <Objekt Navigationsschritt > Navigationsschritt Bildaufbau Navigationsschritt Sichten Ende des Navigationspfads

Vorgehen: Zur Definition einer Sicht führen Sie folgende Schritte durch:

  • Subscreen erstellen

Legen Sie mit Hilfe des Screen Painters das Dynpro an. Beachten Sie dabei folgende Hinweise:

  • Dynproattribute:

Markieren Sie den Dynprotyp ‚Subscreen‘.

  • Layout:

In der Regel müssen Sie keinen Rahmen um Ihre Daten ziehen. Dieser wird vom BDT automatisch um die Felder eines Abschnittes (siehe Abschnitte) gezogen.

Der Feldname einer auf dem Subscreen positionierten Drucktaste sollte folgender Namenskonvention entsprechen: PUSH_<Menüeintrag>. Ist dies der Fall, blendet die Feldmodifikation des BDT die Drucktaste automatisch aus, wenn der Menüeintrag nicht aktiv ist.

  • Ablauflogik:

Erstellen Sie ein PBO-Modul, das den Funktionsbaustein BUS_PBO aufruft; rufen Sie dieses PBO-Modul aus dem PBO jedes Ihrer Subscreens auf. Enthält Ihr Subscreen ein Table Control, übergeben Sie beim Aufruf des BUS_PBO die Daten zu Ihrem Table Control an das BDT mit dem Parameter C_TC1 .

Erstellen Sie ein PAI-Modul, das den Funktionsbaustein BUS_PAI aufruft. Rufen Sie dieses PAI-Modul aus PAI jedes Ihrer Subscreens auf.

Führen Sie keine Feldprüfungen innerhalb der Ablauflogik durch, weder innerhalb eines Moduls noch innerhalb eines daraus aufgerufenen Unterprogramms. Prüfungen zu einer Sicht sollten generell innerhalb eines separaten Funktionsbausteins durchgeführt werden, dessen Name im Feld Nach der Eingabe hinterlegt wird (siehe unten).

Führen Sie das Nachlesen von Texttabellen zur Anzeige von Prüftexten und andere Aktionen zu PBO innerhalb des Funktionsbausteins durch, dessen Name im Feld Vor der Ausgabe zu hinterlegen ist (siehe nächster Abschnitt).

  • Funktionsbaustein Vor dem Bildaufruf anlegen

Dieser Zeitpunkt wird vom BDT für alle Sichten eines Bildes ausgelöst, wenn von einem anderen auf dieses Bild gesprungen wird. In der Regel benötigen Sichten mit Step-Loop bzw. Table-Control hier einen Funktionsbaustein. Darin stellt der Entwickler sicher, daß beim Neuaufruf des Bildes

  • die erste Seite der Einträge angezeigt wird.

  • die Einträge in der richtigen Sortierreihenfolge ausgegeben werden.

  • alle Einträge entmarkiert sind.

Beispiel : Beim GP existiert die Sicht ‚Adressübersicht‘, für die ein Funktionsbaustein zum Zeitpunkt Vor dem Bildaufruf hinterlegt wurde.

Namenskonvention : <Anwendung>_<Anwendungsobjekt>_PBC_<Sicht>

(Kunde: Funktionsbausteinname erhält zusätzlich das Präfix ‚Y_‘ oder ‚Z_‘).

  • Funktionsbaustein Vor der Ausgabe anlegen

Dieser Zeitpunkt wird für alle Sichten des aktuellen Bildes ausgelöst, bevor der Aufruf der Subscreens im PBO erfolgt. Hier können Texttabellen für die Ausgabe von Prüftexten nachgelesen werden.

Beispiel : Innerhalb des GP existiert das Feld Branche . Die möglichen Branchen werden in einer Customizingtabelle hinterlegt. Ist im Eingabefeld eine Branchen-ID eingetragen, wird die zur Customizingtabelle zugehörige Texttabelle so selektiert, daß die Bezeichnung der Branche in der Anmeldesprache hinter dem Eingabefeld ausgegeben werden kann.

Namenskonvention : <Anwendung>_<Anwendungsobjekt>_PBO_<Sicht> (Kunde: Funktionsbausteinname erhält zusätzlich das Präfix ‚Y_‘ oder ‚Z_‘).

  • Funktionsbaustein Nach der Eingabe anlegen

Dieser Zeitpunkt wird für alle Sichten des aktuellen Bildes ausgelöst, nachdem der Aufruf aller beteiligten Subscreens in PAI erfolgt ist. Führen Sie hier die Feldprüfungen zur Sicht durch. Hinweise zum Vorgehen bei Feldprüfungen finden Sie unter dem Abschnitt Sichten.

Namenskonvention : <Anwendung>_<Anwendungsobjekt>_PAI_<Sicht>

(Kunde: Funktionsbausteinname erhält zusätzlich das Präfix ‚Y_‘ oder ‚Z_‘).

  • Sicht definieren

Beschreibung: Neben der Bezeichnung müssen hier Programmname und Dynpronummer des Subscreens angegeben werden. Auch die Namen der Funktionsbausteine für die oben angeführten Zeitpunkte wird hier hinterlegt.

Namenskonvention : <Anwendung><N>

Die Identifikation einer Sicht sollte immer 6-stellig sein. Sie sollte mit der Anwendungs-ID beginnen, gefolgt von numerischen Zeichen.

  • Zuordnung Sicht→Feldgruppen

Hinterlegen Sie hier jeweils die Feldgruppen, die zur Sicht gehören.

Weitere Prüfungen zu Sichten

Innerhalb der Definition einer Sicht kann die besitzende Anwendung den Namen ihres Prüffunktionsbausteins im Feld Nach der Eingabe hinterlegen. Wollen andere Anwendungen eigene Prüfungen zu dieser Sicht hinzufügen, können diese den Namen ihres Prüffunktionsbausteins im Unterpunkt Weitere Prüfungen hinterlegen. Diese Bausteine werden im PAI direkt nach dem von der besitzenden Anwendung hinterlegten Funktionsbaustein aufgerufen. Hinweise zu Datenprüfungen finden Sie im nächsten Abschnitt.

Namenskonvention: <Anwendung>_<Anwendungsobjekt>_PAI_<Sicht>

(Kunde: Funktionsbausteinname erhält zusätzlich das Präfix ‚Y_‘ oder ‚Z_‘).

Beispiel: Eine Kundenanforderung für den Geschäftspartner war, den Nachnamen einer Person auf die Existenz zumindest eines Vokals zu prüfen. Diese Prüfung konnte jedoch nicht generell implementiert werden, da in einigen Ländern durchaus Namen ohne Vokal vorkommen können. Die Lösung für den Kunden besteht nun darin, diese Abfrage über eine weitere Prüfung zu der von SAP ausgelieferten Sicht selbst zu realisieren.

Vorgehen: Innerhalb des Prüffunktionsbausteins holt sich die Anwendung den Tabelleninhalt von der tabellenbesitzenden Anwendung. Dazu nutzt sie den für die Tabelle im Feld Daten lesen hinterlegten Funktionsbaustein. Danach wird die Prüfung durchgeführt und gegebenenfalls eine Nachricht über den Message-Handler (Funktionsbaustein BUS_MESSAGE_STORE) ausgegeben.

Hinweis: Im Gegensatz zu einer Prüfung innerhalb des Zeitpunktes DCHCK erfolgen die weiteren Prüfungen zu einer Sicht unmittelbar nach der Eingabe. Der Zeitpunkt DCHCK wird dagegen erst vor dem Sichern der Daten prozessiert.

Vorgehen bei Feldprüfungen

Eines der Ziele für die Entwicklung mit dem BDT ist die strikte Trennung zwischen Oberfläche und Programmlogik. Nur so kann sichergestellt werden, daß auch bei Direct Input und fremder Oberfläche alle Prüfungen durchgeführt werden. Für folgende Prüfungen, die standardmäßig durch das Dynpro durchgeführt werden, sollten Sonderregelungen beachtet werden:

  • Fremdschlüsselprüfung

Zur Vermeidung dieser Prüfung durch das Dynpro entmarkieren Sie das Feld ‚Fremdschlüssel‘ in den Feldattributen. Als Ersatz programmieren Sie die Fremdschlüsselprüfung innerhalb des Funktionsbausteins Nach der Eingabe zur Sicht.

Alternativ dazu können Sie die Fremdschlüsselprüfung im Dialog nutzen, müssen dann aber diese Prüfung im Funktionsbaustein Nach der Eingabe für den Direct Input programmieren (Kennzeichen für Direct Input abfragen, dessen Wert zum Zeitpunkt ISSTA ermittelt werden kann).

  • Datentypabhängige Prüfung

Diese Prüfungen werden automatisch vom Dynpro durchgeführt, wenn sich Felder besonderer Typen auf dem Dynpro befinden. (Z.B. CURR (Währungsabhängiges Betragsfeld), DATS (Datumsfeld), INT* (Integer) und NUMC (Characterfeld nur mit Ziffern)). Die Prüfung zum Datentyp können Sie nur umgehen, indem Sie statt des Originalfeldes ein CHAR-Feld gleicher Länge auf das Dynpro übernehmen.

Folgendes Vorgehen stellt eine der Möglichkeiten beim Umgang mit diesen Feldern dar:

  • Legen Sie innerhalb einer Struktur ein Arbeitsfeld vom Datentyp CHAR an, dessen Länge der Ausgabelänge des Datenbankfeldes entspricht.

  • Nehmen Sie statt des Datenbankfeldes dieses Arbeitsfeld in den Subscreen auf

  • Rufen Sie zum Zeitpunkt ISDAT einen der BDT-Servicefunktionsbausteine zur Initialisierung auf. Diese Funktionsbausteine ermitteln aus dem Wert des Datenbankfeldes den aufbereiteten Wert für das Dynprofeld. Derzeit existieren die Funktionsbausteine

  • BUS_DATEFIELD_START für Datumsfelder

  • BUS_NUMBERFIELD_START für Zahlen und währungsabhängige Beträge.

  • Rufen Sie innerhalb des PAI-Funktionsbausteins zur Sicht den BDT-Servicefunktionsbaustein zur Eingabeprüfung/-konvertierung auf. Das BDT bietet folgende Funktionsbausteine an:

  • BUS_DATEFIELD_PAI für Datumsfelder

  • BUS_NUMBERFIELD_PAI für Zahlen und währungsabhängige Beträge.

Beispiel: Innerhalb der Funktionsgruppe FBU0 (Anwendung FI zum Anwendungsobjekt BUPA) existieren folgende Beispiele:

  • Feld KNB1-DATLZ (Datum der letzten Verzinsung)

  • Innerhalb des Funktionsbausteins FI_BUPA_EVENT_ISDAT wird in der Form KNB1_ISDAT der BDT-Funktionsbaustein BUS_DATEFIELD_START aufgerufen

  • Innerhalb des Funktionsbausteins FI_BUPA_PAI_FI2100 wird in der Form DATLZ_CHECK der BDT-Funktionsbaudstein BUS_DATEFIELD_PAI aufgerufen.

  • Feld KNB1-WEBTR (Wechsellimit in Hauswährung)

  • Innerhalb des Funktionsbausteins FI_BUPA_EVENT_ISDAT wird in der Form KNB1_ISDAT der BDT-Funktionsbaustein BUS_NUMBERFIELD_START aufgerufen

  • Innerhalb des Funktionsbausteins FI_BUPA_PAI_FI2410 wird in der Form WEBTR_CHECK der BDT-Funktionsbaustein BUS_NUMBERFIELD_PAI aufgerufen.

Ähnlich wie bei Fremdschlüsselprüfungen besteht auch bei Datentypen alternativ die Möglichkeit, diese Prüfung im Dialog vom Dynpro durchführen zu lassen. Für den Direct Input muß dann aber dennoch das oben beschriebene Verfahren angewendet werden.

  • Ausgabe von Nachrichten

Geben Sie Nachrichten nie direkt mit Hilfe der Message-Anweisung aus. Dies führt zu Problemen bei Direct Input und fremder Oberfläche. Rufen Sie statt dessen den Funktionsbaustein BUS_MESSAGE_STORE auf. Diesem Baustein können Sie unter anderem folgende Informationen mitgeben:

  • Nachrichtentyp

  • Nachrichtenklasse

  • Nachrichtennummer

  • Parameter zur Nachricht

  • Name des Feldes, auf das der Cursor gestellt wird

  • Namen der von der Nachricht betroffenen Felder; diese werden hell-leuchtend dargestellt.

Abschnitte

Eine oder mehrere Sichten werden zusammengefaßt zu einem Abschnitt. Das BDT zieht automatisch einen Rahmen um jeden Abschnitt. Einzige Ausnahme bildet der erste Abschnitt eines Bildes, in dem die Kopfdaten ausgegeben werden. Die SAP-Ergonomie schreibt vor, daß um diese Daten kein Rahmen gezogen werden darf. Neben der Bezeichnung hinterlegen Sie für einen Abschnitt den ebenfalls sprachabhängigen Titel, der beim Dialog in der linken oberen Ecke des Rahmens ausgegeben wird.

Menüpfad: Anfang des Navigationspfads Steuerung Navigationsschritt <Objekt Navigationsschritt > Navigationsschritt Bildaufbau Navigationsschritt Abschnitte Ende des Navigationspfads

Vorgehen: Zur Definition eines Abschnitts führen Sie folgende Schritte durch:

  • Abschnitt definieren

Füllen Sie pro Abschnitt Bezeichnung und Titel aus, die beide sprachabhängig hinterlegt werden. Beim Dialog erscheint der Titel in der linken oberen Ecke des Rahmens.

Namenskonvention: <Anwendung><N>

Die Identifikation eines Abschnitts sollte immer 6-stellig sein. Sie sollte mit der Anwendungsidentifikation beginnen, gefolgt von numerischen Zeichen.

  • Zuordnung Abschnitt→Sicht

Hinterlegen Sie hier die Sichten, die zu einem Abschnitt gehören. Die Reihenfolge der Sichten innerhalb eines Abschnittes wird durch die Positionsnummer festgelegt.

Namenskonvention: Die Positionsnummer ist 7-stellig. Jeder Entwicklungsschicht steht eine Stelle zur Verfügung. Die Stellen von links bis hin zur eigenen Stelle sind frei vergebbar, damit bestimmt die Anwendung die Position der Sicht innerhalb des Abschnitts gegenüber den Sichten der vorgelagerten Entwicklungsschichten. Die Ziffern rechts der eigenen Stelle müssen ‚0‘ sein.

Folgende Stellen sind für die Entwicklungsschichten vorgesehen:

  • Anwendungsbasis 1+2

  • Standardanwendungen 3

  • Branchenanwendungen 4

  • Entwicklungspartner 5

  • Kunde (Zentrale) 6

  • Kunde (Filiale) 7

Bilder

Das Bild stellt die größte Einheit beim Bildaufbau dar. Mehrere Abschnitte werden zu einem Bild zusammengefaßt. Neben den mit dem BDT erstellten Bildern können über die Auswahl Fremde Bilder auch Bilder integriert werden, die nicht mit dieser Technik erstellt sind.

Menüpfad: Anfang des Navigationspfads Steuerung Navigationsschritt <Objekt Navigationsschritt > Navigationsschritt Bildaufbau Navigationsschritt Bilder Ende des Navigationspfads

Vorgehen: Zur Erstellung eines Bildes führen Sie folgende Schritte durch:

  • Bild definieren

Neben der Bezeichnung geben Sie als weiteren sprachabhängigen Text auch den bildabhängigen Teil des Titels an. Dieser wird in die Bestimmung des kompletten Bildtitels einbezogen (siehe Bildtitel ). Außerdem können Sie festlegen, ob das Bild als Fullscreen oder als Popup erscheinen soll.

Auch Bilder, die nicht mit dem BDT konfiguriert wurden, können in den Ablauf integriert werden. Markieren Sie dazu das Kennzeichen ‚Fremdes Bild‘ und hinterlegen Sie den Namen des Funktionsbausteins zum Aufruf dieses Bildes. Dieser Baustein wird vom BDT automatisch gerufen, sobald auf das fremde Bild navigiert wird. Ein Beispiel hierfür bilden die GP-Beziehungen beim Geschäftspartner, deren Übersicht als fremdes Bild integriert wurde.

Namenskonvention: <Anwendung><N>

Die Identifikation eines Bildes sollte immer 6-stellig sein. Sie sollte mit der Anwendungs-ID beginnen, gefolgt von numerischen Zeichen.

  • Zuordnung Bild→Abschnitte

Hinterlegen Sie hier die Abschnitte, die zu einem Bild gehören. Die Reihenfolge der Abschnitte innerhalb eines Bildes wird durch die Positionsnummer festgelegt.

Namenskonvention: Die Namenskonvention für die Positionsnummer entspricht sinngemäß der für die Positionsnummer bei der Zuordnung Abschnitt→Sicht (siehe Abschnitt).

Customizing Bildaufbau/Bildfolge per Drag&Drop

Beschreibung: Mit Hilfe des Visualizer Configuration Tool (VCT) haben Kunden die Möglichkeit, die von SAP ausgelieferten Bilder der Hauptbildfolge sowie die Hauptbildfolge selbst innerhalb des Customizings per Drag&Drop zu ändern. Diese Änderungen sind, wie alle anderen Customizing-Aktivitäten auch, ans Transportwesen angeschlossen. Die vom Kunden durchgeführten Änderungen sind releasefest, d.h. sie werden beim Releasewechsel nicht von SAP überschrieben.

Im einzelnen stehen dem Kunden folgende Funktionen zur Verfügung:

  • Modus Bildaufbau

  • Sicht beliebig verschieben, auch auf andere Bilder

  • Abschnitt beliebig verschieben, auch auf andere Bilder

  • Titel eines Abschnittes ändern (Doppelklick im Abschnitt außerhalb einer Sicht)

  • Titel eines Bildes ändern (Doppelklick im Bild außerhalb eines Abschnittes)

  • Sicht löschen (diese wandert in den Vorrat nicht verwendeter Sichten)

  • Abschnitt löschen (die zugeordneten Sichten wandern in den Vorrat nicht verwendeter Sichten)

  • Sicht einfügen (aus dem Vorrat nicht verwendeter Sichten)

  • Leeren Abschnitt einfügen

  • Modus Bildfolge

  • Bild beliebig verschieben

  • Titel eines Bildes ändern (Doppelklick im Bild)

  • Bild löschen (die Sichten wandern in den Vorrat nicht verwendeter Sichten)

  • Leeres Bild einfügen

  • Übergreifende Funktionen

  • SAP-Einstellungen zurückholen (die vom Kunden durchgeführten Änderungen gehen verloren)

Verwendet ein Anwendungsobjekt die Teilbarkeit, können Bildaufbau und Bildfolge je Objektteil eingestellt werden. Wird die Teilbarkeit nicht verwendet, kann nur eine Bildkonfiguration vom Kunden erstellt werden.

Aktionen: Wollen Sie die Konfiguration für Ihr Anwendungsobjekt nutzen, müssen Sie lediglich eine Einstelltransaktion für die Einstellaktivität 0104 definieren (siehe Grundeinstellungen , Einstelltransaktionen).

Ausblick: Die Funktionalität des VCT soll in den nächsten Releases Schritt für Schritt ausgebaut werden. Die Konfiguration aller Bildfolgen bzw. der Zusatzbilder, die Integration der Feldmodifikation, sowie die Nutzung des VCT auch durch den Entwickler sind die nächsten Schritte.