ABAP如何调用OCX

网友投稿 509 2022-05-29

网上有很多的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将会触发。

ABAP如何调用OCX

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了,直接看文档理解。

不知道你们正式开发开始后这个用得上不。

ABAP ERP

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:对象的共享
下一篇:[转载]利用memcached在多台服务器之间共享PHP的session数据
相关文章