14.01.2020 Views

ABAP_to_the_Future

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Using BOPF to Write a DYNPRO-Style Program 8.2

EXPORTING iv_node = zif_monster_c=>sc_node-monster_header

it_key = ct_key

IMPORTING et_data = lt_monster_header ).

READ TABLE lt_monster_header INTO ls_monster_header INDEX 1.

CHECK sy-subrc EQ 0.

lo_monster_model = zcl_monster_model=>get_instance( ls_monster_

header-monster_number ).

lf_determination_needed =

lo_monster_model->is_derivation_relevant( lt_changes ).

ENDIF. "Are there any changes?

CHECK lf_determination_needed = abap_false.

DELETE ct_key WHERE key = ls_monster_header-key.

ENDMETHOD. "Check Delta

METHOD is_derivation_relevant.

* Local Variables

DATA: ls_changes LIKE LINE OF it_changes,

ls_changed_field TYPE string.

LOOP AT it_changes INTO ls_changes.

LOOP AT ls_changes-attributes INTO ls_changed_field.

CHECK ls_changed_field = 'SANITY' OR

ls_changed_field = 'HAT_SIZE'.

rf_relevant = abap_true.

RETURN.

ENDLOOP.

ENDLOOP.

ENDMETHOD. "Is Derivation Relevant

Listing 8.9 Checking Changed Fields

The CHECK Method

The CHECK method takes a look at the curren t values and decides if running a

determination needs to be done or not based on those values. This is another

optional method, because sometimes whether a determination runs or not is not

based on any particular field values.

313

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

Saved successfully!

Ooh no, something went wrong!