abap 如果honeyselectV22结果为多条,则用另外的条件查询,这个if条件怎么写

PM面试分为BW、BO两部分根据顾问的簡历和应聘的岗位所侧重的问题不同。

BW包括基础知识、增量、增强、LO抽取、数据源

一、 基础知识 技术面试

答:1完全更新2初始化增量流程3增量更新(F,ID)

CUBE中的压缩原理及优缺点。

答:合并请求号把数据合并在一起,这样运行速度快,节省空间

缺点是:无法按照请求號删除数据,因为合并后请求号就没有了。

请求号是指每次上载数据后,系统都会自动生成的请求号



20.什么是增量更新

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

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

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

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

23.DSO分类有那几种?

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

1.标准DSO对象,具有已知的表活动数据、更改日志和激活队列

2.優化的对象,针对大量数据仅具有一个活动数据表

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

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

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

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

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

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

* 在建模功能区域,通过选择工具栏上的流程链图标(或者從菜单选择编辑 → 流程链)您可以调用流程链维护。

* 选择工具栏中的流程链维护按钮以便从所支持流程的维护对话访问流程链维护

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

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

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

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

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

排序方式(升序或降序)

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

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

34.对INFOCUBE进行数据显示时发现某一条记录里有一关键值A,其值为23.3

同时对应的MulitProvider进行数据显示時发现该记录的关键值A的值为0.能过Query进行报表显示时该记录的关键值同样显示为0?

答:分步检查缩小范围:

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

2.如果源系统有问题,可以用sm59测试看看RFC连接是否正确

3.如果源系统没问题,可以重噺复制数据源

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

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

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

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

在2LIS_02_ACC 中找到了交货单没有记录,所以认为不是在这个数据源

现在采用标准的数据源,CUBE来做暂不想做增强。

MKPF 表存在物料文件号与交货单号RSA3/LBWE中的采购部分的结构没有看到交货单字

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

37.如果要抽一个表,但是数据源不能相同,在哪里设计

答:在信息包里面设置。

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

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

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

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

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

A、构建EDW的原始数据层无报表需求,不需要激活ETL过程更快

C、每次加载的都是新数据,数据不发生变化

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

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

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

43、BW的一些参数设置,比如: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紦两个字段上述到一个字段里。

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,下面的语句中哪一个语句编译會报错(假设XXX 和结构sflight都已经定义). ( )


2.在ABAP/4的开发工作中,哪一个TCODE是直接进入就可以创建程序函数组以及程序内部各种元素的. ( )

3.直接进入就可以查询表的结构是哪个TCODE. ( )

4. 很多表当中都有一个字段,叫做MANDT, 为第一个主键这个字段的用处是.( )

A)区分后台数据库的类型

B)区分表中記录属于哪个客户端(client)

C)区分表的数据量大小

D)SAP系统保留字段


5.下面的定义语句中,哪一个语句定义出来的结果是一个内表. ()

6.ABAP中三种基本的數据对象是. ( )

A)内表 结构 基本数据对象

A)把wa中的值进行循环每一次循环都写回内表

B)求出迷宫itab的出口放在wa里

C)对内表itab的数值列进行累加放入wa中

D)对内表itab进行循环,把循环中每一行的结果写入结构wa中


8.程序中执行了这么一段代码

该段语法中出现了四次it_sflight其中后三次分别代表嘚是内表还是结构. ( )


9.在设计报表程序时,选择的程序类型应该是. ( )

10.在报表程序的屏幕筛选条件里honeyselectV22-OPTIONS定义出来的元素是. ()

11.在报表程序的屏幕事件里,有一个事件叫做AT LINE-honeyselectV22ION.参见如下代码:

那么以下哪种情况会发生. ( )

A)先显示出一行ABAP,当用户双击一次时屏幕上在原來ABAP那行下面换

行一次显示出一行新的TEST

B)先显示出一行ABAP,当用户双击一次时屏幕上每次只显示出一行的TEST取

C)先显示出一行ABAP,当用户双击一佽时屏幕上永远只显示出一行TEST

(放在原来ABAP那行下面)

D)先显示出一行ABAP,当用户第一次双击时产生一个新屏幕,显示一行

TEST,然后每次双击嘟在其下换行显示一行新的TEST


12.选择事件的执行顺序正确的一组. ( )

13.在层级报表的开发里下面哪个条件不是必需的. ( )

A)对内表先按层級字段排序

B)对内表和结构定义时层级字段必须排在前面

C)层级字段不能出现在at 和 end at 语句之外


14.在明细报表的开发中,双击一行转向明细报表嘚取数依据是. ()

A)你双击那行的主键字段

B)你双击的那个字段本身

C)你双击那行在循环中预先hide的字段

D)你双击那行在循环中预先已经write絀来的字段


15.在交互式报表的设计中假如想在明细报表里加入任意字段的排序功能,

请选择正确的选项(多选). ( )

B)对内表排序时该芓段要用括号括起来

C)在排序时要把该字段加上一个数字以去除前面的结构名称

(如果是用结构-字段定义的话)


16.在屏幕编程的设计中下媔共有四个主要步骤:

a 设计屏幕的格式(有哪些字段,放在什么位置)

b 设计屏幕的整体属性

c 设计屏幕上字段的属性

请选择通常请况下正确的順序. ( )


17. 如果屏幕A 的下一个屏幕仍然是A , 那么当执行程序时对于屏幕的主要事件,下面哪种顺序是正确的. ()

18.屏幕编程中一个屏幕所使用的工具栏应如何设计. ( )

D)在屏幕设计格式的界面上添加工具栏及其按钮


19. 以下四种系统变量各是什么含意. ( )

A)用户触发的屏幕上的功能码 當前日期 当前时间 循环次数

B)当前日期 当前时间 循环次数 用户触发的屏幕上的功能码

C)用户触发的屏幕上的功能码 循环次数 语句执行结果返回值当前日期

D)用户触发的屏幕上的功能码 当前日期 语句执行结果返回值循环次数


20.一个程序的子屏幕编程是如何实现的. ( )

A)子屏幕区域外加屏幕(属性设置为正常屏幕)

B)自定义控件外加屏幕(属性设置为正常屏幕)

C)子屏幕区域外加屏幕(属性设置为子屏幕)

D)自定义控件外加屏幕(属性设置为子屏幕)


21.对于表格控件和内表的绑定的做法,下面哪种说法是正确的. ()

A)PBO时同步循环内表和表格控件把内表的值写入表格控件PAI时用同样的

循环把表格控件的值写回内表

B)PBO时同步循环内表和表格控件把表格控件的值写入内表,PAI时用同样的

循环把内表的值写囙表格控件

C)在定义内表时定义与之绑定的表格控件PBO和PAI事件要各循环内表一次

D)在制作表格控件时定义与之绑定的内表,PBO和PAI事件要各循环表格控件一次


22.如果要把表格控件某列的属性动态的改变成不可输入下面哪种做法是可行的. ( )

C)在PAI事件中取得table的COLS属性,利用它本身是个内表嘚特点循环找到该列修改之修改完后写回COLS内表

D)在PAI事件中取得table的COLS属性,利用它本身是个结构的特点找到其中表示该列的字段修改


23.要对表格控件增加一个可由用户写入信息的列下面哪种方式是可行的(多选).()

C)在设计屏幕中的表格控件里拖入一个text field(文本字段)

A)先输出两个栏位嘚筛选屏幕,再按照筛选结果输出两个栏位的表格信息让用户选择

选择结果影响到四个栏位

B)先输出两个栏位的表格信息让用户选择,选擇结果影响到四个栏位

C)先输出四个栏位的表格信息让用户选择选择结果影响到两个栏位

D)先输出四个栏位的筛选屏幕,再按照筛选结果输絀四个栏位的表格信息让用户选择

选择结果影响到两个栏位


26.ABAP的OPEN SQL的取数语句是否可以实现数据库无关性,其原因是什么. ( )

A)不可以数据庫的SQL格式不同

B)可以,因为它的名字叫做OPEN SQL

D)不可以各种数据库的版本不同


27.对ABAP的OPEN SQL语句的两个返回系统变量,描述正确的是. ()

A)Sy-dbcnt表示执行结果是否正确sy-subrc表示执行影响到的数据条数

B)Sy-dbcnt表示执行影响到的数据条数,sy-subrc表示执行结果是否正确

C)Sy-dbamt表示执行结果是否正确sy-sudnc表示执行影响到的数据條数

D)Sy-dbamt表示执行影响到的数据条数,sy-sudnc表示执行结果是否正确

D)系统出错退出对表没有任何影响


29.SAP对锁的主要实现手段是. ( )

A)在SE11里加锁对象,然後在程序中调用锁对象生成的函数

B)在数据库里加锁在程序中声明

C)由数据库自动进行,SAP不用处理

D)在程序中通过SQL语句实现


30.有一程序起始画媔里有一个用户可以输入字段为A ,如果想在程序进入的时候自动设置成上次退出时的值可以采用的方法是. ( )

32.设计SMARTFORM显示一个表格,如果苐一页是一种格式后面几页是一种格式,

A)第一页指向第二页第二页指向空

B)第一页指向自己,第二页指向第一页

C)第一页指向第二页第②页指向第一页

D)第一页指向第二页,第二页指向自己


33.如果想设计SMARTFORM中大家公用的文本应该使用什么技术. ()

A)TEMPLATE用来设计表格模版,TABLE用来设计表格实体

B)TEMPLATE用来设计表格样式TABLE用来设计表格实体

C)TEMPLATE用来设计静态表格,TABLE用来设计表格实体

D)TEMPLATE用来设计静态表格TABLE用来设计动态表格

A)循环到排序芓段第一次开始时触发开始事件,循环到排序字段结束时

B)循环到排序字段第一次开始时触发开始事件循环到表格结束时

C)当表格开始时触發开始事件,表格结束时触发结束事件

D)循环到排序字段第一次开始时触发开始事件然后触发结束事件,然后

开始正式循环该排序字段剩餘记录

.然后在真节点下加一个程序行,内容为G_TOL = wa_sflight-price + 10.假节点下加一个程序行内容为G_TOL = wa_sflight-price + 20.最后在表格的Footer下加一个表行(在表格最后显示),下加一個文本节点显示这个字段G_TOL,它显示的值应该是. ( )

37.SAP提供的修改系统标准功能的方案里哪几种是不需要修改系统标准程序

就可以实现的. ( )

38.對于客户定制需求的解决方案,应该遵循哪一种顺序进行为宜. ()

A)先判断能否配置;再判断系统有无类似功能

有的话先判断能否修改标准程序,再判断能否进行Enhancement;

B)先判断系统有无类似功能有的话先判断能否修改标准程序,

再判断能否进行Enhancement;然后判断能否配置;

C)先判断能否配置;再判断系统有无类似功能

有的话先判断能否进行Enhancement,再判断能否修改标准程序;

D)先判断系统有无类似功能有的话先判断能否进荇Enhancement,

再判断能否修改标准程序;然后判断能否配置;

39.自己定义一个增强项目加入系统的增强,并在其中激活增强的TCODE应该是. ( )

40.在SAP系统标准增强功能里主要包含了以下哪组功能. ()

二 问答题(共1题,20分)

请简述SAP二次开发中REPORT , SCREEN , 数据库更新SMARTFORM及增强等主要技术的开发方法和主要應用场合

向 SAP 表中添加字段的方法是哪两种?

在 SAP 系统中是怎样定义"修改"的它们对更新(upgrade)有怎样的影响?

什么是授权对象在 ABAP 程序中使用哪条语句进行授权检查?

在使用 ABAP 内存的程序间进行数据交换时用到的两个语句是什么

更新 FM 分为 V1 和 V2,那么首先会执行哪一种更新类型呢烸种类型又是以哪种模式(异步、同步或本地)执行的呢?

实现功能模块出口时 SAP 应用程序中应使用哪条语句

请列出用户修改 SAP 标准功能的鈈同方式。

答案:首先要在 ABAP 字典中创建锁对象然后才能在 ABAP 程序中设锁。创建锁对象时系统会自动生成两个 FM 来进行锁管理。

这两个锁 FM 是茬 SAP 系统的一个特殊工作进程中执行的专门进行锁管理。它运行在一个单独的服务器上而该服务器专门用于维护整个 SAP 系统的主锁表(Central Lock Table)。

1. 共享锁——只读锁一个用户正在读数据时,阻止其他用户更改该数据

2. 独占锁——可写锁,一个用户正在修改数据时阻止其他用户哽改该数据。

更新 FM 分为 V1 和 V2那么首先会执行哪一种更新类型呢?每种类型又是以哪种模式(异步、同步或本地)执行的呢

答案:V1 更新类型比 V2 更新类型的优先级高,因此V1 比 V2 行执行。V1 的执行模式可以为异步、同步或本地;V2 只能为异步执行

答案:修改助手是 4.5 版中引入的一个笁具,用于简化更新过程可以通过 ABAP 编辑器触发修改助手,它会记录对系统进行的修改修改助手支持通过 ABAP 编辑器、Screen Painter、Menu Painter、文本元素维护、Function Builder 囷 ABAP 字典进行的修改。

实现功能模块出口时 SAP 应用程序中应使用哪条语句

答案:某些 SAP 应用程序中存在功能模块出口,它使用户能够向 SAP 程序中添加一些功能通过搜索 "CALL CUSTOMER" 可以发现是否存在功能模块出口。

请列出用户修改 SAP 标准功能的不同方式

自定义 ABAP 程序——可以与 SAP 对象或自定义开發的对象一起工作。

向 SAP 表中添加字段的方法是哪两种

在 SAP 系统中是怎样定义"修改"的?它们对更新(upgrade)有怎样的影响

答案:修改是指用户對 SAP 发布的库对象(Repository Object)进行的更改。

必须在更新期间对修改进行评审(Review)来决定是否应该使用新的 SAP 对象,以及将来使用时是否需要进一步修改该对象

Pools和Cluster table;他们已经不是各种数据库常规的表了,也不能够被数据库直接访问只能通过SAP自己的工具来直接访问。

每个透明表在数据庫中有一个相应的物理表物理表的名称和数据字典中的逻辑表

定义的名称一致。所有事务和应用数据存贮在透明表中

结构在数据库不存在数据记录。结构用于在程序之间或程序与屏幕之间的接口定义

附加结构定义字段的子集,该字段属于其他表格或结构但是在修正管理中作为单

存储表可以用来存贮控制数据(例如:屏幕顺序,程序参数或临时数据)几个存

储表可以组合成一个表库。该表库和数据庫中的一物理表库相一致它包含了各组

合库分派给它的所有记录。

连续的文本如文档之类可以存贮在簇表中几个簇表可以组合成一个表簇。对这种

表类型不同表中的几个逻辑行组合到一物理记录。这可以实现一对象接一对象地

存贮或访问访问簇中的表的一个前提是,至少关键字的一部分必须相符合几个

簇表存贮在数据库中 一个相应的表里。

什么是授权对象在 ABAP 程序中使用哪条语句进行授权检查?

答案:授权对象由一组字段组成这些字段中的值将被用于进行授权检查。ABAP 程序中使用 AUTHORITY-CHECK 语句根据授权对象进行授权检查在 AUTHORITY-CHECK 语句中,必须指明授权对象的所有字段但有一个例外,可以用 DUMMY 关键字来绕过某个字段的检查

一个授权对象中最多可以定义 10 个字段。

在使用 ABAP 内存的程序间进行数据交换时用到的两个语句是什么

在 ABAP 内存间进行交换的数据必须在两个程序中都进行声明,并包含同样的数据声明

2、程序运行的效果是保留第一行删除后面相同KEY的行

1、判断内表itab是否为空,如果为空不可以使用这个语法

2、默认做DISTINCT的动作所以honeyselectV22后面跟所有主键

3、如果内表数据量达到几┿万上百万,则最好不要使用因为内存消耗巨大

1、使用前根据KEY后面字段升序排序

2、如果有多条记录满足条件,SY-TABIX返回第一条的INDEX

C类型的变量間赋值A = B,从前往后开始复制

如果是数值型的赋值给字符型,则从后面开始复制如果字符型变量长度不够,第一位会变成*

如果是字符型的赋值给数值型如果数值型长度不够,则会溢出DUMP运行时错误 CONVT_OVERFLOW

CALL其他程序的子程序并先给全局变量赋值:

判断数值类型变量是否有小数

洳果想获取实时的时间,可以用语句:

Status一般对应快捷方式:

在第一次调用函数模块的时候会把整个函数组放入内存,而且在程序执行的期间不会释放这就导致全局变量会一直存在直到你去显式的改变它,所以需要特别注意全局变量的清空

如何在函数组第一次调用的时候设置断点呢?使用LOAD-OF-PROGRAM事件

检查程序在哪些Job中用到: 表:V_OP,字段:PROGNAME

如果str最后一个有效字符是*则删掉这个*,否则不删

使用FTP_R3_TO_SERVER时,如果文本內汉字上传后有乱码把文本文件转换成FTP编码格式的二进制文件,然后FTP_R3_TO_SERVER用BOLB方式

原因是因为没有清空函数的全局变量,暂时的解决方案可鉯用DESTINATION 'NONE'

物料可以扩充的销售范围 

函数SAVE_LIST的致命缺陷:后台执行的时候只能保存最后一页

IT_XLIPS:更改后的所有行项目。

IT_YLIPS:有更改的行的旧值

交货单嘚发货过账日期:LIKP-WADAT_IST如果VL09冲销,这个日期会清空


新版的SE38编辑器按住Alt,然后鼠标竖向拉一下就能变成列模式。

交货单的发货过账日期:LIKP-WADAT_IST如果VL09冲销,这个日期会清空但是有时候由于未知的原因,即便是是冲销了这个也不会清空

SAP本身暂不支持QRCode需要在外部程序获取,一般来说昰在局域网内放一台生成QRCode的机器SAP通过HTTP来获取。 

SAP内核版本大于等于7.21的就可以支持QRCODE了

SE11里面对表激活、删除的LOG表:

1、m、n、m+n都不可以大于str的定义長度

2、str+m:第m个字符之后的所有字符


交货单VBFA后续凭证类型:

i 对交货单收货/取消收货

如何在第一次调用函数组内任一函数时设置断点(在TOP文件添加LOAD-OF-PROGRAM事件)

两个日期所经历的月份:

因为WAIT UP语句有提交的作用所以在增强里面是禁止使用WAIT UP语句的,可以如下:

另外这两个语句只支持整数如果不是整数,则四舍五入

SO的不完整日志放到表:VBUV

Char类型的日期搜索帮助F4:

去掉字符不在 x00到xFF的,比如汉字

程序RSORATAD分析索引的质量


替换字苻串中的特殊字符:

针对一会儿不动SAP就断开的情况:

我要回帖

更多关于 honeyselectV22 的文章

 

随机推荐