因某个需求,需要知道用户的 数字格式,即小数点和千分位是,还是.
知道有标准函数,但是不记得了。索性自己找一下,下面记录下我查找的过程:
SU3
F1
根据数据元素查找where used :Function
根据描述既可以
测试:
然后我在另一个系统使用这个函数的时候,发现这个函数不存在。
估计是版本问题,于是进行模糊搜索:
或者同样根据数据元素进行搜索:
都可以找到这个函数。
现在问题来了,既然Function name可能随着版本变化。
(其实这个/OSP/Get……从命名空间看,应该不是最终版,可能后续版本中会修改命名,建议不要使用带这种//命名空间的)
遇到这种情况,建议直接查看Function代码,自己封装一个Function,防止受升级影响:
查看代码后,发现有效代码可以简化为:
FUNCTION ZLM_GET_USER_DECIMAL.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(IV_USER_NAME) TYPE SY-UNAME DEFAULT SY-UNAME
*" EXPORTING
*" REFERENCE(EV_TEXT) TYPE DD07T-DDTEXT
*"----------------------------------------------------------------------
DATA: LV_DECIMAL_NOTATION TYPE XUDCPFM.
DATA: LV_VALUE TYPE DD07V-DOMVALUE_L.
DATA: LV_DD07V TYPE DD07V.
SELECT SINGLE DCPFM FROM USR01 INTO LV_DECIMAL_NOTATION
WHERE BNAME = IV_USER_NAME.
CHECK SY-SUBRC = 0.
LV_VALUE = LV_DECIMAL_NOTATION.
CALL FUNCTION 'DDUT_DOMVALUE_TEXT_GET'
EXPORTING
NAME = 'XUDCPFM'
VALUE = LV_VALUE
LANGU = SY-LANGU
IMPORTING
DD07V_WA = LV_DD07V
EXCEPTIONS
NOT_FOUND = 1
ILLEGAL_INPUT = 2
OTHERS = 3.
EV_TEXT = LV_DD07V-DDTEXT.
ENDFUNCTION.
欢迎关注订阅号:SAP学习记录 (SAPlearning )