




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广西XX公司管理制度SAP软件开发代码书写规范GZ/LG10.25-2xxx1. 目的和适用范围1.1目的:加强XX公司SAP开发工作的管理控制,明确软件开发流程,使开发全过程职责清晰、任务具体。实现代码标准化、提高开发效率和代码可读性、增强软件可维护性。1.2适用范围:适用于广西XX公司机械股份公司所有针对SAP的ABAP开发工作。2. 引用制度和术语解释2.1引用制度 2.2术语解释用户:广西XX公司机械股份公司所有进行SAP二次开发的相关人员3. 代码书写规范代码除了用来实现程序逻辑外,最主要的用处还是给程序员进行阅读。整洁规范,空白错落有致,注释恰到好处,命名和排版遵守统一规范的代码,能给工作带来便捷,同时视觉上也是美感。3.1、规范通用准则1、在命名语法格式中“”(中括号)符号内的为可选项2、在命名语法格式中“”(尖括号)符号内的为必填项。3、所有代码书写完毕后,必须使用代码编辑器里面的格式化功能(也叫规范化打印机),对代码进行格式化,使用系统默认的大小写格式。3.2、程序命名规范所有用户自开发程序均以Z开头,表示用户自已开发。程序命名字符长度不得超过30个字符。处理同一业务的表单、报表和事务码等名称需要一致。其具体命名规则如下。 + + _ _ NN + + _ _ INC+ NN 各部分含义如下:PREFIX: 为程序前缀。必须为Z表示自开发的程序XX: 表示模块名,其具体规则如下表:表格1模块前缀含义描述模块前缀含义描述FI财务会计HR人力资源CO管理会计MM物料管理AA资产会计SD销售与分销TR资金管理QM质量管理PS项目系统PM设备维护EC企业合并CA跨模块应用HR人力资源BC基础组件 T :表示程序类型,其具体规则如下:表格2类型前缀含义描述类型前缀含义描述R报表程序BBatch inputI接口程序QQUERYM模块池F功能类Description: 为有含义的英文单词或汉语拼音,一般用于标识程序的含义。 NN: 为该开发需求的子编号,为两位数字,如无子编号该部分可无。INCXX: 表示包含程序,INC为前缀XX为两位数字示例:ZQMR_QualityNotification 表示该程序为质量模块,质量通知单相关的报表程序.ZQMR_QualityNotification_INC01 表示该程序是一个包含程序,一般其主程序为ZQMR_QualityNotification。当一个开发需要多个程序组成时,一般包含程序名INCNN前面部分和主程序同名。3.3函数命名规则格式定义: + + _ + Ex _ Prefix 前缀,必须为Z XX :表示模块,定义见3.2的表1。Ex: 当该函数可外部调用,则增加ex标识。其为英文单词External的缩写。Description:表示函数名,要求有具体的语义的单词或者词组,多个单词可以下划线连接。示例:ZPP_SRM_GetAufnr 3.4 函数组命名规则格式定义: + + _ Description 各部分含义和3.3 函数命名规则相同3.5 数据字典命名规则 数据字典命名规范,即se11事务码创建的各种对象命名规则。各对象均以Z开头表格3对 象格式及说明例 子透明表(Transparent Table)Z+_ ZTMMHT视图(View)Z+H = 视图类型, = 描述视图类型:D - Database View 数据库视图P - Projection View 射影视图M - Maintenance View 更新视图H - Help View 帮助视图Description 英文或拼音描述ZHMATNR物料号帮助视图索引(Index)Z+ , NN = 连续数字Z01数据元素(Data Element)Z+;Description 英文或拼音描述ZHETONG域(Domain)Z+ ;Description 英文或拼音描述ZHETONG结构(Structure )ZS, Description 英文或拼音描述ZSHETONGAPPEND STRUCTUREZ, = 表名ZZEKKOTable TypeZ, Description = 描述ZXYZType GroupZG, = 描述ZGXYZ锁对象(Lock Objects)E, 表名,如无特殊需求,一个表定义一个锁对象。EZTMMHT搜索帮助(Search help)ZSH, Description 描述ZSHHETONG 3.6、程序内数据定义表格4对 象格式及说明例 子变量_DATAg_countTYPEi.内表_IT_DATAg_it_matnrLIKE.工作区_wa_DATAg_wa_matnrLIKE选择表_ _RANGESg_rgs_matnrFOR选择屏元素_SELECT-OPTIONS:s_arbplFOR子程序(Form)Sub+ using FORMsub_bg_co11n.程序内对象分类如上表4所示。下面详细介绍格式中的各选项含义。 3.6.1、规则各项定义Range 定义范围, 种类如下, G(global) 全局范围 L(local) 局部范围 C(Constant ) 常量Prefix 前缀,种类如下S 用于复杂选择标准,即用于SELECT-OPTIONS关键字声明语句中选择屏参数的前缀。R为单选按钮C 复选框D 下拉框Description 描述描述必须为有含义的英文或拼音。其中选择屏定义时,字符串总长度不能操作8个字符。如果一个单词无法满足描述,需要多个单词的,可用下划线”_”连接多个单词进行描述。Parameters 参数子程序参数格式定义:P_参数以P_ 开始,表示参数。Description 和上述相同。例:FORMsub_get_itab_structUSINGp_bgjlTYPESTANDARDTABLE.ENDFORM.3.7代码注释规范代码注释分为源程序头注释、子程序注释、数据对象(变量)注释、函数事件注释、程序逻辑注释等。其总体原则为:a) 每个源程序头部必须注释b) INCLUDE 程序时,需要在代码行前或者后注释所引用程序的用途c) 每个子程序必须注释d) 每个函数、事件的开始必须包含说明性信息,描述功能、参数、返回值等信息。e) 循环语句前进行必要的注释。f) 在分支语句前进行必要的注释。g) 在选择语句前进行必要的注释。h) 变量必须进行注释。 3.7.1程序头注释为每个程序文件开始部分对该程序文件功能信息等的一种注释,包含程序名称、创建者、创建日期、程序功能、备注等信息。如果是修改程序还需添加修改者、修改日期、修改内容等注释。例:*&ReportZPPR0025*&*&-*&开发:狄颖跃*&功能:工序库存监控表*&日期:2013/5/21*&来源:写OA地址或者mantis地址*&*&-*&修改:狄颖跃*&修改日期:2014/6/12*&修改内容:增加物料号字段*&*&-* 3.7.2 INCLUDE程序注释Include 注释分为两种,一是逻辑块注释,即几个包含程序根据功能划分为一个整体进行注释。二是每个包含程序后面进行注释,解释包含程序的功能含义。其中逻辑块注释为可选。例:INCLUDEzbg01g01.数据声明INCLUDEzbg01g02.选择屏定义*-报工逻辑相关-*INCLUDEZBG01G03.上线报工INCLUDEZBG01G04.中间工序报工INCLUDEZBG01G05.中间工序按物料无序报工INCLUDEZBG01G06.油漆上线INCLUDEZBG01G07.油漆下线*-End-*INCLUDEZBG01GAL.通用co11n调用逻辑块注释 3.7.3子程序注释子程序注释采用系统标准功能自动生成注释框架,当写完一个子程序的结构体后,可以点击格式化功能(有些翻译为规范化打印机)。系统将自动添加子程序注释框架,生成如下图1 类似注释。包含子程序功能注释和参数注释两部分。我们只需要修改相关text 为相关含义即可,修改后如图1。图 1 3.7.4函数注释:充分利用函数编辑器自动注释功能,自动生成注释框架,在此基础上进行修改。下图中汉字部分的注释就是在自动注释框架基础上添加的必要注释。图2 3.7.5循环语句和分支语句注释:此两种注释又称为程序逻辑注释,是为了注明某段代码的运行逻辑,能够使程序编写或修改者对代码运行原理一目了然的作用,如图7所示。除了在第一行注明循环或分支的逻辑外还可以在循环或分支内部进行必要的注释,使代码更加清晰,如图6所示。图 3图 4如果程序复杂,需要大段进行注释程序逻辑的。可以采用*号注释法,进行大段的注释,如下所示.*-*1首先获取通知单基本数据*2加载质量通知单关联的凭证*3根据通知单类型调用不同的数据初始化过程*- 3.7.6变量、结构注释代码中的数据对象(变量)必须进行清晰明了的注释。如图7所示。一般情况注释跟随在变量后面,特殊情况可在变量前进行多行注释。例:TYPES:BEGINOFs_pingzlist,用于创建凭证DOKARlikeDRAT-dokar,凭证类型doknrLIKEdraw-doknr,凭证号dktxtLIKEdrat-dktxt,凭证描述DOKVRtypeDOKVR,凭证版本DOKTLtypeDOKTL_D,凭证部分ENDOFs_pingzlist.*-通用类型-*DATAg_baseinfoTYPEs_baseinfor.基本信息DATAg_matnrinfor_f2TYPEs_matnrinfor_f2.物料信息DATAg_zlheader_f2TYPEs_zlheader_f2.质量事故报告头数据 3.8对象命名相关规则具体请见下面表格所示,参考SAP官方推荐命名规则。表格1 类定义Class in the class library类库中的类(全局类)格式:Z_CL_.例:Z_CL_COMPANY_CODE, Z_CL_GENERAL_LEDGER_ACCOUNTInterfaces in the class library类库中的接口(全局接口)格式:Z_IF_例:Z_IF_STATUS_MANAGEMANT, Z_IF_CHECKERLocal classes in programs程序中的类格式:LCL_例:LCL_TREE_MANAGEMENTLocal interfaces in programs程序中的接口格式:LIF_例:LIF_PRINTER表格2:类中元素命名规则Method name(方法名)method name方法名以动词开头。例:GET_STATUS, CREATE_ORDER, DETERMINE_PRICEEvents(事件)event name事件名具体形式noun_participle: 即 名词_分词例:BUTTON_PUSHED, COMPANY_CODE_CHANGED, BUSINESS_PARTNER_PRINTEDLocal type definitions within a class (recommendation)(类中类型定义)TY_type name例:TY_INTERNAL_TYPE, TY_TREE_LISTData definitions (variables)变量定义variable name避免使用动词开头的名字 。例:LINE_COUNT, MARK_PRINTED, MARK_CHANGED, STATUSData definitions (constants)(recommendation)常量定义CO_constant name Co_开头例:CO_MAX_LINE, CO_DEFAULT_STATUS, CO_DEFAULT_WIDTH, CO_MAX_ROWS 4. 程序构造规范程序构造分为简单型和复杂型两种,简单型为整个程序代码都在同一个程序文件中,复杂型为程序代码根据功能划分为不同程序文件保存,命名规则见3.2 4.1、简单型程序结构规范。程序顺序划分为如下几个区域1) 程序头部声明区域,具体格式见3.812) 变量类型声明区,该区域用于书写程序中用到所有全局类型和变量。3) 选择屏幕定义区,该区域用于书写程序中选择屏幕定义的代码。4) 程序事件区域,该区域用于书写程序标准事件代码。5) 子程序区域,该区域用于定义子程序。6) ALV报表代码区域,该区域用于书写,ALV报表先是代码。以上几个区域虽然语法上容许书写不分先后,但是为了逻辑清晰,方便观看、结构规范,必须严格按规定书写。其中程序事件区域的代码必须按照事件执行先后顺序书写,其顺序如下。表格3顺序事件名称代码说明1初始化事件LOAD-OF-PROGRAM程序初始化事件,最先执行INITIALIZATION程序初始化事件,晚于LOAD-OF-PROGRAM执行2选择屏幕事件ATSELECTION-SCREEN选择屏PAI事件ATSELECTION-SCREENOUTPUT选择屏PBO事件3选择开始事件START-OF-SELECTION.4逻辑数据库事件GETspfli.没有可不写5选择结束事件END-OF-SELECTION 以上事件除了逻辑数据库事件在没有的时候可以省略外,其他事件必须书写。以便程序结构清晰。示例:*&-数据类型定义区-*&-数据变量定义区-*DATAg_it_resultTYPESTANDARDTABLEOFs_rtWITHHEADERLINE.DATA:wa_certificateLIKEzhgz.DATA:wa_certificate2LIKEzlg_certificate.*&-*&选择屏幕定义区*&-*SELECTION-SCREENBEGINOFBLOCKb1WITHFRAMETITLEtext-001.PARAMETERSp_werksLIKEzbgsng-werksOBLIGATORYMEMORYIDwrk.SELECT-OPTIONS:s_pgdatFORzbgsng-pgdatOBLIGATORYDEFAULTsy-datum。SELECTION-SCREENENDOFBLOCKb1.*&-*&程序事件区*&-*LOAD-OF-PROGRAM.程序类型为可执行程序,该事件最先执行INITIALIZATION.*&选择屏幕事件代码,如果没有可不写ATSELECTION-SCREEN. *&选择屏PAI事件用户在选择屏幕中执行某些功能后出发,一般用于消息处理ATSELECTION-SCREENOUTPUT. &选择屏PBO事件,显示选择屏幕之前触发.*&执行executeSTART-OF-SELECTION. “选择开始事件PERFORMsub_get_data.GETspfli. *&逻辑数据库代码,没有可不写。END-OF-SELECTION. “选择结束事件PERFORMlayout_build.PERFORMfields_init.PERFORMfrmalv_out.4.2、复杂型程序结构的构造。如果程序比较复杂,当一个程序文件无法满足开发需求时,可以按照功能划分为不同的程序文件,其划分一般规则如下。1) 主程序文件,该文件是整个程序的主文件,主要用于包含其他程序文件用。2) 全局变量类型声明文件,该文件用于声明所有本程序使用的全局变量和类型。3) 选择屏幕定义以及标准事件文件,该文件用于定义程序中标准程序事件和选择屏幕代码。4) 程序逻辑文件,该文件用于定义程序中用到的子程序,可根据具体情创建多个子程序文件。通常用于书写程序逻辑代码。5) Module 文件,该文件用于书写程序中的module ,可根据情况创建多个。6) ALV显示逻辑文件,所有关于ALV显示的代码放于同一个文件内。包括ALV显示所用到的变量和类型。注:在主程序文件中书写包含各程序文件代码顺序的时候,必须按照“先声明后使用的原则”,例如“全局变量类型声明文件”的include 代码必须放在第一个,否则有可能造成“未声明”错误提示。5. 程序性能优化参考1. LOOP循环尽可能使用where条件语句实现过滤不相关行项目,以减少循环次数。2. 使用SORT语句代替数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 青年社交茶馆行业跨境出海项目商业计划书
- 休闲食品健康功效科普视频创新创业项目商业计划书
- 书法练习指导机器人创新创业项目商业计划书
- 2025年中国自动清废机市场调查研究报告
- 2025年中国美式重型镀铬C型大力钳市场调查研究报告
- 2025年中国涤粘花呢市场调查研究报告
- 2024年度浙江省二级注册建筑师之法律法规经济与施工强化训练试卷B卷附答案
- 2025年中国卡通涤纶门垫市场调查研究报告
- 车辆转让与车辆租赁及代驾服务协议
- 2025年中国储蓄罐市场调查研究报告
- 高职英语课程说课稿课件
- 政府投资项目审计与报告案例信息讲解课件
- 妇产科课件-女性生殖系统炎症
- 三甲医院体检报告单A4
- 污水处理缺氧、厌氧、好氧的工艺流程分析
- 子午线轮胎断面分析
- 广西大学毕业论文统一封面
- 年产5000t柠檬酸发酵车间工厂设计 - 副本
- 银行保函(URDG758)讲义
- 停止等待协议实验报告
- 【学习】第一章审计与注册会计师职业讲诉(1)
评论
0/150
提交评论