精华内容
下载资源
问答
  • ABAP面试题目ABAP面试题目ABAP面试题目ABAP面试题目
  • ABAP面试大全

    2014-08-26 17:19:36
    ABAP面试大全
  • abap面试

    2014-06-18 11:11:09
    ABAP面试题,对你绝对有帮助!
  • ABAP面试题最全合集(含答案)
  • SAP ABAP 面试

    2012-09-13 11:17:40
    ABAP 面试题 有答案, 这是我在网上收集到的, 以后有我都会放上来。
  • ABAP 面试问题及答案

    2009-03-23 11:49:40
    ABAP 面试问题及答案.doc ABAP 面试问题及答案.doc ABAP 面试问题及答案.doc ABAP 面试问题及答案.doc
  • 非常好的abap面试

    2011-06-15 22:57:58
    非常好的ABAP面试宝典,让你轻松通过面试。进入SAP领域。
  • ABAP面试题【权威经典】ABAP面试题【权威经典】
  • ABAP面试-超级经典

    2010-05-17 18:50:34
    SAP—ABAP面试-超级经典,不容错过!!!
  • ABAP 面试

    2011-09-07 23:26:22
    ABAP SAP学习相关的面试题目,对ABAP面试有很大的帮助!
  • ABAP面试经验(回忆) 最近受疫情影响,项目比较少,大家有的降薪有个裁员,日子都不太好过,幸好我的项目还没有结束,所以还在做项目。最近参加面试的小伙伴比较多,我回忆去年我在面试四大的时候,3轮面试的大概过程...

    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:如下图

    blob.png

    如果你还能说一下另外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.01 【ABAP随笔】- ABAP面试分享

    千次阅读 2020-04-10 16:46:00
    ABAP面试经验(回忆) 最近受疫情影响,项目比较少,大家有的降薪有个裁员,日子都不太好过,幸好我的项目还没有结束,所以还在做项目。最近参加面试的小伙伴比较多,我回忆去年我在面试四大的时候,3轮面试的大概过程...

    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:如下图

    blob.png

    如果你还能说一下另外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的才能更好的工作,希望这篇文章能在大家面试的时候能尽点绵薄之力。

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

     

    展开全文
  • abap面试的例子

    2011-11-02 21:25:53
    ABAP 面试问题及答案(一) . E. d9 l7 {3 ?6 ?- u* i$ E 4 ~$ C. F. |. M( CABAP 面试问题及答案(一):数据库更新及更改 ' p% H% _( ?8 H) \1 \' f u d6 D/ d( }7 q; ? 前言 6 w2 x* j7 f1 M9

     http://kemiya.net/thread-3395-1-1.html

     

    ABAP 面试问题及答案(一)
    . E. d9 l7 {3 ?6 ?- u* i$ E
    4 ~$ C. F. |. M( CABAP 面试问题及答案(一):数据库更新及更改
    ' p% H% _( ?8 H) \1 \' f  u  d6 D/ d( }7 q; ?
    前言
    6 w2 x* j7 f1 M9 I+ H0 Q
    : z7 _8 z" |/ f最近在准备面试,在网上找了一份英文文档: ABAP 面试问题及答案。该文档的英文原标题为: SAP ABAP Interview Questions, Answers,and Explanations: ABAP Certification Review,作者为 Barry Fewer。! L4 v; a& v; X9 B, l- f
    现将其翻译出来,全当在做笔记。
    8 z4 |+ B* p! I& RPS,实际上,就我经过的几次面试看,没有问得这么详细的。就把这当作是学习笔记吧,这些细节对平时的开发也非常有用。* U5 f/ A) J- j2 z1 ^7 I
    ! l# n7 s: V0 d1 ?

    1 Y9 _0 ~( G) `7 K7 q; w$ K9 B) _% j! {! a
    % s+ N+ U9 Q1 a( k  o' o" L) z2 e/ N
    问题一:锁对象(Lock Object)和FM(Function Module)6 X& b- ^# ?- X& P6 w2 U3 L4 P9 m/ P
    激活锁定对象时,产生的 FM 的名字是什么?/ Z' @8 R+ q9 S: J! f: |  D
    答案:首先要在 ABAP 字典中创建锁对象,然后才能在 ABAP 程序中设锁。创建锁对象时,系统会自动生成两个 FM 来进行锁管理。
      H5 y3 J: ^7 {1 A
    1 D- v6 H$ q7 c) H- b8 V用于设锁的 FM 为: ENQUEUE_<锁对象名>。它用于在锁表(Lock Table)中生成一个锁项(Lock Entry)。若设锁不成功的话,就会在 Return 中反映出来。* b1 t/ y' V; X
    6 E$ W6 }. B' v! Z
    用于释放锁的 FM 为:DEQUEUE_<锁对象名>。它用于从锁表中删除一个锁项。
    . t9 ]6 m, t" D$ G" ^: ]9 Y/ G- u2 ]5 Y, ]3 R9 H  o) m2 Q/ C
    在 ABAP 程序中,只需使用 "CALL FUNCITION ..." 语句就可以调用它们。
    1 x& L- I4 B1 r* p6 L4 i# n6 H/ @, g5 `( q+ C& @
    这两个锁 FM 是在 SAP 系统的一个特殊工作进程中执行的,专门进行锁管理。它运行在一个单独的服务器上,而该服务器专门用于维护整个 SAP 系统的主锁表(Central Locak Table)。5 m: _$ G) Z5 a0 ?

    4 D1 a( m" ]; j2 {( d有两种锁类型:) z1 _# D, o7 G$ m7 [7 N- u, F; O5 j" r

    " D# N* S7 \1 m共享锁——只读锁,一个用户正在读数据时,阻止其他用户更改该数据。% a* Y% K8 t7 ~5 g/ g; |
    ) j8 p8 P/ a  T& N2 t/ g  g$ Y& g
    独占锁——可写锁,一个用户正在修改数据时,阻止其他用户更改该数据。
    7 u7 L# v3 A7 g7 q+ h: O
    0 e+ n: Q. I  S$ i. s, I: O) _ & d% v# ]- l; j3 ~; C8 O6 V
    5 y' C/ ?! d" N. Z4 X; A  B8 K
    问题二:更新方面的 FM) F' s' `; Q4 |2 [# j* [
    4 y: e$ I/ i7 p: E+ |+ [6 P6 {
    更新 FM 分为 V1 和 V2,那么首先会执行哪一种更新类型呢?每种类型又是以哪种模式(异步、同步或本地)执行的呢?; n( r( n) t5 @# }. f

    9 h1 G' i6 A* q答案:V1 更新类型比 V2 更新类型的优先级高,因此,V1 比 V2 行执行。V1 的执行模式可以为异步、同步或本地;V2 只能为异步执行。- D: Q  X7 p3 b
    # s4 O7 C5 A1 K

    . O- z8 ?+ U- x/ _
    * ]; \. n) Y* v  B1 j* q5 z   Q# r7 P3 l: x) b% n& l7 N
    问题三:ABAP 内存(ABAP Memory)交换
    , l2 `: T2 O$ J  I% i5 e4 c4 H- U1 z2 l) `% [+ _# ]- S# x! v0 W
    在使用 ABAP 内存的程序间进行数据交换时用到的两个语句是什么?0 D! S2 L- A" h

    5 I8 S  i& J* W# R6 J/ M* |答案:EXPORT to MEMORY ID <id> 用于将数据复制到 ABAP 内存,IMPORT from MEMORYID <id> 用于将数据从 ABAP 内存复制到程序中。
    & f& y% T! g3 g4 A8 f" t在 ABAP 内存间进行交换的数据必须在两个程序中都进行声明,并包含同样的数据声明。
    % T; h* u4 f' j; o' Z
    ) l) b# ]* K$ |# h
    # C& `2 I0 Z8 r' t7 r) S( {' Y9 C$ Z1 Q. J- L! z; Z  L. \
    ( ~0 x% w8 {' g, m0 G4 k
    问题四:授权对象(Authorization Objects)- E( o2 J. I0 i! H
    什么是授权对象?在 ABAP 程序中使用哪条语句进行授权检查?& b7 L& a; T1 j, q
    答案:授权对象由一组字段组成,这些字段中的值将被用于进行授权检查。ABAP 程序中使用 AUTHORITY-CHECK 语句根据授权对象进行授权检查。在 AUTHORITY-CHECK 语句中,必须指明授权对象的所有字段,但有一个例外,可以用 DUMMY 关键字来绕过某个字段的检查。& {7 J( v0 a: t& _1 t( J2 l/ ~% _9 @7 l
    一个授权对象中最多可以定义 10 个字段。7 c) A$ ?5 m' D  Y, E: ^
    & q# T* w8 {3 d8 x8 Z

    % c& ]5 g2 G9 g6 f0 O+ I: [8 \9 C6 I4 t
    ( x1 n* H$ C8 q, e 0 r/ k! ?3 b( E: P$ l
    问题五:修改(Modifications)
    3 S$ L. \9 o9 F- W( g在 SAP 系统中是怎样定义"修改"的?它们对更新(upgrade)有怎样的影响?
    , {4 e3 d. k: l5 C! r% c/ U4 C答案:修改是指用户对 SAP 发布的库对象(Repository Object)进行的更改。* |& p! E/ q$ Y3 O8 ~
    必须在更新期间对修改进行评审(Review),来决定是否应该使用新的 SAP 对象,以及将来使用时是否需要进一步修改该对象。" B& W6 ^, Y6 _% ?* m* h2 a

    9 j) |) q4 \+ [1 J0 i
    6 u; o6 ]9 t3 {5 ^. e
    2 p0 q, p* u1 L8 U) Q2 L# ^
    0 p- T" t4 d) r( n. X: n问题六:修改助手(Modification Assistant)
    + G" A/ Z9 G5 Z$ |5 O  P' L什么是修改助手?  d6 r) b' u3 H! s0 O% n
    9 e* f; \; ^9 r" p. A5 H; H8 e: K( p
    答案:修改助手是 4.5 版中引入的一个工具,用于简化更新过程。可以通过 ABAP 编辑器触发修改助手,它会记录对系统进行的修改。修改助手支持通过 ABAP 编辑器、Screen Painter、Menu Painter、文本元素维护、Function Builder 和 ABAP 字典进行的修改。" S5 Z0 w. I" H( a3 I( ?

    ! u5 S. ^2 M; w% T3 z
    / t& w8 F$ M0 Q6 t# E
    ) t: ]. f" t: ?# ~* @7 I
    ) x8 B; Q5 x$ y4 H+ o5 T4 j1 \" {' k/ Q% L/ A# n9 ?- u) ?
    问题七:功能模块出口(Function Module Exit)& ~: e# A( `7 v5 H. d$ u$ H8 q
    实现功能模块出口时 SAP 应用程序中应使用哪条语句?
    * s0 G8 C0 k" d3 j% y& C1 M3 A答案:某些 SAP 应用程序中存在功能模块出口,它使用户能够向 SAP 程序中添加一些功能。通过搜索 "CALLCUSTOMER" 可以发现是否存在功能模块出口。, ]% u0 C5 ?* y* d8 p6 K

    ; u" l+ V4 X0 n% w/ ]$ w
    ! W% Y1 A3 H. `5 f0 a3 o* Z  B6 v1 \! r
    1 `1 b  u# b; ?: q
    问题八:事务变式(Transaction Variants)
    * ^* e2 L. d4 y6 ^; O什么是事务变式?为何要使用它?
    3 R+ u. C/ C9 c% q1 t8 `9 {答案:事务变式是一组屏幕变式,用于预定义屏幕行为和默认值。通过使用变式功能,可以将用户不需要的字段、子屏幕及全屏幕从用户视图中取消。可以给任何输入字段设置默认值,字段也可以不用带 "Ready forInput" 状态。7 O2 q+ ^8 e9 A0 ]7 z( g& t' M
    只能为对话和报表事务创建事务变式;变式中只能包含普通屏幕、子屏幕及对话屏幕。
    # R& R& t* R0 R" p9 s1 N开发人员可以使用 GuiXT 脚本语言通过事务变式维护对屏幕进行修改。修改屏幕布局的方式有:插入按钮、值帮助(Value Helps)、移动对象、插入屏幕等等。$ K- z2 h7 R. X8 R& v

    9 B, Q, E4 ^6 G8 e1 X! }
    9 S( i" {, X* b, I. o7 f& h/ n; I$ U2 _* t) x
    ( r" U6 E6 K  `
    问题九:更改 SAP (Changing SAP)
    $ s7 b( t7 l% Q1 V请列出用户修改 SAP 标准功能的不同方式。; R, g' C4 O; r4 D0 Z, ?3 N
    答案:SAP Standard 可以通过 Personalization、Customizing、Modifications、Enhancements 及自定义 ABAP 程序进行更改。这些方式的示例如下:
    7 N- M* A& c. b" y! CPersonalization——Personalization 技术包含创建变式、设置/获取参数及活动组(Activity Groups)。; K5 \+ n, G3 m5 `2 z
    Customizing ——是最常用的使用 SAP 工具(如 R/3 Reference Modeland Implementation Guide)更改 SAP Standard 的方式。可以认为 Customizing 是实施 R/3 所必需的,通常由 Functional Team 来执行。
    ' r8 u% o' {+ C: G+ FEnhancements——常由开发 Team 执行,包含的活动有:字典增强、Funciton Module Exits、菜单和屏幕出口及 Business Add-ins (BADI)。
    2 |* W$ |. h0 P4 p* ^自定义 ABAP 程序——可以与 SAP 对象或自定义开发的对象一起工作。
    8 ^: c! M) H% `5 n1 I3 F% oModifications——不建议对 SAP 对象使用 Modifications。使用 SSCR (SAP Software Change Registration)注册所有对 SAP 对象的手动修改。9 R; J7 j' ]5 R' {& T, A7 W

    # t$ `! {' T! t : ^+ U" x, Q0 w7 E5 `9 ~
    $ B3 i. ]! C3 T. U  ]. q+ ?" o
    - _. Q/ c( ]2 }% [' v
    问题十:添加字段# p3 J$ B# l8 J# ^9 }
    向 SAP 表中添加字段的方法是哪两种?
    / L4 B) b4 [* c' u答案:这两种方法是:Append 结构(Append Structure)和自定义 Include(Customizing Include)。Append 结构是在向表尾添加字段时创建的,自定义 Include 由 SAP 开发人员指定,以使用户可以创建新字段。
    ' c( M# F. R" {; N; b+ J1 a! ]
    ! g5 q' C9 h+ a/ A 4 o  B4 \0 t' T
    $ [$ X- m. u  K5 B1 E
    * \& o  R% f4 C- p! P
    问题十一:什么是 BADI?3 r6 K& C, _1 h/ M0 K
    答案:BADI 是 Business Add-in 的缩写。它是一种新的功能增强概念,使用 ABAP 对象技术。这是一种使用面向对象的方法来进行 SAP 增强。实现 BADI 要用到类、接口及方法等面向对象的概念。
    , |* \( J- d! s0 f3 \3 t/ G6 C要对一个 SAP 应用程序进行增强,必须首先定义 BADI。为 BADI 创建一个接口,接着创建一个适配器类(Adapter Class)来实现这个接口, 然后创建这个适配器类的实例。

     

    展开全文
  • ABAP 面试问题及答案(一):数据库更新及更改 SAP Standard 前言 最近在准备面试,在网上找了一份英文文档: ABAP 面试问题及答案。该文档的英文原标题为: SAP ABAP Interview Questions, Answers, and ...
    ABAP 面试问题及答案(一):数据库更新及更改 SAP Standard  
    前言
    最近在准备面试,在网上找了一份英文文档: ABAP 面试问题及答案。该文档的英文原标题为: SAP ABAP Interview Questions, Answers, and Explanations: ABAP Certification Review,作者为 Barry Fewer。
    现将其翻译出来,全当在做笔记。
    PS,实际上,就我经过的几次面试看,没有问得这么详细的。就把这当作是学习笔记吧,这些细节对平时的开发也非常有用。


    问题一 :锁对象(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 <id> 用于将数据复制到 ABAP 内存,IMPORT from MEMORY ID <id> 用于将数据从 ABAP 内存复制到程序中。
    在 ABAP 内存间进行交换的数据必须在两个程序中都进行声明,并包含同样的数据声明。 
     
    问题四:授权对象(Authorization Objects)
    什么是授权对象?在 ABAP 程序中使用哪条语句进行授权检查?
    答案: 授权对象由一组字段组成,这些字段中的值将被用于进行授权检查。ABAP 程序中使用 AUTHORITY-CHECK 语句根据授权对象进行授权检查。 在 AUTHORITY-CHECK 语句中,必须指明授权对象的所有字段,但有一个例外,可以用 DUMMY 关键字来绕过某个字段的检查。
    一个授权对象中最多可以定义 10 个字段。

    问题五:修改(Modifications)
    在 SAP 系统中是怎样定义"修改"的?它们对更新(upgrade)有怎样的影响?
    答案:修改是指用户对 SAP 发布的库对象(Repository Object)进行的更改。
    必须在更新期间对修改进行评审(Review),来决定是否应该使用新的 SAP 对象,以及将来使用时是否需要进一步修改该对象。

    问题六:修改助手(Modification Assistant)
    什么是修改助手?
    答案:修改助手是 4.5 版中引入的一个工具,用于简化更新过程。可以通过 ABAP 编辑器触发修改助手,它会记录对系统进行的修改。修改助手支持通过 ABAP 编辑器、Screen Painter、Menu Painter、文本元素维护、Function Builder 和 ABAP 字典进行的修改。
    问题七:功能模块出口(Function Module Exit)
    实现功能模块出口时 SAP 应用程序中应使用哪条语句?
    答案:某些 SAP 应用程序中存在功能模块出口,它使用户能够向 SAP 程序中添加一些功能。通过搜索 "CALL CUSTOMER" 可以发现是否存在功能模块出口。

    问题八:事务变式(Transaction Variants)
    什么是事务变式?为何要使用它?
    答案:事务变式是一组屏幕变式,用于预定义屏幕行为和默认值。通过使用变式功能,可以将用户不需要的字段、子屏幕及全屏幕从用户视图中取消。可以给任何输入字段设置默认值,字段也可以不用带 "Ready for Input" 状态。
    只能为对话和报表事务创建事务变式;变式中只能包含普通屏幕、子屏幕及对话屏幕。
    开发人员可以使用 GuiXT 脚本语言通过事务变式维护对屏幕进行修改。修改屏幕布局的方式有:插入按钮、值帮助(Value Helps)、移动对象、插入屏幕等等。

    问题九:更改 SAP (Changing SAP)
    请列出用户修改 SAP 标准功能的不同方式。
    答案:SAP Standard 可以通过 Personalization、Customizing、Modifications、Enhancements 及自定义 ABAP 程序进行更改。这些方式的示例如下:
    Personalization——Personalization 技术包含创建变式、设置/获取参数及活动组(Activity Groups)。
    Customizing ——是最常用的使用 SAP 工具(如 R/3 Reference Model and Implementation Guide)更改 SAP Standard 的方式。可以认为 Customizing 是实施 R/3 所必需的,通常由 Functional Team 来执行。
    Enhancements——常由开发 Team 执行,包含的活动有:字典增强、Funciton Module Exits、菜单和屏幕出口及 Business Add-ins (BADI)。
    自定义 ABAP 程序——可以与 SAP 对象或自定义开发的对象一起工作。
    Modifications——不建议对 SAP 对象使用 Modifications。使用 SSCR (SAP Software Change Registration)注册所有对 SAP 对象的手动修改。

    问题十:添加字段
    向 SAP 表中添加字段的方法是哪两种?
    答案:这两种方法是:Append 结构(Append Structure)和自定义 Include(Customizing Include)。Append 结构是在向表尾添加字段时创建的,自定义 Include 由 SAP 开发人员指定,以使用户可以创建新字段。

    问题十一:什么是 BADI?
    答案:BADI 是 Business Add-in 的缩写。它是一种新的功能增强概念,使用 ABAP 对象技术。这是一种使用面向对象的方法来进行 SAP 增强。实现 BADI 要用到类、接口及方法等面向对象的概念。
    要对一个 SAP 应用程序进行增强,必须首先定义 BADI。为 BADI 创建一个接口,接着创建一个适配器类(Adapter Class)来实现这个接口, 然后创建这个适配器类的实例。

    转: http://blog.csdn.net/recordallen/archive/2007/08/20/1752173.aspx

    转载于:https://www.cnblogs.com/byfhd/archive/2008/01/29/1057226.html

    展开全文
  • ABAP面试题目

    2009-12-25 15:15:12
    ABAP面试题目 转自:http://blog.csdn.net/recordallen/archive/2007/08/20/1752173.aspx 问题一:锁对象(Lock Objec...
  • ABAP面试题1-关于屏幕事件
  • ABAP面试问题及侧重点

    2016-11-15 11:29:00
    ABAP面试 1.简单的Report包括哪些东西 2.Dialog 逻辑流以及相应的处理内容 3.用过的几种增强方式:怎么找增强 4.接口和函数的使用,一般遇到自己不会的函数怎么处理 5.关联查询:INNER JOIN 与 LEFT JOIN 与 ...
  • 常见的abap面试题目

    2008-06-18 10:03:00
    常见的abap面试题目 1. What is the typical structure of an ABAP program? //ABAP程序的基本结构是什么?HEADER ,BODY,FOOTER. 2. What are field symbols and field groups.? Have you used "component idx of ...
  • SAP(ABAP面试题目

    2010-03-11 09:28:29
    SAP面试题目(ABAP),最新收集的11个问题
  • ABAP 面试大全

    2016-08-24 15:38:24
    http://wenku.baidu.com/link?url=tnuHV2uX5SmB4rMdxj9Gu-rBPhkM7ezGk2oRbxiKo16DUFrEOHKh5-CFUblBZdsa9fNkJLVG-uSuvBmhESuKio9XnRsPahtnYZxKpKWgaeO
  • report z. CLASS demo DEFINITION. PUBLIC SECTION. CLASS-METHODS main. ENDCLASS. CLASS demo IMPLEMENTATION. METHOD main. DATA itab TYPE STANDARD TABLE OF i WITH EMPTY KEY ...
  • ABAP面试 过程

    千次阅读 2012-10-09 12:33:32
    最近面试好像多了些,以至于到现在都形成许多固定的模式。翱翔是个喜欢总结的人,于是把面试的问题出发点以及会经常问倒的问题,以及问问题的出发点稍作整理。如果朋友是个要去面试的人,或许可以得到些帮助,反之,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 730
精华内容 292
关键字:

abap面试