* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Private Method ZCL_ZIFLTCON_MPC_EXT->ADD_ACTION
* +-------------------------------------------------------------------------------------------------+
* | [--->] IV_ACTION_NAME TYPE /IWBEP/MED_EXTERNAL_NAME
* +--------------------------------------------------------------------------------------</SIGNATURE>
method add_action.
data: lv_fc_fieldvalue type /iwbep/med_annotation_value,
lo_complex_type type ref to /iwbep/if_mgw_odata_cmplx_type,
lo_prop type ref to /iwbep/if_mgw_odata_property.
data(lo_action) = model->create_action( iv_action_name ).
"set return parameter
lo_action->set_return_entity_type( 'ZI_FlightConnectionsType' ) .
lo_action->set_return_entity_set( 'ZI_FlightConnections' ).
lo_action->set_http_method( 'PUT' ).
lo_action->set_return_multiplicity( /iwbep/if_mgw_med_odata_types=>gcs_cardinality-cardinality_1_1 ).
"specify input parameters
data(lo_parameter) = lo_action->create_input_parameter(
iv_parameter_name = 'Airline'
iv_abap_fieldname = 'AIRLINE' ).
lo_parameter->/iwbep/if_mgw_odata_property~set_type_edm_string( ).
lo_parameter->set_maxlength( iv_max_length = 3 ).
data(lo_parameter1) = lo_action->create_input_parameter(
iv_parameter_name = 'FlightConnection'
iv_abap_fieldname = 'FLIGHTCONNECTION' ).
lo_parameter1->/iwbep/if_mgw_odata_property~set_type_edm_string( ).
lo_parameter1->set_maxlength( iv_max_length = 4 ).
"Is Action Active?
concatenate 'IsActive' iv_action_name into data(lv_action_ac).
data(lo_annotation) = lo_action->/iwbep/if_mgw_odata_annotatabl~create_annotation( 'sap' ).
lo_annotation->add( iv_key = 'action-for' iv_value = 'ZI_FlightConnectionsType' ).
lo_annotation = lo_action->/iwbep/if_mgw_odata_annotatabl~create_annotation( 'sap' ).
lo_annotation->add( iv_key = 'applicable-path' iv_value = lv_action_ac ).
endmethod.