Was ist bei Tabs in Verbindung mit SAP Screen Personas zu beachten?
Im Bereich UI-Technologie befindet sich derzeit das Addon SAP Screen Personas auf dem Vormarsch. Es bietet viele Möglichkeiten, klassische Dynpro-Transaktionen, wie man sie aus der SAP GUI kennt, sowohl optisch als auch funktional an die besonderen Bedürfnisse auch bestimmter Benutzergruppen im Unternehmen anzupassen. Bei der Entwicklung stößt dieses Addon jedoch an manchen Stellen noch an seine Grenzen, die entweder bereits durch besondere Mechanismen überwunden oder (hoffentlich) in zukünftigen Release-Ständen angegangen werden. So auch bei der Bearbeitung von Dynpros mit verschiedenen Tabs.
Sie erhalten die Komplettlösung – Ihr Projekt machen wir zu unserem Projekt. Wir sind Ihr Dienstleiter für Ihr Entwicklungsprojekt, das den Anwender in den Mittelpunkt stellt.
Gerne spreche ich mit Ihnen über Ihre Ausgangslage und zeige Lösungsmöglichkeiten auf. Auf Wunsch unterbreite ich Ihnen im Anschluss ein unverbindliches Angebot.
Kontaktieren Sie mich: Telefon 0211.9462 8572-16 oder per E-Mail info@erlebe-software.de
Ingo Biermann, Fachbereichsleiter
Wo liegt das Problem?
Die Anpassung eines Dynpros ohne Besonderheiten ist simpel: Jedes UI-Element kann einzeln angefasst und in seinen Eigenschaften verändert, verschoben oder ausgeblendet werden. Liegt jedoch ein Dynpro mit Tabs vor, wie in Abbildung 1 zu sehen, gibt es eine technisch begründete Schwierigkeit, die bei den ersten Versuchen ohne Hilfestellung durchaus eine Hürde darstellt.
Wie bei normalen Dynpros wechselt der Entwickler in den Bearbeitungsmodus und hat einen festen Plan: Von den vorhandenen Tabs sollen Informationen auf nur einigen wenigen Tabs aggregiert werden und alle anderen für den Benutzer ausgeblendet werden. Die dafür vorzunehmenden Schritte scheinen auch eindeutig: Tabs auswählen, Informationen per Drag & Drop aus den Tabs ziehen, Tab ausblenden und die Informationen in den gewünschten Tabs zusammenführen. Munter macht sich der Entwickler an die Arbeit: Bearbeitungsmodus, auf den zu ändernden Tab klicken – doch nichts passiert? Hier sind wir schon an der ersten, sehr trivialen Besonderheit: Mit dem einfachen Klick auf einen Tabreiter wählt man das UI-Element “Tabreiter” aus, wodurch zum Beispiel Schriftfarbe und Hintergrund geändert werden können. Erst per Doppelklick auf den Tabreiter wird in den Bearbeitungsmodus der tatsächlichen Tab-Inhalte gewechselt.
Wo sind die Hürden?
Eine Menge von Tabreitern ist technisch in SAP Screen Personas in drei Teile, abgesehen vom eigentlichen “TabItemContent”, unterteilt:
1. TabControl
Der TabControl umfasst alle TabItems. Er ist sozusagen das Behältnis für alle Tabs und deren Inhalte und kontrolliert die Sichtbarkeit von TabItems und das Caching der Inhalte.
2. TabItem
Das TabItem kontrolliert die Verfügbarkeit und Anzeige des Tabs selbst sowie die Farben des Hintergrunds, der Schrift und des Rands. Dies ist das Element, das im Bearbeitungsmodus bei einem Doppelklick theoretisch in den Tab wechselt, wenn die Voraussetzungen erfüllt sind.
3. TabHeader
Der TabHeader steuert Inhalt und Sichtbarkeit des Textes.
Wichtig für den Entwickler ist das Wissen um das Zusammenspiel von TabControl und TabItem. Angenommen der Entwickler kopiert den Basic View, wechselt in den Bearbeitungsmodus und klickt doppelt auf das gewünschte Tabitem, passiert … nichts! Doch warum ist das so?
Die Mechanik des Cachings in SAP Screen Personas
Ein TabItem wechselt nur dann in den Bearbeitungsmodus, wenn dieser zuvor gecacht wurde. Genau hier kommt der TabControl ins Spiel. Dieser bildet in SAP Screen Personas den äußeren Rahmen um den Block der TabItems und TabItemContents und steuert wie oben kurz beschrieben die Sichtbarkeit, aber – für den Entwickler besonders interessant – auch das Caching der Inhalte. Wurde nichts gecacht, wird auch nichts angezeigt!
Mit einem Doppelklick auf diesen Rahmen im Bearbeitungsmodus öffnet sich das Popup, das die Basis für die Bearbeitung von Tabs bildet. In diesem unten zu sehenden Popup muss für die Bearbeitung von verschiedenen Tabs der Haken bei “Tab caching enabled” gesetzt sein.
Wird das Fenster dann bestätigt, erscheint ein neues Symbol neben den TabItems:
Anschließend muss einmal auf “Save & Exit” geklickt werden. SAP Screen Personas cached dann sowohl die UI-Elemente als auch die kontextbezogenen Inhalte der TabItemContents. Sind alle Inhalte, die in der Spalte Caching zuvor mit dem einem Haken versehen wurden, gecacht, wird das Symbol grün:
Jetzt kann im Bearbeitungsmodus wie gewünscht per Doppelklick in die anderen Tabs gewechselt werden. Auch die Inhalte können jetzt wie gewohnt aus den Tabs heraus- und in andere Tabs hineingezogen sowie zusätzliche Elemente eingebaut werden. Für eine bessere Performance und die Schonung von Ressourcen sollte ein Entwickler sich vor dem Cachen überlegen: Welche Tabs brauche ich für die Bearbeitung, welche muss ich cachen? Welche kann ich eventuell sowohl ausblenden als auch ungecacht lassen?
Bei diesen und weitergehenden Überlegungen unterstützen wir Sie gerne. Sprechen Sie uns an und informieren Sie sich über unsere Lösung, bei der Ihnen unsere Experten für SAP Screen Personas zur Verfügung stehen: SAP endlich benutzerfreundlicher mit SAP Screen Personas.
Technischer Hintergrund zum Caching
Hinter der, dem Addon eigenen, Mechanik des Cachings steht das Auslösen eines Round-Trips bei dem Wechsel von Tabs. Lässt ein Entwickler den Debugger mitlaufen, wird bei jedem Wechsel des Tabs ein Round-Trip ausgelöst und somit die PAI- und PBO-Blöcke der entsprechenden Dynpros durchlaufen. Im Bearbeitungsmodus von SAP Screen Personas werden alle Events unterbunden und damit auch kein Round-Trip ausgelöst. Es wird nicht mit dem Backend-Server kommuniziert, wodurch die Tabs nicht dynamisch geladen werden können. Dies macht das Cachen der TabItemContents erforderlich, da diese ansonsten im Bearbeitungsmodus nicht zur Verfügung ständen. Durch das Cachen wird der Round-Trip umgangen, alle im Dynpro möglichen Tabs sind bereits im Cache vorgehalten und somit ohne Round-Trip verfügbar. Dies ist aber wie bereits erwähnt durchaus eine besondere Belastung der Ressourcen und sollte daher zuvor gut durchdacht werden, um unnötig vorgehaltene Daten zu vermeiden.
Haben Sie auch schon Erfahrungen mit technischen Schwierigkeiten und funktionalen Grenzen in SAP Screen Personas gemacht? Teilen Sie diese mit mir, ich freue mich auf Ihr Feedback.