SAP 批量导入程序数据合理性检查
1. 校验日期是否是SAP内部格式(yyyymmdd)
CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
EXPORTING
date = pv_date
EXCEPTIONS
plausibility_check_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
2. 校验数据是否为纯数字
DATA:lv_str TYPE string.
CALL FUNCTION 'IF_CA_MAKE_STRING_NUMERICAL'
EXPORTING
input_string = lv_str
EXCEPTIONS
not_numerical = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
3. 校验数据是否符合固定格式(汇率,金额,数量,自然数)
DATA:lv_str TYPE string.
IF cl_abap_matcher=>matches(
pattern = '^([1-9]\d*.\d*|0.\d*[1-9]\d*)|[0-9]\d*$'
text = lv_str ) = abap_true.
ELSE.
ENDIF.
不同类型的校验都可用以上语句来校验,只需替换掉红色部分语句即可
金额,数量(浮点数,可正负): '^-?([1-9]\d*.\d*|0.\d*[1-9]\d*)|-?[0-9]\d*$'.
汇率(浮点数,不可负): '^([1-9]\d*.\d*|0.\d*[1-9]\d*)|[0-9]\d*$'.
自然数(N,不可负): '^[0-9]\d*$'.
常用正则表达式可参考: http://tools.jb51.net/regex/create_reg.
本文来自博客园,作者:弹剑作歌,转载请注明原文链接:https://www.cnblogs.com/yigecainiao/p/15786076.html

浙公网安备 33010602011771号