この記事を読むメリット
- T-CODE:SM13 でエラーの更新レコードを一覧で探す方法が分かる
- 更新モジュールの「エラー情報」から、エラーのメッセージを確かめる方法が分かる
- 更新が有効かどうかの確かめ方と、日々の点検のポイントが分かる
伝票を保存したのにデータが登録されていない、という問い合わせを受けたときは、更新でエラーが起きていないかを確かめます。
T-CODE:SM13(更新レコード管理)では、処理が終わっていない更新や、エラーで取り消された更新を一覧で確認できます。
この記事では、次の操作を画面を 1 つずつ追って解説します。
- T-CODE:SM13 で エラーの更新レコードを一覧で探す手順
- エラーの原因のメッセージを確かめる手順
- 更新が有効かを確かめる手順
博士!伝票を保存したはずなのに、データが登録されていないって問い合わせが来ました…
うむ、それは更新でエラーが起きているかもしれんのう。T-CODE:SM13 でエラーの更新レコードを探して、原因のメッセージまでたどってみるぞい!
この記事のポイント
前提
- 使うトランザクション: SM13
- 必要な権限: T-CODE:SM13 を実行できる権限
更新の仕組み
実務での要件の例
業務の担当者から「昨日保存した伝票が、登録されていない」と問い合わせを受けた場面を考えます。この要件は、次のように分けて進めます。
| 要件の部分 | どうするか |
|---|
| 更新でエラーが起きていないかを探す | T-CODE:SM13 の第一画面で開始日付を前の日に戻して「実行」を押し、一覧で赤のステータスの更新レコードを探します |
| エラーの原因を確かめる | 更新レコードをダブルクリックし、エラーの更新モジュールを選んで「エラー情報」を押すと、エラーのメッセージが表示されます |
| 更新そのものが止まっていないかを確かめる | 第一画面の「更新システムの管理」で、「更新が有効です」と表示されているかを確かめます |
| 登録されなかったデータを直す | 原因を直しただけでは DB に記録されないので、再実行するか、入力し直します。この記事で紹介する操作は照会だけなので、業務の担当者やシステムの管理者と相談して進めるとよいでしょう |
更新とは
伝票の保存などで DB を変更するとき、時間のかかる変更は、画面の処理とは別に、更新ワークプロセスがあとから行います。このとき作られる更新の依頼を、更新レコード(更新依頼)と呼びます。同じ更新レコードの V1 の変更は、まとめて DB に反映されるか、まったく反映されないかのどちらかです。V2 の変更は V1 とは別に処理されるので、V2 で失敗しても、反映済みの V1 の変更は残ります(下の表)。
| 種類 | 内容 | エラーになったとき |
|---|
| V1 | 重要な変更(受注の登録、在庫の変更など) | V1 の変更は取り消されます。標準の設定では、更新を作ったユーザに速達メールが届きます(プロファイルパラメータ rdisp/vbmail が 0 のときは届きません)。 |
| V2 | 重要度の低い変更(統計の更新など) | V2 の変更は取り消されますが、V1 の変更は残ります。 |
更新レコードのステータス
標準の設定では、正常に終わった更新レコードは処理のあとに自動で消されるので、T-CODE:SM13 の一覧には表示されません。プロファイルパラメータ rdisp/vb_delete_after_execution を 2 にして自動削除を止めているシステムでは、正常に終わったものも一覧に残ります。一覧に残るのは、主に、まだ処理が終わっていないものと、エラーで取り消されたものです。
| ステータス | 色 | 状態 |
|---|
| 初期値 | 緑 | 更新レコードは作られたが、処理が終わっていない |
| エラー | 赤 | エラーで取り消された |
| エラー (再試行なし) | 赤 | エラーで取り消され、再実行できない |
この例の一覧には、このほか「V2 パートのエラー」(黄)も表示されます。
更新レコードが作られてから、標準の設定で正常に終わって一覧から消えるか、エラーで一覧に残るかまでの流れです。
関連するトランザクションコードは次のとおりです。
| T-CODE | 内容 |
|---|
| T-CODE:SM13 | 更新レコード管理 |
| T-CODE:SM50 | AS インスタンスのワークプロセス |
エラーの更新レコードを探す
1. 選択条件を入れる
コマンドフィールドに SM13 と入力して Enter キーを押します。「更新依頼: 第一画面」が表示されます。
画面の見方
- Client・ユーザ: 探す更新レコードのクライアントとユーザです。
* ですべてが対象になります。
- ステータス: 探す更新レコードの状態です。「中止」はエラーで取り消されたもの、「全部」はすべての状態です。
- 開始日付: 更新レコードを探す期間の始まりです。初期値は当日です。
- 更新システム: 更新が有効かどうかです。
- 実行: 一覧を表示します。画面右下のボタンです。
- 更新システムの管理: 更新が有効かを確かめる画面を開きます。
この例では、ステータスは「全部」のまま、開始日付を 2024/01/01 に変えて⑤「実行」を押します。
2. 一覧でエラーを探す
「更新依頼」に、条件に合う更新レコードが表示されます。
画面の見方
- 件数: 見つかった更新レコードの件数です。
- ステータス: 更新レコードの状態です。赤はエラーで取り消されたものです。
- 更新レコード: クライアント・ユーザ・日付・時刻・更新を作ったトランザクション(TCode)です。
この例では、65 件の更新レコードが見つかり、先頭の行は 2026/10/14 21:12:52 に T-CODE:SA38 から作られた更新で、ステータスは「エラー (再試行なし)」です。この行をダブルクリックします。
エラーのメッセージを確かめる
1. エラーの更新モジュールを確かめる
「更新モジュール」に、その更新レコードで動く更新モジュールが表示されます。
画面の見方
- ヘッダ: 更新を作ったユーザ・日付・時刻・トランザクション・プログラム(レポート)・ステータスです。
- エラーの更新モジュール: エラーになった更新モジュールです。
- エラー情報: 選んだ更新モジュールのエラーの内容を表示します。
この例では、6 つの更新モジュールがすべて V1 で、4 番目の AIPA_RECALC_DIST_VALUES が「エラー (再試行なし)」、ほかは「初期値」です。②の行を選んで③「エラー情報」を押します。
2. エラー情報を表示する
「更新モジュールのステータス」が表示されます。
画面の見方
- 汎用モジュール: エラーになった更新モジュールです。
- ステータス: 更新モジュールの状態です。
- エラー詳細: エラーのメッセージのクラス・番号・内容です。
この例では、ステータスは「更新は中止されました」、エラー詳細はクラス AP・番号 001「選択基準に適合する登録値はありません」です。このメッセージから、エラーの原因を調べます。
エラーで取り消された更新は、原因を直しただけでは DB に記録されません。再実行できる更新レコードは、原因を直したあとに再実行する必要があります。再実行できない「エラー (再試行なし)」のものは、データを確かめて入力し直します。どちらも、業務の担当者やシステムの管理者と相談して進めるとよいでしょう。
更新が有効かを確かめる
第一画面の⑥「更新システムの管理」を押すと、「更新プログラム管理」が表示されます。
画面の見方
- Status: 更新が有効かどうかです。
この例では、「更新が有効です」と表示されています。DB の重大なエラーなどで更新が止まると、ここが有効の表示ではなくなります。更新を止めている間は、すべてのトランザクションが一時停止します。右の「無効化」は、更新を手で止める緊急時のためのボタンなので、確認のときは押さないようにします。
日々の点検では、更新が有効であることと、エラーや処理が終わっていない更新レコードがないことを確かめます。一覧が空か、ほぼ空なら正常です。
よくあるつまずき
- 一覧に何も出ない: 標準の設定では、正常に終わった更新レコードは表示されません。また、開始日付の初期値は当日なので、前の日のエラーを探すときは開始日付を戻します。
- 初期値の更新レコードがたくさん残っている: 処理が終わっていない更新レコードが大量にあるのは、更新や SAP システムの性能に問題があるしるしです。更新のワークプロセス(タイプ UPD)の状態は、T-CODE:SM50 で確かめられます。
- エラーの更新レコードを消したい: 削除できるのはエラーのものだけで、削除するとデータは失われます。処理が終わっていない(緑の)更新レコードは消してはいけません。また、更新サーバは起動のときに、プロファイルパラメータ rdisp/vbdelete で決めた日数(標準は 50 日)より古い更新レコードを、状態にかかわらず消します。
まとめ
- T-CODE:SM13 には、処理が終わっていない更新レコードと、エラーで取り消された更新レコードが表示されます。
- 一覧で赤のステータスを探し、更新モジュールの「エラー情報」でエラーのメッセージを確かめます。
- 「更新プログラム管理」で、更新が有効かを確かめます。
赤いステータスを探して、エラー情報でメッセージを見ればいいんですね!
うむ。エラーの更新は、原因を直したうえで再実行しないと DB に記録されんのじゃぞい。