ERP(Odoo) – 業務基幹システムの運用

Computer

はじめに

Odoo https://www.odoo.com/ja_JP について、前から結構便利そうだなー、と思っていたのと、会社で新規事業の立ち上げ?のようなことに携わることがあり、一気に業務用の基幹システムを構築する必要が出たため色々と実験しながら試してみてます。

環境構築や運用に関してはドキュメントがそもそも英語なのでリーディングの練習にもちょうど良いかと

ドキュメント ver. 16.0: https://www.odoo.com/documentation/16.0/index.html

「社内に基幹システムがそもそも無い!」とか、「今使っている基幹システムが現場レベルだと使いにくい!」とかとか、

そんな思いがあればぜひ Odoo で業務改善を試してみてください。

どんなことができるのか? あたり実際に設定してみながら記事にできればと思います。

ERP とは?

本題に入る前に、まずERP(Enterprise Resource Planning)とはなんぞや? について、お決まりのWikiより抜粋です。

エンタープライズ・リソース・プランニング: enterprise resource planning、ERP)とは、企業全体を経営資源の有効活用の観点から統合的に管理し、経営の効率化を図るための手法・概念のこと。多くの場合、リアルタイムで、ソフトウェアとテクノロジーによって仲介される。企業資源計画(きぎょうしげんけいかく)と呼ぶこともある。これを実現するための統合型(業務横断型)ソフトウェア(統合基幹業務システム)を「ERPパッケージ」と呼ぶ。

ERPは通常、組織が多くの企業活動からのデータを収集、保存、管理、および解釈するために使用するビジネス管理ソフトウェアに分類(通常は統合アプリケーションスイート)される。

Wikipedia: https://ja.wikipedia.org/wiki/%E4%BC%81%E6%A5%AD%E8%B3%87%E6%BA%90%E8%A8%88%E7%94%BB

元々は手法や概念であったものが、ソフトウェア(の集まり)を示すようになったということですね。

英語で検索すると、Microsoft D365, Salesforce, Oracle Netsuite, SAP, Odoo なんかが引っかかります。日本のものだとfreee, Money Forward あたりが似たようなパッケージを出してるみたいです。この辺、私は触ったことはないですが。

Odoo とは

それでは、Odoo とはなんでしょうか? 日本語のWikiはなかったので、英語版より引用。

Odoo is a Belgian suite of business management software tools including, for example, CRM, e-commerce, billing, accounting, manufacturing, warehouse, project management, and inventory management.

During Odoo experience which took place in Belgium in October 2022, Fabien Pinckaers announced that moving forward Odoo will make all applications available for free in enterprise edition, making Odoo an unparalleled suite of 70+ integrated business apps.

The Community version is a libre software, licensed under the GNU LGPLv3. The Enterprise version has proprietary extra features and services. The source code for the framework and core ERP modules is curated by the Belgium-based Odoo S.A. Odoo is available for both on-premises and ready to use SaaS environment. The source code for the OpenObject framework and the core ERP modules are provided by Belgium-based Odoo S.A.

Wikipedia: https://en.wikipedia.org/wiki/Odoo

それっぽく訳すと、

Odooは、CRM(Customer Relationship Management)、eコマース、請求、会計、製造、倉庫、プロジェクト管理、在庫管理などのビジネス管理ソフトウェアツールを含む、ベルギーの統合ビジネスアプリケーションスイートです。

コミュニティ版は、GNU LGPLv3でライセンスされたフリーソフトウェアです。エンタープライズ版には、プロプライエタリ(フリー版よりちょっと特別)な追加機能とサービスがあります。フレームワークとコアERPモジュールのソースコードは、ベルギーに拠点を置くOdoo S.A.が管理しています。Odooは、オンプレミスと利用準備が整ったSaaS環境の両方で利用可能です。OpenObjectフレームワークとコアERPモジュールのソースコードは、ベルギーに拠点を置くOdoo S.A.によって提供されています。

2022年10月にベルギーで行われたOdooの体験イベントにおいて、Fabien Pinckaers(Odoo S.A. のCEO)は、今後、Odooはすべてのアプリケーションをエンタープライズエディションで無料で提供し、Odooを70以上の比類なき統合ビジネスアプリケーションスイートにすると発表しました。

こんな感じですね。要するに Odoo は基本的には OSS(Open Source Software) でありフリーで利用可能ということです。(一部機能は有料)

その他、同様のOSS系ERPには ADempiere や Compiere といったものがあります。これらが共にプログラミング言語の Java で開発されているのに対して、Odoo は Python で開発されています。

Odoo のインストール

それでは、早速インストールしていきましょう。

Odooドキュメントの中にインストールガイドがあるのでこちらを参照します。

インストール方法は以下の4種類。

オンライン版:
最も簡単な方法で、オフィシャルの提供するリソース上で Odoo を動かす
インストーラ版:
Windows とかでもよくあるインストーラを使ってインストールする方法
ソースコードからインストール:
最も柔軟な方法。モジュールの開発とかに利用されるけど、こちらでプロダクション環境構築も可能。ちょっと設定がややこしめ
Docker版:
コンテナ仮想化によるうんちゃかかんちゃか。また Docker についての記事も書いていくつもりなので、そちらを参照してください

今回は Mac OS 上にソースコードからインストールする前提で見ていきます。

まずはオフィシャルの GitHub: https://github.com/odoo/odoo からソースコードをダウンロードしていきます。

適当に作ったディレクトリの中で、以下を実行。(git インストール済み)

 $ git clone https://github.com/odoo/odoo.git odoo_server

続いて、Odoo の実行では Python3.7 以降のバージョンが要求されるため、以下のコマンドを叩いてこちらを確認。(ついでにモジュールマネージャの pip 側も)

$ python3 --version
$ pip3 --version

PostgreSQLとか依存関係のパッケージはインストール済み&うまいこと設定済みってことにさせてください。Windows、Linux、Mac OSで方法が違うので。PostgreSQL含むRDBMSはまた別途記事書いてみたいですね。

とりあえず Odoo のサーバーを実行してみます。

$ python3 odoo_server/odoo-bin

上のスクリプト走らせると以下みたいな感じで標準出力が表示されます。

2023-07-19 13:43:44,752 5207 INFO ? odoo: Odoo version 16.0
2023-07-19 13:43:44,753 5207 INFO ? odoo: Using configuration file at ...
...
...
...
2023-07-19 13:43:45,451 5207 INFO ? odoo.service.server: HTTP service (werkzeug) running on 1.0.0.127.in-addr.arpa:8069
...
...
...

特にIPアドレスとかポートの設定してなければループバックアドレス(127.0.0.1)のポート8069がデフォルト設定となってるので、ブラウザで http://127.0.0.1:8069 とか http://localhost:8069 とかでアクセスしてみると以下みたいなページが表示されるはず。

適当に設定して “Create database” でデータベース作成する。この時の “Master Password” がデータベース廃棄したり修復したりするときに使用するやつで、 “Password” がユーザーとしてOdooにログインする時に使用するやつです。

とりあえずデータベースを作成すると以下みたいなインストール可能なアプリ一覧が出てきます。

とりあえず、ERPってことで、見積→受注→納品 みたいな流れは必須ですね。とりあえず「営業」は入れておきましょう・

インストール完了するととりあえず「ディスカス」の画面が表示されます。

Slack とかあの辺りのチャットツールみたいな機能です。とりあえずこれは後で触るとして、一通り色々アプリを入れてみましょう。

適当に、「購買」「製造」「カレンダー」「技術/スキル管理」「アンケート調査」あたりがいいですかね。

ついでにテーマもインストールしておきます。メニューバーの「アプリ」からテーマのダウンロードサイトに飛んで、

とりあえず一番人気の “MuK Backend Theme” をダウンロードしてみます。

ダウンロードした ”muk_web_theme-<バージョン番号>.zip” を解凍して、出てきたファイルをOdoo の addons ディレクトリに保存する。

こんな感じ <Odooのディレクトリ>/addons/muk_web_theme

で、Odooを再起動して、

# <Ctrl + C> で Odoo 終了
# 再起動
$ python3 odoo_server/odoo-bin

「管理設定」の画面で、「開発者モードを有効化」します。

「アプリ」の画面で「アプリリストを更新」します。

「カテゴリ」に「themes」の項目が出てくるのでそこに飛んで、「MuK Backend Theme」を有効化する。

正常にインストールされると、メニュー画面が以下みたいな見栄えになります。

テーマはインストールしなくても良いのですが、デフォルトだとメニューバーが結構使いにくかったので、個人的にはやっておくことをお勧めします。

Odoo を業務形態に合わせて設定

さて、いよいよ実際の業務に合わせて Odoo の設定を行なっていきます。

私が製造業の人間なので内容がそちら寄りになっていますが、基本的な考え方はだいたい同じだと思いますので、卸売業界なりサービス業なり、適宜各自の業務スタイルに合わせて調整していってください。

ユーザと会社

特に変更しなくても試験的に使ってみる分には初期設定でいいと思いますけど、結局それぞれの機能でレコード作成する際にこの情報使われたりするので、一応設定しておきます。

「管理設定」で「開発者モードを有効化」した上で、「ユーザと会社」のとこをそれぞれ設定していきます。

細かい説明は不要だと思いますが、何点かだけ。

「内部ユーザ」ってやつが、管理したり実務で使ったりする 組織の中の人 って感じなので、そこだけ注意です。ポータルサイト用のユーザ、パブリックユーザがその他のそれぞれのユーザです。

それから、SMTPサーバの設定する必要ありますが、基本的にユーザに設定されたメールアドレスに通知のメールとか飛ばしていく前提なので、そこも要注意。 新しくユーザ追加する際バンバン飛んでいきます。

この辺は適当にそれっぽい感じで設定しておく。後で変更も可能なので、気楽に。

製造(製品登録)

続いて、製造関連の設定を行なっていきます。製造にしても卸売にしても「製品」とか「商品」が結構大事な区分になってくるので、まずはこの辺りの設定です。

メニューの「製造」から「プロダクト」を選択します。左上の「新規」で新しくレコードを作成します。

とりあえず、「プロダクト名」と「販売可」「購買可」あたりの設定をして、「一般情報」タブで「販売価格」「原価」を設定。「原価」は子部品から自動計算させるので、とりあえずは0円で大丈夫です。

ついでに「内部参照」に部品番号を設定しておくとそれっぽくなります。

あとは、製造する前提で進めるので、「在庫」タブの「オペレーション」セクション 「ルート」を「製造」としておいてください。

その他、製品の画像を登録したり色々できるのでお好みで。

同様に、子部品のレコードもそれっぽく作成します。

こちらは、子部品のみで販売する前提とはしないので、「原価」だけ登録しておきます。似たような感じで、子部品-2とか子部品-3とか作ってみてください。

メニューバーの「プロダクト」から「部品表」に飛びます。

「新規」のボタンで新規レコードを作成します。

あとは、「プロダクト」の部分に親とする製品を、構成品のところに子部品を、といった感じで、設定していきます。数量も必要に合わせて適宜変更してください。

 とりあえずこんな感じで最低限の設定は完了です。

購買

まずは、購買調達処理を行う前に仕入れ先の企業を登録しておきましょう。

サイドメニューの「購買」機能に行って、メニューバーの「オーダ」から「仕入先」へ行き「新規」ボタンでレコードを作成します。企業情報は適当で。

いよいよ部品を調達する処理を行いますが、この時、作成するレコードが

 見積依頼 → 購買オーダ

のように状態変化するのでそこだけ把握しておいてください。(一気に購買オーダ作成するのも可能です)

では、見積依頼から行います。

メニューバー「オーダ」より「見積依頼」、いつも通り「新規」ボタンで新規レコードを作成します。

新規レコード上で、先ほど登録した仕入れ先や、仕入れる子部品、その数量などなど、を指定してあげます。

このレコードを保存した時点で「見積依頼」となります。今回はEメールで送信したりしないので、そのまま「オーダ確認」ボタンでレコードの状態を「購買オーダ」に変更してあげます。

これで購買オーダが発行された状態、つまり、仕入先企業に発注をかけて納入を待っている状態ですね。

在庫

続いて、部品が納入された際の処理を見ていきます。

サイドメニューの「在庫」機能を見てみると、「入荷」の部分に1件「未処理」となっていると思います。そのまま未処理のものを表示してあげます。

該当する入荷レコードを選択してあげて、「数量を設定」ボタンで一括で入力するか、入荷数量を手入力してあげてください。その後、「検証」ボタンを押して在庫として確定します。

メニューバーの「レポーティング」、「在庫」を表示して、購買品の「手持在庫」や「合計価格」が増えていることを確認します。

製造(製品生産)

引き続いて、製品を生産する際の処理となります。上記の購買処理までで製品の生産に必要な子部品は手配済み・入手済みの前提です。

本来は、

 費用見積 → 受注 → 部品調達 → 製造 → 納品 → 売上処理

のフローが一般的かと思いますが、あまり間接業務・直接業務を行き来してもわかりづらくなるだけだと思うので、わかりやすさ重視で見積や注文書受領処理の前に製品を生産して在庫にしてしまいます。

サイドメニューから「製造」機能へ飛んで、その他の処理と同じように新規でレコードを作成します。

「プロダクト」を選択してやると、上の方で設定した部品表に基づいて構成品が自動で入力されるはずです。必要に応じて「計画日」(生産予定日のことです)や、「数量」などなど変更してください。

左上の「確認」ボタンで製造オーダが確定されます。この「製造オーダ」はいわゆる生産指示として置き換えるとわかりやすいかもです。

製造オーダの画面に戻ってビューを切り替えることで、カレンダー表示にしたり、製造オーダをピボット処理(クロス集計)かけたり、カンバン表示にしたり、グラフ描画させたり、色々とできるので、興味があれば確認してみてください。

それでは、作成した製造オーダレコードに戻って、実際に生産した「数量」を指定し、「完了とする」ボタンで生産処理を確定してあげてください。

構成品の数量は、製品の数量を指定した時点で自動入力されます。

これで子部品が消費され、製品が製造されて在庫となっているので、サイドメニューの「在庫」機能から、メニューバー「レポーティング」、「在庫」の画面で確認してみます。

正しく、子部品の「手持在庫」が減り、製品の「手持在庫」が増えていますね。

ただ、製品の「単位原価」の部分が「¥0」となっています。こちらは構成部品から自動計算できるので、表示されているレコード一覧から、該当製品の「プロダクト」のカラム(列)をクリックしてあげてください。「プロダクト」レコードに飛びます。

「原価」の項目の隣にある「部品表から原価を計算」をクリックすれば自動計算してくれます。

もう一度「レポーティング」から在庫を確認すれば「単位原価」や「合計価格」が更新されているのが確認できます。

販売

それでは、いよいよ製品の販売処理に移ります。上記の通り、基本的には

 費用見積 → 受注 → 納品 → 売上処理

のような流れですが、もうそのまま受注(オーダ)を受けてしまう感じで処理してしまいます。

サイドメニューから「販売」機能へいき、メニューバーの「オーダ」、そして新規レコードを作成する。

「顧客」のとこで、売上先の企業登録してなかったので、適当に作成して登録してしまってください。あとは、販売用の製品(プロダクト)選択してあげればその他は大体自動入力されます。

今回は触らないですが、「その他情報」のタブで配送日(納期)とか指定できるので、触ってみてもOKです。

一通り入力できたら販売オーダを左上の「確認」ボタンで確定してあげます。

ここまで完了したら、自動的に配送用のレコードが作成されているので、「在庫」機能にいってみてください。「配送」のカンバン表示部分に1件未処理で計上されていると思います。

それでは、納品処理を完了させていきます。「配送」のレコードを開いて、「完了」列に数字を入力するか又は左上の「数量を設定」で自動入力し、「検証」ボタンを押すことで配送完了の処理がなされます。

「販売」機能へいき、「オーダ」を表示すると「請求書ステータス」が「請求可能」となっているはずです。そのまま対象レコードを開いて、「請求書作成」ボタンを押します。

これで請求書のドラフトが作成された状態となります。「確認」ボタンを押して請求書を発行済みのステータスにしてあげます。

本来は入金を確認してからですが、そのまま「支払登録」ボタンを押してあげれば売上の集金まで完了した状態となります。

右上の方に「支払済」で表示されます。これで一通りの流れが完了です。

最後に蓄積されたデータが「ダッシュボード」機能で確認できるのでみておきます。「Sales」(販売)のサマリー表示です。

(ほんとはグラフが表示されますが、データが一つだけなので、それっぽく見えませんね。)

同様に「Inventory On Hand」(手持ち在庫)です。棚卸し時とかに重宝します。

以上、簡単な設定と使い方でした。

まとめ

とりあえず基本となる流れだけざっと流してみてます。

他にも色々と細かい設定があって、在庫を倉庫別に保管して管理できたり、保管ロケーションごとの最大量を設定できたり、そもそも製品の管理単位を変更できたり、自動で購買発注できるような機能があったり、在庫調整機能で棚卸しをスマホ使ってできたりと結構便利だったりするので、興味があれば触ってみてください。

本来、会計機能は有償エンタープライズ版のみ提供ですが、サードバーティ系のフリーなモジュールがあるので、この辺り使っても割と便利そうでした。

結構バグ?が多くてちょっと苦労してますけど、日々の仕分けをしてその辺りを集計、そして財務諸表(海外のフォーマット)出力ができたります。

細かい設定はオフィシャルで: https://www.odoo.com/documentation/16.0/index.html

フレームワーク自体がしっかりしてるので、ある程度ビジネスの経験があれば、いまいちど、改めて行なっている業務フローとかを見つめ直すのに役立つかもですね。

個人的にERPのフレームワークは割と好きだったりするのでもう少し掘り下げた内容をまた記事にしてみたいですね。もっと言えば、デベロッパー用のドキュメントもあったので、独自のモジュール開発する流れの記事も書いてみたいかなと。

以上、Odooの紹介となります。最後まで読んでいただきありがとうございました。

See ya!

コメント

タイトルとURLをコピーしました