SAP ERP

SAP変更文書の基礎:CDHDR・CDPOSの見方と記録されない場合の確認手順

SAPの変更文書がどのように記録されるかを、CDHDR・CDPOSの役割、変更文書オブジェクト、確認手順、記録されない場合の切り分けから解説します。

SAP変更文書の構成変更文書ヘッダー、項目明細、アプリケーションのオブジェクトの関係を示します。SAP変更文書の構成変更文書ヘッダー、項目明細、アプリケーションのオブジェクトの関係を示します。作成記録対象を識別明細をまとめるアプリケーションの更新処理ロジックが変更文書を…CDHDR対象オブジェクト、ユーザ…CDPOS項目単位の変更明細です。変更文書オブジェクト変更をまとめる業務オブジ…CertPas オリジナル図解
アプリケーションの更新が変更文書を作成し、CDHDRにヘッダー、CDPOSに項目単位の変更を記録します。変更文書オブジェクトが対象を識別します。
目次
  1. 変更文書の構成とCDHDR・CDPOS
  2. 変更文書オブジェクトの役割
  3. 変更履歴を調べる手順
  4. 変更が見つからない場合の切り分け
  5. 記録の保持と運用上の注意
  6. 確認作業のまとめ

SAPの変更文書は、業務データの変更内容を後から確認するための記録です。誰が、いつ、どの項目を変更したかを追う場面で使われます。調査では、ヘッダー情報と項目単位の記録を分けて確認し、変更が記録される仕組みと対象データを照合します。

変更文書は、データベーステーブルの変更履歴をすべて自動保存する仕組みではありません。アプリケーションが変更文書を作成するよう実装され、対象の変更がその処理を通った場合に記録されます。そのため、テーブルに値の更新があっても、変更文書が必ず存在するとは限りません。

変更文書の構成とCDHDR・CDPOS

変更文書は、変更のまとまりを示すヘッダーと、変更された項目の明細から構成されます。CDHDRには変更文書のヘッダーが、CDPOSには記録対象オブジェクトの個別項目の変更が格納されます。調査の基本は、ヘッダーで対象の変更を絞り、明細で変更前後の値を確認することです。

CDHDRでは、変更文書オブジェクトの分類を示すOBJECTCLAS、対象を特定するOBJECTID、変更番号CHANGENR、変更日付UDATE、時刻UTIME、ユーザーUSERNAMEなどを確認します。CDPOSでは、同じ変更文書を特定する情報に加えて、テーブル名TABNAME、項目名FNAME、変更区分CHNGIND、変更前の値VALUE_OLD、変更後の値VALUE_NEWなどを確認します。

OBJECTIDは業務オブジェクトの識別値です。対象が伝票やマスタの場合でも、画面に表示される番号とOBJECTIDの表現が常に同じとは限りません。先頭ゼロ、連結されたキー、オブジェクト固有の形式を考慮し、既知の変更記録と照らして検索条件を決めます。

変更文書をたどる手順ヘッダーを検索し、項目明細を確認する調査手順を示します。変更文書をたどる手順ヘッダーを検索し、項目明細を確認する調査手順を示します。業務データを特定業務キー、変更日、ユーザ…CDHDRを検索オブジェクト分類、対象I…CDPOSを確認テーブル、項目、変更区分…業務処理と照合変更明細を業務操作や更新…CertPas オリジナル図解
業務データを特定してCDHDRから変更ヘッダーを検索し、CDPOSで項目明細を確認して、アプリケーション処理と照合します。

変更文書オブジェクトの役割

変更文書オブジェクトは、どの業務データをひとまとまりの変更履歴として扱うかを定義する単位です。ABAP Dictionary上のテーブルや項目と関連づけられ、アプリケーションの更新処理が変更文書を作成します。オブジェクトの定義や生成状況を調べるときは、SCDOを確認します。

運用上は、対象の画面や処理で変更文書が記録される設計か、変更文書オブジェクトが対象データを扱っているか、実際の更新処理で変更記録が作成されるかを分けて調べます。画面で変更できることだけでは、履歴の記録対象であるとは判断できません。カスタム処理では、更新ロジックが変更文書の作成処理を呼び出しているかも開発担当者と確認します。

データベースのテーブルロギングは、変更文書とは別の仕組みです。テーブルロギングは対象テーブルの変更ログを記録するもので、変更文書はアプリケーション上の業務オブジェクトや項目変更を記録します。監査や障害調査では、目的に応じてどちらの記録を確認するか選びます。

変更履歴を調べる手順

調査対象の業務データを先に特定します。画面上の伝票番号、マスタ番号、会社コードなど、検索に必要な識別情報を控え、対象の変更が発生した時間帯と操作ユーザーも確認します。番号形式が曖昧な場合は、既知の変更記録を例にOBJECTIDの値を照合します。

次に、CDHDRで候補となる変更文書を検索します。まずOBJECTCLASとOBJECTIDで対象を絞り、必要に応じてUDATE、USERNAME、TCODEなどで候補を整理します。日付を広く取りすぎると結果が増えるため、変更時刻が分かる場合は対象日を限定して確認します。

候補のCHANGENRを使ってCDPOSの明細を調べます。TABNAMEとFNAMEで対象テーブル・項目を確認し、CHNGINDとVALUE_OLD、VALUE_NEWから変更の内容を読み取ります。ヘッダーの利用者や時刻と、明細の対象項目が調査対象の業務操作に対応するかを合わせて判断します。

テーブルを直接参照する場合は、権限と本番環境の運用ルールに従い、まず表示専用で検索します。SE16Nの基本操作を参照し、選択条件を絞ってから結果を確認してください。履歴調査のために本番データを直接変更する操作は行いません。

変更が見つからない場合の切り分け

最初に、検索条件の不一致を確認します。OBJECTCLAS、OBJECTID、変更日、ユーザーのいずれかが対象と合っていなければ、変更文書があっても検索結果に出ません。対象番号の形式、日付の範囲、更新処理を実行したユーザーを見直し、条件を一つずつ広げて再検索します。

検索条件に問題がなければ、対象の業務処理が変更文書を記録する設計かを確認します。SCDOで関連するオブジェクトを特定し、対象テーブルや項目が含まれるかを確認します。カスタム処理の場合は、更新経路ごとの実装差や、変更文書作成処理が実行される条件を開発担当者に確認します。

更新処理そのものが正常に完了したかも調べます。更新タスクが終了していない場合は、変更文書の確認より先に更新状況を調査します。SM13で更新終了を確認する手順では、更新要求の状態を確認する流れを扱っています。ログや処理結果と、変更文書の検索条件を時刻で照合してください。

変更の取り消しや逆処理では、元の変更文書を書き換えるのではなく、業務上の取消処理が別の変更記録として残る場合があります。たとえば、入出庫伝票の取消を調べる際は、元伝票と取消側の伝票の両方を確認します。MIGOでの取消処理を参照し、関連する伝票番号や処理時刻をたどります。

記録の保持と運用上の注意

CDHDR・CDPOSの検索結果が見つからない理由は、未記録だけとは限りません。検索条件の不一致、対象外の処理経路、記録保持やアーカイブの影響などを分けて調べます。アーカイブ運用がある環境では、オンラインテーブルだけで全期間の履歴を確認できるとは限らないため、運用担当者に対象期間の保管先と参照手順を確認します。

履歴を監査や障害対応に用いる場合は、変更文書だけで結論を出さず、業務伝票、アプリケーションログ、更新処理の結果と突き合わせます。記録された利用者は更新処理の実行コンテキストに基づくため、インターフェースやバックグラウンド処理では、画面を操作した人と記録上のユーザーが異なる場合があります。

調査記録には、対象オブジェクト、OBJECTID、変更番号、日時、ユーザー、確認した項目を残します。必要な範囲に絞った記録は、後続の担当者が同じ変更を再確認し、検索条件や処理経路を追跡するうえで役立ちます。

確認作業のまとめ

変更文書の調査では、CDHDRで変更のまとまりを特定し、CDPOSで項目単位の内容を確認します。変更文書オブジェクトとアプリケーションの更新処理が記録の前提になるため、検索結果がない場合は、識別値・対象期間・処理経路・更新状況を順に切り分けます。業務上の履歴、テーブルロギング、アーカイブの役割を分けて確認すると、記録の有無を判断しやすくなります。

ブログ一覧へ戻る