今回の設計で最も重視したのは、「1つの取引の情報は1か所にだけ持ち、ほかの伝票からはそれを参照する」という考え方です。
マスタ5本とトラン5本で、3種類の電子伝票を持つ層構成
今回の設計では、マスタ(何度も使う基本情報の表)を5本、トラン(伝票1枚ごとのデータを入れる表)を5本用意しました。
マスタ
メーカー、支店、得意先、商品、勘定科目
トラン
販促費確認書(署名依頼)、特価承認申請書の鑑、特価承認申請書の明細、振替伝票、振替伝票(帳票出力用)
販促費確認書のトランは、紙の様式に合わせて、明細を3行分の項目として持たせています。1行あたり「販促費内容・金額・伝発日・伝票番号・使用金額・使用日付・備考・添付ファイル」の8項目があり、見出し部分と合わせて38項目です。
一方、特価承認申請書は明細の行数が伝票ごとに変わるため、鑑(見出し部分)と明細を分け、明細を鑑の下に何行でも追加できる「サブレコード」の形にしました。明細では「差額=仕入単価−特価単価」「金額=差額×数量」を計算式で求めます。鑑の合計欄には、明細の金額の合計(SUM)を自動で反映し、支店別の単価を使う場合は支店別の合計(SUMIFS)も自動で反映します。
商品を選ぶと、品名・規格・色・仕入単価が商品マスタから自動で入ります。担当者が手で入力するのは、数量と特価単価の2項目だけです。

表1 マスタ・トランの項目例(設計判断が読み取れる項目を抜粋)
| 分類 |
名称 |
代表項目 |
項目タイプ |
桁数/値域 |
| マスタ |
メーカーマスタ |
共通取引先コード |
文字列 |
5桁 |
| マスタ |
得意先マスタ |
得意先識別コード |
文字列 |
10桁 |
| マスタ |
商品マスタ |
仕入単価/仕入単価_支店別 |
整数 |
円記号・3桁区切り |
| マスタ |
商品マスタ |
支店別単価有 |
選択 |
「〇」または空欄 |
| マスタ |
勘定科目マスタ |
科目区分 |
選択 |
資産・負債・費用・収益の4区分 |
| トラン |
特価承認申請書(鑑) |
伝票No |
自動採番 |
5で始まる6桁 |
| トラン |
特価承認申請書(明細) |
商品コード |
マスタ参照 |
JAN13桁を2-5-6で区切った15桁 |
| トラン |
振替伝票 |
伝票No |
自動採番 |
8か9で始まる6桁 |
| トラン |
販促費確認書(署名依頼) |
金額1〜3 |
整数 |
1〜9,999,999 |
出典:弊社が設計検討した要件定義・基本設計(マスタ設計)をもとに編集部作成

特価承認申請書の鑑と明細(差額と合計の自動計算)
出典:弊社のPoCで実装したSlopebaseの画面(一部の情報を伏せています)
伝票番号を参照にして、伝発日の書き写しをなくす
確認書の明細にある「伝票番号」欄は、当初は数字を直接入力する項目にしてほしいという要望でした。設計書の備考には、この欄の扱いを変えた理由が次のように残っています。
「整数項目がご希望であったが、伝発日の自動入力のため、本項目をトラン参照に」
伝票番号を振替伝票のデータへの参照にしておけば、番号を選んだ時点で、振替伝票の日付が伝発日として自動で入ります。番号と日付を別々に書き写す必要がなくなるため、取り違えが起きる作業そのものがなくなります。
同じように、特価承認申請書の明細にある「特価承認申請書No」は、選択式ではなく6桁の文字列にしています。備考には「セレクトにすると、登録時にサブレコードの関係で保存できない」とあります。鑑と明細を一度に保存する仕組みでは、選択式にすると保存できないため、文字列で持たせる形にしました。

販促費確認書の入力画面(伝票番号を参照にして伝発日を自動入力)
出典:弊社のPoCで実装したSlopebaseの画面(一部の情報を伏せています)
取引先には署名済みPDFを戻してもらい、社内の進捗は見せない
取引先とのやり取りは、確認書のデータから自動で作るPDFを使って行います。確認書のトランには、PDFに関する項目を4つ持たせています。
- 帳票出力の結果として返ってくるPDF
- そのPDFを確認書に写した「自動生成」のPDF(データフローという自動処理で写します)
- メーカーが署名したあとにアップロードする「ご署名後」のPDF
- 内容を直したときにPDFを作り直すための「帳票再生成」の選択項目
確認書を入力すると様式どおりのPDFができあがり、担当者が署名依頼を起票すると、メーカーの担当者にメールで通知が届きます。メーカー側はゲストとして画面に入り、PDFをダウンロードして署名し、署名済みのPDFを登録して社内の担当者を選びます。登録されると社内の担当者に通知が届き、社内の承認へ進みます。
このとき、社内の承認がどこまで進んでいるかは、メーカー側から見えないように設計しています。取引先に見せるのは、署名をお願いする書類と、その結果だけです。
社内の承認は、上長・支店長・仕入責任者・本社仕入業務部の順に、システム上の承認として残します。打ち合わせでは「印鑑などではなく、システム上の承認がわかればよい」という方針が確認されており、紙の承認欄に押していた印は、誰がいつ承認したかが記録に残る形に置き換えています。承認は5段階まで設定でき、差し戻しにも対応します。

署名依頼と署名済みPDFがそろった販促費確認書の画面
出典:弊社のPoCで実装したSlopebaseの画面(一部の情報を伏せています)
振替伝票の電子化で、仕入先の控えだけを紙に残した理由
振替伝票は、社内の承認を経たあと、仕入先用の控えに勘定科目を書き入れて渡す流れになっています。そこで、入力用の振替伝票のトランとは別に、帳票出力用のトランを用意しました。
帳票出力用のトランでは、仕入先控え用の「貸方科目」以外の項目を読み取り専用にしています。承認済みの内容はデータフローで自動的に写り、担当者が手を加えられるのは、仕入先に見せる科目の欄だけです。承認後に内容が書き換えられることを防ぎながら、仕入先に見せる科目の表記だけは調整できるようにしています。
このトランの伝票番号は、数値ではなく文字列で持たせています。備考には「文字列なのは、データフローのマッピングのため」とあります。トランからトランへデータを受け渡すときの目印(キー)として、形式をそろえるためです。伝票番号をキーにして必要な情報が1か所にそろうため、基幹システムへ渡すデータも、このトランから取り出せる構造になっています。
5枚つづりの紙については、社内用の控えの印刷をやめ、仕入先に渡す1枚だけを印刷する方針です。振替伝票を電子化するからといって、取引先が紙で受け取る運用まで一度に変える必要はありません。

振替伝票の帳票出力用の画面(仕入先控えの科目だけを入力)
出典:弊社のPoCで実装したSlopebaseの画面(一部の情報を伏せています)
業務フローの中であえてシステム化しなかった箇所
今回の設計では、次の処理を意図してシステムの外に残しています。
- 得意先からの販促費の要請の受け付け 要請はメールなどで届くため、受け付けはこれまでどおりとし、確認書の入力から先をシステムで扱います
- 特価承認申請書の、出力後の回覧 出力後の流れが複雑なため、今回はPDFの出力までを対象にしています
- 振替伝票の仕入先控えの印刷 仕入先との受け渡しは紙のまま残しています
- グループウェアとの連携 打ち合わせの中で、連携は対象外でよいと確認しています
すべてを一度に電子化するのではなく、書き写しや紙の回覧が多い部分から電子化する、という考え方で範囲を決めています。
