SAP BP字段增強--付款條件檢查


原文鏈接:https://blog.csdn.net/JYH1999/article/details/118597934

導語:從SAP HANA版本,供應商和客戶主數據的創建和修改都被整合到BP中,從ECC升級到S4的系統,大部分原來的增強都會失效,需要在BP中重新開發,SAP也為BP做了一套完整的配置型增強,下面以BP供應商數據采購信息中的付款條件檢查為例。

【增強記錄清單…】

需求說明:

對FLVN00供應商公司代碼中的付款條件和FLVN01供應商采購組織中的付款條件,做一致性檢查。


實現過程:
首先需要找到這兩個字段的位置,看一下他們所屬的表/結構,這里以FLVN01供應商采購組織中的付款條件為例,FLVN00供應商公司代碼中的付款條件做同樣的操作就可以了。

事務碼:BUS2
根據經驗或者模糊查詢,查找字段所在的字段組,或者通過表TBZ3R,進行查詢。

找到字段組,選中,點擊【字段組-字段】,可以看到里面包含的表名和字段與前面查看的一樣,就可以確定是這個字段組了,如果不一致需要繼續查找,這里找到的字段組是2025

事務碼:BUS3
找到字段組對應的視圖,這里有一張表可以使用【TBZ3S】,直接可以找到字段組屬於哪個視圖。這里找到的視圖是CVIV86。

直接定位到視圖,選中,點擊【視圖->字段組】,可以看見我們需要增強的字段組。

繼續選中字段組,點擊【進一步檢查】

新增一條檢查,函數名可以自己定義,如果需要啟用這個檢查,就勾選上總是調用。


函數創建
SE37創建一個函數,函數里邊通過類獲取內表的數據,本次的需求需要和FLVN00供應商公司代碼中的付款條件做檢查,找到公司代碼中付款條件的位置,以及所屬表/結構,一起用類讀出來,並進行校驗就可以了

函數代碼如下:

FUNCTION Z_BP_CHECK_ZTERM.
*"--------------------------------------------------------------------
*"*"局部接口:
*"--------------------------------------------------------------------

  DATA:lt_lfm1 TYPE TABLE OF lfm1.
  DATA:lt_lfb1 TYPE TABLE OF lfb1.
  DATA:ls_lfb1 TYPE lfb1.
  DATA:ls_lfm1 TYPE lfm1.
  DATA:lv_message TYPE char200.
  CHECK cvi_bdt_adapter=>is_direct_input_active( ) = abap_false.

  "根據需求從緩存中取出數據到內表中
  cvi_bdt_adapter=>get_current_bp_data(
    EXPORTING
      i_table_name = 'LFM1'
    IMPORTING
      e_data_table = lt_lfm1
      ).
      
  SORT lt_lfm1 BY lifnr ekorg.
  
  cvi_bdt_adapter=>get_current_bp_data(
  EXPORTING
    i_table_name = 'LFB1'
  IMPORTING
    e_data_table = lt_lfb1
).

  SORT lt_lfb1 BY lifnr bukrs.
  
  LOOP AT lt_lfm1 INTO ls_lfm1.
    READ TABLE lt_lfb1 INTO ls_lfb1 WITH KEY lifnr = ls_lfm1-lifnr bukrs = ls_lfm1-ekorg BINARY SEARCH.
    IF sy-subrc = 0.
      IF ls_lfm1-zterm <> ''  AND ls_lfb1-zterm <> '' AND ls_lfm1-zterm <> ls_lfb1-zterm.
        lv_message =  ls_lfm1-ekorg && '采購組織數據與' && ls_lfb1-bukrs && '公司代碼數據中的付款條件不一致,請檢查!' .
        CALL FUNCTION 'BUS_MESSAGE_STORE'
          EXPORTING
            arbgb = 'ZYH'
            msgty = 'E'
            txtnr = '000'
            msgv1 = lv_message.
      ENDIF.
    ENDIF.
  ENDLOOP.
  
ENDFUNCTION.

結果顯示


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM