ABAP Keyword Documentation → ABAP - Reference → Creating Objects → CREATE OBJECT → CREATE OBJECT - AREA HANDLE
Creating a Class Instance as a Shared Object
The example demonstrates how an object is created in an area instance version.
Other versions: 7.31 | 7.40 | 7.54
DATA: handle TYPE REF TO cl_demo_area, root TYPE REF TO cl_demo_root, exc TYPE REF TO cx_shm_attach_error, oref TYPE REF TO class. TRY. handle = cl_demo_area=>attach_for_write( ). CREATE OBJECT root AREA HANDLE handle. handle->set_root( root ). CREATE OBJECT root->oref AREA HANDLE handle TYPE class. oref ?= root->oref. oref->set_attr( `String in shared memory` ). CLEAR oref. handle->detach_commit( ). CATCH cx_shm_attach_error INTO exc. MESSAGE exc TYPE 'I' DISPLAY LIKE 'E'. LEAVE PROGRAM. ENDTRY. TRY. handle = cl_demo_area=>attach_for_read( ). oref ?= handle->root->oref. MESSAGE oref->attr TYPE 'I'. CLEAR oref. handle->detach( ). CATCH cx_shm_attach_error INTO exc. MESSAGE exc TYPE 'I' DISPLAY LIKE 'E'. LEAVE PROGRAM. ENDTRY.
AREA HANDLE addition is used to create an instance of the local class
class in an
area instance version of area CL_DEMO_AREA as a
shared object. The generically typed attribute
area root class
CL_DEMO_ROOT is used a reference variable. The
attr attribute of the object is assigned a value when its
set_attr method is called.
Once write access is completed using the DETACH_COMMIT method, read access takes place, which demonstrates how the object is accessed in the shared memory. This type of access can also take place in a different program, provided that the area instance version exists in the shared memory.