ABAP 面向对象学习笔记(三)--接口
- 格式:docx
- 大小:14.31 KB
- 文档页数:2
ABAP基础程序结构ABAP语言是整个SAP系统的基础开发工具和技术平台,其包含:事件驱动(Evet-Driven)、机制和模块化技术(Modularization)、完整的面向对象概念及实现方法(Object Oriented)。
ABAP程序的源代码结构包括数据定义和处理块两部分:数据定义:整个程序中可见的全局数据类型和数据对象、选择屏幕元素以及ABAP Object 中自定义的类和接口。
处理块(Processing Blocks):是ABAP的主要结构单元,定义程序在不同状态下执行的具体功能,在编译运行中,每一块都是一个独立的实体。
注:数据(包括选择屏幕元素)定义和声明语句是独立于任何处理块的,其他所有语句则都必须隶属于某个处理块。
1. ABAP程序含有三种类型的处理块:·事件块(Event Blocks):每一个事件都需要有一个时间关键字引导,并单独构成一个语句,其后续语句隶属于该关键字代表的时间块,直到下一关键字出现为止。
包括:报表事件、列表事件、屏幕事件初始化:INITIALIATION数据选择开始:START-OF-SELECTION列表行选择:ATLINE-SELECTION屏幕输出前处理:PROCESS BEFORE OUTPUT平和输入后处理:PORCESS AFTER INPUT·对话模块(Dialog Modules):开始和结束都有相关的关键字作为标志,是相对独立的程序单元。
·过程(Procedures):代码部分的开始和结束都有相关的关键字,也是相对独立的程序单元。
过程包括功能模块和子程序,以及对象中的类方法可以被其他的模块调用,实现程序模块化和代码复用。
2. 处理块调用处理块使程序代码模块,也是运行期间的单元;其具体出现的顺序与其在程序代码中的先后顺序无关。
3. 事件驱动在各种处理块中,系统对事件快的调用过程有其特殊性:其调用总是与某时间地发生相关,也成为事件的触发。
ABAP接⼝⽤法1、定义接⼝INTERFACE intf [PUBLIC].[components]ENDINTERFACE.2、注意点:2.1、接⼝中所定义的所有东西默认都是公共的,所以不⽤也不能写PUBLIC SECTION。
2.2、只有在接⼝中定义的常量(CONSTANTS)才可以使⽤ VALUE 选项来初始化,⽽DATA、CLASS-DATA定义的变量是不能初始化2.3、接⼝定义中也只能包含成员声明部分,⽽具体的实现将在具体类中进⾏2.4、如果要实现某个接⼝,则在类的公共声明PUBLIC SECTION部分进⾏实现,其余部分不⾏3、定义⼀个接⼝ MediaPlayer,表⽰家庭影院的⼀个设备。
MediaPlayer 中包含 play(),stop(), open()三个⽅法,分别表⽰播放、停⽌和开仓功能。
MediaPlayer 有三个实现类,分别为: DVDPlayer,表⽰ DVD 播放器; CDPlayer,表⽰ CD 播放器;TapePlayer,表⽰录⾳机(播放磁带)。
INTERFACE mediaplayer.CONSTANTS pi TYPE f VALUE '3.1415926'.CLASS-DATA dd type f .METHODS: play,stop,open.ENDINTERFACE.CLASS dvdplayer DEFINITION.PUBLIC SECTION.INTERFACES mediaplayer.ENDCLASS.CLASS dvdplayer IMPLEMENTATION.METHOD mediaplayer~play.WRITE / 'dvd is play'.ENDMETHOD.METHOD mediaplayer~stop.WRITE / 'dvd is stop'.ENDMETHOD.METHOD mediaplayer~open.WRITE / 'dvd is open'.ENDMETHOD.ENDCLASS.CLASS cdplayer DEFINITION.PUBLIC SECTION.INTERFACES mediaplayer.ENDCLASS.CLASS cdplayer IMPLEMENTATION.METHOD mediaplayer~play.WRITE / 'cd is play'.ENDMETHOD.METHOD mediaplayer~stop.WRITE / 'cd is stop'.ENDMETHOD.METHOD mediaplayer~open.WRITE / 'cd is open'.ENDMETHOD.ENDCLASS.CLASS tapeplayer DEFINITION.PUBLIC SECTION.INTERFACES mediaplayer.ENDCLASS.CLASS tapeplayer IMPLEMENTATION.METHOD mediaplayer~play.WRITE / 'tape is play'.ENDMETHOD.METHOD mediaplayer~stop.WRITE / 'tape is stop'.ENDMETHOD.METHOD mediaplayer~open.WRITE / 'tape is open'.ENDMETHOD.ENDCLASS.*声明对象DATA: dvd TYPE REF TO dvdplayer,cd TYPE REF TO cdplayer,tape TYPE REF TO tapeplayer. START-OF-SELECTION.CREATE OBJECT dvd.CREATE OBJECT cd.CREATE OBJECT tape.CALL METHOD dvd->mediaplayer~play. CALL METHOD cd->mediaplayer~stop. CALL METHOD tape->mediaplayer~open. write / dvd->mediaplayer~pi.write / dvd->mediaplayer~dd.dvd->mediaplayer~dd = 1.write / dvd->mediaplayer~dd.。
ABAP学习笔记一、ABAP语法简介:ABAP(Advanced business application program),是一种高级企业应用编程语言,它支持封装性和继承性,封装性是面向对象的基础,而继承性是建立在封装性基础上的重要特性。
它适合生成报表,支持对数据库的操作,如:Sqlserver,Oracle,DB2等主流数据库系统。
主要的语法有:数据类型、控制流程、文本摘要、输出格式、程序调试1、数据类型:(八种基本数据类型)D :日期类型,格式为YYYYMMDD,长度为8T :时间类型,格式为HHMMSS,长度为6I :整数类型,默认长度为4,初始值为0F :浮点类型,默认长度为8,初始值为0,常用于计算C :字符串类型,定义变量时指定字符个数N :数字字符串类型,定义变量时指定数值字符个数X :字节序列类型,定义变量时指定字节数P(压缩号) :允许的长度为1 到16 个字节,系统会指定默认值8 个字节(也就是15 位数字)和0 个小数位常用:大小,长度,重量,货币等单位的场合.2、输出格式:WRITE 'First line.'.WRITE 'Still first line.'WRITE / 'Second line.'WRITE /13 'Third line’.3、控制流程:使用IF的条件分支IF <条件表达式1>.< statement block >ELSEIF <条件表达式2>.< statement block >ELSEIF <条件表达式3>.< statement block >.....ELSE.< statement block >ENDIF.使用CASE的条件分支CASE <f>.WHEN <F1>.<statement block>WHEN <F2>.<statement block>WHEN <F3>.<statement block>WHEN .........WHEN OTHERS.<statement block>ENDCASE.二、ABAP的语法特点:1、由各自独立的语句构成。
掌握情况学习方式
数据定义和操作
基本掌握结构控制(分支和循环)
基本掌握内表的使用基本掌握模块化引用基本掌握类和对象知道理论方法
知道理论继承
知道理论接口知道理论事件
知道理论数据表维护
基本掌握SELECT操作数据
基本掌握更新数据
基本掌握数据一致性
未知点文件接口和数据簇操作未知点Quick Viewer
未知点SAP Query 未知点选择屏幕
基本掌握逻辑数据库LDB
未知点标准列表
基本掌握交互式列表基本掌握ALV列表
基本掌握后台工作模式
未知点列表打印管理
未知点保存列表未知点定义屏幕基本掌握调用屏幕
基本掌握用户交互基本掌握消息处理
基本掌握定义和调用模块
基本掌握数据传输控制
未知点输入检查未知点上下文菜单未知点下拉框基本掌握表格控件
基本掌握选项卡控件未知点ALV表格控件
基本掌握屏幕中的传统列表基本掌握SAPscript(FORM)
SAPscript 知道理论Smart Forms Smartforms 基本掌握Tree Control Tree Control 知道理论Table Control Table Control 知道理论
开发规格说明书
功能增强BC400传输请求BADI BAPI 函数
各种语句的效率se30重点学习程序测试及优化技巧
后台处理与打印事务屏幕设计
控制逻辑设计高级屏幕元素
ABAP知识点
ABAP语言基础
ABAP面向对象数据库操作报表生成工具
ABAP报表设计
实践成果。
总结⼀下ABAP中的各种接⼝技术下⾯总结⼀下ABAP中的各种接⼝技术,因为学习时间不是很长,肯定还不全(还有增强、出⼝等),以后再补上。
针对具体的情况,选择不同的接⼝⽅法,或⼏种⽅法并⾏使⽤。
⼀、CPI-C是基础,但不是很常⽤,⽐较底层⼆、RFC1、R3系统之间(1)在调⽤系统上进⾏RFC⽬标系统的配置(TCODE:SM59)(2)在远程系统上创建允许远程访问的功能模块2、R3与外部系统之间(1)外部程序调⽤SAP功能(功能模块、BAPI)(2)SAP调⽤外部程序三、Connectors(1)SAP Business Connector(SAP BC)(2)SAP Marketplace Connector(3).NET Connector、Java Connector、DCOM Connector、Lotus Connector四、OLE1、Excel作为OLE客户端2、ABAP作为OLE2控制器五、Desktop Office Integrated(DOI)六、WebService1、R3中创建WebService的⽅法(举函数模块产⽣WebService的⽅法)(1)定义函数模块并选择函数组(2)根据向导⽣成WebService(3)使⽤TCODE “wsadmin”和“wsconfig”对服务进⾏管理和配置(4)⽣成WSDL和测试WebService3、外部系统使⽤R3的WebService4、R3调⽤外部系统上的WebService(1)根据WebService连接,使⽤se80,创建代理类(Proxy Object),并激活(2)为代理类配置逻辑端⼝(TCODE:lpconfig)(3)在程序中使⽤代理类完成WebService中⽅法的调⽤七、FTP配合数据迁移的⽅法(标准导⼊程序、定制BDC、LSMW、DXWB),可完成⼀些接⼝功能。
1、条件(1)服务器和客户端程序(SAPFTPA和SAPFTP)(2)服务器配置(3)IIS或Serv-U建⽴FTP服务2、操作⽅式(1)连接到FTP服务器(2)进⾏操作(执⾏FTP命令)(3)断开与FTP服务器的连接3、操作实例(1)获取FTP服务器上的⽂件列表(2)本地与FTP之间的⽂件交换(3)应⽤服务器与FTP服务器之间的⽂件交换⼋、外部数据库1、连接外部数据库(1)服务器端配置(DBCON)(2)访问SQL Server数据库,必须要求R3系统安装在Windows系统上(因为需要⼀些DLL库⽀持)(3)访问外部Oracle数据库2、使⽤Native SQL进⾏数据库操作九、ALE and EDI、IDoc接⼝⼗、SAP Exchange Infrastructure(SAP XI)。
abap class 解读ABAP Class 解读ABAP(Advanced Business Application Programming)是一种基于SAP系统的编程语言,被广泛用于开发企业级应用程序。
在ABAP中,Class是一种重要的概念和编程结构,用于实现面向对象编程(OOP)的原则。
在本文中,我们将一步一步地解读ABAP Class的相关概念、特性和用法,帮助读者更好地理解和应用这一重要的编程工具。
一、什么是ABAP ClassABAP Class是一种面向对象编程(OOP)的核心概念,在ABAP中用于定义对象和对象的行为。
一个Class可以包含属性(Attributes)和方法(Methods),以及相关的事件(Events)和异常(Exceptions)。
通过Class的实例化(Instantiation),我们可以创建具体的对象,然后调用对象的方法来执行相应的逻辑。
在ABAP中,每个Class都有一个唯一的名字,以及可选的访问修饰符(Public、Private、Protected)。
Public修饰符表示其他对象可以直接访问该Class及其成员;Private修饰符表示只有该Class内部的方法才可以访问;Protected修饰符表示该Class及其子类可以访问。
二、ABAP Class的组成部分一个典型的ABAP Class由以下几个组成部分组成:1. Class声明(Class Declaration):用于定义Class的名字、可选的继承关系和接口(Interface)实现。
2. 属性(Attributes):Class的成员变量,用于保存对象的状态信息。
属性可以有不同的数据类型(如整数、字符串等),以及可选的访问修饰符和初始值。
3. 方法(Methods):Class的成员函数,用于执行特定的逻辑。
方法可以有输入参数(Importing)、输出参数(Exporting)、输入输出参数(Changing)和异常参数(Raising),以及可选的访问修饰符。
SAPABAP实用培训教程引言SAP(系统应用与产品)是一家德国公司,提供企业资源规划(ERP)软件,以帮助企业管理和整合业务运营。
ABAP(高级业务应用程序编程)是SAP的编程语言,用于开发SAP应用程序。
本教程旨在为初学者和希望提高ABAP编程技能的开发人员提供实用的培训。
第一部分:ABAP基础1.1ABAP概览ABAP是一种高级编程语言,专门用于SAP应用程序的开发。
它具有结构化和面向对象的特点,支持模块化、可重用性和可维护性。
ABAP编程环境包括ABAP工作台,它是开发SAP应用程序的主要工具。
1.2数据定义在ABAP中,数据定义是通过数据字典实现的。
数据字典是用于定义和描述数据元素、结构和表格的地方。
数据元素是基本的数据单位,结构是由多个数据元素组成的复合数据类型,表格是用于存储大量数据的集合。
1.3ABAP程序结构ABAP程序由多个块组成,包括声明、执行和异常处理块。
声明块用于定义变量和常量,执行块用于编写程序的主要逻辑,异常处理块用于处理程序运行时可能出现的错误。
第二部分:ABAP编程实践2.1报表开发报表是ABAP编程中最常见的应用程序之一。
通过编写SELECT 语句,可以从SAP数据库中检索数据,并通过报表显示格式化输出。
报表开发涉及定义选择屏幕、处理用户输入、执行数据库查询和显示结果。
2.2输入输出处理输入输出处理是ABAP编程中的重要部分。
输入屏幕用于收集用户输入,输出屏幕用于显示程序的结果。
通过使用屏幕元素,如字段符号、表格控制和循环结构,可以创建用户友好的界面。
2.3数据处理数据处理是ABAP编程中的核心任务。
通过使用内部表、工作区和数据库表,可以对数据进行读取、写入和修改。
ABAP提供了丰富的数据处理语句,如MODIFY、APPEND和DELETE,以及用于数据转换和验证的内建函数。
第三部分:ABAP高级特性3.1面向对象编程ABAP支持面向对象编程(OOP)的概念。
BAPI—百度百科BAPI(business application programming interface)是面向对象程序设计方法中的一组程序接口。
它允许程序员通过SAP将第三方软件整合成R/3专有产品。
为了完成一些特殊的商业任务,如上传交易数据等,R/3系统中内置了BAPI。
ABAP中有关BAPI的介绍1.BAPI – business application programming interface2.它实际上是一种特殊的Remote Function Modules (RFC)是为了提供使用外部程序来进行交易活动3.它提供的基于企业目标(Business Object) 技术的接口应用界面4.SAP采用了Object-oriented技术,逻辑定义了SAP R/3系统的所有功能目标,并且将所有的目标(Objects) 和BAPIs存储于企业对象库(Business Objects Repository).5.SAP R/3 企业目标的目标类型(Object Type) 相当于目标设计语言中类(Class) 的概念,其定义结构由以下几部分组成:基本数据,接口界面,键(Key Fields),方法(Methods),特征(Attributes),事件(Events) --如何创建BAPI程序1.定义BAPI Structure (Structure不能在BAPI中重复使用,因为一旦BAPI被释放,其Structure被冻结)2.创建FUNCTION MODULE每个BAPI必须有自己的Function Group,Function Group属性必须为RFC3.创建Business Object4.使用BAPI WIZARD创建API Method这样BAPI可以被外部程序调用5.Function Module符合BOR Method4.释放BAPI Function Module,释放Business Object Type,释放BAPI作为BOR的一种MethodSAP BAPIBAPI是 Business Application Programming Interface的缩写.BAPI是SAP以外程序访问SAP内部数据和程序的标准方式?BAPI在SAP系统内部以Function Modulede的方式实现.所有的BAPI Function都- 支持Remote Function Call (RFC)- 处理过程中不激活对话窗口?BAPI是被定义为Business Object Repository(BOR)中的SAP Business Object类型或SAP interface类型的方法,并且以Function Module方式实现的. 这种定义和实现分离的方式是我们可以通过2中方式访问BAPI.- 通过面向对象的方法调用BOR中的BAPI- 通过RFC直接调用Function ModuleFI/ BAPI 常用收藏——阿土的SAP专栏总帐会计: (比较简单全部测试通过,关帐时使用)Line item of document for ledger with summary table GLF: BAPI_GLX_GETDOCITEMSClosing balance of G/L account for chosen yearF: BAPI_GL_GETGLACCBALANCEClosing balance of G/L account for current yearF: BAPI_GL_GETGLACCCURRENTBALANCEPosting period balances for each G/L accountF: BAPI_GL_GETGLACCPERIODBALANCES应付帐款: (比较简单全部测试通过,按照公司代码,供应商代码和起至时间来查询)读取已清算科目行项目F: BAPI_AP_ACC_GETBALANCEDITEMS读取当前余额F: BAPI_AP_ACC_GETCURRENTBALANCE读取关键日期余额F: BAPI_AP_ACC_GETKEYDATEBALANCE读取未清科目项F: BAPI_AP_ACC_GETOPENITEMS读取科目余额F: BAPI_AP_ACC_GETPERIODBALANCES读取科目过帐F: BAPI_AP_ACC_GETSTATEMENT应收款: (比较简单,传入值,没有要求输入内表类型的;;按照公司代码,供应商代码和起至时间来查询)确定主数据F: BAPI_CR_ACC_GETDETAIL确定最高催款级别F: BAPI_CR_ACC_GETHIGHESTDUNNINGL确定最旧的未清项目F: BAPI_CR_ACC_GETOLDESTOPENITEM确定OI 结构F: BAPI_CR_ACC_GETOPENITEMSSTRUCT确定贷方帐户的信用状态F: BAPI_CREDIT_ACCOUNT_GET_STATUSBAPI: 取余额项目: 客户F: BAPI_AR_ACC_GETBALANCEDITEMSBAPI: 取实际余额: 客户F: BAPI_AR_ACC_GETCURRENTBALANCEBAPI: 取关键日期余额: 客户F: BAPI_AR_ACC_GETKEYDATEBALANCEBAPI: 取未清项: 客户F: BAPI_AR_ACC_GETOPENITEMSBAPI: 取余额: 客户F: BAPI_AR_ACC_GETPERIODBALANCES BAPI: 取科目报表: 客户F: BAPI_AR_ACC_GETSTATEMENT读取客户销售范围F: BAPI_CUSTOMER_GETSALESAREAS 银行会计:取消支付请求F: BAPI_PAYMENTREQUEST_CANCEL支付请求的创建F: BAPI_PAYMENTREQUEST_CREATE列出支付请求F: BAPI_PAYMENTREQUEST_GETLIST支付请求状态的确定F: BAPI_PAYMENTREQUEST_GETSTATUS 过帐预制凭证请求F: BAPI_PAYMENTREQUEST_POST批准支付的支付请求F: BAPI_PAYMENTREQUEST_RELEASE 开始支付的支付请求F: BAPI_PAYMENTREQ_STARTPAYMENT 资产全计核算更改资产F: BAPI_FIXEDASSET_CHANGE创建资产F: BAPI_FIXEDASSET_CREATE使用值创建资产(初始历史遗留数据传输) F: BAPI_FIXEDASSET_OVRTAKE_CREATE资产的明细信息F: BAPI_FIXEDASSET_GETDETAIL选定资产的信息F: BAPI_FIXEDASSET_GETLIST检查资本记帐F: BAPI_ASSET_POSTCAP_CHECK记帐资本总额F: BAPI_ASSET_POSTCAP_POST检查资产报废F: BAPI_ASSET_RETIREMENT_CHECK记帐资产报废F: BAPI_ASSET_RETIREMENT_POST检查资产购置F: BAPI_ASSET_ACQUISITION_CHECK记帐资产购置F: BAPI_ASSET_ACQUISITION_POST特殊用途分类帐:特殊目的分类帐: 选择科目的总计记录F: BAPI_SL_GETTOTALRECORDS总帐科目检查总帐科目是否存在F: BAPI_GL_ACC_EXISTENCECHECK总帐科目明细F: BAPI_GL_ACC_GETDETAIL每个公司代码总帐科目的清单F: BAPI_GL_ACC_GETLIST会计核算--会计接口会计核算:冲销凭证F: BAPI_ACC_ACT_POSTINGS_REVERSE会计:核算冲销F: BAPI_ACC_DOCUMENT_REV_CHECK会计: 过帐凭证F: BAPI_ACC_DOCUMENT_POST会计:过帐冲销F: BAPI_ACC_DOCUMENT_REV_POST会计:总帐科目记帐F: BAPI_ACC_GL_POSTING_CHECK会计: 检查一般总分类帐科目过帐的冲销F: BAPI_ACC_GL_POSTING_REV_CHECK会计:总帐科目记帐F: BAPI_ACC_GL_POSTING_POST会计核算: 过帐一般总帐过帐冲销F: BAPI_ACC_GL_POSTING_REV_POST会计销售订单会计:检查销售订单F: BAPI_ACC_SALES_ORDER_CHECK会计:记帐销售订单F: BAPI_ACC_SALES_ORDER_POST会计核算:冲销凭证F: BAPI_ACC_ACT_POSTINGS_REVERSE会计: 过帐票据凭证冲销(OAG: LOAD RECEIVABLE) F: BAPI_ACC_BILLING_REV_POST会计: 检查货物移动(OAG: POST JOURNAL)F: BAPI_ACC_GOODS_MOVEMENT_CHECK本文来自CSDN博客,转载请标明出处:/chfeijj/archive/2008/09/09/2906112.aspxSAP 事务码描述(中英文) 收藏事务码描述(中英文)SM01 Lock transactions 锁定事务BCHK DE example (SAP tournaments) DE举例(SAP竞赛)FAX1 BC sample SAP DE 2.1 BC 示例SAP DE 2.1FAX2 BC sample 2 SAP DE 2.1 BC样品2SAP DE 2.1SFAX BC Sales BC销售ST01 System Trace 系统轨迹ST11 Display Developer Traces 开发轨迹显示STDA Debugger display/control (server) 调试显示/控制(服务器) STDC Debugger output/control 调试输出/控制STDU Debugger display/control (user) 调试显示/控制(用户)@@D Debugger -> Documentation 调试程序-> 文档@@E Debugger -> ABAP Editor 调试程序-> ABAP 编辑器@@O Debugger -> Repository Browser 调试程序-> 仓库浏览器@@S Debugger -> Screen Painter 调试程序-> 屏幕制作器ICON Display Icons 显示图标SAMT ABAP Program Set Processing ABAP 程序集处理SICK Installation Check 安装检查SLIN ABAP: Extended Program Check ABAP: 扩展程序检查SM28 Installation Check 安装检查SM58 Asynchronous RFC Error Log 异步RFC 错误日志SM59 RFC Destinations (Display/Maintain) RFC终点(显示/维护)SMT1 Trusted Systems (Display <-> Maint.) 信赖系统(显示<-> 维护) SMT2 Trusting systems (Display <->Maint.) 信任系统(显示<->维护) SSMT Modification 2.2 --> 3.0 修改2.2 --> 3.0ST22 ABAP/4 Runtime Error Analysis ABAP/4 运行时错误分析SUB% Internal call: Submit via commnd fld 内部调用: 通过命令fld 提交SYNT Display Syntax Trace Output 显示语法跟踪输出SE33 Context Builder 环境生成程序SE30 ABAP Runtime Analysis ABAP 实时分析LOPI LOOP AT internal ABAP table 内部ABAP/4 表格中的循环LOPJ LOOP AT internal ABAP table 内部ABAP/4 表格中的循环RJ10 Test Batch Input (large) 测试批输入(大量)RJ11 Test Batch Input (large) 测试批输入(大量)SHDB Record batch input 记录批输入SM35 Batch Input Monitoring 批输入监控CLJP Specify Japanese calender 指定日语日历SE73 SAPscript font maintenance (revised) SAPscript 字体维护(修订的)SE74 SAPscript format conversion SAPscript 格式转化SE75 SAPscript Settings SAPscript 设置SE76 SAPscript: Form Translation SAPscript: 翻译格式SE77 SAPscript Translation Styles SAPscript 翻译样式SO10 SAPscript: Standard Texts SAPscript:标准文本SE71 SAPscript form SAP脚本格式SE72 SAPscript styles SAPscript 样式SARP Reporting (Tree Structure): Execute 报表(树结构):执行SART Display Report Tree 显示报表树SERP Reporting: Change Tree Structure 报表:修改树结构SA38 ABAP reporting ABAP 报表SA39 SA38 for Parameter Transaction SA38为参数传送SAR0 Display Standard Reporting Tree 显示标准报告树SC38 Start Report (Remote) 启动报表程序(远程)SE32 ABAP/4 Text Element Maintenance ABAP/4 文本元素维护SM38 Queue Maintenance Transaction 队列维护事务SRCN Delete country-specific reports 删除指定国家报表SQ00 ABAP/4 Query: Start Queries ABAP/4 询问: 开始询问SQ01 ABAP/4 Query: Maintain Queries ABAP/4 询问: 维护询问SQ02 ABAP/4 Query: Maintain Funct. Areas ABAP/4 查询: 维护功能区SQ03 ABAP/4 Query: Maintain User Groups ABAP/4 查询: 维护用户组SQ07 ABAP/4 Query: Language Comparison ABAP/4 查询:语言比较SE11 ABAP/4 Dictionary Maintenance ABAP/4 字典维护SE12 ABAP/4 Dictionary Display ABAP/4 字典显示SE80 Repository Browser 资源库浏览器SE81 Application Hierarchy 应用层次SE82 Application Hierarchy 应用层次SEU Repository Browser 资源库浏览器SE39 Splitscreen Editor: Program Compare 分屏编辑器: 程序比较SE38 ABAP Editor ABAP 编辑器SE40 MP: Standards Maint. and Translation MP:标准维护和翻译SE41 Menu Painter 菜单制作SE43 Maintain Area Menu 保持区域菜单本文来自CSDN博客,转载请标明出处:/chfeijj/archive/2007/10/24/1842094.aspx关于BAPI(2007-06-11 15:41:33)1 BAPI的优点bapi是面向对象的设计;bapi是固定的,一般不能修改;bapi可以被sap内部部件和非sap程序使用;bapi的成功和错误信息始终通过RETURN返回;bapi可以被许多开发平台使用;2 何时该考虑使用BAPI设计程序用VB/JAVA?C++等语言编写非SAPGUI程序访问和处理sap数据;SAP不同部件之间通讯;与非sap程序或者老系统交换数据:使用异步通信分发数据如:ALE可以通过SAP Business Connector or Internet Application Components 与因特网程序集成;3 关于RETURNRETURN用于BAPI返回错误和成功的消息,它可以是BAPIRETURN,BAPIRETURN,BAPIRET1,BAPIRET2和BAPIRET2_FIX中的一种类型.这些结构一般都包括以下字段:4 BAPI的程序框架Log on(Source code)Call BAPI(Source code)Call BAPI(Source code)Call BAPI BapiService.TransactionCommit()(Source code)Call BAPI(Source code)Call BAPI(Source code)Call BAPI BapiService.TransactionCommit()(Source code)Log off5 相关函数'BALW_BAPIRETURN_GET2':取生成返回消息CALL FUNCTION 'BALW_BAPIRETURN_GET2' EXPORTINGTYPE = 'E'CL = 'BC_BOR'NUMBER = 163PAR1 = MSG1_HLPPAR2 = MSG2_HLPIMPORTINGRETURN = RETURN.BAPI_TRANSACTION_COMMIT 和API_TRANSACTION_ROLLBACK:BAPI 事务函数BUFFER_SUBSCRIBE_FOR_REFRESH和BUFFER_REFRESH_ALL: 缓冲区处理函数'TRANSACTION_BEGIN ,'TRANSACTION_STATUS' 和'TRANSACTION_END' 的调用示例call function 'TRANSACTION_BEGIN' "94702/KBimporting "94702/KBtransaction_id = transaction_id "94702/KBexceptions "94702/KBothers = 1. "94702/KBcall function 'BAPI_PO_CREATE' "94702/KBexporting "94702/KBpo_header = po_head "94702/KBimporting "94702/KBpurchaseorder = h_ebeln "94702/KBtables "94702/KBpo_items = po_item "94702/KBpo_item_schedules = po_sched "94702/KBpo_item_account_assignment = po_acct "94702/KBpo_item_text = po_text "94702/KBreturn = return "94702/KBexceptions "94702/KBothers = 0. "94702/KBcall function 'TRANSACTION_STATUS' "94702/KBimporting "94702/KBstatus = status_of_transaction "94702/KBexceptions "94702/KBothers = 1. "94702/KBif status_of_transaction = commit_work. "94702/KBcommit work and wait. "94702/KBendif. "94702/KBcall function 'TRANSACTION_END' "94702/KBexporting "94702/KBtransaction_id = transaction_id "94702/KBexceptions "94702/KBothers = 1. "94702/KB一些bapi 对应tcode***************************************************************************** 贴一段程序帮助编写bapi* BAPI Logic for sales order creation*---------------------------------------------------------------* Header dataPERFORM FILL_ORDER_HEADER_CHANGE USING ORDER_HEADER_INORDER_HEADER_INXLS_SORDER.* PartnerPERFORM FILL_PARTNER_CHANGE TABLES PARTNERCHANGESPT_ITEMSUSING LS_SORDER.* ItemsPERFORM FILL_ORDER_ITEM_CHANGE TABLES ORDER_ITEMS_INORDER_ITEMS_INXPT_ITEMS.* Price conditionIF PS_SORDER-MIG_FLG = ' '.PERFORM FILL_CONDITIONS_CHANGE TABLES CONDITIONS_INCONDITIONS_INXPT_ITEMSUSING LS_SORDER. ELSE.CONDITIONS_IN[] = PT_CONDTION[].CONDITIONS_INX[] = PT_CONDTIONX[].ENDIF.CALL FUNCTION 'BAPI_SALESORDER_CHANGE'EXPORTINGSALESDOCUMENT = LS_SORDER-VBELNORDER_HEADER_IN = ORDER_HEADER_IN (抬头数据)ORDER_HEADER_INX = ORDER_HEADER_INXTABLESRETURN = PT_RETURNORDER_ITEM_IN = ORDER_ITEMS_INORDER_ITEM_INX = ORDER_ITEMS_INXCONDITIONS_IN = CONDITIONS_INCONDITIONS_INX = CONDITIONS_INXPARTNERCHANGES = PARTNERCHANGES.READ TABLE PT_RETURN WITH KEY TYPE = 'S'ID = 'V1'NUMBER = '311'.IF SY-SUBRC EQ 0.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGWAIT = 'X'.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.ENDIF.************************************************************** 更改订单文本信息的bapilt_order_header_inx-updateflag = 'U'.APPEND lt_order_header_inx.CONDENSE gt_out-headtext.lt_order_text-doc_number = lt_salesdocument.lt_order_text-text_id = 'Z002'.lt_order_text-langu = 1.lt_order_text-text_line = gt_out-headtext.APPEND lt_order_text.CALL FUNCTION 'BAPI_SALESORDER_CHANGE'EXPORTINGsalesdocument = lt_salesdocumentorder_header_inx = lt_order_header_inxTABLESreturn = lt_returnorder_text = lt_order_text.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'.*****************************************************************************Transaction BAPIMM01 BAPI_MATERIAL_SAVEDATAMM02 BAPI_MATERIAL_SAVEDATAVA01 BAPI_SALESORDER_CREATEFROMDAT2VA02 BAPI_SALESORDER_CHANGEME21/ME21n BAPI_PO_CREATE1ME22/ME22n BAPI_PO_CHANGEME51 BAPI_REQUISITION_CREATEAS01 BAPI_FIXEDASSET_CREATE1AS02 BAPI_FIXEDASSET_CHANGE发表于@ 2010年07月30日本文来自CSDN博客,转载请标明出处:/chfeijj/archive/2010/07/30/5775974.aspx人事BAPI 及RT 表的取法收藏LOOP AT it_tab.CALL FUNCTION 'CU_READ_RGDIR'EXPORTINGpersnr = it_tab-pernr "gs_pernr-pernrIMPORTINGmolga = p_molgaTABLESin_rgdir = it_rgdirEXCEPTIONSno_record_found = 1.LOOP AT it_rgdir WHERE fpper = p_date.MOVE it_rgdir-seqnr TO it_tab-seqnr.MODIFY it_tab.ENDLOOP.* READ TABLE it_rgdir INDEX 1.CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'EXPORTINGemployeenumber = it_tab-pernr "gs_pernr-pernrsequencenumber = it_rgdir-seqnr "it_tab-seqnrCHANGINGpayroll_result = it_payrollEXCEPTIONSillegal_isocode_or_clusterid = 1error_generating_import = 2import_mismatch_error = 3subpool_dir_full = 4no_read_authority = 5no_record_found = 6versions_do_not_match = 7error_reading_archive = 8error_reading_relid = 9OTHERS = 10.IF sy-subrc <> 0.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.SORT it_payroll-inter-rt BY lgart ASCENDING.LOOP AT it_payroll-inter-rt INTO st_payroll WHERE lgart = '1001'. " 1001基础工资it_tab-paym = it_tab-paym + st_payroll-betrg.ENDLOOP.LOOP AT it_payroll-inter-rt INTO st_payroll WHERE lgart = '1002'. " 1002岗位工资it_tab-paym = it_tab-paym + st_payroll-betrg.ENDLOOP.LOOP AT it_payroll-inter-rt INTO st_payroll WHERE lgart = '1003'. " 1003房贴it_tab-paym = it_tab-paym + st_payroll-betrg.ENDLOOP.LOOP AT it_payroll-inter-rt INTO st_payroll WHERE lgart = '1004'. " 1004车贴it_tab-paym = it_tab-paym + st_payroll-betrg.ENDLOOP.LOOP AT it_payroll-inter-rt INTO st_payroll WHERE lgart = '1004'. " 1005书报费it_tab-paym = it_tab-paym + st_payroll-betrg.ENDLOOP.MODIFY it_tab.IF it_tab-slmax <> it_tab-slmin.it_tab-avem = ( it_tab-paym - it_tab-slmin ) / ( it_tab-slmax - it_tab-slmin ).ENDIF.MODIFY it_tab.* “现薪资”-“所属职级最低薪资”)/(”所属职级最高薪资”-“所属职级最低薪资”)ENDLOOP.本文来自CSDN博客,转载请标明出处:/chfeijj/archive/2009/09/11/4542618.aspxBADI 收藏BADI作为SAP的第三代用户出口,他的应用也越来越广泛,但如何找到合适的badi是许多abap程序员的困惑。
ABAP基础知识(完整版)-上SAP ABAP / 4 基础知识学习数据类型C :字符串D :日期型格式为YYYYMMDD 例:'1999/12/03'F : 浮点数长度为8I :整数N :数值组成的字符串如:011,'302'P : PACKED数用于小数点数值如:12.00542T : 时间格式为:HHMMSS 如:'14:03:00'X : 16进制数如:'1A03'*-------------------------------------------------------------------------------------*变量声明DATA <F> [<Length>] <type> [<value>][decimals]<F> 变量名称<length><type> 变量类型及长度<value> 初值<decimals> 小数位数exp:DATA : COUNTER TYPE P DECIMALS 3.NAME(10) TYPE C VALUE 'DELTA'.S_DATE TYPE D VALUE '19991203'.exp:DATA : BEGIN OF PERSON,NAME(10) TYPE C,AGE TYPE I,WEIGHT TYPE DECIMALS 2,END OF PERSON.另外,有关DATA声明的指令还有: CONSTANTS(声明常数)、STATICS(临时变量声明).exp:CONSTANTS PI TYPE P DECIMALS 5 VALUE '3.14159'.STATICS 关键字声明的变量仅在目前的程序中使用, 结束后会自动释放语法:STATICS <c> [<length>] <type> [<value>] [<decimals>]系统专用变量说明系统内部专门创建了SYST这个STRUCTURE,里面的栏位存放系统变量,常用的系统变量有: SY-SUBRC: 系统执行某指令后,表示执行成功与否的变量,'0'表示成功SY-UNAME: 当前使用者登入SAP的USERNAME;SY-DATUM: 当前系统日期;SY-UZEIT: 当前系统时间;SY-TCODE: 当前执行程序的Transaction codeSY-INDEX: 当前LOOP循环过的次数SY-TABIX: 当前处理的是internal table 的第几笔SY-TMAXL: Internal table的总笔数SY-SROWS: 屏幕总行数;SY-SCOLS: 屏幕总列数;SY-MANDT: CLIENT NUMBERSY-VLINE: 画竖线SY-ULINE: 画横线TYPE 关键字用来指定资料型态或声明自定资料型态Example:TYPES: BEGIN OF MYLIST,NAME(10) TYPE C,NUMBER TYPE I,END OF MYLIST.DATA LIST TYPE MYLIST.LIKE 关键字跟TYPE关键字使用格式相同, 如DATA TRANSCODE LIKE SY-TCODE.不同的是LIKE 用在已有值的资料项, 如系统变量, 而TYPE关键字则是用在指定资料型态。
abap 面向对象实例化参数在ABAP中,面向对象编程是一种强大的编程范例,它允许开发人员使用面向对象的概念来构建灵活且可重用的代码。
在面向对象编程中,实例化是创建一个类的实例或对象的过程。
在ABAP中,你可以使用关键字CREATE OBJECT来实例化一个类的对象。
下面是一个简单的示例:ABAP.DATA: lo_object TYPE REF TO zcl_demo_class.CREATE OBJECT lo_object.EXPORTING.parameter1 = value1。
parameter2 = value2.在这个示例中,我们首先声明了一个指向ZCL_DEMO_CLASS类的引用变量LO_OBJECT。
然后,我们使用CREATE OBJECT语句实例化了这个类的对象,并向构造方法传递了参数PARAMETER1和PARAMETER2的值。
另外,在实例化对象时,你也可以选择不传递任何参数,这取决于类的构造方法的定义。
在ABAP中,构造方法是一种特殊的方法,用于在实例化对象时执行一些初始化操作。
除了使用CREATE OBJECT语句外,你还可以使用NEW关键字来实例化对象,例如:ABAP.lo_object = NEW zcl_demo_class( parameter1 = value1。
parameter2 = value2 ).在这个示例中,我们使用NEW关键字实例化了ZCL_DEMO_CLASS类的对象,并传递了参数PARAMETER1和PARAMETER2的值。
总的来说,在ABAP中,你可以使用CREATE OBJECT或NEW关键字来实例化一个对象,并根据类的定义传递相应的参数。
这样就可以在面向对象编程中灵活地使用类和对象来构建可重用的代码。
第五章ABAP对象在SAP R/3 4.0之前的版本中,ABAP是完全面向过程的语言,ABAP对象是面向对象技术在ABAP语言中的实现,在R/3 4.0后逐步引入到SAP系统。
5.1面向对象基础5.1.1 面向对象概念面向对象(OBJECT ORIENTATION,OO)是IT领域中的重要概念之一。
面向对象的程序设计(OBJECT-ORIENTED PROGRAMMING,OOP)是以模拟现实世界中的对象为问题解决方案的一种软件设计思想。
1、对象和类对象(object)是包含数据并提供服务的程序代码段,其中数据部分代表该对象的属性(attribute,相当于某些OOP书籍中的数据成员),而所提供的服务则被称为方法(method,有些书中称之为操作openation或函数function,或成员函数)。
一般来说,方法用于操作对象内部私有数据(即对象的属性,代表该对象的当前状态),以显示或改变这个状态。
对象的属性不能被外部用户直接访问,而只能通过方法进行,这保证了对象本身的内部一致性。
类(class)是对象的定义,通过属性和方法的封闭来描绘对象。
从技术的角度来看,对象是程序中类的实例(instances),在运行时环境中根据类的说明生成。
类和类的实例(即对象实体)是一对多关系。
在程序中,对象的识别和寻址是通过对象引用来实现的,对象引用变量可以访问对象的属性和方法。
2、面向对象的基本要素面向对象的程序设计一般具有下列特性:1)封装(encapsulation)对象可以对其内部资源(包括属性和方法)的可见性(visibility)进行限定,每一个对象都有一个接口,决定了其他对象如何与之相互作用。
整个对象的实现过程是封装起来的,在该对象外部不可见。
2)多态(polymorphism)指相同名称的方法在不同的类中呈现不同的行为。
面向对象中的对象和外部存在接口,通过接口可以访问不同类的对象中同名的方法。
其意义在于,对于外部用户来说,这些对象的接口是一致的,然而对象本身将根据其实际所属的类选择正确的行为实现。
*&-------------------------------------------------------------------*& ABAP 面向对象学习笔记—(三)接口。
*&-------------------------------------------------------------------REPORT ZBCRP_OO_LYB_04.
INTERFACE f0.
" 接口中不能设定成员的权限领域(可见性).或者说接口的组件总是public的
* CLASS-METHODS static_meth. "接口中可以声明静态成员
METHODS meth IMPORTING msg TYPE string OPTIONAL.
DATA str TYPE string.
" 接口中的变量不能用value给值。
而常量可以。
CONSTANTS cons TYPE string VALUE '常量'.
ENDINTERFACE.
"接口只声明方法,不实现方法,没有implementation部分。
CLASS c1 DEFINITION. "不能使用INHERITING FROM 继承接口。
PUBLIC SECTION.
METHODS: outp.
INTERFACES: f0.
" 只能在PUBLIC SECTION中声明要使用接口;可以声明多个接口。
" 可以用aliases..for..语句,为接口的每个组件指定别名,方便访问。
" 别名只能被当前类和实例访问。
ALIASES meth0 FOR f0~meth.
ENDCLASS.
CLASS c1 IMPLEMENTATION.
METHOD f0~meth. " 可以使用别名meth0
WRITE:/, msg.
ENDMETHOD.
METHOD outp.
WRITE:/, 'test' .
ENDMETHOD.
ENDCLASS.
CLASS c2 DEFINITION.
PUBLIC SECTION.
INTERFACES: f0.
ENDCLASS.
CLASS c2 IMPLEMENTATION.
METHOD f0~meth.
WRITE:/,msg.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
DATA ref0 TYPE REF TO f0. "定义接口的引用
DATA ref1 TYPE REF TO c1.
DATA ref2 TYPE REF TO c2.
CREATE OBJECT: ref1, ref2.
"把不同的对象分别赋给接口的引用——多态性的体现。
ref0 = ref1.
ref0->meth('C1使用接口').
ref0 = ref2.
ref0->meth('C2使用接口').
" 接口的引用只能调用它自身所声明了的组件。
" 类中新定义的组件,对接口(的引用)是不可见的。
" 打开下面这句将会报错。
* ref0->outp( ).
"下面三种调用METHOD的写法是等效的:
CALL METHOD ref1->meth0 EXPORTING msg = 'test'. CALL METHOD ref1->meth0( 'test').
ref1->meth0( 'test' ). "最简形式。
" 如果要传递多个参数,可以这样写:
" ref1->meth0( p1 = f1 p2 = f2..) .
" 目前ABAP对圆括号的定义尚未规范化:
" 括号与参数间可能需要空格,也可能不用空格。
" 具体用的时候多尝试即可。
*" 组件没有别名时,可以用波浪号访问
*ref1->f0~meth( ).。