2 Cloud SQLで作るマスタデータ登録システム
2.1 基幹系システムのモジュール構成とテーブル類
第1回では、最初に基幹系システムのモジュール構成の概要を紹介します。図2は筆者が実際に担当したERP(Enterprise Resource Planning)パッケージ主要部分のモジュール構成です。実際のERPシステムではもっと多くの機能モジュール、テーブルそれに帳票類から構成されますが、図で紹介しているモジュールが主要部分で、私が担当していたパッケージでは「Core Four」と呼ばれていました(注2)。
図2の左では、販売管理と購買管理があり、その間に製品マスタと製品在庫があります(注3)。
これはほとんどの人には見慣れた流れと思いますが、販売会社では購買管理で製品を仕入れて在庫としてストックし、受注が発生した場合には販売管理で受注処理が行われ製品が出荷されます。
それぞれ購買管理と販売管理からの入力情報は、購買トラン(ザクション)と販売トラン(ザクション)に逐次書き込まれますが、右にある売掛管理と買掛管理モジュールで仕訳情報として整理され、購買仕訳と販売仕訳のテーブルに書き込まれます。
仕訳テーブルへの書込は通常日単位のバッチで行われ、経理担当者によるデータ確認の後にバッチでその日に発生したトランザクションデータを仕訳テーブルに書き込みます。
総勘定元帳は仕訳帳上でバラバラに散っている勘定科目を勘定口座という1つの集計単位ごとにまとめたものです。
販売管理と売掛管理
見積作成から受注、出荷、請求伝票の作成、受注契約や入金処理などは販売管理と売掛管理システムが担当します。
売掛管理と買掛管理
見積依頼から発注、入荷・検収、支払い、出金伝票の作成、支払い一覧などは購買管理と買掛管理システムが担当します。
月締めと決算処理
販売仕訳と購買仕訳データは、バッチ処理で仕訳データにマージされ月締め処理と決算処理で使用されます。仕訳データには販売や購買の流れから発生する以外にもあり、それらは仕訳データとして直接画面から入力されます。
Core Fourは(1)販売・売掛管理、(2)購買・買掛管理、(3)総勘定元帳と決算処理と、この図にはない(4)生産管理モジュールを含めて主要4モジュールという意味でした。
製品マスタと製品在庫の「製品」は、商品や部品などになる場合もありますが、製造業の場合はここが生産管理システムに置き換えられ、購買部門で資材・部品を納入し製造活動により完成品を製品在庫に入庫します。詳しくは連載第5回で解説する予定です。
2.2 Google Cloud SQLを使用した開発・稼働環境
以上、連載の趣旨と基幹系システムの概要について見てきましたが、ここからCloud SQLを使用したアプリケーション作成に入っていきます。ただし、Cloud SQLを使用するための基本的な準備・設定手順についてはここでは触れませんので、それらの内容については、「Google App Engine for JavaでMySQLを使ってみる」を参考にしてください。
ここでは開発環境について確認しておきます。Cloud SQLを使用してプログラム作成する場合は、ローカル(オンプレミス)環境のMySQLを使用する方法(図3)と、クラウド環境のMySQLを使用する方法(図4)の2種類があります。
オンプレミスのMySQLを使用する場合は、Eclipse外部にMySQLの動作環境を用意しEclipse上で動作するCloud SQLプログラムからアクセスして開発を進めます。この方法ではGAE開発環境の他にMySQL実行環境を準備する必要があることから準備手順が1つ増えますが、RDBへのアクセスパフォーマンスは良く、また既存システムからの移行の場合はこちらの方が適しているでしょう。
![図4 クラウド環境のMySQLを使用したCloud SQL開発](http://cz-cdn.shoeisha.jp/static/images/article/6642/6642_04.gif)
もう一つの方法は、ローカルのEclipse環境からクラウド上のMySQLにアクセスする方法です。この場合はEclipseのGAE開発環境以外にローカルで準備が必要なものはなく大変手軽です。ただし、MySQLへアクセスパフォーマンスは、上記のオンプレミスのMySQLを使用する場合に比べて劣ります。
以上2種類の方法でCloud SQLを使用したプログラム作成を行うことができますが、これら開発環境の準備・設定手順については、「Google Cloud SQLとBigtableのコード記述と処理スピードを比較・検討してみる」で解説していますので、そちらを参照してください。
なお、オンプレミスでの開発については@ITの連載でかなり詳しく解説していますので、本稿ではクラウド環境のMySQLを使用する方法で解説する予定です。