如何在Odata中使用分页?

2020-09-24 10:44发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


在oData abap中分页。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


在oData abap中分页。

付费偷看设置
发送
3条回答
追夢秋陽
1楼 · 2020-09-24 11:35.采纳回答

Parul,

您首先需要实现以下方法:odata中的GET_ENTITY_SET。

代码:

METHOD maraset_get_entityset。
数据:zmara_130495的it_tab类型标准表。DATA:wa_tab TYPE zmara_130495,
ls_entityset TYPE zcl_zmara_130495_pagin_mpc => ts_mara,
z_a_lt_ent_ent
wa_filter TYPE/iwbep/s_mgw_select_option,
wa_id类似于wa_filter-select_options的行,id类型zmara_130495-matnr.READ TABLE it_filter_select_options INTO wa_filter WITH KEY property ='Matnr'.IF sy-sub .READ TABLE表wa_filter-select_options INTO wa_id索引1。
如果sy-subrc = 0.id = wa_id-low.ENDIF.ENDIF。
如果ID不是INITIAL.SELECT *来自zmara_130495进入表it_tab WHERE matnr = id。"过滤器代码结尾
ELSE.SELECT *来自zmara_130495 INTO TABLE it_tab。ENDIF.IFit_tab在IN_tab中不是INITIAL.LOOP的话。INTO wa_tab.MOVE-CORRESPONDING wa_tab到ls_entityset.APPEND ls_entityset 到lt_entityset.ENDLOOP.ENDIF。
数据:lv_top TYPE i,
lv_skip TYPE i,
lv_table_size TYPE i。

lv_top = io_tech_ request_context-> get_top()。
lv_skip = io_tech_request_context-> get_skip()。
* >>客户端分页(顶部/跳过)如果lv_top不初始化或
lv_skip IS 在lt_entityset内不初始化INTO ls_entityset.IF sy-tabix> lv_skip.APPEND ls_entityset到et_entityset。
lv_table_size =行(et_entityset)。 .ENDLOOP.ELSE。 * >>不分页
et_entityset =lt_entityset。ENDIF。


ENDMETHOD。

转到网关:运行URL

/sap/opu/odata/sap/ZMARA_130495_PAGING_SRV/MARASet?$ top = 2&$ skip = 2

注意:ZMARA_130495这是在se11中创建的自定义表。

maraset_get_entityset是GET_ENTITY_SET方法的名称。

此致

Mrinalini

95年老男孩
3楼-- · 2020-09-24 11:35

嗨,Mirinalini,

感谢您的大力帮助。

此致

Parul

一周热门 更多>