当前位置: 首页 > news >正文

SAP GUI 显示SAP UI5应用,并实现SSO统一登陆

想用SAP UI5 做一写界面,又不想给用户用标准的Fiori APP怎么办?我觉得可以用可配置物料标准功能的思路,在SAP GUI中显示UI5界面,而不是跳转到浏览器。

代码实现后的效果如下:

1、调用UI5应用,适用于自开发的,参考前几篇文章做的应用,没有配置Fiori LanuchPad。

2、调用 Firoi lanuchPad,然后显示的应用,标准的应用,这种走远了。用户容易既要又要的。

实现原理很简单,逻辑就是采用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认证代码后,如果出现以下问题:

按照note 612670解决办法,通过事务代码SE38执行执行 SAPHTML_SSO_DEMO

测试标准demo程序能不能正常运行,可以验证是系统设置问题还是代码问题。

调用deepseek网页,效果一样的,在GUI里摸鱼。

相关文章:

  • 华为hcie证书的有效期怎么判断?
  • 并发编程--条件量与死锁及其解决方案
  • Python及C++中的排序
  • 免费下载 | 2025清华五道口:“十五五”金融规划研究白皮书
  • [CF2086E] Zebra-like Numbers 题解
  • PHP多维数组
  • 对shell脚本敏感命令进行加密执行
  • PyTorch模型构造实战:从基础到复杂组合
  • 力扣刷题DAY12(动态规划-区间DP)
  • AUTO-RAG: AUTONOMOUS RETRIEVAL-AUGMENTED GENERATION FOR LARGE LANGUAGE MODELS
  • 用Java实现O(n)时间复杂度查找最长连续序列
  • 【特权FPGA】之SRAM读写
  • C语言--汉诺塔问题
  • 软考 系统架构设计师系列知识点之杂项集萃(50)
  • asm汇编源代码之按键处理相关函数
  • 《JVM考古现场(十八):造化玉碟·用字节码重写因果律的九种方法》
  • 操作系统:线程间同步之事件集
  • 【人脸识别中的“类内差异”和“类间差异】
  • 关闭当前微信小程序解决方案
  • FFMPEG和opencv的编译
  • 无锡建设局官方网站/seo优化百度技术排名教程
  • 徐州企业网站建设公司/seo是一种利用搜索引擎
  • 博客自助建站/抖音推广平台联系方式
  • 网站留言板样式/市场营销方案
  • 衡阳网站建设/今日网站收录查询
  • 网站建设必须提供良好的用户体验/什么网站都能进的浏览器