あらゆるERPと連携

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

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

連携プロジェクトを相談

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

連携 / ERP / Microsoft Dynamics 365 Supply Chain Management

Dynamics 365 Supply Chain Management連携ガイド SkyPlanner APSで生産スケジューリング

このDynamics 365 Supply Chain Management連携ガイドでは、パートナーとITチームに向けて、Microsoft Dynamics 365 Supply Chain ManagementとSkyPlanner APSを接続する方法を説明します。SkyPlannerは、Dynamics 365 Supply Chain Managementの標準データエンティティを使って双方向に連携します。

  • 製造オーダー、ルート工程、ルート作業、BOM明細、リソース、カレンダー、リリース済製品、手持在庫、発注書明細を取り込みます。
  • スケジューリングした開始・終了日時と選択したリソースを、製造オーダーとそのルート工程に書き戻します。
  • 作業者の作業時間と数量は、ルートカード仕訳帳を通じて書き戻します。
  • SkyPlannerのWebhookが、スケジュールの変更を発生時に通知します。
各リソースに作業を割り付けたSkyPlanner APSのガントチャートと、その下に表示された指図一覧。

SkyPlannerチームは、導入時にお客様のSupply Chain Management環境に合わせて連携を設定し、本稼働後もサポートします。このガイドは、連携に参加するパートナーや開発者、または公開ドキュメントのあるSkyPlannerのREST API(APIリファレンス)を使い、自ら連携を構築したい方を対象としています。

Dynamics 365 SCMの連携方式

Supply Chain Managementは、データエンティティを通じてデータを公開します。スケジューリングに関わる連携方式は、次の四つです。

  1. OData v4 RESTエンドポイント。[Your organization's root URL]/dataは、IsPublicに設定されたすべてのデータエンティティを公開し、作成・読み取り・更新・削除の全操作に対応します。$filter、$count、$orderby、$skip、$top、$selectと、第一階層の$expandをサポートします。ページングはサーバー主導で、最大10,000レコードです。バッチリクエストでは、書き込みを変更セットにまとめられます。ODataは同期方式です。(出典)
  2. バッチデータAPI。Data management package REST APIと定期統合は、大量のデータを非同期で転送します。Microsoftは次のように説明しています。”If the volume is more than a few hundred thousand records, use the batch data API.”(レコード数が数十万件を超える場合は、バッチデータAPIを使用してください。)オンプレミス環境でも、このAPIがサポートされています。(出典)
  3. ビジネスイベント。Finance and operationsアプリは、Azure Service Bus、Event Grid、HTTPSエンドポイント、またはPower Automateにビジネスイベントを発行します。(出典)
  4. カスタムサービスとODataアクション。X++のカスタムサービスとバインドされたODataアクションは、要求に応じてビジネスロジックを実行します。

SkyPlannerとの連携では、日常のデータ転送にODataエンドポイントを使い、大量の初期データの取り込みにはバッチデータAPIを使います。Supply Chain Management側にインストールするものはありません。

認証

Microsoft Entra IDにアプリケーションを登録します(サービスプリンシパル)。Supply Chain Managementで、そのアプリケーションを、連携に必要なセキュリティロールを持つユーザーに対応付けます。この連携は、生産・リソース・在庫データを読み取り、製造オーダーのスケジューリング情報と仕訳帳を書き込みます。クライアント資格情報を使って、Entra IDにトークンを要求します。

連携で参照できるデータは、次の二つのルールで決まります。

  • 法人。リクエストに?cross-company=trueを追加しない限り、ODataは既定の会社のデータを返します。複数拠点を持つ工場では、dataAreaIdで絞り込みます。
  • 公開名。以下に示すエンティティ名は、データ管理で使われる名前です。公開ODataコレクション名とは異なる場合があるため、お使いの環境の/data/$metadataで確認してください。

SkyPlanner側のREST APIは、APIトークン(SkyPlanner Settings > API)で認証します。ドキュメントはSwagger/OpenAPIで公開されています。最初のAPI呼び出しの手順は、連携チュートリアルで解説しています。

データのマッピング

D365 SCMのエンティティSkyPlannerのオブジェクト方向頻度
リリース済製品(ItemNumber)製品と材料SCM → SkyPlanner初回は全件、以降は差分
生産BOM明細(ProdProductionOrderBillOfMaterialsLineEntity)、BOM明細製品構成、オーダーごとの材料SCM → SkyPlannerオーダー同期のたび
ルート、ルートバージョン、ルート工程、工程プロパティ(RouteOperationPropertiesV2Entity)段取時間と実行時間を含む工程SCM → SkyPlanner初回取り込み後は変更時
リソース(OpResOperationsResourceEntity)、リソースグループ、能力リソース、リソースグループ、効率SCM → SkyPlanner初回取り込み後はまれに更新
稼働時間カレンダー、カレンダーの日付と時間帯、カレンダーの割り当てシフトSCM → SkyPlanner毎日、またはSkyPlannerでシフトを管理
製造オーダーヘッダー(ProdProductionOrderHeaderEntity)納期とステータスを含むオーダーSCM → SkyPlanner数分ごと、またはビジネスイベント発生時
ルート工程(ProdProductionOrderRouteOperationEntity)、ルート作業(ProdProductionOrderRouteJobEntity)所要時間とリソース要件を含む作業SCM → SkyPlannerオーダー同期のたび
手持在庫在庫残高SCM → SkyPlanner毎時、またはスケジューリング実行時
納入日を含む発注書明細入荷予定の材料。発注書がDeliveredになると在庫を更新SCM → SkyPlanner毎時、またはスケジューリング実行時
各ルート工程の予定開始・終了日時と工程リソース工程ごとの計画開始・終了日時とリソースSkyPlanner → SCMスケジュール変更時にSkyPlannerのWebhook経由で更新
ルートカード仕訳帳(ProdRouteCardProductionJournalEntryEntity: RegisteredHours, ReportedGoodInventoryQuantity)作業時間の記録と数量SkyPlanner → SCM利用する場合は、実績報告ごと、またはシフトごと
SkyPlannerの制約設定段取時間マトリクス、利用可能数に上限を設けて管理する工具、作業者数、代替リソースSkyPlannerで管理導入時に設定

連携パターン

1. マスタデータの初回取り込み。リソース、リソースグループ、カレンダー、リリース済製品、ルート、BOMを取り込みます。レコード数が数十万件に及ぶ場合はバッチデータAPIを、それ以外はODataのページングを使います。SCMの各リソースをSkyPlannerのリソースに対応付けてください。リソースグループだけを対応付けてはいけません。工程スケジューリングで予約されるのはグループですが、現場で稼働するのは個々のリソースです。

2. オーダーの同期。SkyPlannerが管理するステータス(通常はScheduledとReleased)にある確定済み製造オーダーを、ルート工程、ルート作業、BOM明細とともに読み取ります。未完了の発注書明細も読み取ります。SkyPlannerは、発注済み材料を発注書の納入日に使用可能として扱い、発注書がDeliveredになると在庫を更新します。

計画製造オーダーは、明示的に対象範囲に含めていない限り、除外してください。Planning Optimizationが実行のたびに再生成するためです。

3. スケジュールの書き戻し。エンジンが配置または移動したすべての工程について、SkyPlannerは予定開始・終了日時と工程リソースをルート工程に書き戻します。フィールド名は、お使いの環境の/data/$metadataにあるものを使います。変更はODataのバッチ変更セットにまとめるため、一回のスケジューリング結果が、整合性のある一回の更新として反映されます。

4. 現場の実績報告。作業者はSkyPlanner Mobile ConfirmationsまたはProduction Timerで作業を記録し、その作業時間の記録によってスケジュールが最新に保たれます。作業時間と良品数量は、ルートカード仕訳帳の明細として書き戻すことができます。Report as finishedは、現在使っているSCMまたはProduction floor executionで引き続き行います。

転記の種類ごとに、経路を一つに決めてください。SkyPlannerとProduction floor executionの両方から同じ作業時間を登録すると、重複します。

5. 管理責任と競合時のルール。本稼働前に、次のように明文化してください。

データ管理するシステム
製品、BOM、ルート、数量、オーダーステータス、原価計算Supply Chain Management
計画製造オーダーPlanning Optimization
工程の順序、予定開始・終了日時、リソースの割り当てSkyPlanner
段取時間マトリクス、工具、作業者数、代替リソースSkyPlanner
シフトと欠勤要件定義で決めた一つのシステム
作業時間と生産数量の転記Supply Chain Management。選択した場合はSkyPlannerの作業時間記録を使用

競合の主な原因は、SCM自体の作業スケジューリングです。計画担当者がSCMでオーダーを再スケジューリングすると、SkyPlannerの日付が上書きされます。SkyPlannerが管理するオーダーには、製造オーダーヘッダーのIsProductionOrderSchedulingLockedを使ってください。SCMで変更されたオーダーは新しいバージョンとして扱い、再同期します。生産に変更があれば、Autopilotが自動的に再スケジューリングします。

導入プロジェクトの内容

導入は通常、オンボーディング開始後、数週間で完了します。その前に、30日間の無料トライアルで自社データを使って検証できます。データ管理のエクスポートプロジェクトまたはExcelアドインでリソース、工順、未完了の製造オーダーをエクスポートし、CSVまたはExcel形式でインポートしてスケジュールを検証します。

  1. 要件定義。マッピング表、SkyPlannerが管理するステータス、同期頻度、転記経路を確定します。
  2. アクセス設定。Entra IDアプリケーションを登録し、必要最小限の権限を持つロールを割り当てたSCMユーザーに紐付けます。/data/$metadataで公開エンティティ名を確認します。まずサンドボックスで設定し、その後、本番環境に適用します。
  3. 初期データの取り込み。リソース、カレンダー、リリース済製品、工順、BOMを取り込みます。
  4. オーダーと発注書の同期。$filterで変更済みレコードを絞り込んでポーリングします。カタログに該当するビジネスイベントがある場合は、それも併用します。
  5. SkyPlannerでの制約条件の設定。段取り時間マトリクス、工具、作業者数、代替の機械や人員を設定します。
  6. スケジュールの書き戻し。工順の工程をバッチで更新し、SkyPlannerが管理するオーダーのスケジューリングをロックします。
  7. 並行テスト。現行計画と並行してSkyPlannerを稼働させ、日程を比較し、マスタデータを修正します。
  8. 本番稼働。データの整合性を確認してから、書き戻しを有効にします。

Dynamics 365 SCM連携で考慮すべき点

  • 効率の二重適用。SCMでは「Scheduling time = Time x 100 / Efficiency percentage.」(時間を効率の百分率で補正してスケジューリング時間を求める式)で計算します。効率はSkyPlannerのリソース効率に一度だけ反映し、補正済みの時間に重ねて適用しないでください。
  • リソースグループに割り当てられたカレンダー。リソースグループとリソースそれぞれのカレンダー割り当てを読み取ってください。読み取らないと、能力にずれが生じます。
  • 工程スケジューリングとジョブスケジューリングの違い。工程スケジューリングで計画したオーダーには、開始・終了時刻も、特定のリソースの割り当てもありません。日付だけでなく、工順の工程とリソース要件も同期してください。
  • 有限能力のフラグ。Finite capacityがNoに設定されたリソースは、SCMで能力を超えて割り当てられる可能性があります。SkyPlannerでは、実際の制約をすべて反映し、それぞれの能力に上限を設定してください。
  • 工程あたり32リソースの上限。SCMのジョブスケジューリングでは、工程ごとのリソース数が32に制限されます。SkyPlannerでは、リソースグループと代替リソースで代替候補を管理します。
  • ページングとデータ量。ODataはページあたり10,000レコードで、展開できるのは一階層までです。大量の初期データの取り込みには、バッチデータAPIを使用します。
  • 法人。複数の会社にまたがる工場では、cross-company=trueとdataAreaIdのフィルターを指定しないと、既定の会社だけが同期されます。

連携の設定を担当するのは誰か

作業には、お客様の工順、リソース、SCM設定に合わせたマッピングと、SkyPlannerでの制約条件の設定が含まれます。制約条件として、段取り時間マトリクス、工具、作業者数、代替リソースを設定します。

  1. SkyPlannerチームがオンボーディング中に設定し、本番稼働後もサポートします。対象はSkyPlanner側と、合意したSCMのデータエンティティです。D365 SCMの運用方法は工場ごとに異なり、そのノウハウをここで活かします。
  2. お客様のDynamicsパートナーも参加できます。パートナーはお客様の設定、拡張機能、セキュリティロールを把握しており、Entra IDアプリケーションとエンティティへのアクセスを設定できます。SkyPlannerはREST API、Swagger/OpenAPIドキュメント、Webhookを提供します。
  3. 自社の開発者による連携開発も可能です。同じドキュメントに記載されたREST APIを、APIトークンで利用できます。APIトークンがあれば着手でき、必要に応じてSkyPlannerチームが支援します。

接続後は、ArcturusエンジンがSCMの最新の製造オーダーをもとにスケジュールを作成し、計画日程を工順の工程に反映します。SkyPlannerは5リソース込みで月額199 €から、月払いで利用できます。連携費用は、お客様の工程と要件に合わせ、ご利用プランとともに事前に見積もるため、開始前に総費用を把握できます。

SCM標準の計画機能との比較は、Dynamics 365 SCMの生産スケジューリングをご覧ください。概要はDynamics 365 SCMのページに、他のERPとの連携は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の評価を読む

100%2021年以降の納期遵守率

「SkyPlannerで能力が見えるようになり、見通しを持って計画を立てられるようになりました。」

Dan Berglund、COO/CFO
Opes Corporation · 化学品・食品製造

SkyPlannerを導入した2021年から現在まで、納期遵守率100%を維持しています。

Opes Corporationの評価を読む

ロホヤにあるMamecの生産工場に立つ、同社CEOのHannu Ryynänen氏

数1,000件製造オーダーを自動スケジューリング

「生産管理のあり方が変わり、生産能力への理解もまったく違う水準に達しました。」

Hannu Ryynänen、最高経営責任者
Mamec · 産業用ミキサー、ポンプ、ハイテク製品の受託製造

数千件の製造オーダーを自動でスケジューリングし、組織全体で生産状況をリアルタイムに把握できます。

Mamecの評価を読む

よくある質問

連携にはD365 SCMのどのAPIを使いますか?

/dataのOData v4 RESTエンドポイントを使用します。すべての公開データエンティティに対して、作成、読み取り、更新、削除の全操作が可能です。大量の初期データの取り込みにはバッチデータAPIを使用します。カタログに該当するビジネスイベントがある場合は、ほぼリアルタイムのトリガーも利用できます。

Supply Chain Managementに何かインストールする必要はありますか?

いいえ。連携にはOData経由で標準データエンティティを使用します。管理者がMicrosoft Entra IDアプリケーションを登録し、必要なロールを持つSCMユーザーに紐付けます。

計画日程はどのようにSupply Chain Managementに書き戻されますか?

SkyPlannerはODataのバッチ変更セットを使い、製造オーダーの工順の工程に、計画開始・終了日時と工程のリソースを書き込みます。SkyPlannerが管理するオーダーはIsProductionOrderSchedulingLockedで保護します。

SCMのジョブスケジューリングを調整するのではなく、SkyPlannerと連携する理由は何ですか?

Planning Optimizationが有限能力を考慮するのは有限能力タイムフェンス内だけで、それより先は能力を無限として計画します(出典)。SCMのジョブスケジューリングは、予約済みの能力を避けながら製造オーダーを一件ずつ割り当て、段取りを工程の所要時間として扱います(出典)。また、Microsoftは、シフトによって能力が変わる場合に、有限能力でのマスタープランを推奨していません(出典)。SkyPlannerは段取り時間マトリクスを使って確定済みオーダーをすべてまとめてスケジューリングし、重要な変更があるたびにAutopilotが自動で再計画します。SkyPlannerチームが双方向連携を設定・サポートし、お客様のDynamicsパートナーがSCM側を担当することもできます。

計画製造オーダーもSkyPlannerでスケジューリングすべきですか?

通常は対象にしません。Planning Optimizationは実行のたびに計画製造オーダーを再生成します。SkyPlannerは、要件定義で合意したステータスの確定済み製造オーダーをスケジューリングします。

オンプレミスのSupply Chain Managementとも連携できますか?

オンプレミス環境では、Microsoftがその環境でサポートしているバッチデータAPIで連携します。SkyPlanner側はどちらの場合も同じREST APIを使用し、連携経路は要件定義で確認します。

連携を構築する前にSkyPlannerを試せますか?

はい。30日間の無料トライアルでは、Supply Chain ManagementからCSVまたはExcel形式でデータをインポートし、最大20リソースまで利用できます。クレジットカードは不要です。トライアルを開始するか、連携の要件定義について営業にご相談ください。