ABAP最新CODE指南 https://help.sap.com/doc/abapdocu_latest_index_htm/latest/en-US/index.htmalpha 转换"增加前导0 DATA: lv_matnr TYPE matnr VALUE '15000042'. lv_matnr = |{ lv_matnr ALPHA = IN }|. WRITE: lv_matnr. "示例结果:000000000015000042 "删除前导0 DATA: gs_matnr TYPE matnr VALUE '000000000015000042'. DATA(gs_out_matnr) = |{ gs_matnr ALPHA = OUT }|. WRITE:/ gs_out_matnr. "示例结果:15000042CONV转换和用户格式日期, VALUE内表快速填充TYPES t_date_tab TYPE TABLE OF string WITH EMPTY KEY. DATA(date_tab) = VALUE t_date_tab( ( | { CONV d( sy-datlo - 1 ) DATE = ENVIRONMENT } | ) ( | { sy-datlo DATE = ENVIRONMENT } | ) ( | { sy-datum DATE = ENVIRONMENT } | ) "如果不加DATE = ENVIRONMENT ,就直接是YYYYMMDD格式 ( | { CONV d( sy-datlo + 1 ) } | ) ).Range快速填充DATA itab TYPE RANGE OF i. itab = VALUE #( sign = 'I' option = 'BT' ( low = 1 high = 10 ) ( low = 21 high = 30 ) ( low = 41 high = 50 ) option = 'GE' ( low = 61 ) ). cl_demo_output=DISPLAY( itab ).DATA lr_kunnr type range of kunnr. LOOP AT lt_kunnr INTO DATA(ls_kunnr). lr_kunnr = VALUE #( BASE lr_kunnr ( sign = 'I' option = 'EQ' low = ls_kunnr-kunnr ) ). ENDLOOP. cl_demo_output=DISPLAY( itab ).VALUE in line声明CLASS c1 DEFINITION. PUBLIC SECTION. TYPES: BEGIN OF t_struct, col1 TYPE i, col2 TYPE i, END OF t_struct. CLASS-METHODS m1 IMPORTING p TYPE t_struct. ENDCLASS. CLASS c1 IMPLEMENTATION. METHOD m1. WRITE:'col1:' , p-col1,'col2:',p-col2. ENDMETHOD. ENDCLASS. START-OF-SELECTION. c1=m1( VALUE #( col1 = 1 col2 = 2 ) ).值操作"操作值 * Variables: VALUE dtype|#( ) * Structures: VALUE dtype|#( comp1 = a1 comp2 = a2 … ) * Tables: VALUE dtype|#( ( … ) ( … ) … ) … TYPES:BEGIN OF ty_mara, matnr TYPE mara-matnr, matkl TYPE mara-matkl, END OF ty_mara. TYPES:BEGIN OF ty_makt, maktx TYPE makt-maktx, mara1 TYPE ty_mara, END OF ty_makt. "1 给变量赋值 DATA(lv_matnr) = 'AT001'. "2 给结构赋值 DATA(ls_makt1) = VALUE ty_makt( maktx = 'TEST MATERIAL' mara1-matnr = lv_matnr mara1-matkl = 'Z001'). "3 给内表赋值 "(1)标准的内表 TYPES: ty_t_makt TYPE STANDARD TABLE OF ty_makt WITH EMPTY KEY. DATA(lt_makt) = VALUE ty_t_makt( ( maktx = 'MATERIAL 1' mara1-matnr = 'AT001' mara1-matkl = 'Z001') ( maktx = 'MATERIAL 2' mara1-matnr = 'AT002' mara1-matkl = 'Z001') ( maktx = 'MATERIAL 3' mara1-matnr = 'AT003' mara1-matkl = 'Z001')BDC message处理CALL TRANSACTION 'MD02' USING gt_bdcdata OPTIONS FROM gs_ctu_params MESSAGES INTO gt_messtab. DELETE gt_messtab WHERE msgtyp 'E' AND msgtyp 'A'. IF gt_messtab[] IS NOT INITIAL. gs_out-run_type = 'E'. gs_out-run_result = TEXT-021. CLEAR lt_bapireturn[]. CALL FUNCTION 'CONVERT_BDCMSGCOLL_TO_BAPIRET2' TABLES imt_bdcmsgcoll = gt_messtab ext_return = lt_bapireturn. LOOP AT lt_bapireturn. CONCATENATE gs_out-run_result lt_bapireturn-message INTO gs_out-run_result SEPARATED BY space . ENDLOOP. ELSE. gs_out-run_type = 'S'. gs_out-run_result = TEXT-020. ENDIF.并行处理参考同一SAP系统内部进行分组并行处理的语法格式:CALL FUNCTION rfm_name STARTING NEW TASK taskname DESTINATION IN GROUP g1 ... [EXPORTING p1 = a1 ... pn = an ...] [TABLES t1 = itab1 ... tn = itabn ...] [EXCEPTIONS exc1 = e1 ... [MESSAGE mess]... exc2 = e2 ... [MESSAGE mess]... RESOURCE_FAILURE = ... ... [OTHERS = n_others] ].并行处理是有前提条件的:逻辑独立的工作单元,也就是逻辑要独立,不能有关联关系要使用RFC函数被调用的RFC中不能再包含使用BACK的远程功能调用调用程序不能在异步调用之后生成新的内部会话,也就是不能在CALL FUNCTION STARTING NEW TASK语句后使用SUBMIT或是ACALL TRANSACTION语句不能通过 CALL FUNCTION STARTING NEW TASK DESTINATION IN GROUP 语句启动外部程序为了处理并行作业,SAP系统中的服务器至少要有3个对话工作过程 ,否则将触发RESOUCE_FAILURE异常。分组处理TYPES: BEGIN OF ts_data. INCLUDE TYPE ts_upload. TYPES: send_guid TYPE zesend_guid, xh TYPE ze_xh, sequence type ze_sequence, status TYPE ze_status2, qname TYPE trfcqnam, type type BAPI_MTYPE, MESSAGE type BAPI_MSG. TYPES END OF ts_data. DATA: gt_data_upload TYPE STANDARD TABLE OF ts_upload, gt_data TYPE STANDARD TABLE OF ts_data WITH HEADER LINE. DATA: lt_group LIKE TABLE OF gt_data. TYPES: BEGIN OF ty_type, zgbom_item TYPE ze_gbomposnr, ztype TYPE c, END OF ty_type. DATA: lt_type TYPE STANDARD TABLE OF ty_type WITH HEADER LINE, ls_type TYPE ty_type,