SAP 交货单行项目含税金额计算报cx_sy_zerodivide处理

业务背景:SAP交货单只有数量,没有金额,所以开发报表从订单的价格按数量计算交货单的金额。
用户反馈近期报表出现异常:
在这里插入图片描述

****2012/12/12 清风雅雨 规格变更 Chg 修改开始
** 修改原因:由于余数为0时,可能会报错溢出。所以增加检查。
*          wa_alv-ttlwrx = ( wa_alv-lfimgr * wa_konv_pr01-kbetr / wa_konv_pr01-kpein +
*                  wa_alv-lfimgr * wa_konv_zr01-kbetr / wa_konv_zr01-kpein +
*                  wa_alv-lfimgr * wa_konv_pbxx-kbetr / wa_konv_pbxx-kpein +
*                  wa_alv-lfimgr * wa_konv_pb00-kbetr / wa_konv_pb00-kpein ) * ( 1 + p1 ) -
*                  wa_alv-lfimgr * wa_konv_zk01-kbetr / wa_konv_zk01-kpein +
*                  + wa_alv-lfimgr * wa_konv_zk03-kbetr / wa_konv_zk03-kpein.TRY.wa_alv-ttlwrx = ( wa_alv-lfimgr * wa_konv_pr01-kbetr / wa_konv_pr01-kpein +wa_alv-lfimgr * wa_konv_zr01-kbetr / wa_konv_zr01-kpein +wa_alv-lfimgr * wa_konv_pbxx-kbetr / wa_konv_pbxx-kpein +wa_alv-lfimgr * wa_konv_pb00-kbetr / wa_konv_pb00-kpein ) * ( 1 + p1 ) -wa_alv-lfimgr * wa_konv_zk01-kbetr / wa_konv_zk01-kpein ++ wa_alv-lfimgr * wa_konv_zk03-kbetr / wa_konv_zk03-kpein.CATCH cx_sy_zerodivide.IF p_jk <> 'X'.MESSAGE s000 WITH '交货单' wa_alv-vbeln '被0除请检查定价数量'.ENDIF.wa_alv-ttlwrx = 0.ENDTRY.
****2012/12/12 清风雅雨  规格变更 Chg 修改结束

当年年少不成熟,前台报cx_sy_zerodivide错误,就采用把异常CATCH后直接前台显示,并把值赋为0,而现在用户需要知道准确的值 ,时隔13年,再一次调查:
在这里插入图片描述
由于ZK01折让价格 没有价格单位,验证一下:

REPORT  ztmp_test2.
DATA wa_konv_zk01 TYPE konv.
DATA l_kbetr TYPE konv-kbetr.
wa_konv_zk01-kbetr = 0.
wa_konv_zk01-kpein = 0.
l_kbetr = wa_konv_zk01-kbetr / wa_konv_zk01-kpein.
WRITE : l_kbetr.

输出0

REPORT  ztmp_test2.
DATA wa_konv_zk01 TYPE konv.
DATA l_kbetr TYPE konv-kbetr.
wa_konv_zk01-kbetr = 1.
wa_konv_zk01-kpein = 0.
l_kbetr = wa_konv_zk01-kbetr / wa_konv_zk01-kpein.
WRITE : l_kbetr.

报cx_sy_zerodivide
在这里插入图片描述
总结:

1、0/0 = 0
2、有值/0 报cx_sy_zerodivide

问题找到了怎么解决?

检查KONV ZK01类型,13年才有38条记录。所以问题一直没有爆露。

解决方案:
针对没有价格单位kpein的计算逻辑:
交货单XXX金额= 交货单数量/订单数量 x 订单条件金额
而有价格单位的计算逻辑:
交货单XXX金额= 交货单数量 x 订单条件金额/订单条件价格单位

IF wa_konv_zk01-kpein NE 0.zk01tmp = wa_alv-lfimgr * wa_konv_zk01-kbetr / wa_konv_zk01-kpein.
ELSE.zk01tmp = wa_alv-lfimgr / wa_alv-kwmeng * wa_konv_zk01-kbetr
ENDIF.

比如本例:
如果交货5万则5/540000=40000
如果交货2万则2/5
40000=16000

同样的算法取其他5个定价条件:

	pr01tmp,zr01tmp,pbxxtmp,pb00tmp,zk03tmp.

这样可以取到6个正确的定价条件的值,再进行交货单行项目含税金额的计算

  wa_alv-ttlwrx = ( pr01tmp + zr01tmp + pbxxtmp + pb00tmp ) * ( 1 + p1 ) -zk01tmp + zk03tmp.

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

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

相关文章

【高数上册笔记01】:从集合映射到区间函数

【参考资料】 同济大学《高等数学》教材樊顺厚老师B站《高等数学精讲》系列课程 &#xff08;注&#xff1a;本笔记为个人数学复习资料&#xff0c;旨在通过系统化整理替代厚重教材&#xff0c;便于随时查阅与巩固知识要点&#xff09; 仅用于个人数学复习&#xff0c;因为课…

每日算法刷题 Day3 5.11:leetcode数组2道题,用时1h(有点慢)

5.LC 零矩阵(中等) 面试题 01.08. 零矩阵 - 力扣&#xff08;LeetCode&#xff09; 思想: 法一: 利用两个集合分别储存要清0的行和列索引 另外两种原地优化空间的做法暂时不是目前刷题目标&#xff0c;故不考虑 代码 c: class Solution { public:void setZeroes(vector&l…

【小记】excel vlookup一对多匹配

一个学生报四门课&#xff0c;输出每个学生课程 应用概述操作预处理数据计数指令 COUNTIFS进行一对多匹配 vlookup 应用概述 应用场景&#xff1a;学生报名考试&#xff0c;需要整理成指定格式&#xff0c;发给考试院。 一个学生最多报考四门 格式实例&#xff1a;准考证号 …

《从零构建大模型》PDF下载(中文版、英文版)

内容简介 本书是关于如何从零开始构建大模型的指南&#xff0c;由畅销书作家塞巴斯蒂安• 拉施卡撰写&#xff0c;通过清晰的文字、图表和实例&#xff0c;逐步指导读者创建自己的大模型。在本书中&#xff0c;读者将学习如何规划和编写大模型的各个组成部分、为大模型训练准备…

基于 Ubuntu 24.04 部署 WebDAV

1. 简介 WebDAV&#xff08;Web Distributed Authoring and Versioning&#xff09;是一种基于 HTTP 的协议&#xff0c; 允许用户通过网络直接编辑和管理服务器上的文件。 本教程介绍如何在 Ubuntu 24.04 上使用 Apache2 搭建 WebDAV 服务&#xff0c;无需域名&#xff0c;…

node.js 实战——在express 中将input file 美化,并完成裁剪、上传进度条

美化上传按钮 在ejs 页面 <!DOCTYPE html> <html> <head><meta charset"utf-8"></meta><title><% title %></title><link relstylesheet href/stylesheets/form.css/><!-- 本地 Bootstrap 引入方式 -->…

MySQL为什么选择B+树

1.hash表&#xff1a;不支持范围查询 2.跳表&#xff1a;索引层增加太快&#xff0c;IO成本增加太快 3.二叉树、AVL树、红黑树&#xff1a;树高度增加太快&#xff0c;IO成本增加太快 4.B树&#xff1a;树高增加太快&#xff1b;范围查询只能走中序遍历&#xff0c;IO成本很…

go程序编译成动态库,使用c进行调用

以下是使用 Go 语言打包成 .so 库并使用 C 语言调用的完整步骤&#xff1a; 1. Go 语言打包成 .so 库 &#xff08;1&#xff09;编写 Go 代码 创建一个 Go 文件&#xff08;如 calculator.go&#xff09;&#xff0c;并定义需要导出的函数。导出的函数名必须以大写字母开头…

YOLO-World:基于YOLOv8的开放词汇目标检测

文章目录 前言1、出发点2、方法2.1.TextEncoder2.2.ReparmVLPAN2.3.输出头 3、实验3.1.数据集3.2.LVIS测试集 总结 前言 本文介绍一篇来自腾讯的开放词汇检测工作&#xff0c;发表自CVPR2024&#xff0c;论文链接&#xff0c;开源地址。 1、出发点 GroundingDINO在开放词汇检测…

华为网路设备学习-21 IGP路由专题-路由过滤(filter-policy)

一、路由过滤&#xff08;filter-policy&#xff09; 1、用于控制路由更新、接收的一个工具 2、只能过滤路由信息&#xff0c;无法过滤LSA 二、路由过滤&#xff08;filter-policy&#xff09;与动态路由协议 1、距离矢量路由协议 RIP动态路由协议 交换的是路由表&#xff0…

美化IDEA注释:Idea 中快捷键 Ctrl + / 自动注释的缩进(避免添加注释自动到行首)以及 Ctrl + Alt + l 全局格式化代码的注释缩进

打开 Settings 界面&#xff0c;依次选择 Editor -> Code Style -> Java&#xff0c;选择 Code Generation&#xff0c; 取消 Line comment at first column 和 Block comment at first column 的勾选即可&#xff0c; 1、Line comment at first column (行注释在第一列…

服务器数据恢复—硬盘坏道导致EqualLogic存储不可用的数据恢复

服务器存储数据恢复环境&故障&#xff1a; 一台EqualLogic某型号存储中有一组由16块SAS硬盘组建的RAID5阵列。上层采用VMFS文件系统&#xff0c;存放虚拟机文件&#xff0c;上层一共分了4个卷。 磁盘故障导致存储不可用&#xff0c;且设备已经过保。 服务器存储数据恢复过程…

openharmony系统移植之gpu mesa3d适配

openharmony系统移植之gpu mesa3d适配 文章目录 openharmony系统移植之gpu mesa3d适配1. 环境说明2. gpu内核panfrost驱动2.1 使能panfrost驱动2.2 panfrost dts配置 3. buildroot下测试gpu驱动3.1 buildroot配置编译 4. ohos下mesa3d适配4.1 ohos下mesa3d编译调试4.1.2 编译4.…

Kafka生产者send方法详解

Kafka生产者send方法详解 1. send方法的工作原理 1.1 基本流程 #mermaid-svg-EXvKiyf8oSlenrxK {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-EXvKiyf8oSlenrxK .error-icon{fill:#552222;}#mermaid-svg-EXvKiyf…

【sdkman】sdk命令使用简介

SDKMAN! 使用指南 SDKMAN! 是一个用于管理多个软件开发工具包版本的命令行工具。 基本命令 安装 SDK # 安装最新稳定版 sdk install java# 安装特定版本 sdk install scala 3.4.2# 安装本地版本 sdk install groovy 3.0.0-SNAPSHOT /path/to/groovy-3.0.0-SNAPSHOT sdk ins…

开源字体设计工具字玩 FontPlayer

开源字体设计工具字玩 FontPlayer 内测版 v0.2.0 于 2025 年 5 月 9 日发布 基础功能&#xff1a;用户可以使用该工具绘制字体并导出 otf 字体文件&#xff0c;设计属于自己的字库。脚本功能&#xff1a;提供了脚本功能&#xff0c;用户可以用程序的方式绘制字形组件&#xff0…

快速入门深度学习系列(3)----神经网络

本文只针对图进行解释重要内容 这就是入门所需要掌握的大部分内容 对于不懂的名词或概念 你可以及时去查 对于层数 标在上面 对于该层的第几个元素 标在下面 输入层算作第0层 对于第一层的w b 参数 维度如下w:4*3 b:4*1 这个叫做神经元 比如对于第一层的神经元 这里说的很…

【Python 算法零基础 2.模拟 ⑤ 基于栈和队列】

目录 基于栈 Ⅰ、1441. 用栈操作构建数组 算法与思路 ① 初始化操作序列 ② 遍历数字范围 ③ 判断并添加操作 ④ 提前结束循环 ⑤ 返回操作序列 基于队列 Ⅰ、1700. 无法吃午餐的学生数量 思路与算法 ① 统计学生对三明治的需求&#xff1a; ② 遍历三明治供应顺序&#xff1a;…

管家婆实用贴-如何在Excel中清除空格

我们在使用管家婆软件时&#xff0c;经常会用到Excel表格导入导出数据&#xff0c;在使用Excel整理数据时&#xff0c;数据中的空格可能会导致计算和分析出现问题。无论是多余的前导空格、尾部空格还是单元格中的不必要空格&#xff0c;清除它们都是确保数据准确性的关键。今天…

uniapp-商城-53-后台 商家信息(更新修改和深浅copy)

1、概述 文章主要讨论了在数据库管理中如何处理用户上传和修改商家信息的问题&#xff0c;特别是通过深浅拷贝技术来确保数据更新的准确性和安全性。 首先&#xff0c;解释了深拷贝和浅拷贝的区别&#xff1a;浅拷贝使得两个变量共享相同的内存地址&#xff0c;而深拷贝则创建新…