您的位置:首页 > 数据库

SAP调用外部数据库

2014-03-16 13:44 309 查看
SAP 中可以通过配置数据库的链接,来完成从SAP链接到外部的数据库中进行处理数据,具体操作如下:

1、先进入事务:DBCO,设置数据库链接。进入该事务后,如果系统已经有配置过类似链接则会出现在如下画面中,如图1:

*&---------------------------------------------------------------------*
*& Report  ZQIU_TEST46
*&
*&---------------------------------------------------------------------*
*& 从SAP获取SRM中的数据
*& SRM的数据库为Oracel
*&---------------------------------------------------------------------*

REPORT  zqiu_test46.

TABLES dbcon.

TYPES: BEGIN OF gs_asn,
vendor_code(100) TYPE c,"供应商代码
vendor_name(100) TYPE c,"供应商名称
ship_date        TYPE d,"发货日期
"creation_date    TYPE d,"创建日期
org_code(100)    TYPE c,"公司代码
item_code(30)    TYPE c,"物料编码
item_name(1000)  TYPE c,"物料描述
"ship_quantity
segment1(30)     TYPE c,"订单号
line_num(30)     TYPE c,"行号
END OF gs_asn.

DATA: gt_asn TYPE STANDARD TABLE OF gs_asn,
gw_asn TYPE gs_asn.

FIELD-SYMBOLS:<fs_asn> TYPE gs_asn.

CONSTANTS p_connr TYPE dbcon-con_name  VALUE 'ZDBC0002'.

*TRY.
*  EXEC SQL.
*    CONNECT TO :p_connr
*  ENDEXEC.
*  EXEC SQL.
*    SET CONNECTION :p_connr
*  ENDEXEC.
*
*  IF sy-subrc EQ 0.
*    WRITE: / '连接成功!'.
*  ELSE.
*    WRITE: / '连接失败!'.
*  ENDIF.
*ENDTRY.

START-OF-SELECTION.
PERFORM frm_get_data.

*&---------------------------------------------------------------------*
*&      Form  frm_get_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM frm_get_data.
TRY.
EXEC SQL.
connect to :p_connr
ENDEXEC.
EXEC SQL.
set connection :p_connr
ENDEXEC.
EXEC SQL PERFORMING frm_get_lines.
select a.vendor_code,
a.vendor_name,
a.ship_date,
a.org_code,
b.item_code,
b.item_name,
b.segment1,
b.line_num
into :gw_asn-vendor_code,
:gw_asn-vendor_name,
:gw_asn-ship_date,
:gw_asn-org_code,
:gw_asn-item_code,
:gw_asn-item_name,
:gw_asn-segment1,
:gw_asn-line_num
from inv_asn_headers a inner join inv_asn_lines b on a.asn_header_id = b.asn_header_id
where b.segment1 = '60036078'
and b.status = 'NEW'

ENDEXEC.

"关闭连接
EXEC SQL.
DISCONNECT :p_connr
ENDEXEC.
ENDTRY.

IF gt_asn IS NOT INITIAL.
WRITE:/ '获取数据成功!'.

PERFORM frm_out_put.
ENDIF.

ENDFORM.                    "frm_get_data

*&---------------------------------------------------------------------*
*&      Form  frm_get_lines
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM frm_get_lines.
APPEND gw_asn TO gt_asn.
ENDFORM.                    "frm_get_lines

*&---------------------------------------------------------------------*
*&      Form  frm_out_put
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM frm_out_put.
LOOP AT gt_asn ASSIGNING <fs_asn>.
WRITE: / <fs_asn>-vendor_code,<fs_asn>-vendor_name,<fs_asn>-ship_date,<fs_asn>-

org_code,<fs_asn>-item_code,<fs_asn>-item_name,<fs_asn>-segment1,<fs_asn>-line_num.
ENDLOOP.
ENDFORM.                    "frm_out_put


View Code
(注:参考来源 http://wenku.baidu.com/link?url=NNWN6JwQIEIsCmGX2z56W-GmNiWf0mX99coAK8BBYxylhl8khM-GttTb70RsWS_X2kkGkh591cQIhUqB0smanFJwm5PZGIWkXuKjY6B152K

(注:该文是本人在实践中的结果,如果有什么不足与问题望大家能指出,谢谢!O(∩_∩)O~!!!)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: