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,并不对系统造成影响,参考以上初始化信息包的影响。
posted @ 2012-11-29 12:19  hanmos  阅读(951)  评论(0编辑  收藏  举报