この演習問題では、操作を容易にするために、コーディングに文書を追加します。
タスク 1: テンプレートのコピー (オプション)
テンプレートクラス /LRN/CL_S4D401_EXS_CLASS をコピーします。前の演習問題を完了した場合は、このタスクをスキップし、クラス ZCL_##_SOLUTION の編集を続行することができます。
ステップ
クラス /LRN/CL_S4D401_EXS_CLASS を独自のパッケージのクラスにコピーします (推奨名: ZCL_##_SOLUTION、## はグループ番号)。
Project Explorer で、クラス /LRN/CL_S4D401_EXS_CLASS を右クリックしてコンテキストメニューを開きます。
コンテキストメニューから Duplicate.... を選択します。
Package 項目にパッケージの名称を入力します。Name 項目に、ZCL_##_SOLUTION (## はグループ番号) と入力します。
Next を選択します。
移送依頼を確認し、Finish を選択します。
コピーを有効化します。
Ctrl + F3 を押してクラスを有効化します。
タスク 2: 文書追加
ABAP Doc 文書をローカルクラス LCL_CARRIER およびファクトリメソッド GET_INSTANCE に追加します。
提案された文書テキスト
| タイプ | コードエレメント | アクティビティ |
|---|
| ローカルクラス | LCL_CARRIER | フライトキャリア - 工場ロジックにより、航空会社 ID ごとに 1 つのインスタンスのみが存在することが保証されます。 |
| Method | GET_INSTANCE | ファクトリメソッド - このクラスのインスタンスを返します。 |
| パラメータ | i_carrier_id | 運送業者の 3 文字の ID。 |
| パラメータ | r_result | インスタンスへの参照 - インスタンス化が失敗した場合は初期値。 |
| 例外 | ZCX_##_FAILED | インスタンス化失敗 - 詳細については例外テキストを評価してください。 |
ステップ
クイックフィックスを使用して、ABAP Doc 文書をローカルクラス LCL_CARRIER に追加します。
グローバルクラスで、ローカルクラス LCL_CARRIER の定義にナビゲートします。
CLASS … DEFINITION 命令で、lcl_carrier にカーソルを置き、Ctrl + 1 を押して利用可能なクイックフィックスを呼び出します。
利用可能なクイックフィックスの一覧から、Add ABAP Doc を選択します。
結果
クイックフィックスにより、コードが以下のように調整されます。
12
CLASS lcl_carrier DEFINITION CREATE PRIVATE.
表のテキストを使用して文書を更新します。
ヒント
Enter を押すと、エディタによって "! で始まる新しい行が挿入されます。
コードを以下のように調整します。
123
CLASS lcl_carrier DEFINITION CREATE PRIVATE.
ローカルクラス LCL_CARRIER の ABAP エレメント情報を照会して、出力を確認します。
CLASS … DEFINITION 命令で、lcl_carrier にカーソルを置き、F2 を押してエレメント情報を表示します。
ABAP Doc テキストがヘッダ Documentation の下に表示されます。
クイックフィックスを使用して、ローカルクラス LCL_CARRIER の静的メソッド GET_INSTANCE に ABAP Doc 文書を追加します。
LCL_CARRIER クラスで、メソッド GET_INSTANCE の定義にナビゲートします。
CLASS-METHODS 命令で、get_instance にカーソルを置き、Ctrl + 1 を押して利用可能なクイックフィックスを呼び出します。
利用可能なクイックフィックスの一覧から、Add ABAP Doc を選択します。
結果
クイックフィックスにより、コードが以下のように調整されます。
12345
CLASS-METHODS get_instance
表のテキストを使用して、メソッドの文書を更新します。
コードを以下のように調整します。
12345
CLASS-METHODS get_instance
メソッドパラメータおよび例外の文書を、表のテキストで更新します。
コードを以下のように調整します。
12345
CLASS-METHODS get_instance
ローカルクラス LCL_CARRIER のメソッド GET_INSTANCE の ABAP エレメント情報を照会して、出力を確認します。
CLASS-METHODS 命令で、get_instance にカーソルを置き、F2 を押してエレメント情報を表示します。
ABAP Doc テキストは、ヘッダ Documentation の下に表示されます。
タスク 3: 書式設定済文書の追加
ローカルクラス LCL_CARRIER のメソッド FIND_PASSENGER_FLIGHT の書式設定済 ABAP Doc 文書を追加します。オプションで、メソッド FIND_CARGO_FLIGHT に類似の ABAP Doc 文書を追加します。
提案された文書テキスト
| タイプ | コードエレメント | アクティビティ |
|---|
| Method | FIND_PASSENGER_FLIGHT | 2 つの空港間の旅客便を検索します。 |
| パラメータ | i_airport_from_id | 出発空港 |
| パラメータ | i_airport_to_id | 到着空港 |
| パラメータ | i_from_date | 最初の可能フライト日付 |
| パラメータ | i_sets | 空席の最小数 |
| パラメータ | e_flight | フライトが見つかりました (オブジェクト参照) |
| パラメータ | _days_later | 要求日付後の日数 |
ステップ
クイックフィックスを使用して、ABAP Doc 文書をローカルクラス LCL_CARRIER のメソッド FIND_PASSENGER_FLIGHT に追加します。
LCL_CARRIER クラスで、メソッド FIND_PASSENGER_FLIGHT の定義にナビゲートします。
METHODS 命令で、find_passenger_flight にカーソルを置き、Ctrl + 1 を押して利用可能なクイックフィックスを呼び出します。
利用可能なクイックフィックスの一覧から、Add ABAP Doc を選択します。
結果
クイックフィックスにより、コードが以下のように調整されます。
12345678
METHODS find_passenger_flight
表のテキストを使用して、メソッドの文書を更新します。乗客のフライトを強調されたテキストとして書式設定し、フライトプロパティにソートされていない一覧を使用してください。
ヒント
書式ディレクティブを暗記する必要はありません。Ctrl + Space を押して、コード完了によって書式ディレクティブを挿入します。
コードを以下のように調整します。
123456789101112
METHODS find_passenger_flight
表のテキストを使用して、メソッドパラメータの文書を更新します。出発および到着は、強調テキストとして書式設定してください。
コードを以下のように調整します。
123456789101112
METHODS find_passenger_flight
ローカルクラス LCL_CARRIER のメソッド FIND_PASSENGER_FLIGHT の ABAP エレメント情報を照会して、出力を確認します。
METHODS 命令で、find_passenger_flight にカーソルを置き、F2 を押してエレメント情報を表示します。
ABAP Doc テキストは、ヘッダ Documentation の下に表示されます。
オプション: メソッド FIND_CARGO_FLIGHT の同様の書式設定済 ABAP Doc 文書を追加します。
ヒント
メソッド FIND_PASSENGER_FLIGHT の ABAP Doc 文書をコピーしてペーストし、それをメソッド FIND_CARGO_FLIGHT に調整します。
コードを以下のように調整します。
123456789101112
METHODS find_cargo_flight
タスク 4: リンク追加
ローカルクラス LCL_FLIGHT に以下の ABAP Doc 文書を追加します。
提案された文書テキスト
| タイプ | コードエレメント | アクティビティ |
|---|
| ローカルクラス | LCL_FLIGHT | クラス lcl_passenger_flight および lcl_cargo_flight の抽象スーパークラス すべてのインスタンスは、属性 carrier_id、connection_id、および flight_date によって一意に識別されます。 |
ローカルサブクラス LCL_PASSENGER_FLIGHT および LCL_CARGO_FLIGHT の文書と、パブリック属性 carrier_id、connection_id、および flight_date へのリンクを追加します。
ステップ
クイックフィックスを使用して、ABAP Doc 文書をローカルクラス LCL_FLIGHT に追加します。
グローバルクラスで、ローカルクラス LCL_FLIGHT の定義にナビゲートします。
CLASS … DEFINITION 命令で、lcl_flight にカーソルを置き、Ctrl + 1 を押して利用可能なクイックフィックスを呼び出します。
利用可能なクイックフィックスの一覧から、Add ABAP Doc を選択します。
結果
クイックフィックスにより、コードが以下のように調整されます。
12
CLASS lcl_flight DEFINITION ABSTRACT.
表のテキストを使用して文書を更新します。
コードを以下のように調整します。
12345678
CLASS lcl_flight DEFINITION ABSTRACT.
lcl_cargo_flight の後に改行を追加します。
コードを以下のように調整します。
12345678
CLASS lcl_flight DEFINITION ABSTRACT.
ローカルクラス LCL_PASSENGER_FLIGHT の文書へのリンクと、ローカルクラス LCL_CARGO_FLIGHT の文書へのリンクを追加します。
注記
この ABAP Doc 文書は、ローカルクラス LCL_FLIGHT の内部ではなく、グローバルクラスレベルにあります。つまり、リンクの先頭にあるピリオド記号がグローバルクラスに対応します。同じグローバルクラスのローカルクラスをアドレスするには、クラス名の前にピリオド記号を付ける必要があります。
コードを以下のように調整します。
12345678
CLASS lcl_flight DEFINITION ABSTRACT.
ローカルクラス LCL_FLIGHT の属性 carrier_id、connection_id、および flight_date にリンクを追加します。
注記
リンク内の属性またはその他のデータオブジェクトを参照する場合は、オブジェクト名の直前に DATA: を挿入する必要があります。
コードを以下のように調整します。
12345678
CLASS lcl_flight DEFINITION ABSTRACT.
ローカルクラス LCL_FLIGHT の ABAP エレメント情報を照会して、出力を確認します。リンクを選択して、それらが動作することを確認します。
CLASS … DEFINITION 命令で、lcl_flight にカーソルを置き、F2 を押してエレメント情報を表示します。
ABAP Doc テキストがヘッダ Documentation の下に表示されます。
最後に、コードを有効化します。
Ctrl + F3 を押してコードを有効化します。