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

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

时间:2022-12-10 13:35:22浏览次数:49  
标签:缓存 Frontend OData ABAP 服务器 SAP Metadata

我的知识星球 里有一个朋友提出了 SAP OData 服务 metadata 缓存方面的疑问,本文就来详细说一说:

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

jerry,啥时候有时间给介绍一下fiori的Metadata数据系统的处理机制吧。我现在在做的一个项目,用rap开发的。rap开发的service binding,在maintain service注册时,开始注册的服务命名错了。后来发现了后就删除了重新创建了一次。结果就出现了一个很有意思的现象,有时候打开app,界面上的那些filtertable控件都不显示了。用前端的error_log看系统有个错误,是和以前创建的那个服务有关。可是那个服务明明已经删除了。后来我debug了一下,发现系统表/iwfnd/i_med_vaa表里确实有一条和以前的服务绑定的数据,很奇怪。我尝试了各种正常操作都不能删除这条数据。而且,更奇怪的是,前端的app并不是每次都会没有控件,有时候会有。下午大体跟了一下代码,感觉这个东西和metadata有关,还与缓存有关。感觉系统好像用到了share object缓存了数据,当缓存数据不存在时就会从vaa表去取,结果由于选的那条数据对应的服务不存在了就会异常,从而刷不出显示控件;而缓存有数据时就会用缓存的数据,所以就能显示。可缓存的数据怎么来的呢?感觉应该有个job会定时处理。可是搜了一圈,只找到一个ui5/upd_odata_metadata_cache的程序。可是这程序修改的表好像不是vaa的。感觉这里面的东西挺多的,jerry能给大体讲讲吗?或者能给点资料也行

SAP Fiori 技术架构存在 ABAP Frontend 服务器(有时也称为 Gateway 服务器,前台服务器) 和 ABAP Backend(后台)服务器两个角色,其中 Frontend 服务器上主要安装 SAP Gateway 组件(实现类和数据库表的命名空间为 ​​/IWFND/​​) 和 SAP UI5 应用部署到 ABAP 系统后生成的 BSP 应用,后台服务器主要包含了 OData 服务的 ABAP 实现(DPC, DPC_EXT, MPC, MPC_EXT) ,即本教程开发的 OData 服务在事物码 SEGW里自动生成的以 Z 开头的一系列 ABAP 类:

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

以及 SAP OData 的框架代码,这些框架代码的命名前缀为 ​​/IWBEP​​.

笔者的文章 ​​SAP Fiori应用的三种部署方式​​

介绍过 Frontend 系统(下图红色区域)同 Backend 系统(下图绿色区域)在 SAP Fiori 架构体系中扮演的角色。

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

注意,理论上我们可以将上图 Frontend 和 Backend 系统组件部署在同一台物理服务器上,这也是最简单的一种部署体系架构。

因为一个 OData 元数据请求从浏览器或者 Postman 等工具发送,在 SAP 服务器响应过程中会依次经过 Frontend 和 Backend 服务器,其处理逻辑确实比较复杂,根据前台服务器和后台服务器的配置的不同排列组合,存在着非常多的处理分支,故我们不可能在一篇文章把所有这些处理分支全部介绍,故这个 OData Metadata 元数据的处理逻辑主题,笔者会利用几篇文章连续介绍。

​​本文​​介绍下图绘制的 SAP OData 元数据请求处理逻辑的蓝色块分支。其他颜色的分支逻辑,在后续文章继续介绍。

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

标签:缓存,Frontend,OData,ABAP,服务器,SAP,Metadata
From: https://blog.51cto.com/jerrywangsap/5927548

相关文章

  • SAP 电商云 Spartacus UI Configurable Product 的页面设置
    关键字CPQ,ProductConfiguration,ProductConfigure,ProductVariant变体是在某些方面彼此不同但基于相同基本模型的产品。变体的一个示例是T恤的颜色和尺寸。在Spartacu......
  • 使用 SAP WebIDE 将 SAP UI5 应用部署到 ABAP 系统时遇到的关于传输请求的错误
    有朋友遇到一个在webide里部署SAPUI5应用到ABAPRepository里时出错的问题:错误消息:Failedtogettransportsfortheselectedpackage.RequestPOST/webidedispa......
  • 哲讯分享:sap软件多少钱一套
    SAP软件一般指SAP。SAP,为“SystemApplicationsandProducts”的简称,是德国SAP公司的产品——企业管理解决方案的软件名称。至今世界500强企业中有超过86%以上的公司在使......
  • SAP ABAP 调用SAP报表(标准报表或者自定义报表)
    偷懒神器~TABLES:mara.DATA:lr_alv_data TYPE REF TO data.SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-000.  SELECT-OPTIONS s_matnr f......
  • dart Metadata-元数据
    相当于java里的注解,C#里的特性, Metadatelibrarytodo;classTodo{finalStringwho;finalStringwhat;constTodo(this.who,this.what);} @Todo('seth','maket......
  • SAP DYNP_VALUES_READ获取自建屏幕字段值<转载>
    今天做了一个程序,其中有部分的功能是这样的:点击新增按钮弹出屏幕,输入数据,点击保存到自建表。这个功能不难,自建屏幕调用即可。但是这里有一个问题,在输入数据后,直接点击保......
  • csapp学习笔记01
    写在开头的话在回到学校之后的几天后,我结束了cmu15418并行系统的学习,怎么说呢?这门课确实让我学到了不少,比如各种并行性的优化,但是我觉得自己还是有些吃力。包括在实习的最......
  • SAP MD04屏幕显示增强
    需求在看物料MRP结果的时候,业务人员想要看到工单批次,工单批次是我们这边工单下达后传输到其他系统,然后由其他系统回传回来的。开发步骤主要使用二代增强出口:M61X0002创......
  • SAPTM 中的各个角色
    Typically,customerordermanagementinashipperorganizationisperformedinSAPECCorCRM.Thisresultsinadeliverytothecustomerthatcreatesatranspo......
  • SAPTM 主要功能
    SAPTMcoversthecompletetransportationprocessfromordermanagement,throughfreightplanningandtendering,freightexecutionandmonitoring,tofreightse......