Skip to Content
0
Jan 02, 2023 at 11:13 AM

ABAP RESTful - EML Copy Action Edits Entry before Saving Data

93 Views Last edit Jan 02, 2023 at 11:22 AM 6 rev

Hello SAP Experts,

The Action in the Code below is meant to Create&Save the entry directly, my intention is to copy the data entry without saving. Giving the End-User the option to edit/cancel before saving.

METHOD copy.
 DATA:
      lv_mvgensd   TYPE TABLE FOR CREATE ZML_MVGENSD\\mvgensd,
      lv_sev        type IF_ABAP_BEHV_MESSAGE=>T_SEVERITY.

    READ ENTITIES OF ZML_MVGENSD IN LOCAL MODE
     ENTITY mvgensd
       ALL FIELDS WITH CORRESPONDING #( keys )
                  RESULT DATA(input_result)
     FAILED    failed
     REPORTED  reported.

    loop at input_result ASSIGNING FIELD-SYMBOL(<fs_read_result>).
    APPEND value #( %cid = <fs_read_result>-Stdpd %data = CORRESPONDING #( <fs_read_result> EXCEPT Uname ) ) to lv_mvgensd ASSIGNING FIELD-SYMBOL(<nfs_read_result>).
   endloop.

MODIFY ENTITIES of ZML_MVGENSD in local mode<br>ENTITY mvgensd
CREATE FIELDS ( Uname Stdpd Auart Process Display Background Bapi Upos )
with lv_mvgensd
MAPPED data(mapped_create)
failed data(failed_create)
reported data(reported_create).
    mapped    = CORRESPONDING #( DEEP mapped_create ).
    failed    = CORRESPONDING #( DEEP failed_create ).
    reported  = CORRESPONDING #( DEEP reported_create ).
**********************************************************************
    READ ENTITIES OF ZML_MVGENSD in local mode<br>      ENTITY mvgensd
        ALL FIELDS WITH CORRESPONDING #( lv_mvgensd )
        RESULT DATA(created_object).
CHECK created_object IS NOT INITIAL.
 INSERT INITIAL LINE INTO TABLE result ASSIGNING FIELD-SYMBOL(<result>).
    <result>        = CORRESPONDING #( keys[ 1 ] ).
    <result>-%param = CORRESPONDING #( created_object[ 1 ] ).
**********************************************************************
  ENDMETHOD.

So I tried replacing CREATE FIELDS with UPDATE FIELDS and defining the local value lv_mvgensd as a table for Update and assigning the TKY accordingly. now the Copy Action doesn't copy at all.

 DATA:
      lv_mvgensd   TYPE TABLE FOR CREATE ZML_MVGENSD\\mvgensd,
      lv_sev        type IF_ABAP_BEHV_MESSAGE=>T_SEVERITY.
-<br>-<br>-
    loop at input_result ASSIGNING FIELD-SYMBOL(<fs_read_result>).
    APPEND value #( %TKY = <fs_read_result>-Stdpd %data = CORRESPONDING #( <fs_read_result> EXCEPT Stdpd Uname ) ) to lv_mvgensd ASSIGNING FIELD-SYMBOL(<nfs_read_result>).
   endloop.
<br>-<br>-<br>-
UPDATE FIELDS ( Uname Stdpd Auart Process Display Background Bapi Upos )
with lv_mvgensd

Any thoughts and opinions are very much welcomed and appreciated

Hossam