现在的位置: 首页 > 综合 > 正文

创建自己的Convers. Routine.

2012年01月08日 ⁄ 综合 ⁄ 共 1865字 ⁄ 字号 评论关闭

文章转自 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 RIGHT DELETING TRAILING
space.
OVERLAY gv_str WITH '0000000000'.

去前导0:

SHIFT gv_str LEFT DELETING LEADING
'0'.

 

 

 

 

我们在自建表的时候也许要对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 RIGHT DELETING TRAILING
space.
OVERLAY gv_str WITH '0000000000'.

去前导0:

SHIFT gv_str LEFT DELETING LEADING
'0'.

 

 

 

 

我们在自建表的时候也许要对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效果)。

 

抱歉!评论已关闭.