AS400在庫差異の調べ方|在庫照会・入出庫履歴・締め処理から原因を見る

AS400 / IBM i の販売管理・在庫管理では、「画面の在庫と実在庫が合わない」「出荷したはずなのに在庫が残っている」「棚卸後に差異が出た」という相談があります。在庫差異はプログラムだけでなく、出荷確定、入出庫、締め処理、外部連携、手修正が絡むため、業務の流れで追う必要があります。

在庫差異で見る順番

確認 見るもの 判断
対象 品番、倉庫、ロット、日付 差異の範囲を絞る
履歴 入庫、出庫、移動、調整 どの処理で増減したか
出荷 出荷確定、取消、再送 二重処理や未確定がないか
締め 日次・月次バッチ、棚卸反映 反映タイミングの差か
手修正 SQL更新、調整入力、承認 人手の修正が影響していないか

画面だけで判断しない

在庫照会画面の数値だけを見ると、更新途中や締め前後の状態を誤解することがあります。履歴、ジョブログ、バッチ結果、外部連携の送受信を合わせて確認します。

業務名から追う方法は AS400本番障害の初動チェックリスト、SQL確認時の注意は ACS SQLとは?AS400 / IBM iで安全にデータ確認する基本 を参照してください。

伝票番号を起点に画面・DB・ジャーナルを時系列で追う

現場では、利用部門から「この伝票番号の在庫がおかしい」と連絡を受けることがよくあります。私はまず、伝票番号、品番、倉庫、画面に出ている数量、正しいと考えている数量、異常が起きたと思われる時刻をそろえます。そのうえで、同じ条件を使って画面とDBの両方を確認します。

順番 確認するもの 見るポイント
1 問い合わせ内容 伝票番号、品番、倉庫、期待値、発生時刻をそろえる
2 業務画面 利用者と同じ条件で表示し、見間違いや条件違いを除く
3 DB 現在値、関連テーブル、入出庫や引当の履歴を確認する
4 ジャーナル 発生時刻の前後を広めに見て、更新前と更新後の差を追う
5 RPG・CL どの処理がその更新を行ったか、呼出関係と条件分岐を確認する

現在のDBだけで経緯が分からない場合は、対象ファイルのジャーナル処理と対象期間のレシーバー保管を確認してから時系列を追います。更新前の値を比べるには更新前イメージが必要です。記録がなければ比較できたと判断せず、業務履歴や退避データなど別の証跡を確認します。異常が起きたと思われる時刻の1件だけを見るのではなく、その前後の更新を確認し、特に更新前と更新後でどの項目が変わったかを比較します。ジャーナルの基本は AS400のジャーナルとコミット制御の確認 にまとめています。

プログラム調査にCodexを使う場合は、利用サービスへのソースや業務情報の送信が契約・社内規程で認められているかを先に確認します。許可範囲でも事象、対象ファイル、処理時刻、関連RPG・CLを必要最小限に絞って匿名化し、更新条件や呼出関係を確認します。それでも原因を絞れない場合に、顧客名や実データなどを伏せた必要最小限のジャーナル情報を追加します。Codexの結果だけで確定せず、最終判断は画面、DB、ジョブログ、ジャーナルの事実と照合します。改修前の確認は RPG/CL改修前の影響調査チェックリスト も参照してください。

関連: AS400棚卸差異・在庫調整のチェックリストもあわせて確認してください。

関連: AS400販売管理システム保守ガイドもあわせて確認してください。

在庫差異は数量を直す前に発生地点を探す

在庫差異が出た時、現在庫を直接修正すると一時的には合いますが、原因が残ることがあります。受注引当、出荷確定、入荷、返品、棚卸反映、外部倉庫連携のどこで差が出たかを見ます。私は、数量を直す前に、最後に一致していた時点と最初に差が出た時点を探します。

出荷系 出荷確定、ピッキング、EDI送信
入荷系 入荷登録、検品、仕入計上
棚卸 棚卸入力、差異承認、反映バッチ
外部連携 倉庫在庫、再送、二重送信