技术开发 频道

ABAP中关于Upload文件常用的检查

【IT168 技术文章】

    我们在Upload/Download数据的时候,会遇到一些数据需要检查,一些数据需要转换,今天把这些东西做一下总结,方便以后使用.

    经常需要检查转换的列表:

    1.时间日期

    2.单位

    3.WBS,Master Data中的前面的0,归类为alpha转换

    4.数量,往往跟随单位

    下面我们就一一把这些需要的检查转换等总结一下:

    关于时间:

  函数: CONVERT_TIME_INPUT(6->8)

  功能: 把6位的时间转换成8位带有分隔符的时间格式

  用法: 我们在上传文件的时候,往往使用字符串格式,所以经常使用6位的时间格式,而在sap系统中,往往使用的是带有分隔符的格式,于是这个转换是必要的.同时,这个函数可以检查时间格式是否正确,只要你把PLAUSIBILITY_CHECK这个参数设置成为’X’.

  ABAP语句: replace(8->6)

  这种转换就很简单了,只要写一下就搞定(ls为8位的时间格式):

        REPLACE ALL OCCURRENCES OF ':' IN ls WITH space.
        CONDENSE ls.

  关于日期:

  两个函数,分别是internal和external

        CONVERT_DATE_TO_INTERNAL

        CONVERT_DATE_TO_EXTERNAL

  关于具体用法,我想就不用多提了,因为这两个函数使用起来非常简单.

    关于单位:

  关于单位的转换我们基本上知道以下四个函数就能搞定:

        CONVERSION_EXIT_CUNIT_INPUT

        CONVERSION_EXIT_CUNIT_OUTPUT

        CONVERSION_EXIT_LUNIT_INPUT

        CONVERSION_EXIT_LUNIT_OUTPUT

  前面两个是3位的,后面两个是6位的.

    关于alpha:

  两个函数:

        CONVERSION_EXIT_ALPHA_INPUT

        CONVERSION_EXIT_ALPHA_OUTPUT

  特殊的转换:

        WBS:

          CONVERSION_EXIT_KONPD_INPUT

          CONVERSION_EXIT_KONPD_OUTPUT

        Material:

          CONVERSION_EXIT_MATN1_INPUT

          CONVERSION_EXIT_MATN1_OUTPUT

    关于数量:

  只需要一个函数:

        CHECK_AND_CONVERT_NUMERICS

  注意里面参数的使用,最常用也是最简单的使用方法:

          DMZEI: 这个输入你的小数点的格式(. Or ,)

          DTYPE: 数据类型(QUAN,CURR,DEC)

          EFELD: 字符串类型的数值,可以带正负号

          IMP_DECIMALS: 小数点位数

  理论上只需要输入以上四个参数就足够了,如果你想使用更复杂的功能,那就需要知道你这个数字类型的变量要放到那个程序的那个屏幕上,基本上我们也用不到.    

    补充:  由hand沈威同志提出

  关于数量的转换函数:CHAR_FLTP_CONVERSION

  经过测试,也非常好用,大家可以根据自己的需要选择,非常感谢沈同学的补充.

2
相关文章