CRM WebClient UI 和 Hybris Commerce 里的跨组件跳转

举报
汪子熙 发表于 2022/03/28 17:24:44 2022/03/28
【摘要】 在 Hybris Storefront 首页,点了一个产品的图片,系统怎么知道需要load哪个jsp文件来渲染?之前的issue讨论过,这个点击对应的url,会被Spring MVC map到一个通过@RequestMapping注册的的controller上:也就是这个controller:target BSP的url通过这个方法getViewForPage算出来:算出来是这个:也就是这个...

在 Hybris Storefront 首页,点了一个产品的图片,系统怎么知道需要load哪个jsp文件来渲染?

之前的issue讨论过,这个点击对应的url,会被Spring MVC map到一个通过@RequestMapping注册的的controller上:

也就是这个controller:

target BSP的url通过这个方法getViewForPage算出来:

算出来是这个:

也就是这个:在product folder下有个同名的.jsp文件:

该jsp渲染结果如下:

打开SAP云平台上的SAP HANA Web-Based Development Workbench超链接:

遇到错误信息:403 - Forbidden - The server refused to fulfill the request.

解决方案

打开SAP HANA Cockpit, 选择OK:

添加下列权限:

(1) sap.hana.admin.roles::Administrator
(2) sap.hana.ide.roles::TraceViewer
(3) sap.hana.ide.roles::SecurityAdmin

之后即可打开。

ABAP里客户做二次开发时,当其business requirement需要新的字段添加到已有数据类型上时,一般采用append structure的方式增强SAP标准的数据类型。

之前说到每个extension都有其local的object, 比如extension specific的data type在resources folder下面的这个XML里定义. XML的naming convention为-items.xml.

对于数据类型的扩展Hybris的思路也类似:

这个例子定义了一个新的数据类型AlipayPaymentTransactionEntry,扩展自PaymentTransactionEntry
黄色区域内的field相当于ABAP里include structure里的field.

像下图里的exporting parameter需要在method 实现最开始时显式CLEAR么?

答案是it depends.

pass by value checkbox默认未选中,即pass by reference,此时实参的reference直接传到method 实现里,修改method里的形参即直接修改了实参。

如果是pass by value,在runtime进入method执行时,abap runtime自动为输入和输出形参创建local object,然后把输入实参的value copy到local object里,method里的计算都存储在输出形参的local object里,method执行结束后再把local object的值copy到输出实参。

在pass by reference的情况下,exporting参数在进入函数内时不会自动被初始化,而仍然为传入时实参的值,因此需要developer 自己负责去初始化,否则可能会出现unexpepected的behavior。

什么时候用pass by reference,什么时候用pass by value?
Pass by reference性能更好,但需要developer自己在实现里初始化exporting parameter
如果期望输出参数仅当method 成功执行之后才返回给caller,用pass by value
如果参数是一个很复杂的structure,比如nested table,或者按照abap help里面的建议值—超过100bytes后最好用pass by reference。

二者更详细的区别参考abap help。

Extended check会自动把所有违反规则的code 列出来,比如CL_CRM_SOC_FND_ACCESS_IMPL 有17处:


这些issue被categorize成programming guideline violation,不会算作ATC error。

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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