`
JerryWang_SAP
  • 浏览: 1000750 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

SAP Fiori编程模型规范里注解 - @OData.publish工作原理解析

阅读更多

今天是2020年2月1日鼠年大年初八,这是Jerry鼠年的第8篇文章,也是汪子熙公众号总共第207篇原创文章。

Jerry的前一篇文章 揭开SAP Fiori编程模型规范里注解的神秘面纱 - @ObjectModel.readOnly工作原理解析,给大家分享了@ObjectModel.readOnly这个注解对应的Fiori UI和ABAP后台的工作原理。

今天我们继续研究另一个注解@OData.publish.

在SAP官网的ABAP Programming Model for SAP Fiori的帮助文档里,在OData Annotations目录下有对这个注解的介绍:

SAP Help Portal

一旦加上了这个注解的CDS view激活时,会自动生成一个OData服务。

这个OData服务是如何自动生成的?这就是本文所要分享的内容。

假设我们对加了这个注解的CDS view激活后自动生成的OData服务的明细一无所知,从何处开始入手进行研究呢?

我创建了一个名为zjerrytest20160311的view,然后加上这个注解,激活。根据我的经验,按照SAP惯例,自动生成的OData服务的名称应该也会包含0311这个字符串。

激活之后,我试着用0311作为关键字在OData服务的注册事务码/IWFND/MAINT_SERVICE里搜索,果然搜到了对应生成的OData服务:

在Jerry之前的文章 [ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX这些东东是什么鬼](ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX这些东东是什么鬼) 曾经提到ABAP Netweaver的注册表TADIR,按照0311进行查询,发现CDS view激活之后,除了OData服务本身,还自动生成了下列这些对象:

  • IWMO: SAP Gateway Business Suite Enablement对应的模型
  • IWSV: SAP Gateway Business Suite Enablement对应的服务
  • CLAS: OData服务的实现类ZCL_ZJERRYTEST20160311

做个实验,当我把OData.publish的值设置为false,再次激活,发现类型为IWMO和IWSV的对象从注册表TADIR中消失了,这再次印证了二者是注解OData.publish设置为true之后激活CDS view生成的。

那么如何研究CDS view激活时,这两个对象的自动生成逻辑呢?

使用Jerry文章(SAP错误消息调试之七种武器:让所有的错误消息都能被定位) 里介绍的第六种武器,离别钩之ST05.

打开ST05跟踪模式,激活CDS view,在数据库跟踪结果里果然发现了将自动生成的对象名称插入到注册表TADIR的OPEN SQL语句。

《神雕侠侣》天竺僧去绝情谷给杨过找情花毒解药时,说过一句话:毒蛇出没之处,七步之内必有解药。

同样,在ABAP里,在插入数据库表的OPEN SQL语句之前,必定有待插入数据的生成逻辑。

点击ST05里蓝色的眼镜图标,自动跳转到OPEN SQL语句里。设置断点,激活CDS view,断点触发:

从当前的调用栈往外追溯,发现在第21个调用栈帧,正是自动生成OData服务的地方:

CL_WB_DDLS_SECOBJ_HNDLR_SINGLE->IF_DDIC_WB_DDLS_SECOBJ_HANDLER~ON_ACTIVATION

这个方法首先根据delta_state判断出需要删除,新增或者更新的对象清单,分别存储在下图12到14行三个输出参数里。

举个例子,当我在一个已经激活过后的CDS view源代码里添加@OData.publish:true的注解,然后激活,此时该注解对于的EDIT_STATE为N(New), 而其他的注解因为没有任何变化,被标记为U(Unchanged).

此处会根据EDIT_STATE的值,进入对应的分支。

EDIT_STATE值为N的分支,则执行OData服务的创建,通过CL_SADL_GTK_ODATA_SERVICE_GEN完成,后缀GEN代表Generation.

从调试器里能看出,名称为ZJERRYTEST20160311的OData服务通过create_via_exposure方法被创建。

完整的调用栈:

本文其实也是另一个具体的例子,在不了解一段逻辑(无论框架层面或者应用层面)的情况下,如何使用ST05这个工具来找到设置断点的代码位置,从而找到问题分析的突破口。

感谢阅读。

更多阅读

0
2
分享到:
评论

相关推荐

    SAP-Fiori---快速指南.docx

    SAP Fiori 是 SAP 软件和应用程序的新用户体验(UX),提供了一组应用程序,用于常规业务功能,如工作批准,金融应用程序,计算应用程序和各种自助服务应用程序。SAP Fiori 提供了 300 多个基于角色的应用程序,如...

    sapFiori配置手册[整理].pdf

    SAP Fiori配置手册 本配置手册旨在指导用户完成SAP Fiori的设置和配置,从而实现SAP Fiori Launchpad的激活。下面是该手册中所涉及到的知识点: 1. 创建管理员账号和测试账号 在SAP Fiori的配置中,需要创建管理...

    SAP Fiori and SAP S4HANA - Large-Scale ....zip

    sap press doc 解压密码:abap_developer

    SAPFiori-快速指南.doc

    SAP Fiori 是 SAP 软件和应用程序的新用户体验(UX),提供了一组应用程序,用于常规业务功能,如工作批准,金融应用程序,计算应用程序和各种自助服务应用程序。SAP Fiori 提供 300 多个基于角色的应用程序,如人力...

    SAP Fiori Odata 实施步骤

    ### SAP Fiori OData 实施步骤详解 #### 一、OData与SAP Fiori的关系 在SAP Fiori环境中,OData(Open Data Protocol)扮演着至关重要的角色。它是一种用于定义构建和消费RESTful API的最佳实践的标准协议。通过...

    SAP Fiori---快速指南 共82页 2018年编著 word文档

    SAP Fiori 是 SAP 对传统用户界面的一次重大革新,通过简化复杂的业务流程和提供个性化体验,极大地提升了用户的满意度和工作效率。随着 SAP HANA 的普及和技术的发展,SAP Fiori 的应用范围和功能也将不断扩展,...

    SASP-FIORI-Blog-连篇.zip

    在本压缩包"SASP-FIORI-Blog-连篇.zip"中,我们有望找到一系列关于SAP Fiori安装、配置和使用的详细指南。 首先,安装SAP Fiori的前提条件是至关重要的。这通常包括但不限于以下几点: 1. **系统平台**:确保你的...

    SAP Fiori 2.0开发指南

    - **编写符合 SAP Fiori 2.0 规范的应用程序**: 开发者需要遵循一套新的设计准则来确保应用程序的一致性和可访问性。 ##### 2. **使用 SAP Fiori 元素开发 SAP Fiori 应用** - **列表报告视图 (List Report View)...

    Building SAP Fiori-like UIs with SAPUI5 in 10 Exercises

    - SAP Fiori-like应用程序UI - SAP Fiori-like应用程序架构 - 练习0:入门 - 练习1:资源模型 - 练习2:对象控制 - 练习3:格式化器 - 练习4:搜索功能 - 练习5:Split App & Shell - 练习6:额外的设备适配 - 练习7...

    SAP fiori 简易开发流程

    SAP fiori的简易开发过程指南,从开发者角度出发,分后面ODATA开发环境和前端SAP UI5环境搭建,以及发布进行了讲解

    SAP Fiori - Adding a Custom Workflow in 6 Steps

    在SAP NetWeaver Gateway中,你需要创建一个符合OData标准的服务,该服务包括了工作流相关的数据模型和业务逻辑。这一步骤需要对SAP NetWeaver Gateway的开发工具有深刻理解,包括如何在Eclipse开发环境中创建服务,...

    Beginning_SAP_Fiori [Bince_Mathew] Apress

    Take a deep dive into SAP Fiori and discover Fiori architecture, Fiori landscape installation, Fiori standard applications, Fiori Launchpad configuration, tools for developing Fiori applications and ...

    SAP Fiori开发视频教程--由浅入深学习Fiori开发

    SAP Fiori开发视频培训课程:SAP Fiori是SAP设计的... 了解Fiori 开发中注解的概念,包含OData注解、CDS注解以及Local UI注解5. 掌握S4最常用报表List Report以及Overview Page的开发过程6. 掌握Fiori各类型磁贴的配置

    SAP Fiori_Training_Day_2.pdf

    SAP ODATA Training Agenda • Session 1: Introduction to SAPUI5 / FIORI (40 mins) ▫ Basic MVC concept: Model, View, Controller ▫ UI5 Control libraries • Session 2: Introduction to SAP Web IDE (20 ...

    windows-sapjco3-1-4.zip

    在本文中,我们将重点关注SAP JCo 3.1.4版本在Windows平台上的应用,以及与其相关的SAP BI(Business Intelligence)、Fiori和ODATA技术。 首先,SAP JCo 3.1.4是该接口的一个稳定版本,支持32位和64位的Windows...

    teched2020-IIS360:IIS360-使用OData v4简化SAP Fiori Apps的开发

    您将从SAP Business Application Studio中的示例服务开始(基于用于nodeJS的SAP Cloud Application编程模型),并利用SAP Fiori工具来生成和扩展应用程序。 在可以找到有关SAP Fiori元素和SAP Fiori工具的更多详细...

    SAP Fiori APP 应用快速实施解决办法

    ### SAP Fiori APP 应用快速实施解决办法 #### 一、引言 SAP Fiori 是一种全新的用户界面设计原则和技术框架,旨在为用户提供直观、简洁和一致的体验。本文档将详细介绍如何通过手动配置步骤或使用预定义任务列表...

Global site tag (gtag.js) - Google Analytics