Ansicht
Dokumentation

ABENSTATIC_BOXES - STATIC BOXES

ABENSTATIC_BOXES - STATIC BOXES

TXBHW - Original Tax Base Amount in Local Currency   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Statische Boxen

Statische Boxen sind Boxed Components, deren Komponenten statisch bekannt sind und bei denen ein Initialwert-Sharing wirkt. Die Deklaration statischer Boxen führt für Strukturen, die zwar mehrfach vorkommen aber wenig verwendet werden, in der Regel zu geringeren Speicheranforderungen.

Als statische Boxen können derzeit deklariert werden:

  • Unterstrukturen strukturierter Daten mit dem Zusatz BOXED der Anweisung TYPES
  • Strukturierte Attribute von Klassen oder Interfaces mit dem Zusatz BOXED der Anweisung $[CLASS-$]DATA.

Eine statische Box kann in zwei Zuständen vorliegen:

  • Initialwert-Sharing
Solange keine der im folgenden Punkt genannten Aktionen durchgeführt wurde, gilt für eine statische Box das Initialwert-Sharing. Die interne Referenz verweist auf einen typabhängigen Initialwert der Struktur, der genau einmal pro in deren PXA abgelegt ist. Der Speicherbedarf im internen Modus wird nur durch die interne Referenz und deren Verwaltung bestimmt.
  • Aufgehobenes Initialwert-Sharing
Folgende Aktionen heben das Initialwert-Sharing einer statischen Box auf:
  • Schreibzugriff auf die statische Box oder eine ihrer Komponenten.

  • Zuweisung der statischen Box oder einer ihrer Komponenten an ein Feldsymbol mit ASSIGN.

  • Adressierung der statischen Box oder einer ihrer Komponenten über eine Datenreferenz.

  • Verwendung einer statischen Box oder einer ihrer Komponenten als Aktualparameter bei Prozeduraufrufen.

Danach verweist die interne Referenz auf eine Instanz der Struktur im aktuellen internen Modus. Der Speicherbedarf ist wie bei einer normalen Struktur zuzüglich der Verwaltungskosten für die interne Referenz.

Durch das Initialwert-Sharing liegt der in der internen Sitzung benötigte Speicher einer statischen Box zu Beginn der Programmausführung nicht fest. Anders als bei den echten dynamischen Datenobjekten ist die Länge einer statischen Box aber immer statisch bekannt. Mit einer statischen Box kann wie mit einer normalen Komponente des gleichen Typs gearbeitet werden. Nur beim Zugriff auf eine Struktur, die eine statische Box enthält, ist darauf zu achten, dass es sich um eine tiefe Komponente handelt.

Hinweise

  • Statische Boxen können verwendet werden, um den Speicherbedarf mehrfach verwendeter Strukturen zu optimieren. Wenn beispielsweise die Zeilenstruktur einer internen Tabelle Unterstrukturen enthält, fällt der Speicherbedarf der Unterstruktur ohne die Verwendung von statischen Boxen für jede Tabellenzeile an, selbst wenn die Unterstruktur initial ist. Bei der Verwendung von statischen Boxen benötigen initiale Unterstrukturen keinen mehrfachen Speicher solange nur lesend auf sie zugegriffen wird.
  • Neben der Optimierung des Speicherbedarfs haben statische Boxen in der Regel auch einen positiven Einfluss auf die Laufzeit-Performance, da bei Zuweisungen zwischen Komponenten, bei denen das Initialwert-Sharing aktiv ist, keine Daten außer der internen Referenz kopiert werden müssen.
  • Die Anweisungen CLEAR und FREE wirken auf eine statische Box, die sich im Zustand des Initialwert-Sharings befindet, nicht als schreibende Anweisung und der Zustand bleibt erhalten. Auf der anderen Seite geben diese Anweisungen nach der Aufhebung des Initialwert-Sharings derzeit auch keinen Speicher frei, sondern versorgen die lokale Instanz der statischen Box mit typabhängigen Initialwerten.

Beispiel

Deklaration einer Unterstruktur scarr als statische Box.






Fill RESBD Structure from EBP Component Structure   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 5479 Date: 20240523 Time: 101950     sap01-206 ( 88 ms )