Show TOC

Implementing GET_EXPAND_CLAUSE_DEFAULTLocate this document in the navigation structure

Implement the method GET_EXPAND_CLAUSE_DEFAULT in case the entity needs to support Expand (Expand Entity and Expand Entity Set) and Deep Insert. The method should return a table of Expand clauses. An example with sample code is given below:

Note

If you do not implement the method GET_EXPAND_CLAUSE_DEFAULT, abstract EDP does not call the mapping specialists for Deep Insert and Expand operations.

Let us consider a SAP Gateway Model as shown below:

In case 'SalesOrder' entity needs to support Expand on entities 'SalesOrderLineItem' and 'Buyer' then the exporting parameter expand clause need to be filled as follows:

  • SalesOrderLineItem

  • Buyer

In case 'SalesOrder' entity needs to support Expand on entities 'SalesOrderItemScheduleLine' as well then the expand clause need to be filled as follows:

  • SalesOrderLineItem

  • Buyer

  • SalesOrderLineItem/SalesOrderItemScheduleLine

Sample code for implementing GET_EXPAND_CLAUSE_DEFAULT:

DATA:
	lv_expand_string TYPE string.

CASE  iv_operation.
	WHEN gc_operation_code_ro-expand_entityset.
		lv_expand_string = ‘SalesOrderLineItem’.
		APPEND lv_expand_string TO et_expand_clause.

		lv_expand_string = ‘Buyer’.
		APPEND lv_expand_string TO et_expand_clause.

		lv_expand_string = ‘SalesOrderLineItem/SalesOrderItemScheduleLine
		APPEND  lv_expand_string TO et_expand_clause.
	
	WHEN gc_operation_code_wr-deep_insert.
		lv_expand_string = ‘SalesOrderLineItem’.
		APPEND lv_expand_string TO et_expand_clause.

		lv_expand_string = ‘Buyer’.
		APPEND lv_expand_string TO et_expand_clause.
ENDCASE.
 

Register mapping specialists for the expand entity operation by redefining the method REGISTER_MAPPING_SPECIALISTS of the abstract EDP. Below is the sample code.

CASE iv_entity_name.
    WHEN 'SalesOrder'.
      CASE iv_entity_operation.
        WHEN gc_operation_code_ro-expand_entity.
          ls_mapping_specialist_attr-execution_mode = gc_execution_mode_ro-expand_entity.
          ls_mapping_specialist_attr-mapping_specialist_name = '/IWFND/CL_MGW_MAP_SO_RQ'.
          ls_mapping_specialist_attr-bop_type = /iwfnd/if_mgw_bec_bop=>gc_bop_type_rfc.
          ls_mapping_specialist_attr-bop_name = '/IWFND/CL_MGW_BOP_SO_READ'.
          APPEND ls_mapping_specialist_attr TO et_mapping_specialist_attr.

          ls_mapping_specialist_attr-execution_mode = gc_execution_mode_ro-expand_entity.
          ls_mapping_specialist_attr-mapping_specialist_name = '/IWFND/CL_MGW_MAP_SI_RQ'.
          ls_mapping_specialist_attr-bop_type = /iwfnd/if_mgw_bec_bop=>gc_bop_type_rfc.
          ls_mapping_specialist_attr-bop_name = '/IWFND/CL_MGW_BOP_SI_RQ'.
          APPEND ls_mapping_specialist_attr TO et_mapping_specialist_attr.
      ENDCASE.
  ENDCASE.