如何实现SAP跨系统取数
2010-06-22 14:38
651 查看
创建连接参数
公司在实施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(250) TYPE c.
DATA: BEGIN OF WA_TRANS,
DEPARTMENTID TYPE N,
NAME(50) TYPE C,
DESCRIPTION(1000) TYPE 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.
公司在实施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(250) TYPE c.
DATA: BEGIN OF WA_TRANS,
DEPARTMENTID TYPE N,
NAME(50) TYPE C,
DESCRIPTION(1000) TYPE 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.
相关文章推荐
- SAP 如何实现跨系统取数 SAP读取ORACLE或者SQL server数据库
- 如何将程序添加到系统服务实现开机自启动
- 如何实现系统自带下拉刷动画效果?
- VM Workstation中如何实现Linux系统的通信
- 如何在openWRT系统上实现双版本
- SAP如何直接往系统中数据库表插入数据
- 如何实现一个文件系统
- ABAP--如何实现交货单的任何一item库位发生人工修改时系统自动更新所有items(感谢天元提供)
- 如何实现缓存系统的更新机制
- 如何实现缓存系统的更新机制
- sap增强-如何创建badi即实现
- 权限管理系统如何分别实现对用户和角色的授权
- 面试算法:如何利用堆排序实现系统的Timer机制
- ThinkPHP3.2.3如何实现系统登录日志?
- <为知更新>Android系统如何实现UI的自适应
- 如何实现一个文件系统
- IOS-50-微信朋友圈一片模糊,教你在Mac和window系统下如何实现网络数据抓包
- 商淘软件:以wstmart开源商城系统说明ThinkPHP 5.0如何实现自定义404(异常处理)页面
- 如何在VMware中实现Linux系统与Windows系统的文件交换
- sap 如何实现打印输出到Adobe PDF格式文件