iT邦幫忙

2024 iThome 鐵人賽

DAY 28
0
佛心分享-IT 人自學之術

從0開始的ABAP之旅 系列 第 28

Day 28 使用ABAP連接外部Data base

  • 分享至 

  • xImage
  •  

Hi 大家好

今天想分享如何用ABAP連結到外部DB,
之前有介紹過外部想要獲取SAP內的資料,
那SAP想要獲得外部資料呢?
除了外部主動Insert資料到SAP的DB以外
SAP也可以連接外部DB來取得資料

Perform一個子程式,
並傳入DB NAME:TEST_DB
Schema NAME:DBO

perform connect_ext_db using 'TEST_DB' 'DBO'.
 data: lo_cx_sql  type ref to cx_sql_exception.

宣告變量 lo_cx_sql,它的類型是 cx_sql_exception,用來捕捉在資料庫連接過程中可能出現的 SQL 相關異常。

clear: %g_er_msg.

%g_er_msg: 這是一個全局變數,用來存儲與資料庫連接相關的錯誤訊息。代碼開始時清空,以確保不會有舊的錯誤訊息。

if f_dbcon_name is not initial.
    %g_dbcon_name = f_dbcon_name."DB connect Name
  endif.

  if f_schema_name is not initial.
    %g_schema_name = f_schema_name."DB schema Name
  endif.

如果f_dbcon_name不是空白,把DB名稱賦值給 %g_dbcon_name
如果f_schema_name 不是空白,把schema名稱賦值給%g_schema_name

使用try語法

TRY...CATCH 是一種用來處理異常(例外狀況)的語法結構。這種結構允許你捕捉程序中可能發生的錯誤或異常狀況,並在發生異常時進行處理。

try.
%o_conn = cl_sql_connection=>get_connection( %g_dbcon_name ).

    catch cx_sql_exception into lo_cx_sql.
      %g_er_msg = lo_cx_sql->get_text( ).
      if %g_er_msg is initial.
        concatenate 'Connect to DB:' %g_dbcon_name 'Error'
        into %g_er_msg separated by space.
      endif.
      endtry.

如果連接失敗,將捕捉 cx_sql_exception 異常,並使用 lo_cx_sql->get_text() 來獲取錯誤信息。
如果沒有找到具體的錯誤信息(即 %g_er_msg 是初始值),則會產生一條錯誤信息:'Connect to DB:' 'Error'。

以上就是今天的分享


上一篇
Day 27 ABAP 下拉式選單
下一篇
Day 29 ABAP中的MACRO
系列文
從0開始的ABAP之旅 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言