あらゆるERPと連携

SkyPlannerのオープンREST APIは、社内ERPを含むERP、MES、運用システムと連携します。自社で構築することも、当社チームの支援を受けることもできます。

単体でも動作 — ERP連携はオプションで、必須ではありません。

連携プロジェクトを相談

以下のようなERP・MESシステムと連携

システム連携 / ERP / Odoo

Odooは生産スケジューリングに対応している?Planボタンの仕組みとSkyPlanner APSを追加するタイミング

Odooには、設備や人員の実際の能力を考慮する基本的な生産スケジューリング機能があります。Odoo ManufacturingのPlanボタンは、各製造指図を作業区カレンダーの最初の空き枠に割り当てます。そのため、同じ作業区で計画済みの製造指図が重なることはありません。ただし、考慮する制約は一つだけで、生産オーダーごとに計画します。複数のオーダーを横断した順序変更、最適化、再計画は行いません。すべてのオーダーについて納期と段取りを考慮して順序を決める必要がある工場では、OdooとSkyPlanner APSを併用しています。

各リソースに割り付けられた作業と、その下のオーダー一覧を表示したSkyPlanner APSのガントチャート。

Odoo自身も製品紹介で、”plan resources with finite capacity planning”(有限の生産能力を考慮してリソースの使用計画を立てられる)と説明しています(odoo.com/app/manufacturing)。以下では、公式ドキュメントとソースコードを基に、Odoo 19.0でこれが何を意味するのかを解説します。Planの仕組みと限界、そしてPlanだけで十分なケースを見ていきます。

Odooが製造指図を計画する手順

1. 製造指図を有効にし、作業区を設定する

Manufacturing > Configuration > Settingsに移動し、Work Ordersを有効にします。すると、Configurationの下にWork Centersが表示されます。各作業区(mrp.workcenter)には、計画に使う次の項目があります。

項目計画上の役割
Working Hours作業区の稼働日・時間を定めるリソースカレンダー。既定は月曜日から金曜日の「Standard 40 hours/week」
Time Efficiencyこの作業区のすべての製造指図について、所要時間を短縮または延長する割合
Setup Time / Cleanup Time各製造指図の前後に加算する時間(分)
Alternative Workcenters「計画」実行時に代わりに使用できる作業区
Product Capacitiesタブサイクル当たりの生産個数と、製品ごとの段取り・後片付け時間(分)(mrp.workcenter.capacity)
OEE Targetレポート用の稼働実績目標。計画の入力値には使われない
Allowed Employeesこの作業区で作業できる従業員を絞り込む条件。生産能力を定義するものではない

2. 部品表に工程を設定する

共通の工順マスターはありません。工程は各BoMのOperationsタブ(mrp.routing.workcenter)で管理します。各工程にはWork CenterとDuration Computationを設定します。所要時間は固定値を入力するか、直近の製造指図(既定では10件)から算出します。予定所要時間は、段取り時間と後片付け時間に、サイクル数×サイクル時間をTime Efficiencyで割った値を加えて求めます(mrp_routing.py)。

Work Order Dependenciesを有効にすると、Blocked Byで他の工程の完了を待つように設定できます。Odooのドキュメントには、”A blocked work order is scheduled at the end of the time period specified in the Expected Duration field of the work order that precedes it.”(先行する製造指図のExpected Durationフィールドで指定された時間が終わる時点に、後続の製造指図が計画される)とあります(出典)。

3. 生産オーダー(MO)を確定し、Planを押す

製造オーダー(mrp.production)を確定すると、製造指図(mrp.workorder)が作成されます。製造オーダー(MO)で計画を押すと、最後の製造指図を起点に先行関係を再帰的にたどり、後続の開始を制約する製造指図から順に計画します。各製造指図は、先行する製造指図の終了後に、時間軸に沿って前向きに配置されます。Odooは製造指図ごとに次の処理を行います。

  1. MOの開始日時、現在日時、依存関係のある先行製造指図の終了日時のうち、最も遅い日時を起点にします。
  2. 主作業区と、Alternative Workcenterに設定されたすべての代替作業区を候補にします。
  3. 各カレンダーを起点から先に向かって検索し、予定所要時間を確保できる最初の空き時間帯を探します。
  4. 最も早く完了できる作業区を選び、そのカレンダーにresource.calendar.leavesレコードを作成して時間枠を予約します。

19.0のソースコードには、”The available interval is disjoinct with all other workorders planned on this workcenter”(利用可能な時間帯は、この作業区に計画された他のすべての製造指図と重ならない)と明記されています(mrp_workcenter.py)。これが有限能力に当たる部分です。製造指図の途中で非稼働時間に入る場合は、次の稼働時間帯に作業を再開します。デフォルトの検索範囲である700日以内に割り当て先が見つからないと、Planは”Impossible to plan the workorder.”(製造指図を計画できません)と表示して停止します。

4. 非稼働時間と代替作業区を設定する

Time Offアプリと開発者モードを使えば、保全や休日のために作業区を非稼働にできます。その場合、Planは製造指図をAlternative Workcentersに設定された代替作業区へ割り当てます。代替作業区がない場合について、Odooのドキュメントには”work orders begin to pile up at the work center until it is operational again”(作業区が再稼働するまで製造指図が滞留していく)とあります(出典)。

5. 計画を確認して調整する

Manufacturing > Planning > Planning by ProductionとPlanning by Workcenterから、製造指図の計画画面を開きます。Enterpriseではドラッグ&ドロップに対応したガントチャートを利用できます。Communityではリスト、カレンダー、ピボット、グラフの各ビューを利用できます。ドキュメントでは、調整は手動で行うと説明されています。”Times and planned work centers can be changed by clicking to access the individual work order.”(個々の製造指図をクリックして開くと、時間と割り当て先の作業区を変更できる)(出典)。

Odooの標準機能の限界

  • 先に計画したものが優先されます。PlanはMOごとに処理し、先に計画したMOが早い時間枠を確保します。複数のMOを選択した場合は、Odooの標準の並び順である優先度、開始日の順に計画します。納期と段取り替えを比較して判断したり、より緊急のMOのために計画済みのMOを移動したりする機能はありません。
  • 段取りを考慮した順序付けはしません。Setup Timeは製造指図ごとに加算する固定時間で、直前の作業にかかわらず同じ時間です。Odooには段取り替えマトリクスがなく、段取り替えを減らすために類似の作業をまとめることもしません。
  • 制約は一つだけです。計画を制約するのは作業区のカレンダーだけです。作業者はAllowed Employeesで対象を絞り込むだけで、Planが時間枠を確保する際に工具や資材の利用可否は確認しません。部品の引当と購買オーダーの日付は、補充にのみ使われます。
  • MRPは生産能力を考慮しません。再発注規則とMTOは、部品表のManuf. Lead Timeを暦日として使い、MOを作成します。ドキュメントには”Lead times do not consider weekends, holidays, or work center capacity”(リードタイムは週末、休日、作業区の能力を考慮しない)とあります(出典)。MOの期限や顧客に約束する納期は、実際の待ち行列ではなく暦日を基に決まります。
  • MPSは補充の提案リストです。基準生産計画(MPS、Enterprise)も負荷を参照しません。”The MPS only suggests the amount of product to be replenished, requiring the user to actually create the replenishing POs/MOs.”(MPSは製品の補充数量を提案するだけで、補充用の購買オーダー/生産オーダーはユーザーが作成する必要がある)(出典)。
  • 自動では再計画しません。故障や特急オーダーが発生しても、計画は自動で変わりません。製造指図が開始済みになると、OdooはMOの計画解除を拒否します。”Some work orders have already started, so you cannot unplan this manufacturing order.”(一部の製造指図がすでに開始されているため、この生産オーダーの計画は解除できません)(mrp_production.py)。
  • サブアセンブリは個別に計画します。多階層の部品表からは個別の子MOが作成され、それぞれ独立して計画されます。親工程で必要になるまでにサブアセンブリが完成するよう、計画担当者が正しい順序で計画する必要があります。
  • ガントチャートとMPSはEnterprise限定です。エディション比較ページでは、製造の”Scheduling”(スケジューリング)と”Shopfloor”(製造現場)をEnterprise限定としています(odoo.com/page/editions)。Communityの計画担当者はリストとカレンダーで作業します。

Odooの標準計画機能だけで十分なケース

次の条件であれば、OdooのPlanボタンで対応できます。

  • 各工程の割り当て先が一つの作業区に明確に決まっており、生産量もそれほど多くない。
  • 同じボトルネックに集中するオーダーが少なく、先に計画した順でも許容できる日程になる。
  • 代替設備の仕様が同じで、Alternative WorkcentersとTime Offにより、生産に支障が生じてもほとんどの場合は対応できる。
  • 段取り時間が短い、または直前の作業に左右されない。
  • 計画担当者が一日に一度、Planning by Workcenterを確認し、少数の競合を手動で調整できる。

自社の工場がこれに当てはまるなら、データの整備に力を入れてください。すべての作業区にカレンダーを設定し、Setup TimeとCleanup Timeに実態に合った時間を入力します。実績のばらつきが大きい工程には固定の所要時間を使い、依存関係を有効にして、優先度順にMOを計画してください。

生産スケジューラが必要になるケース

次のうち複数が当てはまるなら、Planだけでは対応しきれません。

  • 多くのオーダーが二つ以上のボトルネックに集中し、納期に基づいて順序を決める必要がある。
  • 直前に何を加工したかで段取りが変わり、作業の順序が生産量に影響する。
  • 設備だけでなく、人員やシフトも同じように計画上の制約になる。
  • 資材の入荷時期によって作業の開始時期が決まる。
  • 特急オーダー、故障、入荷遅延により、週に何度も再計画が必要になる。
  • 営業が必要としているのは、Manuf. Lead Timeではなく実際の待ち行列に基づいた納期である。

選定時に確認すべき機能

  • シフト、人員、欠勤を反映し、全リソースの実際の能力を同時に考慮して生産スケジューリングできること。
  • MO単位ではなく、納期と優先度に基づいてすべてのオーダーを横断して順序を決められること。
  • 作業順序で変わる段取り替えに対応する段取り時間マトリクスを備え、エンジンが段取り時間を最小にする作業順序を選べること。
  • 工具と作業班を制約として扱えること。ある設備で使用中の共用工具は別の設備では使えず、一つの作業に複数の作業者を同時に必要とする場合もあります。
  • 在庫と入荷予定の購買オーダーを確認し、資材の状況を考慮してスケジューリングできること。
  • 製造指図ごとではなく、計画全体を見てエンジンが代替リソースを選べること。
  • 多階層の製品に対応し、親工程で必要になるまでにサブアセンブリを完成させられること。
  • 生産の進捗やオーダーの変更に応じて自動で再スケジューリングできること。
  • Communityでも、計画担当者向けのガントチャートと作業者向けの作業待ちリストを利用できること。
  • Odooとの役割分担を明確に。Odooの製造指図の日程はカレンダーの予約から算出され、「計画」を再度押すと上書きされます。作業順序はスケジューラ側で管理することを合意し、mrp.workorderを通じて日程と作業区を書き戻します。すでに着手済みの製造指図は対象から外します。
  • 利用中のバージョンと料金プランに適したAPIがあること。Odoo 19にはExternal JSON-2 APIがあります。XML-RPCとJSON-RPCは、Odoo 22(Odoo Online 21.1)で廃止予定です。外部APIを利用できるのはCustom料金プランのみで、One App FreeやStandardでは利用できません(外部APIのドキュメント)。カスタムモジュールを使うには、Odoo.shまたはオンプレミスでのホスティングが必要です(Odooの料金)。

選択肢は四つに分かれます。

  • Odooの標準計画機能にはPlanボタンがあり、Enterpriseではガントビューも使えます。
  • Odooクライアント内で動く追加モジュールは、計画ボードや時間枠への割り当てロジックを改善します。保守はOdooパートナーが担います。
  • サプライチェーン計画エンジンや大企業向けAPSスイートは、導入プロジェクトを通じて連携し、専任の計画チームが運用します。
  • 製造現場の実行管理にも対応するクラウドAPSは、Odooと併用し、すべてのリソースを自動でスケジューリングします。SkyPlannerはこの分類に当たります。生産状況の変化に応じて再計画を続け、作業者がスケジュールを直接確認できるようにします。

SkyPlannerが担う役割

SkyPlanner APSは、ここまで挙げた制約の一つひとつに対応します。

  • 先着順から、条件に基づく作業順序へ。Arcturus AIエンジンは、未完了の全オーダーを対象に、設備や人員の実際の能力を考慮したスケジュールを数秒で作成します。完了日、優先度、顧客優先度、Fast Track、Dynamic Prioritiesに基づいて順序を決めます。
  • 固定の段取り時間から、段取り短縮へ。段取り時間マトリクスには、製品の組み合わせごとに段取り替え時間を登録します。切り替える方向によって異なる時間も設定でき、例えば青から赤は30分、赤から青は60分と指定できます。スケジューラは段取り時間が最小になる順序を選び、類似の作業を続けて実行するように計画します。
  • すべての制約をまとめて考慮。リソース、シフト、人員、欠勤、工具、資材を同じスケジュール上で確認します。工具の数にも限りがあるため、ある機械で使用中の治具が、同じ時間に別の機械に割り当てられることはありません。一つの作業に複数の作業者が同時に必要な場合にも対応し、優先リソースを使えないときは、エンジンが代替の機械や人員を選びます。リソースのグループ化、効率、一つの作業を複数のリソースに分割する処理も、同じモデルで扱います。資材の確認対象は、手持在庫と未完了のpurchase.order明細です。発注済みの部品は発注書の納入日から利用可能とみなされ、発注書を納入済みにすると在庫が更新されます。
  • サブアセンブリの完成時期を合わせる。中間製品や多階層の製品も、組立で必要になる時点で部品が揃うようにスケジューリングします。
  • 手作業の再計画をAutopilotに任せる。生産状況が変わると、Autopilotがロック設定、Running Time Lock、優先順位を守りながら自動でスケジュールを組み直します。
  • Communityでもガントチャートと現場向け機能を使える。計画担当者は、操作可能なガントチャート上でスケジュールを編集できます。作業者はスマートフォンやタブレットで自分の作業待ち一覧を確認し、Mobile Confirmations、Production Timer、Quick Log Modeで作業を記録できます。

製品、部品表、在庫、購買、会計の正式なデータは、引き続きOdooで管理します。SkyPlannerはExternal JSON-2 APIを介してOdooと双方向に連携し、旧バージョンではXML-RPCとJSON-RPCを使用します。

  • 取り込み:mrp.production、mrp.workorder、mrp.workcenter、mrp.bom、および未完了のpurchase.order明細。
  • 書き戻し:writeを各mrp.workorderに対して実行し、開始予定、終了予定、選択した作業区(date_start、date_finished、workcenter_id)を書き込みます。これによりOdoo側のカレンダー予約も移動し、Odooの計画画面にSkyPlannerの日程が表示されます。
  • 製造現場:作業者が確定した実績は、mrp.workcenter.productivityのTime Logsとして作成されます。

SkyPlannerのWebhookは、スケジュールの変更をその都度送信します。Odooの運用は工場ごとに異なり、工程、カレンダー、カスタムモジュールもそれぞれ独自のものです。SkyPlannerチームは、導入支援の際にお客様の環境に合わせて連携を設定し、本稼働後もサポートします。Odooパートナーや自社の開発者が、仕様を公開しているSkyPlannerのREST API(APIリファレンス)を使って連携を構築することもできます。APIキーがあれば始められます。APIと機能の詳細は、SkyPlannerドキュメントをご覧ください。

多数のオーダーが同じボトルネックに集中し、すべてのオーダーを納期に基づいて順序付けする必要があるなら、SkyPlannerをお選びください。

作業順序によって段取り替えが変わる場合や、共用工具の使用状況、複数の作業者を必要とする作業の人員確保によって、次に実行できる作業が決まる場合は、SkyPlannerをお選びください。

週に何度も計画を組み直しており、長期のプロジェクトを待たず、数週間で自社の生産に使えるスケジュールを作りたいなら、SkyPlannerをお選びください。

CSVまたはXLSXのエクスポートデータを使い、30日間の無料トライアルから始めてください。最大20リソースまで利用でき、クレジットカードは不要です。SkyPlannerのスケジュールを、Planボタンで作成した結果と比較できます。トライアル後は5リソース込みで月額199 €から。月ごとの請求で、いつでも解約できます。連携費用は、お客様の業務プロセスと要件に合わせて、利用プランとともに事前にお見積もりするため、開始前に総費用を把握できます。通常、導入支援の開始から数週間で導入が完了します。料金と機能をご覧ください。

詳しくは、Odoo向けSkyPlanner、Odoo連携ガイド、その他のERP連携をご覧ください。

製造業のお客様によるSkyPlannerの評価

ウルヴィラの配電盤製造現場に立つ、UTUのサプライチェーンスペシャリストKalle Kalliomäki氏

2時間を毎週削減

「SkyPlannerによって、当社の生産計画はExcelの表計算からリアルタイムの生産最適化へと変わりました。」

Kalle Kalliomäki、サプライチェーンスペシャリスト
UTU · 配電盤・開閉装置

生産計画にかかる作業時間を毎週2時間削減し、新しい作業待ち一覧を数秒で製造ラインに届けています。

UTUの評価を読む

ナイロビにあるLaboratory & Alliedの医薬品工場で、クリーンルーム用作業服を着用してボトル充填ラインで働く作業者

+90%生産効率が向上

「生産効率が90%向上しました。」

Abdul Rucyinga、IT部門責任者
Laboratory & Allied · 医薬品製造

生産効率が90%向上し、全リソースを対象とする三か月分の最適化された計画を30分未満で作成しています。

Laboratory & Alliedの評価を読む

ラウマのロボットパレタイジングセルの傍らに立つ、Fredman Operationsの生産マネージャーAnu Järvinen氏

6か月先まで営業が余力を把握

「SkyPlannerは、すべての生産計画の基盤を築き、その信頼性を支えています。」

Anu Järvinen、生産マネージャー
Fredman Operations · 食品用包装紙

営業部門は六か月先まで生産余力を把握できます。以前は一時間以上かかっていたスケジュール変更の依頼にも、数秒で回答しています。

Fredman Operationsの評価を読む

アラハルマ工場で、溶接した鋼構造物を研削するKJH-Compの溶接作業者

98%納期遵守率が約50%から向上

「SkyPlannerは、当社の納期遵守率を維持するうえで決定的な役割を果たしています。」

Hannu Lahtinen、代表取締役
KJH-Comp · 板金加工・受託製造

納期遵守率は約50%から最高98%に向上しました。以前は二人の監督者が必要だったスケジューリングを、今では一人で担当しています。

KJH-Compの評価を読む

よくある質問

Odoo Communityには生産スケジューリング機能がありますか?

はい、基本的な機能はあります。Communityには製造オーダー、製造指図、作業区、Planボタンがあり、リスト、カレンダー、ピボット、グラフで表示できます。ガントチャートによるスケジューリング画面、Shop Floor、Master Production ScheduleはEnterpriseの機能です。SkyPlannerを使えば、Communityを利用する工場でもガントチャートと作業者向けの作業待ち一覧を利用できます。

OdooのMRPは作業区の能力を考慮しますか?

いいえ。補充計算では暦日ベースのリードタイムを使います。Odooのドキュメントには、リードタイムは “do not consider weekends, holidays, or work center capacity”(週末、祝日、作業区の能力を考慮しない)と記載されています。能力が考慮されるのは、製造オーダー(MO)でPlanを押したときだけです。

Odooでは、一つの作業区で複数の作業を同時に実行できますか?

スケジューリング上はできません。19.0のコードでは、各製造指図を、同じ作業区のほかのすべての製造指図と重ならない時間帯に割り当てます。Product Capacitiesタブで設定するのは、一つの製造指図内でのサイクル当たりの生産個数であり、製造指図の並列実行ではありません。

Odooは作業順序によって変わる段取り時間に対応していますか?

いいえ。Setup TimeとCleanup Timeは、作業区ごと、またはProduct Capacitiesタブで製品ごとに分単位で設定する固定時間です。Odooは、直前にどの作業を行ったかにかかわらず、その時間をすべての製造指図に加算します。SkyPlannerの段取り時間マトリクスは、製品の組み合わせと切り替え方向ごとに段取り替え時間を保持し、その時間を最小限に抑えるように作業順序を決めます。

SkyPlanner APSはOdooとどのように連携しますか?

SkyPlannerはExternal JSON-2 APIを通じてOdooと双方向に連携します。16.0から18.0では、XML-RPCまたはJSON-RPC経由でexecute_kwを使用します。各mrp.workorderに予定日程と作業区を書き込み、記録された作業時間はOdooのTime Logsになります。SkyPlannerチームが導入時に連携を設定し、本番稼働後もサポートします。詳細はOdoo連携ガイドをご覧ください。

Odooと連携する前にSkyPlannerを試せますか?

はい。30日間のトライアルでは、Odooのリスト画面からエクスポートしたCSVまたはXLSXデータを使用できます。最大20リソースまで利用でき、クレジットカードは不要です。システムを接続する前に、SkyPlannerのスケジュールをPlanボタンで作成した結果と比較できます。無料トライアルを始めるか、営業にご相談ください。