首页 > 其他分享 >我的ABAP学习历程

我的ABAP学习历程

时间:2022-12-06 15:00:46浏览次数:44  
标签:ABAPer ALE List 技术 学习 ABAP ALV 屏幕 历程


在CSDN上混了3年了,但真正说起来,我的程序员历程却只有两年多一点。

起初研究了半年的JAVA,从CORE JAVA到JAVAME再到最后的JAVAEE,这里面的技术名目很多,特别是到了JAVAEE和W3C标准结合以及和数据库连接相关技术就更为复杂了。

后来做了一名ABAPer,到如今1年半,期间总过做过3个项目,涉及到方方面面。 但是ABAP里面的技术名目也是很多的,若非有大量的项目经验,很难弄明白它里面的各种技术。 不得不说,我是一名普通的ABAPer,我肯定不如很多人聪明,但是我比较愿意花时间研究一些东西,以至于很多技术我并没有在项目上用到,却在私下里有研究过。以下我说说我自己从业以来ABAP的学习经历吧。以下是一步一步学习历程:

 

1,Report

我说的Report指的是单纯的List,若是从广义去理解Report,那它的范围广了,在SAP 所有的程序中有两种可执行程序,一种就是Report,另一种就是MODULE POOL。

好吧,言归正传,List其实很简单啦,ABAP通用的关键字要熟悉以外还要掌握List中比较常用的那些事件的用法,以及WRITE的格式控制。 在List中比较复杂一点的是控制分页,和页格式设置。

 

2,ALV

当你自己写了一段时间的Report List以后,突然有一天有人告诉你,其实我们显示数据可以做到更加完美,那就通过ALV去显示。 而当你真正见识到ALV的显示效果以后,你猛然发现你前段时间写的那些List根本就没有价值了。 所以你开始研究ALV技术,研究如何通过Function module或者OO显示数据,研究如何设置title,如何自定义button,如何响应自定义的button,如何设置热点,如何显示radiobutton,如何刷新ALV列表,如何实现可编辑ALV,等等。

 

3,Smartforms

通常对于报表的需求不会只停留在显示功能,客户会要求打印功能。 若是系统提供的页面布局不让客户满意时,就要开发新的form了,自然而然你就开始学习如何设计smartforms(scriptform如今看来用处不多,略), form通常包括header body footer, body部分通常需要显示内表的数据,所以要创建个main window,比较复杂的是分页控制,往往要强制换页。 当然在设计smartforms之前要定义好一种style和页面格式,因为系统的style和系统已存在的页格式不再符合你当前的smartform的需求。 当然设计好的smartforms可以直接去测试了,看看显示出来页面布局基本差不多,那么就要开始写驱动程序了,驱动程序里面比较复杂的是要熟悉call smartform里面的每个参数的确切含义,比如控制它不显示对话框,控制它打印完删除缓存,控制它发送邮件,等等。

 

到了现在,你是不是有一种瓶颈的感觉啊,不知道干什么了。好的,新的挑战立马就出现了。

 

4, screen flow

很多标准的程序都是屏幕流程序,就是一个屏幕接着一个屏幕出现,新屏幕的出现和旧屏幕的返回以及屏幕之间的互相导航往往是通过屏幕上的那些按钮去实现的,体现到程序里面无非就是leave to scree, set screen, call screen。 什么时候要开发屏幕流程序,当然是当系统tcode已经无法满足客户操作需要的时候。 做屏幕流,唱主角当然是屏幕啦,首先要设计各种屏幕,而屏幕中的元素比较多,比较复杂是子屏幕,tabscrip和各种controls,比如显示table的control,显示图片的control,显示网页的control。相对来说屏幕流程序技术难度大一些。

 

5,Enhancement

增强是一个ABAPer必须掌握的技术,说起来增强技术,里面的名目也是很多,分法很多,笼统的说包含: 出口技术,BADI(NEW BADI和CLASSICAL BADI),BTE,SUBSTITUTION。 还有隐式增强和显式增强技术。 当然各种增强还有其他东东,比如扩张字段,比如dataelement的增强,比如说search help exit等等。 

 

6,BDC

BDC也是ABAPer必须会的一门技术,相对而言比较简单,BDC的实现通常有两种方式: CTU 和 BI session, 两种方式各有利弊, 前者比较直接简单,但是消息要写代码控制,后者创建一个BI SESSION,让用户到SM35去跑,数据才真正写到数据库,消息管理得比较完善,当然后者还有一个好处是,一个BI SESSION里面可以包含多个事物处理(理论上是这样的,但是本人屡次失败,仍不知为何)。

 

7,ALE/IDOC

BDC和ALE最大的区别在于,BDC无法实现系统间的数据交换,而ALE是专门用于SAP系统与外界系统数据交互的技术,一端outbound数据另外一端inbound数据。

关于ALE的事物代码比较多,包括系统连接的,IDOC管理的,状态查询的,IDOC重处理的,等等。 要多多实践才能这方面的专家。

 

8,BAPI

这个就不用多说了,BAPI是和业务紧密关联的一些业务对象的方法,通常用来创删改查某种业务对象对应的master data或者trasaction data, 我们往往需要查找和测试各种BAPI,以用于我们的开发中去,特别是Interface开发, 比较复杂的就是创建和开发新的BAPI了。

 

9,LSMW

严格来说它更像一个工具,就像SM36或者ST05那样,主要要与数据转换,它支持RECORDING, BAPI, IDOC。 没什么难的,每一种类型都去STEP BY STEP去实践一遍并不难。

 

10,EDI

这个是和ALE并列的一门技术,我没研究过,就不写了。

 

11,WORKFLOW

说实话,这一块如果没有一本很好的书籍或者有个很好的导师,真是不好入门,本身资料相对少,然后入门相对难一点。

 

12,BASIS相关

作为ABAPer也有必要会一些BASIS相关的简单的应用,比如创建user,解锁,权限对象创建,profile的创建,用户权限管理, TR传输。

 

13,项目管理方面

比如项目分析,需求设计,详细需求设计,项目实施管理(包括项目技术文档设计,开发进度管理,缺陷管理,测试,测试文档设计),等等,也要有所了解。

 

个人觉得以上我说方方面面就是一个ABAPer应该具备的技术方面的素质了,当然还有一些沟通技巧,其他文化素养啊,那其实是一个成功人士的标准了。

另外,作为一个成功的ABAPer要主动去学习ERP中各个模块的知识还有SAP其他套件(CRM SRM SCM PLM)的开发技能。

再如果能掌握BI(包括BW和BO),甚至掌握HANA,那你就是一个SAP领域的一名技术大牛了。

这个就是一名ABAPer应该树立的目标,希望本文给那些处于迷茫期的ABAPer一些启示。

标签:ABAPer,ALE,List,技术,学习,ABAP,ALV,屏幕,历程
From: https://blog.51cto.com/u_15903986/5916086

相关文章

  • EPI理科-系统学习
    一、数字推理1.知识储备100以内的质数2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97 1-30的平方=1,,,=16,=25,=36,=49,=64,=81,=10......
  • C语言学习入门 (八) 结构体和枚举
    结构体它允许内部的元素是不同类型的结构体的定义//结构体类型:struct{charintfloat};//定义一个结构体变量,定义变量时才分配存储空间structPersonstructchar *name;int}......
  • 十月一日学习感受
     时光荏苒,岁月如梭,七天的时间飞快的过去。我给我的七天总结了一个关键字“变”,那么何为“变”而我又变了什么呢?首先,“变”指的是一些变化,无论是心态上还是行动上我都有了......
  • 软工文档学习
    软工文档里面的文档及其作用。1:可行性研究    在一个软件进行开发前,对这个项目在,经济、经济和社会方面的可行性,综合评述各个方案。项目分析员进行下一步工作的前提,......
  • C语言学习入门 (二) 语句和运算符
    C语言的基本语句跟Java中的差不多循环语句(dowhile、while、for)条件语句(if 、if-else、switch)goto语句 (比如在循环外定义一个标记Exit:; 在循环内可以用gotoExit;......
  • 2019.10.26日学习总结
     今天纪老师带着我们探讨了,更新软件的意义、薪资对我们而言究竟意味着什么、为什么要树立终身学习的想法。1:首先说一下,更新软件的意义,为什么要更新软件,这件事情对于我们而......
  • 2019.10.27二进制学习总结
    今天上午大家讨论学习了二进制。我总结了二进制的以下几个规律。1:十进制中2的次方数每增加1它相对应的二进制的数位次就增加1位。2:二进制的每一位数都是都是有循环变化的。3......
  • [个人学习笔记]卫生统计学R语言代码总结
    卫生统计学R语言代码总结目录前言不同分布相关函数统计描述数值变量集中位置离散程度正态性检验分类变量t检验方差分析假设检验两两比较秩和检验......
  • Linux学习之VMware安装CentOS7
    CentOS版本:7.9VMware版本:16安装主要就是下一步,下一步,有几个注意事项:第一就是网卡的设置,因为CentOS7默认网卡名字不是ethX样式.然后就是安装软件的选择,学习Linux,......
  • krping学习笔记 (1)
    krpingKriping是一个内核态的rdmaping-pong程序,其使用rdma读写的方式实现了数据在server-client间的ping-pong式传递.如下图所示,在开始数据传输前,client会先将......