SAP 外币金额汇率转换

一、说明
汇率维护在ERP中可以使用事务代码OB07或者OB08,每次不同币别的汇率更改在正式生产系统中都会新创建一条记录,保存之后会存储在表TCURR中,可以通过函数CONVERT_TO_LOCAL_CURRENCY转换获取(注意函数Exporting中各个参数一定不能用常量,要用变量),函数自动会把当前最近的时间的汇率作为转化的汇率。

这里需要注意有一些货币比较特殊,比如日元JPY,它是没有小数点的,系统内存储的和你查询看到的不同,这是因为有转换因子的缘故,存入表之前SAP会先将金额除以这个因子后再存入。可以调用如下函数进行相互转换:

BAPI_CURRENCY_CONV_TO_INTERNAL:转换成数据库中内部存储金额
BAPI_CURRENCY_CONV_TO_EXTERNAL:转换成外部实际金额
二、汇率维护
汇率分为直接汇率(Direct quotation)和间接汇率(Indirect quotation)两种。

直接汇率:1外币=XX本位币

间接汇率:XX外币=1本位币

比如,公司代码本位币为人民币,那么1USD=6.5CNY为直接汇率,0.15385USD=1人民币为间接汇率。中国采用直接标价法,即美元/人民币报价。

SAP 中对于金额和汇率字段的处理(一般是会计相关的:会计发票、销售发票、采购发票等)有点特殊,并不是说你在前台看到的数据是多少就在系统表中写多少。

金额:有些货币的金额因为有转换因子的存在,存入表之前 SAP 会先将金额除以转换因子再存入,这些金额在取出来的时候需要进行相应的转换。

BAPI_CURRENCY_CONV_TO_INTERNAL:转换成数据库中内部存储金额
BAPI_CURRENCY_CONV_TO_EXTERNAL:转换成外部实际金额
汇率:而有些汇率是会乘以一定的系数(一般也是100),所以我们在通过汇率计算的时候需要除以一个数。系统提供了函数来读取金额和汇率的转换值。汇率分为:直接汇率(1外币=XX本位币)、间接汇率(XX外币=1本位币) 。

汇率存放在表 TCURR 中,另外 TCUR* 有关于汇率的其他数据
维护汇率的事物码:OB07、OB08
汇率转换的函数都在 LSCUNUXX 程序中
处理场景
处理金额的时候需要乘以转换值:这个值可以通过CURRENCY_CONVERTING_FACTOR函数获得

处理汇率的时候需要除以转换值:这个值可以通过READ_EXCHANGE_RATE / BAPI_EXCHANGERATE_GETDETAIL获得

REPORT ZTEST_CURRENCY_CONV.
PARAMETER: P_FC TYPE TCURC-WAERS DEFAULT 'JPY',P_TC TYPE TCURC-WAERS DEFAULT 'CNY',P_DATE TYPE SY-DATUM DEFAULT SY-DATUM,P_CURR TYPE BAPICURR-BAPICURR,P_KURST TYPE TCURR-KURST DEFAULT 'M'.
DATA: G_AMOUNT TYPE BSEG-WRBTR,GV_INTER LIKE BSEG-WRBTR,GV_FROM TYPE CHAR20,GV_TO   TYPE CHAR20.
"实际金额转换"
CALL FUNCTION 'BAPI_CURRENCY_CONV_TO_INTERNAL'EXPORTINGcurrency             = P_FCamount_external      = P_CURRmax_number_of_digits = 13IMPORTINGamount_internal      = GV_INTER. 
"外币金额转换成本地金额"
CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'EXPORTINGdate             = P_DATEforeign_amount   = GV_INTERforeign_currency = P_FClocal_currency   = P_TCtype_of_rate     = P_KURSTIMPORTINGlocal_amount     = G_AMOUNTEXCEPTIONSno_rate_found    = 1OTHERS           = 2.
WRITE: / P_FC,'==》',P_TC.
WRITE: / P_CURR,'==》',G_AMOUNT.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/28724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营DAY38| 理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

理论基础 动态规划的解题步骤 确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 509. 斐波那契数 题目链接:509. 斐波那契数 class Solution(object):def fib(self, n):""":t…

第二十章 迭代器模式

目录 1 迭代器模式介绍 2 迭代器模式原理 3 迭代器模式实现 4 迭代器模式应用实例 5 迭代器模式总结 1 迭代器模式介绍 迭代器模式(Iterator pattern)又叫游标(Cursor)模式,它的原始定义是:迭代器提供一种对容器对象中的各…

如何使用new和delete操作符进行动态内存分配和释放?

在C中,new 和 delete 操作符用于在堆(heap)上动态地分配和释放内存。这是管理内存的一种重要方式,特别是在需要创建可变数量或生命周期与程序执行流程不一致的对象时。 使用 new 进行动态内存分配 当你使用 new 操作符时&#x…

Redis 五种基本数据类型及场景

Spring Boot 与 Redis 的集成可以使用 Redis 提供的五种基本数据类型来解决不同的使用场景。以下是每种类型及其使用场景和示例代码。 1. String 使用场景:缓存简单的键值对,如计数器、字符串缓存等。 示例: Autowired private StringRed…

展出特种级水下机器人(博雅工道) —2024青岛军博会(智能装备与通信技术)

深蓝探索,智慧融合 —— 2024中国军民两用智能装备与通信技术产业展览会 在科技的浪潮中,我们迎来了一个全新的时代——智能装备与通信技术正重塑着我们的世界。2024年,中国将举办一场具有里程碑意义的科技盛会——"2024中国军民两用智…

下载mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar操作教程

1、下载地址:MySQL :: Download MySQL Community Server (Archived Versions) 2、截图如下

electron录制工具-视频保存、编辑页面

效果如下 electron录屏-保存录制视频 资源 导出视频使用了 mp4-wasm,基本使用,可参考 此文 想法 1、点击按钮导出,弹出选择保存文件夹 2、保存成功后,自动打开保存后文件夹窗口并关闭窗口 实现 获取保存文件夹路径&#xff0…

Python有哪些就业方向?就业市场广阔!

Python是一种跨平台的计算机程序设计语言,是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python语言在人工智能的发展下,越来越多计算机企业开始广泛使用,同时Python的就业方向也逐渐广阔。 YesPMP为学习Python的技术人员…

linux中acl策略+文件权限

文档归属的局限性 - 任何人只属于三种角色:属主 属组 其他人- 无法实现更精细的控制 acl访问策略 - 能够对个别用户个别组设置独立的权限- 大多数挂载ext3/4,xfs文件系统默认已支持 Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...setfacl [选项] u:用户名…

如何 用JavaSpringBoot生成二维码与条形码

前言 在当今的数字化转型浪潮中,二维码已经成为了一种不可或缺的信息交流手段。从产品标签到活动宣传单,再到电子支付,二维码的应用无处不在。本文将详细指导您如何在Spring Boot应用程序中集成ZXing库,以实现QR码的创建和解析功能…

ORA-10458 ORA-01152 :file 1 was not restored from a sufficiently old backup

问题 dg搭建后开库报错 SQL> alter database open; alter database open * ERROR at line 1: ORA-10458: standby database requires recovery ORA-01152: file 1 was not restored from a sufficiently old backup ORA-01110: data file 1: /u01/app/oracle/oradat…

部署大模型LLM

在autodl上部署大模型 windows运行太麻烦,环境是最大问题。 选择云上服务器【西北B区 / 514机】 cpp (c c plus plus) 纯 C/C 实现,无需外部依赖。针对使用 ARM NEON、Accelerate 和 Metal 框架的 Apple 芯片进行了优化。支持适用于 x86 架构的 AVX、…

基于文本和图片输入的3D数字人化身生成技术解析

随着虚拟现实、增强现实和元宇宙等技术的飞速发展,对高度逼真且具有表现力的3D数字人化身的需求日益增长。传统的3D数字人生成方法往往需要依赖大量的3D数据集,这不仅增加了数据收集和处理的成本,还限制了生成的多样性和灵活性。为了克服这些挑战,我们提出了一种基于文本提…

Elasticsearch出现Connection reset by peer

Elasticsearch出现Connection reset by peer分析 1.异常: 2024-06-13 13:17:10.539 WARN [http-nio-30411-exec-9]com.longdaotech.config.ESConfig -onFailure node:[hosthttp://192.168.239.253:9200] 2024/6/13 13:17:10 2024-06-13 13:17:10.541 WARN [http-n…

C#语言进阶(一)—委托 第二篇

总目录 C# 语法总目录 委托 第二篇 委托 第二篇4.实例对象方法、静态方法与委托之间的关系5. 委托类型参数为泛型6. System空间下的 Func 委托和 Action 委托 委托 第二篇 4.实例对象方法、静态方法与委托之间的关系 这里实例对象方法指的是 new 出来的一个对象,它…

结构设计模式 - 桥接设计模式 - JAVA

桥接设计模式 一. 介绍二. 桥接模式示例2.1 定义实现部分和具体实现2.2 定义抽象部分和细化抽象部分2.3 测试2.4 解释 三. 结论 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 一.…

Spring MVC详解(上)

一、Spring MVC初步认识 1.1介绍 Spring MVC是Spring Framework提供的Web组件,全称是Spring Web MVC,是目前主流的实现MVC设计模式的框架,提供前端路由映射、视图解析等功能 Java Web开发者必须要掌握的技术框架 1.2MVC是什么 MVC是一种软件架构思想…

Vue项目中实现骨架占位效果-demo

创建组件 Skeleton.vue <template><div class"skeleton"><div class"skeleton-item" v-for"n in count" :key"n"></div></div> </template><script> export default {props: {count: {ty…

Ruby语言建立Web服务器

这次选择的Web服务器是Nginx&#xff0c;Nginx非常适合处理静态资源&#xff0c;如图片、CSS和JS文件,通过减轻应用服务器的负担&#xff0c;Nginx使得Ruby on Rails应用能够更高效地运行. 安装启动Nginx服务器 sudo apt install nginx nginx -v 启动Nginx服务器&#xff1a;…

(3)图像识别yolov5—训练自定义模型

目录 1. 准备数据集 (1) 收集图像: (2) LabelImg标注图像: 2. 模型训练 3. 评估模型 4. 使用模型进行推理 5. 完整文件下载 YOLOv5 是一个用于目标检测的深度学习模型,它非常流行且易于使用。如果你想使用 YOLOv5 训练自定义的模型,以下是一个基本的步骤指南…