ABAP 技巧
文章平均质量分 54
南南阿爸
SAP专家,未来技术探讨者
展开
-
SAP隐式增强中“声明“和“代码“有什么区别?
在SAP标准程序做隐式增强的时候跳出一个增强模式选择“声明”或者“代码”:如下图:这两个选项有什么区别呢?点击“信息”有英文的解释:上面清晰解释:一个隐式增强选项的增强实现可以通过两种方式被增强框架绑定到源代码中。【声明】:作为一个无条件的调用,用于声明和定义。在这种 "静态 "增强中,你可以添加和替换数据声明,例如。调用增强功能是独立于客户端进行的。增强功能在系统的所有客户端都是可见的。即:只要激活了,代码就在系统中生效了。【代码】:作为条件性调用,用于源代码。这里实现的增强功能是 "动态 "调用的,也就原创 2022-05-25 16:57:27 · 344 阅读 · 0 评论 -
如何将ABAP时间戳转换为JAVA时间戳,原理是什么呢?
在跨系统调用交互中,经常会调用Java系统接口,而一般Java系统的接口都会使用时间戳戳进行加签,进而防止数据被篡改。在abap中如何获取java时间戳呢?获得系统时区当前时间戳-长格式DATA:lv_timestampl TYPE timestampl."长时间格式的时间戳DATA:lv_str_timestampl TYPE char22.GET TIME STAMP FIELD lv_timestampl.调用系统类方法进行数据获得java时间戳(毫秒级别)原创 2022-05-24 19:26:05 · 492 阅读 · 0 评论 -
如何使用按钮调用标准搜索F4帮助
通常我们都是通过SE11,创建一个搜索帮助,然后通过把这个搜索帮助配置到数据元素,或者结构表中,在表单维护或者搜索条件中就会在input field里面带出一个搜索帮助的小框。但是有的时候我们又需要通过一个按钮事件或者下拉事件,或者其他事件去主动调用SE11创建的搜索帮助,那我们是如何写代码呢?那就是调用函数F4IF_START_VALUE_REQUEST在事件的方法里面: 1. 读取SE11搜索帮助的基本信息CALL FUNCTION 'F4IF_GET_SHLP_DESCR' EX原创 2022-05-24 09:59:21 · 123 阅读 · 0 评论 -
ABAP 如何进行OO面向对象的事务管理
在上一篇文章里面,我们提到了ABAP的对象持久化实现,这次我们如何以面向对象的方式进行ABAP面向对象的持久化对象事务管理?在传统的SAP编程里面,SAP事务管理是基于SAP LUWs。所有的数据都绑定到一个DB LUW里面。例如程序中执行的数据更改,以及注册到LUW里面以后执行(并不立即执行)的程序,例如子程序(使用 PERFORM ON COMMIT 注册的) 、更新程序函数(使用CALL FUNCTION IN UPDATE TASK)。这两种注册的程序都会在COMMIT WORK之后被执行。原创 2022-05-09 15:48:43 · 377 阅读 · 0 评论 -
在ABAP中如何将对象进行持久化
持久化的意思是将对象进行数据磁盘存储。持久化对象在任何语言中都有对应的方法和理论。ABAP的持久化主要还是通过持久化服务进行对象的数据存储。如下图:简单来说 持久化服务就是用于管理初始化对象,保存对象,管理对象。下面我通过一个简单的实例来说明:系统的一个对象在业务处理中如何在属性的存储到SAP自定义表中,并支持增删改查操作。创建一个自定义表ZTNB_TEST,用于存储持久化后的对象。维护持久性可通过以下两种方式: 1. 使用业务key作为主键 &原创 2022-05-09 12:40:52 · 330 阅读 · 0 评论 -
ABAP Workarea(工作区) VS Field Symbols(占位符) 性能对比分析
在SAP开发项目,这两个概念开发人员基本都知道。但是没有去对比其性能区别。首先,我们普及一下原理。Workarea: 相当于在内存堆栈里面开辟了一块内存。Field Symbols:相当于存了内存的地址。所以实际上是不占用内存的。相当于C语言的已经被解除引用的指针。所以我们进行一项性能测试:1.对比单纯Loop的性能,不进行数据修改。REPORT zloop_performance_test.DATA : v_start_time TYPE timestampl, v_end_time原创 2022-05-07 14:37:37 · 680 阅读 · 0 评论