ABAP Netweaver

在SAP基于Netweaver的ABAP应用里,应用开发人员用Open SQL访问数据库, 这些Open SQL会被Database interface(数据库接口)转换成各种数据库提供商支持的原生SQL语句然后执行。

Netweaver 支持的数据库提供商在表DBCON的DBMS字段里能看到:

除了普通的ABAP Open SQL的语句用于业务数据的增删查改之外,SAP CRM和C4C里还支持Enterprise Search(有时也成为simple search,模糊搜索), 就是类似Google搜索一样,用户只需要指定待搜索值,而无需指定该搜索值对应的搜索条件。

在这两个产品里的Enterprise Search实现原理实际上是应用程序发起一个RFC(Remote Function Call)到TREX服务器上拿到查询结果。

关于SAP TREX介绍请参考wikipedia.

https://en.wikipedia.org/wiki/TREX_search_engine

Hybris

Hybris里也有和CRM WebUI里的API层起同样作用的层,封装了对DB的操作。

Hybris里对数据库的访问实现是封装在大量以DAO(Data Access Object)结尾的Java class实现的,相当于SAP CRM API层的那些function module。

随便点开一个DAO看实现,里面也是拼SQL语句然后抛到DB去执行:

上图代码里拼装的SQL语句也不是数据提供商相关的原生SQL语言,而是一种新的语言,称为Flexible Search。类似ABAP的OPEN SQL一样,它将Hybris应用访问数据库层的代码和底层数据库解耦。

在Hybris帮助文档上能看到支持的数据库列表:

在Hybris开发环境下使用的数据库名叫HSQLDB: 一个轻量级的纯Java开发的开放源代码的关系数据库系统


要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

SAP Netweaver和Hybris的数据库层的更多相关文章

  1. CRM, C4C和SAP Hybris的数据库层设计

    SAP的product都是DB provider无关的. CRM大家都很熟悉了,application developer最多用Open SQL直接操作表. Netweaver里支持的DB provi ...

  2. Salesforce和SAP Netweaver里数据库表的元数据设计

    从Salesforce官网可以了解到Salesforce的force.com平台里数据库表的设计:https://developer.salesforce.com/page/Multi_Tenant_ ...

  3. 还在写SQL做SAP二开?通过RFC调用NetWeaver,让HANA数据库操作更可靠

    相比于从零开始构建全套信息化系统,基于成熟的ERP等行业软件做二次开发是更多中大型企业应对个性化软件需求的首选方案.如何在二开模块中,可靠地对成品软件的数据库进行读写操作,以满足单据自动创建.元数据自 ...

  4. GZFramwork数据库层《四》单据主从表增删改查

    同GZFramwork数据库层<三>普通主从表增删改查 不同之处在于:实例 修改为: 直接上效果: 本系列项目源码下载地址:https://github.com/GarsonZhang/G ...

  5. GZFramwork数据库层《三》普通主从表增删改查

    运行结果: 使用代码生成器(GZCodeGenerate)生成tb_Cusomer和tb_CusomerDetail的Model 生成器源代码下载地址: https://github.com/Gars ...

  6. GZFramwork数据库层《二》单据表增删改查(自动生成单据号码)

    运行效果: 使用代码生成器(GZCodeGenerate)生成tb_EmpLeave的Model 生成器源代码下载地址: https://github.com/GarsonZhang/GZCodeGe ...

  7. GZFramwork数据库层《前言》Demo简介

    本系列旨在熟悉GZFramwork数据库层操作,对数据库表进行增删改查,单据编号生成等: 详细见图: 普通单表操作: 数据库建模: 创建表脚本: from sys.sysreferences r jo ...

  8. GZFramwork数据库层《前言》DLL项目引用

    新建项目: 1. 项目引入GZFramwork.dll NuGet地址:Install-Package GZFramwork 每个项目都引用 2.BLL层 设置数据库连接维护类:继承于:GZFramw ...

  9. GZFramwork数据库层《一》普通表增删改查

    运行结果:     使用代码生成器(GZCodeGenerate)生成tb_MyUser的Model 生成器源代码下载地址: https://github.com/GarsonZhang/GZCode ...

随机推荐

  1. css雪碧图制作

    使用css背景合并工具cssSprite 工具下载链接: http://download.csdn.net/download/wx247919365/8741243 1.选择文件 2.生成雪碧图 3. ...

  2. Linux 文件系统的目录结构

    http://www.jb51.net/LINUXjishu/151820.htmlLinux下的文件系统为树形结构,入口为/ 树形结构下的文件目录: 无论哪个版本的Linux系统,都有这些目录,这些 ...

  3. opencv-将分离合并图像(Red通道>125置255<=置0)

    #include <iostream> #include <opencv2/opencv.hpp> #include "opencv2/imgproc/imgproc ...

  4. ls -ilh 查看文件属性

    属性信息[H0f@localhost ~]$ ls -hiltotal 12K139323 -rw-rw-r--. 1 H0f H0f    7 Mar 14 00:49 1.txt139318 -r ...

  5. STL 部分学习 未整理

    https://www.cnblogs.com/pugang/archive/2012/02/10/2345942.html

  6. jdk源码分析——java.lang.Boolean

      1.Boolean类里面的2个静态变量. Boolean类,直接声明了2个静态变量,TRUE 和 FALSE,指向2个对象.     public static final Boolean TRU ...

  7. 关于Ajax的优点与缺点

    AJAX (Asynchronous Javascript and XML) 是一种交互式动态web应用开发技术,该技术能提供富用户体验. 完全的AJAX应用给人以桌面应用的感觉.正如其他任何技术,A ...

  8. Django重新整理

    1.母版的继承 #base<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset ...

  9. SimpleAdapter与listview,gridview的组合用法

    首先要明白SimpleAdapter构造方法的几个参数的含义: public SimpleAdapter(Context context, List<? extends Map<Strin ...

  10. Apache-ant安装以及环境变量配置、验证

    (一)安装 ant 下载地址: http://ant.apache.org/     根据自己电脑下载对应版本 下载完成以后,可自行解压到自己常用的盘中,但是要记住解压到哪里了,以便后续的环境变量配置 ...