文章转自 http://blog.csdn.net/wren2004/article/details/6175203
如何创建自己的Convers. Routine? 一般我们都是用SAP标准的ALPHA, 如下图:
我一直很好奇这个ALPHA倒底是什么东东, 不是FUNCTION GROUP, 不是FUNCTION MODULE, 直到最近有个需求要创建包含一些特殊逻辑的Convers. Routine, 才发现这个ALPHA只是FUNCTION MODULE名字中间的一部分, 双击ALPHA, 如下图:
原来, 只要符合CONVERSION_EXIT_XXXXX_INPUT / CONVERSION_EXIT_XXXXX_OUTPUT命名规则的FM就可以做Conversion Routine了.
这样一来, 我们只要创建两个FM, 按上述规则命名, 然后将中间的XXXXX分配给DOMIN就可以实现自己的转换规则了.
当然, 这个FM不是Z开头的, 创建时SAP会有警告提示, 忽略就好了.
PS: 使用上面 的 FM可以添加/去除前导零,也可以通过以下方法实现:
data gv_str type char10.
gv_str = '400'.
SHIFT gv_str
OVERLAY gv
去前导0:
SHIFT
我们在自建表的时候也许要对domain进行一个转换,这时我们通常使用conversion Routine
Conversion Routine的名字只有5个字符长,实际上它也算是一种增强技术,当命名好以后,要在SE37创建两个Function module,分别是:
CONVERSION_EXIT_XXXXX_INPUT
CONVERSION_EXIT_XXXXX_OUTPUT
(XXXXX表示Conversion Routine的名字,请注意,以上两个function module都必须要定义一个input输入参数和output输出参数)
前者用来对输入时的值进行转换(比如维护一个自建表,当你输入字段值进行查询的自动补零效果),后者对输出时的值进行转换(比如你把数据库表数据拿出来,
在List中Write的去前导0效果)。
如何创建自己的Convers. Routine? 一般我们都是用SAP标准的ALPHA, 如下图:
我一直很好奇这个ALPHA倒底是什么东东, 不是FUNCTION GROUP, 不是FUNCTION MODULE, 直到最近有个需求要创建包含一些特殊逻辑的Convers. Routine, 才发现这个ALPHA只是FUNCTION MODULE名字中间的一部分, 双击ALPHA, 如下图:
原来, 只要符合CONVERSION_EXIT_XXXXX_INPUT / CONVERSION_EXIT_XXXXX_OUTPUT命名规则的FM就可以做Conversion Routine了.
这样一来, 我们只要创建两个FM, 按上述规则命名, 然后将中间的XXXXX分配给DOMIN就可以实现自己的转换规则了.
当然, 这个FM不是Z开头的, 创建时SAP会有警告提示, 忽略就好了.
PS: 使用上面 的 FM可以添加/去除前导零,也可以通过以下方法实现:
data gv_str type char10.
gv_str = '400'.
SHIFT gv_str
OVERLAY gv
去前导0:
SHIFT
我们在自建表的时候也许要对domain进行一个转换,这时我们通常使用conversion Routine
Conversion Routine的名字只有5个字符长,实际上它也算是一种增强技术,当命名好以后,要在SE37创建两个Function module,分别是:
CONVERSION_EXIT_XXXXX_INPUT
CONVERSION_EXIT_XXXXX_OUTPUT
(XXXXX表示Conversion Routine的名字,请注意,以上两个function module都必须要定义一个input输入参数和output输出参数)
前者用来对输入时的值进行转换(比如维护一个自建表,当你输入字段值进行查询的自动补零效果),后者对输出时的值进行转换(比如你把数据库表数据拿出来,
在List中Write的去前导0效果)。