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