SAP CRM Fiori 应用 My Opportunity 的分页读取逻辑,在 GM4 - AG3 无法正常工作

简介: SAP CRM Fiori 应用 My Opportunity 的分页读取逻辑,在 GM4 - AG3 无法正常工作

我们打开 SAP CRM Fiori 应用 My Opportunity 的 list 页面,首页默认只能显示 20 个 Opportunity:

e8080865d01ee37131944beaa9591c2e.png

当我们向下滚动鼠标中键时,触发一个加载更多 Opportunity 的动作,或者说延迟加载(分页加载)机制:

cece8bc55dc946e1ed5788c19adca5d5.png

lo_provider = lo_processor->read(
               io_entity_set      = lo_entity_set
               is_function_import_info = ls_function_import_info
               it_key             = io_uri->key_predicates
               it_expand          = io_uri->expand
               it_select          = io_uri->select
               io_filter          = io_uri->filter
               io_orderby         = io_uri->orderby
               iv_skip            = io_uri->skip
               iv_top             = io_uri->top
               iv_skiptoken       = io_uri->skiptoken
               iv_inlinecount     = lv_inlinecount
               iv_for             = lv_operation
               iv_format          = lv_format ).


下图是 gateway 处理 OData 请求的入口:

ae6294138cc0a18ad537b3cce1b71a01.png

通过 CALL_BACKEND 方法进行 RFC 调用:

8f6525913cb7fe402beb12d823694116.png

进行 RFC 调用,使用的 SM59 Destination 为 ZGM4TOAG3_001:

a7fbaed971ad15ef1220dc24a0c2da4f.png

直接用 postman,没有返回记录:

549c0572079db26da2d8504ae475fb4e.png

CL_CRM_OPPORTUNITY_DPC_EXT~OPPORTUNITIES_GET_ENTITYSET


成功读出 470 条 Opportunity:

6abf086dd0b423942c9a5cb9467bdfba.png

用 Postman 发送的请求,一 delete 就没了:

a7fbaed971ad15ef1220dc24a0c2da4f.png

UI 上也是 0,这个 growing behavior 在 GM4/AG3 上不能正常工作。

4e39938394b28841d7bdd8eb7375bcb1.png

但 task 可以。

0c473114ac754dec3937e5a704821bb3.png

在这之前,在 me->select_tasks 里完成 guid 的读取。

e90d146017662cedc64e19e31fd81c68.png

把所有 guid 都读取出来了:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P7IfPAjq-1659765006868)(https://upload-images.jianshu.io/upload_images/2085791-85e425bd414c0165.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

a7fbaed971ad15ef1220dc24a0c2da4f.png

分页逻辑的实现:


IF lv_maxhits > 0.
          DELETE lt_sort FROM lv_maxhits + 1.
        ENDIF.
        IF iv_skip > 0.
          DELETE lt_sort FROM 1 TO iv_skip.
        ENDIF.


sap.ui.model.odata.ODataMetaModel 是一个OData 元模型的实现,它提供对OData V2元数据和V4注释的统一访问。它使用现有的 sap.ui.model.odata.ODataMetadata 作为基础,并将现有的sap.ui.model.odata.ODataAnnotations的 V4 直接合并到相应的模型元素。


此模型不准备被进一步继承。


此外,来自“http://www.sap.com/Protocols/SAPData”名称空间的注释从扩展数组中提取出来,并从对象转换为名称前缀为 sap: 的简单属性。注意,这是另外发生的,因此下面的示例显示了这两种表示。这样,这样的注释就可以通过简单的相对路径来处理,而不是搜索数组。


例子:


{
    "name" : "BusinessPartnerID",
    "extensions" : [{
    "name" : "label",
    "value" : "Bus. Part. ID",
    "namespace" : "http://www.sap.com/Protocols/SAPData"
    }],
    "sap:label" : "Bus. Part. ID"
  }


从OData V2注释转换而来的完整OData V4注释被包含在指定目标的注释文件中的注释所取代。转换后的注释从不使用限定符,只会被没有限定符的相同注释术语覆盖。


目录
相关文章
|
5天前
|
Web App开发 数据采集 前端开发
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
28 0
|
5天前
|
XML 存储 数据格式
SAP UI5 控件 customData 属性的应用介绍
SAP UI5 控件 customData 属性的应用介绍
38 0
|
5天前
|
Web App开发 前端开发 JavaScript
乱花渐欲迷人眼 - 让 SAP UI5 应用的日志输出不再素面朝天
乱花渐欲迷人眼 - 让 SAP UI5 应用的日志输出不再素面朝天
53 0
|
5天前
SAP UI5 应用如何实现类似百度首页一样的访问方式试读版
SAP UI5 应用如何实现类似百度首页一样的访问方式试读版
37 0
|
5天前
|
前端开发
SAP Fiori 应用上传中文附件的处理问题
SAP Fiori 应用上传中文附件的处理问题
41 0
|
5天前
|
存储 SQL 数据库
工作实战:SAP ABAP 动态创建类型在实际工作中的一个应用场合分享试读版
工作实战:SAP ABAP 动态创建类型在实际工作中的一个应用场合分享试读版
28 0
工作实战:SAP ABAP 动态创建类型在实际工作中的一个应用场合分享试读版
|
5天前
|
前端开发 容器
如何给 SAP UI5 应用设置背景图片试读版
如何给 SAP UI5 应用设置背景图片试读版
35 0
|
5天前
让 SAP UI5 应用的日志打印变得五彩缤纷试读版
让 SAP UI5 应用的日志打印变得五彩缤纷试读版
99 2
|
4天前
|
JavaScript 前端开发
试读版:如何找出 SAP 标准 Fiori 应用某个按钮点击后执行的 JavaScript 源代码
试读版:如何找出 SAP 标准 Fiori 应用某个按钮点击后执行的 JavaScript 源代码
8 0
|
5天前
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
18 1