CONVERSION_EXIT_ALPHA_INPUT和CONVERSION_EXIT_ALPHA_OUTPUT 函数说明
CONVERSION_EXIT_MATN1_INPUT 物料号码转换函数
CONVERSION_EXIT_MATN1_OUTPUT 同上相反
我们可以调用系统的函数来实现补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.
没法使用此函数的:
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.