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”的阿奎伦特意思。