返品訂正のマイナスって?

KLab×はてな エンジニア応援ブログコンテスト

SIer 時代の思い出*1を続けます。顧客はドラッグストアで、私は SIer で運用サポートを行っていました。基幹システムのリプレースという当社の中では最も大きな開発プロジェクトでした。

「取引先別請求データアンマッチ表」という帳票でちょっとしたトラブルがありました。顧客はドラッグストアなので、ここで言う取引先とはメーカーもしくは卸売業の企業になります。請求データとは、取引先からの顧客が仕入れた商品の売掛データ(顧客から見ると買掛データ)のことです。

取引先別請求データアンマッチ表というのは、取引先から送られてきた請求データと顧客が持っている仕入データ(つまり当社の基幹システム内で管理している)を突合して、伝票明細単位に差異があれば、その差異を出力するという帳票です。顧客が商品を発注し、取引先(仕入先)から商品が届き、その仕入検収を行った後に、顧客は仕入確定データを取引先へ送ります。取引先から送られてくる請求データの根拠は、この仕入確定データに基づくものです。もっと言えば、仕入確定データを裏返しにして請求データを作成すればアンマッチが発生することはありません。実際にそのように対応している取引先もありました。

とは言え、取引先によっては、取引先内のシステムで請求データを作成します。顧客は仕入確定データを取引先へ送っていますが、その仕入確定データは使用せず、取引先内のシステムで管理しているデータに基づいて作成する場合もありました。いずれにしても請求データを決められた EDI 仕様に従って作成するのであれば、請求データの根拠が何であれ、システム的には問題ありません。

請求データの EDI 仕様には、請求区分というフラグがあり、以下の(顧客から見た場合)4つの区分がありました。

  1. : 仕入
  2. : 仕入訂正
  3. : 返品
  4. : 返品訂正


さらに伝票明細の数量はプラスとマイナスの数値に対応していたために、取引先によっては、仕入訂正を仕入のマイナス数量で表したり、返品を仕入のマイナス数量を表したりしていました。例えば、当社の基幹システム内で管理している仕入訂正のプラス数量の伝票明細と仕入のマイナス数量の伝票明細とは意味が異なるので、伝票明細のアンマッチとして出力されてしまいます。

結局のところ、仕入訂正のプラス数量も仕入のマイナス数量も、顧客から見た場合、買掛金を減らすことを意味します。つまり請求金額としてはどちらでも辻褄はあうのですが、これが大量のアンマッチデータになると、その差異を人間の目で確認するのが大変になってきます。

後で分かったことですが、旧システムでは、請求区分とマイナス数量の違いを考慮してアンマッチにしない処理もしていたようです。リプレース後の最初の月次処理でこの取引先別請求データアンマッチ表が数百枚出力されて、伝票明細の差異内容を確かめてみると、請求金額はほとんど一致しているという始末です。顧客の営業部長からはこんな一言が。

お宅はうちらに神経衰弱させてるのか。

おもろいこと言うなと思いつつ、、、いや、当時は会議机いっぱいに取り消し線が入った数百枚の帳票を見せられて怒られていたわけで笑える心境ではありませんでした。

実際の対応としては、旧システムと同様に取引先別請求データアンマッチ表の出力には、請求区分と数量のプラスマイナスを考慮してアンマッチ出力するようにして、オリジナルの請求データを別途テキストファイルに保存することで対応しました。

帳票を見ていて、顧客の担当者から質問を受けました。

返品訂正のマイナスってどういう意味ですか?

私はこう回答しました。

返品は仕入れた商品を取引先へ返すので買掛金を減らします。
返品訂正なのでマイナスのマイナスだけど、
そのマイナスだからやっぱり買掛金を減らすことを意味しますね。

すると担当者は、

なるほどー、そういうことですね。よく分かりましたー。

ということはなくて

となるわけですね。こんな伝票明細の差異が数百件もあったら訳分かりませんよね。EDI 仕様としては正しいし、システム的にも問題ないし、請求金額も一致するのですが、ただ1つ問題がありました。

人間の目で帳票を見ると訳が分からない

逆の意味を表す区分がある中で数量のプラスマイナスがあると、現場の担当者は買掛金の確認作業に苦労します。取引先からもこういったデータは(取引先から見た場合)売掛金の増減のどちらになるのか?という問い合わせが当社に度々寄せられました。ややこしいのは、例えば、返品は顧客から見た場合、在庫数が減るのでマイナス数量でも良さそうな気がしますが、請求区分が返品だとそうではありません。さらに差異があると、店舗や取引先の担当者にどちらが正しいかの問い合わせを行いますが、仕入訂正だと店舗は2個仕入れる予定が実際には1個しか届かなかったという意味になりますし、返品だと2個仕入れたけれど1個は返品したという意味になります。事実関係を確認する上での区分というのは重要な意味を持ちます。

当然 EDI 仕様書には、請求データの区分や数量による売掛/買掛金の増減がどのようになるかということは書いていません。

そこで「EDI の請求データについて」という EDI 仕様書の付属資料を私は作成しました。各請求区分における取引先から見た売掛金の増減、顧客から見た買掛金の増減と、基本的にマイナス数量は使うなと明記しました。その付属資料を顧客経由で全ての取引先へ送ってもらうように依頼しました。

その後、当社への請求データに対する問い合わせと取引先別請求データアンマッチ表の枚数が減ったことは言うまでもありません。今になって思い返すと、神経衰弱は笑うところだったのかもしれないですね。