2020-09-24 10:44发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
在oData abap中分页。
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
嗨,
分页(分页)是可以使用$ top和$ skip命令实现的功能。 必须由数据提供商实施。
GW100标准培训也涵盖了该主题,但是您可以在SAP帮助中找到许多资源: https://help.sap.com/viewer/68bf513362174d54b58cddec28794093/latest/zh-CN/30116c10d4ff42908d4a4ad023b77634.html
以及在社区上: https://blogs.sap.com/2011/11/04/odata-channel-api-implementing-paging-of-entity-sets / https://blogs.sap.com/2014/12/03/gateway-service-optimizing-performance-with-sql-paging / https://blogs.sap.com/2015/07/10/pagination-decrypted / https://blogs.sap.com/2015/08/09/pagination-decryptedpart-2-serverside-paging /
致谢,贾诺斯
嗨,Mirinalini,
感谢您的大力帮助。
Parul
最多设置5个标签!
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
嗨,
分页(分页)是可以使用$ top和$ skip命令实现的功能。 必须由数据提供商实施。
GW100标准培训也涵盖了该主题,但是您可以在SAP帮助中找到许多资源:
https://help.sap.com/viewer/68bf513362174d54b58cddec28794093/latest/zh-CN/30116c10d4ff42908d4a4ad023b77634.html
以及在社区上:
https://blogs.sap.com/2011/11/04/odata-channel-api-implementing-paging-of-entity-sets /
https://blogs.sap.com/2014/12/03/gateway-service-optimizing-performance-with-sql-paging /
https://blogs.sap.com/2015/07/10/pagination-decrypted /
https://blogs.sap.com/2015/08/09/pagination-decryptedpart-2-serverside-paging /
致谢,
贾诺斯
嗨,Mirinalini,
感谢您的大力帮助。
此致
Parul
一周热门 更多>