一、数据库操作

1.禁止修改系统标准表。

2.如果使用到FOR ALL ENTRIES IN语句取数,一定要校验关联内表非空性。

3.禁止一条SELECT关联的表超过5张,需要多表取值的时候建议分开取数。

4.查询条件和关联关系尽量使用主键或者索引项。

二、内表操作

1.LOOP取数,使用LOOP AT <internal table> into <work area> 模式。

2.禁止LOOP + SELECT SINGLE 语法,要求LOOP + READ TABLE  BINARY SEARCH 语

法。二分法查找,表取数前需要按照查询KEY值进行排序。

3.禁止LOOP+SORT 语法,SORT语句须放在LOOP外。

4.禁止LOOP+DELETE  <internal table> 语法,可采用表内增加删除标记字段,用LOOP +

READ TABLE BINARY SEARCH来更新删除标记,然后再DELETE 有删除标记的内容。

5.禁止LOOP+LOOP语法,统计汇总内容可以先COLLECT取数内容,然后再LOOP + READ

TABLE BINARY SEARCH语法来获取汇总内容。

6.使用loop + at end <Filed>/at new <Filed> 语法时注意,要根据包含<Filed>前所有的字段排

序。

三、对象定义

1、内表及工作区的创建,以参考结构的方式。

 TYPES:BEGIN OF typ_log,
aufnr TYPE aufnr,
ztype TYPE bapi_mtype,
zmessage TYPE bapi_msg,
END OF typ_log.
DATA ls_log TYPE typ_log.
DATA it_log TYPE TABLE OF typ_log.

2、程序命名规则:

对象

命名规则

说明

表(Database table)

Z[ac]_TAB_[Description]

结构(Structure)

Z[ac]_STR_[Description]

视图(View)

Z[ac]_V_[Description]

数据元素(Data element)

ZE_[Description]

数据域(Domain)

ZD_[Description]

搜索帮助(Search help)

ZH_[Description]

锁(Lock object)

EZ_[Description]

类型组(Type group)

ZY_[Description]

表类型(Table Type)

ZTT_[Description]

开发类(Package)

Z[ac]

信息类(Message class)

Z[ac]_MC_[Description]

函数组(Function group)

Z[ac]_[Description]

函数(Function)

Z[ac]_(FUN,BAPI)_[Description]

优先调用标准的BAPI,反之用FUN

SAPScript

Z[ac]_SC_[Description]

Smart Forms

Z[ac]_SF_[Description]

Smart Styles

ZXFONT

Area menu(区域菜单)

Z[ac]

报表(Report)

Z[ac]R[Description]

[Description]使用流水码

Include程序

Z[ac]_IN_[Description]

Business Object

Z[ac]_BO_[Description]

Parameter ID

Z[Description]

BADI增强

Z[Description]

CMOD增强

Z[ac][Description]

Number Range

Z[ac][Description]

TCODE

Z[ac][Description]

[Description]使用流水编码

Webservers

Z[ac]_WS_[Description]

内表(internal table)

IT_[Description]

工作区(work area)

WA_[Description]/LS_[Description]

三、接口定义

1、接口程序命名规范

对象

命名规则

说明

Z[ac]_TAB_[Description]

结构

Z[ac]_STR_[Description]

函数组

Z[ac]_[Description]

函数

Z[ac]_(FUN,BAPI)_[Description]

参看5.3.1接口名称规范

程序

Z[ac]R[Description]

[Description]使用流水码

TCODE

Z[ac][Description]

[Description]使用流水编码

Webservers

Z[ac]_WS_[Description]

2、输入输出参数命名规范

参数

命名规则

说明

输入

IP_[Description]

输出

EP_[Description]

特别的关于返回报错消息,统一定义:EP_TYP 返回消息类别(参考BAPI_MTYPE),EP_MSG 返回消息文本(参考BAPI_MSG)

输入表

IT_[Description]

输出表

ET_[Description]

特别的关于返回错误消息,统一定义:ET_LOG 返回错误消息(参考BAPIRET2)

3、闸口程序

 DATA flag TYPE char1.
CALL FUNCTION 'Z_OPEN_INTERFACE'
EXPORTING
im_name = '*******'”接口名称
IMPORTING
lv_flag = flag. IF flag = 'N'.
ep_typ = 'E'.
ep_msg = '请先打开接口控制闸口'.
EXIT.
ELSEIF flag IS INITIAL.
ep_typ = 'E'.
ep_msg = '接口控制闸口未维护'.
EXIT.
ELSEIF flag = 'Y'.
*************”接口正文
ENDIF.

ABAP开发规范的更多相关文章

  1. ABAP开发环境终于支持以驼峰命名法自动格式化ABAP变量名了

    Jerry进入SAP成都研究院前,一直是用C/C++开发,所以刚接触ABAP,对于她在某些语法环境下大小写敏感,某些环境下不敏感的特性很不适应.那时候Jerry深深地怀念之前在C/C++编程时遵循的驼 ...

  2. SAP官方发布的ABAP编程规范

    最近有朋友在公众号后台给我留言,"Jerry啊,你最近写的都是一些SAP研究院里面用到的新技术,能不能写点SAP传统的开发技术比如ABAP相关的东西"? 其实Jerry在刚开始写这 ...

  3. 我的公司培训讲义(1):.NET开发规范教程

    这是1年多以前我在公司所做讲座的讲义,现在与园友们分享,欢迎拿去使用.一起讨论.文中有若干思考题,对园友们是小菜一碟.另有设计模式讲义一篇,随后发布.博文上了首页,感谢博客园团队推荐,也感谢所有园友的 ...

  4. 转载:移动web开发规范

    本文来源:http://blog.csdn.net/joueu/article/details/44329825 以下是规范建议,均是日常在开发当中的的一些经验,仅供参考. 移动web开发规范 一.头 ...

  5. php与数据库代码开发规范

    php与数据库代码开发规范 1/25/2016 6:00:31 PM php对各类变量命名规范 目录名 文件命名 局部变量命名 使用英文动词名词,用下划线作为单词的分割,所有字母均使用小写 目录 up ...

  6. 【敏捷开发】Android团队开发规范

    这里说的开发规范分成目录规范,项目和包名的命名规范,类,方法,变量和常量的命名规范这几种. 目录规范 目录规范——在开发中整体文件夹组织结构. Requirement——需求文档文件夹 Design— ...

  7. 从零开始编写自己的C#框架(3)——开发规范

    由于是业余时间编写,而且为了保证质量,对写出来的东西也会反复斟酌,所以每周只能更新两章左右,请大家谅解,也请大家耐心等待,谢谢大家的支持. 初学者应该怎样学习本系列内容呢?根据我自己的学习经验,一般直 ...

  8. 从零开始编写自己的C#框架(3)——开发规范(转)

    由于是业余时间编写,而且为了保证质量,对写出来的东西也会反复斟酌,所以每周只能更新两章左右,请大家谅解,也请大家耐心等待,谢谢大家的支持. 初学者应该怎样学习本系列内容呢?根据我自己的学习经验,一般直 ...

  9. Web前端开发规范文档(google规范)

    (Xee:其实没什么规范约束,但是养成一种好习惯,何乐而不为?) 区分大小写 xhtml  区分大小写,xhtml要求 标签名 属性名 值都要小写,并且要有双引号和 标签闭合. css 元素名称以及i ...

随机推荐

  1. 使用iptables基于MAC地址进行访控

    近日完成一台基于CentOS的SVN服务器配置,由于该服务器上的文件非常重要,仅部分用户需要访问,最后决定采用iptables来做访控,并且是根据MAC地址来限制,为了便于后期维护,防火墙的配置是通过 ...

  2. VMare Workstation 12 安装 AsteriskNow freePBX

    一.准备工作 VMware 12 安装好的电脑 AsteriskNow iso文件  官网地址 https://www.asterisk.org/downloads 本人提供相关分享:https:// ...

  3. 团队第九次 # scrum meeting

    github 本此会议项目由PM召开,召开时间为4-14日晚上9点,以大家在群里讨论为主 召开时长10分钟 任务表格 袁勤 负责协调前后端 https://github.com/buaa-2016/p ...

  4. Flack--SQLAlchemy

    SQLAlchemy 一. 介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使 ...

  5. 封装poi导出篇

    前言 先写的导入,以为导出会很简单,没想到导出的东西也不少,基于常用的几种样式和校验写了一个简单的导出,包括时间,数字,文字长度,下拉框,提示框校验,基础样式包括字体,字体颜色,背景颜色等功能,可以使 ...

  6. request和response的常用方法

    一.request   1.setAttribute()在Request域中存储数据  2.setCharacterEncoding()设置请求参数的编码方式,只对post请求有效  3.getMet ...

  7. 关于前段JS代码报错问题的解决方法

    最近接手别人的一个项目,项目导入到Myeclipse中,JS代码一直报错,说missing semicolon.该错误是Myeclipse在检查JS代码的过程出现的. 后来经过检查,发现JS代码本身没 ...

  8. hml页面转化成图片

    <!DOCTYPE html><html><head><meta charset="utf-8"><meta name=&qu ...

  9. XML文档的生成和解析操作方法

    XML文档和JSon文档同为网络传输中的数据格式,JSon的解析和创建已经在新浪微博的使用中相当熟悉,故仅仅记载XML文档的相关方法. 关于XML文档: 1.一种便于编辑和传输的数据文件格式 2.xm ...

  10. nginx 的安装、启动、停止与重启

    一.nginx 基本介绍 1.Nginx 是单进程单线程模型,也就是启动的工作进程只有一个线程响应客户端请求,而 apache 可以在一个进程内启动多个线程响应客户端请求.所以 nginx 的内存占用 ...