SAP CRM Fiori 应用 My Opportunity 的分页读取逻辑,在 GM4 - AG3 无法正常工作_fiori分页显示-程序员宅基地

技术标签: OData  SAP  Netweaver  思爱普  ABAP  

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

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

  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 请求的入口:

通过 CALL_BACKEND 方法进行 RFC 调用:

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

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

CL_CRM_OPPORTUNITY_DPC_EXT~OPPORTUNITIES_GET_ENTITYSET

成功读出 470 条 Opportunity:

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

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

但 task 可以。

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

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

分页逻辑的实现:

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注释被包含在指定目标的注释文件中的注释所取代。转换后的注释从不使用限定符,只会被没有限定符的相同注释术语覆盖。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/i042416/article/details/126193957

智能推荐

HDU 2868 Neighbor Friend_neighbor friend acm-程序员宅基地

文章浏览阅读538次。HDU 2868 Neighbor Friend/**HDU 2868 Neighbor Friend题意:有n个人,m对身高关系a,b(a的身高小于b的身高)按身高排序,求有多少对人可以成为邻居解题思路:a,b,c三个人a->ba->cb->ca到c的最长距离大于1,所以a,c不能成为邻居问题转化,找出不能成为邻居的个数{(a,c)}剩下的就是邻居的可能数量{(a,b_neighbor friend acm

微服务[学成在线] day07:课程管理开发_学成在线day07-程序员宅基地

文章浏览阅读388次。???? 知识点概览为了方便后续回顾该项目时能够清晰的知道本章节讲了哪些内容,并且能够从该章节的笔记中得到一些帮助,所以在完成本章节的学习后在此对本章节所涉及到的知识点进行总结概述。本章节为【学成在线】项目的 day07 的内容 对课程管理的CRUD 级联菜单 使用 mongoDB 储存数据字典目录内容会比较多,小伙伴们可以根据目录进行按需查阅。文章目录???? 知识点概览目录一、课程查询0x01 需求分析0x02 定义API接口0x03 课程管理服务PageHelperDaoSer_学成在线day07

appcan 定位 计算 距离_基于RFID技术下的化工厂定位系统,包含化工厂人员定位方案...-程序员宅基地

文章浏览阅读78次。一.系统简介苏州新导化工厂人员定位系统是苏州新导针对市场需求开发的集RFID识别技术、计算机软硬件、信息采集处理、网络数据通讯等技术综合应用为一体的自动识别信息技术。该系统通过对电子标签远距离非接触式识别,实现对人员的区域定位监测,集成了计算机网络技术、通信技术、地理信息技术、嵌入式微处理器等技术。二.系统功能1.即时定位化工厂人员定位系统控制流和数据流不用轮巡,多个远距离读头数据刷新以毫秒来计算..._appcan rfid

python 终止函数命令_如何使“停止”按钮终止已经在Tkinter(Python)中运行的“启动”函数...-程序员宅基地

文章浏览阅读2.4k次。我用Tkinter制作了一个图形用户界面,有两个主按钮:“开始”和“停止”。请您就如何使用“停止”按钮终止“开始”按钮为以下代码调用的已运行功能提供建议?在正如您所期望的那样,当“启动”功能运行时,整个窗口(包括“停止”按钮)卡住/没有响应。在“start”函数从一些html文件中提取一些信息,这可能需要相当长的时间(对于20个巨大的文件,它可能需要10分钟左右),我希望用户能够随时中断该过程。在..._tkinter开始和终止一个循环

oracle column的设置,oracle实验-设置基于Column - Level 的VPD-程序员宅基地

文章浏览阅读306次。设置基于Column - Level 的VPD从Oracle 10g开始,我们可以设置基于column-level的VPD,从而保护那些资料表中的重要信息列,比如password column、Price等(这个要根据具体的应用需求来定),有两种column-level的方法可以使用:1)使用column-level VPD 保护数据不被访问2)Display the column with NU..._oracle中column

c语言 建立双向链表 prior,next,C语言数据结构 双向链表的建立与基本操作-程序员宅基地

文章浏览阅读2.4k次。C语言数据结构 双向链表的建立与基本操作双向链表比单链表有更好的灵活性,其大部分操作与线性表相同。下面总结双向链表与单链表之间的不同之处及我在实现过程中所遇到的问题。1.双向链表的建立双向链表在初始化时,要给首尾两个节点分配内存空间。成功分配后,要将首节点的prior指针和尾节点的next指针指向NULL,这是十分关键的一步,因为这是之后用来判断空表的条件。同时,当链表为空时,要将首节点的next..._prior和next

随便推点

word转PDF不能显示中文字体问题_pdfconverter.getinstance()没有convert-程序员宅基地

文章浏览阅读1.1w次。maven依赖 <dependency> <groupId>fr.opensagres.xdocreport</groupId> <artifactId>org.apache.poi.xwpf.converter.pdf</artifactId> &l..._pdfconverter.getinstance()没有convert

Free -programming-books_free programming-程序员宅基地

文章浏览阅读2.2k次。https://github.com/EbookFoundation/free-programming-books/blob/master/free-programming-books.md_free programming

同步队列-AbstractQueuedSyncronizer_syncronizer 翻译-程序员宅基地

文章浏览阅读302次。根据AQS自己实现一个独占锁/** * 独占锁自定义实现 * * @author wangmj * @since 2019/1/18 */public class MutexLock { //自定义内部类继承AQS //独占锁只需实现tryAcquire与tryRelease方法 //共享锁需要实现tryAcquireShared与tryReleaseShar..._syncronizer 翻译

c语言实数的输出和占位_C语言输出格式总结-程序员宅基地

文章浏览阅读843次。C语言输出格式总结1一般格式printf(格式控制,输出表列)例如:printf("i=%d,ch=%c\n",i,ch);说明:(1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息:①格式说明:由“%”和格式字符组成,它的作用是将输出的数据转换为指定的格式输出。②普通字符,即需要原样输出的字符。(2)“输出表列”是需要输出的一些数据,可以是表达式(3)printf..._c语言实数输出格式

灰度处理后openCV实现图像分割处理拉普拉斯算子分析C++源码_opencv c++ 拉普拉斯源码-程序员宅基地

文章浏览阅读362次。源码如下:#include <stdio.h>#include <tchar.h>#include <opencv.hpp> #include<iostream>#include<opencv2/core/core.hpp>#include<opencv2/highgui/highgui.hpp>#include <opencv2\imgproc\types_c.h>#include <open._opencv c++ 拉普拉斯源码

Android 下拉展开动画_android valueanimator 从上到下展开-程序员宅基地

文章浏览阅读2.9k次。使用ValueAnimator实现一个匀速的下拉动画点击显示部分可以匀速的下拉出隐藏部分,再次点击隐藏部分匀速收回。_android valueanimator 从上到下展开

推荐文章

热门文章

相关标签