Hier zeige ich an Hand des Beispiels der App Bestand Einzelmaterial (F1076), wie diese Fiori-App aus einem ABAP-Report aufgerufen werden kann. Die Werte für die Konstanten GC_OBJECT und GC_ACTION kommen aus den App-Details.
REPORT z_test_fiori.
CONSTANTS:
gc_object TYPE cl_lsapi_manager=>semantic_object VALUE 'Material',
gc_action TYPE cl_lsapi_manager=>semantic_action VALUE 'displayStockOverview'.
DATA:
gt_parameters TYPE tihttpnvp,
gv_matnr TYPE matnr,
gv_werks TYPE werks_d.
INITIALIZATION.
GET PARAMETER ID 'MAT' FIELD gv_matnr.
GET PARAMETER ID 'WRK' FIELD gv_werks.
START-OF-SELECTION.
IF NOT gv_matnr IS INITIAL.
APPEND INITIAL LINE TO gt_parameters ASSIGNING FIELD-SYMBOL(<gf_param>).
<gf_param>-name = 'Product'.
<gf_param>-value = gv_matnr.
ENDIF.
IF NOT gv_werks IS INITIAL.
APPEND INITIAL LINE TO gt_parameters ASSIGNING <gf_param>.
<gf_param>-name = 'Plant'.
<gf_param>-value = gv_werks.
ENDIF.
* Call FIORI App
CALL METHOD cl_lsapi_manager=>navigate_to_intent
EXPORTING
object = gc_object
action = GC_action
parameters = gt_parameters
* application_hash =
* navigation_mode = if_lsapi=>gc_s_navigation_mode-new_external_window
navigation_mode = if_lsapi=>gc_s_navigation_mode-shell_default
* add_source_system = ABAP_FALSE
* xapp_state =
EXCEPTIONS
error = 1
not_supported = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
