SAP BW面试问题大全(含答案) - 图文

更新时间:2024-07-06 23:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1.你工作过几年,你做过几个完整的项目?

答“我做过2个完整项目 现在在这个公司做外部顾问。 2.你主要负责哪一快?

答:我主要负责BW上面的FI和HR模块,对其他模块有所了解。 3.什么是DELTA机制?

答:答:delta机制分为两部分:数据源的delta机制、BW的delta机制:

数据源的delta分后勤数据源的delta机制、其他数据源的delta机制,后勤数据源的delta是通过extraction Q和delta Q、V3JOB来实现,首先通过IP whit out data打标,然后setup,通过full抽取从setup抽取数据,对于以后的增量数据,是ECC把业务数据自动push到extraction Q,然后通过V3job的方式把数据抽取到delta Q中,通过增量的ip从delta Q抽取数据实现增量;

其他数据源的delta机制,是通过时间戳打标,通过IP根据时间增量抽取数据; BW的delta机制,通过DSO的recordmodule实现 前像 冲销以前的数据,再产生一个后像,在往上上述的时候通过before inmage冲销,通过after inmage产生修改的后的数据;

Dso 往上上述一个dso时如果写的是在DTP中写的是全量更新则从dso的有效表中抽取数据,如果写的delta更新,则是通过changelog表抽取数据上述的上层的dso;

4.不同模块事务数据DELTA加载的操作过程一样吗?

答:不一样,MM有MM的DELTA機制,FI有FI的機制。 5.什么是数据源增强?

答:DATASOURSE的增强其实就是在标准DATASOURSE上面,修改结构,然后在EXTRACT数据的时候通过写ABAP命令取到自己要的数据放到DATASOURSE中。COMDE中有四个部分分别写代码:001业务数据 002 主数据属性 ;003主数据文本 ;004层次结构;

分两部分:数据源的增强;自定义需要提取的字段新建一个数据源,在BW侧再关联实现自己的需求;

6.CUBE和ODS最大的区别是?

答:最大的区别是CUBE的KEYFIGURE是累加的,但是ODS是可以OVERWRITE的,一般ODS用来放ITEM LEVEL的数据。 Cube可以对数据做压缩、聚集

Cube 是多维的星型模型,提高数据处理速度,减少冗余;dso :二维的存明细数据;dso上述需要激活、cube上述不需要激活; 7.你是怎么理解性能调优的?

答:CUBE优化包括压缩,分区,聚集和查询优化。

性能调优分两部分:query层面(数据提取出来后在query中整理展示)、DB层面(从的DB把数据提取处理啊)

DB层面:cube 的压缩使DB层面的数据尽量减少,压缩requst;压缩存在问题:压缩后不能根据request区分和删除数据;如果选择了with zero ,把数据里真的是0的数据压缩没了;

压缩可以设置到处理链中(compression of the cube)

创建压缩(rollup)时可以系统推荐创建运行时间大于某个值的查询,可以自己创建;(能在数据链中要增加roll up这个环节;在cube中执行 roll up)

聚集:设置聚集,按照用户的使用习惯把用户的查询维度设置成一个个的小的cube,这是在提取数据的时候直接从小的cube中提取数据;

Query层面的优化:想一些公式、选择、条件等放在query里处理的数据的会影响到query的速度;

分区:可以安装逻辑分区,把数据按照一定的条件分开,放在不同的cube中;创建分区步骤:选择cube(修改)--附加-数据库性能—分区:cube的数据中有日期字段,可以按照日期进行分区;

手工创建两个cube比如:3个月内的cube、3个月之前的cube,在上述是在transformation中写把当前数据放入3个月内的cube,把3个月之前的数据移入到3个月之前的cube里;

广播的方式也可提供查询速度,每天需要把用户执行的查询条件提前执行,并放到内存中,在白天用户使用报表时直接从内存中读取数据; 分区:

8.什么是清洗表?在哪里用?

答:就是自建一张表,里面有关键字段和数据字段,然后例程中会利用这张表来清洗数据 ,在转换的例程中用的比较多,用这个表的好处就是表里的内容可以随着业务变化随时

变,不用总是改程序。

9.BI CONTENTS激活后有没有自动加上INFOPACKAGE?

答:在DATASOURCE下面,先INSTALL好所有的東西之後,再手工去創建INFOPACKAGE,

INFOPACKAGE都是要自己手工去創建的。

10.你知道REAL-TIME有什么作用?

答:BW一般都是对历史数据分析用的,如果模型中需要实时的数据就要用到这种技术,但是这样系统效率很低,一般很少用到。

RDA(实时数据抽取)创建一个实时的cube,并加快delta抽取的时间,但是对于logistic数据源,V3job的抽取时间一定要和实时数据抽取一致或者短,要不实现不了实时;创建cube时选择实时:

基于功能模块就是通过写代码的方式,实时数据抽取; 11.R3目前有哪几种常见的数据提取方法?

答:LO提取:后勤数据提取,通用提取,CO-PA提取:财务里CO-PA,提取需要的字段和数据提取。

12.通用提取的数据来源有哪几种,是否可以DELTA加载?

答:TABLE/VIEW,INFOSET,FUNCTION MODULE,可以DELTA加载:。

13.LO提取的UPDATE MODE有哪几种?

答:Direct Delta:直接更新; Unserilized V3 update:无序的V3job, Queued Delta:队列增量, Serialized V3 Update。

14. RSA5, RSA 6, RSA 7各代表什么意思?

答:RSA 5:显示Delivery版本的BI CONTENT,可以激活BI CONTENT。 RSA 6:显示Active版本的BI CONTENT。 RSA 7:用来查看Delta Queque中的内容。

15. BI3.5和BI7.0加载数据步骤的区别?

答:BI3.5. 复制DATASOURSE3.x,创建Infosource, 建立DATASOURSE3.x和Infosource之间的Transfer rule,建立INFOCUBE/ods,建立Infosource和

INFOCUBE/ods之间的update rule,创建Inpackage加载数据。

BI7.0. 复制DATASOURSE,建立INFOCUBE/DSO,建立DATASOURSE和INFOCUBE/DSO之间的Transformation,针对DATASOURSE创建Infopackage,将数据加载到PSA,创建DTP,将数据从PSA加载到INFOCUBE/DSO.

16.LO抽取的步骤? 答:

一.传输DATASOURSE 二.维护提取结构

三.维护生成DATASOURSE

四.复制和激活SAP BI中的DATASOURSE

五.维护数据目标(DATASOURSE对象,INFOCUBE) 六.维护DATASOURSE和数据目标之间的转换 七.创建数据传输流程 八.激活提取结构

九.删除设置表/执行设置提取 十.选择更新方法

十一.增量初始化的infopackage 十二.必要时,计划V3集中运行 十三.增量上载的infopackage

17.数据源增强步骤?

答:一.在附加到DATASOURSE提取结构的附加结构定义要求的字段 二.写入你的功能出口以调用DATASOURSE的相关数据源 三.在BI中复制此DATASOURSE, 激活对应的DATASOURCE 四.为增强的DATASOURSE提取数据

18.什么是增量队列?(delta queue) 答:增量队列是新建或已更改数据记录的数据储存形式(上次数据请求以来出现的数据记录)。从系统收到数据请求时,会使用源系统中的更新流程或录入自动写入增量队列。

19.infopackage几种更新模式?

答:1完全更新2初始化增量流程(initial whit data,initial whitout data )3增量更新

20.什么是增量更新?

答:增量更新仅为源系统中的请求上次加载以来已创建或已更改(或已删除)的数据记录。

21.各个增量流程都支持哪些记录类型?

答:后像 空格;前像 X;反转象 R; 新象N;删除 D; ADD A。

22.平面文件的增量流程原理是怎么样的?

答:如果增量流程使用平面文件,数据不会通过增量队列传输到BI ,而是直接

从DATASOURSE 加载到PSA。

23.DSO分类有那几种?

答:标准DSO:3个表:有效表、NEW表,changelog表;优化DSO:有效表,直接写入DSO:有效表(通过程序直接写入)。

24.DSO对象的不同类型? 答:

1.标准DSO对象,具有已知的表活动数据、更改日志和激活队列。 2.优化的对象,针对大量数据仅具有一个活动数据表。

3.直接写入的对象,仅具有一个可用于分析程序(分析程序设计器)的活动数据表。此DSO对象替换早期版本中的事务性对象。

25.什么是多重提供器(mutli provider)?

答:是一种,它综合了多个的数据以用于报告。供者本身不包含任何数据。数据由所基于的这些合在一起进行合并操作。

26.什么是信息集(info set)?连接方式:left out join,join

答:信息集通常定义为数据,标准信息块;信息对象是时间相关特性,则交集是时间相关或临时交集,是数据源上的语法层。与典型集是特定的数据视图。

27.非聚集Key Figure、原理?

答:非聚集Key Figure有点类似计算字段,是从另外字段计算出来的。

28.什么是流程链? 答:流程链是一系列计划要在事件的后台等待的流程。这些流程中有些触发了单独的事件,该事件可以依次启动其他流程。流程链的每个流程等于计划与事件相关的基础系统中已批准的作业。

29.流程链--维护? 答:

* 通过事务代码调用流程链维护Tcode :rspc

* 在管理功能区域,选择导航窗格中的流程链,以调用流程链维护

* 在建模功能区域,通过选择工具栏上的流程链图标(或者从菜单选择编辑 → 流程链),您可以调用流程链维护。 * 选择工具栏中的流程链维护按钮,以便从所支持流程的维护对话访问流程链维护

在监控处理链经常出的问题:在处理链中由于ECC字符和BW定义的字符格式不一致,在上述时激活造成报错;

30.R/3系统抽取数据到BW系统里,是否必须要在R/3建立logical system,并指定?

答:从R/3系统抽取数据到BW系统里,必须要在R/3建立logical system,并指定。可以自己做一个DATASOURSE,也可以用RSA5 激活一个系统自带的\\DATASOURSE(在R/3下)。步骤大概是R/3 创建logical system,BW 创建logical

system,然后创建两个background

user,一个R/3的一个BW的,互相通信用。然后在BW创建个source system , transfer

R/3 global setting(change rate 也要传输),然后再复制data source。

31.建立模型时的导航属性具体含义是什么?

答:是在做查询的时候用的,过程是这样的,首先在主数据的导航属性里面选择某一个字段,例如物料主数据的物料组设置成 了导航属性,然后在INFOCUBE里面还有一个设置导航属性的地方,这里就是该INFOCUBE里面全部特性的导航属性的和(如果在特性里面没有选择导航属性,在INFOCUBE里面也找不到),在 INFOCUBE也选中该属性为导航属性后,物料组就可以作为物料的一个导航属性存在了,在做查询 的时候,物料组(在特性里面物料的下拉菜单中就会出现)就可以成为一个查询条件了或者做其他限制了。

32.把BW报表发布到EXCEL上,有一个变量日历年月,每天打开窗口时选择变量值时都是按顺序排的,因为Cube里的数据多较多了,每次都要翻好几页,有什么办法让弹出窗口 的信息是倒序排列的?

答:方法1.你可以于变量输入窗口,选择“单值”,点击“日历年/月”条目,可以切换

排序方式(升序或降序)。

方法2.可以用“日历年”加“日历月”变量替换“日历年/月”变量,同时设定查询默认值,这样可以减少条目数。

33.Query中的数据如何居中显示呢? 答:

1. 选择要修改的区域

2. 点击Bex 菜单中的Layout, 选择alignment 3. 设置Horizontal 为center

4. 保存Workbook即可在 query designer 中的 query properties, Display tab 可以选择 results position in number format, 可是只有 Bottom Left/Right, Top Left/Right. 没有居中。

34.对INFOCUBE进行数据显示时,发现某一条记录里有一关键值A,其值为23.3 同时对应的MulitProvider进行数据显示时发现该记录的关键值A的值为0.能过Query进行报表显示时,该记录的关键值同样显示为0? 答:MulitProvider中添加了INFOCUBE中的KF,但是没有指定从哪个INFOCUBE中获取;

在MulitProvider编辑界面左上角有按钮select key figures,点进去,在你需要的INFOCUBE的KF前打勾。

35.BI数据源系统激活时提示以下错误。no metadata upload since upgrade rsar 672怎么解决?

答:分步检查,缩小范围:

1.确认BW的源系统连接是有效的:BW系统的RSA1->源系统->选择你需要的源系统,用鼠标右键点击check。

2.如果源系统有问题,可以用sm59测试看看RFC连接是否正确。 3.如果源系统没问题,可以重新复制数据源。

4.正常此步骤后复制过来的数据源应该就是正确的。

36. BW采购标准CUBE问题,现在报表显示的字段为:

“物料,供應商,采购单号,物料文件号,交貨单号,工廠,交货库存地点,过賬文件(Reference),數量,单位,PO交貨日期,建立日期”,这几个字段的数据。但 Reference, Delivery 二个字段在采购的数据源中: 2LIS_02_CGR 2LIS_02_HDR 2LIS_02_ITM 2LIS_02_S011 2LIS_02_S012 2LIS_02_SCL 2LIS_02_SCN 2LIS_02_SGR 2LIS_03_BF 2LIS_03_BX

中都找不到,在提取结构中也没有发现。

在2LIS_02_ACC 中找到了交货单,没有记录,所以认为不是在这个数据源。 2LIS_06_INV 有Reference 这个字段,但内容值对不上。 现在采用标准的数据源,CUBE来做,暂不想做增强。 MKPF 表存在物料文件号与交货单号,RSA3/LBWE中的采购部分的结构没有看到交货单字 段。

答:需要做增强或者自定义数据源抽取。

37.如果要抽一个表,但是数据源不能相同,在哪里设计? 答:在信息包里面设置。

38.什么是INFOCUBE?

答:INFOCUBE就是信息立方体,使用星型结构存储并分析数据的载体。意义在于进行多维数据分析和统计。

39.在query designer内建立calculated key figure,因为我想要他的公式结构,未来可以自动化的将所有CKF的公式汇出。但在modeling里只有看到一般的key figure,没有CKF? 答:在Modeling Tree下面的BW移送->移送type->Query->Formula,层次是这个关系,可以看到。

40.如果修改了信息对象,信息包上载数据报错?一般怎么解决?

答:重新去复制一下数据源。

41、写优化的DSO适用场景:

答:一般是用在比较少变动的,因为没有new表 没有日志表,写优化一般在实际项目中底层的dso用写优化的比较多,底层dso只是为了保存数据,不经常变动。不用激活就可以直接上述。以下场景中经常用到:

A、构建EDW的原始数据层,无报表需求,不需要激活,ETL过程更快 B、存储大量document level的明细数据

C、每次加载的都是新数据,数据不发生变化 D、临时存储数据

E、实际项目中,写优化DSO通常用于存储财务凭证和物料凭证,这些凭证一旦发生就不会修改

42、直接更新的DSO适应场景:

答:在创建完之后,发现右键菜单下,没有了dtp,infopackage等功能。用写程序直接更新,一般用来做一定的应用,如APD。是通过BW中的业务平台,将数据通过API的方式,直接写入的,比如监控某几张报表的使用频率,直接写程序把访问数据写入表中。在CMOD中写代码;

43、BW的一些参数设置,比如:ECC和BW连接的参数设置: 答复:rsa1 --源系统-ids集团800 - 右键 定制提取器--输入用户名 密码 --一般设置 业务内容数据源 可以设置ECC和bw连接的一些参数; 44、BW中传播的功能和设置?

答复:报表传播功能:把报表执行的数据执行存在缓存中。一般都在bo port里对每张报表设置(设置的条件等与用户查询的条件完全一致) rsa1 - 传播--设置(前提在port中建传播),日志可以查看传播; rsrt--高速缓存监控-查看缓存

45、query中如何设置可以提供报表的执行效率?

答:提高报表速度:在query designer中尽量把明细的字段放在”自由行“里,提高报表的查询速度;尽量用多的表格,少用图片;

46、实际项目中涉及到文档:开发文档(更注重于每个点的细节每个dso等里字段、数据来源、data source的定义)、模型设计文档(更注重于模型架构图、流程图)、测试文档;项目中各个阶段有那些输出物:需求调研阶段:需求调研文档(大概报表的一些信息、报表数量,每个报表展示的大概数据)、设计阶段:设计文档(模型设计文档)、开发阶段(开发文档)、UT(测试文档)、uat(用户的测试文档)、上线;

47、如果DSO的key不够用怎么办?

答复:dso的key最多是16个,如果一个表中的key超过16个了,可以把key合并,比如:key1(10)、key2(6),可以建一个长度是16的key,把两个字段上述到一个字段里。

一般dso中很少用到,在cube中最多有13个维度,在cube中可以把两个dimension id合并成一个dimension id;

48、TCODE:RSA9: 传输应用层次结构(先传输层次结构:MM、sd、pp等)

49、BW中权限的控制:

答复:报表权限:报表的权限在bo、port中控制; 数据权限:(1)定位对那个字段做权限控制、(2)特性-业务浏览(相关的权限勾选上)、(3)query desinger变量的出理由选择权限,(4)rsa1-管理-分析权限-在分析权限中进行管理;

50、CUBE中创建维表时的行项目维、高基数维的应用和优势:

答复:当维表中的特性超过了cube所有特性的20%以上时,需要把维设置成高基数维;可以调整物理表结构,提高性能;

行项目维:f表直接连到sid表,中间的dimension表就不用了,提高查询速度; 51、psa和dso new表key是完全一样,他们的数据是完全一样的,dso中new 表和有效数据表是根据dso中的增量机制管理、上述;

52、ABAP在BW中哪些功能模块会用到:

答复:(1)rultin:start 、end 、连线rultine; (2)CMOD:ECC侧数据数据增强提取数据、(3) CMOD:bw侧的变量增强;

53、 BW扩展星型结构和传统的星型结构相比有哪些优势?

回答:标准星型模型是数据仓库中一种常用的组织信息和数据的多维数据模型。它由中心的一个事实表(Fact Table)和一些围绕它的维度表(Dimensional Table)组成。SAP BW星型模型 SAP在标准星型模型基础上做了一些改进,将维度表中的主数据(Master Data)分离出去,独立建表,并通过SID Table和维度表关联起来。SAP将主数据分为3类:属性(Attributes),文字描述(Text),层级结构(Hierarchy)。这里需要注意的是Master Data 并不是InfoCube的一部分,因此Master Data可以在多个InfoCube中共享。这是BW将Master Data从维度表分离出来的主要原因之一。我们知道MOLAP数据仓库为了提高Aggregation的效率,需要事先把这些Aggregation的值计算好,而不是在每次请求的时候才计算。这些预先计算好的Aggregation值当然也需要以cube的形式保存起来。如果是用标准星型模型,那么有两种方法来存储:一种是将Aggregation值和facts一起保存在原始cube的事实表中,这样事实表就会更加庞大,查询效率肯定不高。另一种是为不同的Aggregation建立独立的aggregation cube,存在这写新的cube中,但这样会造成维度表的冗余,每个aggregation cube都会重复一份它所需要的维度表中的所有信息。现在BW将Master Data从维度表分离出来使得维度表变成一张简单的关系表,就解决了Master Data的冗余问题。同时由于Master Data不是和维度表绑在一起而是通过SID Table查询得到,使得多语言支持非常方便。可以为每种语言建立独立的主数据表并根据查询时的语言信息动态绑定到不同语言的主数据表。

54、 特征值可以使用哪些数据类型?

答复:一般特性有四种:char、 number、date,time;特殊的特性:时间特

性、单位特性、技术特性;

55、 一个信息立方体里面有多少个维度,分别是什么?什么是聚集?

答复:有三个维度是系统定义的:时间维度、单位维度、技术特性维度;最少一个自定义维度、做多16个维度;

聚集:聚集是数据仓库经常使用的一个方法。聚集是对信息立方体中的数据(基本事实表, F-Fact表)按照指定的一个子集进行数据汇总,汇总的数据存在不同的独立的事实表(聚集事实表, E-Fact 表)中。根据常用的查询的种类,一个基本事实表可以设置多个聚集事实表。

· 根据CUBE中几个或者一个维度信息对象创建的Mini Cube,可以提高数据的访问效率当查询访问CUBE时,若聚集中的维度能满足查询条件则只需访问聚集而非CUBE

· 新生成一张事实表外加一些对应的维度表。 · 用空间换时间、数据是冗余的。

· 聚集可以建立在特征值、导航属性、层级上。

在报表运行中,系统自动根据报表的查询维度找到最合适,也就是数据量最少的聚集事实表中读取数据。由于数据量的减少,降低了报表运行时间。也就是说,聚集的设置对最终用户是透明的,用户没有必要关心是否找到合适的聚集,系统自动会找出相应的聚集表。

聚集在是基本的事实表上设置的。聚集可以按照特性建立,可以按照导航属性建立,也可以按照层次建立。

其中对于聚集中维度数据和事实表数据的更新,如果是导航属性生成的维度表,则通过信息对象的change run(在“管理”下面)可以同步聚集维度表数据,而事实表数据通过ROLL UP可以更新。 聚集的适用范围

聚集是基于多维分析模型的基础上设定多维分析模型的子集,同时又是具有真实的物理数据存储的,因而聚集的创建不适合信息集和多信息提供者,以及虚拟信息提供者(虚拟信息立方体)这些不具有物理数据存储的数据对象,也不适用于DS。这样的二维的数据存储对象。

56、 BW报表查询中,什么是计算指标,什么是限制指标,什么是条件?

计算指标:是针对query的数据源,根据现有的特定指标通过计算或者公式定义出需要的指标;

限制指标:是针对query的数据源,根据现有的特定特性和指标的组合选择出一个新的特定指标;

条件:在query中根据指标做过滤的条件;

57、 属性有哪些类型,分别是什么?怎么区分这些类型?举个例子

答复:属性分显示属性、导航属性;显示属性在query中不能单独存在,导航属性可以脱离主数据而独立存在;

58、 什么是复合特性(compounding),举例说明。

答复:是把两个特性,合并成一个特性,比如item不能确认一条数据,需要和head连接一起

59、 信息立方体有多少张表,分别是什么,cube压缩的实质? 答复:一张实时表和最多16张维表,最少4张维表组成; Cube压缩的实质:前几天的数据测试无误,做压缩,压缩就是把request id 去掉,相同维度的做add,提高性能;压缩的缺点:不能根据request区分和删

除数据;如果选择了with zero ,把数据里真的是0的数据压缩没了;压缩可以设置到处理链中(compression of the cube);

60、 怎么设计出一个好的立方体维度出来,举例说明? 答复:创建维度就是多角度多层次全方位的去分析数据。

1 如果维度表列和事实表中的连接太多时,可以采用行项目维。也就是去掉维度表,把sid表直接放在事实表中。通常有销售订单,发票号。

2 如果维度数据是事实数据20%,可以采用基数高度,对生成cube自动优化,采取合适索引。

维度设计原则:

1倾向于更多的列和更少的行;尽可能有意义

2 设计一个占空间尽可能小的主键;带来更小索引,主要是提高效率 3 不建议特别的规范化,也可以有冗余。规范化后可能使结构更加复杂 4维度表中属性尽可能是文本或离散的。通常是查询的条件

合理的维度数量,不宜太多,影响性能,用户使用起来也没有太大意义;维度的组合和顺序也要合理;把相近的有关系的维度放在一个维表中。

比如可以从Outline的组合顺序、Sparse/Dense的设置、计算脚本的运用、Partition优化、DataLoad File优化等等,其中outline的组织顺序有一定的规则,类似沙漏型。总言之,可以通过这些方法找到一种平衡。

但我想说的是:这么多的维度合不合适?实际上是上面问题的出发点。作为主题,是相对比较独立且很明确的数据,不是大而全。换句话说,每一个主题的背后隐含着1..n个故事场景。在实际中,如果提供很多维度,不但我们组织起来不很容易,而且用户使用起来也会晕倒:因为这么多维度,无所适从;况且,有些组合是没有意义的或者是错误的,多于三维的数据对用户来讲也是很难理解的。鉴于此,我想能不能在深刻理解业务的基础上,将主题重新划分,并不严格的遵从用户提出的那种模式。这是其一;

其二,举例说明。拿移动的用户来讲,他们起初并不清楚OLAP是什么,主题是怎么回事,只是想从这些方面看数据,所以我们就遵从了。这就是根源。个人觉得:应该有一个分析、归纳、提炼、引导的过程,我想这样才会真正的做出比较有价值的主题分析。

根据上述两点:希望重新组织主题,将维度控制在最低限度。 61、 Multiprovider 和 infoset的区别,举例说明。

答复:Multi Provider与InfoSet和virtual Provider一样都是逻辑结构,都没有数据的实际物理存储。MultiProvider与InfoSet本身不存储任何数据但它们能够把多个如下InfoProvider对象上的数据结合起来:

l . InfoCubes

l . DataStore objects l . InfoObjects l . InfoSets

l . Aggregation levels (slices of a InfoCube to support BI Integrated Planning)

MultiProvider与InfoSet的主要区别在于它们结合InfoProvider对象的方式不同。连接方式不一样:multiprovider的连接方式是:union,infoset:inner join,left out join

62、 如何分析事实表和维度的大小? 答复:

63、 BW汇率是如何转换的?举例说明。

一个货币转换类型是汇率,源货币,目标货币和转换时间设置的组合。就是说,在一个货币转换类型中,会设置汇率,源货币,目标货币和转换时间设置。然后将此currency translation type定义于query中的key figure。于是在执行query时便会应用到这个currency translation type。也就是货币转换。 Tcode:RSCUR create currency translation type

在Report中使用汇率转换,这个功能可能大家都很熟悉。但是随着我们的专案增加很多以及程度的提高,一些个性化的需求就出现了。比如这段时间就碰到几个对汇率有特殊要求的问题,通过对Query以及汇率变量的相关了解也找到了相关的解决方案。

我先将问题描述一下.

问题1:DWHD要做一个Actual Forecast的对照表,Actual的数据采用当前的标准汇率,但是Forecast的数据采用用户自己提供的汇率,因为这个提供的汇率是针对未来几期的,所以和实际的汇率可能不一致或者无法去要求一致,所以希望我们的报表需要能够满足这样一种功能要求。

问题2:MM段要在某个报表中增加上个月的金额和本月数据作对比,并且汇率要按照实际月份进行转换。

在解决问题之前,有几个知识点我们是需要清楚的。

1. Currency Conversion Type:币种转换类型,也就是转换币种的规则。币种转换会涉及到几个关键问题:A. 汇率 B. 源币种 C. 目标币种 D. 汇率时间

2. Currency Conversion Key: 即币种转换类型的编码

3. Target Currency Variable:如果在1中设置C目标币种为“Sel. Of targ. Currency with Translation”时,可以在Report中设置目标币种变量,允许用户改变目标币种

在分析上述两个问题之后,我们大致可以把问题1归结为:如何实现多币种转换;而问题2可以归结为:如何实现多时间段转换。

作了以上分析,我们先逐一看看。

首先在Query中,每个Key Figure只要是金额栏位都可以进行汇率转换,如果不是金额栏位通过“Calculated Key Figure”(CKF)或“Restricted Key Figure”(RKF)也可以实现汇率转换。所以通过CKF或RKF可以实现一个Key Figure多种汇率转换。比如将Amount和“Actual” 设定为RKF“Actual Data”,而将Amount和“Forecast”设定为RKF“Forecast Data”,那么就可以分别设定两个汇率转换类型了,其实这个知识点就可以解决问题1了。另外用户有特别说明,Forecast有自己的一套汇率,那么我们就必须把这种情况考虑进去。当然方法也很简单,我们在设置Exchange Rate Type时就有必要自定义一些Type来区别标准的“M“类型。

而问题2着力点可能是如果将汇率转换时间切换到上一个月(或者非当

前月)。我们来看看在1中设置D汇率转换时间有那些内容在里面。

1. Fixed Time Ref. (固定时间)

i. Current Date (系统当前时间) ii. Key Date (设定一个定值)

iii. Time Based From Variable(设定时间变量,这个变量必须是挂在Calendar下面)

2. Variable Time Ref. (变动时间)

i. Standard InfoObject (当前报表中标准的时间Object)

ii. Special InfoObject (处理不是精确到日的时间Object,比如0Fiscper)

如果是ii的情况,会要求设定具体的时间点 3. Query Key Date

通过上述的属性的列举,我们可以找到两种解决方案

1. 采用1-iii 设置一个时间变量,这样可以灵活的获取时间

2. 采用3,因为这个Report其实不要用到Key Date,所以可以利用Key Date 来传递时间

最终权衡之后,我们选择了方案1,因为来得更为合理而专业。同时只需要将设置的时间变量类型设为“Customer Exit”,就可以通过代码来设定时间。

64、 BW里的分析权限是如何做的?举例说明。

答复:权限:报表权限:报表的权限在bo、port中控制; data权限:(1)定位对那个字段做权限控制、(2)特性-业务浏览(相关的权限勾选上)、(3)query desinger变量的出理由选择权限,(4)rsa1-管理-分析权限-在分析权限中进行管理;

65、 Info Object是BW中最小的存储单位.

66、 BW中的数据对象有Info Object,Cube,DSO,Info set,Multi-provider,visual

provider. 其中IO,Cube,DSO是实际的物理存储对象,Info set和 Multi-provider可以理解成为建立在其他物理存储对象上的视图,是不存储数据滴~~

67、 接上一点,那为什么要用到Info set和Multi-Provider呢?那要从BEx报表

的展现机制来说了.在BEx报表设计中,你只能选取一个Info provider作为数据池来构建你的报表,如果你所需要的数据放在多个Cube或者DSO里面的话,那么你就需要一个工具把这些info provider集合在一起变成一个info provider,这个工具就是info set 或者是 Multi-provider

68、 还是接着上一点,说得这里别人面你的时候就肯定顺水推舟的问你Info

set 和Multi-provider的区别是什么(俺被面到了~~汗~~),教科书的答案是两者中各info provider的连接方式不一样,info set貌似是内连接~~~~还是不好理解...俺想了一个晚上,得到一个想法...info set 连接方式取的是数据的交集,而Multi-provider取的是数据的并集,关于交集和并集是什么,你们去问你们的数学老师~~

69、 如果没有做过实际的Multi-provider的模型的,如果被问到,其实可以拿个

业务来举例,最典型的就是销售计划与实际对比,计划数据放在一个info provider,实际数据放在一个provider,用一个Multi-provider把他们组合起来,其中可以按销售部门key连接,销售员key连接,Item key来连接.

70、 DSO key figure的转换分为覆盖与合计2种,点detail,双击key figure可以

选择

71、 那么一定要记下DSO与Cube的区别(基本上都会被问到)...Cube的key

figure是累加的...而DSO是可以覆盖或者累加的~~

72、 在构建DSO的时候,如果数据表中有日期类型的字段存在的话,那么你就

最好把会计年度变量(0fiscvarnt)的特征放在Key file里面...如果你没有放的话,系统会给你黄色的警告...当然你可以忽略...但是如果忽略了,后果就是在DSO激活数据的时候你会发现激活有错误~~~

73、 Cube,最大维度16个,去掉系统预先定义的Time,Unit,Request,可以用的有

13个.最大key figur数--233,最大Characteristic--248*,DSO : You can create a maximum of 16 key fields (if you have more key fields, you can combine fields using a routine for a key field (concatenate).) - You can create a maximum of 749 fields - You can use 1962 bytes (minus 44 bytes for the change log) - You cannot include key figures as key fields - 摘自SAP官网~~

74、 PSA~~persistence store area....持久数据加载区域,从数据源出来的数据第

一站都会停留在这里.它是以包为单位进行传输的

75、 .系统中的状态提示: D SAP传输(Delivery)状态 A 激活(Active)状态 M修

改(Modified)状态

76、 DSO 三个表 N表数据抽取后存放在N表 激活后会清空(这点要记得哦)

A表 激活数据表 BEx拿数据是从这张表拿的 Log表存放数据的更改动作; 77、 有关Cube的优化,可以聚集,分区,压缩. ? 78、 流程链的T-code是RSPC

79、 15.每一个流程链必须有一个开始流程.没有变式的开始流程没有任何的

价值.

80、 流程链的类别包括加载流程与后续处理,数据目标管理,自动报告代理,常

规服务,其他BI流程和自定义流程.

81、 收集器流程....管理输入到相同的后继流程的多个流程...相当于交通警察

的作用.可以判断替代流程是否满足条件而触发后继流程. 82、 流程链必须激活.

83、 流程链中的颜色,红,黄,绿.....应该都明白各自的含义. 84、 与进程,或进程,或异进程都属于收集器流程

85、 DSO分为标准DSO,写优化DSO,直接更新的DSO.

86、 标准DSO中有一个选项叫做\生成主数据标识\这是啥玩意呢?他的用法

取决于你的DSO是要拿来干什么的.如果你的DSO是拿来做报表的,那么勾上他是可以提高报表的查询速度.如果你的DSO是拿来存储数据的,那么建议不要勾上,因为系统会自动分配SID给你........貌似是设计用来做报表查询的index吗?

87、 实际的项目大多数喜欢用3层的数据模型,底层是写优化的DSO,记录

delta和保证数据与PSA的一致,第二层用标准DSO,第三层用Cube...用level 1的DSO更新level 2的DSO的时候,一般都用SUM的方式.

88、 BW做初始化的时候要注意什么呢?业务系统要全面停止,禁止输入任何

数据.这个好理解吧,今天来说说标准数据源的Delta机制

89、 所有的Delta数据,在传到BW之前,都会先到Delta Q里面,再从DeltaQ到

BW.Delta Q可以用RSA7查看.

90、 Delta数据从原始表到Delta Q, 有两种方式:对于LO的数据源,是系统将

Delta数据push到Delta Q的,然后在InfoPackage执行的时候,再把数据从Delta Q搬到BW.这就是PUSH的方式. 对于非LO的数据源,大部分采用time stamp的方式,在InfoPackage执行的时候,系统根据time stamp去源数据表获得delta数据,这些数据被送往Delta Q之后,紧接着就被搬到BW了.这就是所谓的PULL的方式.; 91、 所以总结一下:

PULL:当BW端请求数据时,R3端才做出回应,执行相关Function Module,把数据写入delta queue

PUSH:数据自动写入delta queue,当BW端请求数据时,直接去delta queue中抽取

92、 RSA7是查看Delta Q的,但是真实数据不是存在这里的.SMQ1(Out bound

Queue)才是存储数据的地方~

本文来源:https://www.bwwdw.com/article/5xm.html

Top