SAP S/4HANA Migration
SAP S/4HANAへのカスタムコード移行の進め方|ABAP調査から改修・テストまで
SAP S/4HANA移行でカスタムABAPを安全に棚卸しし、影響分析、優先順位付け、改修、テスト、移行判定まで進める実務手順を解説します。
SAP S/4HANAへの移行では、既存のカスタムABAPをそのまま移すのではなく、業務上必要な処理だけを残し、標準機能で置き換えられる処理や、データモデル・廃止機能の影響を受ける処理を整理します。実務では、コードの検出、利用状況の確認、影響分析、改修、テスト、移行後の監視を一つの作業連鎖として管理します。
この記事では、変換プロジェクトでカスタムコードを扱う担当者向けに、調査対象の決め方、Custom Code Migration appとATCの使い分け、改修優先度、テスト証跡、移行判定までをまとめます。全体計画との接続はSAP S/4HANA移行の全体像で確認できます。
カスタムコード移行の全体像
カスタムコード移行は、次の順序で進めると判断の抜けを抑えられます。
- 移行対象システム、リポジトリ、アドオン、インターフェースを確定する
- カスタムオブジェクトと利用状況を棚卸しする
- SAP S/4HANAでの構文、データモデル、機能廃止の影響を分析する
- 継続、標準化、改修、廃止の方針をオブジェクト単位で決める
- 改修を開発・テスト環境へ反映する
- 単体、結合、業務シナリオ、権限、性能を確認する
- 移行リハーサルと本番移行後の監視で残課題を閉じる
最初にコードを修正すると、使われていない処理や標準機能で代替できる処理にも工数を投入してしまいます。先に業務オーナー、開発担当、Basis担当、テスト担当の責任範囲を決め、オブジェクトごとに判断履歴を残します。
調査対象を漏れなく定義する
調査対象には、カスタムレポート、クラス、関数モジュール、BAdI実装、ユーザー出口、拡張ポイント、テーブル、ビュー、CDS関連オブジェクト、ジョブ、帳票、RFCや外部連携を含めます。リポジトリ内のABAPだけでなく、ジョブのバリアント、出力先、ファイル連携、外部システム側の呼び出しも対応関係を記録します。
棚卸し表には、少なくとも次の項目を持たせます。
- オブジェクト名、種類、パッケージ、担当チーム
- 呼び出し元と呼び出し先
- 関連する業務プロセス、会社コード、プラント、販売組織などの利用範囲
- 実行頻度、最終利用時期、実行時間、障害履歴
- 使用する標準テーブル、汎用モジュール、トランザクション、外部インターフェース
- 移行方針、担当者、期限、テストケース、判定結果
利用状況を確認できる場合は、実行ログやジョブ実績、業務部門へのヒアリングを組み合わせます。利用実績が見つからないコードは、すぐに削除せず、月次・年次処理や障害対応用の特殊処理でないかを確認してから廃止候補にします。
影響分析を実行する
Custom Code Migration appは、カスタムコードを移行対象として収集し、SAP S/4HANA移行に関係する影響を整理するために使用します。対象リリース、関連するシステム情報、利用データをそろえたうえで、検出結果をオブジェクト単位で確認します。
分析結果では、次の観点を分けて記録します。
- 構文や文法に関する修正
- 参照するテーブルやフィールドのデータモデル変更
- 廃止・簡素化された機能への依存
- 標準APIや推奨拡張方式への置換
- HANA環境での性能やSQL処理の見直し
- 外部連携、権限、ジョブ、帳票への波及
ATCは、コード検査と移行後の品質確認に使います。検出結果を単純に件数で評価せず、実行経路、業務影響、修正難度、テスト範囲と組み合わせて優先度を付けます。移行対象の基礎条件はSAP S/4HANA移行の簡素化項目チェックと突き合わせます。
移行方針を決定する
各オブジェクトは、次の四つの方針のいずれかに分類します。
- 継続:業務上必要で、移行後も同じ目的で使用する
- 標準化:SAP S/4HANAの標準機能や設定で置き換える
- 改修:必要な業務機能を維持しながら、データモデルやAPIに合わせて修正する
- 廃止:利用実績がなく、代替手段も不要である
判定は開発担当だけで完了させず、業務オーナーが業務上の必要性を承認します。標準化を選ぶ場合は、標準機能で満たせる範囲、業務差分、権限、帳票、運用手順を確認します。
改修対象は、単にエラーを消すだけでなく、保守性と将来の変更耐性も評価します。直接テーブル更新、内部テーブルの暗黙的な依存、旧来の拡張方式、固定値による会社固有処理は、移行後の障害要因として個別に管理します。アドオンを含む場合は、SAP S/4HANAアドオン互換性の確認も同じ判定表に関連付けます。
ABAP改修を進める
改修前に、元の処理結果を基準値として保存します。代表的な入力、境界値、エラー入力、権限違い、並列実行、夜間ジョブを含むテストデータを準備し、修正前後の差分を比較できる状態にします。
改修時は、次の順番で影響を小さくします。
- 構文エラーと構文チェック対象を解消する
- 変更されたデータモデルや項目参照を修正する
- 廃止機能や非推奨インターフェースを置き換える
- SQL処理、検索条件、不要な全件読み込みを見直す
- 外部連携、コミット、ロック、エラー処理を確認する
- コードレビューとATC再実行を行う
移行用の一時修正を本番運用へ持ち込まないよう、恒久対応と暫定対応を分けて管理します。修正理由、参照した影響分析結果、テストケース、未解決リスクを変更依頼に記録すると、移行リハーサルでの再確認が容易になります。
テストと移行判定を管理する
テストは、技術的な正常終了だけでなく、業務結果が移行前と整合することを確認します。最低限、単体テスト、結合テスト、業務シナリオテスト、権限テスト、ジョブテスト、外部連携テストを実施します。重要な帳票やインターフェースは、件数、金額、ステータス、エラー件数を移行前後で比較します。
テスト戦略はSAP S/4HANA移行のテスト戦略と合わせ、カスタムコードだけで完結しないシナリオを含めます。特に、標準機能へ置き換えた処理は、旧カスタムコードとの単純な出力比較ではなく、業務要件を満たすかで判定します。
移行判定には、次の条件を使います。
- 高優先度の影響分析結果が解消または承認済みである
- 重要業務シナリオのテストが完了している
- 重大な権限、性能、連携エラーが残っていない
- 未解決課題に担当者、期限、回避策がある
- 移行リハーサルで実行時間と手順が確認済みである
移行後の運用へ引き継ぐ
本番移行後は、短期間の重点監視を設定します。ジョブ異常、ABAP実行時エラー、RFCやファイル連携の失敗、処理時間の増加、権限エラー、業務結果の差異を、カスタムコードの棚卸し表と関連付けます。
移行プロジェクトの作業順序やゲート管理は、SAP S/4HANA移行プロジェクトのフェーズに合わせて管理できます。移行完了後も、未使用コードの削除、標準化候補の再評価、ATC結果の定期確認を変更管理の中に組み込みます。
運用引き継ぎでは、次の情報を残します。
- 本番で実行されるカスタムコードの一覧
- 業務プロセスと担当者の対応表
- ジョブ、インターフェース、帳票の実行スケジュール
- 既知の制約、監視条件、エスカレーション先
- 次回リリースで対応する技術的負債
実務で起きやすい停滞と対処
コード件数が多く優先順位を付けられない場合は、実行頻度、業務重要度、移行影響、修正難度の四軸でスコア化します。件数の多いオブジェクトから着手するのではなく、月次決算、購買、販売、在庫、連携基盤など、停止時の影響が大きい領域から着手します。
影響分析結果が開発担当へ届かない場合は、オブジェクトID、エラー内容、対象リリース、再現条件、必要な判断を一つの課題にまとめます。結果の転記だけで終わらせず、修正方針とテストケースまで課題に記録します。
テスト環境で問題が再現しない場合は、マスタ、組織構造、権限、バリアント、ジョブスケジュール、外部接続先を比較します。移行リハーサルでは、コードだけでなくデータ量と運用時刻も本番条件に近づけ、性能問題を早期に検出します。
まとめ
SAP S/4HANAのカスタムコード移行は、ABAPの修正作業だけでは完了しません。対象を漏れなく棚卸しし、利用状況と影響を確認し、業務オーナーと移行方針を決め、テスト結果と残課題を移行判定へ結び付けることが重要です。
Custom Code Migration appとATCを調査・検査に使い分け、継続、標準化、改修、廃止を明確に分類します。さらに、プロジェクト計画、テスト、移行後監視まで同じ管理表で追跡すると、技術的な修正と業務上の判断を一貫して管理できます。