SAP BDC說明


簡單說一下這個DBC,之前也一直在用,每次找記錄都很麻煩,所以今天干脆就記下來吧

T-CODE:SHDB

輸入個NAME,T-CODE.然后執行。。。最后用保存或者返回來結束錄屏。

然后選擇記錄,創建程序,放到本地,這個時候,記錄的所有東西都在程序里了。。。下面就是處理部分了

1.跳轉類的:

開頭定義的地方加上兩個變量

DATA:   BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.
DATA:   MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA:   GS_CTU_PARAMS TYPE CTU_PARAMS.

BDCDATA是存這些錄屏過程中的變量及常量等

GS_ctu_PARAMS是調事務代碼時帶的一些參數,是否前台執行,報錯停止等等。。。。

然后從程序中選一些dynpro 和field的BDC行。。。

有些不需要的字段或者屏幕,可以直接刪除對應代碼

CLEAR bdcdata[].
     gs_ctu_params-updmode = 'S'.
     gs_ctu_params-dismode = 'E'.
     gs_ctu_params-defsize = ''."設置窗口非默認大小
     "調用BDC執行 T-code COOIS 顯示訂單抬頭
     PERFORM bdc_dynpro      USING 'PPIO_ENTRY' '1000'.
     PERFORM bdc_field       USING 'BDC_OKCODE'
                                   '=ONLI'.
     PERFORM bdc_field       USING 'PPIO_ENTRY_SC1100-PPIO_LISTTYP'
                                   'PPIOM000'.
     PERFORM bdc_field       USING 'PPIO_ENTRY_SC1100-ALV_VARIANT'
                                   '000000000001'.
     PERFORM bdc_field       USING 'BDC_CURSOR'
                                   'S_WERKS-LOW'.
*          perform bdc_field       using 'S_AUFNR-LOW'
*                                        GS_AFKO-AUFNR.
     PERFORM bdc_field       USING 'S_AUART-LOW'
                                   'DL01'.
     PERFORM bdc_field       USING 'S_ECKEN-LOW'
                                   gw_zstybcp-gstrp.
*                                     GS_AFKO-GSTRP.
     PERFORM bdc_field       USING 'S_WERKS-LOW'
                                   gw_zstybcp-werks.
*                                     GS_AFKO-WERKS.
     PERFORM bdc_field       USING 'S_COMPO-LOW'
                                   gw_zstybcp-matnr.
*                                     GS_AFKO-MATNR.
     PERFORM bdc_dynpro      USING 'SAPLCOISOUTPUT' '0100'.
     CALL TRANSACTION 'COOIS' USING bdcdata OPTIONS FROM gs_ctu_params.

至於上面的s和E是什么意思,你運行一下剛生成的程序,你就看到了。。。

 

 

2.執行類的錄屏

這類的錄屏在有些沒有標准函數或者太簡單,或者太復雜的函數處理的時候偷懶的做法。。。
能簡單就簡單嘛。
和上面同樣的方法生成程序。
然后選擇需要的代碼段。。。不需要的可以注釋,或者刪除
CLEAR BDCDATA[].

    PERFORM BDC_DYNPRO      USING 'SAPMM06I' '0100'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'EINE-WERKS'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM BDC_FIELD       USING 'EINA-LIFNR'
                                  GW_EXCEL-LIFNR.
    PERFORM BDC_FIELD       USING 'EINA-MATNR'
                                  GW_EXCEL-MATNR.
    PERFORM BDC_FIELD       USING 'EINE-EKORG'
                                  GW_EXCEL-EKORG.
    PERFORM BDC_FIELD       USING 'EINE-WERKS'
                                  GW_EXCEL-WERKS.
    PERFORM BDC_FIELD       USING 'RM06I-NORMB'
                                  'X'.
    PERFORM BDC_DYNPRO      USING 'SAPMM06I' '0101'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '=EINE'.
*    PERFORM BDC_FIELD       USING 'EINA-MEINS'
*                                  RECORD-MEINS_006.
*    PERFORM BDC_FIELD       USING 'EINA-UMREZ'
*                                  RECORD-UMREZ_007.
*    PERFORM BDC_FIELD       USING 'EINA-UMREN'
*                                  RECORD-UMREN_008.
    PERFORM BDC_DYNPRO      USING 'SAPMM06I' '0102'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'EINE-MWSKZ'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '/00'.
*    PERFORM BDC_FIELD       USING 'EINE-APLFZ'
*                                  RECORD-APLFZ_009.
*    PERFORM BDC_FIELD       USING 'EINE-EKGRP'
*                                  RECORD-EKGRP_010.
*    PERFORM BDC_FIELD       USING 'EINE-NORBM'
*                                  RECORD-NORBM_011.
*    PERFORM BDC_FIELD       USING 'EINE-WEBRE'
*                                  RECORD-WEBRE_012.
    PERFORM BDC_FIELD       USING 'EINE-MWSKZ'
                                  GW_EXCEL-MWSKZ.
*    PERFORM BDC_FIELD       USING 'EINE-IPRKZ'
*                                  RECORD-IPRKZ_014.
    PERFORM BDC_DYNPRO      USING 'SAPMM06I' '0105'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'EINE-ANGNR'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '=KO'.
    PERFORM BDC_DYNPRO      USING 'SAPLV14A' '0102'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'VAKE-DATAB(01)'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '=NEWD'.
    PERFORM BDC_DYNPRO      USING 'SAPMV13A' '0201'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                  'KONP-KBETR(01)'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                  '=SICH'.
    PERFORM BDC_FIELD       USING 'RV13A-DATAB'
                                  GW_EXCEL-LIFAB.
    PERFORM BDC_FIELD       USING 'RV13A-DATBI'
                                  GW_EXCEL-LIFBI.
    PERFORM BDC_FIELD       USING 'KONP-KBETR(01)'
                                  GW_EXCEL-NETPR.
    PERFORM BDC_FIELD       USING 'KONP-KPEIN(01)'
                                  GW_EXCEL-KPEIN.
*    PERFORM BDC_TRANSACTION USING 'ME12'.
    CALL TRANSACTION 'ME12' USING BDCDATA
                            MODE   'N'
                            UPDATE 'S'
                           MESSAGES INTO MESSTAB.

這段是做的采購信息記錄,修改價格,稅碼和單位數量的。。。

這種最后CALL TRANSACTION和上面的那種是不同的方式,這種可以接收返回消息

然后處理返回消息,判斷是否成功等。。。

 

 

好了,就說到這,有不懂得,自己研究研究。。。

 


免責聲明!

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



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