サード パーティの製造実行システムと統合する

Microsoft Dynamics 365 Supply Chain Managementを使う一部の製造組織は、Dynamics 365のネイティブ機能を活用して機械、設備、人員の製造活動を制御しています。 ただし、他の製造組織、特に高度な製造要件を持つ組織では、サード パーティの製造実行システム (MES) が使用されます。 たとえば、組織が業種に特化したサード パーティの MES ソリューションを選択する場合があります。

統合ソリューションでは、データ交換が完全に自動化され、ほぼリアルタイムで行われます。 したがって、データは両方のシステムで最新の状態に維持され、手動でデータを入力する必要はありません。 たとえば、材料消費を MES に登録すると、統合によって Dynamics 365 にも同じ消費が登録されます。 したがって、最新の在庫レコードは、計画や販売など、他の重要なプロセスで使用できます。

サプライ チェーン管理 のユーザーは、このソリューションをより速く、簡単に、および安く、サード パーティの MES と統合することができます。 次の機能を提供します。

  • 主要な製造実行プロセスをサポートするビジネス イベントおよびインターフェイス
  • イベント処理履歴を追跡し、失敗したプロセスのトラブルシューティングと修正を行う集中型ダッシュボード

次の図は、統合ソリューションで交換されるビジネス イベント、プロセス、およびメッセージの一般的なコレクションを示しています。

典型的な統合シナリオです。

前提条件

サードパーティの製造実行システムと統合するには、サプライ チェーン管理で勤勤許可キーを有効にする必要があります。 有効かどうか確認し、必要に応じて有効化する手順に従ってください:

  1. システム管理 > 設定 > ライセンス コンフィギュレーション の順にクリックします。
  2. 時間/出席 ライセンス キーが有効になっている (チェック マークが表示されている) 必要があります。 このライセンス キーは、製造実行システムの機能とデータを制御するため必要です。 無効にした場合は、次の手順を実行します:
    1. メンテナンス モードの説明に従って、システムをメンテナンス モードにします。
    2. ライセンス コンフィギュレーション ページで 、時間と出勤 チェック ボックスを オンにします。
    3. メンテナンス モードの説明に従って、メンテナンス モードをオフにします

MES 統合で使用できるプロセス

次のプロセスのすべてまたは一部を統合に対して有効にできます。

プロセス名 Description
製造オーダーのリリースと製造オーダーのステータス変更に関するビジネス イベント このプロセスは、MES がリッスンして生産する必要がある製造オーダーに関する情報を得るビジネス イベントを提供します。 製造オーダーに関連する参照データは、Open Data Protocol (OData) エンティティまたはデータ エンティティを通じて サプライ チェーン管理 から MES に共有される予定です。
製造オーダーの開始 このプロセスにより、MES を使用して開始される製造オーダーに関する情報が サプライ チェーン管理 に提供されます。 これにより、両方のシステムですべての製造活動を最新ビューで確認できます。
生産済みまたは仕損済み数量のレポート このプロセスにより、MES を使用して製造ジョブでレポートされる完成品とエラー数量のレポートに関する情報が サプライ チェーン管理 に提供されます。 これにより、作業現場監督が生産計画の進捗状況を最新のビューで確認できます。
原材料消費のレポート このプロセスにより、消費される材料の数量に関する MES からの情報が サプライ チェーン管理 に提供されます。 計画や販売など、他の重要なプロセスで使用できる最新の在庫レコードを構成します。
工程にかかる時間のレポート このプロセスにより、特定の工程で使用された時間に関する情報が サプライ チェーン管理 に提供されます。
製造オーダーの終了 このプロセスは、MES によって製造オーダーが終了ステータスに更新された時点で サプライ チェーン管理 に通知されます。 このステータスは、製造オーダーでこれ以上数量が生産されない状態を示します。

受信メッセージの監視

システムへの着信 MES メッセージを監視するには、生産管理 > 設定 > 製造の実行 > 実行システム統合 に移動します。

特定の生産注文に関するすべてのメッセージは、受信された順序で処理されます。 しかし、バッチジョブが並列処理されるため、異なる生産注文のメッセージは受信された順序で処理されないことがあります。 エラーが発生した場合、状態を 失敗 に設定する前に、バッチ ジョブは各メッセージの処理を 3 回試みます。

製造実行システム統合 ページは メッセージ プロセッサーのメッセージ ページと同じように動作し、非常に共通した機能を表しています。 (他の種類のメッセージに加えてMESメッセージも表示されます。)メッセージのレビューや失敗メッセージの検出・修正などの方法については、「 メッセージプロセッサのメッセージを監視・制御する」をご覧ください。

API を呼び出す

MES 統合 API を呼び出す場合は、次のエンドポイント URL に POST 要求を送信します。

/api/services/SysMessageServices/SysMessageService/SendMessage

送信する要求の本文は、次の例のようになります。 必要に応じて、_companyId_messageType および _messageContent の値を置換します。 API がサポートする各種のメッセージ タイプ、およびそれらのコンテンツのデザイン方法については、次のセクションを参照してください。

{
    "_companyId": "USMF",
    "_messageQueue": "JmgMES3P",
    "_messageType": "ProdProductionOrderReportFinished",
    "_messageContent":
    "{\"ProductionOrderNumber\": \"P000123\", \"ReportFinishedLines\": [{\"ItemNumber\": \"A0001\", \"ReportedGoodQuantity\": 10, \"ReportAsFinishedDate\": \"2021-01-01\"}]}"
}

API メッセージ タイプとコンテンツ

ここでは、MES 統合 API を通じて交換できるメッセージの各タイプについて説明します。

製造オーダー メッセージの開始

製造オーダーの開始メッセージの場合、_messageType 値は ProdProductionOrderStart です。 次の表に、このメッセージがサポートするフィールドを示します。

フィールド名 地位 タイプ
ProductionOrderNumber Mandatory String
StartedQuantity Optional レアル
StartedDate Optional Date
AutomaticBOMConsumptionRule Optional 列挙 (FlushingPrincip | Always | Never)
AutomaticRouteConsumptionRule Optional 列挙 (RouteDependent | Always | Never)

[完了レポート] メッセージ

完了レポート メッセージの場合、_messageType 値は ProdProductionOrderReportFinished です。 次の表に、このメッセージがサポートするフィールドを示します。

フィールド名 地位 タイプ
ProductionOrderNumber Mandatory String
ReportFinishedLines Mandatory 行 (少なくとも 1 つ) の一覧。各行には、次の表で説明されているペイロード データが含まれています
PrintLabel オプション(サプライ チェーン管理 バージョン10.0.45以降が必要) 列挙 (はい | いいえ)

次の表に、ReportFinishedLines メッセージの ProdProductionOrderReportFinished セクションの各行がサポートするフィールドを示します。

フィールド名 地位 タイプ
LineNumber Optional レアル
ItemNumber Optional String
ProductionType Optional 列挙 (MainItem | Formula | BOM | Co_Product | By_Product | None)、拡張可能
ReportedErrorQuantity Optional レアル
ReportedGoodQuantity Optional レアル
ReportedErrorCatchWeightQuantity Optional レアル
ReportedGoodCatchWeightQuantity Optional レアル
AcceptError Optional 列挙 (はい | いいえ)
ErrorCause Optional 列挙 (None | Material | Machine | OperatingStaff)、拡張可能
ExecutedDateTime Optional DateTime
ReportAsFinishedDate Optional Date
AutomaticBOMConsumptionRule Optional 列挙 (FlushingPrincip | Always | Never)
AutomaticRouteConsumptionRule Optional 列挙 (RouteDependent | Always | Never)
RespectFlushingPrincipleDuringOverproduction Optional 列挙 (はい | いいえ)
JournalNameId Optional String
PickingListJournalNameId Optional String
RouteCardJournalNameId Optional String
FromOperationNumber Optional Integer
ToOperationNumber Optional Integer
InventoryLotId Optional String
BaseValue Optional String
EndJob Optional 列挙 (はい | いいえ)
EndPickingList Optional 列挙 (はい | いいえ)
EndRouteCard Optional 列挙 (はい | いいえ)
PostNow Optional 列挙 (はい | いいえ)
AutoUpdate Optional 列挙 (はい | いいえ)
ProductColorId Optional String
ProductConfigurationId Optional String
ProductSizeId Optional String
ProductStyleId Optional String
ProductVersionId Optional String
ItemBatchNumber Optional String
ProductSerialNumber Optional String
GenerateLicensePlate オプション(サプライ チェーン管理 バージョン10.0.45以降が必要) 列挙 (はい | いいえ)
LicensePlateNumber Optional String
InventoryStatusId Optional String
ProductionWarehouseId Optional String
ProductionSiteId Optional String
ProductionWarehouseLocationId Optional String
InventoryDimension1 から InventoryDimension12 に変更します Optional String

12 の拡張可能な分析コード (InventoryDimension1InventoryDimension12) は、カスタマイズが必要であり、常に使用されるとは限りません。 詳細については、拡張機能を通じた新しい在庫分析コードの追加を参照してください。

材料消費 (ピッキング リスト) メッセージ

材料消費 (ピッキング リスト) メッセージの場合、_messageType 値は ProdProductionOrderPickingList です。 次の表に、このメッセージがサポートするフィールドを示します。

フィールド名 地位 タイプ
ProductionOrderNumber Mandatory String
JournalNameId Optional String
PickingListLines Mandatory 行 (少なくとも 1 つ) の一覧。各行には、次の表で説明されているペイロード データが含まれています

次の表に、PickingListLines メッセージの ProdProductionOrderPickingList セクションの各行がサポートするフィールドを示します。

フィールド名 地位 タイプ
ItemNumber Mandatory String
ConsumptionBOMQuantity Optional レアル
ProposalBOMQuantity Optional レアル
ScrapBOMQuantity Optional レアル
BOMUnitSymbol Optional String
ConsumptionInventoryQuantity Optional レアル
ProposalInventoryQuantity Optional レアル
ConsumptionCatchWeightQuantity Optional レアル
ProposalCatchWeightQuantity Optional レアル
ConsumptionDate Optional Date
OperationNumber Optional Integer
LineNumber Optional レアル
PositionNumber Optional String
IsConsumptionEnded Optional 列挙 (はい | いいえ)
ErrorCause Optional 列挙 (None | Material | Machine | OperatingStaff)、拡張可能
InventoryLotId Optional String
ProductColorId Optional String
ProductConfigurationId Optional String
ProductSizeId Optional String
ProductStyleId Optional String
ProductVersionId Optional String
ItemBatchNumber Optional String
ProductSerialNumber Optional String
LicensePlateNumber Optional String
InventoryStatusId Optional String
ProductionWarehouseId Optional String
ProductionSiteId Optional String
ProductionWarehouseLocationId Optional String
InventoryDimension1 から InventoryDimension12 に変更します Optional String

工程に使用される時間 (ルート カード) メッセージ

工程に使用される時間 (ルート カード) メッセージの場合、_messageType の値は ProdProductionOrderRouteCard です。 次の表に、このメッセージがサポートするフィールドを示します。

フィールド名 地位 タイプ
ProductionOrderNumber Mandatory String
JournalNameId Optional String
RouteCardLines Mandatory 行 (少なくとも 1 つ) の一覧。各行には、次の表で説明されているペイロード データが含まれています

次の表に、RouteCardLines メッセージの ProdProductionOrderRouteCard セクションの各行がサポートするフィールドを示します。

フィールド名 地位 タイプ
OperationNumber Mandatory Integer
OperationPriority Optional 列挙 (Primary | Secondary1 | Secondary2 | ... | Secondary20)
OperationId Optional String
OperationsResourceId Optional String
Worker Optional String
HoursRouteCostCategoryId Optional String
QuantityRouteCostCategoryId Optional String
HourlyRate Optional レアル
Hours Optional レアル
GoodQuantity Optional レアル
ErrorQuantity Optional レアル
CatchWeightGoodQuantity Optional レアル
CatchWeightErrorQuantity Optional レアル
QuantityPrice Optional レアル
ProcessingPercentage Optional レアル
ConsumptionDate Optional Date
TaskType Optional 列挙 (QueueBefore | Setup | Process | Overlap | Transport | QueueAfter | Burden)
ErrorCause Optional 列挙 (None | Material | Machine | OperatingStaff)、拡張可能
OperationCompleted Optional 列挙 (はい | いいえ)
BOMConsumption Optional 列挙 (はい | いいえ)
ReportAsFinished Optional 列挙 (はい | いいえ)

製造オーダー メッセージの終了

製造オーダーの終了メッセージの場合、_messageType 値は ProdProductionOrderEnd です。 次の表に、このメッセージがサポートするフィールドを示します。

フィールド名 地位 タイプ
ProductionOrderNumber Mandatory String
ExecutedDateTime Optional DateTime
EndedDate Optional Date
UseTimeAndAttendanceCost Optional 列挙 (はい | いいえ)
AutoReportAsFinished Optional 列挙 (はい | いいえ)
AutoUpdate Optional 列挙 (はい | いいえ)

その他の製造情報

メッセージは、作業現場で発生するアクションやイベントをサポートします。 これらはこの記事で説明されているMES統合フレームワークを用いて処理されます。 この設計では、MES と共有する他の参照情報 (製品関連情報や、特定の製造オーダーで使用され、特定の設定および構成時間を含む部品表またはルートなど) は、ファイル転送または OData で データ エンティティ を使用してシステムから取得されます。

メッセージの状態に関するフィードバックの受信

MES から サプライ チェーン管理 にメッセージが送信された後に、そのメッセージの状態に関するフィードバックを サプライ チェーン管理 から返すのが有用な場合があります。 次の例では、このビヘイビアーが関連するケースの例を示します。

  • MES統合を常に監督する責任はありません。
  • MES 統合の監督を担当する担当者は、メッセージが失敗したときに、対処が必要であることがわかるよう、電子メールで通知を受け取りたいと思っています。
  • 現場のオペレーターまたは IT 部門の担当者がアクションを行う必要がある場合は、MES にエラー メッセージを表示する必要があります。
  • MES は、エラー メッセージ (製造オーダーの開始に失敗したなど) が表示された後に注文スケジュールを再計算する必要があります。

そのような場合は、サプライ チェーン管理 の標準警告機能を活用できます。 標準警告のしくみについては、次のリソースを参照してください。

たとえば、メッセージの状態に関するフィードバックを提供するために、次の警告を設定できます。

  • メッセージが失敗した場合に使用されるビジネス イベント (「外部送信」) を作成します。
  • IT 管理者または生産現場マネージャに通知と電子メールを送信します。

処理済みとキャンセル済みのメッセージ プロセッサ メッセージをクリーンアップする

時間の経過とともに、サードパーティのMESシステムに関連する処理・キャンセルされたメッセージがシステム内に蓄積され、パフォーマンスやデータ管理に影響を与える可能性があります。 したがって、システムの効率を維持するために定期的にこれらのメッセージを整理する必要があります。 詳細は 「処理済みおよびキャンセルされたメッセージプロセッサーメッセージの整理」をご覧ください。