ABAP常用基础应用_01

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

  •     AS_CHARACTER = 'X'
      IMPORTING
        LINE   = LS_BANKDETAILDATA-BANK_ACCT
        REST   = LS_BANKDETAILDATA-BANK_REF.
    
    ELSE.
    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 .
*"------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值