SAP最佳业务实践-ABAP开发规范
- 格式:ppt
- 大小:496.50 KB
- 文档页数:10
编程规X版本<1.1> 修订历史记录目录一、编码规则31.程序命名规则31.1 报表规则31.2 子程序规则31.3 Include规则41.4 Query/CATT规则41.5 Form规则41.6 Smartform规则41.7 Function规则41.8 Function Group规则51.9 SCREEN规则52.内部定义规则53.消息类64.SAP SCRIPT6二、程序规则71.程序属性的设置72.文本元素73.程序结构73.1 即时报表程序/批处理程序73.2 Dialog 程序83.3 共通模块93.4 模块化处理93.5 FORM/内部子程序103.6 缩进103.7 注释103.8 变量定义的规则133.9 SQL文规则143.10 其它内容17三、Tcode命名规则18四、性能相关规则181.数据库层182.应用层21一、编码规则1.程序命名规则1.1 报表规则格式:Z程序类型_模块名称_序列号程序类型: RPT模块名称:模块名称(MM/PP/FI/CO/SD……)序列号: 程序简称(6个字符)例: ZRPT_SD_STOALV如有特殊情况,可加版本号例: ZRPT_SD_STOALV_V11.2 子程序规则格式:Z程序类型_模块名称_序列号程序类型:SUB模块名称:模块名称(MM/PP/FI/CO/SD……)序列号: 程序简称(6个字符)例: ZSUB_SD_STOALV1.3 Include规则格式:Z程序类型_模块名称_序列号程序类型:INC模块名称:模块名称(MM/PP/FI/CO/SD……)序列号:程序简称(6个字符)例: ZINC_SD_STOALV1.4 Query/CATT规则格式:Z程序类型_模块名称_序列号程序类型:QUE/CAT:Query/CATT模块名称:模块名称(MM/PP/FI/CO/SD……)序列号:简称(6个字符)例: ZQUE_SD_STOALV / ZCAT_SD_STOALV 1.5 Form规则格式:Z程序类型_模块名称_序列号程序类型:FRM模块名称:模块名称(MM/PP/FI/CO/SD……)序列号:简称(6个字符)例: ZFRM_SD_STOALV1.6 Smartform 规则格式:Z程序类型_模块名称_序列号程序类型: SMF模块名称:模块名称(MM/PP/FI/CO/SD……)序列号:简称(6个字符)例: ZSMF_SD_STOPRT1.7 Function规则格式:Z程序类型_模块名称_序列号程序类型:FUN模块名称:模块名称(MM/PP/FI/CO/SD……)序列号: 程序简称(6个字符)例: ZFUN_SD_STOALV1.8 Function Group规则格式:Z程序类型_模块名称_序列号程序类型:FUG模块名称:模块名称(MM/PP/FI/CO/SD……)序列号:程序简称(6个字符)例: ZFUG_SD_STOALV 1.9 SCREEN规则格式:Z程序类型_模块名称_序列号程序类型:SCR模块名称:模块名称(MM/PP/FI/CO/SD……)序列号: 程序简称(6个字符)例: ZSCR_SD_STOALV2.内部定义规则⏹TYPES定义:TYP_ (※最长30字节)⏹内表定义全局:TAB_G_ (※最长30字节)⏹局部: TAB_L_ (※最长30字节)⏹参数调用内表定义:L_TAB_ (※最长30字节)⏹工作区全局:REC_G_ (※最长30字节)⏹局部: REC_L_ (※最长30字节)⏹参数调用工作区:L_REC_(※最长30字节)⏹PARAMETERS:P_ (※最长8字节)⏹SELECT-OPTIONS :S_ (※最長8字节)⏹变量(含全局变量):G_ (※最长8字节)⏹:G_T_⏹:G_FLG_⏹:G_KBN_⏹常量:G_C_ (※最长30字节)⏹变量(参数调用) :L_ (※最长30字节)⏹:L_T_ counter⏹:L_FLG_ flag⏹常量(参数调用):L_C_ (※最长30字节)⏹RANGE:RG_ (※最长30字节)⏹Form 传递参数:L_P_ (※最长30字节)⏹Filed symbol(文件符号) :<FS_ >(※最长30字节)3.消息类3.1 消息类名固定以字母”Z”开头,形式为Z+模块名称nnn(以程序所属的功能模块划分消息类,如MM模块相关的消息类就以‘ZMM’开头)3.2 Type:A:终止当前事务E:错误,系统等待新输入数据I:信息,处理ENTER 之后,系统继续处理S:确认,消息出现在下一屏上W:警告,可以更改输入数据或通过按ENTER 继续3.3 消息号nnnnnn为000-999连续数字。
BPC以及最佳实践SAP BPC Roadmap详解⼀常⽤术语SAP BPC: SAP Business Planning and ConsolidationSAP BPC NW: SAP NetWeaver versionSAP BPC MS: SAP BPC Microsoft platform versionSAP BI –IP: BI Integrated PlanningBPS: Business Planning & SimulationSAP BPF: SAP Business Process FlowSAP ECC: SAP ERP Central ComponentBPC-UX/Client: BPC User Experience (Microsoft Excel, Word, PowerPoint and Web)ETL: Extract, Transform, Load, a data warehousingprocess/Layer.BPC Ramp-up version: pre-release version. ⼆ BPC history / platform /Road map· BPC, version for the Microsoft Platform (4.2 M, 5.1 M, and 7.0 M)· BPC, version for SAP NetWeaver(7.0 NW)· BPC Road map· 24 Apr 2009 : NW 7.0三 BPS MS平台架构使⽤的基础服务· MS SQL Server· MS SSAS (Analysis Services)· MS SSRS (Reporting Services)· MS SSIS (DTS)· .NET 1.1 Framework/Application Server· Web Server (IIS)· FileShare 四 NW平台架构五 MS 7与NW 7的版本区别BPC MS and NW version Technical Terms (组件)MSNWMS SQL ServerNetWeaver Database (MS SQL, Oracle, etc)MS Analysis ServicesNetWeaver BI OLAP engineMS SQL Server Management StudioABAP Dictionary / BI Admin WorkbenchSQL Server Integration Services (SSIS)Process ChainsMS Reporting ServicesBusiness Explorer Report DesignerInternet Information Services (IIS)NetWeaver Web Application ServerBPC MS and NW version Technical Terms (其他)MSNWApplicationApplication InfoProviderDimensionInfoObjectMemberCharacteristic ValuePropertyAttributeEvDescriptionTextsSignedDataKeyFigureMeasuresCalculated Key Figures六BPC的三种解决⽅案⽅案 1 (MS + BI) ⽅案 2 (BPC+BI) ⽅案 3 (MS+ETL) BPC安装及配置的常见问题⼀,BPC安装的环境要求:A. 服务器安装要求 ABAP应⽤服务器 -NW BI 7.0EHP1 -任何NW 所⽀持的数据库系统 -任何NW所⽀持的操作系统 .NET应⽤服务器 -操作系统:Windows Server2003,Enterprise Edition(32-bit x86), Windows Server2003, Enterprise x64 Edition Web服务器 -Microsoft IIS 6.0,Microsoft IIS 7.0B. 客户端安装要求⽀持Windows XP(32-bit), WindowsVista(32-bit&64-bit), Windows 7(32-bit&64-bit)BPC Web⽀持浏览器:IE6,IE7,IE8BPC Office⽀持:Office2003(推荐使⽤), framework 1.1⼆,BPC安装以后常见问题及配置:1, BPC Web界⾯⾸次登录,安装OSoftProcess插件,安装以后,才能正常显⽰所有客户端图标;2, BPC Excel表单中开发⾃定义代码去调⽤后台⼆次开发程序时,需要安装SAPGUI,否则在运⾏CreateObject("SAP.Functions.unicode")时会不能创建此对象;3, 设置excel安全性为低,由于BPC Excel端需要⽀持宏,进⾏设置会避免每次登录Excel客户端时都弹出安全提⽰。
ABAP开发规范目录1ABAP对象命名规范 (5)1.1开发类 (5)1.2程序名 (5)1.3数据字典 (6)1.3.1表/结构/数据元素/域 (6)1.3.2表类型 (6)1.3.3范围表类型 (6)1.3.4搜索帮助 (6)1.3.5锁对象 (6)1.4函数组及函数模块 (7)1.4.1函数组 (7)1.4.2函数模块 (7)1.5BADI实施 (7)1.6消息类 (8)1.7类 (8)1.8SMARTFORM (8)1.9自定义权限对象 (8)1.10E NHANCEMENT PROJECT (8)1.11W EB S ERVICE命名 (8)1.12P ROXY 命名 (9)2通用ABAP代码规范 (10)2.1代码格式 (10)2.1.1Pretty Printer (10)2.1.2Spacing (10)2.1.3代码行 (11)2.1.4代码注释 (12)2.2程序变量 (12)2.2.1变量使用说明 (12)2.2.2命名规范 (13)2.2.3常量 (14)2.2.4全局变量 (16)2.2.5内表/结构 (17)2.2.6文本变量 (19)2.3常用语句格式 (20)2.3.1Message (20)2.3.2Call function (20)2.3.3Perform (20)2.3.4Select (21)2.3.5IF (22)2.3.6CHECK (22)2.3.7LOOP (23)2.3.8READ (24)2.3.9WHILE (24)2.3.10DO (24)2.3.11CASE (25)2.3.12CONCATENATE (26)3报表程序规范 (27)3.1程序结构 (27)3.1.1数据初始化子程序 (29)3.1.2数据存取子程序 (30)3.1.3数据处理子程序 (30)3.1.4数据组合子程序 (31)3.1.5数据输出子程序 (32)4子程序规范 (33)4.1模块化代码 (33)4.2参数 (34)4.2.1参数命名 (34)4.2.2参数类型 (34)4.2.3Table参数 (34)4.2.4参数个数要求 (35)4.2.5参数对齐 (37)4.3子程序结构 (37)4.4P ERFORM语句 (38)4.5子程序注释 (39)5功能模块规范 (40)5.1函数模块结构 (40)5.2函数返回值 (40)5.3函数调用 (40)6屏幕对话程序规范 (42)6.1屏幕逻辑流结构 (42)6.2PAI/PBO/POV模块 (43)6.2.1User-command模块 (44)7BADI增强规范 (47)8CMOD增强规范 (49)9BTE增强规范 (50)10程序性能相关代码规范 (51)10.1SQL语句 (51)10.2内表操作 (56)10.3其他语句 (64)10.3.1CASE语句 (64)10.3.2WHILE语句 (64)10.3.3比较语句 (65)附录 (66)1.1SAP业务模块命名表 (66)1.2数据字典对象类型命名表 (66)版本控制1ABAP对象命名规范1.1开发类Z<XX>_<Short text><XX>-业务模块,见附录1<Short text>-简短描述,英文1.2程序名Z<XXY>_<Short text><XX>-业务模块,见附录1<Y>-程序类型代码<Short text>-简短描述,英文注:用于特定程序的include程序按以下方式命名:<主程序名>_<Xnn>, nn-两位流水码1.3数据字典1.3.1表/结构/数据元素/域Z<TXX>_<Short text><T>-数据字典对象类型,参见附表2<XX>-业务模块,见附录1<Short text>-简短描述,英文1.3.2表类型[Z_]<structure >_T[Z_]-如果< structure >名称以Z开头,则可省略<structure>-使用的结构名1.3.3范围表类型[Z_]<dataelement>_T[Z_]-如果<dataelement>名称以Z开头,则可省略<dataelement>-使用的数据元素名1.3.4搜索帮助Z<XX>_SH_<Short text><XX>-业务模块,见附录1<Short text>-简短描述,英文1.3.5锁对象E[Z] <tablename>[Z]-如果<tablename>名称以Z开头,则可省略<tablename>-表名1.4函数组及函数模块1.4.1函数组Z<XX>_<nn><XX>-业务模块,见附录1<nn>-两位流水码1.4.2函数模块<FunctionGroup>_<Short text><FunctionGroup>-函数模块所在的函数组名< Short text >-函数基本功能的短文本1.5BADI实施a) Custom Business Add-inZ<XX>_BADI_< Short text><XX>-业务模块,见附录1< Short text >-BADI 定义的名称b) Custom Business Add-in ImplementationZ<XX>_BADIM_< Short text><XX>-业务模块,见附录1< Short text >-BADI 定义的名称c) SAP Business Add-in ImplementationZ<XX>_IMPL_< Short text><XX>-业务模块,见附录1< Short text >-BADI 定义的名称d) SAP BADI Method< Short text >-自由定义,但有意义,简单描述该方法实现的功能1.6消息类Z<XX>_<nn><XX>-业务模块,见附录1< Short text >-简短描述,英文1.7类Z<XX>_<Short text><XX>-业务模块,见附录1<Short text>-简短描述,英文1.8SMARTFORM[Z]<Reportname>_<Short text>[Z]-如果<Reportname>名称以Z开头,则可省略<Short text>-简短描述,英文1.9自定义权限对象Z<XX>_<Short text><XX>-业务模块,见附录1<Short text>-简短描述,英文1.10Enhancement projectZ<XX><nnnn><XX>-业务模块,见附录1<nnnn>-四位流水码1.11Web Service命名ZWS<XX>_<Short text><XX>-业务模块,见附录1<Short text>-简短描述,英文1.12Proxy 命名Z<XX>_<Short text><XX>-业务模块,见附录1<Short text>-简短描述,英文2通用ABAP代码规范2.1代码格式2.1.1 Pretty Printer所有程序代码应使用pretty printer功能进行规范,包含:代码缩进;关键字大写,其余小写。
Internal Table内表王钊/HyWise2008.11.18变更记录初次发布1.02008-11-18王钊Detail contentsVersion Date Producer什么是内表•ABAP中的内表相当于其他程序设计语言中的二维数组,存储多行结构相同的数据•不同于二维数组,内表在创建后,列结构与列数是固定不变的,而行数是动态增长的•内表支持循环对每行数据进行操作,也支持整体操作•内表是具有行和列的表结构,然而,不同于数据库表,内表仅在程序运行期间在内存中存储数据•ABAP中有三种内表类型:标准表,哈希表,排序表(本手册只介绍常用的内表类型—标准表)内表数据类型•内表数据对象是实际的内表,可以用数据进行填充•内表数据类型是用于定义内表数据对象的抽象数据类型(ADT)•可以使用的内表数据类型有:•Structure•数据库表•用户自定义数据类型•使用Structure类型•DATA <itab> TYPE (STANDARD)TABLE OF <structure>.•如:•使用数据库表•DATA <itab> TYPE (STANDARD)TABLE OF <DB Table>.•如:•使用用户自定义数据类型•首先定义数据类型•TYPES:BEGIN OF <type>,•<field1>,•<field2>,•……•END OF <type>.•然后定义内表•DATA <itab> TYPE (STANDARD)TABLE OF <type>.•如:•内表是按行进行访问的,然而,程序对内表的行操作不能直接进行,必须使用一种接口来传输,这个接口就是工作区(Work Area)•工作区对内表的行必须是可转换的,出于安全性考虑,为了保持数据一致性,建议工作区与内表行具有相同的结构•语法:•DATA <wa> LIKE LINE OF <itab>.•如:•ABAP还提供了一种简单的工作区定义方式,即在创建内表对象的同时隐式地定义一个同名工作区,这个同名工作区就叫做表头行•语法:•在内表定义语句后追加关键字WITH HEADER LINE.•如:•使用带表头行的内表会给内表操作带来方便,但是会增加混淆,降低代码可读性•不带表头行的内表•APPEND <wa> TO <itab>.•如:•带表头行的内表•APPEND <itab>.•如:•不带表头行的内表•INSERT <wa> INTO [TABLE] <itab> [INDEX <idx>].•如:•带表头行的内表•INSERT [TABLE] <itab> [INDEX <idx>].•如:•不带表头行的内表•READ TABLE <itab> INTO <wa> INDEX <idx>.•如:•带表头行的内表•READ TABLE <itab> INDEX <idx>.•如:•不带表头行的内表•MODIFY <itab> FROM <wa> INDEX <idx>.•如:•带表头行的内表•MODIFY <itab> INDEX <idx>.•如:•带表头行与不带表头行语法一致•DELETE <itab> INDEX <idx>.•如:循环处理•LOOP语句可以顺序地逐行读取内表数据•在循环体中可以对工作区中的数据进行各种处理,如输出,运算等,也可以对内表行进行新增,修改,删除等操作•循环体中的MODIFY,DELETE等语句不必指定INDEX项,系统默认处理当前行•如果不需要读取所有的内表行,可以使用WHERE选项进行限制•不带表头行的内表•LOOP AT <itab> INTO <wa> [WHERE <conditions>].•……•<statement block>•……•ENDLOOP.•如:•带表头行的内表•LOOP AT <itab> [WHERE <conditions>].•……•<statement block>•……•ENDLOOP.•如:•注意:•在LOOP循环中,应当尽量避免对当前内表进行插入或填充操作,一旦循环终止条件遗漏,就会出现死循环•程序中出现死循环是ABAP程序开发的大忌,一定要引起重视!•不带表头行的内表•CLEAR <itab>.•带表头行的内表:•清空表头行:CLEAR <itab>.•清空表体:CLEAR <itab>[].•对于带表头行的内表,进行清空时,通常的做法是同时清空表体与表头行,可简写为:•CLEAR:<itab>, <itab>[].•根据默认关键字对内表进行排序•SORT <itab> [ASCENDING | DESCENDING] [AS TEXT].•ASCENDING和DESCENDING指定升序还是降序排列,如果不指定,缺省排序方式是升序•AS TEXT影响字符字段的排序方式,如果不使用该选项,系统将按字符平台相应内部编码进行排序,否则,系统根据当前语言按字母顺序排序字符字段•如:•根据指定字段对内表进行排序•SORT <itab> BY <field 1> [ASCENDING | DESCENDING] [AS TEXT]•……•<field n > [ASCENDING | DESCENDING] [AS TEXT].•如:删除重复行•第一步,对内表排序,使重复行相邻•第二步,删除相邻的重复行•DELETE ADJACENT DUPLICATES FROM <itab> [COMPARING <comp>].•如:•将内表中部分或全部的数据行整体插入另一内表(两个内表必须具有相同的或可转换的行结构)•INSERT LINES OF <itab1> [FROM n1] [TO n2] INTO [TABLE] <itab2> [INDEX <idx>].•如:•将内表中部分或全部的数据行整体填充到另一内表(两个内表必须具有相同的或可转换的行结构)•APPEND LINES OF <itab1> [FROM n1] [TO n2] TO <itab2>.•如:•按照条件或者索引删除一组选定行•DELETE <itab> [FROM n1] [TO n2] [WHERE <condition>].•如:•整体复制内表,目标内表原有内容被覆盖(两个内表必须具有相同的或可转换的行结构)•不带表头行的内表之间进行复制:•MOVE <itab1> TO <itab2>.•带表头行的内表之间进行复制:•MOVE <itab1>[] TO <itab2>[].•不带表头行的内表复制到带表头行的内表:•MOVE <itab1> TO <itab2>[].•带表头行的内表复制到不带表头行的内表:•MOVE <itab1>[] TO <itab2>.•如:•两个内表行结构不一致时,对同名的具有相同的或可转换结构的字段进行复制•在循环中使用MOVE-CORRESPONDING <wa1> TO <wa2>.语句将工作区wa1中的数据复制到wa2的同名字段中,然后进行压表操作•如:判断内表是否为空•第一步,获取内表行数•DESCRIBE TALBE <itab> LINES <count>.•第二步,判断行数<count>是否为0•如:。
ABAP 开发规范说明书修正历史此开发规范,是为了提高SAP系统上ABAP开发实施的高性能,一致性以及形式的统一性而制定,便于统一管理,阅读及简化后续更改难度.目录1 命名 (3)1.1.应用代码 (3)1.2.开发类别 (3)1.3.开发类(Package) (4)1.4.ABAP 自开发程序 (4)1.5.变量命名规约 (6)1.6.移送号管理 (8)1.7.消息类别 (8)2 注释 (9)2.1.修改代码注释 (9)2.2程序头部注释 (11)2.3表/结构定义时的注释 (11)2.4 Form的注释 (12)2.5 对于程序中,大段的逻辑处理的地方必须有注释 (12)3 规范打印机 (13)4 程序开发指导 (14)4.1. 一般规则 (14)4.2.模块化 (17)4.3.选择屏幕 (18)4.4.数据库读取,WHERE 语句 (18)4.5.内表 (20)4.6.性能考虑 (21)1 命名1.1.应用代码使用两位编码来对应应用程序模块,通常程序名的第二、三位反映此编码。
具体编码如下:1.2.开发类别程序名的第四位编码必须反映程序的类型,如下:接口I表单 F数据转换(主要指BDC/BAPI批导程序) BDialog功能开发 D1.3.开发类(PACKAGE)使用一个总的开发类1.4.ABAP 自开发程序程序命名规范1开发程序Z<A><B><C><D>10位字符组成,Z<A><B><C>为必须部分,<D>为附加部分。
Z:1位,固定文本,说明是客户定制化程序<A>: 2位,功能模块(FI/MM等)<B>:1位,程序类型(报表:R,批导:B)<C>:3位,流水码<D>: 3位,其它公司copy原有的程序时用,比如ZMMB014_JP2 COPY 标准程序Z + SAP原程序名3 包含程序对于一般程序的包含程序,使用和程序相同的程序名,加上<A>后缀<A>:3位,包含内容指示符<A>抬头,全局定义TOP功能模块form F+2位数字PAI事件I+2位数字PBO事件O+2位数字Ex: ZSDR0005F01或ZSDR005TOP4 函数组Z<C><NN>,其中<C>是2位功能模块,具体值参照前面,<NN>是3位流水码。
abap 开发手册ABAP(Advanced Business Application Programming)是一种用于SAP系统开发的编程语言。
作为SAP系统的核心开发语言,ABAP 在企业应用中起到了至关重要的作用。
本文将为您提供一份ABAP开发手册,帮助您了解ABAP的基本概念、语法规则以及常用的开发技巧。
一、ABAP简介ABAP是一种面向业务应用的高级编程语言,它基于SAP系统的数据结构和功能模块进行开发。
ABAP可以对SAP系统的各个模块进行定制,实现企业的业务需求。
ABAP开发可以包括数据处理、用户界面设计、报表生成等多个方面。
二、ABAP开发环境1. ABAP开发工具:SAP提供了专门的开发工具集,如ABAP Workbench和Eclipse ABAP Development Tools,用于ABAP程序的创建和管理。
2. ABAP编辑器:开发人员可以使用ABAP编辑器编写ABAP程序代码,并完成调试和维护工作。
3. 数据字典:数据字典是ABAP开发中用于定义和管理数据库结构的工具。
通过数据字典,开发人员可以创建和维护表、数据类型、域以及其他数据库对象。
三、ABAP语法规则1. 关键字和标识符:ABAP语言中有许多关键字,如IF、ELSE、LOOP等,用于实现程序逻辑。
开发人员可以使用自定义的标识符来命名变量、函数等。
2. 数据类型:ABAP提供了多种数据类型,包括整型、字符型、日期型等。
开发人员可以根据需要选择合适的数据类型。
3. 控制结构:ABAP支持各种控制结构,如条件语句(IF、CASE)、循环语句(DO、WHILE)等,用于实现程序的逻辑流程控制。
四、ABAP开发技巧1. 模块化开发:将程序分割成模块化的部分,提高代码的可读性和可维护性。
可以使用函数模块、方法、子程序等实现模块化开发。
2. 错误处理:在ABAP开发中,合理处理错误是至关重要的。
使用TRY...CATCH块、处理类等机制,可以有效捕捉并处理异常情况。
SAP-ABAP 程序开发宝典RFC&BAPI 篇一、FICO模块常用RFC&BAPI (3)SAP产生发票 (3)SAP修改发票 (9)获取会计科目的各期间余额 (10)固定资产主档创建 (11)固定资产主檔修改 (15)固定资产主档报废 (19)获取总帐科目余额 (21)获取定期存款信息 (22)创建定期存款主流程 (23)删除定期存款流程 (24)二、HR模块常用RFC&BAPI (26)QM的检查方法 (26)三、MM模块的常用RFC&BAPI (28)批量创建PR (28)修改PR (29)创建物料主数据 (31)创建PO (32)根据系统标准汇率实现金额转换 (34)获取物料特性值 (35)获取PO详细信息 (36)R EAD (S YSTEM-/U SER-)S TATUS E QUI (38)完成通知单 (39)设备编号查找通知单清单 (40)回转物料的异动类型 (42)删除独立预留单 (44)物料的过账操作 (45)修改独立预留单 (49)读取预留单ITEM信息 (53)显示物料文件的详细资料 (55)四、SD/PS模块常用RFC&BAPI (58)创建销售订单 (58)创建销售文件 (58)创建发票文件 (60)创建PGI (61)五、PM模块常用RFC&BAPI (62)获取通知单详细数据 (62)更改通知单:追加任务/活动/原因/合作伙伴等数据 (64)关闭通知单任务 (65)获取关联对象 (66)文档更新 (67)一、FICO模块常用RFC&BAPISAP产生发票-----BAPI_ACC_DOCUMENT_POST1.功能介绍:本BAPI主要是用于SAP系统的发票过账,通过该BAPI可以对GL、AP、AR、Assets等不同发票类型进行过账,主要根据过账码来区分。
2.注意事项:1)需要做Commit work;2)不同类型的发票传入的参数不同(详见使用范例以及常见问题)3.输入参数说明:4.输出参数说明:5.使用范例以及常见问题:1).GL---(PK: 40/50)SAP修改发票----- CHANGE_DOCUMENT1.功能介绍:本BAPI主要是用于修改会计发票,一般用于修改发票的描述性字段2.注意事项:1)在程序中调用时需要做Commit work;2)根据修改的内容不同,传入不同的参数3.输入参数说明:4.输出参数说明:5.使用范例以及常见问题:在程序中调用时,需要COMMIT WORK,否则会修改不成功获取会计科目的各期间余额------ BAPI_GL_GETGLACCPERIODBALANCES 1.功能介绍:本BAPI主要获取对应会计年度内某一科目的各期间余额。
SAPABAP程序性能优化SAPABAP是一种高级商务应用编程语言,用于在SAP系统中开发和定制程序。
在开发ABAP程序时,程序的性能是一个重要的考虑因素。
优化ABAP程序的性能可以提高系统的响应速度和吞吐量,提高用户体验,减少系统负载,延长硬件使用寿命并节省资源。
下面将介绍一些常见的优化技术和最佳实践。
1.使用合适的数据库访问方法:SAPABAP程序通常需要与数据库进行交互。
在数据库访问方面,使用合适的方法可以大大提高性能。
例如,使用SELECT语句并带有合理的WHERE条件可以减少检索的数据量。
使用内部表进行数据操作,而不是使用数据库表,可以避免不必要的数据库访问。
2.避免在循环中执行数据库访问操作:在循环中执行数据库访问是一个常见的性能瓶颈。
如果可能的话,尽量避免在循环中执行数据库访问操作。
可以将数据库操作放在循环外部,并使用适当的数据结构来处理数据,以减少数据库访问的次数。
3.使用合适的索引:索引是一种用于加速数据库查询操作的数据结构。
为数据库表添加适当的索引,可以减少查询操作的时间复杂度,提高查询性能。
在ABAP程序中,可以使用数据库表的维护事务码(SE14)来添加或删除索引。
4.使用合适的缓存技术:缓存是一种将频繁访问的数据存储在存储介质中的技术。
在ABAP程序中,可以使用SAP提供的缓存技术,如共享内存和工作区缓存,来提高数据访问的性能。
使用缓存可以减少数据库访问的次数,从而显著提高程序的性能。
5.避免冗余的计算:在ABAP程序中,可以通过避免重复计算来提高性能。
如果一些计算结果在程序中多次使用,可以将结果存储在一个变量中,并在需要时使用该变量,而不是每次都重新计算。
6.使用合适的数据类型:选择合适的数据类型可以提高程序的性能。
例如,使用整数类型(INTEGER)而不是字符类型(CHAR)来存储整数数据,可以减少内存占用和计算时间。
在ABAP程序中,可以使用合适的数据类型以及相应的类型转换操作,来提高程序的性能。
目录目录 (1)SAP开发规范 (3)1说明 (3)1.1内容说明 (3)1.2规范目的 (3)1.3使用说明 (3)1.4使用对象 (3)2一般规则 (3)3代码管理 (4)3.1程序标题 (4)3.2子程序、模块标题 (5)3.3编辑器设置 (5)3.4代码格式 (7)3.4.1使用规范化打印机 (7)3.4.2查询SQL语句的写法 (7)3.5变更记录管理 (7)3.6代码注释 (8)3.7子程序与函数模块 (9)3.8其它注意事项 (9)4数据库查询 (9)4.1不要在L OOP循环中使用S ELECT语句 (9)4.2取数的时候不能使用S ELECT......E NDSELECT语句循环操作 (9)4.3尽量多使用内表 (9)4.4S ELECT <FIELD>与S ELECT*比较 (10)4.5外部检查 (10)4.6S ELECT SINGLE语句使用注意 (10)4.7S ELECT 语句中排序与ABAP语句中排序比较 (10)4.8S ELECT DISTINCT语句使用 (11)4.9批量更新数据库表 (11)4.10F OR A LL E NTRIES 语句 (11)4.11O PEN SQL与N ATIVE SQL比较 (12)4.12表连接 (12)5内表使用注意 (12)5.1内表定义 (12)5.2内表使用 (12)5.2.1修改内表中的字段值 (12)5.2.2把一个内表附加到另一个内表后面 (12)5.2.3删除内表中重复行 (13)5.2.4根据条件删除内表中的行 (13)5.2.5内表是否为空的判断 (13)5.2.6读取内表行 (13)5.2.7通过LOOP AT it_tab ASSIGNING <fs>循环内表 (14)5.2.8通过平行光标来连接两个内表 (14)5.2.9释放内表 (15)6数据字典对象 (15)6.1建表规则 (15)6.2创建数据元素/域的基本规则 (16)6.3添加客户化字段到SAP表中 (16)6.4索引维护 (16)7文件处理 (16)8SMART FORM (17)9权限 (17)10其它注意事项 (17)10.1消息类使用 (17)10.2子程序参数传递 (17)10.3局部变量与全局变量的使用比较 (18)11代码检查 (19)12ABAP性能例子 (19)SAP开发规范1说明1.1内容说明开发规范总的包含了以下三方面的内容●《SAP开发规范》,即本文档,主要内容为:➢说明开发中要注意的事项➢代码编写的规范➢开发中要遵循的规则➢性能有关的例子●《SAP开发命名规范》,主要为开发过程中涉及的命名规则➢涉及开发中的命名,统一命名规则,方便程序的沟通、阅读1.2规范目的提高SAP项目中开发的效率、质量,实现标准化管理1.3使用说明●在客户有开发规范的情况下,请按照客户的开发规范进行开发●如客户未有现成的开发规范,请按照公司的开发规范进行开发●请确保在开发的时候遵循了以下规则,如模糊不清时,请及时重新查阅。