前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ABAP随笔-面试回忆 望大家 需求不增 人天飙升

ABAP随笔-面试回忆 望大家 需求不增 人天飙升

作者头像
Tab Zhu
发布2022-06-27 17:22:20
5420
发布2022-06-27 17:22:20
举报
文章被收录于专栏:TAB的coding生活TAB的coding生活

Title

ABAP面试经验(回忆)

最近受疫情影响,项目比较少,大家有的降薪有个裁员,日子都不太好过,幸好我的项目还没有结束,所以还在做项目。最近参加面试的小伙伴比较多,我回忆去年我在面试四大的时候,3轮面试的大概过程。

HR面试

HR小姐姐的面试一般来说比较简单,大致就是问你工资期望,英语水平,项目经历等大概做一个自我介绍就好了,在这一块主要看看你这个人基本面是否符合招聘的需求,没有啥问题就会进入下一轮面试。这一轮小伙伴们要抓住机会问一下HR公司的相关制度福利(比比如几周一次FB,BASE地,调薪时间,试用期,公司培训等等),以便于判断这个公司是否符合你自己心目中的预期。

技术面试

那次面试还是问的非常仔细和全面的,因为每个人的知识面不同,所以在全面的提问中,有问题回答不出是很正常的。技术面试围绕着ABAP相关技术点展开询问,面试时间大概为1个半小时左右,大概内容就是围绕ABAP基础来询问,相关内容如下:

1.使用for all entries in 的注意事项

(1)IN条件所在内表不能为空(空值将取出所有数据)

(2)IN条件内表数据量大于5000时不建议使用,一定要使用请每次使用3000,循环的方式使用

(3)该语句自动去重,使用时尽量多的带出主键(不清楚的时候全带出来就行)

2.Dialog 对话框的事件和逻辑流

(1) 调用时首先出发PBO->子画面PBO,然后显示dynpro画面,当在dynpro点击按钮时,会触发PAI->触发子PAI,触发完之后又会执行PBO->子PBO:如下图

如果你还能说一下另外2个事件就更好:

PROCESS ON HELP-REQUEST.(F1帮助)

PROCESS ON VALUE-REQUEST.(F4帮助)

3. Funciton ALV如何做到单击跳转事务

(1)首先在fieldcat中设置 hotspot = 'X'

(2)然后再USER_COMMAND事件对应Form中 加入

CASE R_UCOMM.

WHEN '&IC1'.

然后调用

SET PARAMETER ID 'BLN' FIELD LS_ALV-VBLNR.

SET PARAMETER ID 'BUK' FIELD LS_ALV-ZBUKR.

SET PARAMETER ID 'GJR' FIELD LV_GJAHR.

CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

4.Web Service Client 端的配置大致描述一下

(1)右击企业服务创建server consumer,用URL创建webservice

(2)通过LPCONFIG对于创建好的Proxy Object创建逻辑端口

(3)通过somanager配置默认端口

(4)在代码中调用外部的接口

5.SMARTFROMS中直接换页

(1)在循环中插入命令

(2)在命令条件中加入触发的条件

6.Call function "Your_function" in backgroud task 和 starting new task :

(1)in backgroud task 需要等到commit work 显示提交时才执行,

(2)starting new task 是异步执行

6.ALV上如何控制单元格的颜色(这个问题之前一直没有做过,所以记得很清楚没有回答上来,面试完我也去查看资料了,算是通过面试来查漏补缺了)

(1)列颜色:LVC_S_FCAT-EMPHASIZE = 'C610' - 红色

(2)行颜色:在ALV内表中加入字段:CLR TYPE CHAR4

在LVC_S_LAYO-INFO_FNAME = 'CLR'

在需要控制颜色的行:GS_DATA-CLR = 'C610'

(3)单元格颜色:在ALV内表中加入结构:SCOL TYPE LVC_T_SCOL ,在LVC_S_LAYO-CTAB_FNAME = 'SCOL'

在需要控制的单元格中填入:

SCOL-FNAME = 'fieldname'

SCOL-COLOR-COL = '6'

SCOL-COLOR-INT = '0'

SCOL-COLOR-INV = '0'

7.说明一下寻找增强的方法

(1)SE30找EXIT_*的函数,找SMOD可以查找MODSAP表

(2)在函数MODX_FUNCTION_ACTIVE_CHECK中打断点,运行程序/TCODE,可以在debug界面查看L_FUNCNAME为出口

(3)CL_EXITHANDLER=>GET_INSTANCE中打上断点,再执行程序/TCODE,可以在debug界面查看EXIT_NAME参数为BADI

(4)通过SPRO配置部分的enhencement或者客制化等文件说明查看涉及的增强

8.说一下有哪些增强,找一个具体的例子简单说一下

(1)UserExit 基于源代码的增强,比如MV35AFZZ销售订单的增强点

(2)函数出口增强,Exit_<程序名>_<数字>,该部分为CMOD增强

(3)类的增强,BADI增强,通过SE18,SE19来查看和创建维护

(4)enhencement-point,隐式增强,在代码界面右击选择->show implicit enhencement options来显示和创建

(5)BTE财务增强(BERE/BERP)+ BF24 + BF34/BF44

大家选择一个自己熟悉的增强,举个具体例子说明一下就可以了。

例如:LE_SHP_DELIVERY_PROC这个BADI用于交货单的增强处理,其中方法SAVE_DOCUMENT_PREPARE为保存前的校验增强内容可以写在其中。

9.常用的数据库表:当时还问到了一些常用的表,比如采购历史记录EKBE,库存批次MCHA/MCHB等

10.BAPI,请说一个你熟悉的BAPI:

然后我说了"BAPI_GOODSMVT_CREATE"这个物料凭证创建的BAPI,面试官接着问我 这个BAPI里面有个参数GOODSMVT_CODE,请问代表什么意思,我记得当时我的回答是,这写分别代表了MIGO界面不同收货类型,01代表PO收货,05代表其他入库。因为我好像对采购订单收货做的比较多,然后其他收货是因为一般项目上线的时候需要导入期初库存,需要用到05的CODE;所以在面试的时候,一定要选择自己熟悉的方面去回答,不然就是说个不太清楚的BAPI给自己挖坑

11.调用BDC时,使用到哪个语句,其中MODE,和UPDATE参数各有啥作用:

(1)对于BDC调用的语句应该都很清楚CALL TRANSACTION 'TCODE' USING BDCDATA UPDATE 'S' MODE 'N' MESSAGES INTO LT_MESSTAB.

(2)对于UPDATE 当时只记得都填S,并不太记得是什么意思,面试后去查了一下A表示异步,S表示同步,L表示本地

(3)还有一个OPTIONS FROM opt(TYPE CTU_PARAMS ) - 这个个人觉得不说也没关系,说了更好,使用这个参数会包含前面2个参数,这块主要注意的是一个DEFSIZE屏幕大小,可能会影响到BDC的运行

12.REPORT程序步骤:当时好像还问了report程序的基本步骤,时间有点久了,有点记不太清,反正report程序一般步骤就是:

INITIALIZATION

AT SELECTION-SCREEN OUTPUT.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_ufile.

AT SELECTION-SCREEN.

START-OF-SELECTION.

END-OF-SELECTION.

13.READ TABLE 会使用到的二分法Binary search,使用前对内表排序

14.loop循环中如何求和或者对于相同的field进行操作等:这里最好先说一下循环之前排序,然后使用(AT END OF/AT NEW/AT LAST/AT FIRST)操作,可以使用COLLECT ls_data into lt_tab来求和,这个效率高

15.LEAVE SCREEN 和 CALL SCREEN的区别:

(1)CALL SCREEN XXXX 为添加一层调用,执行完毕之后会执行CALL SCREEN XXXX之后的代码语句

(2)LEAVE TO SCREEN XXXX 直接中断当前屏幕的PAI,直接执行XXXX的PBO和PAI,原来LEAVE TO SCREEN XXXX之后的代码不再执行

过程中还有一些小小的问题,大体就是一路问下来,能对面试者ABAP水平有个较好的考察吧。当然过程中也问我是否会WEBDYNPRO,FIORI,PI等技术,我说了不会,就没有继续问下去了,当时连着问了2个技术说不会,没做过,有点尴尬。

项目经理面试

技术面试完了以后,HR小姐姐还给我一个反馈,告诉我哪些地方没有回答好之类的,说P4还差点火候,先定个P3(果然水平有待提高T_T),之后等了2天大概,就打电话给我预约项目经理面试(可以说是项目经理面试吧),大概交流了45分钟吧。因为这边相对于是一个综合考察,相互的一个交流,也没啥技术点。我也就记得几个讨论的比较多的话题吧,

当时问我有没有啥待人的经验,我说有,带过刚接触ABAP的毕业生,就是在做项目的过程中把一些简单的工作交给甲方的ABAP去完成,不懂得在一边指导一下把控一下程序,然后后续类似的工作就可以交给他,一方面作为替甲方爸爸们培养人才,一方面自己有更多的时间去做更重要的事情,一举多得吧。这样的举措对于后面开发程序的交接来说也是很有帮助的,重点是要自己把控好程序的质量。

后面问我,面对没有接触过的技术,如何在短时间内快速掌握呢,有没有这方面的想法或者新得。我当时就说SAP技术其实对于为入门者很不友好,环境就卡掉了一大堆人,然后很多技术需要basis配合和业务数据上得支撑。我的想法就是先找资料,快速做一个简单的demo出来,然后在此基础上再去做加法,实现功能。

还有就是让我说一下在项目上有没有设计过方案,或者介绍一个解决方案。我就把之前项目做的我给的一个比较特殊的批次管理的方案说了。批次要做到对相同一个物料对于不同工厂,进行部分工厂层级和部分物料层级的管控,因为调拨很多,需要做增强去溯源批次最初的来源。大概就是作为一个abap用自己的方法解决了一个客户业务上的需求。

题外话

国外疫情真的挺严重的,希望国内情况不要太受国外疫情的影响,经济快快复苏,这样我们做ABAP的才能更好的工作,希望这篇文章能在大家面试的时候能尽点绵薄之力。

祝大家做项目 需求不增,人天飙升

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SAP TAB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档