最新ABAP面试及答案Interview+Questions.docx
《最新ABAP面试及答案Interview+Questions.docx》由会员分享,可在线阅读,更多相关《最新ABAP面试及答案Interview+Questions.docx(38页珍藏版)》请在冰豆网上搜索。
最新ABAP面试及答案Interview+Questions
ABAP-面试及答案-Interview+Questions
面试问题集
1.数据效率?
尽量使用Select(max,min,sum,avg)和select single,forall enteris,二分法,append和collect
loop里不能套select;避免使用select distinct,代替先sort,再delete;
1抽取数据时,避免使用SELECT *,尽量使用SELECTABINTOTABLE ITAB这样的语句。
2不要使用SELECT。
。
.ENDSELECT语句.
3尽量避免在LOOP中访问数据库。
可以在之前先把数据取到内表,在LOOP中用READ TABLEWITHKEY。
。
。
BINARYSEARCH.进行读取对应的数据。
4用SORT代替ORDERBY。
⑤使用二分查找法.READTABLE的之前使用SORT TABLEBY对内表进行排序,然后使用READTABLEWITH KEY.。
。
BINARYSEARCH.
6避免使用SELECT DISTINCT语句。
在抽取数据到内表后用DELETEADJACENTDUPLICATES语句来消除重复行。
7尽量多指定WHERE语句条件。
8在WHERE语句指定查询条件时,在同等条件下把包含等号的查询条件放到前边。
2.什么时候使用Forall entries命令及其使用时的注意事项?
当需要在LOOP中使用查询语句时,一般使用Forallentries.
注意事项:
1IN条件所在的内表不能为空(如为空将取出全部的数据);
2数据库字段与内表中的关联比较字段必须具有相同的类型和长度,且不能在比较中使用操作符LIKE、BETWEEN和IN,同时不能使用ORDERBY子句.
3为避免删除并不重复的纪录,在定义内表时应尽可能多的指定关键字.
3.如何设置ALV的鼠标双击事件。
如何设置ALV的页眉和页脚?
ALV的鼠标双击事件:
构造LS_LAYOUT的F2CODE属性设置为”&ETA”即可。
ALV的页眉:
利用Function“REUSE_ALV_COMMENTARY_WRITE”来进行设置.
4.FTP文件上传,下载,在哪句中需要做异常捕获?
5.SQL文的性能举例?
1对同一数据库表存取的场合,能一次把多条记录放到内表中进行处理,不要多次反复存取;
2只选择必要的字段,应避免使用”SELECT*”;
3在WHERE语句指定查询条件时,要写全查询条件;
4在WHERE语句指定查询条件时,应把包含数据库关键字段的条件列在前边。
5在WHERE语句指定查询条件时,在同等条件下把包含等号的查询条件放到前边.
6.怎样理解Dynpro的PAI,PBO事件?
Dynpro程序运行时,首先触发PBO事件,然后显示Dynpro画面,当在Dynpro画面触发一个功能键时,这时会触发PAI事件,当PAI事件执行完毕,重新显示Dynpro画面时又将执行PBO事件。
当不断触发功能键时,PBO和PAI事件会不断交替执行。
pov poh
7.按顺序举例说明Report各事件及其作用?
1LOAD-OF—PROGRAM 程序执行时,自动触发该EVENT
2INITIALIZTION 对程序变量进行初始化
3ATSELECTION-SCREENOUTPUT选择屏幕PBO事件,显示选择屏幕之前触发
4AT SELECTION-SCREEN 选择屏幕PAI事件,用户在选择屏幕上执行某些功能
5START-OF-SELECTION 选择开始事件
6END—OF—SELECTION 选择结束事件,一般在该事件中输出列表
7TOP-OF—PAGE 页眉控制
8END-OF—PAGE 页角控制
9AT LINE—SELECTION 行选择控制,用户选择某列表行时触发
10AT USER-COMMAND 用户交互控制,用户选择某个GUI功能时触发
8.能否自行创建SD、MM、FI模块相关数据并说明其过程?
9.是否使用过Query,说明其创建过程?
用到过哪些T—CODE?
meng
10.BDC执行出错时,为查看设置错误处,显示模式应怎样设置,A、E、N分别代表什么含义?
显示模式DISMODE应设置为“A”或“E”.
A:
代表无论出错与否每个画面都显示;
E:
只是在出错时显示;
N:
代表无论出错与否每个画面都不显示。
11.是否做过数据库表维护?
meng
12.删除内表重复数据前应该做什么,如果要按照给定字段如何删除?
meng
应该对内表进行排序。
13.Job管理?
14.SAP有哪些外部接口及其内容?
RFC,BAPI,IDOC。
RFC :
RFC是SAP系统和其他(SAP或非SAP)系统间的一个重要而常用的双向接口技术,也被视为SAP与外部通信的基本协议。
简单地说,RFC过程就是系统调用当前系统外的程序模块,从而实现某个功能,而且调用系统和被调用系统中至少有一个必须是SAP ABAP系统.这种远程功能调用也可在同一系统内部进行(如本地SAP系统内的远程调用);但通常情况下,调用程序和被调用程序处于不同系统。
BAPI:
BAPI全称BusinessApplication Programming Interfaces,即业务应用编成接口,在SAP内部组件及SAP与非SAP组件之间的技术整合和业务数据交换过程中起着非常重要的作用。
(BAPI是基于RFC实现的)
IDOC:
IDOC是SAP系统之间或SAP系统与外部系统之间电子数据交换的标准数据格式。
在事务处理过程中,随时会生成IDOC。
15.在什么时候触发Topofpage语句?
在3种情况下可以触发Topofpage语句。
1遇到第一个WRITE语句时;
2当页面行数超过LINE—COUNT里定义的行数时;
3遇到NEW-PAGE命令时.
16.本地文件上传成CSV文件的function?
17.Hashtable和Sort table的注意事项?
Hashed表的除了数字字段以外,其余字段必须指定为key字段,不能使用APPEND语句,Sort为non—unique时不能使用INSERT语句。
18.Report的跳转语句是什么?
pick是什么?
怎么用?
Report的跳转语句是“HIDE和ATLINE—SELECTION"。
“pick”是在Report一览画面双击或按F2键时触发的功能键键值.
19.FTP文件的上传下载操作是什么?
FTP程序大致流程为:
FTP_CONNECT,FTP_COMMAND,FTP_DISCONNECT.
FTP_COMMAND中输入标准的FTP命令.如:
更改FTP目录"cddir", 更改本地目录”lcd localdir”,上传文件”put file”。
FTP_CONNECT–打开并登陆FTP服务器的连接。
FTP_COMMAND –在FTP服务器上执行一个命令。
FTP_DISCONNECT–关闭指向FTP服务器的连接。
20.加锁,解锁的2种方式是什么?
加锁的2种方式:
①E模式。
同一个terminalsession的不同externalsession之间不受上锁的影响,可以使用锁住的对象;
②X模式。
上锁的对象只能由externalsession中的一个internal session使用。
21.MM、PP、SD、FI、HR模块的主要流程,MM、PP、SD、FI、HR模块主要数据库表?
MM模块的主要流程:
1接到客户的采购订单后,由营业员进行库存确认,如果库存不足则由其提出采购申请。
2购买担任者接到采购申请经审查合格后,向供应商下达采购订单.
3入库等相关管理人员对供应商送达的商品进行入库确认。
4由购担任者对供应商提出支付请求进行确认,经确认无误后,向财务部门提出支付申请,财务部门对支付申请进行审核合格后,进行支付处理。
SD模块的主要流程:
①销售担任者接到客户寻价后,在系统中登录客户的寻价信息。
2相关人员对登录的寻价信息进行价格确认,并在系统中登录报价信息。
3客户对收到的报价信息审核合格后,提出采购申请.销售担任者接到采购申请后,在系统中登录采购订单。
4相关人员对客户所订购的商品进行筹措完毕后,进行出库处理,并在系统中登录出库单.
5相关人员向客户提出支付请求,客户支付后,给客户出具红头发票,在系统中登录开票信息。
22.update,delete数据库时的注意事项?
1正确指定数据库表的KEY字段,防止更改了不应更改的记录,同时要正确指定要更改纪录的中需要变更的字段;
2要注意保持关联表的数据一致性;
3变更前要注意上锁,变更后要注意解锁。
23.怎样做带按钮的选择画面?
1TABLESSSCRFIELDS。
2SELECTION—SCREENPUSHBUTTON/[/]
]。
3INITIALIZATION.
MOVE'Mytext'TO〈name〉。
4AT SELECTION—SCREEN.
5IFSSCRFIELDS-UCOMM= ENDIF。
上述代码的描述:
① 定义构造SSCRFIELDS;
②使用命令Selection-screenpushbutton定义PushButton;
③在事件Initialization中定义pushbutton的文本;
④在事件AtSelection-Screen中定义pushbutton按下后,所执行的处理。
24.求和函数(Collect)的注意事项?
①要填充没有重复条目的内表,应该使用COLLECT
② COLLECT语句无法用于带深层结构的内表(组件中不可以包含内表)。
③为COLLECT指定的工作区域必须与内表的行类型兼容,(不仅仅是可互相转换)。
④ 所有的非表关键字段必须是数字类型。
25.举例说明MM、SD、FI、PP模块的主要t—code?
MM模块的主要t-code:
MMBE库存总览
ME51N采购申请
ME21N采购订单
MIGO收货
MIRO 后勤发票校验
SD模块的主要t-code:
VA11 询价
VA21报价
VA01 销售订单
VL01N 出库
VF01 开具发票
FI模块的主要t—code:
总账:
FS00 创建科目
F。
10 查看会计科目表
F。
01 查看会计科目余额表
FB50 制总账凭证
FB08 冲销凭证
FS10N 科目余额查询
FBV0 成批过账
FBV3 显示预制凭证
OBR2 删除会计科目
KOB1查看订单明细
KB31 统计指标赋值
F-04 过账并清账
FAGL_FC_VAL外币评估
FB70 输入客户发票(员工借款)
F-22 输入客户发票
F—30 过账并清账(客户)
F-53 付款记账
F-42 输入结转过账
F—43 输入供应商发票
F—51 过账并清账(供应商)
应付会计:
FB01输入凭证分录
F-53 银行付款清账(支付货款、银兑到期付款、信用证到期付款)
F—51 带清账的转账业务(如需调整的业务或凭证、退回客户多付货款、上线前的发票校验)
F—48 预付定金
F-43输入供应商发票(不通过采购订单形成的应付账款)
F—42 不带清账的转账业务(如需进期初差异的发票校验)
F—40 应付票据清账
F—57 开立信用证、信用证到期冲销
F-32 应收票据背书清应付账款
F-44 供应商预付与应付账款对冲
FB50付银兑保证金、信用证保证金、支票重开、电汇退回重付
FB03 显示凭证
FB08冲销未清账凭证
FBRA 冲销已清账凭证
MIRO 后勤发票校验
MR8M 冲销发票
FK10N 查供应商余额
FBL1N 供应商行项目显示
F.42供应商明细账显示
应收会计:
F —21 预收银兑
F-28 收款、银兑到期托收
F—29预收款
F—30 银兑清账
F-32 应收预收清账
FB50 总账科目过账
FB70 手工开发票
FB75手工开贷方发票(红字)
资产会计
AR01 调用资产清单
AS01资产主数据创建
ABZON 资产购置-损赠等、增值
F—90 资产购置
ABGL资产减值(本年)
ABGF 资产减值(上年)
AIAB 在建工程资本化
ABAVN资产报废
AS93显示遗产数据
信贷管理
FD32 信用风险、例外信用额度的建立及信用时间的控制,另取消信贷也在此处理
FD33 查询信用风险、例外信用额度及信用时间
VKM1在信贷额度之内取消销售订单
F—49 制作在途资金虑拟凭证
FB08在途资金到账后冲销制作的在途资金虑拟凭证
VK13 查看冻结销售订单的单价、金额
FBL5N 客户行项目显示
FBL3N 总账科目行项目显示
F.23 查询以本币计的客户余额
VA05 出具发票凭证清单
FD10N 客户余额显示
开票员
FB03查看凭证
VF01开具发票
VF02修改发票
VF03 查看发票
VF04 查看已发货未开票清单
VL03N 查看交货单
F—22 客户发票(一般)
FB75 客户贷项发票
FB08 冲销凭证
FD03查看客户主数据
FB70 客户发票
VA03 查看销售订单
VF05 查看销售订单清单
MB51 查看物料移动记录
VK13 查看定价
PP模块的主要t-code:
CS01 创建BOM
CS07将BOM分配给工厂
CR01创建工作中心
CA01创建工艺路线
MD61创建独立需求计划
MD05显示MRP清单
MD04库存需求订单
MD02运行物料需求计划
COOIS显示生产订单清单
CO02更改生产订单(下达生产订单)
MD42对成品的生产计划
PM模块的主要t—code:
CO01创建生产订单
CO11N工序确认(生产订单确认)
(MPS是确定每一具体的最终产品在每一具体时间段内生产数量的计划)
26.SAPR/3包含哪些模块?
FInancialmanagement (FI,财务会计)ﻫCOst managementandcontrolling(CO,管理会计)ﻫMaterialManagement (MM,物料管理)
ProductionPlanning (PP,生产计划和控制)ﻫSalesandDistribution (SD,销售和分销)ﻫProduction Planning (PP,工程/项目管理)
Quality Management (QM,质量管理)ﻫProject Management (PM,工厂维护与管理)ﻫHumanResource (HR,人力资源)
EnterpriseControl (EC,企业控制)ﻫTreasury (TR,财务管理)
InvestmentManagement (IM,投资管理)
27.什么是batchinput(bdc)并简单介绍其流程?
BDC调查有哪些方式?
BDC有几种,分别是什么?
流程:
①进行BDC调查(使用事务SHDB);
②提炼数据;
③把提炼的数据转换到内表‘BDCDATA’中;
④调用calltransaction把数据导入系统。
BDC类型:
①通过calltransaction形式执行;
②通过session方式形式执行,如果session执行成功,数据将被传送成功。
BDC调查方式:
① 使用事务SHDB调查;
②把光标置到需要调查的事务的项目上:
通过按F1键→技术设定→项目名来进行调查。
29。
请列举abap程序的运行方式?
它们一般表现为什么类型的程序?
①可以分配事务代码并通过事务代码运行,用于完成一项系统功能,可以添加到最终用户的系统定制菜单中。
可执行程序(report),模块池程序。
②不能直接通过事务代码运行的程序。
功能组,ABAP类库,ABAP接口库,子程序,类型组包含程序。
30。
alv是什么,能简单介绍一下alv的作用吗?
ALV是abaplistview。
是ABAP的报表显示工具。
它把内表中的内容以设定的格式,显示出来,附加一些功能,如下载为本地文件等。
31.下拉式报表(下钻式报表)做过吗,介绍一下下拉列表多用到的技术?
Hide,
at line-selection定义用户双击列表某行时触发的事件,
atuser—command定义用户按下某按钮,菜单项或输入命令后触发的事件,
atPF〈n〉用户按下功能代码,(p307BCDWBDIC。
HLP)
32。
sap文件操作都有哪几种?
分别有什么操作?
版本有什么限制?
顺次文件(服务器文件)
本地文件(客户端文件)
顺次文件的操作包括:
打开,读取,写入,关闭,删除
本地文件的操作:
4、7版本
GUI_DOWNLOAD
GUI_UPLOAD
4、6版本以前的,性能不好。
WS_DOWNLOAD
WS_UPLOAD
DOWNLOAD
UPLOAD
33。
dynpro程序结构以及运行机制,介绍一下。
逻辑上分为PBO,PAI以及POV,POH
建立程序时物理上TOP,O01,I01,F01。
运行机制:
T-CODE->PBO—〉PAI……………
34。
如果bdc出错时我们应该如何处理?
可以设置“出错时转前台运行”。
有机会输入修正数据。
ﻫ如果不想马上转前台,用insert_group插入一个session。
35.如果我们想把一个batch的程序定义为零点开始启动应该怎么做?
在sm36下,通过给出job名称,job类,和jobsteps创建一个后台job.
36.alv的处理需要2小时或者更长的时间才能显示出来,应该怎么处理?
①把标准表改称sorted表或hash表;
②检查取数逻辑,特别是数据库取数逻辑是否有影响效率的地方而加以改进;
③判断在选择画面上增加查询条件;
37.如果发现报表性能问题,应如何去处理?
首先要检查代码,检查代码是不是有误,看看能不能进行常做的代码优化。
查找耗费资源的原因。
如果是数据太多,可以增加筛选数据的条件,如在画面上增加查询条件.
se30定位错误.有一个运行分析图示,找到瓶颈:
是数据库操作还是代码运行的问题。
如果是代码运行的时间较长,把标准内表类型改成sorted或者hash的内表
38。
经常暴露的性能问题一般体现的什么语句上,举例说明?
Select和select single,forall enteris,二分法,append和collect,loop里不能套select,where条件,避免使用selectdistinct,代替先sort,delete.
39.sorted内表在使用时,有什么注意的地方?
read时可否删除内表的记录?
不能删除。
40。
在什么情况下要用forallentries,用应该注意什么?
类似外连接的时候,用一个表的某一字段为条件,从另一数据库中表的数据。
Loop套select的时候用,2个表,for allentries。
forall entries,用它应该注意什么:
使用前要检查内表是否为空,否则会查询出全部数据。
要尽可能多的用关键字,否则会把重复的删掉。
41. 打印报表时,想实现直接打印不显示在屏幕上应如何处理?
可以通过new—page print on语句,将生成的列表直接发送到spool,系统进行打印处理,不再屏幕中进行显示。
在write语句之前,打印函数之后.
42.解释一下pbopaipov poh?
PBO:
ProcessBeforeOutput(显示前处理过程)
在向用户显示屏幕GUI之前进行触发,一般作画面初始化和设定status,title,动态设定画面属性,清空变量
PAI:
ProcessAfterInput(输入后处理过程)在用户进行某些屏幕行为后触发,对应一些用户操作,画面check。
POV:
Process OnValue—request对应功能键F4用户对画面上某个字段按F4,类似检索help值table
POH:
ProcessOnHelp-request对应功能键F1
43.在dynpro想实现双击,取出对应屏幕上的字段的名字的值,如何处理?
44. dynpro的动态属性,有哪些举例说明?
NAME屏幕字段名称
GROUP1,2,3,4,屏幕字段属于哪个组
ACTIVE 1克用,0不可用
REQUIRED1必入力,0非必入力
INPUT1可入力,0不可入力
OUTPUT1可显示,0不可显示
INTENSIFIED1强调显示,0非强调显示
INVISIBLE1为*,0为输入即可见
LENGTH字段输出长度
DISPLAY_3D以三维框架显示字段
VALUE_HELP 有查询帮助的字段
45.在pov中,如果数据的选择条件为屏幕上的值的时候如何处理?
46. dynpro逻辑块中,field的作用是什么?
进行字段输入检查。
(防止所有控件都变灰)
47.列举abap数据字典中的对象及作用?
三层结构?
数据字典中的对象:
①Tables
②Views
③ Dataelements
④Structure
⑤Domains
⑥SearchHelps
⑦LocalObjects
三层结构:
Domains、Dataelements、Tables(Views)。
48.Function所涉及到的参数及其作用
Se37功能组添加FM
Attribute:
设定功能模块类型,名称等通用属性
Import:
定义输入参数,从程序传递到功能模块。
Export:
定义输出参数,从功能模块传递到程序中的参数
Tables:
定义内表参数,将内表整体输入输出
Exceptions:
定义可能出现的异常
Changing:
定义输