ABAP中的SELECT
中的表行仅包含未转换的值。使用这些来例如JOIN
和其他表格或调用方法/功能模块。转换仅在显示数据时相关。
顺便说一句:尽管如此,这些带有“良好意图”的转换仍会引起问题。例如,类型为NUMC
(数字字符)的值在转换过程中具有前导零时经常被修剪/剥离。但是当缺少这些前导零时,某些功能模块将不起作用。
首先,可能有必要解释“转换价值”和“未转换价值”(更好的是“外部价值”和“内部价值”)的概念。
内部值是程序使用并存储在数据库中的实际值,并且仅在显示,屏幕显示,打印输出等时计算外部值。
[如Legxis所解释,对于有意义的代码,对于度量单位“ ST
”的内部值(表示数量是件数的度量单位,英国用户更喜欢,这是非常实际的查看PCS
(英语单词“ pieces”),而德国用户则更喜欢看到ST
(德语单词“Stücks”)。
转换算法是通过“ SE11
”字段在DDIC域级别定义的(交易代码conversion routine),这是一个5个字符的代码,定义了在显示时自动调用的转换功能模块。例如,度量单位与域MEINS
有关,该域具有例程CUNIT
,该例程对应于功能模块CONVERSION_EXIT_CUNIT_INPUT
和CONVERSION_EXIT_CUNIT_OUTPUT
。
CONVERSION_EXIT_CUNIT_INPUT
进行从外部值(显示的)到内部值(程序和数据库)的转换CONVERSION_EXIT_CUNIT_OUTPUT
进行从内部值(程序和数据库)到外部值(显示)的转换]这些功能模块在SAP呈现技术(如SAP GUI,SAPscript,智能表单,SAP Adobe表单,BSP,Web Dynpro等)中自动调用。如果调用ABAP语句WRITE
,也会调用“ OUTPUT”功能模块。