!--a11y-->

ABAP プログラムのチェックは、登録時には静的に行われ、実行時には動的に行われます。
静的チェックでは、構文チェックによってプログラムの構文がテストされ、拡張プログラムチェックによってセマンティックチェックが行われます ( たとえば、外部プロシージャコールでのインタフェースパラメータの数とタイプが正しいかどうかのチェックを含みます) 。
構文チェックでは、プログラムの構文と内部セマンティックがチェックされます。エラーが発生すると、チェックが停止して、適切なエラーメッセージが生成されます。多くの場合は、提案される解決策を示したダイアログボックスが表示されます。この提案解決策をプログラムに採用する場合は、" 訂正" を選択します。その後で、構文チェックが繰り返されます。
インクルードプログラムに対して構文チェックを実行する際に、インクルードプログラムは、チェック前に、プログラムの TOP インクルードと結合されます。メインプログラムの構文チェックを実行するときに、1 つのプログラムに属するすべてのインクルードの整合性と完全性のみがチェックされます ( たとえば、プログラムから呼び出されたすべてのサブルーチンが実際に定義されているかどうか) 。
構文チェックで警告が生成されることがあります。この場合、構文チェックは即時に終了せず、技術上はプログラムを実行することができます。ただし、構文警告は常に訂正してください。構文警告によって、プログラム実行時に予想外のエラーが発生することがあるためです。また、将来のリリースで ABAP 構文に関する規則が厳しくなると、どんな警告でも構文エラーになる可能性があります。
パフォーマンス上の理由から、多くのチェックが標準の構文チェックから除外されています。拡張プログラムチェックでは、プログラムから呼び出された外部プロシージャのインタフェースを含めて、完全なチェックが行われます。
拡張プログラムチェックのエラーによって例外が発生し、その例外から、プログラムを実行する際に実行時エラーが発生します。例外は 必ず訂正してください。到達できないコーディングは例外です。ただし、プログラムのサイズを最小化するために、このようなコーディングを削除して、ソースコードを分かりやすくしてください。
拡張プログラムチェックの警告も訂正してください。明らかに正しいにもかかわらず、拡張プログラムチェックで警告を生成する命令がプログラムに組み込まれている場合には、擬似コメント ( "#EC…) を使用して、そのような命令をチェックから除外することができます。
新規プログラムに対して、常に拡張プログラムチェックを実行してください。新規プログラムに対して拡張プログラムチェックをエラーや警告を発生せずに実行できるようになってはじめて、そのプログラムの開発が終了します。メッセージは一般には重大でないため、許容できます。
拡張プログラムチェックも静的チェックにすぎません。拡張プログラムチェックで、例外状況や実行時エラーにつながるような状況をすべて排除することはできません。たとえば、引数を項目の内容として動的に指定する命令や、プロシージャを動的に呼び出す命令を静的にチェックすることはできません。
静的に検出できず、実行時に発生するエラーは、ABAP 実行時環境によって検出されます。このようなエラーは例外につながります。このような例外を処理しない ( または処理できない) 場合には、実行時エラーが発生します。実行時エラーが発生した場合は、実行時環境でプログラムが強制終了してショートダンプが生成され、エラーの分析が実行できる特別な画面に切り替えられます。
ショートダンプは、エラーのさまざまな側面について記述したブロックに分割されます。概要で、ショートダンプに含まれている情報を照会することができます。たとえば、データオブジェクトの内容、有効なコール、制御構造などが含まれています。ショートダンプ概要では、ABAP デバッガで強制終了が発生した場所を照会することもできます。
発生する可能性のあるエラーは、以下のとおりです。
キ 内部エラー
カーネルがエラーを見つけました。この場合は SAP に連絡してください。
キ インストールおよび環境またはリソースエラー
不正なシステムインストールまたはリソースの不足 ( 例: データベースが閉じている) によるエラーです。
キ アプリケーションプログラムのエラー
標準的な原因:
数値項目の内容の書式が正しくない
算術オーバーフロー
外部プロシージャが存在しない
パラメータを外部プロシージャに渡す際のタイプ不整合
ショートダンプはシステムに 14 日間保持されます。ショートダンプを管理するには、トランザクション ST22 を使用します。ショートダンプを初期値の 14 日間以上保持したい場合は、保持機能を使用します。初期値の 14 日以外の日付基準によってショートダンプを削除する場合は、再編成を選択します。トランザクション ST22 を使ってショートダンプを照会する場合は、デバッガに分岐することができません。
解決不可能な問題が ABAP プログラムに発生した場合は、ショートダンプの抽出を SAP にお送りください。問題を解決するためには、ショートダンプの内容が SAP ホットラインおよびリモートコンサルティングにとって重要です。
