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.pswp.cn/bicheng/80639.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80639.shtml
英文地址,請注明出處:http://en.pswp.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;而深拷貝則創建新…