ABAP如何调用OCX
网上有很多的open OCX控件,down下来之后可以集成到ABAP后台,借助OCX实现很多强大的功能.
这是一个LED显示的例子.
Run这个report之前,首先要把ocx文件注册到系统里去:
(1) 以administrator的role运行cmd:
打开注册表,搜ledtest.ocx,找到ocx对应的clsid:
(2) 把clsid hard code到report里去就ok了。
(1) UI上我们可以看到Category AB里面有一个indicator叫”Base Category”.
(2)在GenIL这层我们也可以看到Product有两个relation,一个”ProductBaseCategory”,一个”ProductCategory”. 这两个relation共享的一个object(表),也就是”COMM_PRPRDCATR”.
(3)但是我们发现其实这张表里面并没有存”Is_Base_Category”这个字段。也就是这个字段是在runtime时候determine出来的。
(4)从下图可以看出这个字段是在MAP_TO_UI_STRUCTURE这个接口里面实现的,这个接口在GenIL API里面用来实现将Native API layer的数据转换成GenIL layer的数据格式的作用。(由此可以看出这个接口可以用来实现一个GenIL layer的transformation field的功能)
(5) 从上面的代码中可以看出一个category assignment是不是base category,是通过看这个category对应的hierarchy id是不是与product的hierarchy id相同来判断的。而在建立Product时候,第一次选择的category的hierarchy id将会赋给product的hierarchy id。
而之后在选择category的时候就不能选择与第一个category相同的hierarchy了。
上图可以看出当你选择category时候,已有的category对应的hierarchy将会被作为”Is Not”的查询参数被默认生成出来。
如果你强行删除这些限制条件,选择一个不正确的category,如下error message将会触发。
Social media 在SP0开发的时候,建了CL_SOC_UTIL和CL_CRM_SOC_SMC_UIU_UTIL 两个util class。
这两个class里面有的方法是通过method name一眼就能看出用途,有的method取的不是很好,需要结合source code才能明白用途。
某些方法的实现逻辑比较复杂
某些方法是为了解决某些特殊的issue而引入的。
Social media开发时,在method source code内部写了注释,对于method 本身的用途和输入输出参数定义没有写注释。
其实ABAP也能和JAVA一样,通过维护特定格式的注释,最后自动生成文档。
Class level的注释:
Method level的注释:
用tcode CLASS_DOCUGEN生成文档,点这个button查看文档:
如果文档写的好, developer B在修改developer A实现的method之前,不用所有的细节都跑去问developerA了,直接看文档理解。
不知道你们正式开发开始后这个用得上不。
- 点赞
- 收藏
- 关注作者
评论(0)