【ABAP系列】SAP 使用事務碼DBCO實現SAP鏈接外部數據庫以及讀取例程


公眾號: matinal
本文作者: matinal
 

 

前言部分

大家可以關注我的公眾號,公眾號里的排版更好,閱讀更舒適。

正文部分

一、鏈接SQLServer數據庫

執行事務碼DBCO,點新條目按鈕,填寫如下圖所示信息

這里的連接信息很接近 Sql Server 的連接字符串,但是參數名略有不同。指定主機IP、數據庫名即可。

二、鏈接DB2數據庫
執行事務碼DBCO,點新條目按鈕,填寫如下圖所示信息

連接信息看上去比較直接,分別是數據庫名、端口號、主機IP地址。

三、鏈接Oracle數據庫

執行事務碼DBCO,點新條目按鈕,填寫如下圖所示信息

連接信息比較隱晦,必須在 SAP 應用服務器上安裝 Oracle Client,然后設置連接,並在這里將連接信息指定與連接名一致。
為了防止亂碼,我們還應該在鏈接信息后加如下參數:ZHS16GBK
格式如下:ORCL.WORLD:ZHS16GBK

四、鏈接MaxDB數據庫

執行事務碼DBCO,點新條目按鈕,填寫如下圖所示信息

MaxDB 是 SAP 自己的數據庫,這個連接則是 NetWeaver Developer 版中默認創建的一個連接

訪問外部數據庫


 
1. 實例:SAP系統訪問PeopleSoft數據庫

*&----------------------------------------------------------------------------------------------------- &*
*& 定義常量                                                                                           &*
*&------------------------------------------------------------------------------------------------------&*
CONSTANTS: CNS_YGJK TYPE C LENGTH 10 VALUE 'HR9DEV'. 
 
**打開連接
  EXEC SQL.
    CONNECT TO :CNS_YGJK
  ENDEXEC.
 
***獲取人事數據
  TRY.
      EXEC SQL PERFORMING PF_GET_RS.
        SELECT MANDT,
               ZID,
               OTYPE,
               INFTY,
               ZUPDATE,
               OPERA,
               ZDATA
          INTO :WA_HR01-MANDT,
               :WA_HR01-ZID,
               :WA_HR01-OTYPE,
               :WA_HR01-INFTY,
               :WA_HR01-ZUPDATE,
               :WA_HR01-OPERA,
               :WA_HR01-ZDATA
          FROM z00hrjzlch01
         WHERE SAP_GET = ''
      ENDEXEC.
 
**處理人事數據
      IF IT_HR01[] IS NOT INITIAL.
        LOOP AT IT_HR01 INTO WA_HR01.
          EXEC SQL.
            UPDATE z00hrjzlch01
               SET SAP_GET = 'X'
             WHERE MANDT = :WA_HR01-MANDT
               AND ZID = :WA_HR01-ZID
          ENDEXEC.
          IF SY-SUBRC = 0.
*********更新ERP數據庫表
            EXEC SQL.
              COMMIT
            ENDEXEC.
            MODIFY Z00HRJZLCH01 FROM WA_HR01.
            COMMIT WORK.
          ENDIF.
        ENDLOOP.
      ENDIF.
**關閉連接
      EXEC SQL.
        DISCONNECT :CNS_YGJK
      ENDEXEC.
**獲取異常
    CATCH CX_SY_NATIVE_SQL_ERROR INTO CL_EXEC_REF.
      EXIT.
    CATCH CX_SQL_EXCEPTION INTO CL_SQLERR_REF.
      EXIT.
  ENDTRY*&---------------------------------------------------------------------*
*&      Form  PF_GET_ZZ
*&---------------------------------------------------------------------*
*       組織增量數據
*----------------------------------------------------------------------*
FORM PF_GET_ZZ .
  APPEND WA_HR02 TO IT_HR02.
ENDFORM

事務代碼:DBCO查看,SAP系統現存的連接

程序中使用的是連接【HR9DEV.WORLD】,雙擊這行如下圖所示:

先在SAP底層ORACLE數據庫編輯TNS文件,一般由BASIS配置完成,配置路徑:DIR_ORAHOME->network->admin->tnsnames.ora;配置完成后我們可以用事務碼:AL11查看配置是否正確,AL11查看連接【HR9DEV.WORLD】具體配置

 


免責聲明!

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



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