この参照アーキテクチャでは、Microsoft Power Platformを使用して、構成と引用から順序付け、アドバイザリ容量計画、運用フェーズまでのエンジニアから注文までのプロセスをサポートします。 モデル駆動型アプリとMicrosoft Dataverseはコア プロセスを調整しますが、財務および運用アプリMicrosoft Dynamics 365は ERP (エンタープライズ リソースプランニング) システムとして機能します。 この参照アーキテクチャでは、プラットフォームの制限を超えた実行時間の長い非同期実行のために、Azure サービスにも依存しています。
ヒント
この記事では、財務および運用アプリ、Power Platform、Azure サービスDynamics 365組み合わせて、見積もり、価格、見積もり、製品計画の機能を備えたエンジニアツーオーダー ソリューションを構築する方法を示す、シナリオの例と一般化されたアーキテクチャの例を示します。 アーキテクチャの例は、さまざまなシナリオや業界に合わせて変更できます。
アーキテクチャ ダイアグラム
次の図は、主要なシステム コンテキストとアーキテクチャを示しています。
ユーザーは、次の 3 つのPower Apps モデル駆動型アプリケーションを使用してワークフローを操作します。
見積もりアプリ: 見積もりツールのプライマリ ワークスペース。 見積もりを開始するには、XML ファイルからエンジニアリング デザインをインポートするか、ライブラリからデザインを選択します。 次に、見積もりを調整するためにコンポーネントを追加または削除します。 サーバー プラグインは、重み、労働時間、コスト ドライバー、および価格を継続的に再計算します。 見積もりツールは、顧客の価格と標準価格を組み合わせてまとめを実行し、パッケージを最終処理してロックします。 このアプリは、ソリューションの価格構成コアです。
計画アプリ: アドバイザリの実稼働前計画をサポートします。 Planners は、サイトと時間によって設計をフェーズ化し、仮の生産開始日を割り当てます。 その後、ERP リソースカレンダーのベースラインとスケジュールされた製造オーダーと見積もり派生ワークロードと手動予測プレースホルダーを組み合わせた容量ダッシュボードを確認します。 このアプリでは、容量の可視性とリード タイム通信がサポートされています。 これは権限がありません。製造オーダー、MRP (材料リソース計画)、スケジューリングは財務および運用アプリに残ります。
複製アプリケーション: テンプレート駆動型の再利用可能な複製定義を使用して、複雑な推定レコード (推定、構造設計、およびコンポーネント階層) をレプリケートするための生産性ツール。 推定器は、新しい見積もりの開始点として、既存のエンジニアリング見積もりのコピーを使用します。 アプリケーションは、Azure Service BusとAzure Functionsを使用して、複雑なクローン ジョブを非同期的に実行し、各ジョブの状態を Dataverse に記録します。
Workflow
次の手順で、このプロセスについて詳しく説明しています。
商用トリガー レコードを作成または識別し (営業案件ソースは実装によって異なる場合があります)、ライフサイクルの早い段階で ERP 見積もりを作成します。 ERP 見積もりは、見積もりプロセスの商用アンカーとして機能します。
ERP 見積もりにリンクされた Dataverse 推定レコードを作成または開き、初期デザイン (XML インポートまたはライブラリ ベースの選択) をシード処理します。 次に、見積もりアプリで構成を絞り込みます。
Dataverse で見積もり、設計、およびコンポーネントの詳細を保持します。 サーバー側プラグインは、エンジニアリング ルールを検証し、設計の変更に合わせて労働時間、重み、コスト ドライバー、合計を継続的に再計算します。
レビューのためにパッケージを最終処理するための要約を開始します。 オーケストレーションでは、入力を再キャプチャし、見積もりとすべての設計に対するサーバー側の計算をトリガーします。
要約中に顧客固有の価格 (CSP) 評価を実行します。 ERP 売買契約 (価格および割引契約) は、必要に応じて構造化された価格入力として使用されます。 $/lb、範囲ベースの価格、コンポーネントテーブルの価格など、他の CSP コンストラクトは、重要な ERP カスタマイズなしでは取引契約のみで表現できないエンジニアリング主導のシナリオを満たすためにサポートされています。
再キャプチャ パッケージを最終処理してロックします。 ロックされた要約出力では、価格構成時に使用された価格基準の追跡可能性が維持されます。 取引契約は日付有効です。 後続の売買契約の変更では、最終的な要約出力は意図的にさかのぼって変更されません。 再見積もりが必要な場合は、正式な見積もりサイクルを実行します (構成のレビューと再キャプチャの再実行)。
レビューの完了時にプロセスをゲートします。 要約が完了し、レビュー完了とマークされたら、ダウンストリームの商用処理をトリガーします。
必要に応じて、ERP ライトバックの前に標準価格の品目にマージンと手数料を適用します。 商用レビュー担当者がこの手順を実行します。 財務マージンの実現は、Project管理および会計および WBS ベース (ワークブレークダウン構造) のコスト追跡を介して ERP ポストアワードで行われます。
最終的な出力を ERP 対応の見積もり行構造に正規化し、財務および運用アプリの既存の ERP 見積に見積もり行Dynamics 365追加します。 ERP では、最終見積もり行は再割り当てされません。 ERP は、受け入れられた価格とダウンストリームの財務実行に対する権限のある記録システムです。
計画アプリを使用して、サイトと時間別に設計をフェーズ化し、仮の運用開始日を割り当て、容量ダッシュボードを確認します。 容量ダッシュボードでは、ERP スケジュールされた製造オーダーとランタイムと、ERP 製品および製造オーダーとしてまだ作成されていない作業の見積派生ワークロードが組み合わせられます。 容量ベースラインは、ERP リソース カレンダーから取得されます。 製造オーダーと MRP は ERP に排他的に残ります。
見積、販売注文、および製造オーダーが作成されると、予測を削除します。 (予測レコードは、構成の詳細がまだ不明な場合に予想される需要の容量を予約するために使用される、手動で入力されたプレースホルダーです)。
Clone アプリケーションを使用して、再利用可能な複製テンプレートを使用して、見積もり、構造設計、コンポーネント階層などの複雑な推定レコードをレプリケートします。 操作と管理によって、これらのジョブが開始されます。 Azure Service Busは、実行時間の長いクローン ジョブを非同期処理のために Azure 関数にディスパッチし、そのジョブの状態を Dataverse に書き込みます。
シナリオの詳細
このワークロードは、組織が複雑な構成と見積もりを反復可能な ERP トランザクションに変える一方で、エンジニアから注文までのビジネス モデルで動的な顧客固有の要件をサポートするのに役立ちます。
アーキテクチャは、ライフサイクル フェーズごとに責任を分離するように設計されています。
- エンジニアリング時の構成と価格構成は、Dataverse (見積もり/計画アプリ、プラグイン、オーケストレーション) で行われます。
- 財務時間権限と実行は、ERP (見積ライフサイクル、賞、販売注文、プロジェクト/WBS コスト追跡、製造オーダー、MRP、スケジューリング、転記) で発生します。
- 正式な再引用が実行されない限り、トレース可能性を維持し、さかのぼった変更を防ぐために、要約出力は最終処理時にロックされます。
プライマリ ユーザーと責任
- エンジニアリングと推定: 設計の構築と検証、構成の管理、作業時間、重量、コストの見積もりを生成します。
- 商用および承認者: パッケージの要約を確認し、標準価格項目にマージン/手数料を適用し、顧客向けの使用に関する出力を承認します。
- プランナー: サイトと時間によるフェーズ設計、仮の開始日の割り当て、ERP 容量ベースラインと需要予測シグナルを使用したキャパシティ/リードタイムの可視性の管理。
- 操作と管理: 複製テンプレートを管理し、統合を監視し、環境間でユーザーをサポートします。
ライセンスと製品の境界
ほとんどのユーザーは、Dynamics 365財務アプリと運用アプリのライセンスが必要です。ワークフローでは、これらのアプリが最初から最後まで使用されるためです。 見積もり、見積もり線、製品などの商用レコードを使用するユーザーには、Dynamics 365 Sales Enterprise アタッチ ライセンスが必要です。 財務および運用アプリは、見積もりのライフサイクル、賞、ダウンストリームの財務実行に関する ERP システムであり続けます。
主な要件
ERP コミットメントの前に、反復的な設計再計算、エンジニアリング検証、制御されたゲーティングを必要とする、エンジニアリングされた構成から見積もりのワークフローをサポートします。
ERP の重要なカスタマイズなしで、標準的な売買契約表現を超えるエンジニアリング主導の CSP コンストラクトを有効にしながら、必要に応じて ERP 売買契約を使用します。
再キャプチャの最終処理とロックにより、トレーサビリティと商用の安定性を維持します。 正式なリクォート サイクルを通じてのみ、再調整を有効にします。
ERP は、見積ライフサイクル、賞、販売注文の作成、プロジェクト/WBS 財務ガバナンス、製造オーダー、MRP、スケジューリング、および転記の権限のある記録システムとして維持します。
ERP リソース カレンダーと既存の製造オーダー ランタイムに合わせた見積もり派生ワークロードと手動予測プレースホルダーを使用して、アドバイザリの運用前容量計画を有効にします。
仮想エンティティ (読み取り)、デュアル書き込み (書き込み)、OData API の 3 つのパターンにわたって統合スコープを管理し、デュアル書き込みから財務転記エンティティを明示的に除外します。
スコープ外の機能
- 詳細な製造実行と現場管理 (ERP およびダウンストリーム システムで処理)。
- Project Operations (ソリューションでは、代わりに財務および運用アプリで Project Management and Accounting モジュールを使用します)。
- AI 主導の価格または完全に自律的な意思決定 (人間によるレビューは引き続き制御ポイント)。
Components
次のコンポーネントは、この参照アーキテクチャのアプリケーション機能、非同期処理、エンタープライズ データ統合、および財務ガバナンスを提供します。
Power Platform
推定アプリ (モデル駆動型): ガイド付き構成、見積もり、価格構成、および要約の実行。
計画アプリ (モデル駆動型): アドバイザリの実稼働前計画のみをサポートします。 運用スケジュールは制御されません。 このアプリでは、サイトと時刻、仮の開始日、容量、リード タイムの可視性による段階的な調整が提供されます。 容量ベースラインは、ERP リソース カレンダーから取得されます。 製造オーダーと MRP は、財務アプリと運用アプリでのみ使用できます。 予測は、まだ構成されていない需要の容量を予約し、見積、販売注文、および製造オーダーが作成されると削除される手動プレースホルダーです。
アプリケーションの複製 (モデル駆動型):再利用可能なテンプレート駆動型の複製定義を使用して、推定、構造設計、およびコンポーネント階層の複雑な推定レコードを複製します。 ユーザーは、新しい見積の開始点として、既存のエンジニアリング見積もりをコピーできます。 実行時間の長い複製ジョブは、Azure サービスで非同期的に実行されます。
Dataverse: 見積もり、設計、コンポーネント、計画レコード、予測プレースホルダー、および複製テンプレートと要求のプライマリ データ ストア。 また、セキュリティ、監査、サーバー側の実行画面も提供します。
Dataverse プラグイン: 検証、計算、要約の最終処理とロック、および正規化ロジックを使用して、ERP で消費可能な見積もりライン出力を準備します。
Power Automate: バッチ処理、承認と通知、ジョブディスパッチパターンを必要に応じてまとめるためのオーケストレーション。
Azure サービス
Azure Service Bus: キューはジョブ メッセージを複製し、実行時間の長い処理を対話型セッションから切り離します。
Azure Function App: プラットフォームの制限時間を超えて、クローン ジョブ (および該当する場合は他の非同期ワークロード) を処理します。 状態を Dataverse に書き戻します。
Azure Key Vault: シークレットと接続の詳細を格納します。 統合 ID を使用してアクセスします。
統合 ID (サービス プリンシパル):最小特権の原則に従って、Azure リソースに対して認証を行います。
ERP とデータ統合
Dynamics 365財務および運用アプリ: ERP 見積と見積ラインの記録システム、賞、販売注文、Project管理および会計、WBS コスト追跡、製造オーダー、MRP とスケジューリング、および転記。 統合では、リスクを最小限に抑えるためにシナリオごとに選択される 3 つの異なるパターンが使用されます。
- 仮想エンティティは、 リリースされた製品、バリアント、測定単位など、財務および運用アプリの参照データとコア データへの読み取り専用アクセスを提供します。 Dataverse にデータをコピーしません。
- デュアル書き込み ハンドルでは、ERP への書き戻し (主に最終見積もり行)、オーケストレーションとガバナンスに必要な参照エンティティとビジネス エンティティが処理されます。
- OData API は、操作によって労働時間を取得します。 財務転記エンティティ (一般会計、請求書仕訳帳、原価トランザクション、生産転記、会計配分、および財務分析コード) は意図的にデュアルライトから除外され、シャドウ ERP の動作を回避します。
ERP 価格構成体: 取引契約 (価格/割引契約) は、必要に応じて、再まとめ中に権限のある価格入力として使用されます。 ERP では、recap 出力から書き込まれた最終見積もり行は動的に再割り当てされません。
ERP 価格 API の使用状況: ERP 価格 API (Commerce Scale Unit の価格尋問を含む) は、反復的な見積もりまたは要約中に呼び出されません。 価格の構成は、管理された入力 (取引契約を含む) とエンジニアリング主導のコンストラクトを使用してまとめる際に Dataverse で発生します。
Considerations
これらの考慮事項は、ワークロードの品質を向上させる一連の基本原則である Power Platform Well-Architected の柱を実行します。 詳細については、Microsoft Power Platform Well-Architected を参照してください。
ワークロードは、エンタープライズ制御 (セキュリティ、ALM、監査可能性) と、複雑な見積もりと計画プロセスを実行するビジネス ユーザーの使いやすさのバランスを取るために設計されています。
Reliability
- 対話型の制限時間を超える操作には、非同期処理 (Service Bus + Azure 関数) を使用します。 回復性とサポートのために、Dataverse でジョブの状態を追跡します。
- サーバー側の計算とジョブ ハンドラーを可能な限りべき等に設計し、安全な再試行と再処理を可能にします。
- エラーの状態 (検証エラー、価格評価例外、統合エラー) を明示的にキャプチャし、実行可能な修復ガイダンスを表示します。
- 最終処理時に出力をロックし、追跡可能性を維持し、意図しない最終処理後の変更を防ぎます。
セキュリティ
- ペルソナに合わせてロールベースのアクセスを適用し、すべての統合に最小限の特権を使用します。
- シークレットをKey Vaultに格納し、統合 ID を介してアクセスします。 フロー、アプリ、またはソース管理にシークレットを埋め込むのは避けてください。
- 環境固有の接続参照と構成を適用して、環境間の漏えいを防ぎます。
- 要約の完了とロック、完了の確認、価格の実行、見積もり行の書き戻しなどの主要なアクションを監査します。
オペレーショナル エクセレンス
- 単一のオーケストレーター パイプラインと一貫したブランチ タグを使用してデプロイを自動化し、デプロイをトレースして再現します。
- Power Automate実行、Dataverse プラグインの実行、および関数/Service Bus データAzure監視を実装します。 一般的な障害パターンの Runbook を提供します。
- アプリ、プラグイン、フロー、Azure リソース、ERP 統合の所有権とサポート プロセスを文書化します。
パフォーマンス効率
- クライアントのラウンド トリップを減らすために、検証と計算 (プラグイン) にはサーバー側のコンピューティングを使用します。
- ピーク時の負荷を制御するためのバッチ要約計算とダウンストリームラインの準備。
- 同期をビジネス ニーズに合わせ、不要なデュアル書き込みスコープを回避します。
エクスペリエンスの最適化
- XML ベースのシード処理と再利用可能なライブラリの選択による迅速な見積もり作成をサポートします。 反復的な絞り込みを許可します。
- 状態を表示し、ハンドオフのあいまいさを軽減するには、クリア ゲート (再キャプチャの最終処理/ロック、完了の確認) を使用します。
- ERP 容量ベースラインに加え、需要シグナルの見積もり/予測を反映した合理化された段階的なフェーズ運用とダッシュボードをプランナーに提供します。
責任ある AI
このワークロードは、価格、承認、または決定のために AI によって生成された出力に依存しません。 ビジネス ユーザーは、最終的なレビューと承認の手順に対して引き続き責任を負います。
貢献者達
Microsoft では、この記事を保持しています。 この記事を書いたのは、以下の寄稿者です。
主な執筆者:
- エステバン・サリナス 校長