Open Hub-怎么把数据从BW传出去

今天人家问我,openhub到别的数据库上怎么是两个不同的地方。
这个问题问的我很懵,因为我知道Oracle那会还是十几年前。我感觉,我啥也不会啊。

今天就来研究研究这个OpenHub到底怎么出去。

文章目录

    • 1. 把数据传到其他数据库表
    • 2. 把数据传到文件
    • 3. 从外部系统看open hub出来的数据

前提是,你数据已经到infoProvider里面或者到数据源里面了。
哪些小对象能用openhub把数据传出去呢?

也就是说哪些对象能作为openhub的源呢?
很多啊,从这里就能看到了,甚至是query都能给传出去。
我有一点疑问就是infosource我理解是个虚拟的,咋也能传出去呢?暂时不管。因为按我这个虚拟的思路延伸,那infoprovider里面也会有CP。

SAP的解释是:只要能用DTP的,都能被当成openhub的源
query是咋用的?
Open Hub-怎么把数据从BW传出去_第1张图片
还有目标是file和database table这个不讲了。
数据库表可以在BW里面或者其他SAP NetWeaver支持的数据库系统。可以用APIs,SAP Data Services或者第三方工具给数据传到下线系统。

把数据传出去需要几步?

  1. 创建Open Hub目标结构,告诉它传什么字段出去,传到哪里去。
  2. 创建转换,转换规则里的从master data读数(就是个关联外键),时间转换,货币转换和单位转换都不能用的。为啥?不支持?
  3. 创建DTP。
    Open Hub-怎么把数据从BW传出去_第2张图片

1. 把数据传到其他数据库表

其实,这里有一个小知识点,就是这个DBCON在哪里设置的?
Open Hub-怎么把数据从BW传出去_第3张图片
在这里插入图片描述
如果出去到数据库,从这里我们看到它出去的路有三条:

  1. 本地数据库
  2. SDA
  3. 到其他数据库(通过DBCON)

Open Hub-怎么把数据从BW传出去_第4张图片
但看这个传到其他数据库去。
其实这个是Basis的活,但我们去选数据库的时候看得到有basis给我们设置好了的数据库。
这个在哪里设置的呢?

你在DBCON这个表里能看到。用SM30维护。
或者用tcode DBCO去看:
在这里插入图片描述
每个关联的数据库会有一个连接名。
数据库类型。
用户名密码。
数据库信息:数据库名,运行的主机。
测试连接是否成功用report:
ADBC_TEST_CONNECTION

新建数据库连接需要用Native SQL语句。

当选择export到数据库表的时候,激活open hub之后,会有一个数据库表生成了。前缀是/BIC/OH***
Open Hub-怎么把数据从BW传出去_第5张图片
当你说要把数据export出去的时候,可以是保留数据,也可以删除数据。
Open Hub-怎么把数据从BW传出去_第6张图片
如果你选delete and insert就是每次抽取完全删除表并且重新生成。如果你是full抽取,那可以。
如果选下面的Keep data,那系统只会在第一次抽取前生成表一次,以后会保留历史数据的。

对于delta类型抽取,一般咱选第三个,保留历史数据,并且只插入新的delta数据。

但是说你改了openhub的字段的话,表是会被删除并且重新生成的。

除此之外,Key 有技术键和语义键。
在这里插入图片描述
你选了技术键,会有一个唯一键,OHREQUID( open hub request ID), DATAPAKID 和 RECORD.这些跟着DTP请求来的,这个对于不删表的情况很有用。万一有重复数据进来,不同技术主键不会dump。
如果选语义键,所有的字段都会作为语义键。可能会有重复值,所有的数据条目被保存。
(2022-09-28 : 我今天看了下根本不是的,不是所有字段作为语义键,而是在转换里面能看到的哪个字段是主键,那就会用哪个字段,如果有重复值,那就会被覆盖,只会有一条。而技术键就是那三个了)

2. 把数据传到文件

文本文件的格式有csv,ASCII, XML .
当你用文本文件的时候,会有同时一个控制文件。
这个file可以存放到application server或者是本地。

本地文件最大0.5G 。 大文件只能放在application server上。

3. 从外部系统看open hub出来的数据

我们这个就是要从Open Hub导出到Oracle数据库去。直接从SAP BW连接到Oracle。
这个是直接导出,不是说有个BODS的ETL工具去连接到Oracle然后导出的。
从外部来看,就是我要去从openhub读数据。
那就是得先配置DBCON到一个数据库表。BW版本是on HANA之后的都行。
先建一个open hub。
Open Hub-怎么把数据从BW传出去_第7张图片
然后选database table,选technical key。这个就是用到了请求号,包号之类的技术键。
semantic key就是表自己的主键。
Open Hub-怎么把数据从BW传出去_第8张图片
你激活的时候,就会在外面这个数据库里生成这个表名。
前缀是/BIC/OH…
如果你不想保留历史数据,那就选delete data and insert data sets。这样每次抽取表会被全部删除并且重新生成。
Open Hub-怎么把数据从BW传出去_第9张图片
如果不是选delete,那么这个表就只在第一次抽取的时候生成一次。那这个表里就会有历史数据。
一般主数据open hub就选第一个,以免不必要的麻烦。
对于选择technique key 呢,就是对于你不删除数据,还往表里填的情况有用。因为你不删数据,如果你还选sementic它自己的语义主键,那么相同主键的条目就会有个dump。这时候你不删数据,但是加了个请求号啥的技术主键,就不会有重复的。不过问题就是,那你除了请求号之外就有很多重复的了。
就这么个差别。
如果你选语义键,你要知道建open hub的时候不选主键的。这个语义主键会把所有的openhub字段都标志成sementic key。当然你可以在field list里面修改哪些是语义键。所以你用语义键会有重复。

你这个DB Connection已经建好了的话,也就是会直接生成表和数据到数据库里。
具体怎么连接看这里:
https://help.sap.com/viewer/ff18034f08af4d7bb33894c2047c3b71/7.5.23/en-US/48bbe36fd880307ce10000000a42189b.html

你可能感兴趣的:(BW4HANA,其他)