Generator-Version 2
Im Zuge der Weiterentwicklung der PMD wurde eine neue Generator-Version geschaffen. Diese generiert nun eine objektorientierte Anwendung. Im folgenden Abschnitt nennen wir die mit dieser Generator-Version genierten Dokumente Gen-2-Dokumente
.
Stabilität beim Transport von Dokumenttypen:
User-Exits bleiben gültig
PMD-Fremddatenbausteine bleiben nach dem Transport gültig
Die Objektorientierung ist Voraussetzung dafür, dass die PMD um neue Features erweitert werden kann wie z.B. unbegrenzte Langtexte (s. Erweiterter Text).
Die explizite PMD-PMD-Kommunikation (DDC) ersetzt die PMD-PMD-Fremddatenbausteine aus Generator-Version 1.
Später sollen auch PMDs in andere Anwendungen integriert werden können wie z. B. den Dokumentationsarbeitsplatz oder den Klinischen Auftrag.
Fremddatenversorgung
Gen-2-Dokumente können nicht als FDBS dienen. In Gen-2-Dokumenten können andere Gen-2-Dokumente explizit als Datenquelle eingebunden werden. Daraus ergeben sich folgende Möglichkeiten hinsichtlich PMDs als Fremddatenquelle:
Datenquelle / ziel | Versorgung |
|---|---|
Gen-1 als Datenquelle in Gen-1 | wie bisher (FDBS) |
Gen-1 als Datenquelle in Gen-2 | wie bisher (FDBS) |
Gen-2 als Datenquelle in Gen-1 | nicht möglich |
Gen-2 als Datenquelle in Gen-2 | explizite Datenversorgung aus Dokumenttyp |
Zur Versorgung eines Elements aus einem Dokumenttyp gehen Sie folgendermaßen vor:
Versorgung eines atomaren Feldes
Wählen Sie .
Spezifizieren Sie Einrichtung und ID des Quell-Dokumenttyps.
Benennen Sie das Quellfeld.
Versorgung einer einfachen Struktur
Wählen Sie bei der Struktur .
Spezifizieren Sie Einrichtung und ID des Quell-Dokumenttyps.
Wählen Sie bei den zu versorgenden Sub-Elementen der Struktur Datenversorgung aus übergeordnetem Dokumenttyp (implizit) und spezifizieren Sie den Namen des Quellfelds.
Versorgung einer multiplen Struktur
Wählen Sie bei der Struktur .
Spezifizieren Sie Einrichtung und ID des Quell-Dokumenttyps und die multiple Struktur, die als Quelle dienen soll.
Wählen Sie bei den zu versorgenden Sub-Elementen (Spalten) der Struktur und spezifizieren Sie den Namen der Quellspalte.
Hinweis
Mit Quellfeld-Name
ist immer der entsprechende Alias-Name gemeint.
Zur Auswahl der Quellfelder und ggf. der multiplen Quell-Struktur wird keine Eingabehilfe angeboten. Wir empfehlen Ihnen daher, in einem Parallelmodus die Definition des Quell-Dokumenttyps zu öffnen.
Dokumentendruck
Der Dokumentendruck wird durch einen Funktionsbaustein (statt durch einen Report) gesteuert. Alle Funktionsbausteine liegen in einer Funktionsgruppe.
User-Exits
User-Exits dürfen nur noch APIs und freigegebene Variablen nutzen.
APIs: Alle Methoden der Klasse cl_ishmed_pmd_services (s. dortige Dokumentation). Die in dieser Klasse existierenden Methoden stellen den gültigen Stand für das betreffende Release dar. Wenn Sie für Ihre User-Exits weitere APIs benötigen, sollten Sie einen entsprechenden Entwicklungsantrag formulieren.
Freigegebene Variablen sind in der generierten Funktionsgruppe enthalten.
Feldsymbole beginnend mit <pub__...>
Variablen beginnend mit pub__..
Andere Objekte der generierten Funktionsgruppe (Funktionsbausteine, Methoden, Module, Form-Routinen, Variablen) dürfen keinesfalls verwendet werden; Änderung oder Wegfall sind jederzeit möglich.
Bestimmte ABAP-Anweisungen sind nicht zulässig: COMMIT WORK, ROLLBACK WORK, MESSAGE (in allen Varianten).
Alle User-Exits eines Dokumenttyps (für Dialog und Druck) müssen in einem einzigen neuen INCLUDE programmiert werden ( ).
Alle Gen-2-User-Exits eines Dokumenttyps stehen in einem neuen INCLUDE.
Druck-User-Exits
Druck-User-Exits und das eigene Formular können einzeln deaktiviert werden.
Element nicht drucken
In der Systemverwaltung können Sie bei einem Element explizit angeben, dass es nicht gedruckt werden soll.
Funktion Daten holen
Die zweistufige Baumstruktur wurde durch den HTML-Dokumenten-Viewer ersetzt. Per Cut&Paste können Sie Daten in das aktuelle Dokument kopieren.
Der Viewer wird amodal aufgerufen.
SAPscript-Texte
SAPscript-Texte mit mehr als 4 Zeilen werden als SAPscript-Editor-Control dargestellt.
Beachten Sie, dass der Doppelklick hier nicht in den Fullscreen-Editor verzweigt, da diese Funktion vom Control als Markierungs-Kommando verstanden wird. In den Editor gelangen Sie über die Editor-Drucktaste.
Langtexte
Bei Langtexten kann die Formatierung annähernd erhalten bleiben.
Erweiterter Text
Sie können jetzt den neuen Dokumentationselementtyp Erweiterter Text einsetzen.
Prüfungen
Prüf-User-Exits laufen auch beim Sichern (vorher nur beim Freigeben und Prüfen).
Mit einem API können Sie feststellen, in welchem Prüfmodus der User-Exit gerade läuft; somit können Sie (analog zur automatischen Pflichtfeld-Prüfung) funktionsspezifische (Sichern oder Freigeben) Prüfungen formulieren.
Wenn Sie in Prüf-User-Exits Fehler feststellen, müssen Sie die zugehörige Meldung mit entsprechenden APIs in die Meldungsliste einstellen.
Fehlermeldungen
Die Fehler werden gesammelt und in einem ALV-Grid angezeigt. Falls der Fehler einem Dokumentationselement zugeordnet ist, können Sie per Doppelklick auf die Meldung zum fehlerhaften Element navigieren.
Sie können bei der Erstellung von Dokumenttypen der Generatorversion 2 auch klassenbasierte User-Exits verwenden. Die Verwendung von klassenbasierten User-Exits erlaubt einen flexiblen Umgang mit User-Exits und vereinfacht das Anlegen von Dokumenttypversionen. Sie müssen die User-Exit-Klasse nur überschreiben, wenn Sie Änderungen an den User-Exits durchführen möchten. Wählen Sie im Register Generierung
im Feld Userexit-Implementierung
den Wert METHODEN
, um klassenbasierte User-Exits zu verwenden. Geben Sie danach im Register UserExit
die User-Exit-Klasse ein, die Sie verwenden.
Wenn Sie zu einem Dokumentationselement Funktionen implementieren möchten, aktivieren Sie im Detailbild des Elements im Register UserExit
die User-Exit-Methode. Implementieren Sie diese Methode in der User-Exit-Klasse.
Hinweis
Beachten Sie die folgenden Voraussetzungen:
Sie können pro Dokumenttyp entweder nur klassen- oder nur formbasierte User-Exits verwenden.
Die einzugebende User-Exit-Klasse muss von der Klasse CL_ISHMED_PMD_UEX_ROOT
abgeleitet sein
Die einzugebende User-Exit-Klasse muss die gewünschten User-Exit-Methoden implementieren, die auf der Registerkarte angegeben sind