1.Select条件判断某字段是否包含某字符like '%string%'
SELECT SINGLE change_name INTO lv_change_name FROM Ztable_01
WHERE ato_number = ls_materail-ato_number
AND ( change_name LIKE ‘%AAA%’ OR change_name LIKE ‘%BBB%’ ).
IF sy-subrc EQ 0 AND ( lv_change_name CS ‘AAA’ OR lv_change_name CS ‘BBB’ ).
lv_ato_number =‘记录包含AAA或者BBB’
EXIT.
ELSE.
lv_ato_number =‘记录不包含AAA或者BBB’
ENDIF.
2.判断内表行数DESCRIBE TABLE Ztable Lines LV_Len
DATA: LV_UPLOAD TYPE I,
LV_BUT000 TYPE I.
DESCRIBE TABLE GT_BANK_DATA LINES LV_UPLOAD.
DESCRIBE TABLE GT_BUT000 LINES LV_BUT000.
3.报表中离开处理,停留在当前屏幕,以S类型展示异常信息
IF LV_BUT000 <> LV_UPLOAD.
MESSAGE ‘Excel导入行数与系统存在的员工数不一致’ TYPE ‘S’ DISPLAY LIKE ‘E’.
LEAVE LIST-PROCESSING.
ENDIF.
4.字符串长度按指定长度分隔到2个变量中
Data: LV_LEN TYPE I.
LV_LEN = STRLEN( <WA_BANK_DATA>-BANKN ).
IF LV_LEN > 18 .
CALL FUNCTION ‘TEXT_SPLIT’
EXPORTING
LENGTH = 18
TEXT = <WA_BANK_DATA>-BANKN
-
ELSE.AS_CHARACTER = 'X' IMPORTING LINE = LS_BANKDETAILDATA-BANK_ACCT REST = LS_BANKDETAILDATA-BANK_REF.
LS_BANKDETAILDATA-BANK_ACCT = <WA_BANK_DATA>-BANKN.
ENDIF.
5.定义工作区,插入一个结构定义
TYPES:BEGIN OF ty_result,
field_style TYPE lvc_t_styl,
sel TYPE c,
status(40) TYPE c,
mess TYPE char128,
ctrno_flg TYPE char1,
error_flg TYPE char1.
INCLUDE STRUCTURE ztsd0052 .
TYPES END OF ty_result.
6.获取本地计算机名
7.ABAP参照Select-Optons建立内部结构
DATA:LS_WADAT LIKE LINE OF S_WADAT.
LS_WADAT-SIGN = ‘I’.
LS_WADAT-OPTION = ‘BT’.
LS_WADAT-LOW = LV_DATE_FIRST.
LS_WADAT-HIGH = LV_DATE_LAST.
APPEND LS_WADAT TO S_WADAT.
8.在Sproxy中定义Range类型内表与RFC、程序不一样
TYPES: BEGIN OF TY_DATA2,
SIGN(1),
OPTION(2),
LOW TYPE MCHB-LGORT,
HIGH TYPE MCHB-LGORT,
END OF TY_DATA2.
DATA: LT_LGORT_RANGE TYPE TABLE OF TY_DATA2,
LS_LGORT_RANGE TYPE TY_DATA2.
TYPES: BEGIN OF TY_DATA3,
SIGN(1),
OPTION(2),
LOW TYPE MCHB-WERKS,
HIGH TYPE MCHB-WERKS,
END OF TY_DATA3.
DATA: LT_WERKS_RANGE TYPE TABLE OF TY_DATA3,
LS_WERKS_RANGE TYPE TY_DATA3.
LOOP AT INPUT-MT_SAP_MMIF003_GET_MATERIAL_BA-ITEM INTO DATA(WA_DATA).
MOVE-CORRESPONDING WA_DATA TO LS_INPUT_DATA.
APPEND LS_INPUT_DATA TO LT_INPUT_DATA.
LS_LGORT_RANGE-SIGN = 'I'.
LS_LGORT_RANGE-OPTION = 'EQ'.
LS_LGORT_RANGE-LOW = LS_INPUT_DATA-LGORT.
APPEND LS_LGORT_RANGE TO LT_LGORT_RANGE.
LS_WERKS_RANGE-SIGN = 'I'.
LS_WERKS_RANGE-OPTION = 'EQ'.
LS_WERKS_RANGE-LOW = LS_INPUT_DATA-WERKS.
APPEND LS_WERKS_RANGE TO LT_WERKS_RANGE.
ENDLOOP.
SORT LT_INPUT_DATA BY WERKS LGORT.
DELETE ADJACENT DUPLICATES FROM LT_INPUT_DATA COMPARING ALL FIELDS.
SORT LT_LGORT_RANGE.
DELETE ADJACENT DUPLICATES FROM LT_LGORT_RANGE COMPARING ALL FIELDS.
SORT LT_WERKS_RANGE.
DELETE ADJACENT DUPLICATES FROM LT_WERKS_RANGE COMPARING ALL FIELDS.
IF LT_WERKS_RANGE IS NOT INITIAL AND LT_LGORT_RANGE IS NOT INITIAL. " LT_INPUT_DATA.
SELECT
WERKS
MATNR
CINSM
CLABS
CSPEM
LGORT
CHARG
FROM MCHB INTO CORRESPONDING FIELDS OF TABLE LT_DATA
-
FOR ALL ENTRIES IN LT_INPUT_DATA WHERE WERKS IN LT_WERKS_RANGE "= LT_INPUT_DATA-WERKS AND LGORT IN LT_LGORT_RANGE. ENDIF
9.RFC使用Range内表定义,使用CORRESPONDING映射内表字段值到另外一个内表,获取物料库存例子。
FUNCTION zmm_send_stock .
*"------------------------------------------