使用事務碼DBCO實現SAP連結外部資料庫以及讀取常式,dbcosap

來源:互聯網
上載者:User

使用事務碼DBCO實現SAP連結外部資料庫以及讀取常式,dbcosap

一、連結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】具體配置




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.