生産計画データテンプレート
生産計画データテンプレート
- 収集を推奨する項目
- 追跡すべき主要アクティビティ
- Microsoft Dynamics 365 Manufacturing向け抽出ガイダンス
生産計画属性
| 名前 | 説明 | ||
|---|---|---|---|
| 生産オーダー ProductionOrderNumber | 生産オーダーの一意の識別子であり、すべての関連する計画および実行アクティビティを追跡するための主要なケースIDとして機能します。 | ||
| 説明 Microsoft Dynamics 365ではProdIdと呼ばれることが多い生産オーダー番号は、特定の製造ジョブに関連するすべてのイベント、材料、リソース、コストをリンクする中心的な識別子です。これにより、単一の作業単位における生産計画から実行までのライフサイクル全体のエンドツーエンド分析が可能になります。 プロセスマイニングにおいて、この属性は関連するイベントを単一のケースにグループ化するために不可欠です。生産オーダー番号別にプロセスを分析することは、初期作成とスケジューリングから完了および原価計算に至るまで、標準生産フローにおけるボトルネック、遅延、逸脱を特定するのに役立ちます。 その重要性 これは基本的なケース識別子であり、すべての関連イベントをグループ化し、分析のためにエンドツーエンドの生産計画プロセスを再構築するために不可欠です。 取得元 これはMicrosoft Dynamics 365 Manufacturingの「ProdTable」テーブルにある「ProdId」フィールドです。 例 WO-000456WO-000457WO-000458 | |||
| アクティビティ名 ActivityName | 生産計画プロセス内で発生した特定のビジネスイベントまたはステップの名前。 | ||
| 説明 アクティビティ名とは、「生産オーダー作成済み」、「生産用材料ピッキング済み」、「生産開始済み」など、生産計画ライフサイクルにおける個々のステップを指します。これらのアクティビティは、プロセスマップの構成要素となります。 これらのアクティビティの順序と期間を分析することで、プロセスフローの可視化、一般的なパスの特定、再作業ループの検出、および各ステージで費やされた時間の測定が可能になります。この属性は、プロセスの各ポイントで何が起こっているかを理解するために不可欠です。 その重要性 この属性は、プロセスのステップを定義し、プロセスマップの構築、プロセスフロー、バリエーション、およびボトルネックの分析を可能にします。 取得元 この値は通常、イベントログから、または「ProdRouteTrans」、「ProdJournalBOM」のようなテーブルの異なる状況変更やトランザクションタイプ、そして「ProdTable」の状況フィールドへの変更をマッピングすることによって派生します。 例 生産オーダー作成済み生産オーダーリリース済み生産開始済み生産完了報告済み | |||
| イベント日時 EventTime | `アクティビティ`がいつ発生したかを示す正確な`タイムスタンプ`です。 | ||
| 説明 イベントタイム、つまりタイムスタンプは、特定のアクティビティが発生した正確な日時を記録します。このデータは、サイクルタイムの計算、ステップ間の遅延の特定、経時的なプロセスパフォーマンスの理解など、すべての時間ベースのプロセスマイニング分析の基礎となります。 生産計画のコンテキストでは、この属性は計画リードタイム、生産開始遅延、および全体的なオーダー履行時間などの期間を測定するために使用されます。正確で時系列順のタイムスタンプは、正しく意味のあるプロセスモデルを構築するために不可欠です。 その重要性 このタイムスタンプは、イベントの順序付け、アクティビティ間の期間計算、およびサイクルタイムやボトルネック特定のような時間ベースの分析を実行するために不可欠です。 取得元 「ProdTable」の「createdDateTime」などの様々なトランザクションテーブル、または「ProdRouteTrans」、「ProdJournalRoute」、「ProdJournalBOM」のトランザクション日付フィールドにあります。 例 2023-04-15T09:00:12Z2023-04-15T11:30:00Z2023-04-16T14:22:05Z | |||
| ソースシステム SourceSystem | `データ`が抽出された記録システム。 | ||
| 説明 この属性は、イベントデータの発生元となる情報システムを識別します。このプロセスビューでは、その値は常に「Microsoft Dynamics 365 Manufacturing」となります。 複数の統合システムがある環境では、このフィールドはデータリネージ、データ品質の問題のトラブルシューティング、および異なるシステムが全体的なプロセスにどのように貢献しているかを理解するために不可欠です。分析されているデータの出所を明確に保証します。 その重要性 データガバナンス、検証、および複数のエンタープライズシステムからのデータパイプラインの管理にとって不可欠な、データの起源に関する重要なコンテキストを提供します。 取得元 これは、データ抽出および変換プロセス中にデータセットの出所をラベル付けするために追加されるべき静的な値です。 例 Microsoft Dynamics 365 ManufacturingD365 F&O | |||
| 最終データ更新 LastDataUpdate | この`イベント`の`データ`が`ソースシステム`から`最終的`に`更新`または`抽出`された`時刻`を示す`タイムスタンプ`です。 | ||
| 説明 この属性は、ソースシステムからの最新のデータ抽出の日時を提供します。これは、分析の鮮度と通貨を理解するために不可欠なメタデータフィールドです。 データが最後に更新された時期を知ることで、アナリストやビジネスユーザーはプロセスマイニングツールから得られる洞察を信頼できます。これは、ダッシュボードがリアルタイム情報なのか、それとも過去の時点からのデータなのかを明確にし、運用上の意思決定にとって重要です。 その重要性 この属性はデータガバナンスにとって不可欠であり、ユーザーがデータの鮮度を理解し、プロセス洞察の適時性を信頼できることを保証します。 取得元 このタイムスタンプは、データ抽出、変換、ロード(ETL)プロセス中に生成され、各レコードに付与されます。 例 2023-05-20T05:00:00Z2023-05-21T05:00:00Z | |||
| ユーザー UserId | 活動を実行した、または責任を持つユーザーの識別子です。 | ||
| 説明 ユーザーIDは、オーダーのリリースや完了報告など、特定のプロセスステップを実行した従業員またはシステムアカウントを識別します。この情報は、プロセス内で誰が作業を実行しているかの可視性を提供します。 ユーザー別にプロセスを分析することは、ワークロード配分を理解し、トレーニング機会を特定し、個人やチーム間のパフォーマンスを比較し、特定のユーザーによって実行された逸脱を調査するのに役立ちます。また、コンプライアンスおよび監査証跡の目的にも重要です。 その重要性 ユーザーまたはチームごとのプロセスパフォーマンスの分析を可能にし、自動化の機会を特定するのに役立ち、主要なプロセスアクティビティの監査証跡を提供します。 取得元 さまざまなテーブルの「modifiedBy」や「createdBy」などのフィールド、または「ProdJournalTable」のようなトランザクションログテーブルのユーザーフィールドにあります。 例 j.smithm.jonesAX_BATCH_SVC | |||
| 実績数量 ActualQuantity | オーダーに対して成功裏に生産され、完了報告された商品の数量。 | ||
| 説明 実際数量とは、特定の生産オーダーに対して完了し、品質チェックに合格したユニット数を指します。この値は、生産が「完了報告済み」とされたときに記録されます。 この属性は、生産歩留まりと効率を分析するために使用されます。実際数量と計画数量を比較することで、スクラップ率の計算や生産損失の理解に役立ちます。また、スループット分析や能力利用率ダッシュボードの主要な構成要素でもあります。 その重要性 生産歩留まり、不良率、および実際のスループットを計算するために不可欠であり、製造効率とパフォーマンスに関する洞察を提供します。 取得元 この値は、オーダーが完了報告されたとき、「ProdTable」の「QtyGood」フィールドまたは関連する仕訳転記テーブルから取得されることがよくあります。 例 100985000 | |||
| 生産オーダー状況 ProductionOrderStatus | 製造オーダーの現在のライフサイクルステータスを示します。 | ||
| 説明 生産オーダー状況は、製造ライフサイクル全体におけるオーダーの進捗を反映します。Dynamics 365における一般的な状況には、作成済み、見積済み、スケジュール済み、リリース済み、開始済み、完了報告済み、完了などがあります。この属性は、各オーダーが特定の時点でどのような状態にあるかのスナップショットを提供します。 プロセスマイニングにおいて、状況変更の分析は、アクティビティを定義し、プロセスフローを理解する主要な方法です。これは、特定の状態にあるオーダーをフィルタリングしたり、各状況で費やされた時間を分析したり、停滞または遅延しているオーダーを特定したりするために使用できます。 その重要性 この属性は、オーダーの進捗の高レベルな概要を提供し、フィルタリング、コンフォーマンスチェック、および異なる生産フェーズで費やされた時間の分析にとって不可欠です。 取得元 これは「ProdTable」テーブルの「ProdStatus」フィールドです。 例 スケジュール済みリリース済み開始済み終了済み | |||
| 生産タイプ ProductionType | 生産オーダーの分類(標準、再作業、プロジェクトベースなど)。 | ||
| 説明 生産タイプは、オーダーを用途に基づいて分類します。例えば、「標準」オーダーは通常の在庫生産用であり、「再作業」オーダーは以前に生産されたアイテムの欠陥を修正するため、「プロジェクト」オーダーは特定の顧客プロジェクトに紐付けられます。 この属性は、比較可能な分析ビューを作成する上で重要です。再作業オーダーのプロセスは標準的なものとは本質的に異なるため、生産タイプ別にプロセス分析をセグメント化することで、比較が有意義になり、各タイプの固有の課題やフローを理解するのに役立ちます。 その重要性 この属性により分析のセグメント化が可能になります。これは、「標準」や「再作業」のような異なるオーダータイプは、当然ながら異なるプロセスに従い、異なるパフォーマンス期待値を持つためです。 取得元 これは「ProdTable」テーブルの「ProdType」フィールドです。 例 標準手戻りプロジェクト | |||
| 生産優先度 ProductionPriority | 製造オーダーの緊急度または優先度を示す評価です。 | ||
| 説明 生産優先度とは、プランナーやスケジューラーが製造現場における作業の順序を管理するために使用するフィールドです。優先度の高いオーダーは緊急対応されることがあり、他のオーダーの計画スケジュールを乱す可能性があります。 この属性を分析することで、優先度の高いオーダーや緊急対応されたオーダーによって生産計画がどのくらいの頻度で中断されるかを理解できます。オーダーのライフサイクルにおける優先度の変更を追跡することは、需要や計画の不安定性を浮き彫りにします。これは、「緊急生産トレンド」ダッシュボードや「緊急生産率」KPIにとって重要な要素となります。 その重要性 これは緊急オーダーの頻度と影響を特定するのに役立ち、計画の不安定性や反応的な運用管理を示唆する可能性があります。 取得元 これは「ProdTable」上の標準またはカスタムフィールドである可能性があります。設定はしばしば会社固有です。 例 通常高`緊急` | |||
| 生産工場 ProductionPlant | 生産オーダーが実行されている製造サイトまたは工場。 | ||
| 説明 生産工場とは、製造プロセスを担当する物理的な場所または施設を指します。これは、生産パフォーマンスをセグメント化し、比較するための主要な組織的次元です。 プロセスマイニングにおいて、この属性は異なる工場間のパフォーマンスのベンチマークを可能にします。アナリストは、サイト間のサイクルタイム、リソース利用率、および標準プロセスへの順守を比較することで、ベストプラクティスを特定したり、運用改善が必要な施設を見つけ出したりできます。これは、能力利用率分析にとって不可欠です。 その重要性 これにより、異なる製造サイト間でのパフォーマンス比較とベンチマーキングが可能になり、ベストプラクティスや地域固有の問題の特定に役立ちます。 取得元 これは「ProdTable」テーブルの「InventSiteId」フィールドです。 例 SITE-ASITE-BMain-WH | |||
| 製品番号 ProductNumber | 製造中のアイテムの一意の識別子。 | ||
| 説明 製品番号、またはアイテムIDは、生産オーダーが作成しようとする完成品を特定します。これは、生産プロセスを、関連する部品表や工程指示とともに、特定の製造製品にリンクさせます。 製品番号別にプロセスを分析することは、製造ライフサイクルにおける製品固有のバリエーションを明らかにするのに役立ちます。特定の製品がより長いサイクルタイムを持ち、より多くの再作業を必要とし、またはより頻繁な遅延を経験することを明らかにすることができ、製品およびプロセスエンジニアに貴重な情報を提供します。 その重要性 製造される製品に基づいてプロセスバリエーションを分析することを可能にし、製品固有のボトルネックや品質問題を特定するのに役立ちます。 取得元 これは「ProdTable」テーブルの「ItemId」フィールドです。 例 FG-1001FG-2050ASSY-500B | |||
| 計画終了日 PlannedEndDate | 生産オーダーが完了する予定の日時。 | ||
| 説明 計画終了日は、スケジューリングエンジンによって決定される生産オーダーの目標完了時刻です。これは、稼働時間、リソースカレンダー、リードタイムを考慮し、完成品がいつ準備できるかを予測するために使用されます。 プロセス分析において、この属性は定時完了パフォーマンスを評価するために不可欠です。計画終了日と実際の完了タイムスタンプ(「生産完了報告済み」または「生産オーダー完了」アクティビティからのデータ)を比較することで、定時生産完了率KPIの計算が可能になり、納期遅延の体系的な理由を特定するのに役立ちます。 その重要性 この属性は、定時完了率を測定し、生産スケジューリングの正確性を分析するためのベンチマークとなります。 取得元 これは「ProdTable」テーブルの「SchedEnd」フィールドです。 例 2023-04-25T17:00:00Z2023-04-26T17:00:00Z2023-04-27T17:00:00Z | |||
| 計画開始日 PlannedStartDate | 生産オーダーが開始する予定の日時。 | ||
| 説明 計画開始日は、スケジューリングプロセスの主要な出力であり、オーダーの生産活動を開始するための目標時刻を表します。この日付は、材料の可用性、リソース能力、および需要の期限に基づいて決定されます。 この属性は、スケジュール順守分析に不可欠です。計画開始日と実際の生産開始時刻(「生産開始済み」アクティビティのタイムスタンプから)を比較することで、組織は定時性を測定し、遅延の原因を特定し、生産スケジュール順守率などのKPIを計算できます。 その重要性 スケジュール遵守を測定し、計画と実際の生産開始の間の遅延を特定するための基準として機能します。 取得元 これは「ProdTable」テーブルの「SchedStart」フィールドです。 例 2023-04-18T08:00:00Z2023-04-19T08:00:00Z2023-04-20T08:00:00Z | |||
| 品質オーダー番号 QualityOrderNumber | 生産オーダーにリンクされた品質管理オーダーの識別子。 | ||
| 説明 品質検査が必要な場合、Dynamics 365で品質指示が生成されることがよくあります。この属性は、生産プロセスと品質保証プロセスを連携させ、関連する品質指示のIDを捕捉します。 この連携により、品質管理ステップを含むより包括的なエンドツーエンドのプロセスビューが可能になります。品質検査が生産リードタイムにどのように影響するかを分析し、品質プロセスにおける遅延を特定し、さまざまな製品や生産ラインにおける品質チェックの頻度を理解するのに役立ちます。 その重要性 生産プロセスを品質保証プロセスに接続し、品質検査が全体的なリードタイムにどのように影響するかを分析することを可能にします。 取得元 この情報は品質管理テーブル(例:「InventQualityOrderTable」)に保存され、生産オーダーにリンクバックする必要があります。 例 QO-00123QO-00124QO-00125 | |||
| 改訂番号 ProductionOrderRevisionNumber | 生産計画が最初に作成されてから、何回調整されたかの回数です。 | ||
| 説明 この属性は、生産オーダーがスケジュールまたはリリースされた後に行われた、数量、日付、ルーティングの変更などの修正や重大な変更の数を追跡します。この数値が高いほど、計画の不安定性が大きいことを示します。 これは「生産計画修正率」KPIの直接的な測定指標です。これを分析することは、頻繁な需要変更や不正確な初期計画など、計画の不安定性の原因を特定するのに役立ちます。また、再作業と再スケジューリングの労力量を定量化し、これはしばしば非効率性につながります。 その重要性 これは計画の安定性を直接測定し、「生産計画修正率」KPIをサポートします。過剰な変更や再作業を伴うプロセスを明確にします。 取得元 これは、各ケースについて「生産オーダー調整済み」アクティビティの発生回数を数えることを必要とする派生属性です。 例 012 | |||
| 材料の可用性 MaterialAvailabilityStatus | 製造オーダーに必要な原材料が利用可能かどうかを示します。 | ||
| 説明 この属性は、生産に必要なコンポーネントの準備状況を追跡します。「利用可能」、「オーダー中」、「不足」などの状況を反映する可能性があります。この情報は、生産オーダーが計画通りに現実的に開始できるかをスケジューラーが理解するために不可欠です。 プロセスマイニングにおいて、この属性は生産開始遅延の根本原因を診断するために不可欠です。この状況を「生産オーダーリリース済み」と「生産開始済み」の間の時間と相関させることで、アナリストは材料不足がスケジュール順守と全体的なサイクルタイムに与える影響を定量化できます。これは「材料利用可能状況遅延影響」ダッシュボードを直接サポートします。 その重要性 これは、材料不足によって引き起こされる生産開始遅延を理解し定量化し、サプライチェーンのパフォーマンスを製造効率にリンクさせるための鍵です。 取得元 この状況はしばしば単一のフィールドではなく、「InventSum」テーブルを介して生産オーダーの部品表(BOM)内のすべてのアイテムの現在の在庫レベルを確認することで派生します。 例 完全利用可能部分的な不足利用不可 | |||
| 生産サイクルタイム ProductionCycleTime | 生産オーダーの作成から最終完了までの総期間。 | ||
| 説明 このメトリックは、単一の生産オーダーのエンドツーエンドのサイクルタイムを測定します。これは、ケースにおける最初のイベント(通常「生産オーダー作成済み」)と最後のイベント(例:「生産オーダー完了」)の間の時間差として計算されます。 生産サイクルタイムは、全体的なプロセス効率を評価するための基本的なKPIです。このメトリックを分析することは、長期実行オーダーを特定し、製品を製造する平均時間を理解し、時間の経過とともにパフォーマンスの改善を追跡するのに役立ちます。これは「生産パフォーマンス概要」ダッシュボードの主要な測定指標です。 その重要性 これは、生産オーダーを完了するのにかかる時間における全体的なプロセス効率を測定し、トレンドや外れ値を特定するための重要なKPIです。 取得元 これは、各生産オーダー番号について、最初のイベントのタイムスタンプを最後のイベントのタイムスタンプから差し引くことで計算されるメトリックです。 例 7日 4時間 30分10日 2時間 15分5日 8時間 0分 | |||
| 生産ライン ProductionLine | 生産オーダーに割り当てられた特定の生産ライン、作業センター、またはリソースグループ。 | ||
| 説明 生産ラインとは、製造作業を実行する特定の機械、セル、またはリソースグループを指します。これは、生産工場よりも詳細なレベルのデータを提供します。 生産ライン別にプロセスを分析することは、詳細な能力および利用分析にとって不可欠です。これにより、過負荷の作業センターを特定し、同じ製品を生産する異なるラインの効率を比較し、工場レベルでは見えない可能性のあるリソース固有のボトルネックを特定するのに役立ちます。 その重要性 これにより、リソース利用率とパフォーマンスのきめ細かな分析が可能になり、過負荷の作業センターや非効率なラインの特定に役立ちます。 取得元 この情報は、生産ルートトランザクション(「ProdRoute」または「ProdRouteTrans」テーブル)の「WrkCtrId」フィールドによく見られます。 例 LINE-01LINE-02CNC-A | |||
| 生産開始遅延 ProductionStartDelay | オーダーがリリースされてから実際の生産開始までの経過時間。 | ||
| 説明 この計算された期間は、製造現場における待機時間またはキュー時間を測定します。「生産オーダーリリース済み」アクティビティと「生産開始済み」アクティビティ間の時間差です。 このKPIは「リソース配分遅延分析」ダッシュボードにとって不可欠です。なぜなら、計画が完了し、オーダーが実行準備が整った後に発生する遅延を特定するからです。高い値は、リソースの可用性、材料の段取り、または製造現場への情報フローに関する問題を示す可能性があり、運用改善のための明確な目標を提供します。 その重要性 「開始準備完了」の遅延を正確に測定し、リソースの可用性や製造現場の準備状況に関連するボトルネックを特定するのに役立ちます。 取得元 これは計算されたメトリックです:タイムスタンプ(「生産開始済み」) - タイムスタンプ(「生産オーダーリリース済み」)。 例 0日 4時間 15分1日 2時間 0分0日 1時間 30分 | |||
| 納期通り開始 ProductionScheduleAdherence | 製造オーダーが計画開始日以前に開始された場合にtrueとなるブール値フラグです。 | ||
| 説明 この計算属性は、生産開始のスケジュール順守を示すシンプルでバイナリな指標を提供します。これは、実際の開始タイムスタンプ(「生産開始済み」イベント)と「PlannedStartDate」属性を比較します。 このフラグは、「生産スケジュール順守率」のような明確で簡潔なダッシュボードとKPIを作成するために非常に有用です。分析ツールで直接日付比較を行う必要なく、何パーセントのオーダーが定時で開始するかを確認し、遅延したオーダーの特性を分析するために、簡単なフィルタリングと集計を可能にします。 その重要性 これにより、スケジュール順守に関するレポート作成とKPI計算が簡素化され、定時オーダーと遅延オーダーの簡単なフィルタリングと集計が可能になります。 取得元 これは計算されたメトリックです。ロジックは次のとおりです:「生産開始済み」イベントタイム <= PlannedStartDate。 例 truefalse | |||
| 終了日時 EndTime | アクティビティが完了した正確なタイムスタンプ。 | ||
| 説明 終了時刻は、特定のアクティビティの完了を示します。開始時刻が始まりを示す一方、終了時刻は、その単一ステップの実際の期間や処理時間を理解するために必要です。 プロセスマイニングにおいて、アクティビティの開始時刻と終了時刻の両方を持つことで、待機時間と処理時間のより詳細な分析が可能になります。これにより、アクティビティが積極的に作業されていた時間と、次のステップが開始されるのを待っていた時間を区別するのに役立ち、詳細なボトルネック分析にとって不可欠です。 その重要性 アクティビティ処理時間を計算し、待機時間と区別することを可能にすることで、より正確なボトルネック分析を可能にします。 取得元 これはしばしば派生します。例えば、「生産開始済み」の終了時刻は「操業完了」の開始時刻である可能性があります。一部のログでは、終了タイムスタンプが明示的に記録される場合があります。 例 2023-04-15T09:30:45Z2023-04-15T12:00:00Z2023-04-16T15:00:10Z | |||
| 計画数量 PlannedQuantity | 生産が計画されているアイテムの数量。 | ||
| 説明 計画数量とは、特定の生産オーダーに対して製造される目標ユニット数です。この数量は通常、販売オーダーからの需要、安全在庫要件、またはマスター計画によって決定されます。 この属性は、歩留まりやスクラップなどのパフォーマンス指標のベースラインとして機能します。計画数量と生産された実際数量を比較することで、プランナーは生産効率と材料差異を監視できます。これは、能力および材料所要量計画のための基本的なデータポイントです。 その重要性 これは、生産歩留まりとスクラップ率を測定するために使用されるベースライン数量であり、実際に生産された数量と比較されます。 取得元 これは「ProdTable」テーブルの「QtySched」フィールドです。 例 1005000250 | |||
生産計画アクティビティ
| アクティビティ | 説明 | ||
|---|---|---|---|
| 生産オーダースケジュール済み | このアクティビティは生産オーダーのスケジューリングを示し、その作業のために特定のリソース、日付、および時間を割り当てます。このステップには、操業スケジューリングまたはより詳細なジョブスケジューリングが含まれる場合があります。 | ||
| その重要性 スケジューリングは、能力計画とリソース管理にとって非常に重要です。オーダーのスケジュールにかかる時間と、リリースまでのギャップを分析することで、計画と能力の制約が明らかになります。 取得元 ProdTableの製造オーダーのステータスが「Scheduled」(計画済み)に変更されたときにキャプチャされます。これは、ユーザーがスケジューリング機能を実行することでトリガーされます。 取得 ProdTableのProdStatusフィールドが「Scheduled」に変更されたときのタイムスタンプを検出します。 イベントタイプ inferred | |||
| 生産オーダーリリース済み | このアクティビティは、生産オーダーが承認され、製造現場での実行が許可されたことを示します。これは、ジョブカードや工程表などのドキュメントをリリースする重要なマイルストーンです。 | ||
| その重要性 これは計画から実行への公式な引き継ぎです。「スケジュール済み」から「リリース済み」までの時間は、承認遅延や最終チェックを示唆する可能性があり、一方、「リリース済み」から「開始済み」までの時間は、製造現場の準備状況を測定します。 取得元 これは、ProdTable内の生産オーダー状況が「リリース済み」に変更されたときに捕捉されます。これは手動または自動のユーザーアクションです。 取得 ProdTableのProdStatusフィールドが「Released」に変更されたときのタイムスタンプを検出します。 イベントタイプ inferred | |||
| 生産オーダー作成済み | このアクティビティは、生産オーダーの作成を示し、これは特定数量の製品に対する需要を公式化します。これは通常、計画された生産オーダーが確定され、システム内に一意のIDを持つ公式記録が作成されたときに捕捉されます。 | ||
| その重要性 これは生産プロセスの主要な開始イベントです。この作成から後続ステップまでの時間を分析することは、全体的な計画リードタイムと効率を測定するのに役立ちます。 取得元 このイベントは、ProdTable内の生産オーダーレコードの作成タイムスタンプから推測されます。初期状況は通常「作成済み」です。 取得 ProdTable内でProdStatusが「Created」である新規エントリの作成タイムスタンプをキャプチャします。 イベントタイプ inferred | |||
| 生産オーダー完了 | これは最終アクティビティであり、生産オーダーの財務上のクローズを表します。すべてのコストが計算され、転記されており、それ以上オーダーに対する取引はできません。 | ||
| その重要性 これは物理的および財務的両方の観点から、オーダーの真の完了を示します。「完了報告済み」と「完了」間の遅延は、原価計算または財務上のクローズプロセスにおける問題を示す可能性があります。 取得元 これは、「ProdTable」の「ProdStatus」フィールドが「完了」に設定されたときに捕捉される最終的な状況変更です。これは、コスト計算を実行し、オーダーを完了することでトリガーされます。 取得 ProdTableのProdStatusフィールドが「Ended」に変更されたときのタイムスタンプを検出します。 イベントタイプ inferred | |||
| 生産完了報告済み | 指定された数量の製品の製造プロセスが物理的に完了し、完成品が現在在庫にあることを示します。これは、在庫トランザクションをトリガーする重要なステータス更新です。 | ||
| その重要性 これは物理的な生産の終了を示します。定時完了率、実際の生産期間、およびスループットを計算するために不可欠です。 取得元 ProdTableの製造オーダーのステータスが「Reported as finished」(完了報告済み)に変更されたときにキャプチャされます。これは、完了報告仕訳を転記することでトリガーされます。 取得 ProdTableのProdStatusフィールドが「Reported as finished」に変更されたときのタイムスタンプを検出します。 イベントタイプ inferred | |||
| 生産開始済み | 製造現場でオーダーに対する実際の生産作業が開始されることを示します。これは多くの場合、最初の作業またはジョブが製造現場のターミナルまたは仕訳転記を通じて開始されたときに記録されます。 | ||
| その重要性 このアクティビティは生産の実際の開始時刻を提供します。これは、開始遅延、スケジュール順守、および実際のリードタイムを計算するために不可欠です。 取得元 ProdTableの製造オーダーのステータスが「Started」(開始済み)に変更されたときにキャプチャされます。これは、最初の作業についてジョブカードまたはルーティングカード仕訳を転記することで頻繁にトリガーされます。 取得 ProdTableのProdStatusフィールドが「Started」に変更されたときのタイムスタンプを検出します。 イベントタイプ inferred | |||
| 品質オーダー生成済み | 生産オーダーからの成果物を検査するために品質オーダーが作成されました。このイベントは、生産された製品の品質保証プロセスの開始を示します。 | ||
| その重要性 品質プロセスを追跡することは、総リードタイムを把握するために重要です。品質検査の遅延は、製品の出荷や後続プロセスでの使用を妨げる可能性があります。 取得元 これは、ソース生産オーダーを参照するInventQualityOrderTable内のレコード作成に基づく明示的なイベントです。 取得 製造オーダーIDにリンクされたInventQualityOrderTableにおける品質オーダーの作成タイムスタンプをキャプチャします。 イベントタイプ explicit | |||
| 品質検査合格 | これは、生産実行に関連する品質オーダーの成功した完了と検証を表します。これにより、生産されたアイテムが必要な品質基準を満たしていることが確認されます。 | ||
| その重要性 これは品質プロセスにおける重要なマイルストーンです。品質オーダー生成から検査合格までの期間は、QAチームの効率性を浮き彫りにします。 取得元 InventQualityOrderTableレコードのステータスが「Pass」に変化したことから推測されます。特定のステータス値は異なる場合があります。 取得 関連するInventQualityOrderTableレコードのステータスが「Pass」に更新されたときのタイムスタンプを検出します。 イベントタイプ inferred | |||
| 生産オーダーキャンセル済み | これは、生産オーダーが完了する前のキャンセルを表します。これは、プロセスにおける代替の、成功しなかった終了です。 | ||
| その重要性 キャンセルを追跡することで、需要の変化や計画ミスなど、プロセスの失敗原因を特定できます。高いキャンセル率は、システム全体の問題を示している可能性があります。 取得元 これは状況変更から推測される代替の終了状態です。正確な状況は異なる場合がありますが、多くの場合、オーダー状況を前の状態にリセットし、キャンセル済みとしてマークすることを含みます。 取得 キャンセルを示すステータス変更を検出します。これを特定するには、特定のシステム分析が必要になる場合があります。 イベントタイプ inferred | |||
| 生産オーダー見積済み | これは、生産オーダーの見積もり材料およびコスト消費量の計算を表します。これは、進行する前に財務および材料要件が理解されていることを確認するための重要な計画ステップです。 | ||
| その重要性 見積もりにおける遅延は、計画段階で重大なボトルネックとなる可能性があります。このアクティビティを追跡することで、コストおよび材料計画プロセスの非効率性を特定するのに役立ちます。 取得元 これは、ProdTable内の生産オーダー状況が「見積済み」に変更されたときに捕捉されます。これは、ユーザーがオーダーに対して「見積もり」機能を実行することでトリガーされます。 取得 ProdTableのProdStatusフィールドが「Estimated」に変更されたときのタイムスタンプを検出します。 イベントタイプ inferred | |||
| 生産オーダー調整済み | これは、生産オーダーがリリースされた後に行われた、数量変更や日付修正などの重大な変更を表します。このイベントは、変更前後の主要フィールドを比較することによって推測されます。 | ||
| その重要性 頻繁な調整は、計画の不安定性または需要の変動を示し、非効率性や手戻りにつながります。これにより、そのような変更の頻度と影響を定量化するのに役立ちます。 取得元 オーダーステータスが「Released」になった後、ProdTableレコードの「QtySched」や「SchedEnd」のようなフィールドの変更ログを分析するか、スナップショットを比較することで推測されます。 取得 「Released」イベントタイムスタンプ以降のProdTable上の主要フィールド(例:数量、日付)への変更を特定します。 イベントタイプ calculated | |||
| 生産用材料ピッキング済み | 製造オーダーに必要な原材料が倉庫からピッキングされ、消費準備が整っていることを示します。このイベントは、原材料ピッキング作業またはピッキングリスト仕訳の転記の完了時に記録されます。 | ||
| その重要性 このアクティビティは、生産を開始するための重要なゲートです。スケジューリングと材料ピッキング間の遅延は、倉庫業務または材料の可用性の問題を浮き彫りにします。 取得元 これは通常、生産オーダーにリンクされた倉庫管理テーブル(WHSWorkTable)または在庫仕訳(InventJournalTrans)に記録される明示的なイベントです。 取得 製造オーダーに関連するピッキングリスト仕訳の転記タイムスタンプをキャプチャします。 イベントタイプ explicit | |||
| 運用完了 | このアクティビティは、生産ルートにおける個々の製造作業またはステップの完了を示します。生産オーダーには通常、これらのイベントが複数発生します。 | ||
| その重要性 作業間の時間を分析することで、生産プロセス自体のボトルネックを特定できます。これにより、製造現場のフローをより詳細に把握できます。 取得元 これは、各作業に対する工程表仕訳(ProdJournalRoute)の転記から捕捉される明示的なイベントであり、そのステップの完了を示します。 取得 製造オーダーに関連する各ProdJournalRouteレコードの転記タイムスタンプをキャプチャします。 イベントタイプ explicit | |||
抽出ガイド
ステップ
- データ管理ワークスペースへの移動: Microsoft Dynamics 365 Finance and Operationsにログインします。検索バーを使用して
データ管理ワークスペースを見つけ、そこに移動します。 - 新しいエクスポートプロジェクトの作成: ワークスペース内で、
エクスポートタイルを選択して新しいデータエクスポートプロジェクトを作成します。プロジェクトにはProcessMind_Production_Ordersのような分かりやすい名前を付けます。 - エクスポートファイル形式の選択: プロジェクト設定で、CSVやExcelなど、エクスポートに必要なデータ形式を選択します。
エンティティオプションを設定し、形式の詳細を指定します。パフォーマンスと互換性のためにCSVが推奨されます。 - 必要なデータエンティティの追加: すべての製造オーダーイベントをキャプチャするために、必要なデータエンティティをプロジェクトに追加します。具体的には、
製造オーダー、製造オーダー経路トランザクション、在庫品質オーダー、および製造ピッキングリスト仕訳明細行をそれぞれ追加する必要があります。各エンティティについて、クエリセクションに記載されているすべての関連フィールドを選択していることを確認してください。 - データフィルターの適用: 各エンティティについて、
フィルターオプションを使用してデータエクスポートの範囲を設定します。最低限、会社でフィルターして正しい法人を選択します。データ量を管理可能な期間(例: 過去6か月)に制限するため、製造オーダーエンティティの作成日などの主要な日付フィールドに日付範囲フィルターを適用することを強くお勧めします。 - 増分エクスポートの設定 (オプション): 継続的な分析のために、プロジェクトを増分エクスポート用に構成します。これは、ソースエンティティの変更を追跡することで可能になり、最後のエクスポート以降の新規または変更されたレコードのみを抽出できるため、エクスポート時間を大幅に短縮できます。
- エクスポートジョブの実行: プロジェクトが構成されたら、アクションペインの
エクスポートをクリックしてエクスポートを開始します。すぐに実行することも、定期的なバッチジョブとしてスケジュールすることもできます。 - エクスポートされたファイルのダウンロード: エクスポートジョブが正常に完了したら、ジョブ履歴に移動します。含めた各エンティティの個別のデータファイルを含むZIPファイルとしてパッケージをダウンロードします。
- データをイベントログに変換: エクスポートされたファイルは、フォーマットされたイベントログではなく、生のテーブルデータです。これらのファイルからデータを処理し、結合するには、外部ツール(Pythonスクリプト、Excel/Power BIのPower Query、またはETLツールなど)を使用する必要があります。クエリセクションで概説されている変換ロジックを適用して、様々なエンティティの日付フィールドとステータスフィールドを、アクティビティごとに1行の単一のイベントログファイルにピボットする必要があります。
- 最終イベントログの構造化: 最終的に変換されたCSVファイルに、
ProductionOrderNumber、ActivityName、EventTime、SourceSystem、LastDataUpdateなどの必要な列と、推奨される属性が含まれていることを確認してください。ファイルはヘッダー行でフォーマットされ、ProcessMindへのアップロード準備が整っている必要があります。
設定
- 主要データエンティティ: この抽出の核となるのは、複数のエンティティをエクスポートし、後で結合することです。主要なエンティティは、
製造オーダー(ProdTable)、製造オーダー経路トランザクション(ProdRouteTrans)、在庫品質オーダー(InventQualityOrderTable) です。 - 日付範囲フィルタリング: データ量を管理するために、常に日付フィルターを適用してください。
製造オーダーエンティティを作成日(CREATEDDATETIME) で過去3~6か月間にフィルタリングすることが良い習慣です。これにより、システムに過負荷をかけることなく、完全な最新プロセスをキャプチャできます。 - 会社フィルター: 分析したい特定の会社または法人に対してフィルターを設定することが重要です。これは、エクスポートプロジェクト内の各エンティティにある
フィルターオプションを介して行います。 - 完全プッシュと増分プッシュ: 初期の抽出には完全プッシュが必要です。その後の更新には、エンティティの変更追跡を構成し、増分エクスポートを実行してパフォーマンスを向上させ、データ負荷を軽減することを強くお勧めします。
- 前提条件: エクスポートを実行するユーザーは、通常
データ管理管理者、または必要なデータエンティティにアクセスするためのアクセス許可を含む適切なセキュリティロールを持っている必要があります。
a クエリ例 config
/*
This is not a runnable script but a configuration and transformation plan for the Dynamics 365 Data Management Framework.
**Step 1: Configure the Export Project**
Export the following entities with the specified fields:
1. **Entity: Production orders (ProdTable)**
* `ProductionOrderNumber` (PRODID)
* `ProductionOrderStatus` (PRODSTATUS)
* `CreationDate` (CREATEDDATETIME)
* `LastUpdateDateStatusEstimate` (LASTUPDATEDATESTATUSESTIMATE)
* `LastUpdateDateStatusScheduled` (LASTUPDATEDATESTATUSSCHEDULED)
* `ReleaseDate` (RELEASEDATETIME)
* `StartDate` (STARTEDDATETIME)
* `ReportedFinishedDate` (REPORTEDFINISHEDDATETIME)
* `LastUpdateDateStatusEnded` (LASTUPDATEDATESTATUSENDED)
* `ModifiedDateTime` (MODIFIEDDATETIME)
* `CreatedByUser` (CREATEDBY)
* `ProductionSite` (INVENTSITEID)
* `ProductNumber` (ITEMID)
* `ProductionType` (PRODTYPE)
* `Quantity` (QTYsched)
* `ActualQuantity` (QTYCALC)
* `DeliveryDate` (DLVDATE)
2. **Entity: Production order route transactions (ProdRouteTrans)**
* `ProductionOrderNumber` (PRODID)
* `OperationNumber` (OPRNUM)
* `TransactionDate` (TRANSDATE)
* `TransactionTime` (TRANSTIME)
* `CreatedDateTime` (CREATEDDATETIME)
* `CreatedByUser` (CREATEDBY)
3. **Entity: Inventory quality orders (InventQualityOrderTable)**
* `QualityOrderNumber` (INVENTQUALITYORDERID)
* `ReferenceType` (REFTYPE)
* `ReferenceNumber` (PRODID)
* `QualityOrderStatus` (STATUS)
* `CreationDate` (CREATEDDATETIME)
* `ModifiedDateTime` (MODIFIEDDATETIME)
4. **Entity: Production picking list journal lines (ProdJournalBOM)**
* `JournalId` (JOURNALID)
* `ProductionOrderNumber` (PRODID)
* `PostedDateTime` (POSTEDDATETIME)
* `CreatedByUser` (CREATEDBY)
**Step 2: Apply Transformation Logic (Post-Export)**
Use a script or ETL tool to transform the exported files into a single event log CSV. For each row in the source files, generate events as described below.
*/
-- Production Order Created
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Created' AS ActivityName,
CREATEDDATETIME AS EventTime,
PRODSTATUS AS ProductionOrderStatus,
DLVDATE AS PlannedStartDate,
-- [Logic to calculate PlannedEndDate] AS PlannedEndDate,
CREATEDBY AS UserId,
INVENTSITEID AS ProductionPlant,
ITEMID AS ProductNumber,
PRODTYPE AS ProductionType,
QTYCALC AS ActualQuantity,
-- [Your field for Production Priority] AS ProductionPriority
FROM ProdTable
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Estimated
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Estimated' AS ActivityName,
LASTUPDATEDATESTATUSESTIMATE AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSESTIMATE IS NOT NULL
UNION ALL
-- Production Order Scheduled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Scheduled' AS ActivityName,
LASTUPDATEDATESTATUSSCHEDULED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSSCHEDULED IS NOT NULL
UNION ALL
-- Materials Picked For Production (based on the first picking list journal posting)
SELECT
PRODID AS ProductionOrderNumber,
'Materials Picked For Production' AS ActivityName,
MIN(POSTEDDATETIME) AS EventTime, -- Use the earliest posting time for a given order
-- Other attributes from ProdTable...
FROM ProdJournalBOM
WHERE POSTEDDATETIME IS NOT NULL
GROUP BY PRODID
UNION ALL
-- Production Order Released
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Released' AS ActivityName,
RELEASEDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE RELEASEDATETIME IS NOT NULL
UNION ALL
-- Production Order Adjusted (inferred from modification after release)
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Adjusted' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE MODIFIEDDATETIME > RELEASEDATETIME AND PRODSTATUS NOT IN ('Ended', 'Cancelled') -- Example logic
UNION ALL
-- Production Started
SELECT
PRODID AS ProductionOrderNumber,
'Production Started' AS ActivityName,
STARTEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE STARTEDDATETIME IS NOT NULL
UNION ALL
-- Operation Completed
SELECT
PRODID AS ProductionOrderNumber,
'Operation Completed' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM ProdRouteTrans
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Reported As Finished
SELECT
PRODID AS ProductionOrderNumber,
'Production Reported As Finished' AS ActivityName,
REPORTEDFINISHEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE REPORTEDFINISHEDDATETIME IS NOT NULL
UNION ALL
-- Quality Order Generated
SELECT
PRODID AS ProductionOrderNumber,
'Quality Order Generated' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND CREATEDDATETIME IS NOT NULL
UNION ALL
-- Quality Inspection Passed
SELECT
PRODID AS ProductionOrderNumber,
'Quality Inspection Passed' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND STATUS = 'Pass' AND MODIFIEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Ended
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Ended' AS ActivityName,
LASTUPDATEDATESTATUSENDED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSENDED IS NOT NULL
UNION ALL
-- Production Order Cancelled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Cancelled' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE PRODSTATUS = 'Stopped' -- Or the equivalent 'Cancelled' status enum value in your system ステップ
- Dynamics 365でのBYOD設定: Dynamics 365 for Finance and Operations環境で、「Bring your own database (BYOD)」機能が構成されていることを確認してください。これには、Azure SQL DatabaseのセットアップとDynamics 365からのデータエクスポートの構成が含まれます。
- 必須エンティティの公開: 「データ管理」ワークスペースから、「データエンティティ」に移動します。ProdTable、ProdRouteTrans、InventPickingListJour、InventQualityOrderTableといった以下の主要エンティティを検索し、BYODデータベースに公開します。これらが定期エクスポート用に構成されていることを確認してください。
- データ同期の検証: 公開されたエンティティからのデータが、ターゲットのAzure SQL Databaseに正常かつ定期的に同期されていることを確認してください。エクスポートジョブ履歴でエラーがないかチェックします。
- BYODデータベースへの接続: SQLクライアント(SQL Server Management Studio (SSMS) やAzure Data Studioなど)を使用して、Dynamics 365データが存在するAzure SQL Databaseに接続します。
- SQLクエリの準備: 新しいクエリウィンドウを開きます。このドキュメントで提供されている完全なSQLクエリをコピーします。
- クエリパラメータの設定: クエリ内でプレースホルダー変数を見つけます。
'{StartDate}'、'{EndDate}'、'{CompanyCode}'を、希望する日付範囲と分析したい特定の会社のDataAreaIdに置き換えます。 - クエリの実行: 修正されたSQLクエリをBYODデータベースに対して実行します。実行時間は、データ量と指定された日付範囲によって異なります。
- 結果のレビュー: クエリが完了したら、抽出されたすべてのアクティビティについて、期待される列とデータが含まれていることを確認するために出力をレビューします。結果セットはイベントログです。
- イベントログのエクスポート: クエリ結果をCSVファイルにエクスポートします。ほとんどのSQLクライアントには、結果をファイルに直接保存する組み込み機能があります。
- ProcessMind用のフォーマット: エクスポートされたCSVファイルがUTF-8エンコーディングであり、列ヘッダーがProcessMindで要求される属性名(CaseId、Activity、Timestampなど)と一致していることを確認してください。提供されたクエリはすでに正しいエイリアスを使用しています。
設定
- 主要データエンティティ: クエリは主に、BYODインスタンスにエクスポートされる以下のエンティティに依存します。
PRODTABLE: 主な製造オーダーのヘッダー情報とステータスが含まれます。PRODROUTETRANS: 個々の製造作業とその完了に関する詳細を提供します。INVENTPICKINGLISTJOUR: 製造オーダーの材料ピッキングを記録します。INVENTQUALITYORDERTABLE: 製造にリンクされた品質保証オーダーを追跡します。
- 日付範囲: 管理しやすいクエリパフォーマンスを確保するため、例えば3~6か月分のデータといった限定された日付範囲から開始することをお勧めします。クエリは、製造オーダーの作成日(
PRODTABLEのCREATEDDATETIME)をフィルタリングに使用します。 - 会社コードフィルター:
DATAREAIDフィールドは、特定の法人または会社のデータをフィルタリングするために使用されます。'{CompanyCode}'プレースホルダーを、関連するID(例: 'usmf')に置き換える必要があります。 - 前提条件: この方法では、BYODを構成するためにDynamics 365 Finance and Operationsへのシステム管理者アクセス、およびクエリを実行するためにAzure SQL Databaseへの共同作成者アクセス許可が必要です。
- パフォーマンス: 数年または複数の会社にわたる非常に大量のデータセットの場合、オフピーク時間帯にクエリを実行することを検討してください。抽出をより短い期間に分割し、後で結果を結合することも可能です。
a クエリ例 sql
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Created' AS ActivityName,
p.CREATEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYCALC AS ActualQuantity, -- Using calculated quantity at creation
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Estimated' AS ActivityName,
p.COSTCALCDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYCALC AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.COSTCALCDATETIME IS NOT NULL AND p.PRODSTATUS >= 2 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Scheduled' AS ActivityName,
p.SCHEDDATE AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYCALC AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.SCHEDDATE IS NOT NULL AND p.PRODSTATUS >= 3 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Materials Picked For Production' AS ActivityName,
pl.LEDGERVOUCHERPOSTEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
pl.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM INVENTPICKINGLISTJOUR pl
JOIN PRODTABLE p ON pl.INVENTREFID = p.PRODID AND pl.DATAREAID = p.DATAREAID
WHERE pl.LEDGERVOUCHERPOSTEDDATETIME IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Released' AS ActivityName,
p.RELEASEDATE AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.RELEASEDATE IS NOT NULL AND p.PRODSTATUS >= 4 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Adjusted' AS ActivityName,
p.MODIFIEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.RELEASEDATE IS NOT NULL AND p.MODIFIEDDATETIME > p.RELEASEDATE AND p.PRODSTATUS IN (4, 5) AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Started' AS ActivityName,
p.STARTEDUPDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.STARTEDUPDATETIME IS NOT NULL AND p.PRODSTATUS >= 5 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
prt.PRODID AS ProductionOrderNumber,
'Operation Completed' AS ActivityName,
prt.TRANSDATE AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
prt.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODROUTETRANS prt
JOIN PRODTABLE p ON prt.PRODID = p.PRODID AND prt.DATAREAID = p.DATAREAID
WHERE prt.POSTINGTYPE = 8 AND prt.TRANSDATE IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Reported As Finished' AS ActivityName,
p.LASTUPDDATEPRINT AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.PRODSTATUS = 6 AND p.LASTUPDDATEPRINT IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Quality Order Generated' AS ActivityName,
qo.CREATEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
qo.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM INVENTQUALITYORDERTABLE qo
JOIN PRODTABLE p ON qo.INVENTREFID = p.PRODID AND qo.DATAREAID = p.DATAREAID
WHERE qo.INVENTREFTYPE = 9 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Quality Inspection Passed' AS ActivityName,
qo.MODIFIEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
qo.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM INVENTQUALITYORDERTABLE qo
JOIN PRODTABLE p ON qo.INVENTREFID = p.PRODID AND qo.DATAREAID = p.DATAREAID
WHERE qo.INVENTREFTYPE = 9 AND qo.STATUS = 2 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Ended' AS ActivityName,
p.LASTUPDDATEPRINT AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.PRODSTATUS = 7 AND p.LASTUPDDATEPRINT IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Cancelled' AS ActivityName,
p.MODIFIEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.PRODSTATUS = 0 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'; ステップ
- データ管理ワークスペースへの移動: Microsoft Dynamics 365 Finance and Operationsにログインします。検索バーを使用して
データ管理ワークスペースを見つけ、そこに移動します。 - 新しいエクスポートプロジェクトの作成: ワークスペース内で、
エクスポートタイルを選択して新しいデータエクスポートプロジェクトを作成します。プロジェクトにはProcessMind_Production_Ordersのような分かりやすい名前を付けます。 - エクスポートファイル形式の選択: プロジェクト設定で、CSVやExcelなど、エクスポートに必要なデータ形式を選択します。
エンティティオプションを設定し、形式の詳細を指定します。パフォーマンスと互換性のためにCSVが推奨されます。 - 必要なデータエンティティの追加: すべての製造オーダーイベントをキャプチャするために、必要なデータエンティティをプロジェクトに追加します。具体的には、
製造オーダー、製造オーダー経路トランザクション、在庫品質オーダー、および製造ピッキングリスト仕訳明細行をそれぞれ追加する必要があります。各エンティティについて、クエリセクションに記載されているすべての関連フィールドを選択していることを確認してください。 - データフィルターの適用: 各エンティティについて、
フィルターオプションを使用してデータエクスポートの範囲を設定します。最低限、会社でフィルターして正しい法人を選択します。データ量を管理可能な期間(例: 過去6か月)に制限するため、製造オーダーエンティティの作成日などの主要な日付フィールドに日付範囲フィルターを適用することを強くお勧めします。 - 増分エクスポートの設定 (オプション): 継続的な分析のために、プロジェクトを増分エクスポート用に構成します。これは、ソースエンティティの変更を追跡することで可能になり、最後のエクスポート以降の新規または変更されたレコードのみを抽出できるため、エクスポート時間を大幅に短縮できます。
- エクスポートジョブの実行: プロジェクトが構成されたら、アクションペインの
エクスポートをクリックしてエクスポートを開始します。すぐに実行することも、定期的なバッチジョブとしてスケジュールすることもできます。 - エクスポートされたファイルのダウンロード: エクスポートジョブが正常に完了したら、ジョブ履歴に移動します。含めた各エンティティの個別のデータファイルを含むZIPファイルとしてパッケージをダウンロードします。
- データをイベントログに変換: エクスポートされたファイルは、フォーマットされたイベントログではなく、生のテーブルデータです。これらのファイルからデータを処理し、結合するには、外部ツール(Pythonスクリプト、Excel/Power BIのPower Query、またはETLツールなど)を使用する必要があります。クエリセクションで概説されている変換ロジックを適用して、様々なエンティティの日付フィールドとステータスフィールドを、アクティビティごとに1行の単一のイベントログファイルにピボットする必要があります。
- 最終イベントログの構造化: 最終的に変換されたCSVファイルに、
ProductionOrderNumber、ActivityName、EventTime、SourceSystem、LastDataUpdateなどの必要な列と、推奨される属性が含まれていることを確認してください。ファイルはヘッダー行でフォーマットされ、ProcessMindへのアップロード準備が整っている必要があります。
設定
- 主要データエンティティ: この抽出の核となるのは、複数のエンティティをエクスポートし、後で結合することです。主要なエンティティは、
製造オーダー(ProdTable)、製造オーダー経路トランザクション(ProdRouteTrans)、在庫品質オーダー(InventQualityOrderTable) です。 - 日付範囲フィルタリング: データ量を管理するために、常に日付フィルターを適用してください。
製造オーダーエンティティを作成日(CREATEDDATETIME) で過去3~6か月間にフィルタリングすることが良い習慣です。これにより、システムに過負荷をかけることなく、完全な最新プロセスをキャプチャできます。 - 会社フィルター: 分析したい特定の会社または法人に対してフィルターを設定することが重要です。これは、エクスポートプロジェクト内の各エンティティにある
フィルターオプションを介して行います。 - 完全プッシュと増分プッシュ: 初期の抽出には完全プッシュが必要です。その後の更新には、エンティティの変更追跡を構成し、増分エクスポートを実行してパフォーマンスを向上させ、データ負荷を軽減することを強くお勧めします。
- 前提条件: エクスポートを実行するユーザーは、通常
データ管理管理者、または必要なデータエンティティにアクセスするためのアクセス許可を含む適切なセキュリティロールを持っている必要があります。
a クエリ例 config
/*
This is not a runnable script but a configuration and transformation plan for the Dynamics 365 Data Management Framework.
**Step 1: Configure the Export Project**
Export the following entities with the specified fields:
1. **Entity: Production orders (ProdTable)**
* `ProductionOrderNumber` (PRODID)
* `ProductionOrderStatus` (PRODSTATUS)
* `CreationDate` (CREATEDDATETIME)
* `LastUpdateDateStatusEstimate` (LASTUPDATEDATESTATUSESTIMATE)
* `LastUpdateDateStatusScheduled` (LASTUPDATEDATESTATUSSCHEDULED)
* `ReleaseDate` (RELEASEDATETIME)
* `StartDate` (STARTEDDATETIME)
* `ReportedFinishedDate` (REPORTEDFINISHEDDATETIME)
* `LastUpdateDateStatusEnded` (LASTUPDATEDATESTATUSENDED)
* `ModifiedDateTime` (MODIFIEDDATETIME)
* `CreatedByUser` (CREATEDBY)
* `ProductionSite` (INVENTSITEID)
* `ProductNumber` (ITEMID)
* `ProductionType` (PRODTYPE)
* `Quantity` (QTYsched)
* `ActualQuantity` (QTYCALC)
* `DeliveryDate` (DLVDATE)
2. **Entity: Production order route transactions (ProdRouteTrans)**
* `ProductionOrderNumber` (PRODID)
* `OperationNumber` (OPRNUM)
* `TransactionDate` (TRANSDATE)
* `TransactionTime` (TRANSTIME)
* `CreatedDateTime` (CREATEDDATETIME)
* `CreatedByUser` (CREATEDBY)
3. **Entity: Inventory quality orders (InventQualityOrderTable)**
* `QualityOrderNumber` (INVENTQUALITYORDERID)
* `ReferenceType` (REFTYPE)
* `ReferenceNumber` (PRODID)
* `QualityOrderStatus` (STATUS)
* `CreationDate` (CREATEDDATETIME)
* `ModifiedDateTime` (MODIFIEDDATETIME)
4. **Entity: Production picking list journal lines (ProdJournalBOM)**
* `JournalId` (JOURNALID)
* `ProductionOrderNumber` (PRODID)
* `PostedDateTime` (POSTEDDATETIME)
* `CreatedByUser` (CREATEDBY)
**Step 2: Apply Transformation Logic (Post-Export)**
Use a script or ETL tool to transform the exported files into a single event log CSV. For each row in the source files, generate events as described below.
*/
-- Production Order Created
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Created' AS ActivityName,
CREATEDDATETIME AS EventTime,
PRODSTATUS AS ProductionOrderStatus,
DLVDATE AS PlannedStartDate,
-- [Logic to calculate PlannedEndDate] AS PlannedEndDate,
CREATEDBY AS UserId,
INVENTSITEID AS ProductionPlant,
ITEMID AS ProductNumber,
PRODTYPE AS ProductionType,
QTYCALC AS ActualQuantity,
-- [Your field for Production Priority] AS ProductionPriority
FROM ProdTable
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Estimated
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Estimated' AS ActivityName,
LASTUPDATEDATESTATUSESTIMATE AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSESTIMATE IS NOT NULL
UNION ALL
-- Production Order Scheduled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Scheduled' AS ActivityName,
LASTUPDATEDATESTATUSSCHEDULED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSSCHEDULED IS NOT NULL
UNION ALL
-- Materials Picked For Production (based on the first picking list journal posting)
SELECT
PRODID AS ProductionOrderNumber,
'Materials Picked For Production' AS ActivityName,
MIN(POSTEDDATETIME) AS EventTime, -- Use the earliest posting time for a given order
-- Other attributes from ProdTable...
FROM ProdJournalBOM
WHERE POSTEDDATETIME IS NOT NULL
GROUP BY PRODID
UNION ALL
-- Production Order Released
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Released' AS ActivityName,
RELEASEDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE RELEASEDATETIME IS NOT NULL
UNION ALL
-- Production Order Adjusted (inferred from modification after release)
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Adjusted' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE MODIFIEDDATETIME > RELEASEDATETIME AND PRODSTATUS NOT IN ('Ended', 'Cancelled') -- Example logic
UNION ALL
-- Production Started
SELECT
PRODID AS ProductionOrderNumber,
'Production Started' AS ActivityName,
STARTEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE STARTEDDATETIME IS NOT NULL
UNION ALL
-- Operation Completed
SELECT
PRODID AS ProductionOrderNumber,
'Operation Completed' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM ProdRouteTrans
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Reported As Finished
SELECT
PRODID AS ProductionOrderNumber,
'Production Reported As Finished' AS ActivityName,
REPORTEDFINISHEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE REPORTEDFINISHEDDATETIME IS NOT NULL
UNION ALL
-- Quality Order Generated
SELECT
PRODID AS ProductionOrderNumber,
'Quality Order Generated' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND CREATEDDATETIME IS NOT NULL
UNION ALL
-- Quality Inspection Passed
SELECT
PRODID AS ProductionOrderNumber,
'Quality Inspection Passed' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND STATUS = 'Pass' AND MODIFIEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Ended
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Ended' AS ActivityName,
LASTUPDATEDATESTATUSENDED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSENDED IS NOT NULL
UNION ALL
-- Production Order Cancelled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Cancelled' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE PRODSTATUS = 'Stopped' -- Or the equivalent 'Cancelled' status enum value in your system