13. SAP ABAP OData 服务的分页加载数据集的实现(Paging)

SAP UI5 应用的分页加载数据集,是一个极为重要的特性,需要 SAP UI5 前端和 OData 服务后端同时进行相应的开发工作,才能实现这个场景。

所谓分页加载数据集,就是默认情况下,SAP UI5 应用在启动后的默认页面里,只显示指定数据的数据集,这个个数默认为 20,也可以在系统或者代码里进行配置。因此我们可以理解成,SAP UI5 应用初始化时,默认从数据库加载第 1 到第 20 条数据。

当我们的滚动条向下滑动至屏幕底部时,会触发新一批数据的加载,读取第 21 条到第 40条也就是第二个 20 条数据。

SAP UI5 调用后台 OData 服务时,通过参数 $skip=X&$top=Y 来进行分页场景的指定。

  • 其中 $skip=X,代表跳过数据库第 X 条记录,从 X + 1 条记录开始读取(X为索引值,从 0 开始计数)

  • $top=Y,代表总共读取数据库 Y 条记录。

假设后台的 SAP ABAP OData 服务针对消费者通过 url 传入的 $skip=X&$top=Y,已经正确实现,则 SAP UI5 应用,

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ABAP OData 服务中,可以使用 Function Import 来实现动态调用函数模块。下面是具体步骤: 1. 在 SEGW 中创建一个 OData 服务。 2. 在 Service Implementation 中,选择 Function Import。 3. 点击右键,选择 Create Function Import。 4. 在 Function Import 的 Properties 中,设置 Function Module 的名称和输入参数。 5. 在 Function Import 的 Code 中,使用 FUNCTION MODULE 语句调用函数模块,并将输入参数传递给函数模块。 例如,以下代码演示了如何动态调用函数模块: ``` FUNCTION zfm_test. DATA: ls_input TYPE zinput, ls_output TYPE zoutput. FIELD-SYMBOLS: <fs_input> TYPE any, <fs_output> TYPE any. * 获取输入参数 TRY. cl_rest_runtime=>deserialize( EXPORTING iv_json = request->get_data( ) IMPORTING es_data = ls_input ). CATCH cx_rest_runtime_error INTO DATA(lx_error). response->set_status( i_code = lx_error->status_code i_reason = lx_error->message ). RETURN. ENDTRY. * 动态调用函数模块 ASSIGN ls_input TO <fs_input>. CALL FUNCTION 'Z_FUNCTION_MODULE' EXPORTING p_input = <fs_input> IMPORTING p_output = <fs_output>. * 获取输出参数 ASSIGN ls_output TO <fs_output>. cl_rest_runtime=>serialize( EXPORTING iv_data = <fs_output> IMPORTING ev_json = lv_response ). response->set_data( lv_response ). ENDFUNCTION. ``` 在上面的代码中,我们使用 FIELD-SYMBOLS 来动态获取输入和输出参数,并使用 ASSIGN 语句将其分配给 FIELD-SYMBOLS 变量。然后,使用 CALL FUNCTION 语句调用函数模块,并将输入参数传递给函数模块。最后,获取输出参数,并将其序列化为 JSON 格式返回给客户端。 希望这可以回答您的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汪子熙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值