abap学习计划.docx
《abap学习计划.docx》由会员分享,可在线阅读,更多相关《abap学习计划.docx(16页珍藏版)》请在冰豆网上搜索。
abap学习计划
abap学习计划
篇一:
aBaP学习资料
一、aBaP进入方式:
(500aBaP01123456)(200aBaP01initinit)1、输入事务码“SE38”点击回车,输出屏幕如下:
输入程序名称“zmm0001”,点击创建,输出屏幕:
点击保存,输出屏幕如下:
点击保存,输出屏幕如下:
点击保存屏幕如下:
点击保存按钮,输出屏幕如下:
点击“√”输出屏幕如下:
篇二:
aBaP学习手册
aBaP自学经历
次文件来源于网络
1,几个重要的表
1.1Basis
TSTcT事务代码文本
1.2Salesdocumentadditional
VBPa销售凭证:
合作伙伴
VBUK销售凭证:
抬头状态和管理数据
VBUP销售凭证:
项目状态
VEda合同数据
1.3Vendormaster
m_KREda匹配码标识KREd的已生成视图
1.4customermaster
Kna1客户主文件的一般数据
KnVV客户主记录销售数据
2,aBaP常用的几个事务代码
2.1SE38程序设计
SE80程序开发
SE24类开发
SE37模组开发
SE11表结构
SE16表数据
SE91消息管理的
SE10管理请求号
SU01创建帐号
PFcG创建角色
STmS传输管理系统
SE81跨客户端的应用层次
SE84寻找跨客户端组件
SE93创建事务代码
cmod创建增强工程
3,aBaP有三种类型的处理块
3.1Eventblocks,dialogmodules,Procedures只有后一种可拥有自己的局部变量,而且程序语句是内部调用,前两者处理块之间实行外部调用
4,应用程序类型
4.1可执行的:
以Report关键字引导,不能定义功能模块但可以调用.
4.2模块池的:
以Program关键字引导,必须通过事务代码运行.
5,abap的数据类型分为三种类型
5.1类型5.2结构5.3内表
6,数据定义
6.1直接定义:
dataint_atypei.
6.2参照自己定义的数据类型定义
Typechar_six(6)typec.
datachstypechar_six.
6.3参照T-codE:
SE11中建立的数据类型定义
6.4直接使用like
datach4likech3.(其中ch3已经在se11中定义过)
6.5定义常数:
使用constants
基本语法:
constants:
typevalue.
Eg:
conSTanTSinTTYPEiVaLUE99.
7,Form……Endform
在一个Program中,处于Form和Endform之间的是Subroutines.该程序由Program引导,不能直接运行,需被调用,不能包含自定义的用户屏幕.
8,设置日期的显示分隔符,小数点字符和千位分隔符
在用户主记录里可以设置日期的显示分隔符,小数点字符和千位分隔符,在system->userprofile->owndata或T-code:
su01.
9,copy程序
Se38->输入被copy的程序名称->ctrl+F5(快捷键)
或者选择
10,两个结构体进行赋值
两个结构体进行赋值操作,如果Source与destination的组件结构不完全相同,则用
move-corresponding.
Eg:
move-correspondingsource-datatodestination-data.
11,关键字表达式
在aBaP数据表达式中,关键字前后必须有空格。
Eg:
Fault:
:
(a=b+c)true:
:
a=b+c.
12,如何设置关键字的大小写功能?
在utilities--settings—prettyprinter
13,aBaP的两种动态数据对象
13.1Fieldsymbols
13.2datareference.
注意:
客户的程序名称必须要以z开头
14,模式按钮
作用:
可以callfunction,写write等固定格式,message等功能
操作方法:
将光标放在程序中你要输入的地方,然后按pattern,输入你要输入的参数,回车即可。
工具栏图标:
PS:
旁边的prettyprinter是美化program,即是以标准的缩进和注释对program
15,子程序的定义和调用
子程序的定义和调用分别用Form/Endform和perform来实现,如果想生成子程序的代码框架,则在prefomadd处双击即可
16,内表有三种形式
16.1standardtable
16.2sortedtable
16.3hashedtable(不能进行索引查找,只能通过关键字搜索)
17,进行程序调试
其中F5单步执行
F6执行子程序的时候,不进入子程序,即跳过子程序
F7跳出目前的子程序
F8直接执行
18,Package的命名规则
package的命名规则:
1)beginwitha-SorU-X是SaPstandardobject,
2)beginwithYorzarecustomerobjects,
3)beginwithTareprivatetestpackage,
4)beginwith$arelocalpackage.
19,在窗口上直接输入/h就可以进入程序调试的模式
20,创建事务代码
20.1事务代码:
SE93
20.2,在程序中使用快捷键ctrl+Shift+F5然后右键->创建->transaction
或者点图标
21,write
write:
a,b,c.
其中的冒号是语法链的作用。
22,定义一个结构再右键->创建->transaction
22.1直接定义结构
data:
beginofstru_ztaly,
name(10)typec,
……
Endofstru_ztaly.
22.2自己在程序里先定义结构类型,再参照类型定义结构对象。
Types:
beginofstru_ztaly,
name(10)typec,
……
Endofstru_ztaly.
data:
stru_ztaly2typestru_ztaly.
22.3在se11定义一个公共的类型,再参照类型定义结构对象。
data:
stru_italytypeityp_s_ztaly.
22.4使用like
datastru_italy2likestru_italy(其中stru_italy是已经定义了的结构)
23,建立内表
23.1直接建内表
data:
beginofitab_italyoccurs0,
inotypei,
…..
Endofitab_italy.
23.2自己先建一个结构类型,再根据这个结构类型建内表
Type:
beginoftyp,
inotypei,
……
endoftyp.
data:
itab_typtypetableoftyp.
其中关键字table不能少,否则还是结构,而不是内表
23.2现在数据字典中建一个内表类型,再参照这个类型
data:
itab_italystypezty_t_italy.
说明:
对内表的操作必须依靠结构进行。
Forexample:
appendstru_italytoitab_italy.
增加一行到内表中。
23.4内表输出必须依靠于结构,而且要循环输出
Forexample:
Loopatitab_italyintostru_ztaly.
write:
/……….
Endloop.
23.5特殊情况
Tables:
表名a
说明:
定义了一个和a同样名称的数据结构。
atypeBoccursn。
说明:
定义出来的一格内表
23.6datatype[withheaderline]
说明:
在定义的时候同时生成一个同名的结构
27,理解aBaP中的流程
注意的是程序是放在数据库中的。
28,数据元素,结构和内表的区别
用一句话说明:
就相当于数学中的点线面
29,opensql与nativesql的流程区别
说明:
使用了opensql就不必要理会后台的数据库,只要掌握了opensql就ok使用nativesql只和后台数据库习习相关
32,aBaP模块流程
篇三:
aBaP学习实例
aBaP学习资料
PRoGRamdemo_internal_table.
TYPES:
BEGinoFmytext,
numberTYPEi,
name(10)TYPEc,
EndoFmytext.
TYPESmytabTYPESTandaRdTaBLEoFmytextwiTHdEFaULTKEY.
daTatextTYPEmytext.
daTaitabTYPEmytab.
text-number=1.text-name='John'.
aPPEndtextToitab.
text-number=2.text-name='Paul'.
aPPEndtextToitab.
text-number=3.text-name='Ringo'.
aPPEndtextToitab.
text-number=4.text-name='George'.
aPPEndtextToitab.
LooPaTitabinTotext.
wRiTE:
/text-number,text-name.
EndLooP.
结果是:
REPoRTdemo_describe_field.
TYPES:
surname(20)TYPEc,
street(30)TYPEc,
zip_code(10)TYPEn,
city(30)TYPEc,
phone(20)TYPEn,
dateTYPEsy-datum.
TYPES:
BEGinoFaddress,
nameTYPEsurname,
codeTYPEzip_code,
townTYPEcity,
strTYPEstreet,
EndoFaddress.
TYPES:
BEGinoFphone_list,
adrTYPEaddress,
telTYPEphone,
EndoFphone_list.
TaBLESspfli.
aBaP
学习资料
daTa:
BEGinoFtest,
col1(3)TYPEc,
col2
(2)TYPEc,
col3TYPEi,
EndoFtest,
distTYPEi.
daTa:
text(8)TYPEcVaLUE'abcdefgh',lenTYPEi,
numtext(10)TYPEnVaLUE'0123456789',typ
(1)TYPEc,plTYPEphone_list,
nTYPEi,
floatTYPEf,outTYPEi,
packTYPEpdEcimaLS2,dec
(1)TYPEc.
dEScRiBEFiELdtextLEnGTHlen.
wRiTE:
text,'haslength',len.
dEScRiBEFiELdnumtextTYPEtyp.
wRiTE:
/'numericaltexthastype',typ.
dEScRiBEFiELdspfli-fltimeTYPEtyp.
wRiTE:
'andSPFLi-FLTimEhastype',typ.
dEScRiBEFiELdfloatLEnGTHlenoUTPUT-LEnGTHout.wRiTE:
/'Floatingpointnumberhaslength',len,
'andoutputlength',out.
dEScRiBEFiELdpackdEcimaLSdec.
wRiTE:
/pack,'has',dec,'decimals'.
dEScRiBEFiELdplTYPEtypcomPonEnTSn.
wRiTE:
/'ThecomplexfieldPLhastype',typ,'with',n,'components'.
dEScRiBEdiSTancEBETwEEntest-col3andtest-col1inTodist.wRiTE:
/'ThedistancebetweenTEST-coL3andTEST-coL1is',dist.结果是:
REPoRTdemo_data_movenoSTandaRdPaGEHEadinG.
*moVE
daTa:
t(10)TYPEc,
numberTYPEpdEcimaLS2,
countTYPEi.
t=1111.
moVE'5.75'Tonumber.
count=number.
wRiTE'moVE'.
ULinE.
wRiTE:
/t,/number,/count.
*moVEcoRRESPondinG
daTa:
BEGinoFaddress,
firstname(20)TYPEcVaLUE'Fred',
surname(20)TYPEcVaLUE'Flintstone',
initials(4)TYPEcVaLUE'FF',
street(20)TYPEcVaLUE'caveavenue',
numberTYPEiVaLUE'11',
postcode(5)TYPEnVaLUE'98765',
city(20)TYPEcVaLUE'Bedrock',
EndoFaddress.
daTa:
BEGinoFname,
surname(20)TYPEc,
firstname(20)TYPEc,
initials(4)TYPEc,
title(10)TYPEcVaLUE'mister',
EndoFname.
moVE-coRRESPondinGaddressToname.
SKiP.
wRiTE:
/'moVEcoRRESPondinG'.
ULinE.
wRiTE:
/'FiRSTnamE',address-firstname,
/'SURnamE',address-surname,
/'iniTiaLS',address-initials,
/'STREET',address-street,
/'nUmBER',address-number,
/'PoSTcodE',address-postcode,
/'ciTY',address-city.
SKiP.
wRiTE:
/'SURnamE',name-surname,
/'FiRSTnamE',name-firstname,
/'iniTiaLS',name-initials,
/'TiTLE
',name-title.
REPoRTdemo_data_write.
*wRiTETo[].
daTa:
numberTYPEfVaLUE'4.3',
text(10)TYPEc,
floatTYPEf,
packTYPEpdEcimaLS1.
wRiTEnumber.
wRiTEnumberTotextEXPonEnT2.
wRiTE/text.
*wRiTEnUmBERToFLoaT.”*wRiTEnUmBERToPacK.”moVEnumberTopack.
wRiTE/pack.
*wRiTE()To.
ULinE.
daTa:
name(10)TYPEcVaLUE'SoURcE',
source(10)TYPEcVaLUE'antony',
target(10)TYPEc.
...
wRiTE(name)Totarget.
wRiTEtarget.
结果是:
REPoRTdemo_data_clear.
daTanumberTYPEiVaLUE'10'.
wRiTEnumber.
cLEaRnumber.
wRiTE/number.
REPoRTdemo_data_calculate.
*/diVmod
daTa:
packTYPEpdEcimaLS4,
nTYPEfVaLUE'+5.2',
mTYPEfVaLUE'+1.1'.
pack=n/m.
wRiTEpack.
pack=ndiVm.
wRiTE/pack.
pack=nmodm.
wRiTE/pack.
ULinE.
*mULTiPLY-coRRESPondinG
daTa:
BEGinoFrate,
usaTYPEfVaLUE'0.6667',
frgTYPEfVaLUE'1.0',
autTYPEfVaLUE'7.0',
EndoFrate.
daTa:
BEGinoFmoney,
usaTYPEiVaLUE100,
frgTYPEiVaLUE200,
autTYPEiVaLUE300,
EndoFmoney.
mULTiPLY-coRRESPondinGmoneyBYrate.
wRiTE/money-usa.
wRiTE/money-frg.
wRiTE/money-aut.
ULinE.
*add...
daTa:
BEGinoFseries,
n1TYPEiVaLUE10,
n2TYPEiVaLUE20,
n3TYPEiVaLUE30,
n4TYPEiVaLUE40,
n5TYPEiVaLUE50,
n6TYPEiVaLUE60,
EndoFseries.
daTasumTYPEi.
addseries-n1THEnseries-n2UnTiLseries-n5GiVinGsum.wRiTEsum.
addseries-n2THEnseries-n3UnTiLseries-n6Tosum.wRiTE/sum.
篇四:
aBaP学习总结
aBaP学习总结
1.aBaP语法
ULinE.----画一条横线
SY-VLinE画竖线
SKiP.跳一行
系统变量如下:
internaltable(内表)
内表数据类型:
Structure,数据库表,用户自定义数据类型.
定义内表:
Structure:
daTaiTaBTYPE(STandaRd)TaBLEoFYTEST_TaB.
数据库表:
daTaiTaBTYPETaBLEoFSFLiGHT.
自定义数据类型:
TYPES:
BEGinoF1_TYPE,
namE(50)TYPEc,
aGETYPEi,
EndoF1_TYPE.
daTaiTaBTYPETaBLEoF1_TYPE.
表头行:
在定义内表的时候,后面加上”wiTHHEadERLinE”,则同时定义了该内表的同名工作区,该定义被称作表头行,例如:
注:
aPPEnd与inSERT区别:
aPPEnd插入内表最后一行,inSERT可以插入指定位置.
数据字典:
数据字段(TaBLEFiELd),域(domain),数据元素(daTaELEmEnT).
数据字段:
数据表中的字段.
域:
描述一个字段类型和长度等信息.
数据元素:
描述一个字段的用途.
数据字段?
域?
数据元素.()收索帮助)
SELEcT:
对数据结构:
当从数据库表中查询出的数据,放入数据结构中时,要有EndSELEcT,例如:
SELEcT*FRomSPFLiUPTo5RowSinToa_SPFLi.
wRiTE:
/a_SPFLi-connid,a_SPFLi-caRRid,a_SPFLi-ciTYFRom,
a_SPFLi-ciTYTo.
EndSELEcT.
对内表:
当从数据库表中查询出的数据,放入内表中时,可有可无EndSELEcT,例如:
SELEcT*FRomSPFLiUPTo5RowSinToTaBLETa_SPFLi.
*从数据库表中读数据到内表中,直接从内表输出
*如果Ta_SPFLi没有定义HEadERLinE,这儿会报错的
LooPaTTa_SPFLi.
wRiTE:
/Ta_SPFLi-connid,Ta_SPFLi-caRRid,Ta_SPFLi-ciTYFRom,
Ta_SPFLi-ciTYTo.
EndLooP.
UPTo5RowS:
读取前5行,不再继续往下读
PacKaGESizE5:
以5行为一组,继续往下读.
例如:
*以每次读取5条记录,直到读取完所有数据
SELEcT*inToTaBLEwa_SPFLiFRomSPFLiPacKaGESizE5.
*输出内表内的数据
LooPaTwa_SPFLi.
wRiTE:
/wa_SPFLi-caRRid,wa_SPFLi-ciTYFRom,wa_SPFLi-ciTYTo.EndLooP.
*输出5条后输出一条线
ULinE.
EndSELEcT.
(内链接)
ULinE.
wRiTE/'内连接'.
ULinE.
*定义结构
daTa:
BEGinoFaRcd,
caRRidTYPESPFLi-caRRid,
connidTYPESPFLi-connid,
FLdaTETYPESFLiGHT-FLdaTE,
EndoFaRcd.
*定义工作区daTaaRcd1LiKEaRcd.*关联数据表,读取前10条记录,写入工作区,并输出SELEcTSPFLi~caRRidSPFLi~connidSFLiGHT~FLdaTEinToaRcd1FRomSPFLiinnERJoinSFLiGHTonSPFLi~caRRid=SFLiGHT~caRRidandSPFLi~connid=SFLiGHT~connidUPTo20RowS.wRiTE:
/aRcd1-caRRid,aRcd1-connid,aRcd1-FLdaTE.EndSELEcT.列表颜色设置:
例如:
*----------标准列表输出
SKiP.
ULinE.
FoRmaTcoLoRcoL_GRoUP.
wRiTE/'前景和背景颜色设置'.
FoRmaTcoLoRoFF.
*数据库表SPFLi相关
TaBLESSPFLi.
SKiP.
*输出表头,背景灰绿
FoRmaTcoLoRcoL_HEadinG.
ULinEaT/(91).
wRiTE:
/SY-VLinE,(15)'航线承办人',SY-VLinE,(15)'航班连接',SY-VLinE,
(15)'国家代码',SY-VLinE,(15)'起飞城市',SY-VLinE,(15)'起飞机场',SY-VLinE.
ULinEaT/(91).
FoRmaTcoLoRoFF.
*SY-VLinE是画竖线,ULinE是画横线
*输出内容,关键字为'dL'红色
SELEcT*FRomSPFLiUPTo10RowS.
iFSPFLi-caRRi