class YCL_ADAM_DEMO_DATA_MODEL definition public inheriting from /IQX/CL_FORMS_BASE_CLASS create public . public section. methods PERFORM_ACTION redefinition . ** Begin FAB Data Model - do not delete ** TYPES: BEGIN OF T_OrderItemsStruct, ItemNo TYPE STRING, END OF T_OrderItemsStruct. DATA: LT_OrderItems TYPE STANDARD TABLE OF T_OrderItemsStruct. TYPES: BEGIN OF T_OrdersStruct, OrderNumber TYPE STRING, OrderDate TYPE DATUM, OrderItems LIKE LT_OrderItems, END OF T_OrdersStruct. DATA: LT_Orders TYPE STANDARD TABLE OF T_OrdersStruct. DATA: LS_OrdersStruct TYPE T_OrdersStruct. TYPES: BEGIN OF T_DATA, Customer TYPE STRING, Orders LIKE LT_Orders, END OF T_DATA. data GS_DATA type T_DATA. ** End FAB Data Model - do not delete ** protected section. private section. ENDCLASS. CLASS YCL_ADAM_DEMO_DATA_MODEL IMPLEMENTATION. * ---------------------------------------------------------------------------------------+ * | Instance Public Method YCL_ADAM_DEMO_DATA_MODEL->PERFORM_ACTION * +-------------------------------------------------------------------------------------------------+ * | [--->] I_ACTION TYPE STRING * | [--->] I_HEADER_INSTANCE TYPE /IQX/FORMHD_INST * | [--->] IT_FILTER_SELECT_OPTIONS TYPE /IQX/T_MGW_SELECT_OPTION * | [--->] PAYLOAD_JSON TYPE /IQX/ZSTRING * | [--->] PAYLOAD_DATA TYPE /IWFND/SUTIL_XML_DATA_T * | [<-->] CT_RESULTS TYPE /IQX/FAB_GENERIC_ACTION_TT * | [<-->] CR_DATA TYPE ANY(optional) * +-------------------------------------------------------------------------------------- METHOD perform_action. * example FIELD-SYMBOLS: LIKE LINE OF ct_results. CASE i_action. WHEN 'GET'. MOVE-CORRESPONDING cr_data TO gs_data. REFRESH gs_data-orders. IF gs_data-customer = '1000'. DATA: ls_order TYPE t_ordersstruct. ls_order-ordernumber = '10099'. ls_order-orderdate = sy-datum - 60. data: ls_orderitem type t_orderitemsstruct. ls_orderitem-itemno = 1. append ls_orderitem to ls_order-orderitems. ls_orderitem-itemno = 2. append ls_orderitem to ls_order-orderitems. APPEND ls_order TO gs_data-orders. clear ls_order. ls_order-ordernumber = '10100'. ls_order-orderdate = sy-datum - 30. ls_orderitem-itemno = 1. append ls_orderitem to ls_order-orderitems. ls_orderitem-itemno = 2. append ls_orderitem to ls_order-orderitems. ls_orderitem-itemno = 3. append ls_orderitem to ls_order-orderitems. APPEND ls_order TO gs_data-orders. APPEND INITIAL LINE TO ct_results ASSIGNING . " -message = 'Orders loaded'. -success = abap_true. ELSEIF gs_data-customer = '1001'. ls_order-ordernumber = '10089'. ls_order-orderdate = sy-datum - 30. APPEND ls_order TO gs_data-orders. ls_order-ordernumber = '10079'. ls_order-orderdate = sy-datum - 60. APPEND ls_order TO gs_data-orders. APPEND INITIAL LINE TO ct_results ASSIGNING . " -message = 'Orders loaded'. -success = abap_true. ELSE. APPEND INITIAL LINE TO ct_results ASSIGNING . -message = 'Customer Not Found'. -success = abap_false. ENDIF. ENDCASE. MOVE-CORRESPONDING gs_data TO cr_data. ENDMETHOD. ENDCLASS.