Skip to Content
0
Former Member
Nov 10, 2010 at 05:09 PM

Shared Objects

264 Views

Hello,

we have upgraded from ECC5 to ECC6. Now one abap program has some errors.

The program works with shared objects. In the program a shared object is stored in the memory.

In ECC5 we have used the following methods from from the class CL_SHM_AREA .

ATTACHUPDATE

ATTACHUPDATE_2

ATTACHWRITE

GETLOGON_CLIENT

This methods are not available in ECC6. In ECC6 we found only the following methods:

ATTACHUPDATE70

ATTACHWRITE70

We have replace the method ATTACHUPDATE with ATTACHUPDATE70 and the mehtod ATTACHWRITE with ATTACHWRITE70.

Instead of the method GETLOGON_CLIENT we use the system variable sy-mandt.

We found no corresponding method in ECC6 for ATTACHUPDATE_2.

Now when we start the program we get an short dump. The dumps says "Change access to a read-only shared memory area."

We do not know why ?

In the code we use the following statement to open the object for update:

lv_area = /gebf/cl_fs_state_area=>attach_for_update( attach_mode =cl_shm_area=>attach_mode_detach_reader ).

And than

if lv_area is not initial.

lv_area->root->set_state( im_lgnum = m_lgnum

im_lgtyp = m_lgtyp

im_online = im_online ).

*& Commit and detatch

lv_area->detach_commit( ).

endif.

In the method set_state we want to modify a table. During this step the dump occurs. The same code works fine in ECC5.

What have we to do that we can modify the table. Or which settings decides that a object is read-only in a shared memory area.

Thanks