1.列举AT事件并说明其作用,AT事件中的工作区有何不同?
AT FIRST 循环loop中执行第一条数据
AT LAST 循环loop中执行最后一条数据
AT NEW 循环loop中指定字段(包含指定字段)记录与上一条记录不一致数据执行
AT END OF 循环loop中指定字段(包含指定字段)记录与下一条记录不一致数据执行
AT事件内容不可以包含loop事件 working area
AT NEW 与AT first 事件指定字段必须是第一个字段,
2. 交互式报表事件
PBO PAI POV POH
3. 报表的选择画面上能否添加自定义工具栏及如何实现?
能够添加,通过语句SELECTION-SCREEN FUNCTION KEY n(n为1至5,最多定义5个)。
4. 如何更改屏幕各元素的状态?举例一些比较常用的屏幕属性
在报表AT SELECTION-SCREEN OUTPUT事件中或PBO(PROCESS BEFORE OUTPUT)中,
LOOP AT SCREEN.
…
MODIFY SCREEN.
ENDLOOP.
SCREEN-NAME 画面元素的名称
SCREEN-GROUP1--SCREEN-GROUP4 对画面元素的分组
SCREEN-INPUT 能否输入
SCREEN-INVISIBLE 是否可见
SCREEN-LENGTH 可见长度
SCREEN-ACTIVE 是否是可用的状态
5. 如何设置 ALV 中的热键
Set parameter id ‘BES’ field gw_itab-ebeln.
Call transaction ‘ME23N’and skip first screen.
6. FM ALV 和 OO ALV 的比较
FM ALV 和 OO ALV都能够实现按钮自定义、数据修改、按钮处理自定义操作,通常情况下FM ALV 主要用于报表数据展示及简单交互;OO ALV 主要用于dialog程序开发,可以进行复杂的控制,比如单元格的修改控制(FM只能控制到列修改)、自定义F4等,OO ALV可以根据容器排列很方便的定义布局,一个屏幕可以放多个ALV,但是FM ALV 只能一屏显示一个ALV.
7. 简述 modify 、insert、update 对数据库表做操作时的影响
Modify操作数据库时,可以使用from内表或者工作区来进行多条和单亲的更新,要求内表或工作
区跟数据库表的结构一致,当数据库表中存在重复记录时,执行更新操作,更新的值为内表或工作区的值
当数据库表中不存在记录时,执行插入,插入的值为内表或工作区的值
Insert操作数据库时,可以用from内表或者工作区进行多条和单亲的插入,要求內表或工作区跟
数据库表的结构一致,如果数据库中不存在重复记录时,执行插入,插入的值为内表或工作区的值;如果
已经存在重复记录,会出现更新异常
Update操作数据库时,可以直接set来进行单值更新,可以用 from table和工作区进行批量更新,
求内表和工作区跟数据库表的结构一致,当存在记录时执行更新,当不存在记录时,没有数据会被更新
同时也不会产生异常,sy- subro=0
8.ABAP 数据表的主索引是什么?索引的好处与坏处?与建索引的注意事项!
ABAP 数据表的主键是表的主索引;好的索引能加快数据读取的速度但会增加更新数据库表的时间;建立次级索引时应尽量选取那些查询条件经常使用到的字段。
9. 找数据库表,有哪些常用的方法。
(1)、通过点击画面上需要查找的字段,点击F1,在弹出画面中的技术信息。
(2)、通过ST05进行数据库操作的跟踪。对于在前台界面进行数据的新增或更新,在数据库中都会有所体现能够
(3)、通过事务代码SE80-》repository information system-》ABAP字典-》数据库表格中,对魔个字段进行查询
10. inner join 与 left-outer join 的区别?
Inner join:查询结果只包括左表与右表中都满足查询条件的数据
left-outer join:将主表(左表)中的所有满足查询条件的数据都会包括,若相同的查询条件下在右表不存在的记录也会包括;
11. 如何建立数据库锁对象,激活锁对象产生的 Function Module 的名字是什么,在何处查看锁表的情况?
在SE11中,选择“锁对象”,即可建立
用于设锁的FM为:EQUEUE_<锁对象名>。它用于在锁表( Lock Table)中生成一个锁项(LockEntry)。若设锁不成功的话,就会在 Return中反映出来。
用于释放锁的FM为:DEQUEUE_<锁对象名>。它用于从锁表中删除一个锁
在SM12中查看锁表的情况
这两个锁FM是在SAP系统的一个特殊工作进程中执行的,专门进行锁管理。它运行在一个单独的服务器上,而该服务器专门用于维护整个SAP系统的主锁表( Central locak table)
有两种锁类型
在E11中,选择“锁对象”,即可建立
用于设锁的FM为:酬 QUEUE<锁对象名>。它用于在锁表( Lock Tab le)中生成一个锁项(Lock
Entry)。若设锁不成功的话,就会在 Return中反映出来。
用于释放锁的M为:E<锁对象名>。它用于从锁表中删除一个锁
在SM12中查看锁表的情况
这两个锁酬M是在SAP系统的一个特殊工作进程中执行的,专门进行锁管理。它运行在一个单独的
服务器上,而该服务器专门用于维护整个SAP系统的主锁表( Central locak table
有两种锁类型
在E11中,选择“锁对象”,即可建立
用于设锁的FM为:酬 QUEUE<锁对象名>。它用于在锁表( Lock Tab le)中生成一个锁项(Lock
Entry)。若设锁不成功的话,就会在 Return中反映出来。
用于释放锁的M为:E<锁对象名>。它用于从锁表中删除一个锁
在SM12中查看锁表的情况
这两个锁酬M是在SAP系统的一个特殊工作进程中执行的,专门进行锁管理。它运行在一个单独的
服务器上,而该服务器专门用于维护整个SAP系统的主锁表( Central locak table
有两种锁类型
共享锁一一只读锁,一个用户正在读数据时,阻止其他用户更改该数据
独占锁一一可写锁,一个用户正在修改数据时,阻止其他用户更改该数据.
12:使用 OPEN SQL 注意原则
- 尽可能减少满足条件的数据条目数量
- 减少数据的传输量,以减少网络流量
- 减少访问的数据库表量
- 减少查询难度,可以通过整理选择标准来实现
- 减少数据库负载
- 不要在loop中访问数据库 尽量将数据与先提取到内表中 然后在通过内表进行数据的整合
- SELECT语句尽量提取需要的字段 对于不需要的字段避免抽取
- Select语句where条件 应该先将主键相关条件放在前面 然后按照比较符 = < > <> like in 的顺序排序where条件
- 读取内表使用二分法查找方式 BYNARY SEARCH
13:常用的 abap 开发 T-CODE 有哪些?
SE38 程序创建
SE37 函数创建
SE11 表、元素、域、结构、搜索帮助、锁对象、表类型、表视图创建
SE80 函数组、类等查询创建
ST05 查询性能
SM59 ABAP链接
SE24 创建类
SE93 查询创建事务代码
SE91 查询消息
SM12查询锁表情况
14. 什么是权限对象(Authorization Objects)?在 ABAP 程序中使用哪条语句进行授权检查?
权限对象由一组字段组成、这些字段的值将被用于进行权限检查。
ABAP程序中使用AUTHORITY-CHECK语句根据权限对象进行权限检查;
在AUTHORITY-CHECK语句中,必须指明权限对象的所有字段,但有一个例外,可以用dummy关键字来绕过某个字段的检查。通过sy-subrc的返回值来检查,0代表通过,其他均为错误,一个授权对象最多可以定义10个字段。
15. 与权限对象有关的事务代码有哪些?
SU20:查看创建权限字段
SU21:查看定义权限对象
SU53:显示权限检查出错原因:对于调用function时,返回无权限的错误后,能在此事务码中查找到错误信息;
PFCG:角色维护,将所建的权限对象与某个角色关联,角色分配给某个用户后,就能检查该用户是否有进行操作的某权限。
16:DIALOG 开发的常用几个控件是什么?
子屏幕、文本、输入输出框、框、容器、表控制、按钮等
17. BDC 与 BAPI 之间的区别
BDC:SHDB
BAPI:BAPI
都可以用作数据导入,但是BDC是完全模拟前台操作,而BAPI是SAP 提供的标准API通过调用BAPI在后台生成相应数据,性能高于BDC导入方式
18.增强的种类及相关事务代码
增强就是ERP系统标注程序出口,在该出口中由用户根据企业实际需求编写客户化逻辑代码。
USER exit:SE37 以EXIT*开头
Customer exit:SMOD(查看增强组件)/CMOD(建立项目后,实现增强)
BADI增强:SE18(查找接口)/SE19(对接口进行实施)
19. 如何进行数据库表字段的增强?Append 和 Include 的方式有何区别?
创建AET增强字段,字段必须有数据元素
Append结构( Append Structure)和自定义 Include( Customizing Include)。 Append结构是在向尾添加字段时创建的,自定义
Include由sAP开发人员指定,以使用户可以创建新字段它们之间的区别在于: Append的结构只能由该表使用,其他表使用不可; I
nclude能够插入任结构或表,其中当插入表时,该表会自动转换为相同字段的结构。
20.如何创建一个 BAPI?
SWO1业务对象创建器
SWO2 业务对象浏览器
SWO3 业务对象仓库浏览器
BAPI bapi对象浏览器
21. CHECK、EXIT、RETURN 命令的区别?
22. 初始化内表有几种方式?描述各方式间不同之处
23. function module 中如何给出错误消息?
24.Web Service实现步骤
25. SMART FORM 如何实现公司 LOG 打印,其步骤是什么?
通过事务代码SE78先将LOG导入,导入的只是位图、GIF文件、导入注意用256色,否则会导致图片打印有问题;
最后在smartform中添加LOG图片即可、