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.

 

 

posted @ 2022-01-10 22:04  弹剑作歌  阅读(485)  评论(0)    收藏  举报