ABAP报表程序开发规范.docx
- 文档编号:2775102
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:12
- 大小:22.07KB
ABAP报表程序开发规范.docx
《ABAP报表程序开发规范.docx》由会员分享,可在线阅读,更多相关《ABAP报表程序开发规范.docx(12页珍藏版)》请在冰豆网上搜索。
ABAP报表程序开发规范
ABAP报表程序开发规范
一、目的
为保证在R/3系统中使用ABAP语言开发报表程序的规范性,特制定本开发规范。
在本开发规范的约束下,将源代码与报表开发人的相关性降到最低;即只要具备基本的ABAP开发技巧,遵循本开发规范,不同的开发人员开发的同样逻辑的源代码应该是基本相同的。
二、适用范围
本技术规范适用于捷顺R/3系统的所有开发人员和除标准对象外的所有ABAP报表程序开发。
三、职责
ABAP开发小组负责程序的开发、传输请求的创建及提交。
BASIS小组负责传输请求向PRD系统的传输。
四、开发流程
1、开发人员接收业务顾问提交的开发需求;如果需要,开发人员应当配合业务顾问进行用户需求分析;
2、开发人员根据开发需求在DEV100中进行程序开发;
3、开发人员将程序传输至质量保证系统中进行初步测试,测试完毕后通知业务顾问进入用户测试阶段;
4、程序在质量保证系统中经用户测试通过后,开发人员申请将程序传输至生产系统,相关主管审批通过后,BASIS人员负责将传输请求传输至生产系统。
5、如果程序需要作为后台程序运行,需要在传输申请中做出说明,由BASIS人员在生产系统中定义后台作业。
6、开发和修改程序都需要填写开发文档。
开发文档存放于服务器的专用目录中,每个程序一个文档,新程序需要新建文档,修改程序需要修改原来的程序文档(在原文档基础上追加内容,不允许删除原文档内容),记录本次修改的内容和请求号等信息。
开发程序申请传输生产系统中时,同时提交开发文档审核,相关主管需要同时检查程序和文档的规范性。
五、命名规则
1、用户开发对象的命名规则
1)用户开发对象的名称必须以Z开头,只能使用字母、数字和下划线。
用户开发对象包括开发类、程序、函数组、函数、透明表、结构等。
2)开发类一般使用ZREPORT,如有特殊需要,可以创建新的开发类。
3)报表程序命名规则:
Z
其中,XX为模块名称,现在常用的有以下几种:
MM——MM模块,PP——PP模块,SD——SD模块,CS——CS模块,FI——FI模块,CO——CO模块,BC――公共模块,CA――交叉应用;
Y表示程序的类型,目前有四种:
R——报表程序,E——批输入程序,S――SmartForm程序,I——接口程序。
NN为序列号,表示该程序在同一模块同类型程序中的编号。
比如ZSD_R_01,表示SD模块的一个报表程序。
如果业务顾问已经提供需求的编号,则取业务顾问提供的需求编号。
ADDITIVE,程序的附加说明,如项目名称等,可以灵活使用,不是必须的部分。
如果创建与程序相关的Include程序,则Include程序的命名中的ZXX_Y_NN部分与主程序相同,通过ADDITIVE部分区分不同的Include程序,如ZXX_Y_NNTOP,ZXX_Y_NNUI等。
特别说明:
如果需要替换原程序,建议将原程序拷贝为ZXX_Y_NNOLD,而新编写的程序的命名与被替换程序的命名一致,不要将新程序命名为ZXX_Y_NNN或ZXX_Y_NNNEW。
这样可以避免需要修改需求文档编号与程序编号的对应关系,也避免在日后维护中由于对应关系没有更新而导致错误的修改已废除的程序。
4)数据字典对象的命名规则:
Z
其中,XX为模块名称,现在常用的有以下几种:
MM——MM模块,PP——PP模块,SD——SD模块,CS——CS模块,FI——FI模块,CO——CO模块,BC――公共模块,CA――交叉应用;
Y代表对象类型,现在常用的有如下几种:
T――透明表,V――视图,S――结构类,I――内表类型;
NAME为对象的名称。
尽量给数据字典对象有意义的名称,不要使用序号;如果定义是配置表及其维护视图,可以使用3位的序号。
5)函数组命名方式:
Z_
其中,NAME表示函数组有意义的名称,如项目名称,命名应能表示所包含的函数的用途等。
6)函数命名方式:
Z_
函数必须指定所属的函数组,NAME表示对函数的说明,使用下划线分隔单词,如Z_ORDER_MODIFY_ABTNR,表示修改订单的部门(ABTNR)字段。
7)事务代码的命名方式:
Z
即对于报表程序取主程序命名,但将下划线去掉。
如果业务顾问已经给出事务代码的命名,则按照业务顾问的命名,只需确保命名以Z开始。
8)SmartForm的命名方式:
Z
其中,XX为模块名称,现在常用的有以下几种:
模块名称:
MM——MM模块,PP——PP模块,SD——SD模块,CS——CS模块,FI——FI模块,CO——CO模块,BC――公共模块,CA――交叉应用;
NAME为对象的名称。
尽量给SmartForm有意义的名称,不要使用序号。
2、SELECT-OPTION的命名方式:
SO_
其中,NAME赋予变量有意义的名称,对于类型参照数据字典中表字段的SELECT-OPTION,名称尽量参照该字段的名称。
3、PARAMETER的命名方式:
PA_
其中,NAME赋予变量有意义的名称,对于类型参照数据字典中表字段的SELECT-OPTION,名称尽量参照该字段的名称。
4、程序全局变量的命名方式:
G
其中,全局变量的命名以G开头,但SELECT-OPTION、PARAMETER及TABLE例外;
qualification主要表示变量的类型,常用的有以下几种:
S――结构,T――内表,X――标志变量(变量值为SPACE或‘X’),C――字符(串),N――数值型字符串,D――日期型,I――整型,P――实数;对于类型参照数据字典中表字段的变量,可以省略此部分;
NAME则赋予变量有意义的名称,对于类型参照数据字典中表字段的变量,名称尽量参照该字段的名称。
5、子程序接口参数的命名方式:
P
其中,子程序接口参数的命名以P开头;
qualification主要表示参数的类型,常用的有以下几种:
S――结构,T――内表,X――标志变量(变量值为SPACE或‘X’),C――字符(串),N――数值型字符串,D――日期型,I――整型,P――实数;对于类型参照数据字典中表字段的参数,可以省略此部分;
NAME则赋予参数有意义的名称,对于类型参照数据字典中表字段的参数,名称尽量参照该字段的名称。
6、局部变量的命名方式:
L
其中,子程序中局部变量的命名以L开头;
qualification主要表示变量的类型,常用的有以下几种:
S――结构,T――内表,X――标志变量(变量值为SPACE或‘X’),C――字符(串),N――数值型字符串,D――日期型,I――整型,P――实数;对于类型参照数据字典中表字段的变量,可以省略此部分;
NAME则赋予变量有意义的名称,对于类型参照数据字典中表字段的变量,名称尽量参照该字段的名称。
六、程序注释
程序必须层次清楚,添加详细注释。
基本原则是在《ABAP报表详细设计文档》主程序和子程序逻辑中每一段描述性的信息,都应该添加在源代码中相应的位置,并且保证标号的顺序和层次的一致性。
1、严格按照下列示例填写程序抬头注释信息
*&---------------------------------------------------------------------*
*程序名称:
<程序名称>*
*程序目的:
<程序功能描述>*
*需求编号:
<对应的开发需求编号>*
*作者:
<程序的开发用户名>*
*创建日期:
<创建程序的日期>*
*&---------------------------------------------------------------------*
2、对于子程序,应当在子程序前添加如下注释:
*&---------------------------------------------------------------------*
*&FORM<子程序名称>
*&---------------------------------------------------------------------*
*<子程序的功能说明及逻辑的简述>
*----------------------------------------------------------------------*
*--><输入参数名称><输入参数的说明>
*<--<输出参数名称><输出参数的说明>
*----------------------------------------------------------------------*
FORM<子程序名称>[接口定义].
ENDFORM.
3、对于程序中的全局变量(包括PARAMETER及SELECT-OPTION)及子程序中重要的局部变量应该对其含义、用途做出说明;在声明内表数据类型或内表变量(包括全局变量及局部变量)时,内表的每个字段必须对其进行注解;参考如下示例
eg.1
****供应商信息内表:
用于外部输出
DATA:
BEGINOFGT_LFA1OCCURS0,
LIFNRLIKELFA1-LIFNR,"供应商编码
SORTLLIKELFA1-SORTL,"排序字段
NAME1LIKELFA1-NAME1,"名称1
KTOKKLIKELFA1-KTOKK,"供应商帐户组
DATLTLIKELFA1-DATLT,"数据通讯线的号码
ENDOFGT_LFA1.
eg.2
****复选框,标志是否前台输出
PARAMETERS:
PA_XUIASCHECKBOX."复选框,标志是否前台输出
4、对数据库查询、子程序/函数/组件的调用、逻辑运算、逻辑处理等程序处理逻辑要有相应注解;对于用于控制语句与WHERE子句里的判断值(常量),要有注解或者说明。
eg.1
****选出BOM表头:
指定工厂,指定物料,BOM用途为2或8,替代组为01
SELECTMATNRSTLNRWERKSCSLTY
FROMMAST
INTOTABLEZHEAD
WHERE(WERKSINIWERKSORWERKSINIWERKS1)
AND(MATNRINIMATNRORMATNRINIMATNR1)
AND(STLAN='8'ORSTLAN='2')”类型值为主机或者虚拟BOM
ANDSTLAL='01'.
eg.2
****判断用途选择,前台或后台输出
IFSOPTEQ'X'."输出到前台文件
PERFORMEXPORT_DATA_FT.“将数据导出到客户端文件
ELSE."输出到应用服务器文件
PERFORMEXPORT_DATA_BG.“将数据导出到应用服务器文件
ENDIF.
5、当修改程序时,在程序抬头注释后附加程序修改注释:
*&---------------------------------------------------------------------*
*修改人:
<修改程序的开发用户名>*
*修改日期:
<修改程序的日期>*
*修改说明:
<本次修改的逻辑处理和必要的说明信息>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ABAP 报表 程序 开发 规范