Microsoft Dynamics 365 Supply Chain Managementを使う一部の製造組織は、Dynamics 365のネイティブ機能を活用して機械、設備、人員の製造活動を制御しています。 ただし、他の製造組織、特に高度な製造要件を持つ組織では、サード パーティの製造実行システム (MES) が使用されます。 たとえば、組織が業種に特化したサード パーティの MES ソリューションを選択する場合があります。
統合ソリューションでは、データ交換が完全に自動化され、ほぼリアルタイムで行われます。 したがって、データは両方のシステムで最新の状態に維持され、手動でデータを入力する必要はありません。 たとえば、材料消費を MES に登録すると、統合によって Dynamics 365 にも同じ消費が登録されます。 したがって、最新の在庫レコードは、計画や販売など、他の重要なプロセスで使用できます。
サプライ チェーン管理 のユーザーは、このソリューションをより速く、簡単に、および安く、サード パーティの MES と統合することができます。 次の機能を提供します。
- 主要な製造実行プロセスをサポートするビジネス イベントおよびインターフェイス
- イベント処理履歴を追跡し、失敗したプロセスのトラブルシューティングと修正を行う集中型ダッシュボード
次の図は、統合ソリューションで交換されるビジネス イベント、プロセス、およびメッセージの一般的なコレクションを示しています。
前提条件
サードパーティの製造実行システムと統合するには、サプライ チェーン管理で勤勤許可キーを有効にする必要があります。 有効かどうか確認し、必要に応じて有効化する手順に従ってください:
- システム管理 > 設定 > ライセンス コンフィギュレーション の順にクリックします。
-
時間/出席 ライセンス キーが有効になっている (チェック マークが表示されている) 必要があります。 このライセンス キーは、製造実行システムの機能とデータを制御するため必要です。 無効にした場合は、次の手順を実行します:
- メンテナンス モードの説明に従って、システムをメンテナンス モードにします。
- ライセンス コンフィギュレーション ページで 、時間と出勤 チェック ボックスを オンにします。
- メンテナンス モードの説明に従って、メンテナンス モードをオフにします
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 の拡張可能な分析コード (InventoryDimension1~InventoryDimension12) は、カスタマイズが必要であり、常に使用されるとは限りません。 詳細については、拡張機能を通じた新しい在庫分析コードの追加を参照してください。
材料消費 (ピッキング リスト) メッセージ
材料消費 (ピッキング リスト) メッセージの場合、_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システムに関連する処理・キャンセルされたメッセージがシステム内に蓄積され、パフォーマンスやデータ管理に影響を与える可能性があります。 したがって、システムの効率を維持するために定期的にこれらのメッセージを整理する必要があります。 詳細は 「処理済みおよびキャンセルされたメッセージプロセッサーメッセージの整理」をご覧ください。