システム連携 / ERP / Microsoft Dynamics 365 Business Central
Business Central連携ガイド SkyPlanner APSで生産スケジューリングを行うために
このガイドでは、Business CentralのパートナーとIT担当者に向けて、Microsoft Dynamics 365 Business CentralをSkyPlanner APSに接続する方法を説明します。SkyPlannerは、Business Central標準のWebサービスを使って双方向に連携します。
- 製造オーダー、工順、作業区、品目、購買オーダーを取り込みます。
- 計画した開始・終了日時をProd. Order Routing Linesに書き戻します。
- 生産実績の報告に使うため、作業者の作業時間記録を返します。
- スケジュールが変更されるたびに、SkyPlannerのWebhookが変更内容を送信します。
SkyPlannerチームが導入支援の段階でお客様のBusiness Central環境に合わせて連携を設定し、本稼働後もサポートします。このガイドは、連携作業への参加を希望するパートナーや開発者、またはドキュメントが公開されているSkyPlannerのREST API(APIリファレンス)を使って独自に開発したい方を対象としています。
Business Centralの標準インターフェース二つで連携。Business Central側のコーディングは不要
連携には、Business Centralに標準搭載されている次の二つのインターフェースを使います。
- API v2.0は、販売・購買と在庫のデータに使用します。
items、itemVariants、itemLedgerEntries、locations、unitsOfMeasure、salesOrders、salesOrderLines、purchaseOrders、purchaseOrderLines、vendors、customers、employeesを公開しています。製造関連のエンティティはないため、生産データにはもう一方のインターフェースを使用します。 - OData v4 Webサービスは、製造データに使用します。Business Centralのどのページも、Web ServicesページからOData v4 Webサービスとして公開できます。オブジェクトの種類にPageを選び、ページIDとサービス名を指定して、Publishedを選択します。これでエンドポイントが利用可能になり、ALコードの作成も拡張機能のデプロイも不要です。この連携では、リリース済み製造オーダー、Prod. Order Routing Lines、作業区、機械区、工順の標準ページを公開し、
/ODataV4/Company('{name}')/{ServiceName}で提供します。
公開したページでは読み取りも書き込みも可能です。Microsoftは “If an editable page is exposed as a web service, the data in the underlying table can be accessed and modified by an OData call,”(編集可能なページをWebサービスとして公開すると、OData呼び出しで基になるテーブルのデータにアクセスし、変更できます)と説明しており、更新にはPATCHを使います。計画日時もこの仕組みでBusiness Centralに書き戻します。生産計画担当者が使うのと同じページを経由し、同じ検証が行われます。
SOAPは使わないでください。MicrosoftはSOAP Webサービスを非推奨としており、2026 release wave 2(v29)ではMicrosoftのUIページをSOAPとして公開する機能が削除されます。
認証
Microsoft Entra IDを通じたOAuth 2.0のサービス間認証(client credentials)フローを使います。
- Entra IDにアプリを登録し、Dynamics 365 Business Centralのアプリケーションのアクセス許可
API.ReadWrite.Allを付与します。 - スコープに
https://api.businesscentral.dynamics.com/.defaultを指定してトークンを要求します。 - Business CentralでMicrosoft Entra Applicationsページを開き、クライアントIDを追加し、必要最小限の権限セットを割り当てて同意を付与します。S2SアプリにSUPERを割り当てることはできません。
ベースURLは、API v2.0ではhttps://api.businesscentral.dynamics.com/v2.0/{environment}/api/v2.0/companies({id})/{entity}、公開ページではhttps://api.businesscentral.dynamics.com/v2.0/{environment}/ODataV4/Company('{name}')/{ServiceName}です。どちらも同じトークンで利用できます。
Webサービスのアクセスキー(基本認証)は非推奨で、Business Centralオンラインでは2022年10月以降サポートされていません。また、利用には必ずライセンスを持つユーザーが必要です。OAuthによるサービス間連携にはライセンスは不要です。オンプレミスでは、バージョン18.11および19.5からS2Sがサポートされています。利用するには、サーバーでMicrosoft Entra認証を設定する必要があります。
SkyPlanner側のREST APIはJWT認証を使い、仕様はSwagger/OpenAPIで公開されています。最初の呼び出し手順は連携チュートリアルで説明しています。
イベント、Webhook、ポーリング
Business Centralでは、POST /api/v2.0/subscriptionsを使って、itemsやsalesOrdersなどのAPI v2.0エンティティに対するWebhookサブスクリプションを作成できます。次のルールがあります。
- サブスクリプションの作成にはハンドシェイクが必要です。受信側のエンドポイントは、200 OKとともに
validationTokenを返す必要があります。 - サブスクリプションは三日で期限切れになります。PATCHで更新すると、ハンドシェイクが再度実行されます。
- 通知に含まれるのは、リソースパス、
changeType、指定したclientStateであり、レコード全体ではありません。通知を受けた後でレコードを読み取ります。 - 通知は即時には届きません。Business Central onlineは最初の変更から30秒待機し、その間に変更されたレコードが1,000件を超えると、まとめて一つの
collection通知を送信します。 - オンライン環境では、Webhookサブスクリプションの上限は環境ごとに200件です。
製造オーダー、工順明細、発注は、公開ページとpurchaseOrdersを数分ごとにポーリングして取得します。未完了のオーダーに絞り込み、ページングを行うことで、リクエスト数をBusiness Centralの制限内に十分収められます。
SkyPlannerは状態やスケジュールが変わるとWebhookを送信するため、書き戻し処理はイベント駆動で動作します。
データマッピング
| Business Centralのオブジェクト(インターフェース) | SkyPlannerのオブジェクト | 連携方向 | 連携頻度 |
|---|---|---|---|
Item、Item Variant、Unit of Measure(items、itemVariants、unitsOfMeasure、API v2.0) | 製品と資材 | BC → SkyPlanner | 初回取り込み後、Webhookまたは差分ポーリング |
| Production BOM Header/Line、Certifiedバージョン(公開ページ) | 製品構成、子製品、製品ごとの資材 | BC → SkyPlanner | 初回取り込み後、変更時 |
| Routing Header/Line、Certifiedバージョン(公開したRoutingページ):Operation No.、Setup、Run、Wait and Move Time、Concurrent Capacities、Send-Ahead Quantity | 各工程とその所要時間、段取り時間、後片付け時間 | BC → SkyPlanner | 初回取り込み後、変更時 |
| Work Center、Machine Center:Capacity、Efficiency、Shop Calendar Code(公開したWork CenterページとMachine Centerページ) | リソース、リソースグループ、効率 | BC → SkyPlanner | 初回取り込み後はまれに更新 |
| Shop Calendar、Work Shift、Calendar Entry、Absence(公開ページ) | シフト、欠勤 | BC → SkyPlanner | 毎日、またはSkyPlannerでシフトを管理 |
| Released Production Order、Prod. Order Line、Prod. Order Routing Line、Prod. Order Component(公開ページ。必要に応じてFirm Plannedも対象) | 納期と資材所要量を含むオーダーおよび作業 | BC → SkyPlanner | 数分ごとにポーリング |
salesOrders、salesOrderLines(API v2.0) | 顧客への納期と優先順位の判断に必要な情報 | BC → SkyPlanner | Webhookまたはポーリング |
itemLedgerEntries(API v2.0) | 在庫残高 | BC → SkyPlanner | 毎時、またはスケジューリング実行時にポーリング |
purchaseOrders、purchaseOrderLines(API v2.0)、明細のExpected Receipt Date | 入荷予定日を含む発注・入荷予定資材。発注のステータスをDeliveredにすると在庫を更新 | BC → SkyPlanner | 毎時、またはスケジューリング実行時にポーリング |
| Prod. Order Routing Line:Starting Date-Time、Ending Date-Time、Type、No.(公開したProd. Order RoutingページにPATCH) | 工程ごとの開始・終了予定日時とリソース | SkyPlanner → BC | スケジュール変更時にSkyPlannerのWebhook経由 |
| Output Journal(Item Journal Line、Entry TypeはOutput) | 作業時間記録、数量、作業者による実績報告 | SkyPlanner → BC | 自動転記が有効な場合、実績報告ごと、またはシフトごと |
| Routing Tool、Routing Personnel(公開ページ。初期データとして任意で取り込み) | 必要工具、作業ごとの作業者数 | BC → SkyPlanner | 初回取り込み後はSkyPlannerで管理 |
| Business Centralにはなし | 段取り時間マトリクス、有限リソースとして扱う工具、代替機械・作業者 | SkyPlannerで管理 | 導入支援時に設定 |
| Consumption Journal(自動消費計上を行わない場合) | 資材使用量 | SkyPlanner → BC | 自動転記が有効な場合、実績報告ごと、またはシフトごと |
連携パターン
1. マスタデータの初期取り込み。公開ページからCertifiedの工順と製造BOM、作業区、マシンセンターを取得し、API v2.0から品目と単位を取得します。各作業区やマシンセンターをSkyPlannerのリソースにどう対応付けるか、明確に決めてください。例えば、三つのマシンセンターを持つ作業区を、一つのリソースグループにするのか、三つのリソースにするのかを決定します。
2. オーダーの同期。公開ページからReleasedの製造オーダーを工順明細・構成品とともに読み取ります。Firm Plannedもスケジュール対象とする場合は取り込みます。あわせてAPI v2.0から未完了の購買オーダー明細を取得します。SkyPlannerは発注済みの資材を購買オーダーの納入日に利用可能とみなし、購買オーダーがDeliveredになると在庫を更新します。そのため、スケジューリングでは在庫と入荷予定の両方を確認します。
Plannedの製造オーダーは絶対にスケジュール対象にしないでください。Microsoftによると、Business Centralは “deletes them the next time you run planning.”(次回の計画実行時にこれらを削除します)。Planning Worksheetは引き続き供給を提案し、SkyPlannerは確定したオーダーを実際の能力に合わせてスケジューリングします。
3. スケジュールの書き戻し。標準のProd. Order RoutingページをOData v4 Webサービスとして公開します。エンジンが配置または移動した各工程について、SkyPlannerはIf-Match ETagを付けて該当する工順明細にPATCHを送信します。Starting Date-TimeとEnding Date-Timeを設定し、工程を代替機械に移動した場合はTypeとNo.も設定します。
PATCHによってページとテーブルのトリガーが実行されるため、Business Centralは独自のロジックでフィールドを検証します。生産計画担当者がProd. Order Routingページを編集する場合とまったく同じです。製造オーダー明細のStarting Date-TimeとEnding Date-Timeも、それに合わせて更新されます。数量、状態、原価は引き続きBusiness Centralが管理します。
4. 製造現場での実績入力。作業者はSkyPlanner Mobile ConfirmationsまたはProduction Timerで作業を記録し、その時間記録がスケジュールを最新に保ちます。生産実績は従来どおり、Business CentralのProduction JournalまたはOutput Journalから報告できます。
生産実績と消費実績の転記を完全に自動化する場合は、Output Journalへの転記用にBusiness Centralの標準APIページを追加します。これによりSkyPlannerが工程ごとの段取り時間、稼働時間、生産数量を転記します。転記するとCapacity Ledger Entriesが更新され、工順の最終工程で生産実績を計上すると品目が在庫に追加されます。
生産実績の転記経路は一つに絞ってください。SkyPlannerとBusiness CentralのProduction Journalの両方から転記すると、二重計上になります。
5. データの管理主体と競合時のルール。本稼働前に、次の内容を文書化してください。
| データ | 管理主体 |
|---|---|
| 品目、BOM、工順、数量、オーダーの状態 | Business Central |
| 工程の順序、開始・終了日時、リソースの割り当て | SkyPlanner |
| 段取り時間マトリクス、工具と作業者の要件、代替リソース | SkyPlanner |
| シフトと欠勤 | 要件定義で選定した一つのシステム |
| 生産実績と消費実績 | Business Central。手動で転記するか、SkyPlannerの作業時間記録から自動転記 |
競合の主な原因は、製造オーダーのRefreshとReplanです。Microsoftは “If you use the Refresh action to recalculate production order lines, Business Central deletes the existing production order lines and calculates new lines.”(Refreshアクションで製造オーダー明細を再計算すると、Business Centralは既存の明細を削除して新しい明細を計算します)と説明しています。Replanでも必要能力が変わることがあり、構成品を再計算すると “deletes previous changes in the components.”(構成品に加えた以前の変更が削除されます)。
Refresh後のオーダーは新しいバージョンとして扱い、再同期してSkyPlannerでスケジュールを組み直してください。Autopilotを使えば、生産に変更があったときにSkyPlannerが自動で再スケジューリングします。
一般的なプロジェクトの手順
通常、導入支援の開始から数週間で実装が完了します。その前に、30日間の無料トライアルで自社データを使って検証できます。Business Centralの一覧ページにあるOpen in ExcelまたはEdit in Excelを使って、作業区、工順、未完了の製造オーダーをエクスポートしてください。CSVまたはExcel形式で取り込み、連携作業に着手する前にスケジュールを検証します。
プロジェクトでは、次の作業を行います。
- マスタデータのマッピング。マッピング表、データの管理主体に関するルール、同期頻度、生産実績の転記経路を確定します。
- Webサービスの設定。Web Servicesページで、製造オーダー、工順明細、構成品、作業区、マシンセンター、工順、BOM、カレンダーの各ページを公開し、Entraアプリを登録します。設定作業だけで対応でき、まずサンドボックスで行ってから本番環境に適用します。
- 初期取り込み。品目、単位、CertifiedのBOMと工順、作業区、マシンセンター、カレンダーを取り込みます。
- 製造オーダーと購買オーダーの同期。Releasedの製造オーダーと未完了の購買オーダーはポーリングで、販売オーダーはWebhookで同期します。トークンの処理、サブスクリプションの更新、429応答時の再試行もここで実装します。
- SkyPlannerでの制約設定。段取り時間マトリクス、工具、作業ごとの必要作業者数、代替設備や代替要員を設定します。いずれもBusiness Centralではスケジューリングに使えるデータとして保持されていない情報です。
- スケジュールの書き戻し。公開したProd. Order RoutingページにPATCHで書き込みます。生産実績の自動転記を選択した場合は、この段階で追加します。
- 並行テスト。現行の計画と並行してSkyPlannerを動かし、日時を比較してマスタデータを修正します。
- 本稼働。データの整合性を確認してから、書き戻しを有効にします。
Business Central連携の注意点
- 工順の単位。Setup Timeは製造オーダー単位、Run Timeは製品一個当たりの時間で、それぞれにUnit of Measure Codeがあります。Wait TimeとMove Timeは作業区の能力を消費しません。作業区の単位がDaysの場合、一日は八時間のシフトではなく24時間です。取り込み時に換算しないと、すべての所要時間が誤った値になります。
- カレンダーの更新漏れ。対象期間についてCalculate Work Center Calendarを実行して初めて、能力データが作成されます。初期取り込みの前にCalendar Entries Available Untilフィールドを確認してください。
- マシンセンターの能力が含まれない。Consolidated Calendarがオフの場合、計画に使われるのは作業区自体の能力だけです。”The machine center capacity is excluded.”(マシンセンターの能力は除外されます)。作業区の合計値に頼らず、マシンセンターの能力を直接読み取ってください。
- CapacityとEfficiency。Business CentralはRun Time / Efficiency / Capacityで所要時間を計算します。計算済みのカレンダーエントリには、すでに両方の値が反映されています。EfficiencyをSkyPlannerのリソース効率に対応付ける際は、二重に適用しないでください。
- Alternate Work Centerは参考情報。Microsoftによると、これは “isn’t automatically included in planning processes.”(計画処理に自動では含まれません)。代替先はSkyPlannerの代替リソースとして明示的に設定してください。
- スロットリング。オンライン環境の制限はユーザー単位で適用され、サービスプリンシパルもユーザー一人分として数えられます。5分間のスライディングウィンドウ内でODataリクエストは6,000件まで、同時リクエストは5件までです。ページサイズの上限は20,000件、
$batchの上限は100操作で、操作は8分でタイムアウトします。レート制限を超えると429が返されます。全件を再読み込みするのではなく、バッチ処理、ページング、差分ポーリングを使用してください。 - ライセンス。製造機能を使えるのはPremiumのエクスペリエンスのみです。Essentialsのユーザーは、Premiumに設定された会社にサインインできません。
Business Central連携の設定とサポートは誰が担当するか
作業には、お客様の工順、作業区、Business Centralの設定に合わせたマッピングに加え、Business Centralが保持していない制約の設定も含まれます。段取り時間マトリクス、工具、作業者数、代替リソースなどが対象です。
- SkyPlannerチームが導入支援の段階で設定し、本稼働後もサポートします。対象はSkyPlanner側と、合意した範囲のBusiness Central Webサービスです。Business Centralの運用方法は工場ごとに異なり、その違いを理解したノウハウをここで活かします。連携にはBusiness Central標準のAPI v2.0と公開Webサービスを使い、これらはBusiness Centralの更新に合わせて更新されます。
- お客様のBusiness Centralパートナーも参加できます。パートナーはお客様の設定や拡張機能を把握しているため、SkyPlannerチームとともに公開ページ、権限セット、Entraアプリを確認できます。SkyPlannerはREST API、Swagger/OpenAPIのドキュメント、Webhookを提供します。
- 社内の開発者による独自開発も可能です。仕様が公開されている同じREST APIを、JWT認証で利用できます。APIキーがあれば着手でき、必要に応じてSkyPlannerチームが支援します。購買オーダーや製品・資材APIを含む公開製品ドキュメントは、SkyPlannerドキュメントで確認できます。Laboratory & AlliedはSAP Business Oneとの連携でこの方法を採用し、SkyPlannerの支援を受けながら、社内ITチームが連携の大部分を自力で構築しました。NetSuiteを使うUTUも、ERPと並行してSkyPlannerを運用しています。
まずは30日間の無料トライアルでスケジュールを検証してください。工場の実態に合うスケジュールを確認してから、連携に着手できます。
接続が完了すると、ArcturusエンジンがBusiness Centralの最新のオーダーに基づいてスケジュールを作成し、計画日程が製造オーダーの工順に反映されます。SkyPlannerは5リソースを含めて月額199 €から利用でき、月ごとの請求です。連携費用は、お客様の業務プロセスと要件に合わせて、ご利用プランとともに事前にお見積もりします。開始前に費用の全体像を把握できます。料金と機能をご覧ください。Business Central標準の計画機能との比較は、Business Centralの生産スケジューリングで紹介しています。概要はBusiness Centralのページ、他のERPとの連携はERP連携の総合ページで確認できます。
製造業のお客様によるSkyPlannerの評価
2 h毎週の削減時間
「SkyPlannerによって、Excelの表で管理していた生産計画が、リアルタイムで生産を最適化する仕組みに変わりました。」
Kalle Kalliomäki、サプライチェーンスペシャリスト
UTU · 配電盤・開閉装置
生産計画にかかる作業時間を毎週2時間削減。新しい作業順序も数秒で製造ラインに届きます。
+90%生産効率の向上
「生産効率が90%向上しました。」
Abdul Rucyinga、IT部門責任者
Laboratory & Allied · 医薬品製造
生産効率が90%向上し、全リソースを対象に最適化した三か月分の計画を30分未満で作成できます。
98%納期遵守率が約50%から向上
「SkyPlannerは、当社の納期遵守率を維持するうえで決定的な役割を果たしています。」
Hannu Lahtinen、代表取締役
KJH-Comp · 板金加工・受託製造
納期遵守率は約50%から最高98%に向上しました。以前は二人の管理者が必要だったスケジューリングも、今では一人で対応できます。
1,000s製造指示を自動でスケジューリング
「生産をこれまでとは違う形で管理できるようになり、生産能力に対する理解もまったく別のレベルになりました。」
Hannu Ryynänen、CEO
Mamec · 産業用ミキサー・ポンプ、高度な技術を要する受託製造
数千件の製造指示を自動でスケジューリングし、組織全体で生産状況をリアルタイムに把握できます。
よくある質問
Business CentralのAPIで製造オーダーを扱えますか?
標準のAPI v2.0には、製造オーダー、工順、BOM、作業区のエンティティがありません。Business Centralでは、代わりにOData v4 Webサービスを通じてこれらを提供します。Web Servicesページで標準の生産関連ページをコードを書かずに公開し、OData経由で読み書きします。
Business Centralとの連携は誰が構築しますか?
導入時にSkyPlannerチームがお客様のBusiness Central環境に合わせて双方向連携を設定し、稼働開始後もサポートします。Business Central側ではAPI v2.0と、公開されたOData v4 Webサービスを使用します。お客様のBusiness Centralパートナーや社内の開発者が、ドキュメントを公開しているSkyPlannerのREST APIを使って構築することも可能です。APIキーがあれば着手できます。
Business Centralに拡張機能をインストールする必要はありますか?
いいえ。API v2.0は標準で備わっており、製造関連のページはWeb Servicesページで設定するだけでWebサービスとして公開できます。標準のAPIページを追加するのは、生産実績と消費実績の転記を完全に自動化する場合のみです。
連携にはどの認証方式を使用しますか?
Microsoft Entra IDによるOAuth 2.0のクライアント資格情報を使用します。Business CentralのMicrosoft Entra Applicationsページで登録します。Webサービスのアクセスキーは非推奨です。オンプレミス版でも、サーバーをMicrosoft Entra認証用に設定すれば、バージョン18.11および19.5以降で同じサービス間アクセスを利用できます。お使いのバージョンに適した接続方法を、要件定義の段階で確認します。
Business Centralから変更をリアルタイムにプッシュ通知できますか?
ほぼリアルタイムで通知できます。品目や販売オーダーなど、API v2.0のエンティティに対するWebhookサブスクリプションの通知は、Business Centralオンライン側でまとめられ、最初の変更から約30秒後に届きます。製造オーダーの変更は、数分おきのポーリングで取得します。逆方向では、SkyPlanner独自のWebhookがスケジュールの変更を発生時にプッシュ通知します。
工程の日程はどのようにBusiness Centralに書き戻されますか?
OData v4 Webサービスとして公開した標準のProd. Order Routingページに対して、PATCHで書き戻します。Starting Date-Time、Ending Date-Timeと、作業区またはマシンセンターを設定します。Business Centralは、計画担当者がページ上で編集した場合とまったく同じ独自のロジックで、これらの値を検証します。
連携を構築する前にSkyPlannerを試せますか?
はい。30日間の無料トライアルでは、Business CentralからCSVまたはExcelでデータを取り込み、最大20リソースでお試しいただけます。クレジットカードは不要です。無料トライアルを開始するか、連携の要件定義について営業にご相談ください。