我可以不吃啊 发表于 2025-4-14 07:44:57

SAP GUI 表现SAP UI5应用,并实现SSO同一登陆

想用SAP UI5 做一写界面,又不想给用户用标准的Fiori APP怎么办?我以为可以用可配置物料标准功能的思绪,在SAP GUI中表现UI5界面,而不是跳转到欣赏器。

https://i-blog.csdnimg.cn/img_convert/c94f2a7dbc812d442247ddc5575c1897.png
代码实现后的效果如下:
1、调用UI5应用,实用于自开辟的,参考前几篇文章做的应用,没有配置Fiori LanuchPad。

https://i-blog.csdnimg.cn/img_convert/4018d909f39aae07433b676e55e768f8.png
2、调用 Firoi lanuchPad,然后表现的应用,标准的应用,这种走远了。用户容易既要又要的。

https://i-blog.csdnimg.cn/img_convert/b290251f97124afb0118c50b430236b6.png
实现原理很简朴,逻辑就是接纳HTML控件调用URL地点,且不要跳转到欣赏器,直接表现在SAP GUI 中。代码如下:
DATA: lo_html_control TYPE REF TO cl_gui_html_viewer,
      fcode           LIKE sy-ucomm,
      lo_container    TYPE REF TO cl_gui_custom_container,
      lo_http_client  TYPE REF TO if_http_client,
      lv_url(2048).
START-OF-SELECTION.
  SET SCREEN 100.
  " 创建屏幕容器
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  IF lo_container IS INITIAL.
    lo_container = NEW cl_gui_custom_container(
      container_name = 'CO1'
    ).
  ENDIF.
  " 创建 HTML 控件
  IF lo_html_control IS INITIAL.
    lo_html_control = NEW cl_gui_html_viewer(
      parent = lo_container
    ).
    IF sy-subrc NE 0.
      RAISE cntl_error.
    ENDIF.
  ENDIF.
  " 设置 SAPUI5 应用的 URL(需替换为实际地址)
  lv_url = 'https://IP:Port/sap/bc/ui5_ui5/sap/zbook'.
  IF sy-subrc = 0.
    IF sy-subrc = 0.
*      lo_html_control->enable_sapsso( enabled = 'X' ).
      "加载页面
      lo_html_control->show_url( url = lv_url )."不跳转到浏览器
*      lo_html_control->detach_url_in_browser( url = lv_url ).
      cl_gui_cfw=>flush( ).
    ENDIF.
  ENDIF.
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  CASE fcode.
    WHEN 'BACK'.
      IF NOT lo_html_control IS INITIAL.
        CALL METHOD lo_html_control->free.
        FREE lo_html_control.
      ENDIF.
      IF NOT lo_container IS INITIAL.
        CALL METHOD lo_container->free
          EXCEPTIONS
            OTHERS = 1.
        IF sy-subrc <> 0.
        ENDIF.
        FREE lo_container.
      ENDIF.
      LEAVE PROGRAM.
    WHEN OTHERS.
      CALL METHOD cl_gui_cfw=>dispatch.
  ENDCASE.
  CLEAR fcode.
ENDMODULE. SSO,接纳SAP GUI 当前用户账号密码直接登录的代码如下:
lo_html_control->enable_sapsso( enabled = 'X' ). 增加SSO认证代码后,如果出现以下题目:

https://i-blog.csdnimg.cn/img_convert/28bb178ca8437310de7c2e2542a3388b.png
按照note 612670办理办法,通过事件代码SE38实行实行 SAPHTML_SSO_DEMO

https://i-blog.csdnimg.cn/img_convert/84e7c35fa6d1de87043d7e5a461c1da7.png
测试标准demo程序能不能正常运行,可以验证是系统设置题目照旧代码题目。
调用deepseek网页,效果一样的,在GUI里摸鱼。

https://i-blog.csdnimg.cn/img_convert/6affddc43a5f9c991890724c74460bd1.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: SAP GUI 表现SAP UI5应用,并实现SSO同一登陆