ABAP 面试宝典:开启成功之门

文摘   2024-11-12 19:13   上海  
简易版本~

一、ABAP 面试全攻略   

         

 

ABAP 面试流程及要点  

ABAP 面试通常分为 HR 面试和技术面试,HR 面试主要了解基本情况和期望,技术面试围绕 ABAP 技术点展开。

在 HR 面试阶段,面试者可能会被问到工资期望、英语水平、项目经历等问题。此时,面试者应简洁明了地回答问题,突出自己的优势和与岗位的匹配度。同时,也可以抓住机会询问公司的相关制度福利,如调薪时间、试用期、公司培训等,以便判断公司是否符合自己的期望。

技术面试则是对面试者 ABAP 技术水平的全面考察。一般来说,技术面试会围绕 ABAP 基础展开,涉及的内容包括但不限于以下几个方面:

1.For all entries in 的使用:当需要在 LOOP 中使用查询语句时,一般使用 For all entries in。使用时需要注意 IN 条件所在的表不能为空,数据库字段与表中的关联比较字段必须具有相同的类型和长度,且不能在比较中使用操作符 LIKE、BETWEEN 和 IN,同时不能使用 ORDER BY 子句。为避免删除并不重复的纪录,在定义表时应尽可能多的指定关键字。    

2.Dialog 对话框的事件和逻辑流:调用时首先触发 PBO,然后显示 dynpro 画面,当在 dynpro 点击按钮时,会触发 PAI,触发完之后又会执行 PBO。此外,还有 PROCESS ON HELP-REQUEST(F1 帮助)和 PROCESS ON VALUE-REQUEST(F4 帮助)两个事件。

3.Funciton ALV 实现单击跳转事务:首先在 fieldcat 中设置 hotspot = 'X',然后在 USER_COMMAND 事件对应 Form 中加入相应代码,如 CASE R_UCOMM.WHEN '&IC1'.然后调用 SET PARAMETER ID 等语句,最后调用 CALL TRANSACTION 进行跳转。

4.Web Service Client 端的配置:右击企业服务创建 server consumer,用 URL 创建 webservice;通过 LPCONFIG 对于创建好的 Proxy Object 创建逻辑端口;通过 somanager 配置默认端口;在代码中调用外部的接口。

5.SMARTFROMS 中直接换页:在循环中插入命令,并在命令条件中加入触发的条件。

6.Call function in backgroud task 和 starting new task:in backgroud task 需要等到 commit work 显示提交时才执行,starting new task 是异步执行。

7.ALV 上控制单元格的颜色:列颜色可通过设置 LVC_S_FCAT-EMPHASIZE 属性实现;行颜色可在 ALV 内表中加入字段并在 LVC_S_LAYO 中设置相应属性实现;单元格颜色可在 ALV 内表中加入结构并在 LVC_S_LAYO 中设置相应属性实现。

8.寻找增强的方法:可通过 SE30 找 EXIT_*的函数,找 SMOD 可以查找 MODSAP 表;在函数 MODX_FUNCTION_ACTIVE_CHECK 中打断点,运行程序/TCODE,在 debug 界面查看 L_FUNCNAME 为出口;通过 CL_EXITHANDLER->GET_INSTANCE 中打上断点,再执行程序/TCODE,在 debug 界面查看 EXIT_NAME 参数为 BADI;通过 SPRO 配置部分的 enhencement 或者客制化等文件说明查看涉及的增强。

9.常用的数据库表:如采购历史记录 EKBE、库存批次 MCHA/MCHB 等。

10.BAPI:面试者应熟悉一个自己常用的 BAPI,如“BAPI_GOODSMVT_CREATE”,并了解其参数的含义。    

11.调用 BDC 时的语句及参数作用:CALL TRANSACTION 'TCODE' USING BDCDATA UPDATE 'S' MODE 'N' MESSAGES INTO LT_MESSTAB.UPDATE 参数中,A 表示异步,S 表示同步,L 表示本地。

总之,在 ABAP 面试中,面试者应诚实自信,对自己掌握的技术深入了解,避免夸夸其谈,以提高面试成功的几率。

二、技术面试要点  

         

 

(一)基础语法  

FOR ALL ENTRIES IN 在 ABAP 中是一种非常实用的语法结构,主要用于在循环中根据内表中的数据进行数据库查询。使用时需要注意一些事项,例如 IN 条件所在的表不能为空,否则可能会导致查询结果不准确甚至程序报错。同时,数据库字段与表中的关联比较字段必须具有相同的类型和长度,这是确保数据准确性的重要前提。另外,不能在比较中使用操作符 LIKE、BETWEEN 和 IN,也不能使用 ORDER BY 子句。为避免删除并不重复的纪录,在定义表时应尽可能多的指定关键字。    

二分法是一种高效的查找算法,在 ABAP 中也有广泛的应用。它通过不断将查找区间一分为二,逐步缩小查找范围,从而快速找到目标元素。例如在一个有序的内表中查找特定的值,可以使用二分法来提高查找效率。

(二)常用工具  

ALV(ABAP List Viewer)是 ABAP 中非常常用的工具之一,它可以用于展示数据表格,并提供了丰富的功能,如排序、筛选、分页等。在使用 ALV 时,可以通过设置字段属性来控制表格的显示效果,例如设置列的标题、宽度、对齐方式等。同时,还可以通过事件处理来实现用户交互,如单击行或列触发特定的操作。

Smartforms 是用于创建和输出复杂文档的工具,可以生成 PDF、打印输出等。在使用 Smartforms 时,需要了解其结构和语法,包括表单的设计、数据的绑定、输出格式的设置等。

对于 EXCEL 的上传下载,可以使用 ABAP 的相关函数模块来实现。例如,可以使用函数模块将内表中的数据导出到 EXCEL 文件中,或者从 EXCEL 文件中读取数据导入到内表中。在进行 EXCEL 操作时,需要注意数据类型的转换和格式的处理。

(三)接口与链接  

在 ABAP 中,接口实现方式有多种。例如,可以通过定义接口类,然后在具体的实现类中实现接口中的方法。接口可以定义一组规范,使得不同的类可以遵循相同的规范进行开发,提高代码的可维护性和可扩展性。

ABAP 中有三种常见的链接方法。一种是通过 RFC(Remote Function Call)实现系统之间的远程调用,可以在不同的 SAP 系统之间或者 SAP 系统与外部系统之间进行通信。另一种是通过 Connectors,如 SAP Business Connector、Java Connector 等,实现与不同技术平台的连接。还有一种是通过 WebService,实现基于 SOAP 或 RESTful 架构的服务调用。

(四)宏的应用  

在 ABAP 中,宏是一段独立的代码,能实现数据的运算和输出,功能与子程序类似。宏的定义格式为:DEFINE 宏名.代码段.END-OF-DEFINITION。例如,DEFINE COUNTER.SUM = &1 + &2.COUNT = &3 &4 &5.WRITE:/ '加法的结果是:',SUM.WRITER &3 &4 &5 COUNT.END-OF-DEFINITION。    

在宏的定义中,可以使用占位符&1、&2等,最多可包含九个占位符。完成宏的定义后,可以通过宏名加上参数的方式进行调用,例如 COUNTER 1231 -12。参数分别对应宏定义中的占位符。宏可以调用另外一个宏,但是不能调用自己。

(五)特定技术点  

增强方法在 ABAP 开发中非常重要,可以在不修改标准程序的情况下扩展功能。常见的增强方法有通过 SE30 找 EXIT_*的函数,找 SMOD 可以查找 MODSAP 表;在函数 MODX_FUNCTION_ACTIVE_CHECK 中打断点,运行程序/TCODE,在 debug 界面查看 L_FUNCNAME 为出口;通过 CL_EXITHANDLER->GET_INSTANCE 中打上断点,再执行程序/TCODE,在 debug 界面查看 EXIT_NAME 参数为 BADI;通过 SPRO 配置部分的 enhencement 或者客制化等文件说明查看涉及的增强。

常用数据库表有采购历史记录 EKBE、库存批次 MCHA/MCHB 等。了解这些常用数据库表的结构和用途,可以更好地进行数据查询和处理。

BAPI(Business Application Programming Interface)是 SAP 提供的标准接口,可以用于在 ABAP 程序中调用 SAP 的业务功能。面试者应熟悉一个自己常用的 BAPI,如“BAPI_GOODSMVT_CREATE”,并了解其参数的含义。

调用 BDC(Batch Data Communication)时,语句一般为 CALL TRANSACTION 'TCODE' USING BDCDATA UPDATE 'S' MODE 'N' MESSAGES INTO LT_MESSTAB。其中 UPDATE 参数中,A 表示异步,S 表示同步,L 表示本地。了解这些参数的作用,可以更好地控制 BDC 的执行方式。

三、实际面试经验  

         

 

   

(一)看程序  

在实际面试中,面试官通常会查看面试者所写的程序。这一方面是为了考察面试者的编程能力和代码规范,另一方面也是为了了解面试者的实际项目经验。例如,面试官可能会关注程序的结构是否清晰,注释是否完整,变量命名是否规范等。同时,面试官也会根据程序中的具体功能实现,询问面试者相关的技术问题,以深入了解面试者的技术水平。

(二)谈工作  

面试官会询问面试者现在所做的工作,包括工作内容、项目经验、遇到的问题及解决方案等。这有助于面试官了解面试者的实际工作能力和经验积累。在回答这个问题时,面试者应简洁明了地介绍自己的工作,突出自己在项目中的贡献和成长。例如,可以提及自己参与的项目规模、使用的技术栈、解决的关键问题等。同时,也可以分享一些在工作中获得的经验和教训,展示自己的学习能力和解决问题的能力。

(三)聊技术  

聊一个熟悉的 IT 技术是面试中的常见环节。在这个环节中,面试者可以选择自己擅长的技术进行介绍,展示自己的技术深度和广度。例如,如果面试者对数据库技术比较熟悉,可以介绍数据库的设计原则、优化方法、常见的数据库管理系统等。在介绍技术时,面试者应结合实际项目经验,说明该技术在项目中的应用场景和效果。同时,也可以分享一些自己对该技术的理解和展望,展示自己的技术洞察力。

(四)英语能力考察    

在 ABAP 开发中,英语能力也是非常重要的。面试官可能会考察面试者的英语阅读能力,例如要求面试者阅读英文文档或技术资料,并回答相关问题。此外,面试官也可能会要求面试者进行英文自我介绍或回答一些技术问题,以考察面试者的英语口语表达能力。在准备面试时,面试者可以提前练习英语阅读和口语表达,提高自己的英语能力水平。

四、总结与建议  

         

 

强调兴趣驱动、绕开 HR 找负责人、加入技术圈子的重要性  

在 ABAP 面试以及后续的职业发展过程中,有几个重要的方面值得我们深思和践行。    

首先,兴趣是最好的老师。无论从事什么工作,只要有兴趣,就会有动力去尝试和练习。就像很多刚接触 ABAP 的人,可能一开始会觉得陌生和困难,但如果对编程有兴趣,就会愿意投入时间和精力去学习。例如,一位刚毕业的“00 后”,原本是 Java 开发工程师,却歪打误撞进入了 ABAP 开发领域。虽然一开始有抵触情绪,但秉持着技多不压身的道理,在导师和顾问的培训下,慢慢接受了这个“陌生的朋友”。兴趣可以让我们在面对困难和挑战时保持积极的心态,不断探索和进步。

其次,如果有条件,尽可能绕开 HR 去直接找部门负责人谈。HR 在招聘过程中主要关注的是一些基本的条件和要求,而部门负责人则更了解具体的技术需求和项目情况。直接与部门负责人沟通,可以更好地展示自己的技术能力和潜力,也能更清楚地了解岗位的要求和发展前景。例如,在一些大型企业中,SAP ERP 系统的开发需要多个专业领域的人才,部门负责人可能更倾向于招聘那些对技术有深入理解和实践经验的人。通过与部门负责人的直接沟通,可以让自己的优势得到更好的发挥,提高面试成功的几率。

最后,加入一个技术圈子非常重要。在技术圈子里,大家可以分享知识、经验和资源,共同进步。ABAP 作为一种专业的编程语言,学习资源相对较少,很多日常开发需求遇到的问题,都需要去 SAP 官网查阅资料。而加入技术圈子,可以让我们更快地找到解决方案,提高工作效率。例如,在一些技术论坛和社区中,大家可以交流 ABAP 的开发技巧、分享项目经验、讨论技术难题。同时,技术圈子也可以为我们提供更多的学习机会和职业发展渠道,让我们不断提升自己的技术水平和竞争力。

总之,在 ABAP 面试和职业发展中,兴趣驱动、绕开 HR 找负责人、加入技术圈子是非常重要的。希望大家能够在这些方面多加努力,实现自己的职业目标。

         

 

   

曰天曰地
我要到哪里去↔️ 灵台方寸山,斜月三星洞。假如有一天全人类不存在,怎么证明人类存在过。AI怎么考古?会怎么考古⚠️
 最新文章