SAP 基于 ABAP 实现的 gateway 框架里,为什么默认返回100条数据?

举报
汪子熙 发表于 2022/05/17 22:18:25 2022/05/17
【摘要】 答案就在这个参数里:skip=0&top=100ODataListBinding.js里,this.loadData的输入参数为100:this.oModel.iSizeLimit 为100:在 sap-ui-core-dbg.js里,同样能看到下面高亮出来的硬编码代码:this.iSizeLimit = 100;我基于 SAP Spartacus library创建了一个自定义的Store...

答案就在这个参数里:

skip=0&top=100
clipboard1
ODataListBinding.js里,this.loadData的输入参数为100:
clipboard2
clipboard3
this.oModel.iSizeLimit 为100:
clipboard4
在 sap-ui-core-dbg.js里,同样能看到下面高亮出来的硬编码代码:

this.iSizeLimit = 100;

clipboard5

我基于 SAP Spartacus library创建了一个自定义的Storefront实现。在其app.module.ts里,我采用自定义的MyCurrentProductService,去替换 SAP Spartacus 标准的CurrentProductService 实现:

通过AppComponent的构造函数引入OccCartAdapter的依赖:

启动应用,在解析并加载AppComponent时,检测到输入参数的CurrentProductService是通过 Angular 依赖注入提供的,因此执行getOrCreateInjectable 方法:

注意这里的token 指向class CurrentProductService:

而 CurrentProductService的实例化,发生在下图的代码位置。

其中1和2两处的token指向不一样:

第二处的token,已经指向自定义的product service了:

OccCartAdapter也可以通过同样的方式注入:

我在做SAP Cloud Application Programming 练习时,执行下列两条命令后:

  • cds init bookshop
  • cds watch bookshop


遇到这一条错误消息:

cannot find package module @sap/cds/common

npm install之后,问题解决,现在错误消失了:

@sap/cds/common 位于node_modules文件夹下,例子程序中的Currency,Country等类型和entity等等,就出自这个资源文件。

通过package.json里的dependencies: @sap/cds 引入:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。