b2b电商系统搭建的关键步骤与最佳实践解析,助力企业数字化转型
668
2022-05-30
当试图打开一个Opportunity时,
系统会进行如下一系列的权限检查:
1. 检查Authorization object CRM_ORD_OP:
此处会检查当前user的partner function和partner function category的设置情况:
如果检查失败,会抛出error message:
2. 进行第二轮针对CRM_ORD_LP的检查:
3. 如果再失败,进行第三轮对CRM_OPP的权限检查:
45代表Allow:
4. 如果再失败,进行第四轮对CRM_ORD_RS的权限检查:
如果都失败,将看到如下错误信息:
可以用一张图概括:
1. 使用业务角色ANALYTICSPRO登录WebClient UI:
2. 点击新建按钮:
为新建的报表分配一个HANA Live Query:
指定Query的参数:
上图WebClient UI选择的参数都定义在HANA studio里:
给报表添加属性:
添加measure:
之后报表即可在WebClient UI里成功渲染:
并且也能在CRM Fiori的Customer Report应用里看到该report。
如果想获得更多关于上图提到的Fiori应用,请查看我的公众号文章 SAP Fiori应用的三种部署方式
SAP的Fiori应用是通过OData和后台交互的。在使用Fiori应用时您可能会遇到这样的错误消息:
这个错误消息没有包含有助于partner或者客户定位问题根源的线索。
下面是如何在后台找出问题根源的步骤。
1. 在Fiori前台系统上使用事务码/IWFND/ERROR_LOG找到当前OData出错对应的错误日志:
关于Fiori前后台系统的区分,参考我的微信公众号文章SAP Fiori应用的三种部署方式
2. 点击工具栏上的按钮"Active Source"。然后我们会被自动带到抛出错误消息的代码位置,即下图的第86行。这个代码是Fiori前台系统进行出错处理的框架代码,我们就在第86行设置一个断点。
返回Fiori UI重现错误,断点触发,默认的调用栈是上图设置的断点,即方法HANDLE_RFC_FAILURE内部。此时我们跳到调用栈的外面一层,即方法CALL_BACKEND, 如下图所示。这个方法的exceptions参数lv_rfc_message的内容即具体的错误消息。
如果您够细心,您或许会发现有的SAP Fiori应用的footerbar区域内的按钮有高亮显示,有的则没有。
如何自己分析这两种按钮的实现原理?
还是借助Chrome Development Tool。更多Chrome development tool的使用技巧,参考我的博客
Chrome Development Tool tips used in my daily work
使用network tab可以观察到实现高亮实现的CSS class:
记下这个css class的名称sapMBtnEmphasized:
由此可见,这个class是在如下代码处设置的:
只要Fiori应用程序的controller是继承自BaseDetailController,则edit button一定会highlight:
一个很小的tip:比如我想把UI5表格控件里的每列设置成宽度根据显示的内容自适应,需要知道应该调用控件的哪个方法来实现。
一种办法当然是查SAP帮助文档,得知需要调用控件的公有方法setAutoSizable。
另一种办法是在debugger里研究,因为根据经验,这种公有方法的名称按照惯例一般都是以set开头,如下图:
根据经验从调试器里的set自动完成列表里的所有条目定位到应该调用setAutoResizable这个方法。下一个问题就是这个方法到底应该传什么参数进去。
直接在调试器里执行方法getMetadata, 展开返回的结果:
在_mProperties的autoResizable里得知这个set方法应该传一个boolean类型的参数进去:
反思
这种思路是在runtime时获取控件的元数据,这和Java的反射,ABAP的RTTI实际上异曲同工。
API ERP
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。