ABAP+記錄一個BDC的BUG修改過程

問題背景:

業務顧問反饋在使用BDC 進行MEQ1進行供應商配額時,由于以前錄屏時用例只有3行數據,導致現在有5行數據的時候,代碼仍然只獲取了3行數據進行錄入,現在需要更改代碼,使其按照實際情況自動調整行數。

解決記錄:

首先根據業務顧問提供的出錯的案例,進行問題復刻,將CALL事務代碼的時候,模式的值IM_MODE調整為A,就可以將屏幕一步一步點開進行調試。

下面是調試的界面

數據填充結束的時候,我們可以看到下面這里本應該有5條,但是現在只有3條,那應該就是這里的問題,一般情況下,像這種填充表格的時候數據被重復覆蓋,大概率是表格的行數在賦值時重復了,這時候一般可以直接從BDCDATA入手。

在調試時看一下BDCDATA的數據,這里我導出來了,放一個截圖,從下圖可以看到,這個數字02出現了很多次,應該是它的問題,我們將其依次在debug的時候改成02、03、04、05,再進行調試。

調試結果如下,發現數據從3條成功變成了5條,那么數據就可以這樣修改:

下面放一個賦值的思維,這樣填寫就可以根據數據行數進行行數累加了:

這樣就修改完了。

后續思考:

其實這是一個比較偷懶的改法,一點都沒有動腦,直接改變了原有的邏輯。因為我在看代碼的時候,發現上一個開發者在02旁邊寫了一句話“兩條以上的記錄,點擊新增,在第二行里錄入信息”,其實是表明他是考慮到多行輸入數據的情況的,只是出了差錯,每次新填的數據將原有的第2行進行覆蓋了。這是因為在BDC錄屏時,如果上下拉動進度條或者滑動鼠標滾輪,都是需要記錄的,但是滑動鼠標滾輪時不生成記錄代碼,必須改為上下拉動進度條。這里少了拉動進度條的代碼,所以每個02都會覆蓋原有的數據,如果加上拉動進度條的代碼,就可以保證每個02都是新增,因為我不擅長添加拉動進度條的代碼,所以,我老老實實添加的代表數字的代碼。

好吧,最后的最后,我還是又按照原來開發的意思修改了代碼,在代碼原有的基礎上更改了代碼,加上了拉動進度條的代碼BDC_OKCODE = NL,就是拉動進度條的意思,原有代碼的BDC_OKCODE是/00,是回車的意思,現在修改成=NL,就可以了。業務顧問測試后也是可以的,可惡,我寫了這么多代碼,那就還是把以前的代碼放進來做個紀念吧

? ? ?以前的代碼:

???ELSE.?"?兩條以上的記錄,點擊新增,在第二行里錄入信息
*??????????CHANGE?BY?GYX?D20250630,兩條以上數據按照編號依次新增?START-------
**??????????PERFORM?BDC_DYNPRO??????USING?'SAPDM06Q'?'0215'.
**??????????PERFORM?BDC_FIELD???????USING?'BDC_CURSOR'
**????????????????????????????????????????'EQUP-QUOTE(02)'.
**??????????PERFORM?BDC_FIELD???????USING?'BDC_OKCODE'
**????????????????????????????????????????'/00'.
**??????????PERFORM?BDC_FIELD???????USING?'EQUP-BESKZ(02)'
**????????????????????????????????????????W_DATA-BESKZ.
**??????????PERFORM?BDC_FIELD???????USING?'RM06Q-SOBIN(02)'
**????????????????????????????????????????W_DATA-ESOBS.
**??????????PERFORM?BDC_FIELD???????USING?'EQUP-LIFNR(02)'
**????????????????????????????????????????W_DATA-LIFNR.
**??????????WRITE?W_DATA-QUOTE?TO?LC_QUOTE.
**??????????PERFORM?BDC_FIELD???????USING?'EQUP-QUOTE(02)'
**????????????????????????????????????????LC_QUOTE.
**
**??????????"最小批量尺寸
**??????????WRITE?W_DATA-MINLS?TO?L_STR.
**??????????PERFORM?BDC_FIELD???????USING?'EQUP-MINLS(02)'
**????????????????????????????????????????L_STR.PERFORM?BDC_DYNPRO??????USING?'SAPDM06Q'?'0215'.DATA(GV_FIELD)?=??'EQUP-QUOTE('?&&?LV_NUM?&&?')'.PERFORM?BDC_FIELD???????USING?'BDC_CURSOR'GV_FIELD."'EQUP-QUOTE(02)'.PERFORM?BDC_FIELD???????USING?'BDC_OKCODE''/00'.GV_FIELD?=??'EQUP-BESKZ('?&&?LV_NUM?&&?')'.PERFORM?BDC_FIELD???????USING???GV_FIELD"'EQUP-BESKZ(02)'W_DATA-BESKZ.GV_FIELD?=??'RM06Q-SOBIN('?&&?LV_NUM?&&?')'.PERFORM?BDC_FIELD???????USING?GV_FIELD"'RM06Q-SOBIN(02)'W_DATA-ESOBS.GV_FIELD?=??'EQUP-LIFNR('?&&?LV_NUM?&&?')'.PERFORM?BDC_FIELD???????USING?GV_FIELD"'EQUP-LIFNR(02)'W_DATA-LIFNR.WRITE?W_DATA-QUOTE?TO?LC_QUOTE.GV_FIELD?=??'EQUP-QUOTE('?&&?LV_NUM?&&?')'.PERFORM?BDC_FIELD???????USING?GV_FIELD"'EQUP-QUOTE(02)'LC_QUOTE."最小批量尺寸WRITE?W_DATA-MINLS?TO?L_STR.GV_FIELD?=??'EQUP-MINLS('?&&?LV_NUM?&&?')'.PERFORM?BDC_FIELD???????USING?GV_FIELD"'EQUP-MINLS(02)'L_STR.*??????????CHANGE?BY?GYX?D20250630,兩條以上數據按照編號依次新增?END------

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/87210.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/87210.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/87210.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

github上傳代碼步驟(http)

github上傳步驟(http) 之前github上傳不了代碼,總是報錯。后面發現自己用的ssh上傳需要秘鑰,現在我介紹一個最簡單的http上傳方法(雖然沒有ssh安全。。。但簡單嘛~),現在我做個例子&#xff0c…

深入理解Nginx-以實際http通信例子改造帶ssl配Nginx的實戰-優雅草卓伊凡|麻子

深入理解Nginx-以實際http通信例子改造帶ssl配Nginx的實戰-優雅草卓伊凡|麻子 SSL/TLS在Nginx中的底層實現原理 Nginx的SSL模塊架構 Nginx通過ngx_http_ssl_module模塊實現SSL/TLS功能,該模塊基于OpenSSL庫構建。根據Nginx官方文檔,SSL模塊在Nginx架構…

AT6558R-5N32介紹

作為單芯片SOC方案,AT6558R在片上整合了射頻前端、數字基帶處理器與32位RISC CPU,并具備電源管理能力。該芯片兼容北斗、GPS、GLONASS三大衛星導航系統,可實現多模協同定位?。 主要特征 支持 BDS/GPS/GLONASS 多系統聯合定位 和單系統獨立定…

“對象創建”模式之原型模式

目錄 Prototype 原型模式動機 Motivation引例模式定義結構 Structure要點總結 Prototype 原型模式 動機 Motivation 在軟件系統中,經常面臨著“某些結構復雜的對象”的創建工作;由于需求的變化,這些對象經常面臨著劇烈的變化,但…

Tomcat服務概述

前言: 作為Apache軟件基金會Jakarta項目的核心成果,Tomcat憑借其輕量級、開源免費的特性,已成為Java Web應用服務的行業基準。它實現了完整的Servlet與JSP規范,通過模塊化架構(Connector請求處理層與Container業務邏輯…

HarmonyOS應用開發高級認證知識點梳理 (一) 布局與樣式

以下是 HarmonyOS 應用開發中 ?布局與樣式? 的核心知識點梳理(針對高級認證備考),結合官方文檔與高頻考點: 一、布局系統核心知識點 布局容器類型? 線性布局?:Column(縱向)、Row&#xf…

【Ragflow】30.離線環境遷移方案

前言 之前的 Ragflow-Plus 在服務器上穩定運行一段時間后,接到任務,要把服務遷移到一臺古老的,離線的windows臺式機上。 起初認為,下載離線安裝包,加載離線鏡像,遷移下數據就可以了。 結果坑多得意想不到…

nrf52840藍牙學習(定時器的應用)

和其他 MCU 處理器一樣,在 nrf52840 中定時器的功能是十分強大的。其內部包含了 5 個定時 器 TIMER 模塊 :TIMER0 、 TIMER1 、 TIMER2 、 TIMER3 、 TIMER4 ,如下表 10.1 所示。 1. 時鐘源 首先定時器 TIMER 工作在高頻時鐘源&#xff08…

【Bluedroid】藍牙啟動之BTM_reset_complete源碼解析

當藍牙控制器完成硬件重置后,協議棧需通過一系列初始化操作恢復各模塊狀態。本文深入分析BTM_reset_complete核心函數及其調用鏈,詳解 L2CAP 連接清理、安全模塊重置、掃描參數恢復、BLE 隱私功能初始化等關鍵流程,揭示藍牙設備在重置后如何通過標準化狀態恢復確保互操作性、…

containerd 項目主要目錄簡要說明

containerd 項目結構清晰,核心代碼分布在若干主目錄下。以下是 client、cmd、core、internal、pkg、plugins 這六個主要包/目錄的簡要作用說明: 1. client 作用:封裝與 containerd 守護進程通信的 Go 客戶端 API,主要基于 gRPC。…

有線轉無線工具,輕松創建WiFi熱點

軟件介紹 今天為大家推薦一款實用的無線網絡共享工具——MyPublicWiFi。這款軟件能夠將電腦的有線網絡轉換為無線WiFi,方便其他設備連接使用。 安裝與設置 該軟件為安裝版程序,安裝完成后會自動識別當前電腦的IP地址。用戶可在軟件界面中自定義設…

Linux下,通過標準I2C驅動讀取Sensor ID

sensor型號&#xff1a;OS04L10&#xff0c;sensor引腳以及時鐘要先配置好&#xff0c;源碼如下&#xff1a; #include <fcntl.h> #include <linux/i2c-dev.h> #include <linux/i2c.h> #include <stdint.h> #include <stdio.h> #include <sy…

人工智能基石:SVM支持向量機全解析(附Python實戰)

大家好&#xff01;今天我們來深入探討支持向量機&#xff08;Support Vector Machine, SVM&#xff09;——這個在??圖像識別、文本分類??等領域廣泛應用的強大算法。既能處理分類問題&#xff0c;又能解決回歸任務&#xff0c;甚至在非線性數據面前也能游刃有余。本文將帶…

mysql查看數據庫

在 MySQL 中查看當前數據庫的創建語句&#xff0c;使用 SHOW CREATE DATABASE 命令&#xff0c;以下是詳細操作指南&#xff1a; 1. 查看當前數據庫的創建語句 SHOW CREATE DATABASE database_name; 替換 database_name 為你的數據庫名使用反引號 包裹特殊名稱或保留字 2.…

ArrayList剖析

大家天天在用List&#xff0c;ArrayList一般來講應該是程序員用的最多的集合類了。 我們今天研究一下ArrayList。 總體來講&#xff0c;從底層數據結構或者源碼的角度看&#xff0c;List比Map或者Set要簡單。 底層數據結構 ArryList其實就是可變長數組。 初始化的時候&…

回顧JAVA中的鎖機制

Java中的鎖機制 在Java中&#xff0c;鎖機制是多線程編程里保障數據一致性與線程安全的關鍵技術。 1. 內置鎖&#xff1a;synchronized關鍵字 synchronized是Java的內置鎖機制&#xff0c;能夠保證在同一時刻&#xff0c;只有一個線程可以執行被其修飾的代碼塊或方法。 用法…

YOLOv11: AN OVERVIEW OF THE KEY ARCHITECTURAL ENHANCEMENTS目標檢測論文精讀(逐段解析)

YOLOv11: AN OVERVIEW OF THE KEY ARCHITECTURAL ENHANCEMENTS目標檢測論文精讀&#xff08;逐段解析&#xff09; 論文地址&#xff1a;https://www.arxiv.org/abs/2410.17725 Rahima Khanam and Muhammad Hussain Ultralytics公司發布 CVPR 2024 論文寫的比較簡單&#xff…

【Erdas實驗教程】025:遙感圖像輻射增強(霧霾去除)

文章目錄 一、霧霾去除原理二、霧霾去除案例一、霧霾去除原理 遙感影像霧霾去除的核心原理是消除大氣散射對電磁波的干擾,恢復地物真實反射信息。Haze Reduction 工具的原理: 該工具基于暗目標法(Dark Object Subtraction, DOS),適用于去除因大氣散射(霧霾本質是大氣顆…

Language Models are Unsupervised Multitask Learners :語言模型是無監督的多任務學習者

摘要 自然語言處理任務&#xff0c;如問答、機器翻譯、閱讀理解和摘要&#xff0c;通常通過在特定任務的數據集上進行監督學習來解決。我們展示了語言模型在訓練于一個包含數百萬網頁的新數據集——WebText——時&#xff0c;可以無需任何顯式監督就開始學習這些任務。當模型以…

SQL語句全攻略:從基礎到進階的編程之旅

目錄 一、引言二、SQL 基礎語法2.1 SQL 語句寫法順序2.2 關聯查詢2.3 數據處理常用函數和運算符 三、數據庫和表的基本操作3.1 創建數據庫3.2 使用數據庫3.3 創建表 四、基礎增刪改查操作4.1 插入數據&#xff08;增&#xff09;4.2 查詢數據&#xff08;查&#xff09;4.3 更新…