SAP ABAP 面试题交流

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 注意原则
  1. 尽可能减少满足条件的数据条目数量
  2. 减少数据的传输量,以减少网络流量
  3. 减少访问的数据库表量
  4. 减少查询难度,可以通过整理选择标准来实现
  5. 减少数据库负载
  6. 不要在loop中访问数据库 尽量将数据与先提取到内表中 然后在通过内表进行数据的整合
  7. SELECT语句尽量提取需要的字段 对于不需要的字段避免抽取
  8. Select语句where条件 应该先将主键相关条件放在前面 然后按照比较符 = < > <> like in 的顺序排序where条件
  9. 读取内表使用二分法查找方式 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图片即可、

相关推荐

  1. 手撕面试:多线程交叉打印ABC

    2023-12-15 06:16:02       21 阅读
  2. <span style='color:red;'>面试</span><span style='color:red;'>题</span>

    面试

    2023-12-15 06:16:02      14 阅读
  3. 面试

    2023-12-15 06:16:02       5 阅读
  4. go面试--使用两个goroutine交替打印数字与字母

    2023-12-15 06:16:02       33 阅读
  5. 面试分享——Elasticsearch面试

    2023-12-15 06:16:02       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-15 06:16:02       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-15 06:16:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-15 06:16:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-15 06:16:02       18 阅读

热门阅读

  1. 【springboot】【easyexcel】excel文件读取

    2023-12-15 06:16:02       37 阅读
  2. Android 修改状态栏背景半透明显示

    2023-12-15 06:16:02       40 阅读
  3. Angular 2 学习笔记

    2023-12-15 06:16:02       36 阅读
  4. Android笔记:SwipeRefreshLayout 自动刷新

    2023-12-15 06:16:02       33 阅读
  5. 数据仓库相关概念

    2023-12-15 06:16:02       42 阅读
  6. c语言多线程队列实现

    2023-12-15 06:16:02       40 阅读
  7. Redis—SpringDataRedis

    2023-12-15 06:16:02       26 阅读
  8. npm install -g node-gyp error -13

    2023-12-15 06:16:02       31 阅读