Abap 我需要转换一个值吗?
当我从数据库表中选择一个单位时,我通过事务Abap 我需要转换一个值吗?,abap,Abap,当我从数据库表中选择一个单位时,我通过事务SE16N,注意到同一字段有两个不同的值。未转换和已转换的值。通过我的SELECT语句,我收到了未转换的语句。我是否需要转换此值才能继续使用它 您在ABAP中选择的表格行只包含未转换的值。使用这些功能,例如,将与其他表或调用方法/功能模块连接起来。转换仅在显示数据时相关 顺便说一句:尽管如此,这些“善意”的转换可能会带来问题。例如,具有NUMC类型(数字字符)的值在转换过程中通常会在前导零处被修剪/去除。但是,当这些前导零缺失时,一些功能模块无法工作。首
SE16N
,注意到同一字段有两个不同的值。未转换和已转换的值。通过我的SELECT
语句,我收到了未转换的语句。我是否需要转换此值才能继续使用它
您在ABAP中选择的
表格行只包含未转换的值。使用这些功能,例如,将
与其他表或调用方法/功能模块连接起来。转换仅在显示数据时相关
顺便说一句:尽管如此,这些“善意”的转换可能会带来问题。例如,具有NUMC类型(数字字符)的值在转换过程中通常会在前导零处被修剪/去除。但是,当这些前导零缺失时,一些功能模块无法工作。首先,可能有必要解释“转换值”和“未转换值”(更好地称为“外部值”和“内部值”)的概念 内部值是程序使用并存储在数据库中的实际值,外部值仅在显示、屏幕显示、打印输出等时计算 正如Legxis所解释的那样,对于度量单位“
ST
”的内部值来说,看到一个有意义的代码是非常实际的(一个表示数字是个数的度量单位,英国用户更喜欢看到PCS
(英语单词“pieces”),而德国用户更喜欢看到ST
(德语单词“Stücks”)
转换算法通过“”在DDIC域级别(事务代码SE11)定义字段,一种5个字符的代码,用于定义在显示时自动调用的转换功能模块。例如,度量单位与域MEINS
相关,该域具有例程CUNIT
,该例程对应于功能模块转换退出输入和转换退出_CUNIT_输出
CONVERSION\u EXIT\u CUNIT\u INPUT
将外部值(显示)转换为内部值(程序和数据库)
CONVERSION\u EXIT\u CUNIT\u OUTPUT
将内部值(程序和数据库)转换为外部值(显示)
这些功能模块在SAP渲染技术中自动调用,如SAP GUI、SAPscript、智能表单、SAP Adobe表单、BSP、Web Dynpro等。如果调用ABAP语句,“输出”功能模块也会被调用
请注意,为DDIC域定义的“输出长度”可能具有一定的重要性,因为可以定义大于内部长度的输出长度(显示)。例如,语言代码在内部存储在一个字符上,但在两个字符上显示。例如,在英语中,语言代码“V”(瑞典)显示为“SW”(瑞典),语言代码“S”(西班牙)显示为“SP”(西班牙)
最后,如果你很好地理解了这个概念,你应该得出结论,你通常不需要自己转换任何东西。只有当你想定义一个不是上面提到的SAP支持技术之一的接口时,它才有用。这取决于你想用它做什么以及你的环境使用什么语言。'PCS'是en英语,意为“碎片”,“ST”是德语,有“STück”的阿奎伦特意思。