SAP-ABAPプログラム開発仕様

SAP - ABAPプログラム開発仕様

レンジ1

SAP S / 4システムプログラムの開発プロセスは、プログラム構造、検査及び管理の要求の方法を命名、用語を定義し、この標準を指定します。

この規格は、SAP S / 4 ABAP言語開発システムのプログラムに適用されます。

2つの引用規格

本文書の適用のために、次の書類が必要不可欠です。日付参照の場合、この文書に適用版のみ日付。日付のない参照については、(追補を含む)の最新版は、この文書に適用されます。

GB / T 1.1から2000「標準化ガイドパート1:構造と標準ルールの作成」

3つの用語と定義

3.1 SAP

データ処理、SAPドイツのシステムアプリケーションおよび製品からSAPは、それは会社の英語名です。

3.2 SAPのS / 4

SAP S / 4は、統合エンタープライズ・リソース・プランニング・システム(エンタープライズ・リソース・プランニングは、と呼ばれる:ERP)、オープンクライアント/サーバアーキテクチャに基づいており、カバーを備えソフトウェア、調達、在庫、生産を含む企業の財務管理、物流管理(、売上高、設備、プロジェクト、品質及びその他のモジュール)および人的資源管理および他の側面。データベース、アプリケーションサーバ、プレゼンテーション層:SAPドイツの会社のSAPによる研究イノベーションS / 4ソフトウェア、Rがリアルタイム(実時間)を意味し、3はS / 4システムを表す3層アーキテクチャです。

3.3 ABAP

ABAPは、高度なビジネス・アプリケーション・プログラミング言語(アドバンストビジネスアプリケーションプログラミング)、SAP S / 4システムアプリケーションが書かれたABAP / 4を使用することです。

3.4 AA

:AAは、以下のようにモジュールがあるSAP S / 4のアプリケーションモジュールを表します

AAモジュール

モジュール名

BE

財務会計

CO

管理会計

SD

販売流通

んん

資材管理

PM

プラントメンテナンス

HR

人事

PS

プロジェクト管理

BW

データウェアハウス

紀元前

システム関連

OT

他の

 

3.5 PT

PTは、次のようにプログラムタイプは、タイプがあることを示しています。

PTタイプ

名前

RP

印刷レポートのプリントアウトレポート

EX

強化ユーザー出口の機能強化

FM

機能モジュールの機能

QR

クエリのクエリ

SF

スマートは、迅速な報告形式フォーム

WITH

バッチインプットバッチインプット

 

3.6 DT

DTは、次のようにそのタイプが、データ・オブジェクトのタイプを示します。

DTタイプ

名前

TB

透明なテーブル

VW

ビュー

OF

データ要素

ST

構造表

TT

テーブルタイプ

CI

カテゴリ

TG

タイプグループ

DM

ドメイン

HP

ヘルプ

LO

ロックオブジェクト

 

3.7記号説明

シンボルタイプ

名前

[XX]

XXは、必要な部分であります

{XX}

XXは、条件式の必要な部分であります

<XX>

XXはオプションパーツです

4つの命名規則

4.1プログラム名の規則

Y [プログラム]の形式でプログラム4.1.1クローニングプログラムシステム標準プロシージャ名{_}。

4.1.1.1 Yは、システムのプログラムは、標準的な手順からクローニングされていることを示します。

4.1.1.2クローニング手順が関数である、それは「_」含まれている必要があります。

4.1.1.3 PROGRAMプログラム名は、プログラムの最大の長さの文字の長さは、余分な文字が背景にある省略することができるならば、クローン化されるために、標準的なシステムを示しています。

4.1.2 Z {_} <AA> <PT> <SEQ> {FSQ}フォーマットライトによって新たに開発されたプログラム名。

4.1.2.1 AAは3.4で定義されたSAP S / 4のアプリケーション・モジュールを表します。

4.1.2.2 PTは、3.5で定義されているプログラムの種類、ことを示しています。

4.1.2.3 SEQ IDが000から999の範囲内に、水を表します。

4.1.2.4 FSQはF00-F99の範囲内で、ファイルのシリアル番号を含む表します。

機能のために作成4.1.2.5プログラム、それが「_」含まれている必要があります。

4.1.2.6用に作成されたプログラムは、プログラムを含む場合、FSQを含んでいなければならない。プログラムは、特定のプログラムのために使用される場合、プログラム名AA、PT、SEQ、FSQ部と、プログラムは、プログラムの特定のタイプのために利用可能である場合、 AA、PT、FSQ部からプログラム名、プログラムはすべてのプログラムのために利用可能であるとき、プログラム名はFSQが含まれています。

4.2トランザクションコード命名

事务代码是由一组有效字符组成的字符串,在SAP系统中为了方便用户使用系统功能和应用的快捷方式。在ABAP程序开发过程中,为了体现事务代码的有效意义,只针对程序类型为报表类(RP)、函数模块类(FM)、维护表视图以及查询建立事务代码。为了便于事务代码的分类和区别应用,把事务代码分为业务类事务代码和管理类事务代码,其中业务类事务代码作用于报表类应用,管理类事务代码作用于配置类应用。

4.2.1  在克隆系统标准程序的程序开发过程中,当原系统标准程序有事务代码时新建事务代码名称为:Y+原事务代码;当原系统标准程序无事务代码时新建事务代码名称按Y[AA][SEQ]格式编写;其它情况下的事务代码名称按Z[AA][SEQ]{SQ}格式编写;

4.2.2  AA表示SAP S/4 应用模块,其定义见3.4;

4.2.3  SEQ流水号必须与对应报表的流水号相同,相同应用模块下的不同程序类型的流水号不能相同,如果存在相同情况,那么需在后面加上报表类型,如ZMM010QR;

4.2.4  SQ表示流水号,范围为00-99,其只适用于管理类事务代码;

4.3  开发类命名规则

4.3.1  开发类的名称按Z[AA][SQ]格式编写。其中AA表示SAP S/4 应用模块,其定义见3.4;SQ表示流水号,其范围为00-99;

4.3.2  一个开发类只对应一次项目的一个应用模块,非项目期间的开发类流水号使用99,一个应用模块可对应多个开发类,在增加开发类时需按流水号递增编写;

4.4  函数组命名规则

4.4.1  函数组的名称按Z[AA][SQ]格式编写。其中AA表示SAP S/4 应用模块,其定义见3.4; SQ表示流水号,其范围为00-99;

4.4.2  一个函数组只对应一次项目的一个应用模块,非项目期间的函数组流水号使用99,一个应用模块可对应多个函数组,在增加函数组时需按流水号递增编写;

4.4.3  表格维护生成器里的函数组使用该数据字典对象名作为其名称;

4.5  消息类命名规则

消息类是ABAP程序开发中为异常情况而设计的故障信息类别,这样有利于问题的跟踪、诊断和解决。消息类的名称按Z[AA]格式编写,其中AA表示SAP S/4 应用模块,其定义见3.4;

4.6  区域菜单命名规则

4.6.1  区域菜单的名称按Z[AA][SQ]格式编写。其中AA表示SAP S/4 应用模块,其定义见3.4; SQ表示流水号,其范围为00-99;

4.6.2  一个区域菜单对应一个应用模块,一个应用模块对应多个区域菜单,在增加区域菜单时需按流水号递增编写;

4.7  数据字典命名规则

4.7.1  数据字典包含表、视图、数据元素、结构、域、帮助等方面的内容,新建名称按Z[AA][DT][NNN]格式编写;

4.7.1.1  AA表示SAP S/4 应用模块,其定义见3.4;

4.7.1.2  DT表示数据对象类型,其定义见3.6;

4.7.1.3  NNN表示数据对象说明,可以用三位数字或字母来描述;

4.7.2  克隆系统标准数据对象的对象,按Y[DO]格式编写。其中DO表示被克隆的系统标准数据对象,当DO的数据对象名称长度已经达到最大长度时,可省略后面多余的字符;

4.8  文本符号命名规则

4.8.1  在程序中尽可能使用文本符号存储文本信息,避免“硬代码”;

4.8.2  文本符号也可以进行分类,分类如下:

文本号

用途

E01-E99

错误文本

I01-I99

提示文本

W01-W99

警告文本

S01-S99

SELECTION-Screen使用

T01-T99

一般文本

H01-H99

报表头或表格标题等

 

4.9  变量命名规则

4.9.1  为了更好的区分变量的作用范围,规范变量的正确引用,把变量分为局部变量和全局变量。全局变量必须定义于程序头,其名称一般增加前缀“g_”,但为简化书写可省略全局变量的前缀;局部变量可根据实际情况灵活定义,其名称必须增加前缀“l_”;

4.9.2  为保证数据的一致性,在变量定义时尽量使用like、type等进行引用已有类型;

4.9.3  定义变量应按照一定的顺序定义,参考顺序如下:

4.9.3.1  Tables (only if required for SELECT-options)

4.9.3.2  Nodes

4.9.3.3  Infotypes

4.9.3.4  Controls (for dialogue processing only)

4.9.3.5  Type-groups

4.9.3.6  Types

4.9.3.7  Constants

4.9.3.8  Data (structures)

4.9.3.9  Data (internal tables and their work areas)

4.9.3.10  Data (objects)

4.9.3.11  Ranges

4.9.3.12  Data (simple fields)

4.9.3.13  Field-symbols

4.9.3.14  Field groups (followed by INSERT into field-groups)

4.9.3.15  SELECTION-Screen data (for list processing only)

4.9.3.16  Parameters

4.9.3.17  SELECT-options

4.9.4  为便于识别变量类型,在变量前需要增加变量类型前缀,如下:

类型

说明

变量前缀

备注

C

字符串

c_

 

N

数字

n_

 

D

日期

d_

 

T

时间

t_

 

X

十六进制

x_

 

I

整数

i_

 

P

压缩号

pn_

 

F

浮点数

f_

 

String

字符串

str_

 

Xstring

X字符串

xstr_

 

Constants

常量

con_

 

Type

类型

ty_

 

Internal Table

内表

itb_

 

Work Area

工作区

wa_

 

Range

范围

s_

 

Field-symbols

字段符号

fs_

 

SELECT Options

选择选项

s_

 

Parameters

选择参数

p_

p_名称

Radiobutton

单选

rb_

 

Checkbox

复选框

cb_

 

Select

下拉框

sl_

 

Form Name

子程序名

动词_其它描述

Form Parameters

子程序参数

p_

p_变量属性_名称

Function Name

函数名

z_,y_

参考4.1.2

Function Parameters

函数参数

变量前缀

变量属性_名称

 

4.10  子程序命名规则

4.10.1  在子程序定义时必须有相应的用途和参数说明等,样式如下:

 

*&---------------------------------------------------------------------*

*&      Form  子程序名

*&---------------------------------------------------------------------*

*       用途说明

*----------------------------------------------------------------------*

*      -->P_P1  传入参数1

*      -->P_P2  传入参数2

*      <--P_RP1 返回参数名

*      -->P_TB1 表参数

*----------------------------------------------------------------------*

4.10.2  子程序引用参数前缀使用“p_”;

4.11  报表输出

4.11.1  报表输出方式有ALV,EXCEL,直接写屏或其它;

4.11.2  EXCEL输出方式模板文件名称按[AA][SEQ]<OT>格式编写;

4.11.2.1  AA表示SAP S/4 应用模块,其定义见3.4;

4.11.2.2  SEQ为流水号,该流水号必须与对应的程序流水号相同;

4.11.2.3  OT表示其它字符或数字等,当AA和SEQ都无法唯一区别时,可以使用该选项;

4.11.3  当EXCEL输出方式模板文件为EXCEL时,其表格名称必须按文件名称重命名;

5  程序结构

良好的程序结构便于阅读和维护,能大大提高软件开发人员的工作效率。在ABAP代码编写过程中,可根据程序类型不同而顺序包含5.2中的部分结构。

5.1  程序事件

5.1.1  INITIALIZATION

5.1.2  AT SELECTION-SCREEN OUTPUT

5.1.3  AT SELECTION SCREEN ON VALUE-REQUEST

5.1.4  AT SELECTION SCREEN ON HELP-REQUEST

5.1.5  AT SELECTION SCREEN ON <parameter>

5.1.6  AT SELECTION-SCREEN

5.1.7  START-OF-SELECTION

5.1.8  GET <node>

5.1.9  END-OF-SELECTION

5.1.10  TOP-OF-PAGE

5.1.11  TOP-OF-PAGE DURING LINE-SELECTION

5.1.12  END-OF-PAGE

5.1.13  AT LINE-SELECTION

5.1.14  AT USER-COMMAND

5.1.15  FORM

5.1.16  ENDFORM

5.2  代码结构

5.2.1  程序头部

程序头部是记录程序开发过程中的一些控制信息,便于对程序的功能了解和后期维护,样式如下:

************************************************************************

*  程序名:XXXXX

*  程序名称:XXXXX

*-------------------------------------------------

*  创建日期       程序员    SAP版本    程序类型

*  YYYYMMDD       XXXXXX    R4.7       RP/F...

*-------------------------------------------------

*  描述:

*    XXXX

*=================================================

*  修改日期   版本    修改人      修改描述

*             1.1

************************************************************************

5.2.2  程序名称部分

程序名称部分记录程序名称及其它属性,样式如下:

REPORT  XXXXX MESSAGE-ID XX.

5.2.3  全局定义部分

    全局定义部分包含表、信息类型、全局变量的声明,样式如下:

*----------------------------------------------------------------------*

*                             GLOBLE-DEFINATION                        *

*----------------------------------------------------------------------*

tables:...

 

infotypes: ...

 

include zrpcm001.

 

data:...

5.2.4  程序取数逻辑部分

    程序取数逻辑部分包含屏幕样式、程序初始化、人机交互、取数逻辑等,样式如下:

*----------------------------------------------------------------------*

*                             SELECTION-SCREEN                         *

*----------------------------------------------------------------------*

 

*----------------------------------------------------------------------*

*                             INITIALIZATION                           *

*----------------------------------------------------------------------*

 

*----------------------------------------------------------------------*

*                            AT SELECTION-SCREEN                       *

*----------------------------------------------------------------------*

 

*----------------------------------------------------------------------*

*                            START-OF-SELECTION                        *

*----------------------------------------------------------------------*

START-OF-SELECTION.

 

取数语句

 

*----------------------------------------------------------------------*

*                             END-OF-SELECTION                         *

*----------------------------------------------------------------------*

END-OF-SELECTION.

5.2.5  结果输出部分

    结果输出部分包含模板下载、结果填充等,样式如下:

PERFORM templetdownload USING 模板名.

 

输出语句

 

PERFORM displayexcel."显示EXCEL

5.2.6  子程序部分

*----------------------------------------------------------------------*

*                            SUBROUTINES(子程序FORM)                  *

*----------------------------------------------------------------------*

 

5.3  程序注释

5.3.1  良好的程序注释便于程序的理解,达到“程序文档化”的状态。注释主要用于程序头说明、变量说明、修改备注、包含文件引用说明、FORM程序说明以及其它说明。

5.3.2  程序注释分为行外注释和行内注释。行外注释就是注释单独成行,行首使用星号“*”标识,行内注释就是注释与变量、方法、对象等在同一行,并且放在其后,注释字符前使用英文的双引号“"”标识;

5.3.3  程序头部说明采用行外注释方式,主要包含程序名、程序名称、创建信息、程序用途以及修改原因和情况;

5.3.4  变量说明一般采用行内注释方式;

5.3.5  修改备注、包含文件引用说明采用行外注释方式;

5.3.6  FORM程序说明采用行外注释方式,主要包含FORM名称、功能说明以及参数说明等;

5.3.7  其它说明是指在IF、LOOP、CASE、WHILE等结构的开始和结束处加上注释,便于分解程序运行逻辑;

5.4  其它

5.4.1  在程序编写过程中注意代码段间行宽,在合适处换行来提高代码可读性;

5.4.2  为了保证程序在不同SAP版本间的兼容性,每行ABAP代码不能超过72个字符;

5.4.3  在使用DO语句时,尽量使用DO x TIMES,避免出现死循环;

5.4.4  两个结构体ty_a、ty_b进行赋值,使用ty_b=ty_a,而不使用MOVE-CORRESPONDING ty_a TO ty_b;

5.4.5  两个内表itab1、itab2结构相同,需要赋值,使用itab1[]=itab2[],而不使用循环操作赋值。

6  测试方法

6.1  测试案例编制

6.1.1  测试案例就是设计一个业务运行情况,软件程序在这种情况下,必须能够正常的运行并且达到程序设计的预期执行结果;

6.1.2  测试案例编制方法有等价划分法、边界值分析法、错误推断法、因果图法、判定表驱动法、正交试验法、功能图法等;

6.1.3  测试案例由用例编号、用例目的、操作步骤、输入数据或调用数据、期望结果等组成,格式如下:

用例编号

用例目的

操作步骤

输入数据/调用数据

期望结果

001

测试多个公司时显示顺序是否先按公司排序

输入多个公司代码操作

输入两个以上公司代码

先按公司排序

 

6.2  测试场景的定义

6.2.1  测试场景就是对用户需求内容的不同情况的定义。在场景设计过程中要尽量考虑全面,特别是一些很少发生的业务逻辑,这样才能达到程序与需求间匹配性的全面诊断;

6.2.2  测试场景由用例编号、用例目的、场景编号、场景名称、场景目的、菜单路径/事务代码、所用字段、字段数据、预期结果、实际结果等组成,其格式如下:

用例编号

用例目的

场景代码

场景名称

场景目的

菜单路径/事务代码

所用字段

字段数据

预期结果

实际结果

001

 

001.01

 

 

 

 

 

 

 

 

6.3  测试数据生成

     按测试场景要求操作相关业务,以获得测试过程中需要的各种业务数据;

6.4  测试结果的反馈

6.4.1  测试结果填写在场景测试的实际结果栏;

6.4.2  如果实际结果与预期结果一样使用绿色字体进行说明,否则使用红色字体进行说明。在程序员调整完相应的逻辑后,又再次进入程序测试;

7  请求管理

7.1  请求的生成

7.1.1  客户的测试数据,如果不传生产系统,那么尽量使用本地对象,不要产生传输请求;

7.1.2  请求生成过程中,如果不同传输内容需同时传到生产系统,那么尽量使用同一传输请求;

7.1.2  传输请求描述尽量能准确表现请求的用途,在其末尾加上生成请求的年月日时间;

7.2  请求的释放

7.2.1  确认请求任务下的所有子请求已完成,所有包含的对象已激活;

7.2.2  对请求进行检查,确认无错误报告,同时需注意报警信息;

7.2.3  为方便信息跟踪和请求的协调管理,需在文档栏填写带释放人信息的备注;

7.3   请求的上传

7.3.1  在传输请求前,需要明白传输的内容以及影响范围;

7.3.2  传输完成后需在生产系统上进行检查和验证。

おすすめ

転載: www.cnblogs.com/BruceKing/p/12302287.html