公众号:SAP Technical
本文作者:matinal
 

前言部分

大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。

正文部分

一、链接SQLServer数据库

执行事务码DBCO,点新条目按钮,填写如下图所示信息

这里的连接信息很接近 Sql Server 的连接字符串,但是参数名略有不同。指定主机IP、数据库名即可。

二、链接DB2数据库
执行事务码DBCO,点新条目按钮,填写如下图所示信息

连接信息看上去比较直接,分别是数据库名、端口号、主机IP地址。

三、链接Oracle数据库

执行事务码DBCO,点新条目按钮,填写如下图所示信息

连接信息比较隐晦,必须在 SAP 应用服务器上安装 Oracle Client,然后设置连接,并在这里将连接信息指定与连接名一致。
为了防止乱码,我们还应该在链接信息后加如下参数:ZHS16GBK
格式如下:ORCL.WORLD:ZHS16GBK

四、链接MaxDB数据库

执行事务码DBCO,点新条目按钮,填写如下图所示信息

MaxDB 是 SAP 自己的数据库,这个连接则是 NetWeaver Developer 版中默认创建的一个连接

访问外部数据库

1. 实例:SAP系统访问PeopleSoft数据库

*&----------------------------------------------------------------------------------------------------- &*
*& 定义常量                                                                                           &*
*&------------------------------------------------------------------------------------------------------&*
CONSTANTS: CNS_YGJK TYPE C LENGTH VALUE 'HR9DEV'. 
 
**打开连接
  EXEC SQL.
    CONNECT TO :CNS_YGJK
  ENDEXEC.
 
***获取人事数据
  TRY.
      EXEC SQL PERFORMING PF_GET_RS.
        SELECT MANDT,
               ZID,
               OTYPE,
               INFTY,
               ZUPDATE,
               OPERA,
               ZDATA
          INTO :WA_HR01-MANDT,
               :WA_HR01-ZID,
               :WA_HR01-OTYPE,
               :WA_HR01-INFTY,
               :WA_HR01-ZUPDATE,
               :WA_HR01-OPERA,
               :WA_HR01-ZDATA
          FROM z00hrjzlch01
         WHERE SAP_GET = ''
      ENDEXEC.
 
**处理人事数据
      IF IT_HR01[] IS NOT INITIAL.
        LOOP AT IT_HR01 INTO WA_HR01.
          EXEC SQL.
            UPDATE z00hrjzlch01
               SET SAP_GET = 'X'
             WHERE MANDT = :WA_HR01-MANDT
               AND ZID = :WA_HR01-ZID
          ENDEXEC.
          IF SY-SUBRC = .
*********更新ERP数据库表
            EXEC SQL.
              COMMIT
            ENDEXEC.
            MODIFY Z00HRJZLCH01 FROM WA_HR01.
            COMMIT WORK.
          ENDIF.
        ENDLOOP.
      ENDIF.
**关闭连接
      EXEC SQL.
        DISCONNECT :CNS_YGJK
      ENDEXEC.
**获取异常
    CATCH CX_SY_NATIVE_SQL_ERROR INTO CL_EXEC_REF.
      EXIT.
    CATCH CX_SQL_EXCEPTION INTO CL_SQLERR_REF.
      EXIT.
  ENDTRY. 
*&---------------------------------------------------------------------*
*&      Form  PF_GET_ZZ
*&---------------------------------------------------------------------*
*       组织增量数据
*----------------------------------------------------------------------*
FORM PF_GET_ZZ .
  APPEND WA_HR02 TO IT_HR02.
ENDFORM. 

事务代码:DBCO查看,SAP系统现存的连接

程序中使用的是连接【HR9DEV.WORLD】,双击这行如下图所示:

先在SAP底层ORACLE数据库编辑TNS文件,一般由BASIS配置完成,配置路径:DIR_ORAHOME->network->admin->tnsnames.ora;配置完成后我们可以用事务码:AL11查看配置是否正确,AL11查看连接【HR9DEV.WORLD】具体配置

【ABAP系列】SAP 使用事务码DBCO实现SAP链接外部数据库以及读取例程的更多相关文章

  1. 【ABAP系列】【第五篇】SAP ABAP7.50 之用户接口

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列][第五篇]SAP ABAP7.5 ...

  2. 【ABAP系列】【第六篇】SAP ABAP7.50 之隐式增强

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列][第六篇]SAP ABAP7.5 ...

  3. SAP 用事务码SQVI 做简单报表 .

    集团计划总监要去德国参展,要一份离当前日期最近的出口欧美国家产品单价. 需要从A903,MARA,KONP,MATK 这4张表里取数. 1)Tcode:SQVI进入,如图 2) 在快速浏览处输入名称: ...

  4. SAP Idoc 事务码

    SALE Display ALE Customizing SM59 RFC Destinations (Display/Maintain) BD64 Maintenance of Distributi ...

  5. 【FICO系列】SAP FICO总账余额相关的事务码

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[FICO系列]SAP FICO总账余额相关的事 ...

  6. 【ABAP系列】SAP ABAP 为表维护生成器创建事务代码

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 为表维护生成器 ...

  7. [SAP ABAP开发技术总结]ABAP常用事务码

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  8. ABAP常用事务码

    开发----------------------------------------------- SE51  屏幕制作 SE91  MESSAGE OBJECT SE80  对象浏览器(可以建开发类 ...

  9. 【ABAP系列】SAP ABAP 资产类BAPI过账 BAPI_ACC_DOCUMENT_POST

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 资产类BAPI ...

随机推荐

  1. Java程序中使用 Jsoup 爬虫( 简单示例 )

    一.maven项目里pom添加jsoup依赖 <dependency> <groupId>org.jsoup</groupId> <artifactId> ...

  2. Oracle查询死锁

    select sample_time,session_id,sql_id,event,sql_plan_hash_value,blocking_session from dba_hist_active ...

  3. Solr full improt时遇到的问题

    安装和配置solr转载于:https://blog.csdn.net/u010510107/article/details/81051795jdk1.8 solr7.2 mysql8.0.17-bin ...

  4. Mysql入门-对表数据的增删改查

    这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mysql的时候, ...

  5. BZOJ 3270: 博物馆 概率与期望+高斯消元

    和游走挺像的,都是将概率转成期望出现的次数,然后拿高斯消元来解. #include <bits/stdc++.h> #define N 23 #define setIO(s) freope ...

  6. 汇编call jmp理解

    CALL   指令在实现转移之前,   要将返回地址存入堆栈的,   以便子程可以通过   ret   指令返回到   CALL   指令下面的指令接着运行;   jmp   就没用这些事儿,   直 ...

  7. 51 Nod1042 数字0到9的数量

    1042 数字0-9的数量  基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 给出一段区间a-b,统计这个区间内0-9出现的次数. 比如 10-19 ...

  8. CDOJ 1264 人民币的构造 区间问题+数论

    人民币的构造 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit Status ...

  9. java输出txt文件到桌面

    private static void outputTxt(String ExportFailStudentMsg){ FileSystemView fsv = FileSystemView.getF ...

  10. nagios监控部署

    nagios监控部署. 在部署之前把依赖包安装了. [root@tiandong63 ~]# yum install -y gcc glibc glibc-common php gd gd-devel ...