[ABAP] ITS: Aufruf einer Transaktion über HTTPS in der WebGui

PARAMETERS: p_matnr TYPE mara-matnr.

START-OF-SELECTION.

  DATA: it_servlist TYPE STANDARD TABLE OF icm_sinfo2 WITH DEFAULT KEY.

* Statistikdaten des ICM lesen
  CALL FUNCTION 'ICM_GET_INFO2'
    TABLES
      servlist           = it_servlist
    EXCEPTIONS
      icm_error          = 1
      icm_timeout        = 2
      icm_not_authorized = 3
      OTHERS             = 4.

  IF sy-subrc = 0.
* protocol 1: HTTP
* protocol 2: HTTPS
    IF line_exists( it_servlist[ protocol = 2 ] ).
* URL für Transaktions-Anzeige in der ITS-WebGui zusammenbauen
* SICF-Service muss aktiv sein: /sap/bc/gui/sap/its/webgui
* Daten werden in der Klasse CL_HTTP_EXT_ITS prozessiert
      DATA(lv_server) = it_servlist[ protocol = 2 ].
      DATA(lv_html) = |https://{ lv_server-hostname }:{ lv_server-service }|.
      lv_html = lv_html && |/sap/bc/gui/sap/its/webgui?|.
      lv_html = lv_html && |~transaction=*MM03%20RMMG1-MATNR={ p_matnr ALPHA = OUT WIDTH = 10 }|. " MM03 + MATNR --> Selektionbild überspringen
      lv_html = lv_html && |&sap-client={ sy-mandt }|.
      lv_html = lv_html && |&sap-language=DE|.

* Browserfenster mit default_screen als Container
      DATA(o_hv) = NEW cl_gui_html_viewer( parent = cl_gui_container=>default_screen ).
* SSO
*      o_hv->enable_sapsso( enabled = abap_true ).
* ITS: WebGui inline (im SAPGUI) anzeigen
      o_hv->show_url( url      = CONV swk_url( lv_html )
                      in_place = abap_true ).

* Führt alle gesammelten OLE-Calls aus
      cl_gui_cfw=>flush( ).

* Toolbar ausblenden
      cl_abap_list_layout=>suppress_toolbar( ).

* erzwingt Anzeige über cl_gui_container=>default_screen
      WRITE: / space.
    ENDIF.
  ENDIF.

Links

[SAP] Internet Transaction Server (ITS) – Transaktion in der WebGUI aufrufen

Falls die WebGUI aktiv ist, können Transaktionen für die SAP-GUI auch im Browser aufgerufen werden:

* genereller Aufruf
https://<host>:<port>/sap/bc/gui/sap/its/webgui?sap-client=100&sap-language=DE&sap-user=XYZ&~OKCODE=<TCODE>%20<PARAM1>;<PARAM2>;...
* SAP-Menü 
https://<server-addr>:<port>/sap/bc/gui/sap/its/webgui 
* Transaktion "ME23N", Mandant "100", Sprache "DE"
https://<server-addr>:<port>/sap/bc/gui/sap/its/webgui?~transaction=ME23N&sap-client=100&sap-language=DE
* /IWFND/ERROR_LOG 
https://<server-addr>:<port>/sap/bc/gui/sap/its/webgui?~transaction=%2FIWFND%2FERROR_LOG
* MM60 mit Parameter Werk=10
https://<server-addr>:<port>/sap/bc/gui/sap/its/webgui?~transaction=*MM60%20MS_WERKS-LOW=10
* Ausführung erfolgt unter
cl_http_ext_its=>if_http_extension~handle_request

Links