公眾號:
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】具體配置