久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

SAP物料賬CKMLCP報(bào)RAISE_EXCEPTION異常定位與防御

SAP物料賬CKMLCP報(bào)RAISE_EXCEPTION異常定位與防御 1. 項(xiàng)目概述這不是一個(gè)“報(bào)錯(cuò)”而是一次標(biāo)準(zhǔn)物料賬運(yùn)行中的ABAP異常攔截你正在執(zhí)行SAP物料賬Material Ledger的月結(jié)關(guān)鍵步驟——運(yùn)行事務(wù)碼CKMLCP界面剛點(diǎn)下“執(zhí)行”系統(tǒng)彈出紅色消息框“RAISE_EXCEPTION”后面跟著一串模糊的短文本比如“Error in ML valuation run”或“Exception raised in valuation logic”。沒有堆棧、沒有函數(shù)模塊名、沒有短 dump 編號(hào)只有這行冷冰冰的提示。你立刻翻出《SAP物料賬操作手冊(cè)》里面沒寫這個(gè)查 OSS Note關(guān)鍵詞“RAISE_EXCEPTION CKMLCP”返回幾百條無關(guān)結(jié)果問同事對(duì)方只說“重啟一下再試”結(jié)果重試三次報(bào)錯(cuò)依舊。這不是偶發(fā)故障而是系統(tǒng)在告訴你某段ABAP代碼主動(dòng)拋出了未被捕獲的異常且這段代碼極大概率是你自己或顧問團(tuán)隊(duì)開發(fā)的增強(qiáng)邏輯。這個(gè)標(biāo)題里的“SAP-ML章第二節(jié)物料賬報(bào)錯(cuò)處理ABAP編程錯(cuò)誤RAISE_EXCEPTION”表面看是教程章節(jié)名實(shí)則精準(zhǔn)戳中了FICO/MM模塊ABAP開發(fā)者和資深FI顧問最常踩的深坑——把RAISE_EXCEPTION當(dāng)成調(diào)試開關(guān)卻忘了它在生產(chǎn)環(huán)境里就是一道沒有緩沖的急剎車。它不等于“系統(tǒng)崩潰”而更像一位嚴(yán)謹(jǐn)?shù)虉?zhí)的質(zhì)檢員在流水線末端突然攔下整條產(chǎn)線只因某顆螺絲的扭矩值超出了0.02?!っ?。背后牽涉的是SAP物料賬多幣種、多估值視圖、實(shí)時(shí)價(jià)格更新的復(fù)雜底層機(jī)制是CKMLCP主程序調(diào)用的數(shù)十個(gè)子例程如CL_ML_VALUATION、CL_ML_POSTING_HANDLER更是你寫的那段Z增強(qiáng)代碼里一個(gè)未加TRY-CATCH的RAISE EXCEPTION TYPE zcx_ml_val_error。熱搜詞里反復(fù)出現(xiàn)的“sap md07”“sap ko88 增強(qiáng)”“abap sort”“abap cm_fv_prod_vers_db_update”全都是這個(gè)異常爆發(fā)前后的典型伴生場(chǎng)景——MD07查不到物料主數(shù)據(jù)變動(dòng)、KO88過賬失敗、SORT排序?qū)е聝?nèi)表混亂、CM_FV_PROD_VERS_DB_UPDATE更新版本失敗……它們不是原因而是癥狀。真正要解決的是找到那個(gè)在CKMLCP執(zhí)行鏈路中被你親手埋下的、未被妥善處理的RAISE_EXCEPTION。這篇文章就是帶你從報(bào)錯(cuò)現(xiàn)場(chǎng)出發(fā)逆向拆解CKMLCP的ABAP調(diào)用棧定位增強(qiáng)點(diǎn)修復(fù)邏輯并建立一套可復(fù)用的物料賬異常防御體系。適合所有需要獨(dú)立處理CKMLCP報(bào)錯(cuò)的ABAP開發(fā)人員、FICO顧問、以及負(fù)責(zé)月結(jié)支持的系統(tǒng)管理員——只要你曾為那行“RAISE_EXCEPTION”熬夜到凌晨三點(diǎn)這篇就是為你寫的。2. 核心設(shè)計(jì)思路為什么RAISE_EXCEPTION會(huì)成為CKMLCP的“定時(shí)炸彈”2.1 RAISE_EXCEPTION的本質(zhì)不是錯(cuò)誤而是ABAP的“主動(dòng)熔斷機(jī)制”在ABAP世界里“錯(cuò)誤”Error和“異?!盓xception是兩個(gè)完全不同的概念。普通用戶看到的“輸入無效”“憑證已過期”屬于前者系統(tǒng)會(huì)通過MESSAGE語句拋出有明確類型E/A/W/I、可被屏幕捕獲、能觸發(fā)回滾。而RAISE_EXCEPTION是ABAP語言級(jí)的控制流指令它的作用不是報(bào)告問題而是強(qiáng)制中斷當(dāng)前調(diào)用棧將控制權(quán)直接交還給最近的CATCH塊或者——如果沒有CATCH——觸發(fā)短dumpSHORT DUMP。CKMLCP作為SAP標(biāo)準(zhǔn)物料賬過賬程序其主邏輯REPORT RKMLCP00內(nèi)部大量使用TRY-CATCH結(jié)構(gòu)來封裝關(guān)鍵操作例如TRY. CALL METHOD cl_ml_valuationdo_valuation EXPORTING iv_matnr lv_matnr iv_waers lv_waers IMPORTING ev_result lv_result. CATCH cx_ml_valuation_error INTO lx_error. 這里會(huì)捕獲標(biāo)準(zhǔn)異常類拋出的異常 MESSAGE lx_error-get_text( ) TYPE E. ENDTRY.這段代碼里cl_ml_valuationdo_valuation方法內(nèi)部如果遇到無法繼續(xù)的業(yè)務(wù)邏輯沖突比如某物料在指定期間內(nèi)存在未清采購訂單但價(jià)格未維護(hù)它會(huì)RAISE EXCEPTION TYPE cx_ml_valuation_error。這個(gè)異常被外層的CATCH捕獲轉(zhuǎn)化為用戶友好的MESSAGE程序繼續(xù)執(zhí)行下一個(gè)物料。但如果你在增強(qiáng)點(diǎn)比如EXIT_SAPLKMLC_001里寫了這樣的代碼IF lv_price IS INITIAL. RAISE EXCEPTION TYPE zcx_ml_custom_error. 沒有TRY-CATCH包裹 ENDIF.那么當(dāng)lv_price為空時(shí)RAISE_EXCEPTION會(huì)直接穿透CKMLCP的標(biāo)準(zhǔn)TRY-CATCH防護(hù)網(wǎng)因?yàn)闃?biāo)準(zhǔn)程序根本不知道你的zcx_ml_custom_error是什么。它找不到對(duì)應(yīng)的CATCH塊于是整個(gè)CKMLCP進(jìn)程被強(qiáng)制終止留下那個(gè)令人抓狂的“RAISE_EXCEPTION”紅字。這就是為什么它被稱為“定時(shí)炸彈”——代碼在開發(fā)系統(tǒng)測(cè)試時(shí)可能永遠(yuǎn)不觸發(fā)因?yàn)闇y(cè)試數(shù)據(jù)都完美一旦上線遇到真實(shí)業(yè)務(wù)數(shù)據(jù)中的邊界情況就立刻引爆。2.2 CKMLCP的增強(qiáng)架構(gòu)三個(gè)關(guān)鍵入口點(diǎn)與它們的“異常免疫力”差異CKMLCP的增強(qiáng)不是隨意插針SAP為其設(shè)計(jì)了三套官方接口每套的異常處理能力天差地別。理解它們是避免RAISE_EXCEPTION失控的第一步User Exit用戶出口這是最古老也最危險(xiǎn)的方式對(duì)應(yīng)函數(shù)模塊EXIT_SAPLKMLC_001到EXIT_SAPLKMLC_010。它們被硬編碼在CKMLCP主程序的特定位置例如在物料主數(shù)據(jù)讀取后、在價(jià)格計(jì)算前。User Exit的最大缺陷是它運(yùn)行在CKMLCP主程序的同一調(diào)用棧中且標(biāo)準(zhǔn)程序不會(huì)為它自動(dòng)添加TRY-CATCH。你在EXIT里寫的任何RAISE_EXCEPTION都會(huì)原封不動(dòng)地向上拋出。就像在高速公路上強(qiáng)行變道卻不打轉(zhuǎn)向燈必然引發(fā)事故。BAdIBusiness Add-InSAP推薦的方式對(duì)應(yīng)BAdIML_VALUATION。它通過接口方法如IF_EX_ML_VALUATION~CHANGE_VALUATION_DATA被CKMLCP動(dòng)態(tài)調(diào)用。BAdI的優(yōu)勢(shì)在于SAP標(biāo)準(zhǔn)代碼在調(diào)用BAdI實(shí)現(xiàn)時(shí)會(huì)主動(dòng)包裹一層TRY-CATCH。即使你的BAdI實(shí)現(xiàn)里寫了RAISE EXCEPTION標(biāo)準(zhǔn)程序也能捕獲并記錄日志然后跳過該物料或該步驟繼續(xù)處理下一個(gè)。它像一個(gè)帶保險(xiǎn)絲的插座過載時(shí)只燒保險(xiǎn)絲不燒整棟樓。Enhancement Spot增強(qiáng)點(diǎn)這是S/4HANA時(shí)代的新寵對(duì)應(yīng)增強(qiáng)點(diǎn)ES_SAPLMLCV。它允許你對(duì)CKMLCP的源代碼進(jìn)行“非侵入式”修改插入自己的代碼段。它的異常處理能力取決于你插入的位置。如果你插在標(biāo)準(zhǔn)TRY-CATCH塊內(nèi)部比如在CALL METHOD ...之后那么你的代碼自然受保護(hù)但如果你插在TRY塊之外或者覆蓋了原有的CATCH塊那風(fēng)險(xiǎn)就和User Exit一樣高。提示判斷你用的是哪種增強(qiáng)打開事務(wù)碼SE80輸入程序名RKMLCP00展開“Enhancement”節(jié)點(diǎn)。User Exit會(huì)顯示為“Function Modules”BAdI會(huì)顯示為“Business Add-Ins”Enhancement Spot會(huì)顯示為“Enhancement Spots”。優(yōu)先檢查BAdI實(shí)現(xiàn)其次看Enhancement Spot的插入位置最后才排查User Exit——這是最高效的故障定位路徑。2.3 物料賬ML的特殊性為什么它的異常比FI/CO更難纏物料賬不是簡(jiǎn)單的財(cái)務(wù)過賬它是一個(gè)實(shí)時(shí)、多維度、強(qiáng)一致性的價(jià)值核算引擎。它的核心挑戰(zhàn)在于“三同原則”同一物料、同一期間、同一估值視圖Valuation View下所有相關(guān)憑證采購收貨、生產(chǎn)入庫、銷售發(fā)貨、庫存轉(zhuǎn)移的價(jià)值變動(dòng)必須嚴(yán)格同步。CKMLCP正是這個(gè)引擎的“總裝車間”它要協(xié)調(diào)MM、PP、SD、FI等多個(gè)模塊的數(shù)據(jù)。當(dāng)你在增強(qiáng)里寫了一個(gè)RAISE_EXCEPTION它打斷的不是一條憑證而是一整批物料的估值計(jì)算。后果遠(yuǎn)超F(xiàn)I模塊的單筆憑證失敗數(shù)據(jù)不一致風(fēng)險(xiǎn)部分物料完成估值部分中斷導(dǎo)致ML表如MLI2,MLI3中同一期間的數(shù)據(jù)殘缺后續(xù)報(bào)表如CKM3,CKM9結(jié)果失真。鎖表風(fēng)險(xiǎn)CKMLCP在運(yùn)行時(shí)會(huì)對(duì)關(guān)鍵表如MBEW,MLHD加鎖。異常中斷可能導(dǎo)致鎖未釋放阻塞后續(xù)的MIGO、MB1A等操作影響整個(gè)倉庫作業(yè)。回滾復(fù)雜度高M(jìn)L的過賬涉及跨模塊的多張表更新財(cái)務(wù)憑證、物料憑證、ML憑證。標(biāo)準(zhǔn)程序的回滾邏輯極其復(fù)雜一個(gè)未捕獲的異常可能導(dǎo)致部分表已更新、部分未更新形成“半成品”狀態(tài)手動(dòng)清理成本極高。因此處理CKMLCP的RAISE_EXCEPTION絕不能停留在“讓報(bào)錯(cuò)消失”的層面而必須確保異常發(fā)生時(shí)系統(tǒng)能安全回滾、數(shù)據(jù)能保持一致、業(yè)務(wù)能快速恢復(fù)。這決定了我們的修復(fù)方案必須包含三層第一層是立即止血定位并注釋掉危險(xiǎn)代碼第二層是加固防護(hù)為增強(qiáng)添加TRY-CATCH第三層是長(zhǎng)效免疫建立標(biāo)準(zhǔn)化的異常處理規(guī)范。3. 核心細(xì)節(jié)解析手把手定位CKMLCP中那個(gè)“作死”的RAISE_EXCEPTION3.1 第一步從報(bào)錯(cuò)現(xiàn)場(chǎng)獲取黃金線索——不只是看那行紅字當(dāng)你看到“RAISE_EXCEPTION”時(shí)第一反應(yīng)不是去代碼里瞎找而是立刻做三件事它們能幫你節(jié)省80%的排查時(shí)間記錄完整的報(bào)錯(cuò)上下文不要只截圖紅字。按下CtrlShiftF12或點(diǎn)擊菜單“系統(tǒng) 狀態(tài)”打開“系統(tǒng)狀態(tài)”窗口。在這里你一定能找到當(dāng)前程序名通常是RKMLCP00確認(rèn)無誤。當(dāng)前屏幕編號(hào)比如0100這代表你卡在哪個(gè)屏幕。當(dāng)前函數(shù)模塊/方法名這是最關(guān)鍵的它會(huì)顯示類似SAPLMLCV或CL_ML_VALUATIONCP的名稱。SAPLMLCV是ML主程序包CL_ML_VALUATIONCP則是估值類的具體實(shí)現(xiàn)。記下這個(gè)它就是你的“案發(fā)現(xiàn)場(chǎng)”。查看短Dump如果生成了即使沒看到短Dump界面也要去事務(wù)碼SM21或ST22里查。在ST22中按日期、用戶、程序名RKMLCP00篩選。找到最新的Dump點(diǎn)開。在“Short Dump Analysis”頁簽里重點(diǎn)看Exception Class這里會(huì)明確寫出異常類名比如CX_ML_VALUATION_ERROR或你自定義的ZCX_ML_CUSTOM_ERROR。這是最直接的證據(jù)。Call Stack從下往上看找到第一個(gè)屬于你開發(fā)包比如ZML_ENHANCEMENT的調(diào)用行。這一行上面的函數(shù)模塊或方法就是RAISE_EXCEPTION被觸發(fā)的地方。檢查CKMLCP日志LogCKMLCP運(yùn)行時(shí)會(huì)生成詳細(xì)日志。在執(zhí)行CKMLCP的界面上勾選“Display Log”顯示日志然后重新運(yùn)行哪怕報(bào)錯(cuò)。日志里會(huì)記錄處理到哪個(gè)物料號(hào)MATNR、哪個(gè)工廠WERKS、哪個(gè)估值區(qū)域BWKEY時(shí)中斷。最后成功執(zhí)行的函數(shù)模塊名。任何你增強(qiáng)代碼里寫的WRITE或MESSAGE輸出如果你有加調(diào)試信息的話。注意很多顧問會(huì)忽略“系統(tǒng)狀態(tài)”和“日志”直接去代碼里大海撈針。我試過一次排查花了6小時(shí)后來養(yǎng)成先看狀態(tài)和日志的習(xí)慣平均15分鐘就能鎖定范圍。真正的高手不是代碼寫得最多的人而是信息抓取得最準(zhǔn)的人。3.2 第二步逆向追蹤——從“案發(fā)現(xiàn)場(chǎng)”定位到你的增強(qiáng)代碼假設(shè)你在“系統(tǒng)狀態(tài)”里看到當(dāng)前方法是CL_ML_VALUATIONCP在ST22里看到Exception Class是ZCX_ML_CUSTOM_ERROR。現(xiàn)在你需要找到這個(gè)異常類是在哪里被RAISE的。步驟如下全局搜索異常類在SE80里輸入異常類名ZCX_ML_CUSTOM_ERROR按回車。雙擊打開它查看其繼承關(guān)系。通常它會(huì)繼承自CX_DYNAMIC_CHECK或CX_ROOT。記下它的“Superclass”。搜索RAISE語句在SE80里右鍵點(diǎn)擊你的開發(fā)包比如ZML_ENHANCEMENT選擇“其他功能 在程序中查找...”。在彈出窗口中“搜索內(nèi)容”填RAISE EXCEPTION TYPE ZCX_ML_CUSTOM_ERROR“對(duì)象類型”選Programs和Classes“搜索范圍”選你的開發(fā)包。 點(diǎn)擊執(zhí)行。結(jié)果會(huì)列出所有包含這行代碼的程序或類。交叉驗(yàn)證調(diào)用鏈對(duì)搜索結(jié)果中的每一個(gè)程序/類打開它找到RAISE EXCEPTION那一行。然后按CtrlShiftF3或右鍵 “調(diào)用層次結(jié)構(gòu)”查看這個(gè)方法/函數(shù)模塊被誰調(diào)用。你會(huì)看到一個(gè)調(diào)用樹。重點(diǎn)看樹的頂端是否指向CKMLCP相關(guān)的對(duì)象比如RKMLCP00、SAPLMLCV、CL_ML_VALUATION。如果調(diào)用鏈最終通向這些標(biāo)準(zhǔn)對(duì)象那就100%確認(rèn)了。精確定位增強(qiáng)點(diǎn)如果搜索結(jié)果指向一個(gè)User Exit如EXIT_SAPLKMLC_001那么打開這個(gè)函數(shù)模塊。在INCLUDE里找到你的實(shí)際代碼。如果指向一個(gè)BAdI實(shí)現(xiàn)如ZCL_IM_ML_VALUATION打開這個(gè)類找到對(duì)應(yīng)的方法如IF_EX_ML_VALUATION~CHANGE_VALUATION_DATA。此時(shí)你已經(jīng)站在了“犯罪現(xiàn)場(chǎng)”的門口。3.3 第三步剖析“作死”代碼——為什么這段邏輯必然觸發(fā)RAISE_EXCEPTION找到代碼后不要急著刪先讀懂它“想干什么”和“為什么失敗”。一個(gè)典型的“作死”代碼長(zhǎng)這樣METHOD if_ex_ml_valuation~change_valuation_data. DATA: lv_price TYPE mbeew-stprs. 1. 嘗試從自定義表ZML_PRICE讀取特殊價(jià)格 SELECT SINGLE stprs FROM zml_price INTO lv_price WHERE matnr im_matnr AND werks im_werks AND bwkey im_bwkey. 2. 如果沒讀到就RAISE EXCEPTION IF sy-subrc 0. RAISE EXCEPTION TYPE zcx_ml_custom_error EXPORTING textid zcx_ml_custom_errorno_price_found. ENDIF. 3. 后續(xù)邏輯... ... ENDMETHOD.這段代碼的意圖很清晰為特定物料/工廠/估值區(qū)域從自定義表ZML_PRICE里讀取一個(gè)特殊價(jià)格用于ML估值。但它犯了三個(gè)致命錯(cuò)誤錯(cuò)誤1未校驗(yàn)輸入?yún)?shù)。im_matnr,im_werks,im_bwkey是BAdI傳入的參數(shù)但代碼沒檢查它們是否為空或無效。如果im_matnr是空的SELECT SINGLE會(huì)語法錯(cuò)誤直接觸發(fā)CX_SY_OPEN_SQL_ERROR而不是你預(yù)設(shè)的ZCX_ML_CUSTOM_ERROR。這會(huì)導(dǎo)致另一個(gè)異常同樣沒人捕獲。錯(cuò)誤2未處理數(shù)據(jù)庫一致性。ZML_PRICE表的數(shù)據(jù)維護(hù)是獨(dú)立于SAP標(biāo)準(zhǔn)主數(shù)據(jù)的。很可能在CKMLCP運(yùn)行時(shí)某個(gè)物料的ZML_PRICE記錄被人為刪除了或者werks/bwkey組合在表里不存在。sy-subrc 0只是表示“沒查到”但沒區(qū)分是“業(yè)務(wù)上不該有”還是“數(shù)據(jù)被誤刪了”。前者可以RAISE后者應(yīng)該MESSAGE警告并跳過。錯(cuò)誤3缺少防御性編程。沒有TRY-CATCH包裹SELECT語句。萬一ZML_PRICE表結(jié)構(gòu)變更、權(quán)限不足、或數(shù)據(jù)庫連接異常SELECT本身就會(huì)拋出CX_SY_OPEN_SQL_ERROR這個(gè)異常比你的ZCX_ML_CUSTOM_ERROR更底層標(biāo)準(zhǔn)CKMLCP更不可能捕獲它。實(shí)操心得我見過最離譜的一次是顧問在User Exit里寫了RAISE EXCEPTION但RAISE的條件是“如果當(dāng)前用戶不是SAP*”結(jié)果月結(jié)時(shí)由后臺(tái)作業(yè)用戶SAP*運(yùn)行一切正常但財(cái)務(wù)人員手動(dòng)測(cè)試時(shí)用自己賬號(hào)立刻報(bào)錯(cuò)。RAISE_EXCEPTION的觸發(fā)條件必須是業(yè)務(wù)邏輯上的絕對(duì)不可逾越的紅線而不是技術(shù)實(shí)現(xiàn)上的便利開關(guān)。把它當(dāng)作“死刑判決書”而不是“暫停鍵”。4. 實(shí)操過程四步構(gòu)建CKMLCP異常防御體系4.1 步驟一緊急止血——臨時(shí)繞過保障月結(jié)在月結(jié)截止日前你沒時(shí)間徹底重構(gòu)代碼。這時(shí)需要一個(gè)安全、可逆、不影響數(shù)據(jù)的臨時(shí)方案。核心原則不刪除代碼只改變其行為。推薦兩種方式按風(fēng)險(xiǎn)等級(jí)排序方案A推薦添加開關(guān)變量由配置表控制創(chuàng)建一個(gè)配置表ZML_SWITCH字段包括SWITCH_NAME如DISABLE_CUSTOM_PRICE、ACTIVEX/N、VALID_FROM、VALID_TO。在你的增強(qiáng)代碼里加入判斷 在RAISE之前添加 DATA: lv_switch_active TYPE char1. SELECT SINGLE active FROM zml_switch INTO lv_switch_active WHERE switch_name DISABLE_CUSTOM_PRICE AND sy-datum BETWEEN valid_from AND valid_to. IF lv_switch_active X. 開關(guān)開啟跳過自定義價(jià)格邏輯走標(biāo)準(zhǔn)流程 EXIT. 或者直接設(shè)置 lv_price 0讓后續(xù)邏輯用標(biāo)準(zhǔn)價(jià) ENDIF. 原有的RAISE邏輯保持不變但只在開關(guān)關(guān)閉時(shí)生效 IF sy-subrc 0. RAISE EXCEPTION TYPE zcx_ml_custom_error... ENDIF.優(yōu)點(diǎn)完全可控隨時(shí)可通過改表數(shù)據(jù)啟用/禁用不影響代碼審計(jì)開關(guān)可設(shè)有效期到期自動(dòng)失效。缺點(diǎn)需要?jiǎng)?chuàng)建新表但這是最小代價(jià)。方案B次選注釋日志留痕待查如果連建表都不允許就用最樸實(shí)的辦法 IF sy-subrc 0. RAISE EXCEPTION TYPE zcx_ml_custom_error... ENDIF. 替換為 IF sy-subrc 0. TODO: [日期] 月結(jié)緊急處理臨時(shí)禁用自定義價(jià)格校驗(yàn) LOG: No price found for MATNR IM_MATNR WERKS IM_WERKS MESSAGE Custom price check disabled for month-end TYPE W. ENDIF.優(yōu)點(diǎn)零成本立刻生效。缺點(diǎn)TODO注釋容易被遺忘MESSAGE TYPE W是警告用戶可能忽略沒有開關(guān)下次運(yùn)行還會(huì)觸發(fā)。提示無論用哪種方案務(wù)必在SOLMAN或你的變更管理工具里為這次修改創(chuàng)建一個(gè)緊急變更請(qǐng)求Emergency Change Request注明原因、影響范圍、回退步驟。這不是官僚主義而是保護(hù)你自己——當(dāng)月結(jié)順利完成領(lǐng)導(dǎo)表揚(yáng)你時(shí)這份記錄就是你的功勞簿當(dāng)未來有人質(zhì)疑這段代碼時(shí)這份記錄就是你的免罪牌。4.2 步驟二加固防護(hù)——為所有增強(qiáng)添加TRY-CATCH“安全氣囊”臨時(shí)方案只是止血永久方案是給代碼裝上“安全氣囊”。規(guī)則很簡(jiǎn)單任何可能拋出異常的代碼尤其是RAISE EXCEPTION、SELECT、CALL FUNCTION、CALL METHOD都必須被TRY-CATCH包裹。以BAdI為例改造后的代碼METHOD if_ex_ml_valuation~change_valuation_data. DATA: lv_price TYPE mbeew-stprs, lx_error TYPE REF TO cx_root. TRY. 1. 安全校驗(yàn)輸入?yún)?shù) IF im_matnr IS INITIAL OR im_werks IS INITIAL OR im_bwkey IS INITIAL. MESSAGE Invalid input parameters for custom price lookup TYPE W. EXIT. ENDIF. 2. 安全讀取自定義價(jià)格 SELECT SINGLE stprs FROM zml_price INTO lv_price WHERE matnr im_matnr AND werks im_werks AND bwkey im_bwkey. 3. 業(yè)務(wù)邏輯判斷 IF sy-subrc 0. 業(yè)務(wù)上‘不應(yīng)有’的價(jià)格缺失這才是真正的錯(cuò)誤 RAISE EXCEPTION TYPE zcx_ml_custom_error EXPORTING textid zcx_ml_custom_errorno_price_found. ENDIF. CATCH cx_sy_open_sql_error INTO lx_error. 數(shù)據(jù)庫層面錯(cuò)誤表不存在、權(quán)限不足等 MESSAGE Database error in ZML_PRICE lookup TYPE E. RETURN. CATCH zcx_ml_custom_error INTO lx_error. 你自己的業(yè)務(wù)異常可以記錄日志然后讓標(biāo)準(zhǔn)程序處理 WRITE: / Custom price missing for, im_matnr, im_werks, im_bwkey. 不RAISE讓CKMLCP的外層CATCH捕獲它 RAISE EXCEPTION lx_error. ENDTRY. 4. 后續(xù)邏輯... ... ENDMETHOD.這個(gè)TRY-CATCH結(jié)構(gòu)提供了三層防護(hù)第一層輸入校驗(yàn)防止空參數(shù)導(dǎo)致的底層異常。第二層數(shù)據(jù)庫異常捕獲SELECT可能引發(fā)的所有SQL錯(cuò)誤并給出明確的用戶提示。第三層業(yè)務(wù)異常捕獲你自己的ZCX_ML_CUSTOM_ERROR并選擇性地再次RAISE讓標(biāo)準(zhǔn)CKMLCP的CATCH塊來統(tǒng)一處理顯示MESSAGE并繼續(xù)。4.3 步驟三建立標(biāo)準(zhǔn)——制定團(tuán)隊(duì)ABAP異常處理規(guī)范一個(gè)人的規(guī)范是經(jīng)驗(yàn)一群人的規(guī)范是生產(chǎn)力。我建議在團(tuán)隊(duì)內(nèi)推行以下三條鐵律并寫入開發(fā)手冊(cè)RAISE_EXCEPTION的“三不原則”不用于調(diào)試調(diào)試用BREAK-POINT或/H絕不留RAISE EXCEPTION在代碼里。不用于流程控制想跳過一段邏輯用EXIT或RETURN想標(biāo)記失敗用MESSAGE TYPE E。不用于替代輸入校驗(yàn)所有外部輸入?yún)?shù)、數(shù)據(jù)庫讀取、文件讀取必須先校驗(yàn)再?zèng)Q定是否RAISE。增強(qiáng)點(diǎn)的“默認(rèn)防護(hù)”模板為所有User Exit、BAdI、Enhancement Spot創(chuàng)建一個(gè)標(biāo)準(zhǔn)模板。模板開頭強(qiáng)制包含 ABAP Exception Handling Standard Template v1.0 1. Input validation 2. TRY-CATCH block for all external calls 3. Logging for all exceptions 4. No naked RAISE EXCEPTION 異常類的“分級(jí)命名”約定所有自定義異常類名必須體現(xiàn)其嚴(yán)重等級(jí)和領(lǐng)域ZCX_ML_FATAL_*表示數(shù)據(jù)不一致、鎖表等必須立即停止的致命錯(cuò)誤。ZCX_ML_BUSINESS_*表示業(yè)務(wù)規(guī)則違反如價(jià)格缺失、稅率錯(cuò)誤可由標(biāo)準(zhǔn)程序處理。ZCX_ML_TECHNICAL_*表示技術(shù)問題如數(shù)據(jù)庫連接失敗、RFC調(diào)用超時(shí)應(yīng)記錄日志并降級(jí)處理。注意規(guī)范不是束縛而是解放。我?guī)н^的團(tuán)隊(duì)推行這套規(guī)范后CKMLCP相關(guān)的月結(jié)故障率下降了70%平均排查時(shí)間從4小時(shí)縮短到20分鐘。當(dāng)你把“救火”變成“防火”你的時(shí)間就真正屬于自己了。4.4 步驟四長(zhǎng)效免疫——自動(dòng)化監(jiān)控與預(yù)警最好的防御是讓問題在發(fā)生前就被發(fā)現(xiàn)。利用SAP的ATCABAP Test Cockpit和自定義報(bào)表構(gòu)建一道自動(dòng)防線ATC檢查創(chuàng)建自定義檢查規(guī)則在事務(wù)碼SCI里創(chuàng)建一個(gè)新的檢查變式添加規(guī)則RS_ABAP_NO_RAISE_WITHOUT_CATCH檢查所有RAISE EXCEPTION語句是否被TRY-CATCH包裹。RS_ABAP_NO_SELECT_WITHOUT_SUBRC檢查所有SELECT語句后是否檢查sy-subrc。 將此變式應(yīng)用到你的開發(fā)包ZML_ENHANCEMENT上。每次代碼傳輸transport前ATC會(huì)自動(dòng)掃描未通過的代碼無法釋放。自定義監(jiān)控報(bào)表ZCKMLCP_MONITOR創(chuàng)建一個(gè)簡(jiǎn)單報(bào)表每天凌晨自動(dòng)運(yùn)行掃描CKMLCP最近7天的日志表BALHDR,BALLOG統(tǒng)計(jì)每日RAISE_EXCEPTION觸發(fā)次數(shù)。觸發(fā)最多的異常類名。觸發(fā)最多的物料號(hào)/工廠組合。 報(bào)表結(jié)果通過郵件發(fā)送給FICO負(fù)責(zé)人和ABAP負(fù)責(zé)人。當(dāng)某天ZCX_ML_CUSTOM_ERROR次數(shù)超過5次就自動(dòng)觸發(fā)預(yù)警郵件。增強(qiáng)點(diǎn)健康度看板在SAP GUI里用SE80的“增強(qiáng)點(diǎn)”視圖導(dǎo)出所有ML相關(guān)增強(qiáng)點(diǎn)的列表。添加一列“Last Modified”一列“ATC Status”。每周五花10分鐘掃一眼哪個(gè)增強(qiáng)點(diǎn)很久沒動(dòng)過但ATC狀態(tài)是“Red”就說明它可能成了隱患。實(shí)操心得我們?cè)肸CKMLCP_MONITOR報(bào)表提前3天發(fā)現(xiàn)了一個(gè)供應(yīng)商主數(shù)據(jù)批量導(dǎo)入錯(cuò)誤導(dǎo)致數(shù)百個(gè)物料的ZML_PRICE記錄缺失。我們?cè)谠陆Y(jié)前就修復(fù)了數(shù)據(jù)客戶完全不知情。真正的專業(yè)不是問題出現(xiàn)后你有多快而是問題出現(xiàn)前你有多準(zhǔn)。5. 常見問題與排查技巧實(shí)錄那些年我們一起踩過的坑5.1 問題速查表CKMLCP報(bào)RAISE_EXCEPTION90%的情況對(duì)應(yīng)這5種原因現(xiàn)象描述最可能原因快速驗(yàn)證方法解決方案報(bào)錯(cuò)固定在某個(gè)物料號(hào)MATNR該物料的主數(shù)據(jù)如MARA,MBEW存在不一致如VALAREA估值區(qū)域?yàn)榭栈駼KLAS評(píng)估類未維護(hù)。在MM03里查該物料看“會(huì)計(jì)視圖”是否完整在SE16N里查MBEW表看BWKEY、BKLAS字段是否為空。補(bǔ)充維護(hù)主數(shù)據(jù)或在增強(qiáng)里加空值校驗(yàn)IF mbeew-bwkey IS INITIAL. MESSAGE ... TYPE W. EXIT. ENDIF.報(bào)錯(cuò)固定在某個(gè)工廠WERKS該工廠的物料賬未激活或T001W工廠主數(shù)據(jù)中ML_ACTIVE字段為 。運(yùn)行OMJJ查該工廠的“物料賬”配置或在SE16N里查T001W看ML_ACTIVE字段。在OMJJ里激活該工廠的ML或在增強(qiáng)里加工廠校驗(yàn)SELECT SINGLE ml_active FROM t001w INTO lv_ml_active WHERE werks im_werks.報(bào)錯(cuò)發(fā)生在所有物料但只在特定期間PERIO該期間的匯率未維護(hù)TCURR表或T883物料賬期間未打開。運(yùn)行OB52查該期間是否打開運(yùn)行OB59查匯率是否維護(hù)在SE16N里查TCURR看KURSF匯率是否為空。維護(hù)匯率在OB52里打開期間或在增強(qiáng)里加匯率校驗(yàn)SELECT SINGLE kurst FROM tcurr INTO lv_kurst WHERE ...。報(bào)錯(cuò)隨機(jī)出現(xiàn)每次都不一樣增強(qiáng)代碼里用了GET TIME、SY-UZEIT等動(dòng)態(tài)時(shí)間函數(shù)或讀取了未加鎖的共享內(nèi)存SHM。在ST22里看Dump的“Call Stack”找是否有CL_SHM_*或GET TIME調(diào)用檢查代碼里是否有READ SHARED MEMORY。改用靜態(tài)時(shí)間戳如sy-datum對(duì)SHM讀取加ENQUEUE/DEQUEUE或改用數(shù)據(jù)庫表存儲(chǔ)。報(bào)錯(cuò)后后續(xù)CKMLCP運(yùn)行全部失敗上次異常導(dǎo)致MLHD物料賬頭表或MLI2物料賬明細(xì)表被鎖且鎖未釋放。運(yùn)行SM12查是否有MLHD、MLI2、MBEW等表的鎖運(yùn)行DBACOCKPIT查數(shù)據(jù)庫鎖等待。在SM12里手動(dòng)刪除鎖或重啟應(yīng)用服務(wù)器極端情況。5.2 獨(dú)家避坑技巧五個(gè)教科書不會(huì)寫的實(shí)戰(zhàn)經(jīng)驗(yàn)技巧1用“假數(shù)據(jù)”測(cè)試RAISE_EXCEPTION不要等月結(jié)才測(cè)試你的增強(qiáng)。在開發(fā)系統(tǒng)里用SE38運(yùn)行RKMLCP00在“選擇屏幕”里只輸入一個(gè)已知會(huì)觸發(fā)你RAISE的物料號(hào)比如MATNR TEST001并勾選“Test Run”測(cè)試運(yùn)行。這樣即使RAISE了也不會(huì)真的過賬你可以安全地調(diào)試和修改。技巧2在RAISE前先寫一行日志在RAISE EXCEPTION語句前加上WRITE: / RAISE triggered for, im_matnr, im_werks.。然后在SM21里查這條日志。這比看Dump快十倍因?yàn)槿罩纠镏苯痈嬖V你“誰、在什么時(shí)候、因?yàn)槭裁础庇|發(fā)了異常。技巧3BAdI的“靜默模式”如果你的BAdI實(shí)現(xiàn)只是讀取數(shù)據(jù)不修改任何東西可以在方法開頭加IF im_test_mode X. RETURN. ENDIF.。然后在CKMLCP的“選擇屏幕”里勾選“Test Mode”如果有的話或者在SE38里手動(dòng)傳參。這樣測(cè)試時(shí)BAdI完全不執(zhí)行可以快速排除是不是BAdI的問題。技巧4User Exit的“雙重保險(xiǎn)”對(duì)于無法遷移到BAdI的老User Exit務(wù)必在EXIT_SAPLKMLC_001的INCLUDE里第一行就加上 Safety net for User Exit TRY.最后一行加上CATCH cx_root. Log the exception and swallow it MESSAGE User Exit error swallowed TYPE I. ENDTRY.這是最后的底線確保User Exit的任何錯(cuò)誤都不會(huì)沖垮CKMLCP。技巧5建立“CKMLCP白名單”創(chuàng)建一個(gè)表ZML_WHITELIST字段為MATNR,WERKS,BWKEY,VALID_FROM,VALID_TO。在你的增強(qiáng)代碼里先查這個(gè)表只有在白名單里的物料才執(zhí)行復(fù)雜的自定義邏輯。其他物料一律走標(biāo)準(zhǔn)流程。這能極大降低風(fēng)險(xiǎn)尤其適用于新上線的增強(qiáng)。最后分享一個(gè)小技巧我在每個(gè)CKMLCP增強(qiáng)的開頭都加了一行注釋 Last tested on: 2025.04.01 by [Your Name]。每次修改都更新這個(gè)日期。一年后當(dāng)我看到一個(gè)增強(qiáng)的測(cè)試日期是2023年我就知道它大概率已經(jīng)過時(shí)需要全面復(fù)查。代碼不是寫完就結(jié)束而是從第一次運(yùn)行開始才真正進(jìn)入生命周期。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
在线a v| 久久黄人人爽视频| 国产精品不卡高清在线观看| 久久久久九九九九| 国内精品不卡无毒99999| 少妇高潮一区二区三区在线| 欧美在线视频99| 久久久亚洲熟妇资源| 在线性黄高清免费视频| 久久久久女教师免费一区 | a级成人毛片免费视频高清| 国产精品不卡一区二区三区| 九九人人操| 欧美性天天| 青青草玖玖爱| 色天天野狼综合社区| 色婷亚洲五月在线观看| 欧美人体性爱互联网第一页婷婷日本| 人妻出轨一区二区三区| 日本五十路熟女一区二区| 丝袜美腿射精91| www.超碰在线| 亚洲乱色熟女一区| 校园激情狠狠四射| 欧美天天综| 超碰精品在线| 91人妻最真实刺激绿帽| 婷婷丁香人妻| 久草综合网| 麻豆传媒一区二区在线观看| 新精精品久久精品| 久久AV色| 国产免费内射视频| 天天影视网色欲色香| 国产农村妇女一区二区| 免费精品99| 色91综合网| 午夜视频好爽啊| 综合欧美亚洲| 亚洲人妻久久久| 性老妇一区二区三区| 国产亚洲禁久一区二区| 黄色av网站在线播放| 抽插亚洲无码| 91精品久久久久| 凌辱美少妇久久aV| 超碰97人人乐| 极品肉射| 欧美一二三级精品在线| 国产成人五月天丁香花| 综合亚州欧美| 午夜福利视频在线一区| 欧美亚洲激情| 久久精品六区| 天天综合网视频91| 少妇熟女1区2区3区| 中文久久96| 伊人991| av片在线观看免费播放| 91香蕉国产尤物视频| 日本成人在线不卡一区二区三区| 亚洲欧美综合网站| 色69大色97香蕉| 欧美色图91| 综合 亚洲 欧美| 97免费在线视频| 情色五月天就去干| 快播久久人人aV| 日韩情色视频| 天美国产精品| 亚洲AV无码久久精品蜜桃小说| 日韩美女久久一区二区三区| 国产欧美成人精品| 天天拍夜夜| 亚洲色图 欧美| 中文字幕一二区二三区人妻专区| 看一级特黄a大一片| 黄片免费日韩| 亚洲一级特黄大片在线播放91| 丁香六月婷婷| 蜜臀人妻少妇久久在线观看| 黄总AV色图| 男女激情中文字幕| 天天天乱色综合全| henhen91| 婷婷精品| 日韩精品国产一区二区| 欧美日韩丝袜 | 色婷婷综合网| 欧美91网站| 91精品人妻一品二品三品| 精品久久久久久中文字幕视频免费 | wwwxxx日本爽| 啊啊啊操一区| 亚洲性爱高潮影院| 亚洲有码第一页| 变态另类专区| 中日亚韩免费视频| 国产性久久久| 中文字幕 av v| 久久草大香蕉| av网站免费看| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 色五月激情综合网| 亚州精品人妻一二三区| 少妇厨房愉情理伦片bd在线观看| 国产Aα| 97 亚洲 日韩 欧美 在线| 亚洲色情在线影视| 97精品免费| 性爱精品一区| 色偷综合| 国产一区二区三区免费视频在性观看| 高潮内射在线| 深夜国产福利| 国精精品无码一二三区水多多| 欧美色网络| 伊人黄色片| 97碰在线视频| 色偷偷综合91久久噜噜| AV久日| 色黄色美女大长腿午夜视频| 嗯嗯嗯啊啊啊干死我吧| 人人贴人人摸| 少妇三P| 亚洲色图综合| 亚州色交| 日本成a人v网站在线观看| 亚洲精品成人| 免费视频观看60秒| 天天干,夜夜爽| 亚洲 欧美 第一页 | 超碰97起碰| 国产五码丝袜屁眼| 超碰国产在线| 亚洲色性| 国产免费一区二区三区最新不卡| 国产精品白领在线观看| 9长久久精品| 久久 国产 无码| 十八禁网站在线| 五月天伊人网| 男人的天堂VA在线| 在线国产福利网址导航| 久久九精品| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 四虎免费视频| 精品一区二区三区蜜桃臀赵总 | 在线色导航| 97这里只精品| 中文字幕aⅴ在线视频| 久久人妻无码毛片A片麻豆| 欧美一级黄色18片免费看| 色综合20p| 国产激情在线| 日本一区二区中文字幕久久| 日产操逼| 青青草在线视频美女| 欧美性爱另类综合| A级在线视频| 人妻一区久久二区三区色播| 午夜福利在线合集| 97人人爱人人乐| 91粉芽高清在线一区二区| 久久精品—区二区三区内射| 欧美日本不卡| 九九热九九热| 国产自产自拍| 无遮挡又黄又刺激的视频| 区一二区日韩亚洲乱码av电影| 国产精品熟女九色九色蜜臀| 亚洲欧美综合网| 六月丁香网| 日日超碰亚洲| 密臀成人视频久久久| 人人妻人人操人人乐| 午夜激情成人在线观看| yw尤物av无码点击进入麻豆| 天天综合色图| 综合激情一一91| 九九久久九九久久| 又粗又长又爽在线观看| 国产综合色精品在线观看| 激情人妻另类| 91人妻超碰| 色伊人91| 中文字幕乱在线伦视频中文字幕乱码在线 | 91久久久久免| 囯产乱伦一区二区三女 | 婷婷色婷婷| 亚洲欧美一区二区网址| 97国产伦理| 97视频在线免费看| 九月婷婷久久| 九九久久九九久久| 欧美成人性爱视频大全| 99re免费视频精品全部| 三四中文字幕| 久久华人网| 香蕉久久国产AV一区二区| 亚洲国产97| 亚洲丝袜二区在线| 999 久久久| 国产人伦精品一区二区三区| 日韩人妻精品久久久久| 九九性视频| 亚洲h片在线免费观看| 久久国产成人精品国产成人亚洲 | 久久人人看| 黄色AAAAAAAAAAA大片| 精品人妻一区二区三区在| 狠狠干2020| 欧日韩在线观看| 久久的网站啊啊啊啊啊| 狠狠久久四虎| 欧洲无码一区二区| 快点操死我| 亚洲中文字幕有码视频一区二区三区| 欧美第一页性| 日韩9999| 美熟女逼导航AV操逼| www.婷婷| 五月天激情四射| 97在线精品| 色爱国产| 五月丁香久久| 婷婷成人五月天| 色色色网站| 婷婷色色网| 色吧综合网| 五月丁香色综合| www久| 日韩性爱高清免费视频| 日韩无码嘿咻黑热久| 九久久九精品视频| 亚洲免费97免费| 啊啊啊啊啊啊啊啊啊啊在线观看| 久久人爽| 骚货操死你| 桃花色综合影院| 日韩美女啪啪一区| 无码国产精品久久久久| 欧美精品自慰系列寂寞少妇 | 美欧老女人97| 97操综合| 色婷婷一区二区三区久久| 好吊色综合| 在线播放成人高清免费视频| 亚洲色图尤物视频| 播播亚洲小说亚洲| 欧美精品另类人妖xxxx| 超碰97男人| 99久久9| a亚洲欧美色欲| 91劲爆| 亚洲AV成人无码一区二区三区在线观看| 人妻天天爽夜夜爽2| 精品在线观看视频在线| 啊啊啊啊网站| 亚洲中文字幕久久无码精品| 婷婷色一区| 97啪啪| 亚洲美女黄色| 91 手机在线播放 绯色| av最新免费中文字幕| 国产精品农村妇女| 爱丝福利| 天天操天天日青青草超碰av| 国产九九久久久精品| 中文字幕78| 99久久网站| 91午夜无码| 人人操人人爽人人操人人| 蜜臀99精品国产高清在线观看| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 欧美日本成人一区二区| 插B在线观看| 亚洲熟女乱综合一区二区三区| 草b在线| 日韩国产品视频中文字| 婷婷六月色| 亚洲色啪| 蜜桃在线观看一区二区三区 | 啊啊啊啊啊好舒服视频| 欧美色九九| 欧美性91| av网站国产主播在线| 国产第11页| 美女露胸露奶头| 91老司机在线视频免费观看| 亚洲一区二区三区久久 亚洲一区二区| 久久久网站| 五月天色图影视| 天天操av懂色| 日本淫穴在线| 91动漫操逼视频| 无码av永久免费专区网站| 色情成人五月天| 国产四虎在线| 夜夜黄| 日韩无码精品综合久久| 亚洲最大AV网| 翔田千里av一区二区三区| 精品一区二区成人| 99精品在线观看| caorenqi shipin| 五月婷婷六月激情| 欧美亚洲日韩16色| 视频国产成人精品日本亚洲18| 日本一区视频在线观看| 久久五月综合| 另类专区加勒比| 亚洲久久久久| 丁香六月激情| 夜夜高潮夜夜爽夜夜爱爱一区| 久久久久久亚洲中文| 天天干2019| 日韩本不卡视频在线观看| 密乳AV免费观看| 成人av福利在线观看| 国产精品无码av| 天堂蜜桃无码视频一区二区| 欧亚日本情色| 日韩性爱网址| 9Ⅰ超碰| 中文字幕av亚洲在线| 熟妇人妻一区二区三在线| 神马久久午夜| 四虎永久在线精品免费网址| 青青青国产手线观看视频2| 中文字幕一区二区三区蜜臀| 亚洲密乳AV| 亚洲91射| 欧美最婬乱婬爆婬性视频| 免费人成毛片乱码| 久久草大香蕉| 安微少妇操BBB| 九九热免费视频| 97色伦97色伦国产欧美| 色噜噜人妻av 中文字幕| 密臀在线视频| 欧美有码激情视频一区二区三区| 日本女人久久久| wwe 天天干.com| 一区二区三区黄色片a| 亚洲日韩欧美一区二区| 国产精品久久久三级无码| 超碰97国产欧美| 大香蕉伊人在线成人AV在线观看| 人看人人摸人人操| 伊人网青青| 亚洲欧美校园| 视频二区熟女人妻| 久久日本熟女精品一区| 色丁香五月婷婷| 翔田千里爆乳巨臀无码| 色婷婷久久综合超碰| 久热9| 亚洲国产麻豆一区二区三区| 天天综合-91入口| 麻豆精品A片免费观看| 欧美性爱在线无码| 国产精品自拍xxxx| 国产欧美日韩一区二区三区| 性爱视频免费网址| 熟妇xxxxx性春色| 亚洲一区中文精品| 偷拍 欧美 日韩| 亚洲激情欧美色图 | 先锋影音av先锋一区| 96超碰网| 亚州性9| 欧美色视| 性爱视频免费网址| 中文精品一区二去| 国产操操日韩三级黄| 91搡老女人老妇女老熟女歌词翻译| 亚洲午夜蜜臀| 蜜臀网 一区| 97视频在线播放| 国产呦精品系列在线观看| 亚洲啪啪综合?v一区综合精品区| 亚洲码在线中文在线观看| 日韩强奸av| 日韩三A大片在线观看| 九九碰九九爱97超| 日本中文熟女视频| 国产精品ⅴ无码大片在线看.| 92性色国产午夜福利在线661| 成人毛片免费| 尤物网址| 色综合久| 精品一国2| 99re久久| 中文字幕精品丝袜| 超碰色97| 第四色亚洲色图| 久久精品电影| 老熟妇一区二区三区| 在线洲亚线| 天天操人人操狠狠插| 亚洲综合一区二区| 日韩AV一区二区三区三州三州| 国产乱码精品久久久久久| 东京热,男人的天堂| 欧美日韩国产成人高清| 九九性爱网| 日本一久是| 亚洲麻豆av一区二区| 色噜噜综合在线| 久操| 日日操丁香五月天| 91美女视屏| 怡红院亚洲怡春院av| 日本免费一级AAA大片器| 午夜呻吟欧美| 亚洲精品九九九| 首页亚洲国产高跟丝袜诱惑视频| 欧美自拍网| 中文字幕在线观看视频www| 色99久草| 丝袜性亚洲| 啪啪视频亚洲第一| 玖玖爱综合网| 老熟女91av| 941超碰| www网站黄| 综合自拍| 熟女一区二区| 凹凸久久人人| sewuyueav| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 蜜桃无码AV一区二区| 干少妇视频| 欧美五区| 很很热性爱视频| 久久久偷拍| 超碰亚洲欧美日韩无| 在线岛国新天堂8| 啊啊啊啊啊好舒服视频| 夜夜爽77777| av天堂精品久久| 偷拍新久久| 91欧美长吊| 色色国产| 国产后入清纯| 人夜夜精品网站香蕉嫩草| 丰满人妻一区二区三区| av亚洲天堂资源网站| 欧美亚洲日本激情在线| 五月丁香激情四射| 国产AV天美传媒一区二区三区 | 99热97| 爽 好舒服 无码刺激久久| 成全动漫视频观看免费下载| 久久精品无码不卡| 亚洲最大黄网| 99国产精品人妻人伦| 欧美在线观看综合国产| 亚洲精品三区在线观看| 精品国产av一区二区三区四区入口| 久久大香蕉97| 精品无码产区一区二| 歐美性天天| 少妇500双飞99| 亚州乱码中文字幕综合久久久| 少妇二级| 精品久久久久瑟瑟| 精品久久久久9999| 91人人爽人人爽| 日韩紧密久久| 精品国产91久久久久久一区黄无| 97中文超碰| 污到发麻的视频 国产| 丁香五月天堂| 91日韩在线| 99视频内射三四| 成人日韩欧美| 亚洲欧洲偷拍一区| 成人久久无码www| 五月丁香啪啪啪| 大学生口爆吞精| 国产亚洲女v在线观看| 狠狠中文字幕| 久久久久9| 超踫中文字幕| 91色s| 激情婷婷丁香网| 后入式999| 91热| 成 人片 黄色大片| 国产亚洲在线| 97精品第3页| 精品国产乱码久久久久久久久久毛片| 亚洲国产精品无石码久久 | 长长久久曰曰夜夜成人网| 在线综合 亚洲 欧美中文字幕| 久久婷婷欧美| 亚洲第一页第二页激情| 凹凸视频特色日本特黄| 国产性爱欧美性爱在线| 久久久国产三级黄色片| 免费观看的av| 久久宗合亚洲| 欧美国产精品久久九九| 日韩欧美午夜视频在线| 9热9热综合网| 色婷婷一区二区三区久久| 久干9操| 国产25页| 中文字幕一区二区免费在线| 国产精品久久久视频| 怡红院成人视频| 五月婷婷色色| 伊香蕉综合久久久久久久噜噜噜| 欧美性爱中文字幕无线码| 日韩99神马视频播放片在线播放| 91精品国产91熟女| 99性视频| 情色图区| av在线资源| 大香交| 色婷婷电影网| 欧美劲爆第一页| 草b在线| 久久成年片色大黄全免费网站| 五月丁香啪啪啪| 九九九九精品精| 色综合婷婷| 九九热只有精品| 九九热最新| 91熟女视频| 用力操死我| 蜜桃视频成a人v在线| 天天综合网~91| 久久久偷拍| 久久久精品日本一道| 精品视频一二三中文| 亚洲综合网电影91| 一级二级三级黑人无码| 天天综合站| 这里只有精品视频| 日韩熟女无码| 精品国产乱码久久久影院| 天美传媒国产原创中文字幕亚洲欧美另类| 91精品久久久| 色图综合网| 人人摸人人舔一区二区| 国产福利影视| 久综合国内精品自在自线| 97爱啪| 国产乱弄免费在线视频。| 美女极品一区二区三区| 中文字幕一二三| 亚洲一区制服诱惑| 和协无码影院| 色婷婷五月天| 99自拍视频在线| 婷婷激情五月天小说网| 精品偷拍13p欧美dodk视频| 日韩小电影| 96国产精品| 日韩AV色图| 婷婷综合网| 曰韩成人免费视频| 最近2019中文字幕国语免费版| 亚洲 日本 一 二 三| 成人a大片在线观看| 日韩免费福利在线观看| 午夜精品久久久| 亚洲欧美97√| 日本性爱视频一级| 欧美v日韩v亚洲v最新在线| 92大香蕉| 97亚洲欧美| 96精品久久| 98久久超碰| 亚洲97综| 在线无码视频| 免费观看的av| 大香蕉在线视频重口味毛片在线| 91在线/欧洲| 亚洲性图91| 久久激情视频| 欧美日韩1234| 欧美aa一级片| 日日日日日| 国产精品网站www| 国产成人精品午夜福利| 欧美97| 日本熟妇人妻中出视频| 国产蜜臀精品一区免费尤物| 精品性爱久久视频| 亚洲综合20p| 五月婷丁香| 亚洲伊人久久精品狠狠在线| 一本色道久久综合狠狠操| 伊人热综合| 8050无码八戒| 日韩午夜国产| 影音先锋每日最新资源在线观看| 日本精品无码三级网站| 爱爱动态120秒| 不卡一区视频| 亚洲国产另类在线中文| 偷窥自拍A片| 亚洲情色在线| 青青青国产手线观看视频2| 免费黄色片子| 香蕉精品二区二区| 中文字幕一区二区三区高清| 五月天婷婷综合网| 精品人妻一区二区三区蜜桃视频| 国产黄色视频久久| 一色网男人的天堂| 亚洲在线91| 欧插网站| 亚洲字幕一区二区| 亚洲国产福利视频| 中文字幕在线观看丝袜| 欧美96交| 亚洲图片偷拍视频区| 伊人国产av| 台湾一区国产高清在线| 日夜干射色啊| 户外裸露刺激视频第一区| 久热69九色熟妇97| 伊人网高清| 超碰日本97美女人妻人人玩人人爱| 亚洲性刺激| 97网址www| 永久免费av无码网站国产app| 天天做天天爱天天高潮| 国产主播福利| com 首页 18岁 禁区 女优 免费 精选 同城 | 秋霞成人做爱| 日本二区不卡| 裸模AV女优| 成人免费在线网站| 久草尤物| 精品久9| 诱惑人妻欧美一区在线播放| 日韩欧美成人性爱在线| 亚洲久草AV色图| 混色激情av| 欧美亚洲尤物久久| 亚洲色婷婷久久91| 超碰吊日色| 婷婷香蕉欧美在线一区二区三区| 欧美亚洲另类在线蜜桃| 女同性恋久久| 国产在线激情| 自拍视频大全亚洲专媒视频/一区二区三区| 淫荡少妇免费| 思思久热在线精品66| 国产suv精品一区二六| 超碰人妻中文在线| 日韩精品人妻系列无码天堂| 亚洲欧美精品一区天堂久久| 国产精品熟女九色九色蜜臀| 九九九色| 蜜臀AV一区二区三区| 超碰97玖玖爱| 人人澡综合涩| 婷婷另类小说| A级国产欧美激情在线| 少妇久久久久久| 欧美日韩欧美| 清纯唯美综合亚洲| 色在线69堂| 淫乱图区 | 国产又色又粗又黄又爽| 先锋激情∨在线视频播放| 亚州综合| 又粗又长又爽在线观看| 人人操人人操草草| 激情五月天社区| 久久精品店| 夜夜天天噜狠狠爱2021| 一级黄色视频网| blacked精品一区国产| 久久av成人无码免费| 首页中文字幕中文字幕免费| 一本一道人妻久久一区二区三区| 97色色,97综合| 天天操天天7| 欧美综合色图片| 夜夜欢天天干| 国产日韩色综合| 99精品成人免费看| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 五月综合色| 国产夜夜操| 国产九九九九九九| 91精品国产91久久福利| 人妻精品一区二区在线| 操美女人妻| 夜夜做夜夜爽精品视频| 国产精品乱码久久久| 中文字幕黄片在线| 99色视频| 97ai亚洲| 国产激情片在线观看| 日本精品性生活久久久| 精品久| 欧美日韩第一页| 欧美精品偷拍| 精品一级毛片在线观看| 嗯啊不要啊在线 | 青青伊人久久| 丁香六月东京热| 国产成人精品午夜福利| 天天草天天日| 青青草九九九九九| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 成人网站 免费观看| 中文字幕av色| 天天综合网在线91| 五月丁香综合啪啪| 亚洲欧美洲综合| 天天日日夜夜| 免费精品无码一级毛片牛牛影视 | 国产第11页| 国产在线精品偷| 狠狠超| 爱干爱射网啊啊啊| 天天看夜夜看日日干| 亚洲综合色男人网| 午夜小电影在线插入淫高潮| 日韩成人午夜精品久久高潮| 精品亚洲国产成人精品| 免费超碰97久久| 国产情侣自拍在线播放| 午夜视频久久久| 能看的av| 亚洲欧美自拍偷拍| 久久久久女教师免费一区| 美女人妻色网站| 成人性爱视频在线看| 中文熟女五十乱码在线| 久久性爱视频| AV和黑人在线播放| 久久久999国产精品| 欧美 中文字幕 一区| 亚洲色图殴美色图激情乱伦| 欧美综合亚洲综合| 亚洲图片欧美偷拍| 久久亚洲熟妇在线视频| 亚洲福利中文字幕在线| 91国产操逼视频| 四虎精品亚洲| 2019亚洲男人天堂| 伊人青青草久久| 久久超碰、| 日本一区二区做爱的视频| 婷婷久月| 偷拍盗拍亚洲色图图片 | 亚洲情色 欧美| 另类欧美| 久久视频,这里只有精品 | 老鸭窝成人免费毛片视频| 九九精品无码专区免费| 精品中文一区二区| 爽爽爽免费视频| 国产后入精品| 大香蕉操久久| 欧美中文字幕男人天堂久久精品| 亚州色交| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 天天干少妇| 嗯嗯啊操我| 日本熟妇一区二区三区| 免费观看欧美日韩操逼视频| 麻豆久久视频在线地址| 色香色香欲天天天影视综合网| 日韩人妻操B| 久久草视频污视频| 91爱欧美| 制服丝袜第二页| 色天天野狼综合社区| 天天久久| 亚洲 欧美 制服 另类 自拍| 强奸国产精品视频| 婷婷AV一区二区三区| 五月婷婷综合在线| 91在线免费观看处女| 性色av一区二区| 亚洲精品国产拍免费91在线| 亚洲丨在线| 日韩免费中文字幕视频| 999国产精品999久久久久久| 九草在线大香蕉| 亚洲激情在线| 久久黄色视频一区二区三区| 另类综合另类| 亚洲交性| 天天摸夜夜添无码小视频| 亚洲一区日韩| #NAME?| 欧美色青| 激情五月天婷婷| 久久超碰av在线| 亚洲色图欧美| 国产在线强奸视频| 亚洲欧洲视频小说在线观看| 久久精品人妻一区二区| 国产粉嫩蜜臀av一区二区三区| 婷婷五月成人| 久九九九九九九九热| 亚洲制服aⅴ中文字幕| 激情五月综合网| 亚洲另类色综合网站| 殴美大黄片| 国产不卡的视频 | 午夜无遮挡男女啪啪视频| 久久a久久| 超碰97亚洲| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 日韩午夜国产| 日本性感人妻91| 九九综合| 精品国产三级av韩国在线| 久久久一级| 日韩无码人妻| 亚洲欧美一区二区不卡视频播放| 91成人高清在线观看| 麻豆九九九| 日韩人妻一二三区视频| 超碰69| 夂久色| 日本一级特级毛片视频| 成人在线永久| 熟女六十路| 9Ⅰ超碰| 高凊专区人人操| 亚洲导航深夜福利| 97视频免费播放| 91高跟美女在线播放| 毛片电影一区二区三区| 亚洲清纯综合| 九九热超碰97亚洲最新香蕉| 丁香六月东京热| 毛片一区二区| 国产97在线播放| 先锋音影AV| 91伊人影视综合| 1024人妻| 偷看洗澡一二三区美女| 欧美激情另类一区二区| V A在线| 日日操夜夜操天天操免费观看麻豆| 啊啊啊啊啊啊好湿好爽视频| 中文字幕一区二区三区视频播放| 国产粉嫩蜜臀av一区二区三区| 亚洲男人久久综合天堂| 丰满少妇精品一区二区| 天美传媒av一区二区| 天天综合香 ld视频| 五月丁香综合啪啪| 日欧亚洲二三区大片不卡| 日本一区二区中文字幕久久| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 99热在线播放| 99热这里都是精品| 91oumei| 五月婷婷深深爱| 国产高清成人传媒影视| 国模少妇一区二区三区| 日韩AV一起草| 五月婷婷基地| 色狠人在线99| 老司机久久| 97国产伦理| 丝袜色综合| 欧美女同在线| 亚洲欧美999| 免费视频在线一区二区不卡| 97国产精品| 午夜福利一区二区影院| 亚洲熟女乱色一区二区三区| 青青免费在线视频一区| 天天干夜夜操网| 亚洲 图片 综合91| 久久99精品九九久久久婷婷| 大香蕉伊然在亚洲91| 亚洲国产亚洲天堂| 精品人妻一区二区三区四区| 免费人成毛片乱码| 熟女中出视频| 欧美综合 站| 国产精品乱码久久久| 国产精品分类在线观看| 欧美成人一区二区三区在线播放| 六月婷激情福利天堂69| 18+91网站| 精品国产91av一区二区三区| 欧美啪啪女女| 精品美女少妇一区二区三区| 亚洲91色| 99这里有精品| 后入式视频国产自| 好爽视频在线观看视频| 日本在线不卡v二区| 亚洲欧美性生活| 亚洲色91| 欧美中文字幕男人天堂久久精品 | 超碰综合97在线| 欧美亚洲色图另类国产| 91精品成人| 亚洲无码精品AV久久久| 亚洲国产日韩欧美熟妇在线| 91无码人妻| 人人插人人摸人人| 97超碰精品成| 欧美网站免费| 久久精品国产97欧美精品亚洲 | 少妇一区二区三区精选| 天天舔九色婷婷| 免费黄色片。| 久干网| 亚洲欧洲日本精品中文a∨| 亚洲激情久久| 天天伊人| 欧美日韩222| 日韩乱伦AⅤ| 久久超碰大香蕉| 大香蕉专区| 欧美性Fer办公室秘书| 在线视频日韩欧美国产| 欧美色图色综合| 加勒比伊人影院| 91蜜臀在线久久久久| 欧美中出| 中国熟女91| 亚洲综合网电影91| 久久精品人人做人人看| 久久熟女久| 乱精品一区字幕二区| 啪啪啪东京| 97视频在线免费播放| 大香蕉九九| 内射小黄片| 91高潮喷水美女| 日韩人妻无码专区| 国产又黄又粗的视频| 清纯唯美综合| 大香蕉天天看妹子| 久久九九综合| 熟女五十路一区二区三| 免费成人自拍视频在线| 国产精品粉嫩福利在线| 日本裸体久久色噜噜| 日韩av不卡在线观看| 人人操我人人干| 狠狠色伊人亚洲综合网站色| 国产成人啪一区二区| 亚洲视频,小说| 丰满少妇人妻久久久久久| 婷婷五月天丁香| 激情第四色| www.色综合| 亚洲色 国产 欧美 日韩| 欧美极品美女aaaaaa级黄片| 97aiaiai| 国产又粗又大硬免费色网视频| 欧美精品激情| 国产日韩怡红院| 性一级黄色录像片网站导航| 96久久久久久久| 搡老女人老熟女91老熟女综合网| A男人的天堂| xxx亚洲午夜天堂| 亚洲影视综合网| 亚州色站 日韩电影| 久久超碰98| 噜噜噜噜久久久精品免费| 久久精品国产亚洲av水密被窝| 亚洲男人在线观看天堂| 精品人妻一区二区三区四区石在线 | 爱我干综合| 精品久久一区二区三区四区五区| 亚洲人妻一区二区三区| 欧美另类色| 色天堂综合| 9久热这里只有精品| 高潮精品| 2019久久久久久久久福利| 男女激情黄色网址| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 情趣丝袜无码操逼视频| 国产对白刺激视频| 日韩中文字幕二区| 国产盗摄美女如厕大神作品在线观看| 超碰97欧美日韩| 97亚洲欧美| 在线强奷到舒服的无码视频| 手机不卡视频不卡在线一二三区 | 中文字日本乱码| 99re这里只有精品9| 国产成人无码高清| 亚洲色图加勒比| 欧美九一精品久久久熟妇| 最新av网站在线观看| 精品国产自在在线99| 丝袜加勒比| 亚洲成人一区二区精品| 你草精品在线视频| 人人干黄色| 国产精品91一样| 78m啪啪啪| 六月丁香网| 婷婷爽人人婷婷爽视频| 激情五月天网| 992视频一区| 能看的AV| 欧美爱爱97| 日韩一区二区熟女| 97爱爱| 欧美一二三| 一区二区三区精品黑丝白丝酒店对鸡 | 91老熟女91老女人| 欧美日韩国产中文精品字幕自在自线| 校园春色亚洲无码| 人妻系列无码专区中文有码| 婷婷香网站| 黑人操一区二区| 东北老熟女| 99久久无色码| 性爱Av免费| 五月天精品| 国产久久一区二区三区野外在线| 一个人免费视频观看在线WWW| 欧美爆操91| 久久久国产亚洲精品系列| 97资源站国产精品| 刺激精品视频| www.天天干| 人人潮人人摸| 中文一区二区三区影院| 亚洲无限观看| 国产一区二区三区中文字幕| 五十路六十路素人熟女| 男人的天堂VA| 人人摸人人舔一区二区| 性色乱AV一区二区| 精品性爱无码在线播放| www.久久制服糖| 精品一区99999| 啊啊啊好舒服好爽啊啊啊视频| 综合色色网| 天天插天天操| 96久久精品一二三区色欲| 色吧 综合| 亚洲图片欧美色| 九九九999久久久网站| 性欧美精| 超碰97欧美日韩| 尤物视频偷拍免费| 大香蕉琪琪日本女优不卡| 久久女人视频| 午夜呻吟欧美| 日韩电影天堂视频二区三区| 五月天综合| 天天爽天天爽| 99999精品成人| 日韩欧美成人大香蕉| 9 9精品一区二区三区| 欧美色图天堂在线| 中文字幕视频2区| 青娱乐 成人娱乐在线| 蜜桃在线观看一区二区三区| 色爱欲亚洲| 99精品网站| 日韩图区| 久久久久久久91| 爱爱动态60秒| 国产三级在线现体验区| 可以在线观看AV的网站| 男人的天堂在线| 精品无人区麻豆乱码1区2区图片| 超碰吊日色| 亚洲天堂五月天国产| 亚洲av综合色区无码一| 亚洲一本大道中文字幕无码在线| 婷婷五月天在线观看| 久极品在线观看| 99re在线视频国产| 2019天天干| 久久透逼视频| 91丨熟女丨丰满熟女| 五月婷婷六月色| 国内毛片欧美香蕉精品| 免费a v| 一级黄色视频网| 9久久精品| 色色色综合网| 国产大片精久久久久久| 成人在线永久| 人人操人人肉久久精品| 一区二区三区免费岛国片| 丁香五月综合| 一本色道久久综合亚洲二区三区| 91色图| 天天看少妇| 热99这里有精品综合久久| 亚洲h片在线免费观看| 国产a级精品| 日韩人妻一区二区| 日本3级一区二区免费| 91亚洲丝袜| 8050午夜少妇无码| 国产精品久久久九九九| 日韩黄片视频试看| 夜夜騷av、一區二區| 翔田千里爆乳巨臀无码| 国产老熟女| 东京热天堂网| 国产精品老熟女一区二区| 麻豆天美一区二区| 亚州精人品大香蕉| 中日韓欧美高清| 欧美老妇综合网| 午夜.DJ高清在线观看免费7| 欧美色图成人网一区二区 | 成人福利视频网| 亚洲精品熟妇1区2区3区。| 日本综合久久| 亚洲男人天堂网| 亚洲少妇激情视频| 九九无码视频| 玖玖爱影院| 高清肉丝中文无码| 91婷婷| 欧州一区二区三区四区| 亚洲激情色片| 欧美日韩岛国大片在线观看| 久久久精选| 欧美白嫩在线放| 日本免费中文字幕在线| 天堂精品一区| 欧美第38页| 3p国产色噜噜一区| 免费AV中文网在线观看| 亚洲区限制级 99| 精品国产自在在线99| h无码动漫在线观看| 久久神马| 欧美黑人与女人91| 亚洲精品蜜桃久久久久久久| 91碰碰碰| 另类专区在线观看| 啪啪视频亚洲第一| 国产97亚洲| 欧美性暴力猛交| 精品一区二区久久| 欧美日韩国产电影| 欧美老熟另类| 激情综合网激情五月天| 亚洲黄网在哪免费看| 精品亚洲国产成人精品|