`
lzkyo
  • 浏览: 455358 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

BW之R3数据源及PSA

 
阅读更多
BW数据源主要有R3、文件、数据库、UD、WEB服务,R3数据源在BW的数据源中占有比较大的比重,因为我们使用BW就是因为我们已经使用了R3,正所谓上贼船容易下贼船难。我们这里讨论的数据源,只关注数据源在R3端的修改、增强,直到数据传输到PSA(Persistent Staging Area,不管定义如何,这是数据上载BW的第一步)中,此处不讨论DELTA机制,我们以后会介绍。
1. 标准数据源:
在系统中,通过RSA5(激活数据源)、RSA6(增强或整理数据源目录)。
1) 数据源目录整理(RSA6/RSA8)
通过 在选择的目录可以创建其下级的目录,通过 选中某目录,然后将光标放在一目录上,点击 ,就可以将选择的目录,移到光标目录下。如下图,HIER_ROOT就是我们自己创建的目录,将我们关心的数据源放到其下。
 
2) 数据源激活
RSA5与RSA6的界面基本一样,只是菜单有区别。在46C版本中,并不是激活的数据源才能显示在BW中,就算不激活数据源,也一样可以复制元数据到BW中。激活数据源,我们可以把数据源放到Change request下。我想这可能是激活数据源的唯一功能了。
 
2. 数据源增强(RSA6):
R3数据源的增强的功能,一句话,就是将我们想要的相关数据传输到BW中,再换句话说,就是提高BW基础数据的“颗粒度”(很好的词哦)。
数据源分为结构和功能增强,以0FI_GL_4为例,0FI_GL_4的数据源是BKPF和BSEG表。对于结构的增强,如果字段是存在于BKPF和BSEG,可以直接将字段添加到APPEND结构中,程序是按照CORRESPONDING的方法将字段赋值的。另外,我们可以对字段进行“选择”、“隐藏”的操作。
对于功能的增强,需要用到用户出口CMOD中去做。
NOTE:SAP提供了每个数据源对应的数据源表,我们可以到SAP HELP上去查,方便我们对数据源的理解。下面是BICONTENT的HELP地址。
http://help.sap.com/saphelp_nw70/helpdata/en/3d/5fb13cd0500255e10000000a114084/frameset.htm
1) 增强结构:
对于第一次增强结构,选中0FI_GL_4,点击 ,系统提示,新建APPEND结构,如果APPEND结构已经创建,直接修改就可以。
 
添加我们关心的字段,并激活结构。
 
这样,我们就实现了对数据源的提取结构增强,如果所添加的字段在BKPF,BSEG中存在,不需要做任何设置,如果不存在,还需要到用户出口中添加字段的取数逻辑。
对于后勤模块(如MM,SD),可以到LBWE中,添加字段,此处不讨论。
选中0FI_GL_4,点击 ,可以对数据源字段进行配置:
 
提取结构:按照DTFIGL_4的结构取数。我们刚才添加的ZADTFLGL_4就是APPEND到这个结构上。
A 选择:如果勾选,我们可以按照选择字段来对数据进行筛选,可以通过RSA3测试。
B 隐藏字段:如果勾选,字段将被隐藏,不在BW数据源中出现。
C 转换:如果数据被冲销,那么在增量抽取的时候,数据要求取反转的操作,即:* -1。在财务中,我们的的冲销操作都对应了一个冲销凭证,这里我们不做选择。
D 仅在客户退出中已知的字段:标识只做逻辑使用,不在数据源中存在,即:在R3中存在,在BW中不存在。
2) 增强功能(CMOD):
进入CMOD,新建项目,分配组件RSAP0001到项目中,然后点击 :
 
EXIT_SAPLRSAP_001:增强业务数据源
EXIT_SAPLRSAP_002:增强主数据属性数据源
EXIT_SAPLRSAP_003:增强主数据文本数据源
EXIT_SAPLRSAP_004:增强层次结构数据源。
几种增强的参数差不多,我们以业务数据增强为例:
*----------------------------------------------------------------------*
*   INCLUDE ZXRSAU01                                                   *
*----------------------------------------------------------------------*
data: l_dtfiar_3 type dtfiar_3,"应收
      l_dtfiap_3 type dtfiap_3,"应付
      l_dtfigl_4 type dtfigl_4."总账行项目
case i_datasource.
*应收数据数据源,抽取汇票签发日,备用
  when '0FI_AR_4'.
    loop at c_t_data into l_dtfiar_3.
      select single wdate
        into l_dtfiar_3-wdate
        from bsed
        where bukrs = l_dtfiar_3-bukrs
          and belnr = l_dtfiar_3-belnr
          and gjahr = l_dtfiar_3-gjahr
          and buzei = l_dtfiar_3-buzei.
       if sy-subrc = 0.
         modify c_t_data from l_dtfiar_3.
       endif.
    endloop.
*应付数据数据源,抽取汇票签发日,备用
  when '0FI_AP_4'.
    loop at c_t_data into l_dtfiap_3.
      select single wdate
        into l_dtfiap_3-wdate
        from bsed
        where bukrs = l_dtfiap_3-bukrs
          and belnr = l_dtfiap_3-belnr
          and gjahr = l_dtfiap_3-gjahr
          and buzei = l_dtfiap_3-buzei.
       if sy-subrc = 0.
         modify c_t_data from l_dtfiap_3.
       endif.
    endloop.
*总账行项目数据源,抽取汇票签发日
  when '0FI_GL_4'.
    loop at c_t_data into l_dtfigl_4.
      select single wdate
        into l_dtfigl_4-wdate
        from bsed
        where bukrs = l_dtfigl_4-bukrs
          and belnr = l_dtfigl_4-belnr
          and gjahr = l_dtfigl_4-gjahr
          and buzei = l_dtfigl_4-buzei.
       if sy-subrc = 0.
         modify c_t_data from l_dtfigl_4.
       endif.
    endloop.
endcase.

3. 数据抽取:
我们前面已经介绍了BW与R3的链接问题,具体请参考:
http://community.kingdee.com/pages/chunguangz/blog/archive/2010/02/23/399101.aspx
关于数据的抽取,分为3种:
完全抽取:一般适用于数据量不大的主数据,如:公司代码等。
初始化抽取:在增量抽取之前,需要先执行初始化抽取,告诉系统,我们是从哪里开始的。
增量抽取:即:将系统中发生变化的数据抽取。
数据抽取到系统中,是以IDOC方式上载,并按照字符数进行读取的,BW数据源中,列出了可以显示的字段,只定义了类型和长度,没有参考的数据元素。并且每个数据源对应着系统自动生成的数据表,我们从R3上载的数据首先上载到这个表里,这种数据上载和存放的方式叫做PSA(Persistent Staging Area)。
关于IDOC的数据传输,请参考以下文章:
http://community.kingdee.com/pages/chunguangz/blog/archive/2010/03/14/401326.aspx
我们这里讲初始化抽取和增量抽取,最后介绍初始化与完全抽取的区别。
初始化抽取:
初始化抽取的前提是数据源首先要是可以增量抽取的。
这里,我们以0FI_GL_4(销售分类账)为例,创建0FI_GL_4_I初始化信息包:
在数据源上,点击右键,“创建信息包”,
 
接下来我们创建信息包内容:
进行数据筛选,我们选择1003公司的数据,我们这里创建初始化信息包,如果以后还需要对其他公司进行数据抽取,再创建新的初始化信息包即可:
 
初始化抽取前,TAB更新,显示如下:
 
在TAB计划表中,选中“立即开始数据加载”,执行“开始”:
 
信息包被创建,对应的,建立了一个数据表,可以在SE11中,在描述中输入*0FI_GL_4*,搜索到。
之后可以到通过在数据源上点击右键->管理,查看执行状态,如果数据未上载到数据模型(DSO/CUBE等),那么显示 ,如果已经上载数据模型则显示
 
同时,我们在菜单:计划器->源系统的初始化选项中,可以看到初始化记录。
 
同时在R3中,我们在RSA7中,可以看到0FI_GL_7的记录,表示此数据源已初始化。
 
如果要删除初始化抽取的话,需要到BW中,菜单:计划器->源系统的初始化选项中,删除记录,对应的R3中RSA7的记录也会删除,不能直接删除R3的RSA7记录。
同时我们查看初始化信息包的TAB更新,可以看到变化,多了增量“更新选项”。
 
增量抽取:
再创建增量更新数据包,命名为0FI_GL_4_D:
TAB数据选择中,不允许我们更改选择,而是按照初始化的标准来增量更新数据,符合增量更新的标准。
 
TAB更新中,我们选择“增量更新”。
 
在R3源系统中,我们做一笔凭证后执行此信息包,查看效果(可能会等一段时间才能查看到效果):
其中 表示,抽取成功,但无数据符合条件。
 
同时,我们会在R3源系统的SMQ1中,查看到数据源的出站记录:
 
完全更新与初始化更新的区别:
完全更新只是将数据上载到PSA,并不对系统造成影响,参考以上初始化信息包的影响。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics