READ TABLE TBA1 INTO INTO LS_TAB1 WITH KEY ID = '01' NAME = 'ZS' BINARY SEARCH. 如果TAB1内表是根据ZFIT001自建表定义的,而ZFIT001-ID字段长度定义为了字符串三位,那么可能由于数据导入的过程中存在‘01’后面多了一个空格,从而导致获取不到数据的情况。 补充READ TABLE的使用方式: 通过主键查找(WI...
SAP ABAP 性能优化技巧 — 使用二分查找(Binary Search)选项 READ命令使用顺序查找数据表,这会降低处理速度。取而代之,使用binary search的附加命令,可以使用二分查找算法,可以帮助加快内表查找速度。 在使用binary search之前必须首先将内表排序,否则有可能找不到记录,因为二分查找反复将查找区间对半划分,如果要查找...
READ TABLE TAB2 WITH KEY COLUMN1 = '0800113864' COLUMN2 = '2012' COLUMN3 = '3018054318' BINARY SEARCH. 返回SY-SUBRC = 8. 即查询没有相关数据! 这就是问题的情况所在!! 我发现问题的过程可以理解为如下步骤: 1. 首先定位到5条记录的中间那条记录,即第3条记录,然后对比COLUMN3。 2. 第3条记录...
四、读取内表数据 READ依据具体行数或字段值等条件读取某一内表的数据: 参照其它内表值读取:READ TABLE itab FROM wa. 按具体值读取:READ TABLE itab WITH [TABLE] KEY k1=v1...kn=vn [BINARY SEARCH]. 读取具体行数据: READ TABLE itab INDEX i. LOOP循环常用于实现内表数据的循环读取和操作 注意: ...
3、如果是在循环某大型内表itab2时通过READ读取itab1的数据,可以把itab1构建为SORTED/HASHED TABLE(根据前两条的说明,自行选择构建SORTED或HASHED TABLE),再通过READ读取构建后的SORTED/HASHED TABLE,甚至可节约ABAP时间90%。 参见SE30的提示与技巧->Internal Tables->Simple Algorithms->Intersection of internal t...
SAP ABAP程序优化-多线程并行处理 实际项目实施过程中,我们会遇到程序性能优化的问题,这里介绍一种方法:通过RFC接口进行远程函数的异步调用实现程序的并行处理。 同步/异步调用函数语法 同步调用:CALL FUNCTION 同步调用的实质:程序进行单线程执行。 异步调用:CALL FUNCTION 'AAA' STARTING NEWTASK <taskname>"任务名称...
4、ABAP程序开头的Tables:“数据表名”,只有在屏幕中有用到的表,才需要声明;在程序中用到的表则不需要进行在Tables内声名; 5、抓SAP“文本”字段的数据,要先自定义变量,然后通过SE37的函数“FUNCTION ’ZREAD_TEXT’”取回文本数据; 6、新建的ABAP程序,在测试运行的时候要先进行“激活”,才能测试运行; ...
ABAP性能优化 1.使用二分法查询,提高查询内表数据速度 不推荐 Read table int_fligh with key airln = ‘LF’. 推荐 Read table int_fligh with key airln = ‘LF’ binary search. 2.两个内表添加使用批量增加代替逐行 不推荐 Loop at int_fligh1. Append int_fligh1 ..
还有一种有效的办法是,通过TVKO查询到当期公司代码所对应的全部销售组织,从而组建一个RANGE出来,再根据此RANGE查询LIKP。当然要注意RANGE的行项目有上限的,在ECC6中大概2万行将导致ABAP DUMP。 提示:DATA r_vkorg TYPE RANGE OF likp-vkorg. SIGN = ‘I’, OPTION = ‘EQ’, LOW = ‘XXXX’ 即可往r_vkor...
在这里有个ABAP的知识如下: 取某一个月月底的普通库存数据 select single * into ls_mardh from mardh where matnr = 'A' and werks = '0001' and lgort = '0100' and ( lfgja > p_lfgja or ( lfgja = p_lfgja and lfmon >= p_lfmon) ). ...