[ABAP] Semantisches Objekt im Fiori-Launchpad anzeigen

* Fiori-Launchpad
* Beispiel-Aufruf eines Kundenauftrages mittels Fiori-App (F1814)
* Der Zusammenhang zw. App, Semantischem Objekt und Semantischer Action ist im technischen Katalog hinterlegt

* technischer Katalog (Siehe CDS-View CDS_SUI_TM_MM_APP (SUI_TM_MM_APP_V))
PARAMETERS: p_cat TYPE /ui2/ad_mm_cat_id MATCHCODE OBJECT sui_tm_mm_cat DEFAULT 'SAP_TC_CEC_SD_COMMON'.
* Semantic Objekt (technisches Objekt, im techn. Katalog hinterlegt)
PARAMETERS: p_semobj TYPE /ui2/semantic_object MATCHCODE OBJECT sui_tm_mm_semantic_object LOWER CASE DEFAULT 'SalesOrder'.
* Semantic Action (Funktion, die das Semantische Objekt ausführt)
PARAMETERS: p_semact TYPE /ui2/semantic_action MATCHCODE OBJECT fccx_semantic_action LOWER CASE DEFAULT 'displayFactSheet'.
* Semantic Objct Parameter (Parameter für das Semantische Objekt)
PARAMETERS: p_sempar TYPE char80 LOWER CASE DEFAULT 'SalesOrder'.
* Value (Parameterwert)
PARAMETERS: p_parval TYPE char80 LOWER CASE DEFAULT '1'.

START-OF-SELECTION.

* URL Parameter
  DATA(it_parameters) = VALUE tihttpnvp( ( name = 'sap-client'      value = sy-mandt )
                                         ( name = 'sap-ui-language' value = 'DE' )
                                         ( name = 'sap-ui-appcache' value = 'false' ) ).

* Fiori Launchpad: Browser URL mit HOST:PORT und Parametern zusammenbauen
  DATA(lv_url) = /ui5/cl_theme_util=>get_server_url( path         = |/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html|
                                                     parameters   = it_parameters
                                                     always_https = abap_false ).

* Objektaufruf
* Pattern:
*    #<semantic object>-<action>?<semantic object parameter>=<value1>
* Beispiel:
*    #SalesOrder-displayFactSheet?SalesOrder=1
  lv_url = |{ lv_url }#{ p_semobj }-{ p_semact }?{ p_sempar }={ p_parval }|.

* leere Standard-Toolbar ausblenden
  cl_abap_list_layout=>suppress_toolbar( ).

* URL anzeigen
  DATA(o_hv) = NEW cl_gui_html_viewer( parent = cl_gui_container=>default_screen ).
  o_hv->show_url( url = CONV swk_url( lv_url )
                  in_place = abap_true ). " im SAP-Fenster (abap_true) oder im Externen Browser (abap_false) anzeigen

* cl_gui_container=>default_screen erzwingen
  WRITE: space.

Links