文章轉自 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效果)。