CONVERSION_EXIT_ALPHA_INPUT和CONVERSION_EXIT_ALPHA_OUTPUT 函数说明

CONVERSION_EXIT_MATN1_INPUT 物料号码转换函数

CONVERSION_EXIT_MATN1_OUTPUT 同上相反

这个比较简单,直接贴代码,方便需要的时候拷贝
 
DATA:MATNR TYPE MARA-MATNR.   “ 物料号
 
"增加前导零
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    input  = MATNR
  IMPORTING
    output = MATNR.
 
"去掉前导零
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
  EXPORTING
    input  = MATNR
  IMPORTING
    output = MATNR.
料号前面补0

我们可以调用系统的函数来实现补0这个功能。

CONVERSION_EXIT_ALPHA_INPUT 对话退出ALPHA,外部->内部 这个是补0函数

CONVERSION_EXIT_ALPHA_OUTPUT 对话退出ALPHA,内部->外部 这个是除0函数

说明:1)数字料号入Table需要补0,不会自动产生,有字母料号却会自动补0. 
2)只能用’字符型’

网上还有一种说法,未验证:如果果传入的参数是数字的,会将传出的参数转换成0开头的格式,注意,传出的参数长度一定要大于传入的参数,否则会ABAP Dump;如果是字母,就不做任何处理。

函数调用非常简单,如下

itab-vbeln=88.            "赋值测试

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' 
EXPORTING 
input = itab-vbeln                  “这里的itab-vbeln还是两位数的88
IMPORTING 
OUTPUT = itab-vbeln   "这里可以是原来的变量,也可以是新的  执行完就发现itab-vbeln=0000000088了,至于补多少个0取决于这个变量的长度,补满为止

料号前面去0

CONVERSION_EXIT_MATN1_OUTPUT 
功能:料号前面去0 
实例: 
CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' 
EXPORTING 
input = t_afpo-matnr 
IMPORTING 
output = t_afpo-matnr 
EXCEPTIONS 
OTHERS = 1.

没法使用此函数的:

function CONVERSION_EXIT ****INPUT/OUTPUT说明-LMLPHP

function CONVERSION_EXIT ****INPUT/OUTPUT说明-LMLPHP

3.没有配置要查找,可以模糊查找

CONCATENATE '%' IM_SOHEAD-BSTKD  '%' INTO IM_SOHEAD-BSTKD.
    SELECT SINGLE BSTKD
      INTO LS_BSTKD
      FROM VBKD
      WHERE BSTKD  LIKE  IM_SOHEAD-BSTKD .

*    SELECT SINGLE BSTKD
*      INTO ls_BSTKD
*      FROM vbkd
*      WHERE BSTKD = IM_SOHEAD-BSTKD .
     IF LS_BSTKD <>  0 .
        E_MSGTY  = 'E'.
       CONCATENATE IM_SOHEAD-BSTKD  '订单已经传输' INTO E_ERMSG .
       CLEAR LS_BSTKD.
       EXIT.
     ENDIF.

05-11 15:39