sap-abap面试知识点总结
- 格式:doc
- 大小:298.94 KB
- 文档页数:9
第1篇一、基础知识1. 请简述SAP ABAP开发环境的组成。
答案:SAP ABAP开发环境主要包括以下组成部分:(1)SAP GUI:用于与SAP系统交互的图形用户界面。
(2)SAP SE38/SE80:用于编写、调试和测试ABAP代码的编辑器。
(3)SAP SScr:用于开发SAP Screen Painter屏幕画家的工具。
(4)SAP ADT:用于开发SAP Advanced Business Application Programming技术的工具。
(5)SAP NetWeaver:SAP的集成平台,提供各种开发、运行和管理工具。
2. 请解释SAP ABAP中的数据类型。
答案:SAP ABAP中的数据类型分为以下几类:(1)基本数据类型:包括整型(INTEGER)、浮点型(FLOAT)、字符型(CHAR)、日期型(DATETIME)等。
(2)结构化数据类型:包括结构(STRUCTURE)、表(TABLE)、内表(INTERNAL TABLE)等。
(3)用户定义数据类型:包括类(CLASS)、接口(INTERFACE)等。
3. 请简述SAP ABAP中的模块化编程。
答案:SAP ABAP中的模块化编程是指将程序划分为多个模块,每个模块负责特定的功能。
模块化编程的优点如下:(1)提高代码的可读性和可维护性。
(2)方便代码的重用。
(3)便于调试和测试。
4. 请解释SAP ABAP中的异常处理。
答案:SAP ABAP中的异常处理是指程序在运行过程中遇到错误时,能够及时捕获并处理这些错误。
异常处理的基本步骤如下:(1)声明异常:在程序中声明可能发生的异常。
(2)抛出异常:当程序遇到错误时,抛出异常。
(3)捕获异常:在程序中捕获并处理异常。
二、高级应用1. 请解释SAP ABAP中的内表(Internal Table)。
答案:SAP ABAP中的内表是一种临时存储数据的结构,类似于C语言中的数组。
abap面试题1. 介绍ABAP编程语言ABAP(Advanced Business Application Programming)是一种高级商务应用程序编程语言,是SAP系统的核心编程语言,用于开发和定制SAP软件。
它是一种高级的事件驱动编程语言,结合了批处理和事务处理的特点,支持面向对象编程和数据库交互。
2. 什么是ABAP Workbench?ABAP Workbench是一个集成开发环境(IDE),用于开发、维护和测试ABAP程序。
它提供了一系列工具和功能,包括代码编辑器、调试器、数据字典、表格维护器等,方便开发人员进行ABAP程序的开发和调试。
3. 请解释ABAP的数据字典是什么?ABAP的数据字典是一个集中管理和维护数据库对象的工具。
它提供了定义、创建、修改和删除数据库表、视图、数据类型、域、索引等的功能。
通过数据字典,开发人员可以方便地管理和维护与数据库相关的对象。
4. 请解释ABAP中的模块池和程序包的概念。
模块池是一个逻辑单元,用于存放相关的ABAP程序。
在模块池中,可以定义和存放ABAP程序、函数模块、子程序等。
程序包是一个专门的目录存放模块池,可以将多个模块池组织在一个程序包中,方便管理和维护。
5. 什么是BADI(Business Add-Ins)?BADI是一种在SAP系统中进行扩展的方法。
它是一些预定义的接口,当某个特定事件发生时,可以调用这些接口来增强或修改系统的功能。
通过实现BADI接口,可以在不修改SAP标准代码的情况下进行功能的定制和扩展。
6. 解释RFC(远程函数调用)是什么及其在ABAP中的作用。
RFC(Remote Function Call)是一种在不同系统之间进行通信的机制。
它允许在SAP系统和其他外部系统之间进行远程函数调用。
在ABAP中,可以使用RFC机制与其他系统进行数据交换和共享功能,实现不同系统之间的集成。
7. 如何在ABAP中处理异常?在ABAP中,可以使用EXCEPTION语句处理异常。
abap面试题sapABAP面试题答案(SAP)1. 介绍ABAP编程语言ABAP(Advanced Business Application Programming)是SAP的专有编程语言,用于开发和定制SAP应用程序。
它是一种高级的、事件驱动的编程语言,具有丰富的数据处理和业务逻辑功能,并与SAP的数据库和服务器进行无缝集成。
2. 解释SAP系统架构SAP系统架构主要包括三个层次:表示层、应用层和数据库层。
- 表示层:提供用户界面,允许用户通过各种设备(例如PC、手机等)与SAP系统进行交互。
- 应用层:处理业务逻辑和事务处理。
ABAP代码在应用服务器上执行,包括数据处理、验证和逻辑控制等。
- 数据库层:存储系统数据和应用程序数据。
3. 解释ABAP数据字典ABAP数据字典是用于定义和管理SAP应用程序中使用的数据对象的工具。
它提供了各种数据类型、表、视图、数据元素和域,用于组织和管理数据。
通过数据字典,开发人员可以方便地创建和修改数据库表、数据类型等结构。
4. 什么是用户退出(User Exit)和什么时候使用它?用户退出是在SAP系统中嵌入自定义代码的一种方法。
它允许开发人员在标准SAP事务处理中添加自定义逻辑,以满足特定的业务需求。
用户退出通常在标准SAP功能无法满足业务需求时使用。
5. 解释BADI(Business Add-Ins)和它们的优势BADI是一种在SAP系统中实现面向对象编程的技术。
它允许开发人员在SAP标准事务过程中插入自定义逻辑,以实现特定的业务需求。
与用户退出相比,BADI具有更好的可扩展性和灵活性,并可通过简单的配置进行激活或停用。
6. 什么是RFC(远程函数调用)?RFC是一种用于在SAP系统之间进行远程通信的协议和技术。
它允许一个SAP系统中的程序调用另一个SAP系统中的函数或方法。
RFC广泛应用于SAP系统的集成和数据交换。
7. 解释SAP Smart FormsSAP Smart Forms是一种用于创建和管理电子表单的工具。
sap abap 面试题SAP ABAP面试题导语:SAP ABAP(Advanced Business Application Programming)是一种高级商务应用程序编程语言,用于开发SAP应用程序。
面试时,了解ABAP的基本概念和技术是非常重要的。
本文将讨论一些常见的SAP ABAP面试题。
1. 介绍SAP ABAP是什么以及它的主要特点。
SAP ABAP是一种面向对象的编程语言,用于开发SAP应用程序。
它的主要特点包括:- ABAP是一种高级语言,具有丰富的库函数和开发工具。
- ABAP支持与SAP系统的连接,可以访问和修改SAP系统内的数据。
- ABAP可以通过SAP GUI(图形用户界面)或Web浏览器进行访问。
- ABAP支持事务处理和批处理功能。
- ABAP具有强大的调试功能,可以帮助开发人员快速定位和修复错误。
2. 什么是SAP数据字典?SAP数据字典是一个数据库的元数据存储库。
它包含SAP系统中使用的所有数据结构的定义,如表、视图、数据类型、域等。
开发人员可以使用数据字典创建和管理数据库对象,并在ABAP程序中使用这些对象。
3. ABAP中的内表和数据库表有什么区别?内表(Internal Table)是在ABAP程序中定义的一种数据结构,用于在内存中存储和处理数据。
内表只存在于程序运行期间,并且通常用于处理临时数据。
数据库表是在SAP数据字典中定义的,用于在数据库中永久存储数据。
数据库表可以在多个ABAP程序之间共享,并且数据可以长期保留。
4. 怎样避免ABAP程序中的死循环?为了避免ABAP程序中的死循环,可以采取以下措施:- 在循环中使用BREAK语句,当满足某个条件时跳出循环。
- 在循环中使用EXIT语句,直接退出整个程序。
- 确保循环条件能够最终为假,避免无限循环。
5. 请解释什么是BADI(Business Add-In)?BADI是SAP系统中用于扩展或修改现有功能的一种方法。
abap 常用面试问题
1. ABAP是什么?它是用于开发SAP应用程序的编程语言。
2. ABAP程序的结构是怎样的?它由于一系列的模块组成,包括数据定义、逻辑处理和用户界面。
3. 请解释一下ABAP的数据字典。
数据字典是ABAP中的一个核心组成部分,它用于定义和管理数据库表、视图和数据类型。
4. 什么是内表?内表是ABAP中的一种数据对象,类似于程序中的一个数组,用于存储和处理数据。
5. ABAP的优势是什么?ABAP具有强大的数据处理功能,可以与SAP系统紧密集成,并且具有良好的性能。
6. 如何在ABAP中调用函数?可以使用CALL FUNCTION语句来调用函数模块。
7. 如何使用ABAP来处理异常情况?可以使用TRY...CATCH...ENDTRY语句块来捕获和处理异常。
8. 什么是ABAP Objects?ABAP Objects是ABAP的一个面向对象编程框架,可以创建和管理面向对象的程序。
9. 如何处理ABAP的调试?可以使用ABAP调试器来逐步调试ABAP程序,查看变量的值和程序的执行流程。
10. 请解释一下ABAP的事务处理。
事务处理是ABAP中的一种机制,用于在SAP系统中执行一系列相关的操作,保证数据的一致性。
目录1. 报表知识 (6)1.1基础知识 (6)1.1.1报表事件,有哪些? (6)1.1.2报表选择画面 (7)1.2ALV报表 (8)1.2.1ALV报表实现的流程 (8)1.2.2显示ALV常用的两个FM (8)1.2.3如何设置ALV中的热键 (8)1.2.4ALV显示中的小计 (8)1.2.5FM ALV 和 OO ALV的比较 (8)1.3WRITE LIST (8)2. 数据库知识 (9)2.1基础知识 (9)2.1.1 ABAP数据字典有哪些对象或元素? (9)2.1.2 据库提交确认和数据库回滚取消语句 (9)2.1.3 什么是LUW (9)2.1.4简述modify 、insert、update对数据库表做操作时的影响 (9)2.1.5 要描述域、数据元素、表字段之间的关系 (9)2.1.6数据字典有几种缓冲方式,适用范围? (9)2.2ABAP和数据库 (10)2.2.1 ABAP 数据表的主索引是什么?索引的好处与坏处?与建索引的注意事项! (10)2.2.2 ABAP透明表有哪几种数据类(data class)?对数据的存储有什么影响? (10)2.2.3 SAP中有几种表,他们的区别是什么? (10)2.2.4什么是簇表(cluster table)?举出知道的簇表。
(10)2.2.5找数据库表,有哪些常用的方法。
(10)2.2.6如何建立数据库锁对象,激活锁对象产生的Function Module的名字为什么,在何处查看锁表的情况? (10)2.2.7更新 FM 分为 V1 和 V2,那么首先会执行哪一种更新类型呢?每种类型又是以哪种模式(异步、同步或本地)执行的呢? (11)2.2.7使用OPEN SQL注意原则 (11)2.3与表相关 (11)2.3.1 MM模块有哪些常用表格 (11)2.3.2 HR模块知识:HR里面存储HR主数据主要用到了哪些表? (11)2.3.3 HR模块知识:HR程序在开发中常用的两个逻辑数据库是什么?分别对其进行描述 12 2.3.4 HR模块知识:HR模块里面,如何修改HR的信息类型,具体如何实现 (12)2.3.5财务模块:财务模块开发中常用的表有哪些,简单举例说明: (12)2.3.6 PM 常用的TABLE (12)2.3.6 inner join 与 left-outer join的区别? (13)3. 权限相关 (14)3.1什么是权限对象(Authorization Objects)?在 ABAP 程序中使用哪条语句进行授权检查? (14)3.2与权限对象有关的事务代码有哪些? (14)4. DIALOG (15)4.1DIALOG 中的几个事件 (15)4.2何在TABLE CONTROL中实现选中一行或多行的效果 (15)4.3DIALOG 开发的常用几个控件是什么? (15)5. BDC (16)5.1BDC录屏的事务代码 (16)5.2BDC与BAPI之间的区别 (16)5.3BDC录屏的注意事项 (16)5.4谈谈BDC的运行模式和更新模式 (16)6. 增强 (17)6.1什么叫增强?有哪些方式进行增强? (17)6.1.1 User EXIT (17)6.1.2 Customer exit (17)6.1.3 BADI (17)6.1.4 Enhancement Spot (17)6.2如何建立增强? (17)6.3与增强相关的事务代码有哪些 (18)6.4如何进行数据库表字段的增强?Append和Include的方式有何区别? (18)7. SMARTFORMS (19)7.1谈谈SmartForm中,Template和Table表格的区别 (19)7.2 SMART FORM如何实现公司LOG打印,其步骤是什么? (19)7.3 smartform 中如何控制段落、单个字符输出格式? (19)8. RFC和 BAPI (20)8.1 RFC (20)8.1.1什么是RFC,有哪些通信模式? (20)8.1.2 RFC中涉及到常用的事务代码有哪些? (20)8.1.3根据调用方式的不同,RFC接口提供了什么样的服务? (20)8.1.4 RFC接口的具体功能包括哪些? (20)8.1.5在通过CALL FUNCTION语句进行远程功能调用的基本模式有哪些 (20)8.1.6怎么创建一个支持远程调用的RFC (21)8.1.7怎么调用一个SAP标准RFC (21)8.1.8怎样建立RFC程序?RFC程序传递的参数都是传递值还是引用?如何建立函数组? 21 8.1.9怎么来维护这个DESTINATION(远程目标) (21)8.2 BAPI (21)8.2.1什么是BAPI?你使用过哪些BAPI实现什么功能? (21)8.2.2什么是业务对象类型?它包含哪些主件? (21)8.2.3如何创建一个BAPI? (22)8.2.4编写BAPI的注意事项有哪些? (22)8.2.5谈谈与BAPI相关的事务代码。
SAP面试题目(ABAP)问题:SAP面试题目(ABAP) 回答:问题一:锁对象(Lock Object)和FM(Function Module)激活锁定对象时,产生的FM 的名字是什么?答案:首先要在ABAP 字典中创建锁对象,然后才能在ABAP 程序中设锁。
创建锁对象时,系统会自动生成两个FM 来进行锁管理。
用于设锁的FM 为:ENQUEUE_。
它用于在锁表(Lock Table)中生成一个锁项(Lock Entry)。
若设锁不成功的话,就会在Return 中反映出来。
用于释放锁的FM 为:DEQUEUE_。
它用于从锁表中删除一个锁项。
在ABAP 程序中,只需使用CALL FUNCITION 语句就可以调用它们。
这两个锁FM 是在SAP 系统的一个特殊工作进程中执行的,专门进行锁管理。
它运行在一个单独的服务器上,而该服务器专门用于维护整个SAP 系统的主锁表(Central Locak Table)。
有两种锁类型:共享锁——只读锁,一个用户正在读数据时,阻止其他用户更改该数据。
独占锁——可写锁,一个用户正在修改数据时,阻止其他用户更改该数据。
问题二:更新方面的FM更新FM 分为V1 和V2,那么首先会执行哪一种更新类型呢?每种类型又是以哪种模式(异步、同步或本地)执行的呢?答案:V1 更新类型比V2 更新类型的优先级高,因此,V1 比V2 行执行。
V1 的执行模式可以为异步、同步或本地;V2 只能为异步执行。
问题三:ABAP 内存(ABAP Memory)交换在使用ABAP 内存的程序间进行数据交换时用到的两个语句是什么?答案:EXPORT to MEMORY ID 用于将数据复制到ABAP 内存,IMPORT from MEMORY ID 用于将数据从ABAP 内存复制到程序中。
在ABAP 内存间进行交换的数据必须在两个程序中都进行声明,并包含同样的数据声明。
问题四:授权对象(Authorization Objects)什么是授权对象?在ABAP 程序中使用哪条语句进行授权检查?答案:授权对象由一组字段组成,这些字段中的值将被用于进行授权检查。
参考ECC系统中的示例数据库表完成本程序。
示例数据库:SCARR航线信息SGEOCITY城市地理位置SCOUNTER销售柜台SPFLI航班信息SFLIGHT航班具体班次信息SBOOK订票数据程序编写要求:1、程序类型为可执行Report程序;2、选择条件使用选择屏幕实现;3、数据查询使用Open Sql;4、兼顾性能优化和用户界面美观;5、遵守命名规范和代码规范;6、实现对多语言的支持,有中、英两种界面。
程序内容要求:一、航班班次查询选择条件:运营公司代码(CARRID)、航线代码(CONNID)、始发国家、始发城市、始发机场、抵达国家、抵达城市、抵达机场、飞行日期、起飞时间、抵达时间、机票价格,且以上条件都为多选。
默认显示剩余座位不为0的航班班次,但用户也可以选择显示全部航班班次;用户可以选择输出结果排序方式和输出最大条数(默认值为20);用户可选择排序方式有:价格、起飞时间(默认)、抵达时间三种。
要求:1、如果没有对应航班班次,请进行消息提示;2、飞行日期默认为当前系统日期;3、输入非法日期、时间(已过去日期,时间)时需要进行消息提示;4、机票价格不可以输入负数;5、当用户选择显示无剩余座位的航班班次时,无剩余座位班次使用红色背景进行突出显示;6、显示列表内容及其格式。
格式:使用ALV格式展现;显示内容:序号、运营公司代码(CARRID)、航线代码(CONNID)、始发国家、始发城市、始发机场、抵达国家、抵达城市、抵达机场、飞行日期、起飞时间、抵达时间、机票价格、剩余座位。
二、航班旅客信息查询选择条件:运营公司代码(CARRID)、航线代码(CONNID)、始发国家、始发城市、始发机场、抵达国家、抵达城市、抵达机场、飞行日期、起飞时间、抵达时间、乘客代码,且以上条件都为多选。
要求:1、如果没有对应航班班次或尚未有乘客信息,请进行消息提示;2、显示内容及其格式。
格式:使用WRITE方式输出,显示时按照航班班次进行分组显示。
sap abap面试题Introduction:在准备SAP ABAP面试时,对于常见的问题做好充分准备是非常重要的。
本文将提供一些常见的SAP ABAP面试题及其答案,以帮助读者更好地准备面试。
1. 什么是 SAP ABAP?SAP ABAP(Advanced Business Application Programming)是一种高级业务应用程序编程语言,用于开发和定制SAP应用程序。
2. 请简要介绍 ABAP Workbench。
ABAP Workbench是用于开发、维护和管理SAP应用程序的综合开发环境。
它提供了各种工具和功能,如ABAP编辑器、数据字典、屏幕绘制器等。
3. ABAP程序的结构是怎样的?一个典型的ABAP程序包括一系列的语句块,其中最常见的是“DATA”、“TYPES”、“SELECT”、“LOOP”以及“END”等。
其中,“DATA”部分用于声明变量,而“TYPES”部分用于定义数据类型。
4. 请解释一下 ABAP数据字典。
ABAP数据字典是一个中央的数据定义和管理工具,用于创建和维护数据结构(表、视图、数据类型等)。
它还控制与数据相关的安全性和完整性。
5. 在 SAP 中,什么是交付单(Delivery)?交付单是用于分发和运输SAP应用程序和支持包的工具。
它用于将自定义程序和配置更改从开发系统转移到测试和生产系统。
6. 如何处理 ABAP Debugging?ABAP Debugging是在程序执行期间通过逐行执行代码以进行故障排除和调试的过程。
我们可以通过在调试模式下运行程序并使用断点进行调试。
7. 解释一下 SAP ABAP Monitoring和 Tuning。
SAP ABAP Monitoring用于监控系统中ABAP程序的执行情况,如性能、内存使用情况等。
Tuning则是根据监控结果对ABAP程序进行优化和调整,以提高性能和效率。
8. 如何在 SAP ABAP 中进行异常处理?在ABAP中,我们可以使用TRY...CATCH语句块来处理异常。
1) PROCESSBEFORQUTPUT简称PBO :进行屏幕初始化工作,如数据库选择,屏幕元素属性动态设定等,如根据用户权限和继电定值申请单的状态确定哪些屏幕字段是输入状态,哪些字段是显示状态;PBO1块结束后,系统显示当前用户屏幕。
2) PROCESS AFTER INPUT(简称PAI):当用户在屏幕上执行某些功能后被触发,PAI结束后,屏幕可能进入后续或返回上一个屏幕序列;3)PROCESSONHELP-REQUEST(简称POH :当用户按下F1键要求查看帮助信息时触发;4) PROCESSONVALUE-REQUE州称POV:当用户按下F4键要求查看搜索帮助时触发。
5)如何实现f4帮助方法一:a. .事务码SE11打开数据字典,选中搜索帮助,填写名称,点击创建.(前提先把表格和数据元素以及域都建好了)2. 填写基本相关信息,搜索帮助描述,取数的表,显示的对话框类型.3. 填写搜索帮助参数,字段名称,输入输出属性,显示位置次序,数据元素.4. 保存,激活.5. 打开要建立搜索帮助的表,选中要建立搜索帮助的字段,点击SRCH HELP填入你建立好的搜索帮助的名称.6. 保存,激活表.7. 重新保存要用到表中搜索帮助的程序,激活后就可以使用搜索帮助来选择值了Ps:在建立屏幕程序的时候要填上屏幕中你所填变量的f4的名字Dictionary: Display Search Help日u妙乳歪端!耳珍ag OHaementsrysrtfi ZVlfB.HLP Acti/eShort descrptbn 由邓S SE^kCH H E ZFAitribjtes %f「rixn注:此方法比较直观,但是有相关的前提:要添加搜索帮助的表中的字段,必须要有参照的数据元素.没有数据元素无法建立搜索帮助.所以前提就是我们要事先维护好数据元素^方法二:在ABAP^序中直接写相关代码来实现.具体步骤:1. 添加VALUE-REQUES事件.示例代码:AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_XILEI-LOW.PERFORM FRM_XILEI_SELECT.2. 在子程序中实现搜索帮助功能.示例代码:FORM FRM_XILEI_SELECT .*细类的搜索帮助DATA: RT_TAB LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.DATA: BEGIN OF IT_XILEI OCCURS 0,XILEI LIKE ZSFQ10-XILEI,END OF IT_XILEI.SELECT XILEI INTO CORRESPONDING FIELDS OF TABLE IT_XILEI FROM ZSFQ10.CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'EXPORTINGRETFIELD = 'XILEI'DYNPPROG = SY-REPIDDYNPNR = SY-DYNNRDYNPROFIELD = 'S_XILEI-LOWVALUE_ORG = 'S'CALLBACK_PROGRAM = SY-REPIDTABLESVALUE_TAB = IT_XILEIRETURN_TAB = RT_TABEXCEPTIONSPARAMETER_ERROR = 1NO_VALUES_FOUND = 2OTHERS = 3.IF SY-SUBRC <> 0.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.ENDFORM. " FRM_XILEI_SELECT3. 保存,激活程序后,即可在屏幕上使用搜帮助了.注:此方法不是太直观,但是不用在数据字典中建立相关的数据,只需在程序中动态提取显示.方法三:固定值。
ABAP⾯试及答案Interview+Questions⾯试问题集1.数据效率尽量使⽤Select(max,min,sum,avg)和select single,for all enteris,⼆分法,append和collect loop⾥不能套select;避免使⽤select distinct,代替先sort,再delete;①抽取数据时,避免使⽤SELECT *, 尽量使⽤SELECT A B INTO TABLE ITAB这样的语句。
②不要使⽤SELECT...ENDSELECT语句。
③尽量避免在LOOP中访问数据库。
可以在之前先把数据取到内表,在LOOP中⽤READ TABLE WITHKEY ... BINARY SEARCH.进⾏读取对应的数据。
④⽤SORT代替ORDER BY。
⑤使⽤⼆分查找法。
READ TABLE的之前使⽤SORT TABLE BY对内表进⾏排序, 然后使⽤READ TABLEWITH KEY ...BINARY SEARCH.⑥避免使⽤SELECT DISTINCT语句。
在抽取数据到内表后⽤DELETE ADJACENT DUPLICATES语句来消除重复⾏。
⑦尽量多指定WHERE语句条件。
⑧在WHERE语句指定查询条件时,在同等条件下把包含等号的查询条件放到前边。
2.什么时候使⽤For all entries命令及其使⽤时的注意事项当需要在LOOP中使⽤查询语句时,⼀般使⽤For all entries。
注意事项:①IN条件所在的内表不能为空(如为空将取出全部的数据);②数据库字段与内表中的关联⽐较字段必须具有相同的类型和长度,且不能在⽐较中使⽤操作符LIKE、BETWEEN和IN,同时不能使⽤ORDER BY⼦句。
③为避免删除并不重复的纪录,在定义内表时应尽可能多的指定关键字。
3.如何设置ALV的⿏标双击事件。
如何设置ALV的页眉和页脚ALV的⿏标双击事件:构造LS_LAYOUT的F2CODE属性设置为”&ETA”即可。
面试问题集1.数据效率尽量使用Select(max,min,sum,avg)和select single,for all enteris,二分法,append和collectloop里不能套select;避免使用select distinct,代替先sort,再delete;①抽取数据时,避免使用SELECT *, 尽量使用SELECT A B INTO TABLE ITAB这样的语句。
②不要使用SELECT...ENDSELECT语句。
③尽量避免在LOOP中访问数据库。
可以在之前先把数据取到内表,在LOOP中用READ TABLE WITH KEY ... BINARY SEARCH.进行读取对应的数据。
④用SORT代替ORDER BY。
⑤使用二分查找法。
READ TABLE的之前使用SORT TABLE BY对内表进行排序, 然后使用READ TABLE WITH KEY ...BINARY SEARCH.⑥避免使用SELECT DISTINCT语句。
在抽取数据到内表后用DELETEADJACENT DUPLICATES语句来消除重复行。
⑦尽量多指定WHERE语句条件。
⑧在WHERE语句指定查询条件时,在同等条件下把包含等号的查询条件放到前边。
2.什么时候使用For all entries命令及其使用时的注意事项当需要在LOOP中使用查询语句时,一般使用For all entries。
注意事项:①IN条件所在的内表不能为空(如为空将取出全部的数据);②数据库字段与内表中的关联比较字段必须具有相同的类型和长度,且不能在比较中使用操作符LIKE、BETWEEN和IN,同时不能使用ORDER BY子句。
③为避免删除并不重复的纪录,在定义内表时应尽可能多的指定关键字。
3.如何设置ALV的鼠标双击事件。
如何设置ALV的页眉和页脚ALV的鼠标双击事件:构造LS_LAYOUT的F2CODE属性设置为”&ETA”即可。
(招聘面试)ABAP 面试大全目录1.报表知识 (6)1.1基础知识 (6)1.1.1报表事件,有哪些? (6)1.1.2报表选择画面 (7)1.2ALV 报表 (8)1.2.1ALV 报表实现的流程 (8)1.2.2显示ALV 常用的两个FM (8)1.2.3如何设置ALV 中的热键 (8)1.2.4ALV 显示中的小计 (8)1.2.5FM ALV 和 OO ALV 的比较 (8)1.3 WRITE LIST (8)2.数据库知识 (9)2.1基础知识 (9)2.1.1ABAP 数据字典有哪些对象或元素? (9)2.1.2据库提交确认和数据库回滚取消语句 (9)2.1.3什么是LUW (9)2.1.4简述modify 、insert、update 对数据库表做操作时的影响 (9)2.1.5要描述域、数据元素、表字段之间的关系 (9)2.1.6数据字典有几种缓冲方式,适用范围? (9)2.2ABAP 和数据库 (10)2.2.1ABAP 数据表的主索引是什么?索引的好处与坏处?与建索引的注意事项! (10)2.2.2ABAP 透明表有哪几种数据类(data class)?对数据的存储有什么影响? (10)2.2.3SAP 中有几种表,他们的区别是什么? (10)2.2.4什么是簇表(cluster table)?举ft知道的簇表。
(10)2.2.5找数据库表,有哪些常用的方法。
(10)2.2.6如何建立数据库锁对象,激活锁对象产生的Function Module 的名字为什么,在何处查看锁表的情况? (10)2.2.7更新 FM 分为 V1 和 V2,那么首先会执行哪一种更新类型呢?每种类型又是以哪种模式(异步、同步或本地)执行的呢? (11)2.2.7 使用OPEN SQL 注意原则 (11)2.3与表相关 (11)2.3.1MM 模块有哪些常用表格 (11)2.3.2HR 模块知识:HR 里面存储HR 主数据主要用到了哪些表? (11)2.3.3HR 模块知识:HR 程序在开发中常用的两个逻辑数据库是什么?分别对其进行描述 12 2.3.4HR 模块知识:HR 模块里面,如何修改HR 的信息类型,具体如何实现 (12)2.3.5财务模块:财务模块开发中常用的表有哪些,简单举例说明: (12)2.3.6PM 常用的TABLE (12)2.3.6 inner join 与 left-outer join 的区别? (13)3.权限相关 (14)3.1什么是权限对象(Authorization Objects)?在 ABAP 程序中使用哪条语句进行授权检查? (14)3.2与权限对象有关的事务代码有哪些? (14)4.DIALOG (15)4.1DIALOG 中的几个事件 (15)4.2何在TABLE CONTROL 中实现选中一行或多行的效果 (15)4.3DIALOG 开发的常用几个控件是什么? (15)5.BDC (16)5.1BDC 录屏的事务代码 (16)5.2BDC 与BAPI 之间的区别 (16)5.3BDC 录屏的注意事项 (16)5.4谈谈BDC 的运行模式和更新模式 (16)6. 增强 (17)6.1什么叫增强?有哪些方式进行增强? (17)6.1.1User EXIT (17)6.1.2Customer exit (17)6.1.3BADI (17)6.1.4Enhancement Spot (17)6.2如何建立增强? (17)6.3与增强相关的事务代码有哪些 (18)6.4如何进行数据库表字段的增强?Append 和Include 的方式有何区别? (18)7.SMARTFORMS (19)7.1谈谈SmartForm 中,Template 和Table 表格的区别 (19)7.2SMART FORM 如何实现公司LOG 打印,其步骤是什么? (19)7.3smartform 中如何控制段落、单个字符输ft格式? (19)8.RFC 和 BAPI (20)8.1RFC (20)8.1.1什么是RFC,有哪些通信模式? (20)8.1.2RFC 中涉及到常用的事务代码有哪些? (20)8.1.3根据调用方式的不同,RFC 接口提供了什么样的服务? (20)8.1.4RFC 接口的具体功能包括哪些? (20)8.1.5在通过CALL FUNCTION 语句进行远程功能调用的基本模式有哪些 (20)8.1.6怎么创建一个支持远程调用的RFC (21)8.1.7怎么调用一个SAP 标准RFC (21)8.1.8怎样建立 RFC 程序?RFC 程序传递的参数都是传递值还是引用?如何建立函数组? 21 8.1.9怎么来维护这个DESTINATION(远程目标) (21)8.2BAPI (21)8.2.1什么是BAPI?你使用过哪些BAPI 实现什么功能? (21)8.2.2什么是业务对象类型?它包含哪些主件? (21)8.2.3如何创建一个BAPI? (22)8.2.4编写BAPI 的注意事项有哪些? (22)8.2.5谈谈与BAPI 相关的事务代码。
ABAP⾯试问题及侧重点ABAP⾯试1.简单的Report包括哪些东西2.Dialog 逻辑流以及相应的处理内容3.⽤过的⼏种增强⽅式:怎么找增强4.接⼝和函数的使⽤,⼀般遇到⾃⼰不会的函数怎么处理5.关联查询:INNER JOIN 与 LEFT JOIN 与 FOR ALL ENTRIES IN各⽤在什么情况ABAP基础:报表,功能,增强,接⼝,数据处理及性能优化(不管内部还是外部,均需了解)REPORT:1)数据定义;定义内表,结构,选择屏幕2)数据处理;包括屏幕数据检查,数据查询,内表数据处理等3)数据显⽰;定义字段⽬录,布局,特殊设置,CALL FM(习惯⽤REUSE_ALV_GRID_DISPLAY_LVC,LVC后期兼容和修改⽅便,也可以替代OO alv ) DIALOG:这是SAP的精华之⼀,不懂DIALOG,不⼊SAP门。
1)PBO;数据显⽰前处理,循环数据显⽰处理;循环之后⽆效修改和处理2)PAI;表⾏,字段处理,更新表⾏;事件处理增强:出⼝,BADI,隐式(常⽤的三种);前两种可以⽤程序找(下篇⽂章),也可以找到程序对应的包,然后包⾥搜;隐式增强就是触发事件,DEBUG找地⽅加代码。
接⼝:就是查询,处理。
都会的查询:INNER 和LEFT,right是且与或的关系,确定都有的INNER,不确定有的,LEFT,RIGHT。
⽂本表不建议关联,适合单独查。
FOR ALL ENTRIES IN使⽤前最好对关键字排重,⾮空检查;内表超过10万不建议使⽤。
常规的性能优化:先查,后处理,LOOP下⾯尽量不⽤SELECT和LOOP,READ TABLE 要⼆分法排序;内表查询确定字段以及顺序,CORRESPONDING FIELDS使⽤时字段不要多。
考的都是基本的东西,考学习⾯,学习深度,学习能⼒,以及对SAP的认识和⾃⼰的思维逻辑能⼒附简单查询代码:凭证明细报表*&---------------------------------------------------------------------**& Report ZFIR025*&*&---------------------------------------------------------------------**&*&DESC :凭证明细表**&AUTHOR: LY*&*&DATE:20160721*&*&*&CHANGE LIST*& C DEVK901712 2016.07.21 08:11:04 LIYUAN*& C DEVK901869 2016.08.22 15:37:14 LIYUAN 增加本币⾦额*&---------------------------------------------------------------------*REPORT ZFIR025.TABLES:BKPF,BSEG,SKAT.TYPES:BEGIN OF TY_SHOW,MONAT TYPE BKPF-MONAT,BUDAT TYPE BKPF-BUDAT,BELNR TYPE BKPF-BELNR,BUKRS TYPE BKPF-BUKRS,BKTXT TYPE BKPF-BKTXT,GJAHR TYPE BKPF-GJAHR,BLART TYPE BKPF-BLART,WAERS TYPE BKPF-WAERS,USNAM TYPE BKPF-USNAM,AWKEY TYPE BKPF-AWKEY,HKONT TYPE BSEG-HKONT,KUNNR TYPE BSEG-KUNNR,LIFNR TYPE BSEG-LIFNR,KOSTL TYPE BSEG-KOSTL,FKBER TYPE BSEG-FKBER,WRBTR TYPE BSEG-WRBTR,WRBTRS TYPE BSEG-WRBTR,WRBTRH TYPE BSEG-WRBTR,SHKZG TYPE BSEG-SHKZG,MATNR TYPE BSEG-MATNR,XNEGP TYPE BSEG-XNEGP,RSTGR TYPE BSEG-RSTGR, "原因代码TXT40 TYPE T053S-TXT40, "原因代码⽂本LTEXT TYPE CSKT-LTEXT, "成本中⼼⽂本DMBTR TYPE BSEG-DMBTR,DMBTRS TYPE BSEG-DMBTR,DMBTRH TYPE BSEG-DMBTR,TXT50 TYPE SKAT-TXT50,GSBER TYPE BSEG-GSBER,END OF TY_SHOW,BEGIN OF TY_T053S,RSTGR TYPE BSEG-RSTGR, "原因代码BUKRS TYPE BSEG-BUKRS, "原因代码TXT40 TYPE T053S-TXT40, "原因代码⽂本END OF TY_T053S,BEGIN OF TY_CSKT,KOSTL TYPE BSEG-KOSTL, "原因代码LTEXT TYPE CSKT-LTEXT, "原因代码⽂本END OF TY_CSKT.DATA:GT_SHOW TYPE TABLE OF TY_SHOW,GW_SHOW LIKE LINE OF GT_SHOW,GT_T053 TYPE TABLE OF TY_T053S,GW_T053 LIKE LINE OF GT_T053,GT_CSKT TYPE TABLE OF TY_CSKT,GW_CSKT LIKE LINE OF GT_CSKT.DATA:GT_FIELDCAT TYPE LVC_T_FCAT.DATA GS_FIELDCAT LIKE LINE OF GT_FIELDCAT.DATA LS_LAYOUT TYPE LVC_S_LAYO.DEFINE APPEND_FIELDCAT .CLEAR GS_FIELDCAT.GS_FIELDCAT-FIELDNAME = &1.GS_FIELDCAT-SCRTEXT_L = &2.GS_FIELDCAT-OUTPUTLEN = &3.GS_FIELDCAT-NO_ZERO = &4.APPEND GS_FIELDCAT TO GT_FIELDCAT.END-OF-DEFINITION.SELECTION-SCREEN:BEGIN OF BLOCK BLK01 WITH FRAME TITLE TEXT-001. SELECT-OPTIONS:S_BUKRS FOR BKPF-BUKRS DEFAULT '1000'.SELECT-OPTIONS:S_GJAHR FOR BKPF-GJAHR DEFAULT SY-DATUM+0(4). SELECT-OPTIONS:S_MONAT FOR BKPF-MONAT DEFAULT SY-DATUM+4(2). SELECT-OPTIONS:S_BELNR FOR BKPF-BELNR.SELECT-OPTIONS:S_HKONT FOR BSEG-HKONT.SELECT-OPTIONS:S_KUNNR FOR BSEG-KUNNR.SELECT-OPTIONS:S_LIFNR FOR BSEG-LIFNR.SELECT-OPTIONS:S_KOSTL FOR BSEG-KOSTL.SELECT-OPTIONS:S_BLART FOR BKPF-BLART.SELECT-OPTIONS:S_BUDAT FOR BKPF-BUDAT.SELECT-OPTIONS:S_GSBER FOR BSEG-GSBER.SELECTION-SCREEN END OF BLOCK BLK01.START-OF-SELECTION.PERFORM PRM_GET_DATA.PERFORM PRM_PROCE_DATA.PERFORM PRM_SET_FIELD.PERFORM PRM_SHOW.*&---------------------------------------------------------------------**& Form PRM_GET_DATA*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM PRM_GET_DATA .SELECTBKPF~MONAT" TYPE BKPF-MONAT,BKPF~BUDAT" TYPE BKPF-BUDAT,BKPF~BELNR" TYPE BKPF-BELNR,BKPF~BUKRS" TYPE BKPF-BUKRS,BKPF~BKTXT" TYPE BKPF-BKTXT,BKPF~GJAHR" TYPE BKPF-GJAHR,BKPF~BLART" TYPE BKPF-BLART,BKPF~WAERS" TYPE BKPF-WAERS,BKPF~USNAM" TYPE BKPF-USNAM,BKPF~AWKEY" TYPE BKPF-USNAM,BSEG~HKONT" TYPE BSEG-HKONT,BSEG~KOSTL" TYPE BSEG-HKONT,BSEG~KUNNR" TYPE BSEG-HKONT,BSEG~LIFNR" TYPE BSEG-HKONT,BSEG~FKBER" TYPE BSEG-HKONT,BSEG~WRBTR" TYPE BSEG-WRBTR,BSEG~MATNR" TYPE BSEG-WRBTR,BSEG~SHKZG" TYPE BSEG-WRBTR,BSEG~XNEGP" TYPE BSEG-WRBTR,BSEG~RSTGR" TYPE BSEG-RSTGR,BSEG~DMBTRSKAT~TXT50" TYPE SKAT-TXT50,BSEG~GSBERINTO CORRESPONDING FIELDS OF TABLE GT_SHOWFROM BKPFINNER JOIN BSEGON BKPF~BUKRS = BSEG~BUKRSAND BKPF~BELNR = BSEG~BELNRINNER JOIN SKATON BSEG~HKONT = SKAT~SAKNRAND SKAT~SPRAS = '1'AND SKAT~KTOPL = '1000'WHERE BKPF~BUKRS IN S_BUKRSAND BKPF~GJAHR IN S_GJAHRAND BKPF~MONAT IN S_MONATAND BKPF~BELNR IN S_BELNRAND BSEG~HKONT IN S_HKONTAND BSEG~KUNNR IN S_KUNNRAND BSEG~LIFNR IN S_LIFNRAND BSEG~KOSTL IN S_KOSTLAND BSEG~GSBER IN S_GSBERAND BKPF~BLART IN S_BLARTAND BKPF~BUDAT IN S_BUDAT.IF GT_SHOW[] IS INITIAL.MESSAGE'⽆结果!'TYPE'S' DISPLAY LIKE'E'.LEAVE LIST-PROCESSING.ELSE.SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_T053FROM T053S WHERE SPRAS = '1'.SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_CSKTFROM CSKT WHERE SPRAS = '1'AND KOKRS = '1000'.ENDIF.ENDFORM.*&---------------------------------------------------------------------**& Form PRM_PROCE_DATA*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM PRM_PROCE_DATA .DATA:GS_SHOW LIKE LINE OF GT_SHOW.* SORT GT_SHOW BY BUKRS GJAHR BELNR KUNNR DESCENDING LIFNR DESCENDING." HKONT DESCENDING.LOOP AT GT_SHOW INTO GW_SHOW.* IF GW_SHOW-XNEGP = 'X'.* GW_SHOW-DMBTR = GW_SHOW-DMBTR * -1.* ENDIF.IF GW_SHOW-HKONT = '0002202002'AND GW_SHOW-LIFNR IS INITIAL."应付暂估带出供应商SELECT SINGLE LIFNR INTO GW_SHOW-LIFNR FROM BSEG WHERE BUKRS = GW_SHOW-BUKRS AND BELNR = GW_SHOW-BELNR AND GJAHR = GW_SHOW-GJAHR AND LIFNR <> ''. ENDIF.IF GW_SHOW-HKONT = '0001406001'AND GW_SHOW-KUNNR IS INITIAL."应付暂估带出供应商SELECT SINGLE KUNNR INTO GW_SHOW-KUNNR FROM BSEG WHERE BUKRS = GW_SHOW-BUKRS AND BELNR = GW_SHOW-BELNR AND GJAHR = GW_SHOW-GJAHR AND KUNNR <> ''. ENDIF.IF GW_SHOW-SHKZG = 'S'.IF GW_SHOW-XNEGP = 'X'.GW_SHOW-DMBTRH = GW_SHOW-DMBTR.GW_SHOW-WRBTRH = GW_SHOW-WRBTR.ELSE.GW_SHOW-DMBTRS = GW_SHOW-DMBTR.GW_SHOW-WRBTRS = GW_SHOW-WRBTR.ENDIF.* GW_SHOW-DMBTRS = GW_SHOW-DMBTR.ELSEIF GW_SHOW-SHKZG = 'H'.IF GW_SHOW-XNEGP = 'X'.GW_SHOW-DMBTRS = GW_SHOW-DMBTR * -1.GW_SHOW-WRBTRS = GW_SHOW-WRBTR * -1.ELSE.GW_SHOW-DMBTRH = GW_SHOW-DMBTR * -1.GW_SHOW-WRBTRH = GW_SHOW-WRBTR * -1.ENDIF.GW_SHOW-DMBTR = GW_SHOW-DMBTR * -1.GW_SHOW-WRBTR = GW_SHOW-WRBTR * -1.* GW_SHOW-DMBTRH = GW_SHOW-DMBTR.ENDIF.READ TABLE GT_T053 INTO GW_T053 WITH KEY BUKRS = GW_SHOW-BUKRS RSTGR = GW_SHOW-RSTGR.IF SY-SUBRC = 0.GW_SHOW-TXT40 = GW_T053-TXT40.ENDIF.READ TABLE GT_CSKT INTO GW_CSKT WITH KEY KOSTL = GW_SHOW-KOSTL.IF SY-SUBRC = 0.GW_SHOW-LTEXT = GW_CSKT-LTEXT.ENDIF.MODIFY GT_SHOW FROM GW_SHOW.CLEAR:GW_SHOW.ENDLOOP.ENDFORM.*&---------------------------------------------------------------------**& Form PRM_SET_FIELD*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM PRM_SET_FIELD .REFRESH GT_FIELDCAT.LS_LAYOUT-CWIDTH_OPT = 'X'. "优化列宽选项是否设置LS_LAYOUT-ZEBRA = 'X'.* ls_layout-box_fname = 'SEL'.APPEND_FIELDCAT:'BUKRS''公司代码'4'X','GJAHR''会计年度'4'X','MONAT''会计期间'2'X','BUDAT''过账⽇期'10'','BELNR''凭证编号'10'X','AWKEY''凭证参考'20'X','BKTXT''摘要'25'','HKONT''科⽬代码'10'X','TXT50''科⽬名称'50'','KUNNR''客户编号'10'','LIFNR''供应商编号'10'','FKBER''功能范围'4'','GSBER''业务范围'4'','WAERS''币别'3'','KOSTL''成本中⼼'10'X','LTEXT''成本中⼼描述'40'','MATNR''物料编码'18'X','RSTGR''原因代码'4'','TXT40''原因代码描述'40'','WRBTR''原币⾦额'16'','WRBTRS''原币借⽅⾦额'16'','WRBTRH''原币贷⽅⾦额'16'','DMBTR''本币⾦额'16'','DMBTRS''本币借⽅⾦额'16'','DMBTRH''本币贷⽅⾦额'16'','USNAM''制单⼈'12''.ENDFORM.*&---------------------------------------------------------------------**& Form PRM_SHOW*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM PRM_SHOW .DATA:LV_TITLE TYPE LVC_TITLE.DESCRIBE TABLE GT_SHOW LINES LV_TITLE.CONDENSE LV_TITLE NO-GAPS.CONCATENATE'结果共' LV_TITLE '条⽬!'INTO LV_TITLE.CALL FUNCTION'REUSE_ALV_GRID_DISPLAY_LVC'EXPORTINGI_CALLBACK_PROGRAM = SY-REPIDI_CALLBACK_PF_STATUS_SET = 'PRM_SET_STATUS'I_CALLBACK_USER_COMMAND = 'PRM_USER_COMMAND'IS_LAYOUT_LVC = LS_LAYOUTIT_FIELDCAT_LVC = GT_FIELDCAT[]I_GRID_TITLE = LV_TITLEI_DEFAULT = 'X'I_SAVE = 'A'TABLEST_OUTTAB = GT_SHOWEXCEPTIONSPROGRAM_ERROR = 1OTHERS = 2.IF SY-SUBRC <> 0.ENDIF.ENDFORM.FORM PRM_SET_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.SET PF-STATUS'ZSTAT'.ENDFORM.FORM PRM_USER_COMMAND USING P_UCOMM LIKE SY-UCOMMP_SELFIELD TYPE SLIS_SELFIELD.CHECK P_UCOMM = '&IC1'.READ TABLE GT_SHOW INTO GW_SHOW INDEX P_SELFIELD-TABINDEX. IF SY-SUBRC = 0.SET PARAMETER ID'BLN'FIELD GW_SHOW-BELNR.SET PARAMETER ID'BUK'FIELD GW_SHOW-BUKRS.SET PARAMETER ID'GJR'FIELD GW_SHOW-GJAHR.CALL TRANSACTION'FB03'AND SKIP FIRST SCREEN.ENDIF.ENDFORM.。
求职面试时常被问到旳65个问题与技巧性回答1.请你自我简介一下你自己?回答提醒: 一般人回答这个问题过于平常, 只说姓名、年龄、爱好、工作经验, 这些在简历上均有。
其实, 企业最但愿懂得旳是求职者能否胜任工作, 包括: 最强旳技能、最深入研究旳知识领域、个性中最积极旳部分、做过旳最成功旳事, 重要旳成就等, 这些都可以和学习无关, 也可以和学习有关, 但要突出积极旳个性和做事旳能力, 说得合情合理企业才会相信。
企业很重视一种人旳礼貌, 求职者要尊重考官, 在回答每个问题之后都说一句“谢谢”, 企业喜欢有礼貌旳求职者。
2.你觉得你个性上最大旳长处是什么?回答提醒: 从容冷静、条理清晰、立场坚定、顽强向上、乐于助人和关怀他人、适应能力和风趣感、乐观和友爱。
我在XX通过一到两年旳培训及项目实战, 加上实习工作, 使我适合这份工作。
3.说说你最大旳缺陷?回答提醒: 这个问题企业问旳概率很大, 一般不但愿听到直接回答旳缺陷是什么等, 假如求职者说自己小心眼、爱忌妒人、非常懒、脾气大、工作效率低, 企业肯定不会录取你。
绝对不要自作聪颖地回答“我最大旳缺陷是过于追求完美”,有旳人认为这样回答会显得自己比较杰出, 但实际上, 他已经岌岌可危了。
企业喜欢求职者从自己旳长处说起, 中间加某些小缺陷, 最终再把问题转回到长处上, 突出长处旳部分, 企业喜欢聪颖旳求职者。
4.你对加班旳见解?回答提醒: 实际上好多企业问这个问题, 并不证明一定要加班, 只是想测试你与否乐意为企业奉献。
回答样本: 假如是工作需要我会义不容辞加班, 我目前独身, 没有任何家庭承担, 可以全身心旳投入工作。
但同步, 我也会提高工作效率, 减少不必要旳加班。
5、你对薪资旳规定?回答提醒: 假如你对薪酬旳规定太低, 那显然贬低自己旳能力;假如你对薪酬旳规定太高, 那又会显得你分量过重, 企业受用不起。
某些雇主一般都事先对求聘旳职位定下开支预算, 因而他们第一次提出旳价钱往往是他们所能予以旳最高价钱, 他们问你只不过想证明一下这笔钱与否足以引起你对该工作旳爱好。
目录之阿布丰王创作1. 报表知识1.1基础知识1.1.1报表事件,有哪些?1.1.1.1过程化事件INITIALIZATIONSTART-OF-SELECTIONEND-OF-SELECTION1.1.1.2选择屏幕事件AT SELECTION-SCREEN OUTPUT选择屏幕PBO事件,每次选择屏幕调用之前触发,在其中进行选择屏幕输出之前的准备工作,如确定屏幕各元素的输出状态。
AT SELECTION-SCREEN选择屏幕最后被触发的事件,用户在选择屏幕上回车、选择某个GUI按钮、功能键或者菜单项时触发AT SELECTION-SCREENON fieldAT SELECTION-SCREEN ON BLOCK blockAT SELECTION-SCREEN ON RADIOBUTTON GROUP group1AT SELECTION-SCREENON seltabAT SELECTION-SCREEN ON END OF seltab,AT SELECTION-SCREEN ON HELP-REQUEST FOR field选择屏幕的POH事件,F1事件,定义字段帮忙AT SELECTION-SCREEN ON VALUE-REQUEST FOR field选择屏幕的POV事件,F4事件,定义字段输入帮忙1.1.1.3在使用到逻辑数据库时,比方HR报表,涉及到的逻辑数据库事件:GET nodeGET node LATE1.1.1.4列表事件TOP-OF-PAGEEND-OF-PAGEAT-LINE-SELECTIONAT-USER-COMMAND用户交互控制,选择某个GUI功能出发,用于交互式报表1.1.1.5AT 事件AT FIRST功能循环时第一条记录时调用AT LAST功能循环中最后一条记录时调用AT NEW 功能循环中当指定字段之前(包含指定字段)的组合和上一条记录纷歧样的时候调用AT END OF功能循环中当指定字段之前(包含指定字段)的组合和下一条记录纷歧样的时候调用AT事件的注意点AT事件中的工作区分歧于LOOP循环的工作区该工作区中位于指定字段后面的值将不会被读取如果需要用到则需重新抽取一次1.1.1.6交互式报表事件AT USER-COMMAND.AT LINE-SELECTIONAT PF-FUNCTION KEY(设置功能键)1.1.2报表选择画面1.1.2.1报表的选择画面上能否添加自定义工具栏?能够添加,通过语句SELECTION-SCREEN FUNCTION KEY n(n 为1至5,最多定义5个)。
目录1. 报表知识 (6)1.1基础知识 (6)1.1.1报表事件,有哪些? (6)1.1.2报表选择画面 (7)1.2ALV报表 (8)1.2.1ALV报表实现的流程 (8)1.2.2显示ALV常用的两个FM (8)1.2.3如何设置ALV中的热键 (8)1.2.4ALV显示中的小计 (8)1.2.5FM ALV 和 OO ALV的比较 (8)1.3WRITE LIST (8)2. 数据库知识 (9)2.1基础知识 (9)2.1.1 ABAP数据字典有哪些对象或元素? (9)2.1.2 据库提交确认和数据库回滚取消语句 (9)2.1.3 什么是LUW (9)2.1.4简述modify 、insert、update对数据库表做操作时的影响 (9)2.1.5 要描述域、数据元素、表字段之间的关系 (9)2.1.6数据字典有几种缓冲方式,适用围? (9)2.2ABAP和数据库 (10)2.2.1 ABAP 数据表的主索引是什么?索引的好处与坏处?与建索引的注意事项! (10)2.2.2 ABAP透明表有哪几种数据类(data class)?对数据的存储有什么影响? (10)2.2.3 SAP中有几种表,他们的区别是什么? (10)2.2.4什么是簇表(cluster table)?举出知道的簇表。
(10)2.2.5找数据库表,有哪些常用的方法。
(10)2.2.6如何建立数据库锁对象,激活锁对象产生的Function Module的名字为什么,在何处查看锁表的情况? (10)2.2.7更新 FM 分为 V1 和 V2,那么首先会执行哪一种更新类型呢?每种类型又是以哪种模式(异步、同步或本地)执行的呢? (11)2.2.7使用OPEN SQL注意原则 (11)2.3与表相关 (11)2.3.1 MM模块有哪些常用表格 (11)2.3.2 HR模块知识:HR里面存储HR主数据主要用到了哪些表? (11)2.3.3 HR模块知识:HR程序在开发中常用的两个逻辑数据库是什么?分别对其进行描述 12 2.3.4 HR模块知识:HR模块里面,如何修改HR的信息类型,具体如何实现 (12)2.3.5财务模块:财务模块开发中常用的表有哪些,简单举例说明: (12)2.3.6 PM 常用的TABLE (12)2.3.6 inner join 与 left-outer join的区别? (13)3. 权限相关 (14)3.1什么是权限对象(Authorization Objects)?在 ABAP 程序中使用哪条语句进行授权检查? (14)3.2与权限对象有关的事务代码有哪些? (14)4. DIALOG (15)4.1DIALOG 中的几个事件 (15)4.2何在TABLE CONTROL中实现选中一行或多行的效果 (15)4.3DIALOG 开发的常用几个控件是什么? (15)5. BDC (16)5.1BDC录屏的事务代码 (16)5.2BDC与BAPI之间的区别 (16)5.3BDC录屏的注意事项 (16)5.4谈谈BDC的运行模式和更新模式 (16)6. 增强 (17)6.1什么叫增强?有哪些方式进行增强? (17)6.1.1 User EXIT (17)6.1.2 Customer exit (17)6.1.3 BADI (17)6.1.4 Enhancement Spot (17)6.2如何建立增强? (17)6.3与增强相关的事务代码有哪些 (18)6.4如何进行数据库表字段的增强?Append和Include的方式有何区别? (18)7. SMARTFORMS (19)7.1谈谈SmartForm中,Template和Table表格的区别 (19)7.2 SMART FORM如何实现公司LOG打印,其步骤是什么? (19)7.3 smartform 中如何控制段落、单个字符输出格式? (19)8. RFC和 BAPI (20)8.1 RFC (20)8.1.1什么是RFC,有哪些通信模式? (20)8.1.2 RFC中涉及到常用的事务代码有哪些? (20)8.1.3根据调用方式的不同,RFC接口提供了什么样的服务? (20)8.1.4 RFC接口的具体功能包括哪些? (20)8.1.5在通过CALL FUNCTION语句进行远程功能调用的基本模式有哪些 (20)8.1.6怎么创建一个支持远程调用的RFC (21)8.1.7怎么调用一个SAP标准RFC (21)8.1.8怎样建立RFC程序?RFC程序传递的参数都是传递值还是引用?如何建立函数组? 21 8.1.9怎么来维护这个DESTINATION(远程目标) (21)8.2 BAPI (21)8.2.1什么是BAPI?你使用过哪些BAPI实现什么功能? (21)8.2.2什么是业务对象类型?它包含哪些主件? (21)8.2.3如何创建一个BAPI? (22)8.2.4编写BAPI的注意事项有哪些? (22)8.2.5谈谈与BAPI相关的事务代码。
1)PROCESS BEFORE OUTPUT(简称PBO):进行屏幕初始化工作,如数据库选择,屏幕元素属性动态设定等,如根据用户权限和继电定值申请单的状态确定哪些屏幕字段是输入状态,哪些字段是显示状态;PBO模块结束后,系统显示当前用户屏幕。
2)PROCESS AFTER INPUT(简称PAI):当用户在屏幕上执行某些功能后被触发,PAI结束后,屏幕可能进入后续或返回上一个屏幕序列;3)PROCESS ON HELP-REQUEST (简称POH):当用户按下F1键要求查看帮助信息时触发;4)PROCESS ON VALUE-REQUEST(简称POV):当用户按下F4键要求查看搜索帮助时触发。
5)如何实现f4帮助方法一:a..事务码SE11打开数据字典,选中搜索帮助,填写名称,点击创建.(前提先把表格和数据元素以及域都建好了)2.填写基本相关信息,搜索帮助描述,取数的表,显示的对话框类型.3.填写搜索帮助参数,字段名称,输入输出属性,显示位置次序,数据元素.4.保存,激活.5.打开要建立搜索帮助的表,选中要建立搜索帮助的字段,点击SRCH HELP,填入你建立好的搜索帮助的名称.6.保存,激活表.7.重新保存要用到表中搜索帮助的程序,激活后就可以使用搜索帮助来选择值了.Ps:在建立屏幕程序的时候要填上屏幕中你所填变量的f4的名字11/1.. 必须要有参照的数据元素要添加搜索帮助的表中的字段,:注此方法比较直观,但是有相关的前提:. .所以前提就是我们要事先维护好数据元素没有数据元素无法建立搜索帮助方法二:. 程序中直接写相关代码来实现在ABAP:具体步骤. VALUE-REQUEST添加事件1.:示例代码AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_XILEI-LOW.PERFORM FRM_XILEI_SELECT.. 在子程序中实现搜索帮助功能2.:示例代码11/ 2.FORM FRM_XILEI_SELECT .*细类的搜索帮助DATA: RT_TAB LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.DATA: BEGIN OF IT_XILEI OCCURS 0,XILEI LIKE ZSFQ10-XILEI,END OF IT_XILEI.SELECT XILEI INTO CORRESPONDING FIELDS OF TABLE IT_XILEI FROM ZSFQ10.CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'EXPORTINGRETFIELD = 'XILEI'DYNPPROG = SY-REPIDDYNPNR = SY-DYNNRDYNPROFIELD = 'S_XILEI-LOW'VALUE_ORG = 'S'CALLBACK_PROGRAM = SY-REPIDTABLESVALUE_TAB = IT_XILEIRETURN_TAB = RT_TABEXCEPTIONSPARAMETER_ERROR = 1NO_VALUES_FOUND = 2OTHERS = 3.IF SY-SUBRC <> 0.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.ENDFORM. FRM_XILEI_SELECT3.保存,激活程序后,即可在屏幕上使用搜帮助了.注:此方法不是太直观,但是不用在数据字典中建立相关的数据,只需在程序中动态提取显示.方法三:固定值。
我们在Domain 中可以定义value range ,在value range 中定义的值,就可以出现在f4帮助中。
这是最简单的实现f4帮助的方法方法四:数据类型关联。
加入我们在选择屏幕上定义一个dats 类型的参数,她就自动调用了日期类型的f4帮助。
6)如何实现事务码分配给程序Se9311/ 3.sap中如何实现数据的批量录入7)事务码lsmw.lsmw-----ab.bdc----事务码shdb(bdc调用的时候一般自动生成的程序对于一个BDC程序来说,有两个固定的internal table 需要声明:bdcdata和messtab,名称可以变,但是声明时一定要* Batchinputdata of single transactiondata: abc like bdcdata occurs 0 with header line.* messages of call transactiondata: def like bdcmsgcoll occurs 0 with header line.Like 后面的table type(这里是一个structure)是不能改变的。
有两个固定功能的form:bdc_dynapro和bdc_field名称同样是任意的,但是程序代码应该是相同的,(强烈建议不要改动,因为会给自己添加麻烦)另个还有一个Internal Table或者work area是用来放从外部读进来的数据的,结构应该和你的外部文件的有相关的字段结构。
一次读进全部的记录然后循环处理loop at [internal table]……process……endloop。
或者一条一条读进并处理,然后循环读下一条do ……process……enddo。
其中Process 分为两个部分:1.填充bdcdata表。
2.Call transaction or Call Function ‘BDC_Insert'返回消息放入Messtab.Bdc的运行方式:N---后台更新;A-----表示显示所有bdc录制屏幕执行过程及数据;E-----仅显示出错事务屏幕更新模式:L------本地更新;A------异步更新模式S-----异同步更新模式b.bapi函数c.catt或是ecatt 现在多用ecatt 取代catt8)sap创建类的步骤1.声明类并定义类的使用方法2.使用data语句中的type ref to来表示引用某一具体类以声明新的对象3.使用create object语句创建类实例化对象。
4.通过“->”或“=>”运算符访问类对象或组件,可以通过变量对方法名进行指定,实现动态调用。
Class<class> definitionPublic section.…..Protexted section.…….11/ 4.Private section.……..Method …. Endmethod.…..Endclass.当所声明的类中包含方法时,需要通过下列代码对方法的实现行为进行定义Class <class> implementationMethod …endmethod.…..Endclass.9)sap实现增强的几种方式:方式有:表增强、屏幕变式和事务变式、程序增强(用户出口和客户定制出口、业务增强badi、业务事件bte、增强点、img后台配置)、菜单增强。
10)sap query创建步骤:1、创建用户组user group(SQ03)2、创建infoset,即设定列表关联的数据表及字段(SQ02)3、Basic list的创建Sq01是创建query的事务码11)Alv通过标准函数调用,它通过程序传递数据内表的方式来显示数据。
Alv输出的方式有两种grid和list。
Alv中的layout主要用于设定alv的输出格式,而fieldcat主要用于alv结构定义,包括具体的字段名称、类型、格式等属性。
Layout和fieldcat同属于类型池slis。
Alv调用主要是通过以下几个函数实现:REUSE_ALV_FIELDCATALOG_MERGE(根据内表结构返回fieldcat字段结构信息)、REUSE_ALV_GRID_DISPLAY/REUSE_ALV_LIST_DISPLAY:输出alv报表、12)数据分析方法:(找表的18种方法)--------包括F1字段分析方法、ST05数据追踪方法、数据词典分析方法、调试分析方法、文本方法等。
where-used list方法、13)。
Sap工作流构建步骤:查找、创建触发事件;构建业务对象;构建程序/屏幕;构建工作流引擎;构建规则;测试创建任务(事务码pftc)、业务工作台(事务码SW11)工作流系统的配置----事务码SWU3工作流设计器-------事务码swdd11/ 5.smartform14)(文、text module、style(样式)其工具主要分为三大部分,分别用于创建form (板式)本模块).(事务码)nace如果想要实现系统可以直接打印出来自己配置的smartform,需要通过进行后台配置。
se72style体例设计-------------se71;标准文本--------SO10;Scriptform:格式绘制器OPEN_FORM; WRITE_FORM; CLOSE_FORM连接通过三个function实现:Sap script与abap 系统上传图片和文本的事务码。
se78是对sap事务码在开启的导出为本地文件,需要先使用工具将相关scriptformScriptform无法直接复制,)RSTXSCRP,(通过se38,输入程序名需求系统中将文件导入,由此实现scriptform的复制。
步骤复杂,见书步骤复杂见书。
屏幕程序开发)15Dropdown TABLE CTROL, TAB STRIP,精通Dialog屏幕标准元素实现的界面,主要包括:Custom 控件(CLASS方式实现复杂的界面,包括:Container List, F1功能、F4功能等。
精通控件控件;ALV GRID Docking Container等;ALV Tree Container、Splitter Container、的复杂控制(如增加用户按ALV中的方法和属性实现对(该控件可以通过调用ALV Class控件等的实现;熟练TEXT EDIT 钮,双击事件,对话框显示详细等);以及Picture 控件,技术实现界面可折叠的复杂屏幕设计。
掌握Collapsible AreaRFC)接口开发:16 ZPRG_CONNET_SQL_BY_OLE_ADO 连接外部数据库的范例参见程序利用OLE 关于ABAP业务总结)17SD常用命令集合客户主数据--创建XD01 -修改XD02 显示XD03--销售订单创建VA01--修改VA02----VA03显示对销售订单交货--创建VL01N 修改VL02N--显示VL03N-- VL09取消发货MBST(取消凭证) 对销售订单开票一种参照销售订单开票11/ 6.参照交货单开票开票VF01----VF02修改-显示Vf03 VF11冲销发票表:交货LIKP LIPO 销售订单:VBAK VBAP 发票MKPF MSEG 客户余额FD10N 销售定价过程(客户信息记录)VK31--创建VK32-修改VK33-显示财务简介做凭证-02F 凭证类型--销售发票凭证RV -收款凭证DZ模块常用命令集合PPBOM: 创建--CS01 修改CS02-查看CS03-展开BOM BOM--展开CS12 --展开汇总CS13 比较--CS14BOM 按树状展开CSMB-- BOM反查CS15-工作中心--创建工作中心CR0111/ 7.CR02--修改CR03--查看工艺路线CA01--创建CA02--修改CA03-查看手工创建生产订单CO01--创建CO02--修改CO03--查看对生产订单发货MIGOMB26MB1AMMSC--扩充库位对生产订单报工CO11CO11NCO13-冲销报工CO14--查询报工对生产订单收货MIGOMB31对生产订单关闭CO02---技术实现TECO订单状态:REL---下达CNF--PCNFDLV--PDLVTECO--技术实现CLSD--关闭预留表--RESB通过生产订单号查询到预留单号,再查找物料在制品----针对自制件不在DLV在途----采购件--(未清采购订单)查询作业类型价格KP26作业类型KL01--创建KL02--维护KL03--显示11/ 8.MRP运算代码M61--创建物料主计划MD01--运行MRP18)屏幕元素Parameters的用法…..as checkbox:创建checkbox对象…….obligatry:限制该select-options为必输项,执行中系统会提示……radiobutton group radi:建立分组单选框……visible length vlen:定义显示长度……as listbox visible length vlen :创建一个下拉列表,并指定输出长度Selection-screen 对象:Select-screen 语句用于创建屏幕的框架结构,主要包括屏幕元素的创建、子屏幕的创建等。