Ansicht
Dokumentation

CL_ISHMED_DOC_CONTENT - IS-H*MED: Inhalt eines med. Dokuments (=>KLASSENDOKU)

CL_ISHMED_DOC_CONTENT - IS-H*MED: Inhalt eines med. Dokuments (=>KLASSENDOKU)

PERFORM Short Reference   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Diese Klasse bildet den Inhalt eines beliebigen medizinischen Dokuments ab. Es ist möglich, dass ein einziges Dokument seinen Inhalt in mehreren Inhaltsformaten zur Verfügung stellen kann. In diesem Fall stellt es pro Inhaltsformat eine jeweils eigene Instanz von CL_ISHMED_DOC_CONTENT bereit.

Diese Klasse dient als eine Art "beschreibender Umschlag" für den eigentlichen Dokumentinhalt und soll Anwendungen den Umgang mit Dokumentinhalten erleichtern.

Die Klasse enthält:

  • alle strukturierten Informationen, die notwendig sind, um den Datentyp des Dokumentinhalts identifizieren und korrekt behandeln zu können. Diese Informationen sind über Methoden erreichbar.
  • den eigentlichen Inhaltsteil des Dokuments. Der eigentliche Inhalt kann ein komplexer ABAP-Datentyp aber auch eine Objektreferenz sein.
Der Inhaltsteil wird gefüllt, indem dem Konstruktor der Klasse eine beliebige Datenstruktur, Tabelle oder ein ABAP-Objects-Objekt mitgegeben wird.
Durch Aufruf der Methode get_content kann der Inhalt wieder entgegengenommen werden.
Der Datentyp und die Daten des Dokumentinhalts sind jeweils abhängig vom Inhaltstyp. Generell muss eine Anwendung ein Inhaltsformat kennen und wissen, welche ABAP-Datentypen ein Dokument verwendet, um seine Inhalte bereitzustellen.

Für die meisten Fälle ist jedoch eine vereinfachte Handhabung möglich, da zwei Fälle gezielt unterstützt werden:
  • Für Dokumentinhalte, die aus einem einzigen Binärdatenblock bestehen, gibt es eine festgelegte Form, in der sie verwaltet werden. Mit der Methode IS_BINARY_CONTENT kann geprüft werden, ob es sich um einen derartigen Binärdatenblock handelt.
    Für Binärdatenblöcke werden zwei verschiedene Datentypen unterstützt: XSTRING und ISHMED_N2BINARY. Bei der Erzeugung einer CL_ISHMED_DOC_CONTENT - Instanz oder beim Abholen des Inhalts mit GET_CONTENT können beide Typen verwendet werden. Die Daten werden bei Bedarf innerhalb der Klasse zwischen dem Tabellenorientierten Format von ISHMED_N2BINARY und XSTRING hin und her konvertiert, ohne dass der Aufrufer sich darum kümmern muss.

  • XML-Daten werden ebenfalls spezifisch unterstützt. Die Methode IS_XML_CONTENT gibt Auskunft darüber, ob es sich beim Inhalt um einen XML-Baum handelt.
    XML-Daten werden in grundlegend zwei Formen unterstützt: als XML-Baum und in serialisierter Form als Binärdatenstrom:

XML-Baum (DOM)
Ein DOM-Fragment, das wohlgeformt sein muss. Es wird eine Referenz auf die Klasse IF_IXML_NODE unterstützt. Dies ist der Wurzelknoten des XML-Baums.

Serialisierte XML-Daten
Ein serialisiertes XML-Dokument wird in der Form eines UTF-8-codierten Binärstroms unterstützt. Hierfür werden die beiden Typen XSTRING sowie ISHMED_N2BINARY unterstützt, die auch bei Binärinhalten verwendet werden können.
In diesem Fall muss der Binärstrom aber ein gültiges XML-Dokument enthalten.

XML-Fragmente und beide Formen von serialisiertem XML sind beliebig gegeneinander austauschbar und werden bei Bedarf innerhalb der Klasse konvertiert. Innerhalb der Klasse selbst werden XML-Daten als DOM-Baum gehalten, egal, in welcher Form sie dem Konstruktor bereitgestellt oder über GET_CONTENT angefordert werden.

Warum keine Strings/Characterdaten?
Character-artige Typen werden für die XML-Verarbeitung nicht unterstützt. XML-Verarbeitung und vor allem der Transfer von XML-Daten kann nur ordnungsgemäß funktionieren, falls die XML-Daten nach einem definierten Character-encoding codiert sind. Dieses Encoding wird bei der Erzeugung der XML-Daten im Kopf des XML-Dokuments vermerkt.
Character-artige Daten liegen aber im ABAP immer im encoding des Anwendungsservers vor, so dass sich hier ein Konflikt zwischen der Ecoding-Angabe im Kopf des XML-Dokuments und dem tatsächlichen encoding der Daten ergeben kann. Daher werden character-artige Typen nicht unterstützt.

Über eine erweiterte Ableitung dieser Klasse kann eine Dokumentanwendung bei Bedarf zusätzliche strukturierte Daten und Hilfsfunktionen bereitstellen mit dem Dokumentinhalt verbinden, z.B. um Verweise auf einen spezifischen Speicherort zu verwalten. Dazu muss jedoch eine neue Dokumentanwendung (Ableitung von CL_ISHMED_DOC_DATA) implementiert und im System eingebunden werden werden.

Beziehungen

Beispiel

Hinweise

Weiterführende Informationen

Siehe besonders auch die Dokumentation des Construktors und der Methode GET_CONTENT.






PERFORM Short Reference   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 5263 Date: 20240426 Time: 133744     sap01-206 ( 94 ms )