Show TOC

FunktionsdokumentationLöschkennzeichen Dieses Dokument in der Navigationsstruktur finden

 

Zur Laufzeit will eine Consumer-Anwendung womöglich einem Provider explizit mitteilen Elemente eines bestimmten Datentyps zu löschen. Wird dies nicht explizit kommuniziert, sondern nur ein entsprechender Wert gesendet, kann die Consumer-Anwendung womöglich nicht feststellen, ob ein Feld behalten, ersetzt oder gelöscht werden soll. Wird das Element nicht geändert, braucht die Consumer-Anwendung es auch nicht an den Provider zu schicken. Das Element muss nur gesendet werden, wenn es geändert wird.

Dies können Sie über einen sogenanntes Deletion Indicator (Löschkennzeichen) erreichen. Um das Löschkennzeichen für ein Element verwenden zu können, müssen Sie für die Elementdefinition im Enterprise Services Repository das Attribut Deletable setzen.

Funktionsumfang

Sie können das Attribut Deletable für Elemente von aggregierten und von frei modellierten Datentypen setzen.

Dieses neue Attribut führt zu einer Typerweiterung im XML-Schema.

Das Löschkennzeichen wird in dem Namensraum http://sap.com/xi/SAPGlobal/GDT definiert.

Das XML-Schema für das Löschkennzeichen sieht wie folgt aus:

Syntax Syntax

  1. <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmnls="http://sap.com/xi/SAPGlobal/GDT"
    targetNamespace="http://sap.com/xi/SAPGlobal/GDT">
    	<xsd:simpleType name="Indicator">
    	<xsd:restriction base="xsd:boolean" />
    </xsd:simpleType>
    	<xsd:attribute name="DeletionIndicator" type="Indicator" />
    </xsd:schema>
Ende des Codes

Hinweis Hinweis

Das Attribut Deletable können Sie nur setzen, wenn Sie im Feld Häufigkeit die Werte minOccurs = 0 und maxOccurs = 1 angeben.

Ist das Attribut Deletable für ein Element gesetzt, wird dieses Element auch auf nillable gesetzt.

Mit nillable ist es möglich Elemente mit DeletionIndicator=”true” aber ohne zusätzlichen Inhalt zu verschicken. Dies können Sie mit xsi:nil=”true” erreichen.

Ende des Hinweises.
ABAP-Proxy-Generierung mit dem Attribut Deletable

Das Element mit dem Attribut Deletable hat ein ähnliches XML-Schema wie das Element e2 im folgenden Beispiel:

Syntax Syntax

  1. <xsd:schema targetNamespace="http://proxy.com/proxyveri/C2PFU"
    xmlns:sapgdt="http://sap.com/xi/SAPGlobal/GDT" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:ccts="urn:un:unece:uncefact:documentation:standard:CoreComponentsTechnicalSpecification:3.0"
    xmlns:xi0="http://proxy.com/proxyveri/C2PFU" xmlns="http://proxy.com/proxyveri/C2PFU">
  2. <xsd:import namespace="http://sap.com/xi/SAPGlobal/GDT"/>
  3. <xsd:complexType name="C2PFU"
  4. <xsd:sequence>
  5. 	<xsd:element name="e1" nillable="true" minOccurs="0">
  6. 		<xsd:complexType>
  7. 			<xsd:simpleContent>
  8. 				<xsd:extension base="text">
  9. 					<xsd:attribute ref="sapgdt:DeletionIndicator"/>
  10. 				</xsd:extension>
  11. 			</xsd:simpleContent>
  12. 		</xsd:complexType>
  13. 	</xsd:element>
  14. 	<xsd:element name="e2" nillable="true" minOccurs="0">
  15. 		<xsd:complexType>
  16. 			<xsd:sequence>
  17. 				<xsd:element name="e21" type="text"/>
  18. 			</xsd:sequence>
  19. 			<xsd:attribute ref="sapgdt:DeletionIndicator"/>
  20. 		</xsd:complexType>
  21. 	</xsd:element>
  22. </xsd:sequence>
  23. </xsd:complexType>
  24. <xsd:simpleType name="text">
  25. 	<xsd:restriction base="xsd:string"/>
  26. </xsd:simpleType>
  27. <xsd:element name="C2PFU" type="C2PFU"/>
  28. </xsd:schema>
Ende des Codes
Strukturen im ABAP-Dictionary

Das Attribut Deletable wird nicht als zusätzliches Feld in den Strukturen des ABAP-Dictionary generiert. Eine erweiterte Controller-Struktur und -Tabelle werden für das Attribut Deletable verwendet. Die Controller-Struktur hat für das Attribut Deletable ein zusätzliches Feld vom Typ boolean. Die Struktur wird für die erweiterte Controller-Tabelle verwendet.

Ist das Attribut Deletable für ein Feld in einer Proxy-Struktur aktiv, wird statt der alten die erweiterte Controller-Tabelle verwendet, wenn eine Proxy-Struktur generiert wird.

Ist das Attribut Deletable aktiv, findet das Mapping der Werte zur Lauzeit statt. Für das Feld stehen die folgenden ABAP-Konstanten zur Verfügung:

Enumerationswert

Wert der Controller-Struktur (ABAP-Konstante)

XML-Wert (ABAP-Konstante)

X

SAI_CTRL_TRUE

true

leer

SAI_CTRL_FALSE

false

Hinweis Hinweis

Für das Attribut Deletable muss das erweiterte XML-Handling aktiv sein.

Ende des Hinweises.

Weitere Informationen

Das Attribut Deletable setzen