BildaufbauDer 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:
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:
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:
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:
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.