Ansicht
Dokumentation

ABENUNICODE_LEAF_VIEW - UNICODE LEAF VIEW

ABENUNICODE_LEAF_VIEW - UNICODE LEAF VIEW

General Material Data   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Strukturlayout und Unicode-Fragmentsicht

Strukturlayout

Das Datenlayout einer Struktur richtet sich nach dem Datentyp seiner Komponenten und nach deren Ausrichtungsanforderungen.

Eine Ausrichtungsanforderung bedeutet, dass Felder eines bestimmten Typs im Speicher auf bestimmten Adressen beginnen müssen. In Unicode-Systemen sind dies alle numerischen Felder vom Typ I und F und alle zeichenartigen Felder. Um den Ausrichtungsanforderungen von Komponenten in Strukturen zu genügen, werden falls erforderlich leere Bytes als Ausrichtungslücken vor diesen Komponenten eingefügt.

Unicode-Fragmentsicht auf Strukturen

Die Konvertibilität von Strukturen in Unicode-Systemen beruht auf dem Strukturlayout. Das Strukturlayout wird hierfür in der so genannten Unicode-Fragmentsicht betrachtet.

Die Unicode-Fragmentsicht zerlegt eine Struktur wie folgt in Fragmente:

  • Hintereinanderfolgende Komponenten vom Typ X, zwischen denen keine Ausrichtungslücken sind, bilden byteartige Fragmente.
  • Hintereinanderfolgende Komponenten vom Typ C, N, D, T, zwischen denen keine Ausrichtungslücken sind, bilden zeichenartige Fragmente.
  • Alle übrigen Komponenten, also Felder vom Typ I, F, P, string, xstring, Referenzen und interne Tabellen bilden jeweils eigene Fragmente.

Innerhalb eines Fragments der Unicode-Fragmentsicht gibt es also keine Ausrichtungslücken. Für die Konvertibilität von Strukturen wird in Unicode-Systemen die Anordnung der Fragmente in Operanden verglichen.

Beispiele

Konvertible Strukturen

DATA: BEGIN OF struc1,
        a(1) TYPE x,
        b(1) TYPE x,
        c(6) TYPE c,
      END OF struc1.


DATA: BEGIN OF struc2,
        a(2) TYPE x,
        b(2) TYPE c,
        c(4) TYPE n,
      END OF struc2
.

Die Unicode-Fragmentsicht beider Strukturen ist:

     X(2)
     C(6)

struc1 kann struc2 in einem Unicode-Systemen zugewiesen werden.

Inkonvertible Strukturen

DATA: BEGIN OF struc1,
        a    TYPE d,
        b    TYPE t,
        c    TYPE f,
        d(2) TYPE x,
        e(4) TYPE x,
        f(8) TYPE c,
      END OF struc1.

DATA: BEGIN OF struc2,
        a    TYPE d,
        b    TYPE t,
        BEGIN OF struc3,
          c    TYPE f,
          d(2) TYPE x,
        END OF struc3,
        e(4) TYPE x,
        f(8) TYPE c,
      END OF struc2.

Die Unicode-Fragmentsicht der Strukturen ist:

  struc1      struc2

   C(14)      C(14)
   F(8)       F(8)
   X(6)       X(2)
   C(8)       X(4)
              C(8)

Wegen der Ausrichtung der Unterstruktur struc3 besteht in struc2 eine Ausrichtungslücke zwischen den Komponenten d und e, die in struc1 nicht auftritt.






General Material Data   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 5090 Date: 20240523 Time: 114356     sap01-206 ( 51 ms )