首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要转换一个值吗?

我需要转换一个值吗?
EN

Stack Overflow用户
提问于 2019-09-25 11:44:38
回答 2查看 3.8K关注 0票数 2

当我从数据库表中选择一个单元时,我通过事务SE16N注意到同一字段有两个不同的值。未转换值和转换值。使用我的SELECT语句,我将收到未转换的语句。我需要转换这个值才能继续使用它吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-25 16:38:38

首先,它可能值得解释什么是“转换价值”和“未转换价值”(什么是更被称为“外部价值”和“内部价值”)。

内部值是程序使用并存储在数据库中的实际值,外部值仅在显示时、屏幕上、打印输出等时计算。

正如Legxis所解释的那样,对于度量单位"ST“的内部值来说,看到有意义的代码是非常实用的(一种度量单位,它表示数字是若干件,英国用户更愿意看到PCS (英文单词”片段“),而德国用户更喜欢看到ST (德语单词"Stücks") )。

转换算法是在DDIC域级(事务代码SE11)通过"转换例程“字段定义的,这是一个5字符的代码,定义了在显示时自动调用的转换功能模块。例如,度量单元与域MEINS相关,它具有与CONVERSION_EXIT_CUNIT_INPUTCONVERSION_EXIT_CUNIT_OUTPUT功能模块相对应的常规CUNIT

  • CONVERSION_EXIT_CUNIT_INPUT将从外部值(显示)转换为内部值(程序和数据库)。
  • CONVERSION_EXIT_CUNIT_OUTPUT执行从内部值(程序和数据库)到外部值的转换(显示)

这些功能模块在SAP、SAPscript、Smart、statement、BSP、Web等SAP渲染技术中自动调用。如果调用ABAP语句WRITE,也会调用"OUTPUT“功能模块。

请注意,为DDIC域定义的“输出长度”可能具有一定的重要性,因为可以定义大于内部长度的输出长度(显示)。例如,语言代码在内部存储在一个字符上,但显示在两个字符上。例如,在英语中,语言代码"V“(瑞典)显示"SW”(瑞典),语言代码"S“(西班牙)显示"SP”(西班牙)。

最后,如果你很好地理解这个概念,你应该得出结论,你通常不需要自己转换任何东西。只有当您想要定义一个不是上面提到的SAP支持的技术之一的接口时,它才可能有用。

票数 5
EN

Stack Overflow用户

发布于 2019-09-25 13:51:51

SELECT中的表行只包含未转换的值。使用这些方法,例如,JOIN与其他表或调用方法/函数模块。只有在显示数据时,转换才有意义。

顺便说一句:尽管如此,这些带有“善意”的转换可能会引发问题。例如,具有NUMC类型(数字字符)的值通常在转换过程中被修剪/剥离,当它们有前导零时。但是当这些前导零丢失时,一些功能模块就不能工作了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58097610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档