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.