ABAP学习总结.docx
- 文档编号:8791431
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:15
- 大小:147.09KB
ABAP学习总结.docx
《ABAP学习总结.docx》由会员分享,可在线阅读,更多相关《ABAP学习总结.docx(15页珍藏版)》请在冰豆网上搜索。
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”,则同时定义了该内表的同名工作区,该定义被称作表头行,例如:
DATAITABTYPETABLEOFYTEST_TABWITHHEADERLINE.
不带表头行的内表
带表头行的内表
填充内表
APPENDWA_ITABTOITAB.
APPENDITAB.
插入
INSERTWA_ITABINTOITABINDEX4.
INSERTITABINDEX4.
INSERTWA_ITABINTOITAB.(插入最后一行)
INSERTITAB.(插入最后一行)
读取
READTABLEITABINTOWA_ITABINDEX3.
READTABLEITABINDEX3.
修改
MODIFYITABFROMWA_ITABINDEX3.
MODIFYITABINDEX3.
删除
DELETEITALINDEX5.
DELETEITABINDEX5.
注:
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~FLDATEINTOARCD1FROMSPFLI
INNERJOINSFLIGHTONSPFLI~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-CARRID='DL'.
FORMATCOLORCOL_NEGATIVEINVERSEOFF."背景色,红色
ELSEIFSPFLI-CARRID='AZ'.
FORMATCOLORCOL_NEGATIVEINVERSEON."前景色,红色
ELSE.
FORMATCOLOROFFINVERSEOFF.
ENDIF.
WRITE:
/SY-VLINE,(15)SPFLI-CARRID,SY-VLINE,(15)SPFLI-CONNID,
SY-VLINE,(15)SPFLI-COUNTRYTO,SY-VLINE,(15)SPFLI-CITYFROM,SY-VLINE,(15)
SPFLI-AIRPFROM,SY-VLINE.
ULINEAT/(91).
ENDSELECT.
从服务器上下载指定人的源码:
se38->Z_DOWNLOAD_DOC->执行->输入要下载人的用户名和保存路径->执行即可将指定人的所有源码下载下来
SAP:
System,ApplicationsandProductsinDataProcessing.即数据处理的系统应用和产品.
ERP巨人:
---SAP公司创立于1972年,其总部设在德国南部的小城walldorf.
ERP(EnterpriseResourcePlanning,企业资源计划)是建立在现代企业的先进管理思想基础之上,利用信息技术为企业提供决策,计划,控制和业务评估的全方位的系统的解决平台.
企业流:
物流,资金流,信息流.
SAP基本结构:
数据库,应用层和显示层.
R/3(R意为实时处理,Realtime).
SAP模块:
生产计划控制(PP),物料管理(MM),销售与分销(SD),财务会计(FI),管理会计(CO),人力资源(HR),设备管理(PM),项目管理(PS),固定资产管理(AM),资料管理(BW),售后服务管理(SM),工作流管理(WF),质量管理(QM),基本系统组件(BC)...
SAP系统开发人员主要接触对象:
Basis系统和开发平台及ABAP系统设计语言.
ABAP(AdvancedBusinessApplicationProgramming).
处理块(ProcessingBlocks)是ABAP程序的主要结构单元,定义了程序在不同状态下执行的具体功能,在程序编译运行过程中,每一个块都是一个独立的实体.
数据(包括选择屏幕元素)定义和声明语句是独立于任何处理块的,其他所有语句则都必须隶属于某个处理块.
程序类型
应用类型
其他程序类型(不能直接执行)
可执行程序
模块池
功能组
(Function-Pool)
ABAP类库(Class-Pool)
ABAP接口库(Interface-Pool)
子程序池(Program)
类型组(Type-Pool)
包涵程序(Include)
程序元素
ABAP元素
屏幕
GUI
源代码
变式
属性
文本元素
文档
普通屏幕
选择屏幕
传统列表屏幕
菜单
标准工具栏
应用工具栏以及功能键及功能代码设置
状态(Status)
标题(Title)
语句结构
声明语句
TYPES,DATA,PARAMETER和TABLES
模块化语句
事件关键字
ATSELECTION-SCREEN,START-OF-SELECTION,
ATUSER-COMMAND
过程定义关键字
FORM/ENDFORM,
FUNCTION/ENDFUNCTION,
MODULE/ENDMODLUE
控制语句
IF,WHILE,CASE
调用语句
PERFORM,CALL,SUBMIT,LEAVETO
操作语句
WRITE,MOVE,ADD
数据库语句
OPENSQL和NATIVESQL
内部调用程序
功能
报表调用程序
事务调用程序
无返回调用
SUBMIT
LEAVETOTRANSACTION
调用并返回
SUBMITANDRETURN
CALLTRANSACTION
数据元素:
是构成结构和表等复杂类型的基本组件.
域:
则定义数据元素的技术属性,具有包括数据字典中的基本内置数据类型,长度和小数位.
所有数据元素都必须属于一个域.
内表排序使用SORT语句.
确定数据对象属性:
DATA:
text(8)TYPEcVALUE‘abcdefgh’,lenTYPEi.
DESCRIBEFIELDtextLENGTHlen.
WRITE:
text,‘haslength’,len.
其输出为:
abcdefghhaslength8.
MOVE字段TO字段=>赋值.
MOVEsourceTOdestination.destination=source.
可以使用MOVE-CORRESPONDING语句在两个结构体中所有同名组件赋值,而目标结构体中其他字段的值不变.
MOVE-CORRESPONDINGadd_companyTOcompany.
字段符号:
系统不直接为字段符号本身保留内存空间,而是将其指向一个数据对象.
声明字段符号:
FIELD-SYMBOLS
分配数据对象:
静态分配:
ASSIGNfTO
动态分配:
ASSIGN(f)TO
动态分配不是将字段f分配给字段符号
例:
FIELD-SYMBOLS:
DATA:
str(20)TYPEcVALUE‘OutputString’.
Name(20)TYPEcVALUE‘str’.
*Staticassignment
ASSIGNnameTO
WRITE:
/
*Dynamicassignment
ASSIGH(name)TO
WRITE:
/
输出结果为:
Str
OutputString
READ语句只能应用于内表数据对象.
静态数据对象:
STATICS,与DATA,TYPES格式一样.
宏的定义:
DEFINEname.
END-OF-DEFINITION.
SE24->定义全局类SE37->定义FUNCTION.
访问类成员:
oref->attr.属性或方法.
Oref=>attr.静态属性或方法.
继承:
CLASSc1DEFINITIONINHERITINGFROM…
…………………
ENDCLASS.<类的定义>
CLASSc1IMPLEMENTATION.
………
ENDCLASS.<类的实现>
抽象类:
CLASSc1DEFINITIONABSTRACT.
……….
ENDCLASS.
最终类;CLASSc1DEFINITIONFINAL.
……….
ENDCLASS.
接口:
INTERFACEintf.
DATA…..
CLASS-DATA……(静态属性).
METHOD……
ENDINTERFACE.
实现接口:
CLASSclassDEFINITION.<类定义>
PUBLICSECTION.
…….
INTERFACES:
intf1,intf2……
ENDCLASS.
CLASSclassIMPLEMENTATION.
……
METHODintf1~imeth1.(实现接口方法)
…….
ENDMETHOD.
…….
ENDCLASS.
DATAobjectTYPEREFTOclass.
创建对象:
CREATEOBJECTobject.
通过内表将多条数据插入数据库表:
INSERTdbtabFROMTABLEitabACCEPTINGDUPLICATEKEYS.
其中acceptingduplicatekeys选项的效果是:
如果出现关键字相同条目,系统将SY-SUBRC返回4,并跳过该条目,并更新所有其他条目.
UPDATE:
单行:
UPDATEdbtabFROMwa.(工作区).
多行:
UPDATEtargetFROMTABLEitab.(内表).
MODIFY:
相当于INSERT和UPDATE语句结合.
添加或更新单行:
MODIFYdbtabFROMwa.
添加或更新多行:
MODIFYdbtabFROMTABLEitab.
DELETE:
单行:
DELETEdbtabFROMwa.
多行:
DELETEdbtabFROMTABLEitab.
SY-DBCNT返回实际已删除的行数.
一般性的报表时间触发过程如下:
1.LOAD-OF-PROGRAM.
2.INITIALIZATION.
3.ATSELECTION-SCREENOUTPUT.ATSELECTION-SCREEN.
4.START-OF-SELECTION
5.GET和GETLATE
6.END-OF-SELECTION
7.TOP-OF-PAGEEND-OF-PAGE
8.ATLINE-SELECTIONAT-USER-COMMAND
RFC:
(RemoteFunctionCall,远程功能调用).
RFM:
可以提供给其他系统进行远程调用的程序模块是支持RFC的功能模块,即RFM(Remote-EnabledFunctionModule).支持远程调用的功能模块.
RFC模式:
1.同步RFC
2.异步RFC
3.事务性RFC
4.队列RFC
5.并行RFC
模块条件调用:
单字段:
FIELDfieldMODULEmodONINPUT/REQUEST.
INPUT:
当field中包含非初始值时,才调用ABAP模块mod;如果用户将字段值由其他改回初始值,也不能触发mod.
REQUEST:
只有用户在该字段中输入值时(包括空值和原值),才调用ABAP模块mod.
组合字段:
CHAIN.
FIELD:
f1,f2,…
MODULEmod1ONCHAIN-INPUT/CHAIN-REQUEST.
FIELD:
g1,g2,……
MODULEmod2ONCHAIN-INPUT/CHAIN-REQUEST.
……
ENDCHAIN.
当fi之一满足条件时,mod1被调用,当fi或gi满足条件时,mod2被调用.
锁:
问题一:
锁对象(LockObject)和FM(FunctionModule),激活LockObject时,产生的FM的名字是什么?
答案:
首先要在ABAP字典中创建锁对象,然后才能在ABAP程序中设锁。
创建锁对象时,系统会自动生成两个FM来进行锁管理。
用于设锁的FM为:
ENQUEUE_<锁对象名>。
它用于在锁表(LockTable)中生成一个锁项(LockEntry)。
若设锁不成功的话,就会在Return中反映出来。
用于释放锁的FM为:
DEQUEUE_<锁对象名>。
它用于从锁表中删除一个锁项。
在ABAP程序中,只需使用"CALLFUNCITION..."语句就可以调用它们。
这两个锁FM是在SAP系统的一个特殊工作进程中执行的,专门进行锁管理。
它运行在一个单独的服务器上,而该服务器专门用于维护整个SAP系统的主锁表(CentralLockTable)。
有两种锁类型:
1.共享锁——只读锁,一个用户正在读数据时,阻止其他用户更改该数据。
2.独占锁——可写锁,一个用户正在修改数据时,阻止其他用户更改该数据。
增强:
Badi:
SE18创建BADI
SE19实现BADI,并实现方法.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ABAP 学习 总结
![提示](https://static.bdocx.com/images/bang_tan.gif)