专栏首页Jerry的SAP技术分享为什么SAP GUI里的传统事务码能通过Fiori Launchpad启动

为什么SAP GUI里的传统事务码能通过Fiori Launchpad启动

今天是农历鼠年大年初六,本文是鼠年第6篇文章,也是汪子熙公众号第205篇原创文章。

大家这几天宅得怎么样了?

Jerry之前的文章 那些年我用过的SAP IDE 曾经提到,我们可以把SAP GUI里的传统事务码放到SAP Launchpad里启动,并在浏览器里运行。

这是SE80在浏览器里运行的界面:

为响应government号召,尽量少出门,反正也闲着没事,今天我们就来聊聊这一切是怎么实现的。

Jerry最初注意到这种将SAP GUI里的事务码运行在浏览器里的做法,是在日常工作的测试时,发现Fiori Launchpad里这个Create Material的tile.

回忆一下,原生的Fiori应用,无论我们在页面内进行何种点击操作,都不会跳转到一个全新的页面去,即不会打开一个新的浏览器窗口,或者一个新的标签页——Fiori原生应用,所有的用户操作都在一个页面内完成,页面的切换通过SAP UI5的router组件完成,这是一个典型的Single Page Application的特征。

反之,当我点击了上图Create Material tile之后,启动的应用是在另一个新的Chrome标签页里打开并操作的,请大家注意上图红色新开启的标签页。

这就说明,这个Create Material tile背后的应用不是基于SAP UI5开发的Fiori原生应用。

那么它又是用什么技术开发的呢?仔细观察url:

https://:44311/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?sap-client=928&sap-language=EN#Material-create?sap-ui-tech-hint=GUI

发现了这个片段:sap-ui-tech-hint=GUI

这暗示我们,该应用的UI是基于SAP GUI绘制的。

我们在浏览器里打开该应用:

把上图该应用的界面同SAP GUI里S/4HANA的物料主数据创建事务码MM01的界面做对比:

发现除了外观风格外,二者的字段名称,位置,布局完全一致。结合种种我们观察到的结果,显然这个Create Material tile指向的应用是基于SAP GUI里MM01事务码包裹而成的。

在浏览器里打开该tile,在Chrome开发者工具中把tile所属的Fiori Catalog ID记录下来:SAP_CMD_BC_PR_MAINT

在Fiori Launchpad里根据该ID打开对应的catalog,发现有好几个和Material相关的跳转对象,其类型都为SAP GUI里的Transaction:

我们之前发现的url片段,sap-ui-tech-hint=GUI,就配置在这里:

跳转的目的事务码ID MM01,配置在此处。同时Device Types里只支持桌面,这没什么问题,因为SAP GUI通过浏览器渲染出来的界面,不像SAP UI5那样具有响应式布局的功能,因此只能运行在桌面浏览器里。

在运行时,一旦SAP UI5框架代码解析到sap-ui-tech-hint参数的值为GUI,就执行对应的渲染逻辑。

在Chrome开发者工具的Sources标签页里,能看到gui/sap/its这个路径片段。

ITS即Internet Trasaction Server,SAP Netweaver里一项非常古老的技术,这个技术提供的组件能解析使用SAP GUI技术开发出的screen的元数据并渲染成HTML,从而能够让SAP GUI的事务码运行在浏览器里。

关于SAP ITS in SAP NetWeaver Application Server的更多介绍,参考SAP帮助文档:

https://help.sap.com/saphelp_nw70/helpdata/en/46/668d4b72255de4e10000000a1553f6/frameset.htm

如果我们想体验ITS,也很容易。SICF事务码,输入webgui,执行:

发现这个节点正好位于本文正在讨论的its节点下:

右键单击webgui,选择Test Service:

自动弹出了浏览器窗口,显示的页面同使用SAP GUI登录系统后显示的初始页面一致。

接下来可以像使用SAP GUI那样,在浏览器里输入事务码并执行了。比如SE38进入ABAP编辑器:

后续Jerry会介绍如何把一个SAP GUI的事务码(无论是标准的事务码还是用户自定义的事务码)配置到SAP Fiori Launchpad并打开。

《终结者》里最经典的机器人型号T-800,内置金属骨架,外表覆盖生物组织以及仿生皮肤,由于外表和人类几乎一模一样,所以能轻松渗透到人类群体。然而人类忠实的伙伴,狗,可以轻松分辨出T-800和普通人类。

希望本文Jerry介绍的这些内容也能帮助大家轻松分辨Fiori原生应用和采用SAP ITS技术渲染的伪Fiori应用。感谢阅读。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SAP Business Application Studio和SAP云平台Destination

    根据SAP官方文档,在SAP Cloud Platform CloudFoundry环境里创建的Destination,在SAP Business Applic...

    Jerry Wang
  • SAP Business Application Studio和SAP云平台Destination

    根据SAP官方文档,在SAP Cloud Platform CloudFoundry环境里创建的Destination,在SAP Business Applic...

    Jerry Wang
  • SAP公有云和私有云解决方案概述

    SAP公有云解决方案见下图最右侧,比较著名的有SAP SuccessFactors和SAP Cloud for Customer(C4C)等,作为SAP软件即服...

    Jerry Wang
  • 汉得跌停与SAP二审license有关吗?

    11月27日汉得信息(股票代码:300170以下简称汉得)跌停回涨,报收9.96元。有人认为这与SAP二审license有关,市场传言SAP对终端用户进行审计,...

    人称T客
  • 如何在S/4HANA里创建Custom Business object并实现自定义逻辑

    使用分配了包含有Business Catalog SAP_CORE_BC_EXT的业务角色的用户登录S/4HANA,在SAP LaunchpadExtensib...

    Jerry Wang
  • 2018年云计算十大并购,谁将成为下一个云巨头?

    转眼间,2018年即将结束。回顾2018年的云计算市场,不可谓不精彩:云计算巨头们依然保持着惊人的高速增长;传统IT厂商们也不甘于被时代所抛弃,纷纷向云计算市场...

    大数据在线
  • 成为 Linux 终端高手的七种武器

    Linux 终端不仅是一个键入命令的地方。如若你能熟谙这些基础技巧,那么你会在绝大多数 Linux 发行版的默认使用的 Bash shell中游刃有余。 这是...

    小小科
  • python2中为什么在进行类定义时最好

    Person类很明显能够看出区别,不继承object对象,只拥有了doc , module 和 自己定义的name变量, 也就是说这个类的命名空间只有三个对象可...

    py3study
  • 《Android》Lesson23-数据存储sqlite1

    用户1733354
  • node表单提交POST提交

    前几天给大家介绍了使用node的提交(get)获取到表单提交的内容,get提交的参数查询部分(query)可以获得到,由于get提交的内容在url显示,而po...

    十月梦想

扫码关注云+社区

领取腾讯云代金券