面试ABAP程序员


背景: 我其实没有程序员经验,我是从IFS ERP运维转到SAP开发的,

一:面试abap 开发的准备

A: Interview
Schedule
1.search for interview skill;
2.read programme;
3. write blog

B. be ready for new work
Schedule
4. read book
5. write programme
6. write blog

以下是我在网络上找到的知识点.

1.1 FOR ALL ENTRIES IN 用法

https://www.cnblogs.com/Sapbruce/p/3906967.html

1.For all entries in什么时候使用?

2.注意事项

1.对于不能join的表,使用for all entries in语句将数据库表与内表串联。

for all entries in类似外连接的时候,为避免多次重复数据库查询,用内表的某一字段为条件,从数据库表中取得数据,有一样则选出,相当于过滤数据的作用。

2.① 检查内表是否为空,如果为空,将取得全部数据

② 不能使用LIKE ,BETWEEN 和IN(因为这些比较操作符都是不确定比较操作符(将选择条件设定在一个范围内),

而FOR ALL ENTRIES IN语句的作用相当于将选择条件块全部并列开来,

用OR连接,如果每个OR分支中又是不确定的范围,那么系统性能将大大降低,

因此R/3系统在使用该语句时禁止使用不确定比较操作符。)

③要尽可能多的用关键字,否则会把重复的数据删掉

注意事项:

1.使用该语句,对于最后得出的结果集系统会自动删除重复行。

因此如果你要保留重复行记录时,记得在SELECT语句中添加足够键值项目(有必要时,增加全部键值项目),

以保证结果集中所需重复项目不会被删除。(例如选取支付金额时,支付事件可能不同,但金额可能相同,此时一定要注意,以避免错误删除结果记录。)

2.FOR ALL ENTRIES IN后面使用的内部表itab如果为空,系统将当前CLIENT下所有记录选出。因此为避免无意义的检索,在使用该语句前一定要判断内部表itab是否为空,为空时不执行包含该语句的数据库检索处理。

3.由于itab-f实际上是作为占位符被替换,所以内部表itab中不要包含HEADER行(项目标识名称行),以免造成混淆,检索出错。

4.内部表itab中作为条件替换用项目的类型和长度,一定要和检索数据库中对应的项目相同,否则编译不能通过。

5.对于内部表itab中作为条件替换用项目,不能使用LIKE,BETWEEN,IN比较操作符。

6.使用该语句时,ORDER BY语句和HAVING语句将不能使用。

7.使用该语句时,除COUNT( * )以外的所有合计函数(MAX,MIN,AVG,SUM)都不能使用。

For all entris in

1.注意事项;(不能join的表才使用它)
2.程序优化(不能在loop中使用loop)
3.增强 (smod and badi)

1.2 二分法

(就是把这所有的数从小到大入在一个数组中,从中间取,然后和中间的数比较, 如果不等,则看这个数是比加中间大,就从后面再找,如果比中间小,则从前面找);

1.3 alv(sap list view):

相当于一个容器;ALV主是要输入出的格式,还有结构的定义。

1.4 EXCEL的上传下载(事物代码是SMW0)
1.5 Smartforms:单据打印;
1.6 以下有两种接口来实现(消费和服务)

接口:(PI, webservice)

在大型的机构中,除了遗留系统之外,SAP ERP也不是由一个单一系统组成的,而是集成了多个系统,如CRM,SRM和FICO等。为了处理这种复杂性,SAP引入了PI:一个可以为所有系统提供单一集成点的平台。它不需要接触已有的遗留系统的复杂网络。这是一个可以为SAP和非SAP应用之间、企业内部和内部或者内部和外部之间提供平滑的端对端集成的强大的中间件。SAP PI支持B2B和A2A交换,支持同步和异步消息交换,并且包含了用于设计和执行PI的内建引擎。
webservice:通过SE80来发布

1.7 三种链接方法

左链接:以左边的数据为key
右链接:以右边的数据为key
内链接: 两边数据相等;

1.8 宏(Macros)

是一段独立的代码,能实现数据的运算与输出,功能与子程序类似,主要应用于同一程序中某些重复的运算,以简化代码,其定义语法如下:

   DEFINE INCREMENT.    "INCREMENT为自定义宏的名称。
   ......
   END-OF-DEFINITION.

   对宏的参数传递通过&N来实现,N为整数,即调该宏的参数顺序。

   DEFINE INCREMENT.   "定义宏
       ADD 1 TO &1.
       WRITE: / &1.
       WRITE: / &2.
   END-OF-DEFINITION.

   DATA:number TYPE I VALUE 1,
            str(10) TYPE C VALUE 'HELLO SAP'.

   INCREMENT number str.   "调用宏

   与子程序不同的是,宏通过&N(N为索引)接收传入的参数,不需要定义接收参数的类型及格式。宏只能被本程序中定义于宏后面的语名所调用,宏一般定义于程序最开始。
二:实际面试

1,看了我写的程序;
2,问了我现在的所做的工作;
3,聊一个你熟悉的IT技术;
4,是否可以读英文文当;

三:总结
      1.无论做什么,有兴趣,就去尝试练习,然后慢慢的找工作机会;
       2.如果有条件,尽可能绕开HR去直接找部门负责人谈;
       3.还有就是尽可能有一个技术的圈子,大家有一些分享,不管是知识,还是其它的,都挺重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值