ABAP オブジェクトの命名規則 

クラスビルダで登録されたグローバルクラスとインタフェースはクラスライブラリに格納され、 R/3 リポジトリにより管理されます。したがって、他のリポジトリオブジェクト ( データベーステーブル、構造、データエレメントなど ) と同じ名称領域を持ちます。
したがって、オブジェクトタイプとそのコンポーネントの命名規則を設定し、プログラム開発時にこれらの命名規則を一律に使用する必要があります。

SAP 名称領域 においては次の命名規則が使用されます。
オブジェクトタイプ
( クラスとインタフェース ) の命名規則に従わないと、システムによる永続クラスの登録時に、必要な共有クラスを生成できないため、コンフリクトが発生します。

コンポーネントの名称領域

クラス内の 1 つの名称領域は、次のコンポーネントによって共有されます。

メソッド実装には、ローカル名称領域が使用されます。 ローカル変数の名称によって、クラスコンポーネントの名称が不明確になることがあります。

命名規則

オブジェクトの名称の設定に悪影響を及ぼさないようにするため、命名規則はできるかぎり一般的なものにしました。

一般的な規則

開発オブジェクトの名称を選択するときには、以下の規則に従ってください。

たとえば、 BUKRS ではなく CL_COMPANY_CODE を使用します。

: CL_COMPANY_CODE CL_GENERAL_LEDGER_ACCOUNT

: PRINT_RECTANGLE (RECTANGLE_TO_SPOOL ではない )

オブジェクトタイプの規則

クラスライブラリのクラスおよびインタフェースの名称は、データエレメント、テーブル、構造、データ型と同じ名称領域に属しています。 これらの名称は、テーブル TADIR で一元管理されます。

クラスライブラリのクラス

CL_< クラス名 >

クラス名には、単数形の名詞を使用します。

CL_COMPANY_CODE, CL_GENERAL_LEDGER_ACCOUNT

クラスライブラリのインタフェース

IF_< インタフェース名 >

クラスと同じ命名規則がインタフェースに適用されます。

IF_STATUS_MANAGEMANT, IF_CHECKER

プログラムのローカルクラス
( 推奨 )

LCL_< クラス名 >

クラス名には、単数形の名詞を使用します。

LCL_TREE_MANAGEMENT

プログラムのローカルインタフェース
( 推奨 )

LIF_< インタフェース名 >

クラスと同じ命名規則がインタフェースに適用されます。

LIF_PRINTER

推奨されている命名規則は、必須ではありません。 ただし、これらのクラスとインタフェースの名称に接頭辞を使用する場合には、上記の表に示されている接頭辞を使用してください。

コンポーネントの規則

メソッド名

< メソッド名 >

動詞から始まるメソッド名を使用してください。

GET_STATUS, CREATE_ORDER, DETERMINE_PRICE

イベント

< イベント名 >

イベント名は次の形式で指定してください。
< 名詞 >_< 分詞 >:

BUTTON_PUSHED, COMPANY_CODE_CHANGED, BUSINESS_PARTNER_PRINTED

クラス内のローカルのデータ型定義
( 推奨 )

TY_< データ型名 >

TY_INTERNAL_TYPE, TY_TREE_LIST

データ定義 ( 変数 )

< 変数名 >

クラス内で変数を指定する場合には (CLASS-DATA または DATA) 、動詞で始まる変数名は使用しないでください ( メソッド名とのコンフリクトを防ぐため )

LINE_COUNT, MARK_PRINTED, MARK_CHANGED, STATUS

データ定義 ( 定数 )
(
推奨 )

CO_< 定数名 >

CO_MAX_LINE, CO_DEFAULT_STATUS, CO_DEFAULT_WIDTH, CO_MAX_ROWS

推奨されている命名規則は、必須ではありません。 ただし、これらのクラスおよびインタフェースの名称に接頭辞を使用する場合には、上記の表に示されている接頭辞を使用してください。

メソッドの詳細な記述

属性アクセス

SET_<attribute name>, GET_< 属性名 >

属性へアクセスするメソッドには、 GET_ または SET_ で始まる名称を指定してください。

GET_STATUS, SET_USE_COUNT

イベントハンドラメソッド

ON_< イベント名 >

イベントを取り扱うメソッドには、 ON で始まり、取り扱うイベント名が続く名称を指定してください。

ON_BUTTON_PUSHED, ON_BUSINESS_PARTNER_PRINTED

データ型変換を実行するメソッド

AS_< 新規データ型 >

AS_STRING, AS_ISOCODE

ブール値を戻すメソッド

これらのメソッドは、例外を戻さないことがあります

推奨事項 : SPACE 'X' を使用して FALSE/TRUE を示します。

IS_< 形容詞 >

IS_OPEN, IS_EMPTY, IS_ACTIVE

チェックメソッド

CHECK_< チェック対象 >

CHECK_AUTHORIZATION, CHECK_PROCESS_DATE

 

メソッド内でのみ有効な規則

パラメータ

パラメータは、その実装メソッドを基準にして扱われます。

IMPORTING パラメータ

IM_< パラメータ名 >

EXPORTING パラメータ

EX_< パラメータ名 >

CHANGING パラメータ

CH_< パラメータ名 >

RESULT

RE_< 結果 >

接頭辞の使用は必須ではありません。 ただし、接頭辞を使用する場合には、上記の表に示されている接頭辞を使用してください。

例外

次の表に、総称的に使用可能な有効な例外名を示します ( たとえば、 NOT_FOUND DATE_NOT_FOUND として使用できます )

例外

説明

ACTION_NOT_SUPPORTED

要求されたアクションまたは機能コードはサポートされていません。

CANCELLED

実行操作を求めるダイアログ ( 選択一覧など ) を使用するメソッドで、ユーザが " 中止 " を選択した場合にこの例外を設定できます。

EXISTING

新規に登録しようとしたオブジェクトは、すでにデータベース内に登録されています。

FAILED

現在の環境が原因でメソッドを実行できませんでした。 これは、変化しやすいシステム環境が原因でメソッドを実行できない場合のための例外です。

..._FAILED

現在の環境が原因でメソッドの一部が完了しませんでした。 (OPEN_FAILED, CLOSE_FAILED, SELECTION_FAILED, AUTHORIZATION_FAILED)

FOREIGN_LOCK

データが他のユーザによってロックされています。

INCONSISTENT

データベースのオブジェクトデータに不整合があります。

..._INCONSISTENT

データベースのオブジェクトの のコンポーネントデータに不整合があります。

INVALID

入力されたブジェクトデータが誤っています ( 未登録の会社コードなど ) NOT_QUALIFIED と比較してみてください。

..._INVALID

オブジェクトについて入力されたコンポーネントデータが誤っています。 NOT_QUALIFIED と比較してみてください。

INTERNAL_ERROR

この例外は、最終的な手段として使用してください。 エラーについて正確な情報が不明な場合にのみこの例外を使用してください。

NOT_AUTHORIZED

ユーザに、必要な権限がありません。

NOT_CUSTOMIZED

要求されたオブジェクトが適切にカスタマイズされていません。

..._NOT_CUSTOMIZED

要求されたオブジェクトのコンポーネント が、適切にカスタマイズされていません。

NOT_FOUND

要求されたオブジェクトが見つかりません。

..._NOT_FOUND

要求されたオブジェクトのコンポーネント が見つかりません。

NOT_QUALIFIED

この入力パラメータの組合せではメソッドを実行できません。 INVALID と比較してみてください。

..._NOT_QUALIFIED

メソッドのパラメータの 1 つが不適切です。

NUMBER_ERROR

番号の割当時のエラーです。

SYSTEM_ERROR

予期されないエラーメッセージがベーシスシステムにより戻された場合にこの例外が設定されます。