首页 > 其他分享 >SAP CDS view 里的 currency_conversion 功能介绍

SAP CDS view 里的 currency_conversion 功能介绍

时间:2023-08-13 13:12:03浏览次数:86  
标签:conversion 视图 currency amount 货币 CDS

SAP ABAP CDS Viewcurrency_conversion函数是一种用于在CDS (Core Data Services)视图中执行货币转换的功能。在SAP系统中,经常需要在不同货币之间进行转换,以便在报表和分析中展示一致的货币金额。currency_conversion函数允许在CDS视图中定义货币转换规则,以便在查询结果中将数值从一个货币转换为另一个货币。这在多国家或多货币业务环境中非常有用。

currency_conversion函数的语法如下:

currency_conversion(
  amount       = source_amount,
  source_cur   = source_currency,
  target_cur   = target_currency,
  validitydate = date,
  factor       = factor_type,
  decimal      = rounding_mode
) as converted_amount

让我们详细说明这些参数的含义和功能:

  1. source_amount:需要进行货币转换的原始金额。它可以是CDS视图中的字段或常量值。

  2. source_currency:原始金额所使用的货币代码。它可以是CDS视图中的字段或常量值。

  3. target_currency:目标货币代码,即要将金额转换成的货币。它可以是CDS视图中的字段或常量值。

  4. validitydate:可选参数,用于指定转换汇率的有效日期。如果不提供此参数,系统将使用当前日期。

  5. factor_type:可选参数,用于指定使用哪种类型的汇率因子进行转换。例如,可以选择使用平均汇率、月末汇率、年度汇率等。如果不提供此参数,系统将使用默认的汇率类型。

  6. rounding_mode:可选参数,用于指定转换后金额的舍入方式。例如,可以指定四舍五入或截断。如果不提供此参数,系统将使用默认的舍入方式。

  7. converted_amount:作为结果,这个名称用于存储转换后的金额,它将成为CDS视图的一部分并在查询结果中返回。

现在,让我们通过一个例子来说明currency_conversion函数的用法和效果。假设我们有一个SAP系统,其中包含一个名为SalesOrder的CDS视图,用于显示销售订单的信息,包括订单金额和订单货币。我们希望将订单金额从订单货币转换为本地货币,以便在本地货币中查看订单金额。

假设我们有以下数据:

订单号 订单金额 订单货币
1001 1000 USD
1002 1500 EUR
1003 2000 GBP

我们想要将这些订单金额转换为本地货币(假设本地货币为CNY),并假设转换汇率为1 USD = 6.5 CNY,1 EUR = 7.8 CNY,1 GBP = 8.5 CNY。

首先,在CDS视图中使用currency_conversion函数进行货币转换,我们可以这样定义视图:

@AbapCatalog.sqlViewName: 'ZSALESORDER'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Sales Order View'
define view ZSalesOrder as select from sflights as flights {
  key flights.carrid,
  key flights.connid,
  flights.fldate,
  currency_conversion(
    amount = flights.price,
    source_cur = flights.currency,
    target_cur = 'CNY',
    validitydate = flights.fldate
  ) as local_amount
} where flights.price is not null;

在上面的CDS视图中,我们使用currency_conversion函数将flights表中的price字段(订单金额)从currency字段(订单货币)转换为本地货币CNY,并将结果存储在名为local_amount的新字段中。

现在,当我们查询这个CDS视图时:

select carrid, connid, fldate, price, currency, local_amount
from ZSalesOrder;

查询结果将如下所示:

carrid connid fldate price currency local_amount
AA 0017 2023-01-12 1000 USD 6500
LH 0400 2023-02-28 1500 EUR 11700
BA 0080 2023-03-15 2000 GBP 17000

在查询结果中,local_amount字段显示了订单金额在本地货币(CNY)中的值,使用了相应的汇率进行转换。例如,第一行的订单金额从USD转换为CNY,结果为6500 CNY。

总结

SAP ABAP CDS Viewcurrency_conversion函数是一种强大的货币转换工具,它允许在CDS视图中定义灵活的货币转换规则,确保在多货币环境中准确地展示数据。通过合理使用currency_conversion函数,企业可以更好地管理多国家业务并在报表和分析中得到一致的货币金额。

标签:conversion,视图,currency,amount,货币,CDS
From: https://www.cnblogs.com/sap-jerry/p/17626436.html

相关文章

  • 【刷题笔记】6. ZigZag Conversion
    题目Thestring "PAYPALISHIRING" iswritteninazigzagpatternonagivennumberofrowslikethis:(youmaywanttodisplaythispatterninafixedfontforbetterlegibility)PAHNAPLSIIGYIRAndthenreadlinebyline: &q......
  • CDS view 之于 SAP S/4HANA 的重要意义
    在SAPS/4HANA产品开发中,SAPCDS(CoreDataServices)View是一项关键技术,具有重要的作用。CDSView允许开发者定义高度优化的数据库视图,用于数据建模、查询和分析。它为开发人员提供了一种强大而灵活的工具,可以轻松地构建复杂的数据模型和业务逻辑,同时提高查询性能和数据处理效率。......
  • 语音合成技术2:FREEVC: TOWARDS HIGH-QUALITY TEXT-FREE ONE-SHOT VOICE CONVERSION
     摘要语音转换(VC)可以通过首先提取源内容信息和目标说话者信息,然后利用这些信息重构波形来实现。然而,目前的方法通常要么提取带有泄漏说话者信息的不完整内容信息,要么需要大量带标注的数据进行训练。此外,由于转换模型与声码器之间的不匹配,重构波形的质量可能会下降。在本文中,我......
  • SAP CDS view 定义的数据库视图和传统 SQL 语句定义视图的区别
    SAPCDS(CoreDataServices)是SAPHANA数据模型开发的一种技术。它提供了一种领域特定的语言,用于定义数据模型,以及对数据进行查询、转换和展示。与传统的SQL(StructuredQueryLanguage)相比,SAPCDSview语法具有许多独特的特点和优势。在本文中,我将详细比较SAPCDSview语......
  • SAP CDS View 和 SAP HANA View 的区别
    SAPCDS(CoreDataServices)视图和SAPHANA视图都是用于数据提取和模型化的工具。它们的主要区别在于创建位置、语法、性能优化等方面。具体的区别和联系如下:创建位置:SAPCDS视图是在ABAP层创建的,它们是ABAP字典的一部分。另一方面,SAPHANA视图是在数据库层创建的,它们存在于HANA......
  • salesforce 用input 实现currency功能
    最近项目是国内项目定制化要求比较高,所以我们没办法用salesforce提供标签编写代码,遇到了一个currency字段显示问题。下面是我的实现方法。第一个截图输入的是数字,当输入结束后变成金钱显示方式。欢迎沟通交流。  下面是代码CSSbody,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl......
  • CMU15-445 Project4 Concurrency Control心得
    一、概述过瘾!过瘾!过瘾!P4真过瘾!写P3的博客时我说过“感觉自己在数据库方面真正成长了”,但写完P4之后最大的感受就是,我终于理解了andy在第一课说过的“我只在乎两件事情,一个是我老婆,另一个是数据库。”从代码量、概念晦涩程度、思考深度等各方面综合考量,我认为P4是难于P......
  • 什么是 ABAP Domain 的 Conversion Routine
    ABAP(AdvancedBusinessApplicationProgramming)是一种高级业务应用编程语言,由德国软件公司SAPSE开发。ABAP用于开发和定制SAPERP系统。在SAPERP系统中,数据的组织和存储通过数据字典(DataDictionary)进行管理。数据字典中的一个重要组成部分是Domain。Domain是一个抽象层,用于定......
  • jmeter 解决线程组bzm-Concurrency Thread Group 安装的步骤
    1.首先 安装jmeter的插件,下载地址为放到lib/ext下,重启然后option下安装插件就Concurrency 就可以   ......
  • 如何处理 SAP Pricing - Document currency missing 的错误消息
    问题当添加一个物料主数据到Quotation行项目时,遇到如下错误消息:Pricing:Documentcurrencymissing查看这条消息的技术明细:发现是如下代码抛出的,因为字段waerk为空:将下图的currency字段维护之后,问题消失:更一般的思路错误消息"SAPPricing-Documentcurrencym......