Referenzhandbuch: Info-Anwendungen

1                     Themenübersicht

Das „Single Document Interface“ ist ein Designprinzip von Semiramis. Nach diesem Designprinzip ist immer nur ein Hauptfenster für den Benutzer sichtbar. In manchen Situationen ist darüber hinaus sinnvoll, weitere Daten in einem separaten, amodalen Fenster anzubieten. Das können Daten eines Business Entitys sein oder Daten, die nicht aus Semiramis stammen. Diese Informationen unterstützen den Benutzer bei der Arbeit, ohne ihn bei dieser zu unterbrechen.

In diesem Dokument wird beschrieben, wozu eine Info-Anwendung im Fenstermodus geöffnet werden sollte und wie sie entwickelt wird.

2                     Zielgruppe

  • Entwickler
  • Technische Berater

3                     Glossar

Fenstermodus

Der Fenstermodus ist die Darstellung einer Info-Anwendung in einem separaten, amodalen Fenster. Der Benutzer kann das amodale Fenster verschieben und parallel zum Hauptfenster platzieren. Es behält seine Position und Größe auch dann, wenn eine andere Info-Anwendung darin geöffnet wird.

4                     Beschreibung

Info-Anwendungen unterstützen den Benutzer mit ergänzenden Informationen zu einem Business Entity. Wenn zu einem Business Entity eine Info-Anwendung existiert, dann kann diese aus dem Business-Entity-Feld über die Tastenkombination STRG-ALT-I oder per Kontextmenü geöffnet werden. Wenn eine Info-Anwendung aus einem Business-Entity-Feld geöffnet wird, dann wird diese im Fenstermodus angezeigt. Das dadurch geöffnete separate amodale Fenster kann der Benutzer beispielsweise neben das Hauptfenster schieben.

Pro Hauptfenster wird maximal ein amodales Fenster geöffnet. Wird eine weitere Info-Anwendung im Fenstermodus geöffnet, dann wird dasselbe amodale Fenster verwendet: Die vorher geöffnete Info-Anwendung wird automatisch geschlossen, ohne das Fenster zwischenzeitig zu schließen. Die Position und Größe des Fensters wird beim Öffnen einer weiteren Info-Anwendung nicht verändert. Der Fokus bleibt dabei grundsätzlich im Hauptfenster.

Die Anwendung im Fenstermodus enthält ergänzende Informationen zu einem Business Entity. Eine Weiterverarbeitung ist nicht vorgesehen. Deshalb sind keine Bedienelemente enthalten, die vom Benutzer eine Aktion verlangen. Alle Daten müssen beim Öffnen der Anwendung sichtbar sein.

4.1               Beispiele

Ein Sachbearbeiter nimmt Vertriebsaufträge am Telefon an. Ein Kunde ruft an und möchte einen Artikel bestellen. Der Sachbearbeiter erfasst einen Vertriebsauftrag mit dem Kunden als Auftraggeber. Aus dem Feld „Auftraggeber“ heraus können mit einer Info-Anwendung weitere Informationen zum Kunden abgerufen werden, wie beispielsweise die letzten bestellten Artikel und die Kreditwürdigkeit. Die Info-Anwendung wird in einem amodalen Fenster dargestellt. Der Sachbearbeiter hat das Fenster neben das Hauptfenster positioniert. Das Fenster überdeckt das Hauptfenster nicht und der Fokus bleibt im Feld „Auftraggeber“. Der Sachbearbeiter kann die zusätzlichen Informationen nutzen und ohne Störung weiterarbeiten.

Der Kunde bestellt einen Artikel und der Sachbearbeiter erfasst eine neue Auftragsposition. Für den Artikel kann der Sachbearbeiter mit einer Info-Anwendung den Lagerbestand abfragen. Die Info-Anwendung zum Artikel wird in dem bestehenden Dialogfenster geöffnet und ersetzt die Informationen zum Kunden.

4.2               Abgrenzung

Wie im Kapitel „Beispiele“ dargestellt zeigen Info-Anwendungen immer ergänzende Informationen an. Der Benutzer arbeitet im Hauptfenster. Eine Info-Anwendung sollte keine Elemente enthalten, die bei der normalen Verwendung dazu führen, dass der Fokus vom Benutzer in die Info-Anwendung gesetzt werden muss. Aus diesem Grund darf eine Info-Anwendung beispielsweise keine eingabebereiten Felder haben. Alle Felder, Combo-Boxen, Checkboxen usw. dürfen nur lesbar (read only) sein. Bei Cockpit-Komponenten muss der Abfragebereich ausgeblendet werden.

Alle Informationen der Info-Anwendung sollten auf den ersten Blick sichtbar sein. Eine Info-Anwendung darf keine Elemente enthalten, die eine Benutzerinteraktion erfordern, um weitere Informationen anzuzeigen wie beispielsweise:

  • Aufklappbare Bereiche (Shelfs)
  • Karteireiter (TabbedPanes)
  • Popups
  • Dialoge

Das Layout einer Info-Anwendung sollte den beschränkten Platz im amodalen Fenster berücksichtigen. Vermeiden Sie Scrollbars.

Eine Info-Anwendung kann Aktionen (Buttons) und Hyperlinks (EntityFields) enthalten, um beispielsweise aus der Info-Anwendung eine andere Anwendung im Hauptfenster zu starten.

Falls eine Anwendung mit diesem einfachen Bedienmodell nicht realisiert werden kann, muss diese Anwendung als Dialog-Anwendung, aber nicht als Info-Anwendung, realisiert werden.

Eine Anwendung, die komplexe Analysemöglichkeiten bietet, z. B. mit Cockpit-Komponenten und Suchfeldern zu einem Business Entity, sollte nicht als Info-Anwendung, sondern als Dialog-Anwendung realisiert werden. Als Dialog-Anwendung steht dieser Anwendung im Hauptfenster mehr Platz zur Verfügung als im amodalen Fenster einer Info-Anwendung.

4.3               Anpassbarkeit

Info-Anwendungen müssen als anpassbare Anwendungen realisiert werden, da die angezeigten Informationen kundenspezifisch angepasst werden müssen. Wenn eine Info-Anwendung aus dem Benutzermenü geöffnet wird, dann wird die Anwendung im Hauptfenster geöffnet und die Oberfläche kann wie üblich angepasst werden. Eine Info-Anwendung sollte durch Semiramis-Partner erweiterbar sein, um neue projektspezifische Informationen einfach hinzufügen zu können, beispielsweise mithilfe von Apps.

5                     Entwicklung

Für die Entwicklung einer Info-Anwendung ist Folgendes maßgeblich:

  • Die Anwendung muss eine anpassbare Anwendung basierend auf der abstrakten Basisklasse cisag.pgm.base.CisInfoApplication sein.
  • Für das zugehörige Entwicklungsobjekt „Anwendung“ muss der Typ „Dialog“ mit der besonderen Verwendung „Anpassbare Anwendung“ eingestellt werden.
  • Das Business Entity sollte als primäres Business Entity eingetragen sein. Für die Aktion „Load“ mit der ID 1 sollte das Business Entity als Parameter angegeben werden.
  • Die Bezeichnung der Anwendung sollte so lauten wie die Bezeichnung zum zugehörigen Business Entity, ergänzt mit dem Zusatz „informationen“.

5.1               Anwendung öffnen

Eine Info-Anwendung kann entweder als Dialog-Anwendung aus dem Navigationsbereich geöffnet werden oder im Fenstermodus. Wenn die Info-Anwendung als Dialog-Anwendung geöffnet wurde, so kann die Oberfläche der Anwendung angepasst werden. Die Aktion „Anwendung im Fenstermodus öffnen“ öffnet die bestehende Dialog-Anwendung in einem amodalen Fenster.

Die Dialog-Anwendung sollte wie üblich eine Navigator-Suche anbieten und im Identifikationsbereich die Identifikation des Business Entitys anzeigen damit unterschiedliche Business-Entity-Instanzen geöffnet werden können.

5.2               Programmierschnittstelle

Jede Info-Anwendung basiert auf einer Objektsicht. Prüfen Sie, ob die bestehenden Objektsichten zum Business Entity für eine Info-Anwendung geeignet sind. Bei Bedarf müssen Sie für die Info-Anwendung eigene Objektsichten erfassen.

Die Objektsichten für die Erfassung und Bearbeitung eines Business Entitys sind umfangreicher als die Objektsichten für die Informationsanzeige in einer Info-Anwendung. Die Objektsichten für eine Info-Anwendung sind auf die Anzeige von möglichst vielen Zusatzinformationen spezialisiert. Deshalb ist häufig sinnvoll, separate Objektsichten für die Bearbeitung und die Information zu erstellen.

Überschreiben Sie die folgenden Methoden:

Class<V> getDataViewClass()

DataView<O> createDataView()

Die Methode getDataViewClass gibt die Klasse der von der Info-Anwendung dargestellten Objektsicht zurück. Die Methode createDataView() erzeugt eine zu dieser Objektsicht passende Instanz.

Sie können den Identifikationsbereich der Anwendung mit Feldern programmieren, wenn Sie die folgende Methode überschreiben:

void initIdentArea(DataViewUI<?> dataViewUI, View identPane)

Die Felder im Identifikationsbereich sollen bei der Anzeige im Fenstermodus nicht eingabebereit sein. Wenn die folgende Methode aufgerufen wird, müssen Sie diese Felder auf „read–only“ schalten:

void setIdentPaneReadOnly()

Die Info-Anwendung kann entweder direkt in einem amodalen Fenster geöffnet oder nachträglich in ein solches Fenster überführt werden. Beachten Sie, dass im Allgemeinen eine andere Dialog-Anwendung aktiv ist, wenn die Info-Anwendung im amodalen Fenster angezeigt wird. Dies hat beispielsweise die folgenden Konsequenzen:

  • Sie dürfen keine Fehler, Warnungen oder andere Meldungen senden, da diese in den Meldungen der aktiven Dialog-Anwendung angezeigt würden.
  • Sie dürfen über den CisApplicationManager keine anwendungsbezogenen Sperren anfordern.

Mithilfe der folgenden Methode können Sie abfragen, ob die Anwendung als Dialog-Anwendung oder in einem amodalen Fenster geöffnet ist:

int getDisplayMode()

5.3               Registrierung

Sie müssen eine Info-Anwendung mithilfe des Hooks com.cisag.pgm.appserver.hook.BusinessObjectRegistryHook aus der Hook-Contract-Definition com.cisag.pgm.appserver.Server registrieren. Durch die Registrierung wird die Info-Anwendung einem Business Entity zugeordnet.

Sie registrieren eine Info-Anwendung für ein Business Entity mit der Methode registerInfoApplication.

Czy ten artykuł był pomocny?