システム設計の話 その7・テーブル設計 全体 [システム設計の話]
前回までで、一通りシステムの内容をさらいましたので、それを考慮しながら、テーブル設計の作業に進みます。
実際のお仕事だと、1段階目の打ち合わせが終了という所です。最初にざっとお客さんの要望を聞いて、その後持ち帰って、提案内容をまとめる作業に入ります。
まだ提案の段階なので、お客さんに機能の説明と確認ができる資料があれば良いので、テーブル設計のような詳細部分は必要ないのですが、テーブルがシステムの要なので、早い段階から検討しておいた方が良いと思います。
まずは、どんなテーブルが必要になるかを、ざっくり考えていきます。
売上伝票管理なので、売上データ用の「売上データテーブル」が必要です。
このシステムは、1つの売上伝票には、複数の商品の明細があります。なので、テーブルを2つに分けて管理するようにします。
1つのテーブルには、売上伝票に関する情報を持たせます。日付や、顧客などの、1伝票に付き、1つだけ発生する情報です。
2つ目のテーブルには、明細部分の情報を持ちます。売り上げた商品が複数あれば、その分レコードを追加していく形になります。
と、言うことで、売上データには、「売上伝票データ」テーブルと、「売上明細データ」テーブルを設けます。
今回のシステムでは、発生するデータは売上データのみなので、データテーブルは以上です。
次に、マスタテーブルを考えます。
その4に出てきた、帳票の内容を満たすことができるように考えていきます。
まずは当然「顧客マスタ」。顧客名や、住所などの情報を持たせます。
社内の担当者も必要なので、「担当者マスタ」を設けます。
売り上げる商品の情報もマスタにすべきですので、「商品マスタ」に持たせます。
ざっと、上記の物が洗い出せました。
その他に、売上伝票番号を管理する方法や、自社の情報、消費税率の設定、テーブルの項目をコード化したときの対応する名称をもっておくコード名称、といった細かい用途のテーブルが必要と思われます。
それぞれ個別にマスタを設けても良いのですが、この段階ではとりあえずなんでも放り込める、「コードマスタ」というなんでもマスタを一つ想定しておきます。
以上、ざっとおさらいです。
○データテーブル
1.売上伝票データ
2.売上明細データ
○マスタテーブル
1.顧客マスタ
2.担当者マスタ
3.商品マスタ
4.コードマスタ
とりあえず、こんなテーブルが必要かなという大枠が決まりました。次は、個々のテーブルの項目内容を考えて行きます。
システム設計の話 その6・売上実績表の詳細 [システム設計の話]
さて、最後の帳票「売上実績表」の内容確認です。
今回のシチュエーションでは、「1ヶ月間の売上実績をまとめたもの」としか表現していませんので、具体的にどんなものか決めたいと思います。
営業さんの実績表って言ったら、やっぱり売上金額の多い人からのランキング的なものを作ってるんじゃないだろうか、と言う発想で、まず1つはそう言う帳票にしてみます。
営業担当者別に、1ヶ月間の売上金額を集計して、金額が多い順に一覧を出力します。
名前が、「売上実績表」だと、ちょっとわかりにくいので、「営業成績表」とします。
「営業成績表」は、売上実績を見る、というよりは、ああ今月は誰々が頑張ったんだね、という、営業努力を激励するようなタイプの帳票です。これだと売上状況を把握するのには不向きです。
もう一つ、売上実績の分析作業向けの帳票を考えてみます。
「営業成績表」は、担当者別でしたが、分析メインなので、顧客別の金額集計で、数字を出してみようと思います。
また、先月と、前年同月との比較も見られる帳票にします。
ざっくりですが、現時点ではこんな感じにしておきます。詳細は、帳票設計でするとします。
蛇足ですが、実績表の別の見方として、例えば商品別の集計とか、過去半年分の実績を並べるとか、売上が連続で減少している顧客を出力するとか、まあきりがありません。
ですので、今回はシンプルにこの2帳票にしておきます。
システム設計の話 その5・経理売上報告書の詳細 [システム設計の話]
前回の「その4」では、「納品書」の内容確認を行いました。
「売上伝票」は「納品伝票」とほぼ同じということにしておきます。
今回は、「経理売上報告書」の詳細を確認します。
「経理売上報告書」は、既存の帳票ではなく、システム化により新規に導入する帳票となっています。どういう帳票が必要なのかを考えるために、そのバックグラウンドをおさらいします。
「その2」で業務内容を確認したとおり、現在の作業の仕方は、営業担当者が1ヶ月分の売上伝票を集めて、それを経理担当者に渡すようになっています。
経理担当者は、受け取った売上伝票から顧客別に売上金額を拾って、売掛管理や、請求処理を行っている、と推測されます。
この作業に必要な情報は、現状作業に使っている売上伝票の内容すべてでは無いようです。
そして、経理担当者から、経理の作業に必要な情報や、どんなものが作業効率がよいかをヒアリングします。
その結果を、以下のように決めてみます。
必要な情報は、売上先の顧客、売上日、売上日ごとの売上金額(合計で商品別の明細は不要)、顧客ごとの売上合計。
最後に売上金額の総合計が欲しい。
と言う感じにしてみます。
たぶん、経理(簿記)では、顧客と日付と金額の世界だと思うので、実際もこんな感じだと思います。
今回は帳票だけしか考えませんが、経理のシステムで取り込めるCSVデータを出力してっていう要望はよくあります。
これで、まったく形のなかった新規の「経理売上報告書」のイメージが、なんとなくできてきました。ここでざっくりイメージを作ろうかと思いましたが、それは帳票設計でやろうと思います。
次は、「売上実績表」を考えます。
システム設計の話 その4・売上入力と関連帳票の詳細 [システム設計の話]
詳細事項の検討に入っていきます。まずは、売上入力画面や、その関連帳票を作るに当たって、「売上」の情報というのが、具体的にどんな物かを確認します。
今回の例では、顧客が手動で業務を行っているという設定なので、現状使用している物を参考にして、検討することにします。
実際の作業でも、こうするケースが多いと思います。こういうシステム化の打ち合わせに慣れているお客さんだと、要望を具体的にまとめた物を提出して貰える事もあります。逆に、お客さんから何の提示も要望もなく、とりあえず適当に作ってみたいな事もあります。
さて、顧客は現状の業務の中で、納品書と、売上伝票を手作業で作成しています。これを元にどんな入力画面や帳票を作るか考えます。
で、適当なサンプルがないかと探してみたら、Excelのテンプレートに良さそうなのがあったので、これを使って考えてみようと思います。
こんな感じ。元のテンプレートからちょっといじくってます。
こういう帳票を印刷したい、と言う事で進めようと思います。
では、必要な情報を洗い出していきます。上から順に。
・発行日
うーん、ちょっと定義が曖昧になりそうなので、これは変更します。
とりあえず、データとして管理する日付は、「入力日」「変更日」「注文日」「納品日」をざっくり考えるようにします。
また、帳票には、印刷日時を表示するようにします。
・伝票番号
納品書を一意に特定する為の、ユニークな(重複しない)番号を付ける所です。
採番ルールは、後で考えるとして、そう言う項目が必要と言うことです。
・担当
売上情報には、だれが担当者か、という項目を持たせます。
・顧客情報
納品書の左上に、宛先の顧客情報が印刷されています。
「顧客名」「顧客郵便番号」「顧客住所」などの情報が必要という事です。
「顧客担当者名」まで管理するとめんどくさいので、無しと言うことにします。
また、窓空き封筒の窓に合うように印刷してっていう要望もよくあるのですが、めんどくさいので考えません。
・弊社情報
ちょっと下がった位置に、自社の情報を印刷します。
「会社名」「会社郵便番号」「会社住所」「会社電話番号」などの情報が必要です。
担当者名もこの位置に入れた方がいいかな。
・明細情報
納品する商品の明細情報です。
「商品番号」「商品名」「数量」「単価」「金額」「備考」の項目があります。
これを参考に、売上データのテーブルを設計します。
・合計
「税抜合計」「消費税額」「総額」を、最後に表示します。
ここで「金額」「単価」は、基本的に「税抜き」だろうと推測できます。一般消費者向けの価格表示では、総額表示(税込みの金額)が一般的になりましたが、それ以外は、明細は税抜きで、最後に税を計算することが多いと思います。
単価を税込みで考えると、いろいろとめんどくさいので、税抜きで考えます。
・その他
紙はA4縦で印刷するとします。
1ページの明細数は、帳票設計で決める事にします。
ここで一つ、まためんどくさい事があります。
明細が1ページに収まらないときはどうするか?
考え方は、とりあえず2つ。
合計を印刷せずに、同一ヘッダーを次ページに印刷して、続きの明細を印刷する。明細を出力し終えたら、合計を印刷する。
または、1ページに収まる明細数までしか、1伝票に入力できないようにする。
後者はなんだか作る側の都合を押しつけているようですが、標準形式の伝票はそれぞれ行数も決められているので、そういう作りの物もあります。
うーん、前者で作ると、多少面倒なので、後者にします。
こんな感じで、サンプル帳票からどんな情報があるのか洗い出せました。
ここまででも、どんなマスターが必要か、売上データテーブルはどんな項目が必要か、などいろいろ考えられる段階になったと思います。
「納品書」「売上伝票」はこの情報を元に考えるとしますが、まだ他に「経理売上報告書」「売上実績表」がありますので、それらを確認したうえで、テーブルなどの設計に進もうと思います。
システム設計の話 その3・システム化する内容をまとめる [システム設計の話]
前回、顧客の業務内容と、システム化する内容をざっくりまとめました。
これを踏まえて、具体的にシステムでどんな物を作るかを考えて行きます。前回のシステム化した業務内容から、必要な物を洗い出してみます。
・「売上入力」画面
・「納品書印刷」画面
・「納品書」帳票
・「売上伝票印刷」画面
・「売上伝票」帳票
・「経理売上報告書印刷」画面
・「経理売上報告書」帳票
・「売上実績表印刷」画面
・「売上実績表」帳票
顧客から直接見えるシステムの部品は、とりあえずこんな感じでしょうか。
画面と帳票は、ACCESSで言うところの、フォームとレポートになります。
今回は、入力画面と帳票のみで、データをごりごり処理するバッチ処理みたいなのは考えていません。もしかすると、売上実績表で、きめ細かい対比を見たいなどの、複雑な要望が合った場合は、それ用のデータをバッチで作成したほうが、作りやすいかもしれません。
この時点で、ざっと何をつくったら良いかが少し見えてきました。
しかし、それぞれ細かい内容はまだ未定です。これからは、それぞれについて、詳細な内容を検討していく工程に入ります。
説明の例なのでざっくりやってますが、それでもめんどくさいですよ。実際の現場では、こういう細かい打ち合わせを延々何時間、何日、何ヶ月ってやって、システムを作っていくわけです。
ちょっと愚痴が入りましたが、区切りが良いので今回はこの辺で。
次回は上記の一覧にそって、一つずつ詳細内容の検討をしていきます。