SAP-ABAP 調用外部數據庫獲取數據


SAP 中可以通過配置數據庫的鏈接,來完成從SAP鏈接到外部的數據庫中進行處理數據,具體操作如下:
1、先進入事務:DBCO,設置數據庫鏈接。進入該事務后,如果系統已經有配置過類似鏈接則會出現在如下畫面中,如圖:

2、在該配置中的難點在於您使用的服務器類型,sap中提供多種選擇:

3、說其是難點,是因為不同的數據庫類型,在‘鏈接信息’這欄填寫的內容格式是不一樣的,重點說明MSS和ORA(因為我只用到了這兩種);

a)、SQL Server

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

b)、Oracel

oracel的鏈接信息比較隱晦,必須在 SAP 應用服務器上安裝 Oracel client  ,然后設置鏈接,再在這里的鏈接信息進行指定。

4、設置完事務DBCO后,就可以進行編寫代碼測試鏈接是否成功。(注:任何數據庫配置信息都存放在表DBCON中)

5、測試是否聯通 ADBC_TEST_CONNECTION

 

 

如下代碼測試:

data: g_errorstr(250) type c.
data g_conexion like dbcon-con_name value 'ZYUN'.   "ZYUN即DBCO中配置的數據庫鏈接名稱
data: exec_ref      type ref to cx_sy_native_sql_error,
      error_text    type string,
      cl_sqlerr_ref type ref to cx_sql_exception.
  perform sub_conndb using g_conexion.  "調用模塊,打開數據庫鏈接
 
  try.
      exec sql .
******根據OPEN SQL 編寫SQL 語句 
*例:
        SELECT ANLN,
               MCOA1,
               BUKRS,
               DZSX,
               AUFNR1
        INTO :gw_out-ANLN,
             :gw_out-MCOA1,
             :gw_out-BUKRS,
             :gw_out-DZSX,
             :gw_out-AUFNR1
          FROM ZZTLD_BASE_FI_SALEORDER_004
          WHERE ZTYPE is NULL
 
      endexec.
 
    catch cx_sy_native_sql_error into exec_ref.
 
      g_errorstr = exec_ref->get_text( ).
      concatenate '讀取數據出錯,'  g_errorstr into g_errorstr.
 
      write:/ g_errorstr.
    catch cx_sql_exception into cl_sqlerr_ref.
 
 
      if not g_errorstr is initial.
 
        clear g_errorstr.
        exec sql.
          rollback
        endexec.
      else.
        exec sql.
          COMMIT
        endexec.
      endif.
 
  endtry.
 
 
*  關閉連接
  exec sql.
    DISCONNECT :G_CONEXION
  endexec.
 
 
 
 
*打開數據庫鏈接模塊編寫
FORM sub_conndb USING conn LIKE dbcon-con_name.   
  CLEAR g_errorstr.
  g_conexion = conn.
  TRY.
      "--  連接SQL SERVER
      EXEC SQL.
        CONNECT TO :G_CONEXION
      ENDEXEC.
    CATCH cx_sy_native_sql_error INTO exec_ref.
      CONCATENATE '無法連接至SQL數據庫   連接名:' g_conexion INTO g_errorstr.
  ENDTRY.
ENDFORM.
調用中間數據庫

 

      exec sql performing pf_get_zz.
 
      SELECT AUFNR,
        KTEXT,
        BUKRS,
        DZSX
      INTO :gw_out-AUFNR,
      :gw_out-KTEXT,
      :gw_out-BUKRS,
      :gw_out-DZSX
   FROM ZZTLD_BASE_FI_SALEORDER_002
   WHERE ztype is  NULL
 
      endexec.
 
 
form pf_get_zz.
 
 
  append gw_out to gt_out .
 
  clear: gw_out,gw_return.
 
endform.
從中間庫查詢到多條數據,插入到內表,然后處理數據


————————————————
版權聲明:本文為CSDN博主「酒劍仙abc」的原創文章,感謝分享!
原文鏈接:https://blog.csdn.net/fengxin_/article/details/106238126

 

SAP HANA SLT 將Oracle表 數據同步到HANA數據庫

簡單介紹SLT 同步數據的整個配置過程:

  1. 在SLT系統中創建與Oracle的鏈接
  2. 在HANA監控平台上,創建Configuration
  3. 創建表的同步作業

——————————————BEGIN—————————————————————————

1.在SLT系統中創建與Oracle的鏈接

在SLT系統中輸入T-Code:dbacockpit

1.選擇 Database Connections

2.選擇Oracle

3.單擊ADD按鈕,新建一個與Oracle數據庫的連接

如圖:

 

上圖中是鏈接Oracle數據庫的一些參數。輸入相應的連接參數后,點擊運行,測試是否連接成功。

2.在HANA監控平台上,創建Configuration

T-code:ltrc

點擊新建按鈕,進入向導。

源端是我們之前創建的Oracle鏈接

目標端為HANA數據庫的連接信息

3.創建表的同步作業

點擊進去創建好的Configuration

 

輸入表名,點擊運行。

 

  • start load 數據只一次抽取
  • start replication 數據實時同步
  • stop load/replication 停止同步

這是同步作業就會出現在平台上,可以監控它的運行情況。

--------------END--------------------------------------------------------


免責聲明!

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



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