14.01.2020 Views

ABAP_to_the_Future

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Using BOPF to Write a DYNPRO-Style Program 8.2

<ls_monster_header> = is_monster_header.

APPEND INITIAL LINE TO lt_changes_to_be_made ASSIGNING <ls_changes>.

<ls_changes>-node = zif_monster_c=>sc_node-monster_header.

<ls_changes>-change_mode = /bobf/if_frw_c=>sc_modify_update.

<ls_changes>-key

= lrs_monster_header->key.

<ls_changes>-data = lrs_monster_header.

*---------------------------------------------------------------*

* Update Items

*---------------------------------------------------------------*

DATA: ls_monster_item LIKE LINE OF it_monster_items,

lrs_monster_item TYPE REF TO zsc_monster_items.

FIELD-SYMBOLS: <ls_monster_items> TYPE zsc_monster_items.

LOOP AT it_monster_items INTO ls_monster_item.

CREATE DATA lrs_monster_item.

ASSIGN lrs_monster_item->* TO <ls_monster_items>.

<ls_monster_items> = ls_monster_item.

APPEND INITIAL LINE TO lt_changes_to_be_made

ASSIGNING <ls_changes>.

<ls_changes>-node = zif_monster_c=>sc_node-monster_items.

<ls_changes>-change_mode = /bobf/if_frw_c=>sc_modify_update.

<ls_changes>-source_node =

zif_monster_c=>sc_node-monster_header.

<ls_changes>-association =

zif_monster_c=>sc_association-monster_header-monster_items.

<ls_changes>-source_key = lrs_monster_header->key.

<ls_changes>-key = lrs_monster_item->key.

<ls_changes>-data = lrs_monster_item.

ENDLOOP. "Monster Items

mo_bopf_pl_helper->change_data_in_memory(

EXPORTING it_changes_to_be_made = lt_changes_to_be_made

IMPORTING ef_data_in_memory_changed = ef_update_successful ).

CHECK ef_update_successful = abap_true.

mo_bopf_pl_helper->change_data_in_database( ).

ENDMETHOD. "Update Monster Record

Listing 8.22 Updating (Changing) an Existing BOPF Record

341

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!