abap
-
密码保护:ABAP刷新屏幕时更新ALV的Fieldcat
无法提供摘要。这是一篇受保护的文章。
-
ABAP性能优化小例子
偶然间翻到一份关于SAP ABAP程序开发性能优化方面的老资料,快速过了一遍,乘着还有点印象练一下手。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566*&---------------------------------------------------------------------**& Report ZTEST020*&---------------------------------------------------------------------**&*&---------------------------------------------------------------------*REPORT ZTEST020.*DATA:T1 TYPE I,* T2 TYPE I,* TIME TYPE I.*TABLES:SPFLI.*GET RUN TIME FIELD T1.*SELECT * FROM SPFLI WHERE DEPTIME = '150000'.*ENDSELECT.*GET RUN TIME FIELD T2.*TIME = TIME + T2 - T1.*WRITE:/ TIME.*CLEAR:T1,T2,TIME.*ULINE.*GET RUN TIME FIELD T1.*SELECT * FROM SPFLI WHERE CARRID = 'LH'* AND CONNID = '0455'. " deptime = '150000'.*ENDSELECT.*GET RUN TIME FIELD T2.*TIME = TIME + T2 - T1.*WRITE:/ TIME.TYPES: BEGIN OF TYP_SFLIGHT,CARRID TYPE SFLIGHT-CARRID,CONNID TYPE SFLIGHT-CONNID,END OF TYP_SFLIGHT.DATA T_SFLIGHT TYPE TABLE OF TYP_SFLIGHT.*性能优化tips SQL*1.只查询需要用到的字段,减少传输*2.使用sum而不是查询出来之后loop汇总*3.如果条数确定用UP TO 10 ROWS,而不是靠判断SY_DBCNT*4.无论如何,给一个where条件吧*5.如果表结构确定,不要使用corresponding,费时间*6.在ABAP中排序,而不是SQL中用ORDER BY*7.where条件尽量使用主键字段,而不是其他值字段,尽量避免整表扫描SELECT CARRIDCONNIDSUM( SEATSMAX )INTO TABLE T_SFLIGHTFROM SFLIGHTUP TO 10 ROWSWHERE CARRID LIKE 'A%'GROUP BY CARRID CONNID.SORT T_SFLIGHT BY CARRID.*性能优化tips 程序.*1.不可避免的要使用多层循环的情况下,用指针存储循环出来的值*2.使用BINARY SEARCH*3.使用TRANSPORTING只传输需要的字段,不要用move-corresponding*4.append/modify/insert/delete操作时尽量用表而不是一行一行的LOOP AT T_SFLIGHT ASSIGNING FIELD-SYMBOL(<FS1>).READ TABLE T_SFLIGHTINTO DATA(WA_SFLLIGHT)WITH KEY CARRID = 'AA' BINARY SEARCHTRANSPORTING CARRID CONNID.WRITE : / WA_SFLLIGHT-CARRID, WA_SFLLIGHT-CONNID.CLEAR WA_SFLLIGHT.ENDLOOP. -
密码保护:SAP ABAP程序中创建透明表
无法提供摘要。这是一篇受保护的文章。
-
ABAP管理SM37后台job
job相关内置函数:JOB_OPEN:创建job,declare一个JOB并返回这个job的“内存ID”.JOB_SUBMIT:计划job,insert step for job,…
-
ABAP算字符数和字节数
12345678910111213*计算字节数(计算按本地编码计算的个数).DATA:lv_char TYPE string,lv_len TYPE i.lv_char = '经济学abc123'CALL METHOD cl_abap_list_utilities=>dynamic_output_lengthEXPORTINGfield = lv_charRECEIVINGlen = lv_len.*strlen()只是获取字数(字符数,数一一下一共有多少个字),比如strlen('经济学')结果为3*cl_abap_list_utilities=>dynamic_output_length计算的是字节数,比如传入'经济学',返回是6.