ABAP テストコックピットを使用したコード分析の実行
コードの出力が適切ではないことに気付きました。特に、コンソールでは、空席数がゼロより大きい場合でも、最大座席数と予約済座席数は同じになります。ABAP テストコックピットのチェックバリアントを登録し、それを使用してコードを分析します。
タスク 1: チェックバリアントの登録
パッケージで、新しいチェックバリアントを登録します (推奨名: Z##_VARIANT、## は各自のグループ番号)。カテゴリ拡張プログラムチェック (SLIN)のすべてのチェックが実行されるように、チェックバリアントを設定します。
ヒント
デフォルトでは、拡張プログラムチェック (SLIN) では、利用可能なチェックのサブセットのみが実行されます。
ステップ
新規 ATC チェックバリアントを登録します。
左側の Project Explorer で、パッケージを右クリックし、New→Other ABAP Repository Object を選択します。
フィルタフィールドに、「atc」と入力します。
ATC Check Variant を選択し、Next を選択します。
Name に Z##_VARIANT、Description に Extended Program Check と入力し、Next を選択します。
移送依頼を確認し、Finish を選択します。
ATC チェックバリアントに ATC チェック拡張プログラムチェック (SLIN) を含めます。
ATC チェックバリアントの左側にある ATC チェックセクションで、ノード Syntax and activation を展開します。
拡張プログラムチェック (SLIN) を選択します。
ATC チェック拡張プログラムチェック (SLIN) のパラメータを編集します。パラメータ StandardOrCustom の値を 2 に設定し、他のすべてのパラメータの値が true であることを確認します。
拡張プログラムチェック (SLIN) を左クリックして、右側の ATC チェック詳細セクションでこの ATC チェックを開きます。
ATC チェック詳細セクションで、パラメータタブを選択し、このチェックのパラメータを照会します。
StandardOrCustom パラメータの値を 1 から 2 に変更します。
一覧を下にスクロールし、必要に応じて残りのパラメータの値を false から true に変更します。
チェックバリアントを有効化します。
Ctrl + F3 を押して、チェックバリアントを有効化します。
タスク 2: コード改善
チェックバリアント Z##_VARIANT を使用して、前の演習問題で登録したクラス ZCL_##_SOLUTION の静的コードチェックを実行します。結果を分析し、必要に応じてコードを修正します。
ステップ
チェックバリアント Z##_VARIANT を使用して、クラス ZCL_##_SOLUTION のチェックを実行します。
クラスのソースコード内の任意の場所を右クリックし、Run As→ABAP Test Cockpit With... を選択します。
チェックバリアントの名称 (Z##_VARIANT) を入力し、OK を選択します。
注記
チェックは非同期で実行されます。右下隅の緑色のバーが消えるまで待ちます。
ABAP エディタの下にある ATC Problems ビューを選択して、チェック結果を照会します。
結果を分析し、SEATS_OCC 項目に関連する警告を修正します。
ヒント
コードが正しい場合は、属性 SEATS_MAX、SEATS_OCC、および SEATS_FREE が同じ場所で使用されます。
警告項目 SEATS_OCC で読込が実行されませんでしたという警告が表示されます。
警告をダブルクリックして、ソースコードにナビゲートします。
属性 SEATS_MAX にカーソルを置き、ツールバーから使用先一覧取得を選択します。または、Ctrl + Shift + G を押すこともできます。
使用先一覧から、APPEND 命令の 1 つで SEATS_OCC 属性の代わりに SEATS_MAX 属性が誤って使用されていることがわかります。
使用先一覧で一致 APPEND |Occupied Seats: { seats_max }| TO r_result. をダブルクリックして、対応する命令にナビゲートします。
APPEND 命令で SEATS_MAX を SEATS_OCC に置き換えて問題を修正します。
CURRENCY_CODE 項目に関連する判定を修正します。
ヒント
CURRENCY_CODE 属性はまだ使用されていないことがわかっていますが、将来の開発のために保持する必要があります。そのため、プラグマを使用してこの警告を非表示にします。
ATC Problems ビューに戻ります。
項目 CURRENCY_CODE で読込が実行されませんという警告が表示されます。
警告を選択すると、警告の詳細が表示されます。
右側の詳細セクションで、.... を使用して、判定は非表示にできるで始まる文を見つけます。
警告をダブルクリックして、ソースコードにナビゲートします。
DATA 命令を以下のように調整します。
1
DATA currency_code TYPE /dmo/currency_code ##NEEDED.
クラスを有効化し、コードチェックを繰り返して、2 つの警告が表示されていることを確認します。
注記
現時点では、他の結果は無視します。これらについては、このコースの後のセクションで説明します。
Ctrl + F3 を押してクラスを有効化します。
ATC Problems ビューに戻ります。
発見事項のいずれかを右クリックして、コンテキストメニューを開きます。
コンテキストメニューから、再チェックを選択します。