首页 > 其他分享 >回答朋友提问:Fiori UI 中如何知道当前系统 Client ID (一)

回答朋友提问:Fiori UI 中如何知道当前系统 Client ID (一)

时间:2023-06-19 23:23:35浏览次数:55  
标签:服务 OData ABAP Client UI Fiori SAP

今天我的 SAP 开发技术交流群里,有朋友问这样的问题:

在 Fiori 界面中,怎么查看当前 Client?

我觉得要回答这个问题,需要提问的朋友提供更多的背景信息,比如:

Fiori 界面,是运行在 ABAP On-Premises 上,还是 Cloud 环境(Cloud 环境下想知道 Client ID 貌似没有意义,因为这个字段值只对 SAP Support Engineer 有用)?

Fiori 界面是 Fiori 1.0,2.0 还是 Fiori 3.0?

在不同的 Fiori 部署方式和版本,查看当前 Client 的方法略微有些差异。Jerry 近期会逐一介绍。

在开始介绍查看 Client 方法之前,我们可以先复习一下这几篇文章介绍到的知识:

下面我们从 Fiori 1.0 开始聊起。

SAP Fiori 1.0 正式发布于 2013 年,旨在通过 Mobile First(移动设备优先)的设计策略,对 SAP 不同领域使用频率最高的应用进行重构。Fiori 1.0 在这门设计语言发展历史上,起到的最重要的作用,就是提出了基于角色的应用访问原则(Role-based Access Principle),目标是开发出具备 simple, responsive, coherent 和 delightful 特性的应用程序。这些原则和目标,贯穿于 Fiori 长达10年的漫长演进历史中。

Fiori 1.0 基于的 SAP UI5 版本号范围是 1.26 到 1.38. 下图是我早在 2014年时,在 SAP 成都研究院 CRM Fiori 开发团队负责开发的 My Opportunity 应用的截图。

从应用的地址栏里,可以一眼看出这个 Fiori 应用的 ABAP 系统名称为 GM4,Client ID 为 001.

如果用户访问的系统 url 被重定向或者由于种种其他原因,无法直接从地址中提取出系统名称和 Client ID,可以打开 Chrome 开发者工具,切换到 network 面板,输入关键字 start_up 进行过滤:

这个 start_up 请求的响应里,就包含了当前系统的 System 和 Client ID,如下图图例1和2所示。除此之外,还有当前登录用户的明细,比如使用的语言,所处时区等信息。

知道了 ABAP On-Premises 系统的系统 ID 和 Client ID,准确的说,这个系统特指 SAP Gateway(也称为 Frontend) 服务器。

Frontend 服务器通过 ABAP RFC 与运行 SAP 业务逻辑的后台系统连接。

在 SAP Gateway 系统上的事务码 /IWFND/MAINT_SERVICE 里,可以指定 Frontend 服务器同后台服务器的映射关系。比如下图的配置,语义就是 GM4 Gateway 系统,可以通过 RFC 连接到两个后台 ABAP 系统,分别是 GHD/504 和 AG3/001. 至于当前登录用户,运行时实际被分配到哪个后台系统,是通过用户分配的 PFCG role,即下图绿色高亮区域所示的角色决定的。

在 Gateway 系统的 /IWFND/CL_MGW_REQUEST_MANAGER~CALL_BACKEND 方法设置断点,运行时通过 Destination 的值,就能分辨出当前用户的请求,到底被 Gateway 系统分发到哪个后台服务器上了。

后续我会介绍如何在更高版本的 SAP Fiori UI 中实现同样的目的,比如 SAP S/4HANA 2021 的 Fiori 3.0 界面里如何找到 Client ID.

我之前写过一套基于 SAP ABAP SEGW 实现的 OData 服务开发教程,已经更新了 35 篇,里面包含了 SAP ABAP OData 服务的开发技巧,以及相关的系统设计原理,思路和相关开发工具。下面是 35 篇文章的目录:

  1. 在 SAP ABAP 事物码 SEGW 里创建 SAP OData 项目

  2. 在 SAP ABAP 系统对事物码 SEGW 创建的 OData 服务进行配置并测试

  3. SAP ABAP OData 服务诊断工具 /IWFND/ERROR_LOG 的使用方法

  4. SAP ABAP OData 服务 Data Provider Class 的 GET_ENTITYSET 方法实现指南

  5. SAP ABAP OData 服务如何支持 $filter (过滤)操作

  6. 使用 Postman 工具高效管理和测试 SAP ABAP OData 服务

  7. SAP ABAP OData 服务如何支持 $orderby (排序)操作

  8. SAP ABAP OData 服务如何支持创建(Create)操作

  9. SAP ABAP OData 服务如何支持删除(Delete)操作

  10. SAP ABAP OData 服务如何支持修改(Update)操作

  11. 使用 HTTP PUT, PATCH 以及 MERGE 请求消费 SAP ABAP OData 服务修改操作的实现及其区别

  12. SAP ABAP OData 服务如何支持 $select 有选择性地仅读取部分模型字段值

  13. SAP ABAP OData 服务的分页加载数据集的实现(Paging)

  14. 几种 SAP ABAP OData 服务的性能评估和测试工具介绍

  15. SAP ABAP OData 服务里 EntityType 和 EntitySet 的区别

  16. 如何修改 SAP ABAP OData 模型,使其支持 $expand 操作

  17. 如何通过 SAP ABAP OData $expand 操作在同一个 HTTP 请求中返回多个节点的数据

  18. SAP ABAP OData 服务嵌套创建功能的实现步骤(Create Deep)

  19. 如何使用 ABAP 程序消费 SAP ABAP OData 服务

  20. 如何使用 ABAP 代码消费需要传递 CSRF token 的 OData 服务

  21. SAP ABAP OData 服务的 $count 操作实现

  22. SAP ABAP OData 服务的 $count 和 $inlinecount 两个操作的区别

  23. 如何给 SAP ABAP SEGW 开发的 OData 服务添加 Access-Control-Allow-Origin 响应头

  24. SAP 标准产品里使用 OData 服务的一些细节分享

  25. 答疑 - SAP OData 框架处理 Metadata 元数据请求的实现细节,前后端组件部署在同一台物理服务器

  26. SAP ABAP OData Gateway 框架里 /IWFND, /IWBEP 这些缩写代表了什么含义?

  27. SAP OData 框架里的缓存(Cache)设计专题讲座

  28. 如何使用 SAP OData 服务向 ABAP 服务器上传文本格式的文件

  29. 如何通过 ABAP 代码给 SAP OData 元数据增添注解

  30. 如何使用 SEGW 的 redefine 功能对 SAP 标准 OData 服务进行扩展

  31. SAP UI5 Fiori 应用在启动时向 ABAP 后台发起的 OData 请求序列的顺序和作用分析

  32. 关于 Fiori 应用里 SAP UI5 前端开发和 SEGW 后台 OData 服务开发的工作量比值问题

  33. 如何找出 SAP Fiori Launchpad 里点击 tile 之后,读取业务数据调用的是哪个 SAP 后台系统的 OData 服务

  34. 如何使用 Postman 发送 SAP OData Batch 请求到 ABAP 后台服务器

  35. 如何自行查找出 SAP ABAP 标准的 OData 服务返回数据的后台数据库表和表字段名称

标签:服务,OData,ABAP,Client,UI,Fiori,SAP
From: https://www.cnblogs.com/sap-jerry/p/17492492.html

相关文章

  • SAP Spartacus UI 中的 CmsTicketInterceptor
    在SpartacusUI发起的OCCAPI请求的URL中,您可能会注意到一个名为cmsTicketId的字段。这个字段的含义与用途如下:cmsTicketId是一个标识符,用于关联SpartacusUI与SAPCommerceCloud后端CMS(ContentManagementSystem)的会话。CMS是一个用于管理网站内容的系统,如......
  • macOS Big Sur ,git gui 不起作用
    如何解决将软件更新到macOSBigSur到11.4后,gitgui不起作用?开发过程中遇到将软件更新到macOSBigSur到11.4后,gitgui不起作用的问题如何解决?下面主要结合日常开发的经验,给出你关于将软件更新到macOSBigSur到11.4后,gitgui不起作用的解决方法建议,希望对你解决......
  • BUUCTF:[GKCTF2020]Harley Quinn
    https://buuoj.cn/challenges#[GKCTF2020]Harley%20QuinnHeathens末尾存在DTMF码(电话拨号码)将这一段截取出来,使用工具dtmf2num识别#22283334447777338866#对照即可得到#ctfisfun#题目压缩包上有提示:FreeFileCamouflageFreeFileCamouflage是一款将重要文档以AES加密算法存放......
  • 03后台主页模块设计,simpleui后台管理,轮播图接口,跨域问题详解,前台主页功能
    1后台主页模块设计#1创建后台主页模块(一个模块一个app)python../../manage.pystartapphome#2在models中写轮播图表 -写一个基表BaseModel-写轮播图表#3迁移###BaseModel##########fromdjango.dbimportmodelsclassBaseModel(models.Model):creat......
  • MYSQL client 有了更多的新功能
    MYSQL8 中的client中的新功能,方便在MYSQL的client中操作可以不用在切换到LINUX平台下操作某些LINUX的命令。使用的场景主要在于在MYSQL中操作数据库的命令的适合,同时还想在监控一下当前的性能,之前可能会开两个窗口,在MYSQL8后,这样的事情可能会少不少。到底我们能做什么1 ......
  • Turndown 源码分析:二、规则`commonmark-ruiles.js` REV1
    import{repeat}from'./utilities'varrules={}//段落rules.paragraph={filter:'p',replacement:function(content){//前后加两个换行return'\n\n'+content+'\n\n'}}//换行rules.lineBrea......
  • window wsl 无法访问flink webui
    https://blog.csdn.net/weixin_38988171/article/details/126012785修改flink配置文件rest.bind-address:localhost为rest.bind-address:0.0.0.0......
  • 一封给Android开发者 UI 自动化测试上手指南
    介绍Android测试支持库包含UI自动化模块,它可以对Android应用进行自动黑盒测试。在APILevel18中引入了自动化模块,它允许开发者在组成应用UI的控件上模仿用户行为。在这个教程中,将展示如何使用此模块来创建和执行一个基本的UI测试,选择默认的计算器模块进行测试。先决条件在使用前,需......
  • 2023-06-19 API `getMenuButtonBoundingClientRect` is not yet implemented
    前言:想使用该Api来获取设备导航栏高度,结果报错了:API`getMenuButtonBoundingClientRect`isnotyetimplemented尚未实现API`getMenuButtonBoundingClientRect`原因:该Api不支持在app端或者h5端使用。平台兼容如下: AppH5微信小程序支付宝小程序百度小程序抖音小程序飞书小......
  • wsl中启动emacs GUI
    wsl中启动emacsGUIwsl中启动emacsGUITableofContents1.linux配置1.1.wsl1.2.wsl22.X11Server2.1.debian/ubuntu3.中文字体4.输入法5.参考Windows中使用Emacs因为公司安全软件的原因,会启动很慢(正常启动1.5秒,会需要2分钟以上,差别太......