如何实现SAP跨系统取数

创建连接参数

公司在实施SAP后,可能会与其他业务系统进行集成。这样,就需要不同系统间进行同步数据,下面介绍SAP如何从其他数据库读取数据。以SQL为例。

第一步:创建数据库连接参数,键入DBCO,进入数据库连接总览界面。添加一个新的连接参数,输入连接名,DBS是指连接数据库的类型,SQL的为MSS,用户名,需在数据库系统中存在的,密码,连接信息:MSSQL_SERVER=IP adress MSSQL_DBNAME=dbname OBJECT_SOURCE=dbname

 

ABAP编码

然后键入se38,新建一个报表程序。以下是代码内容。

REPORT  YTEST003.

DATA g_conexion LIKE dbcon-con_name VALUE 'YANGTEST'.

DATA: exec_ref TYPE REF TO cx_sy_native_sql_error,
      error_text 
TYPE string.

DATA: g_errorstr(250TYPE c.

DATABEGIN OF WA_TRANS,
  DEPARTMENTID 
TYPE N,
  NAME(
50TYPE C,
  DESCRIPTION(
1000TYPE C,
  
END OF WA_TRANS.

  START-
OF-SELECTION.


PERFORM sub_conndb USING g_conexion.
PERFORM getdata.
END-OF-SELECTION.

FORM sub_conndb USING conn LIKE dbcon-con_name.
  
CLEAR g_errorstr.
  g_conexion = conn.
TRY.

 
EXEC SQL.
        CONNECT 
TO :G_CONEXION
      
ENDEXEC.
      
EXEC SQL.
        
SET CONNECTION :G_CONEXION
      
ENDEXEC.
    
CATCH cx_sy_native_sql_error INTO exec_ref.
      
CONCATENATE '无法连接至SQL数据库   连接名:' g_conexion INTO g_errorstr.

ENDTRY.
ENDFORM.



FORM getdata.
TRY.
      
EXEC SQL.
         
OPEN CURSOR dbcur FOR
        
SELECT     *
             
FROM  DEPARTMENT
      
ENDEXEC.
      
DO.
        
EXEC SQL.
          
FETCH NEXT dbcur INTO :wa_trans.
        
ENDEXEC.
        
IF sy-subrc <> 0.
          
EXIT.
        
ELSE.
          
WRITE:/ WA_TRANS-NAME,WA_TRANS-DESCRIPTION.
        
ENDIF.
      
ENDDO.
          
EXEC SQL.
        
CLOSE dbcur
      
ENDEXEC.

    
CATCH cx_sy_native_sql_error INTO exec_ref.
      g_errorstr = exec_ref->get_text( ).
      
CONCATENATE '读取数据出错,  连接名:' g_conexion  g_errorstr INTO g_errorstr.

      
WRITE:/ g_errorstr.
      
ENDTRY.

  
ENDFORM.

你可能感兴趣的:(ABAP)