使用事務碼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】具體配置