Hi,
I'm am currently extending MARM and the UNITOFMSR entity with some custom fields.
Here's what I did:
- Extended MARM
- Extended SMEINH (change table for MARM)
- Extended the MARM X and UI structures
- Added the fields on to T130F
- Added them to Data Model
- Generated structures
- Did SMT mapping
- Adjusted Staging for MM
- Cleared the UI Metadata buffer
- Added fields to UI
- Added some rules in the rule service to default the fields in certain circumstances (I know this is not the problem because I commented out all the new code and the issue is still happening)
Here comes the problem - whenever I try to start or continue a process in MDG I get a short dump with description:
Two internal tables are not compatible or convertible
I have extended hundreds of fields the same way and never encountered this issue. The dump is happening in standard method read_entity_buffer of class CL_USMD_GOV_API:
CREATE DATA lr_data LIKE LINE OF et_data.
* analyse requested data structure
* this has to be done anyway as the write buffer needs the component table too.
* For this reason we get it here and provide the result in et_components
* to be reused then in WRITE_ENTITY_BUFFER.
lr_data_struc ?= cl_abap_typedescr=>describe_by_data_ref( p_data_ref = lr_data ).
lt_components = lr_data_struc->components.
* Try to read the data from the READ BUFFER
READ TABLE mt_entity_read_buffer WITH KEY entity = iv_entity_name "key
entity_key = <ls_key> "key
edition = iv_edition "key
read_mode = iv_data_source "key
request_mode = iv_request_mode
components = lt_components
ASSIGNING <ls_buffer>.
IF sy-subrc = 0.
ASSIGN <ls_buffer>-result->* TO <lt_data>.
CHECK sy-subrc = 0. "Write was not called-> Exception raised by READ/RETRIEVE_CHAR_VALUE
et_data = <lt_data>.
I've highlighted in bold the problem when it hits one of the UNITOFMSR buffer entries. I can see no difference between et_data and <lt_data> at the time of the dump except that et_data is a sorted table and <lt_data> a standard table.
Any ideas on what could be causing the problem and how to solve?