首页 > 其他分享 >cl_wdr_conversion_utils=>from_string

cl_wdr_conversion_utils=>from_string

时间:2023-08-15 10:17:03浏览次数:23  
标签:info conversion USD string attribute lv wdr 货币 小数位

在sap中,每种货币单位都可以维护对应的小数位数(如果未维护,则使用默认两位小数),该信息保存在表tcurx中。

在使用TCode:OY04更改该数据时,会有如下提示:
在您继续之前,请仔细阅读以下内容。
如果不留意此注释,您可能会用事务对系统造成不可挽回的损坏。
在 R/3 系统表中,货币字段作为小数存储,其小数位可以改变。小数位不存储在
数据库的字段中。每个货币字段对应一个货币码字段。在此事务中,您分配唯一的
小数位数给货币码。
样例: 如果您已设置货币 USD 为两个小数位并过帐 100 USD 的金额,10000 USD
的数额存储在数据库的货币字段中。除非此数量被进一步处理或输出,系统将使用
参考字段的货币码通过此表来决定小数位数。用这种方法,表的容量梢员徽返
解释,以进行进一步的处理或格式化带标点的输出。
如果在过帐后更改 USD 的小数位数,例如,改为 3,现有字段内容 10000 将在进
一步处理或输出时被解释为 10 USD (10.000)。这使系统中表的容量对于所有包含
USD 数量的货币字段,被错误解释为原来的 10%。您必须转换系统中所有包含货
币字段的表以保持数据完整性。但是,这样不能在生产系统中同时用于组织原因和
运行时方面。
如果在生产系统中进行更改或并将其传输到生产系统中,TCURX 表的以下更改可能
导致数据完整性的损失:
o 对现有货币的小数位进行更改
o 从 TCURX 表中删除条目 (相应地将小数位更改为两位小数的标准值)
o 在 TCURX 中插入条目(相应地将两位小数标准值改为另一个值),此条目是现有的
货币代码
在定制新的安装,甚至插入 TCURX 的操作期间,可以对此表进行任意的修改,
如果货币代码已使用事务 0Y03 输入到 TCURC 表中,表示对这些货币代码尚未过
帐。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              

可用如下代码,检查输入值是否正确(比如小数位数是否过多等)

 1 FORM test_check_decimal.
 2 
 3   DATA: lv_input  TYPE dmbtr VALUE '1.23',
 4         lv_output TYPE dmbtr.
 5   DATA: lv_reference_value TYPE waers VALUE 'JPY'.
 6 
 7   DATA: ls_attribute_info TYPE wdr_context_attribute_info.
 8   ls_attribute_info-rtti ?= cl_abap_typedescr=>describe_by_data( lv_input ).
 9   TRY.
10       cl_wdr_conversion_utils=>from_string( EXPORTING in              = |{ lv_input }|
11                                                       num_decimals    = 0
12                                                       attribute_info  = ls_attribute_info
13                                                       reference_type  = 'c'
14                                                       reference_value = lv_reference_value
15                                             CHANGING data = lv_output ).
16     CATCH cx_wdr_conversion_exception INTO DATA(lcx_exception).
17       DATA(lv_message) = lcx_exception->get_text( ).
18 *      lcx_exception->maxdigits
19   ENDTRY.
20 
21 ENDFORM.

 

标签:info,conversion,USD,string,attribute,lv,wdr,货币,小数位
From: https://www.cnblogs.com/keyuming/p/17630554.html

相关文章

  • 如何向这个public static void main(String[] args)中的args数组传递参数呢
    如何向这个publicstaticvoidmain(String[]args)中的args数组传递参数呢要向publicstaticvoidmain(String[]args)中的args数组传递参数,可以在命令行中运行Java程序时附加参数。以下是两种常见的方法:在命令行中手动输入参数:我们首先要进入这个类所在的文件夹在......
  • String、StringBuilder、StringBuffer
    String、StringBuilder和StringBuffer是Java中用于处理字符串的类,它们之间有以下区别:不可变性:String类是不可变的,即创建后不能被修改。每次对String进行操作时,都会创建一个新的String对象。而StringBuilder和StringBuffer是可变的,可以进行修改和拼接操作。线程安全性:String......
  • c++ std::to_string实现原理
    写这篇的起因是看到MSVCSTL的一个issue,里面提到to_string<int>的实现,正常人的思维是直接除10拿到每位,其实有个更高效的查表法字符串转数字除100拿到两位,并查表填入,少了一半的除法,代价是需要一个201个byte的空间,下面是gcc的实现//Writeanunsignedintegervaluetother......
  • How to use Javascript JSON.stringify similar method in Python All In One
    HowtouseJavascriptJSON.stringifysimilarmethodinPythonAllInOne如何在Python中使用类似JavaScriptJSON.stringify的方法应用场景比较两个数组(列表)对象是否相等/comparestwoarray(list)objectsforequality//jsarr1=[1,2,3]arr2=[1,2,3]......
  • SAP CDS view 里的 currency_conversion 功能介绍
    SAPABAPCDSView的currency_conversion函数是一种用于在CDS(CoreDataServices)视图中执行货币转换的功能。在SAP系统中,经常需要在不同货币之间进行转换,以便在报表和分析中展示一致的货币金额。currency_conversion函数允许在CDS视图中定义货币转换规则,以便在查询结果中将数值......
  • HDU7326 string magic(Easy Version)
    HDU7326stringmagic(EasyVersion)tag:回文自动机题目链接题意:多组样例,每组输入一字符串(长度1e5以内),输出满足下列条件的子串个数:该串由两个完全相同的回文串拼接而成做法:字符串的题目一般都比较板,洛谷的P4287可以说是这道题目的原题,我们先看看原题是怎么做的P4287双......
  • java.lang.NoSuchMethodError: com.baomidou.mybatisplus.core.toolkit.StringUtils.i
    1、原因这是由于两个版本不一致导致的;<!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version&......
  • Java中的String方法详解
    (String方法)先进行专栏介绍本专栏是自己学Java的旅途,纯手敲的代码,自己跟着黑马课程学习的,并加入一些自己的理解,对代码和笔记进行适当修改。希望能对大家能有所帮助,同时也是请大家对我进行监督,对我写的代码进行建议,互相学习。String详解Java中的String是一个不可变的字符序......
  • java字符串String类的常用方法
    java字符串String类的常用方法字符串的创建:(1)定义字符串直接赋值,在字符串池中开辟空间()Stringstr1=“Hello”;//在字符串池中写入字符串"hello"Stringstr2=“Hello”;//直接引用字符串池中的"Hello"System.out.println(str1==str2);//地址相同,输出:true(2)使用new关键字调用字......
  • string reversal
    stringreservalpythondefreverse_string(s):returns[::-1]print(reverse_string("Hello,World!"))#Output:"!dlroW,olleH"print(reverse_string("Pythonisawesome"))#Output:"emosewasinohtyP"shell#!......