ABAP:截取字符串(Start Routine)
需求:
有主数据ZPLANT,取自工厂描述的一部分,用'-'隔开,比如"工厂A-北京",ZPLANT只需要"工厂A"。
怎么解决呢:
写在Start Routine里,
DATA:
Z_RES_WA TYPE MATCH_RESULT,
Z_RES_TAB TYPE MATCH_RESULT_TAB,
Z_DATA TYPE _ty_s_SC_1,
Z_OFFSET TYPE I.
LOOP AT SOURCE_PACKAGE INTO Z_DATA.
IF Z_DATA-WERKS(1) <> 'A'.
FIND ALL OCCURRENCES OF REGEX '-' IN Z_DATA-TXTMD RESULTS
Z_RES_TAB.
LOOP AT Z_RES_TAB INTO Z_RES_WA.
Z_DATA-TXTMD = Z_DATA-TXTMD(Z_RES_WA-OFFSET).
ENDLOOP.
MODIFY SOURCE_PACKAGE FROM Z_DATA.
ELSE.
DELETE SOURCE_PACKAGE WHERE WERKS = Z_DATA-WERKS.
ENDIF.
ENDLOOP.
这里了利用了:
FIND ALL OCCURRENCES OF REGEX '-' IN Z_DATA-TXTMD RESULTS
Z_RES_TAB.
这里的RESULTS放在类型为MATCH_RESULT_TAB的表里。
表的行项目为MATCH_RESULT。
有如下参数:
这里说说OFFSET,就是偏移量,想截取,只需要STRING(OFFSET)就哦了~
然后截取完了赋值,赋值完了修改内表,over。