【SAPが動画で学べる!】YouTubeチャンネル開設しました ▶ SAPラボチャンネルはコチラ

【SAP ABAP】デバッグの基本操作について徹底解説!

SAP debug
販売出力マスタ

登場人物紹介

三崎レイナ
社会人1年目。新卒でITコンサルティングファームに就職。初配属がSAPプロジェクトにアサインされる。SAPがわからないことだらけで悩んでいたところ、会社の先輩にSAPラボの所長を紹介され、毎週末に所長とSAPのお勉強中!

博士
SAPラボの所長。SAP大好き博士!SAP導入プロジェクトを構想策定~運用保守まであらゆるフェーズを数多く経験。
いまは優しきおじいちゃんだが、プロマネバリバリの時代はかなり怖かったらしい。現在は引退しSAPの後進育成と啓蒙活動に従事中!
若者に負けぬようX(旧Twitter)も奮闘中。

この記事を読むメリット
  • SAPでのデバッグの概要が分かる
  • デバッグ方法を習得できる
  • ブレークポイントやウォッチポイントの使い方が分かる

SAPで開発や調査をしていると、
「この値はどこでセットされているのか」「なぜ想定どおりに動かないのか」「どの処理を通ってこの結果になったのか」を確認したい場面がよくあります。

そのようなときに欠かせないのが デバッグ です。
デバッグを使うことで、プログラムの実行を途中で止めながら、変数の中身や処理の流れを確認できます。

特にABAP開発や標準調査では、ソースコードを読むだけでは原因を特定しきれないことも多く、
実際に処理を止めて確認すること が問題解決の近道になることがあります。

この記事では、SAPにおけるデバッグの基本的な考え方から、代表的なデバッグ方法、関連トランザクション、調査時に知っておくと便利な情報まで、実務目線で整理して解説します。

博士

デバッグ以外にも不具合調査の方法はあるぞい!
次の記事を参考にするのじゃ!

SAPフリーランスバンク SAPフリーランスバンク
  • 転職求人
  • フリーランス案件
株式会社日立産業制御ソリューションズ

【リモート可】【PM/PL候補】【東京】SAP(S/4HANA)エンジニア ※フレックスタイム制/ワークライフバランス◎(S/4HANA)

年収
430~800万円 / 年
勤務地
東京本社:東京都台東区秋葉原6番1号(...
雇用形態
正社員
要スキル:
【必須】 SAP導入に強い興味があり、以...
キリンビジネスシステム株式会社

SAP会計領域コンサルタント(管理職)/キリングループ唯一のIT会社(FI/CO)

年収
900~1,300万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 以下A・B・Cすべてを...
キリンビジネスシステム株式会社

SAPコンサルタント/キリングループ唯一のIT会社(SD/MM/PP)

年収
500~850万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 SAPアプリケーショ...
株式会社ベイカレント・コンサルティング

【SAPコンサルタント】経営戦略実現を全社横断変革で支援/平均年収1,350万円

年収
600~2,500万円 / 年
勤務地
東京都港区麻布台1-3-1麻布台ヒル...
雇用形態
正社員
要スキル:
【必須(MUST)】 社会人経験3年以上...
株式会社 ホープス

【年収1000万円可】【リモート可】【上流工程】【SAP導入コンサルタント】リモート・ハイブリッド勤務OK|平均残業月10時間/HOPES ※基幹系業務システムの導入推進を行っていただける方を募集

年収
800~1,800万円 / 年
勤務地
〒 1040033:東京都中央区新川1-3-17新...
雇用形態
正社員
要スキル:
■SAPコンサルタント 【必須】 SAPモ...
PP

【製造業向けシステム刷新(PP)】都内/S/4HANA標準機能の活用および生産管理領域のSE業務

月額単価
1,550,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
製造業における業務効率化と基盤強化を...
CO

【製造業向けシステム刷新(CO)】都内/管理会計領域における標準機能導入および検証業務

月額単価
1,600,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
製造業向けの大規模なシステム刷新プロ...
FI

【製造業向けシステム刷新(FI)】品川近辺/S/4HANAにおける顧客側支援および運用保守

月額単価
1,250,000円 / 月
稼働場所
東京都
業務領域
運用・保守
作業内容:
S/4HANAにおける顧客側支援および運用保...
MM

【製造業向けシステム刷新(MM)】山手線沿線/S/4HANA導入における顧客側支援および運用保守

月額単価
1,250,000円 / 月
稼働場所
東京都
業務領域
運用・保守
作業内容:
S/4HANAにおける顧客側支援および運用保...
SD

【製造業向けSAP新規導入(SD)】東京都(大崎)/要件定義から設計フェーズの推進

月額単価
1,300,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
製造業を展開するクライアントにおける...
CO

【システム移行(CO)】東京都/S/4HANA移行に伴うマスタ整備および分析支援

月額単価
1,000,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
既存システムからS/4HANAへのシステム移...
COFIMMPPSD

【SAPシステム移行(ECC→S/4HANA)】東京都(秋葉原)/アセスメント工程の推進・リーダー業務

月額単価
1,700,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計, その他
作業内容:
既存のSAP ECCシステムからS/4HANAへの...
FIMM

【製造業/システム刷新(MM・FI)】東京都(豊洲)/業務要件整理および概要設計の推進

月額単価
1,300,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
製造業を展開するクライアントにおいて...
MMPPSD

【製造業/運用保守】東京都/ロジスティクス領域における問い合わせ対応および調査

月額単価
1,250,000円 / 月
稼働場所
東京都
業務領域
運用・保守
作業内容:
製造業を展開するクライアントにおける...
COFIMMSD

【食品業/運用保守(FI・SD/MM)】神奈川県(横浜)/問い合わせ対応および調査業務の推進

月額単価
1,250,000円 / 月
稼働場所
神奈川県
業務領域
運用・保守
作業内容:
食品業を展開するクライアントにおける...
この記事のポイント

概要

SAPのデバッグとは、ABAPプログラムの実行中に処理を一時停止し、
その時点の変数、内部テーブル、呼び出し元、分岐条件、実行順序などを確認する作業です。

たとえば、次のような場面で役立ちます。

  • 入力した値がどこで変更されたか調べたい
  • エラーの原因箇所を特定したい
  • 標準処理の流れを理解したい
  • SELECT結果や内部テーブルの中身を確認したい
  • ユーザEXIT、BAdI、拡張ポイントが呼ばれているか確認したい

SAPのデバッグで大切なのは、
単に「止めること」ではなく、どのタイミングで止めて、何を確認したいのかを明確にすること です。

調査の目的が曖昧なままデバッグを始めると、標準処理の深いところまで迷い込みやすくなります。
そのため実務では、まず

  • どのトランザクションで再現するのか
  • どの入力値で再現するのか
  • どの時点の値を見たいのか

を整理してからデバッグを始めるのがおすすめです。

デバッグの手順

デバッグを行うときは、主に次の流れで進めます。

手順
  • 処理を止める場所を決める
  • デバッグを起動する
  • 対象の処理を実行する
  • デバッグを行う(処理内容を見ていく)
  • デバッグを終了する

手順1. 処理を止める場所を決める

暴騰説明した通り、やみくもにデバッグをするのは非効率的です。
そこでブレイクポイントやウォッチポイントを設定し、処理をストップさせる場所を決める必要があります。実は、この部分がデバッグにおいて非常に大事なポイントです。

本記事では、デバッグの基本操作について解説しますので、詳しい処理の止め方は以下の記事を参考にしてください。

関連記事(ブレイクポイント・ウォッチポイントの設定方法)*近日、公開予定

手順2.デバッグを起動する

対象の処理、またはトランザクション画面を開いた状態で、コマンドフィールドに /h を入力、Enter を押下します。

/h を入力すると、すぐにデバッガ画面が表示されるわけではなく、次の画面操作からデバッグが有効になります。そのため、/h 入力後に Enter、保存、実行などのアクションを行うと、そのタイミングでデバッガが起動します。

この方法以外にも、対象プログラムが分かっている場合は、SE38 でプログラム名を入力し、デバッグ実行することもできます。
また、汎用モジュールを確認したい場合は、SE37 から対象の汎用モジュールを開き、テスト実行時にデバッグを行うことができます。

下図の例では、受注伝票登録画面(T-CODE:VA01)を起動し、必要な値を入力した後に /h を入力してデバッグを有効化しています。

手順3.対象の処理を実行する

次に、確認したい処理が動くように、実行ボタンや Enter を押下します。
すると、新しくデバッガ用のウィンドウが表示され、処理を途中で止めながら確認できる状態になります。

このとき、手順1で事前にブレークポイントを設定しておくと、対象の処理がそのブレークポイントに到達した時点で停止します。
ブレークポイントを設定していない場合でも、/h によってデバッグは開始されますが、標準処理の入口など、想定より手前の処理で停止することがあります。

デバッグ画面では、ソースコード、現在停止している行、呼び出し元の情報、変数の値などを確認できます。
また、デスクトップ1標準 などのタブは、デバッガ画面のレイアウトを切り替えるためのものです。必要に応じて、自分が見やすい配置に変更することもできます。

上図の例では、受注伝票登録画面で値を入力した後に Enter を押下しているため、プログラム SAPMV45A の PAI 処理からデバッグが開始されています。

PAI は Process After Input の略で、ユーザが画面に値を入力した後や、Enter・保存・実行などのアクションを行った後に実行される画面処理です。
つまりこの例では、VA01 画面で入力された値に対して、SAPがどのようなチェックや後続処理を行っているかを確認できます。

手順4.デバッグを行う

デバッグの基本操作

左上のボタンで処理を進めていきますが、通常 ファンクションキーを使用します。

デバックの基本操作
デバッグの基本操作
  • F5:シングルステップ
    • 現在の行を1行実行します。
    • FORM、FUNCTION MODULE、METHOD などの呼び出しがある場合、その中に入って処理を追います。
  • F6:実行
    • 現在の行を1行実行しますが、FORM、FUNCTION MODULE、METHOD の中には入りません。
    • 呼び出し処理を1行として実行します。
  • F7:リターン
    • 現在入っている FORM、FUNCTION MODULE、METHOD などを抜けて、呼び出し元に戻ります。
  • F8:続行
    • 次のブレークポイントまで処理を進めます。
    • もちろん、通らない処理のブレイクポイントは無視されます。
    • ブレイクポイントがなければ、プログラム終了または次の画面まで進みます。

単一変数の確認方法

ソースコード上の単一変数をダブルクリックすると、右側に表示されます。もし、その変数の中身が入っていれば下図のように値が表示されます。

また、システム予約語のようなソースコードに表示されていない変数の中身を確認したい時は、直接右側に確認したい変数名を入力することで、その時点の値を表示できます。余談ですが、よく判定で使用されるSY-SUBRCとSY-TABIXは常に右上に表示されています。IF文で分岐に入らないときは、SY-SUBRCのような分岐で使用されている変数を見て状況を確認してみましょう。

レイナ

変数の値を変更するにはどうすればいいの?

博士

変数の値変更は、鉛筆マークを押下することで変更可能じゃ。
ロジックを確認する際に、値を変更して処理の挙動を確認する時に有効じゃの。

構造・内部テーブルの確認方法

構造や内部テーブルの確認方法は、基本的には単一変数と同じです。
しかし、中身のデータを単一変数のように同じタブ上で表示することはできない為、下図のようにダブルクリックすることで、構造またはテーブルタブに遷移し、詳細な値を一覧で確認することができます。

下の画面では、構造名TVAKの中身を一覧で確認しています。
値の変更は、単一変数と同様に鉛筆マークから変更可能です。

また、特定項目だけ確認したい場合は、「TVAK-AUART」のように構造名(またはテーブル名)+ハイフン+項目名を変数フィールドに指定すれば確認できます。

よくあるケースですが、SELECTの結果を格納する内部テーブルのデータを確認した時に、何も値がはいっていない(=SELECTでデータを取得できていない)場合は、条件に使われている変数の値を確認し、想定通りのSELECTが行われているか確認しましょう!

手順5.デバッグを終了する

確認したい処理が終わったら、デバッグを終了します。
ただし、デバッグの終了方法にはいくつか種類があり、処理を続行するのか、処理自体を中断するのかを意識して操作することが大切です。

処理続行による終了操作

よく使われるのがF8 による処理続行です。

F8は「次のブレークポイント、または処理終了まで進める」操作であり、ブレークポイントが残っていない場合は、そのまま通常画面に戻ります。
そのため、処理を最後まで進めて問題ない場合は、F8 で進めるのが一般的です。ただ、デバッグセッション自体を終了する操作ではありません。デバッグを完全に抜けたい場合は、メニューの終了操作を使うと分かりやすいです。

デバッガメニューによる終了操作

デバッガのメニューには、終了に関する操作が2種類あります。

1つ目は 「終了(アプリケーション終了)」 です。
これはデバッグだけでなく、現在実行中のアプリケーション処理自体を終了します。
これ以上処理を進めたくない場合や、更新処理に入る前に中断したい場合に使用します。
たとえば、保存処理や COMMIT WORK が実行されると、データベースに変更が反映される可能性があります。それを避けたい時はこの終了の仕方が推奨されます。

2つ目は 「終了(アプリケーション実行継続)」 です。
これはデバッガを終了し、アプリケーション処理はそのまま継続します。
調査が終わり、後続処理を通常通り実行して問題ない場合に使用します。F8と似ていますが、デバッガのセッションが完全に終了する点が異なります。

最後に、デバッガウィンドウ右上の × で閉じることもできますが、環境や状況によって確認ダイアログが表示される場合があります。
意図しない終了を避けるため、処理を止めたいのか、処理を続けたいのかを明確にしたうえで、メニューから終了方法を選ぶのがおすすめです。

まとめ

デバッグは、プログラムを直すためだけでなく、処理の流れを理解するためにも非常に役立ちます。
慣れるまでは難しく感じるかもしれませんが、基本操作を繰り返し使うことで自然と身についていきます。

この記事が、ABAPデバッグを始める方の参考になればうれしいです。

レイナ

よ~し、もっとデバッグについて勉強するぞ!

  • 転職求人
  • フリーランス案件
株式会社日立産業制御ソリューションズ

【リモート可】【PM/PL候補】【東京】SAP(S/4HANA)エンジニア ※フレックスタイム制/ワークライフバランス◎(S/4HANA)

年収
430~800万円 / 年
勤務地
東京本社:東京都台東区秋葉原6番1号(...
雇用形態
正社員
要スキル:
【必須】 SAP導入に強い興味があり、以...
キリンビジネスシステム株式会社

SAP会計領域コンサルタント(管理職)/キリングループ唯一のIT会社(FI/CO)

年収
900~1,300万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 以下A・B・Cすべてを...
キリンビジネスシステム株式会社

SAPコンサルタント/キリングループ唯一のIT会社(SD/MM/PP)

年収
500~850万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 SAPアプリケーショ...
株式会社ベイカレント・コンサルティング

【SAPコンサルタント】経営戦略実現を全社横断変革で支援/平均年収1,350万円

年収
600~2,500万円 / 年
勤務地
東京都港区麻布台1-3-1麻布台ヒル...
雇用形態
正社員
要スキル:
【必須(MUST)】 社会人経験3年以上...
株式会社 ホープス

【年収1000万円可】【リモート可】【上流工程】【SAP導入コンサルタント】リモート・ハイブリッド勤務OK|平均残業月10時間/HOPES ※基幹系業務システムの導入推進を行っていただける方を募集

年収
800~1,800万円 / 年
勤務地
〒 1040033:東京都中央区新川1-3-17新...
雇用形態
正社員
要スキル:
■SAPコンサルタント 【必須】 SAPモ...
PP

【製造業向けシステム刷新(PP)】都内/S/4HANA標準機能の活用および生産管理領域のSE業務

月額単価
1,550,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
製造業における業務効率化と基盤強化を...
CO

【製造業向けシステム刷新(CO)】都内/管理会計領域における標準機能導入および検証業務

月額単価
1,600,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
製造業向けの大規模なシステム刷新プロ...
FI

【製造業向けシステム刷新(FI)】品川近辺/S/4HANAにおける顧客側支援および運用保守

月額単価
1,250,000円 / 月
稼働場所
東京都
業務領域
運用・保守
作業内容:
S/4HANAにおける顧客側支援および運用保...
MM

【製造業向けシステム刷新(MM)】山手線沿線/S/4HANA導入における顧客側支援および運用保守

月額単価
1,250,000円 / 月
稼働場所
東京都
業務領域
運用・保守
作業内容:
S/4HANAにおける顧客側支援および運用保...
SD

【製造業向けSAP新規導入(SD)】東京都(大崎)/要件定義から設計フェーズの推進

月額単価
1,300,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
製造業を展開するクライアントにおける...
CO

【システム移行(CO)】東京都/S/4HANA移行に伴うマスタ整備および分析支援

月額単価
1,000,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
既存システムからS/4HANAへのシステム移...
COFIMMPPSD

【SAPシステム移行(ECC→S/4HANA)】東京都(秋葉原)/アセスメント工程の推進・リーダー業務

月額単価
1,700,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計, その他
作業内容:
既存のSAP ECCシステムからS/4HANAへの...
FIMM

【製造業/システム刷新(MM・FI)】東京都(豊洲)/業務要件整理および概要設計の推進

月額単価
1,300,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
製造業を展開するクライアントにおいて...
MMPPSD

【製造業/運用保守】東京都/ロジスティクス領域における問い合わせ対応および調査

月額単価
1,250,000円 / 月
稼働場所
東京都
業務領域
運用・保守
作業内容:
製造業を展開するクライアントにおける...
COFIMMSD

【食品業/運用保守(FI・SD/MM)】神奈川県(横浜)/問い合わせ対応および調査業務の推進

月額単価
1,250,000円 / 月
稼働場所
神奈川県
業務領域
運用・保守
作業内容:
食品業を展開するクライアントにおける...

★★★SAPラボのライター募集★★★

SAPラボでは、SAPの知識を活かして副業をしたい方を募集してるのじゃ!

SAPラボのライターの特徴

・ライティング初心者OK!
・報酬高単価!
・業務委託契約なので副業として最適!

SAP記事執筆者としての活動実績として利用可能なので、転職時や案件探しの際に企業へのアピール材料にもなります。

募集要項

・SAP導入や運用保守プロジェクトへの参画経験1年以上

ご応募/お問合せ先

info@sap-labo.com

少しでもご興味ある方、ぜひお気軽にご連絡下さい!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

SAPエンジニア(SD/MM/ABAP)

大学卒業後、大手日用品メーカーに社内SEとして入社し、SAP S4HANA導入プロジェクトに参画。主にSD/MMモジュールについて、知見を深めて参りました。
その後、SAPを極めたいという思いからSIerに転職。
大手機械メーカーへのSAP導入プロジェクトに参画し、SD/MM/COのアプリ側を経験しつつ、現在はロジ周りのAdd-on設計・開発をメインで担当しています。

プロジェクトを通して学んだことを発信し、言語やベンダーにより閉じられたSAPの世界を「パッケージ」として明るく開けたものにする一助になれば嬉しいです。

この記事のポイント