Dynamics 365 FastTrack Implementation Assets
repository·master·Indexed 19 days ago
https://github.com/microsoft/dynamics-365-fasttrack-implementation-assetsA collection of implementation assets, code samples, and best practices from the Microsoft Dynamics 365 FastTrack team. It provides architecture patterns for Logical and Cloud Data Warehouses using Synapse Serverless and Dedicated SQL Pools, Lakehouse architecture using Delta Lake, and data integration strategies for Azure SQL. Includes Azure Data Factory (ADF) templates such as PartitionBySize and SQLToADLS for exporting SQL Server data to Azure Data Lake Gen2 in Common Data Model (CDM) format.
What's inside dynamics-365-fasttrack-implementation-assets
- CDMUtil is a client tool based on the CDM SDK used to convert Common Data Model (CDM) metadata from a Dynamics 365 Finance and Operations data lake into metadata compatible with Synapse Analytics SQL pools and Spark pools. This allows users to perform data exploration, ad-hoc reporting via T-SQL, and ETL/ELT processes using Synapse Pipelines, Spark, or T-SQL on highly normalized OLTP data exported as headerless CSVs.
Overview of Chat Assistant for Store Commerce App
masterThe Chat Assistant is a sample implementation for integrating a natural language chat interface into the Dynamics 365 Store Commerce App. It allows store associates and customers to interact with the application using natural language to improve operational efficiency. The implementation uses React and Fluent UI for the frontend and a Commerce Runtime (CRT) backend to handle AI-driven logic.Overview of the Form Load and Plugin Dashboard
masterThe Form Load and Plugin Dashboard is a monitoring tool designed to visualize performance metrics for Dynamics 365 Customer Service. It provides insights into:
- Form Load Performance: Tracks load times using metrics such as p90, p50, Average load, and warmload.
- Plugin Execution: Identifies top plugins with high execution times, most failed plugins, and plugins with a depth > 2.
- Network Performance: Monitors performance across different geographic locations.
Overview of CDM Path Finder
masterCDM Path Finder is a WPF application designed to list all tables within a data lake along with their respective paths. It functions by using a root table manifest (located in theTablesfolder) to traverse the metadata in the lake. This tool is particularly useful for identifying table paths and locating tables that may have moved due to metadata changes.Overview of the Ecommerce Load Testing Pipeline
masterThis project provides an Azure DevOps pipeline for performing load and performance testing on Dynamics 365 Commerce using Apache JMeter and Terraform.
Workflow Architecture
The pipeline is organized into four logical task groups:
- SETUP: Validates the JMX test definition, uploads it to Azure Storage, and uses Terraform to provision infrastructure.
- TEST: Executes the JMeter test on Azure Container Instances (ACI) and waits for completion.
- RESULTS: Converts JMeter results (JTL format) to JUnit format, publishes logs, dashboards, and test results to Azure Pipelines.
- TEARDOWN: Uses Terraform to destroy all ephemeral infrastructure (Resource Group, VNet, Storage Account, JMeter controller, and workers).
Infrastructure Components
Terraform provisions the following on Azure:
- Resource Group
- Virtual Network (VNet)
- Storage Account File Share
- 1 JMeter controller on ACI
- N JMeter workers on ACI
Overview of ChatD365
masterChatD365 is a custom Proof of Concept (POC) chatbot designed to answer questions about Dynamics 365 data. It utilizes LangChain SQL agents and OpenAI's GPT models to convert natural language queries into SQL queries. The system can display its reasoning process (thoughts and actions) and provides a chat interface via a Streamlit web application.Overview of the Azure Logic App Component for Dynamics 365 Commerce
masterThe Azure Logic App component acts as an orchestrator for integrating Dynamics 365 Commerce, the Events Framework, and Customer Insights – Journeys. It manages the workflow of retrieving enriched event data from Azure Service Bus, transforming it, and ensuring it is reliably delivered to Customer Insights – Journeys to trigger personalized customer engagements (like loyalty programs or campaigns).Overview of the Headless Commerce Lab
masterThe Headless Commerce Lab provides hands-on exercises for exploring Headless Commerce APIs in Microsoft Dynamics 365 Commerce. The lab uses Insomnia to demonstrate how to interact with various API security roles, including anonymous, application, and customer-level access.
Key business flows covered include:
- Anonymous product searching
- Customer management via application roles
- Cart creation and checkout processes
- Order history and invoice retrieval
- Pricing API lookups (e.g., deal price lookups)
Overview of Storage Management Data Cleanup scripts
masterThe Storage Management Data Cleanup toolset provides SQL scripts to optimize storage consumption in the Dynamics 365 F&O
AXDBdatabase. It is primarily designed for LCS Tier 2+ environments, but can be used in any F&O environment where you have direct SQL access to theAXDBdatabase.The toolset consists of two primary functional scripts:
- Large Tables Data Cleanup: Used to manage storage by cleaning up data from large tables based on a selected date. This is ideal for selective data reduction and maintaining storage levels over time.
- Transaction-Less Copy SQL Script: Performs transaction-less copy operations to ensure efficient data management without transaction overhead.
Important Compatibility Note: The Transaction-Less Copy SQL Script is intended for LCS Tier 2 sandboxes and Cloud hosted environments. It is not intended for Unified Developer Environments (UDE). For UDE, follow the official Microsoft documentation for performing transactionless copies.
Overview of Commerce clickstream ML prediction workflow
masterThis workflow demonstrates how a Commerce company can analyze online clickstream data (user interactions like ad clicks, product views, and page dwell time) to predict customer behavior. The specific goal is to build a supervised machine learning model that predicts whether a new ad impression will result in a click.
The workflow follows these stages:
- Data Ingestion and Exploration: Loading the clickstream dataset.
- Feature Engineering: Creating features from the raw data.
- Model Training and Evaluation: Building and testing the ML model.
- Data Enrichment: Joining clickstream data with Dynamics product tables to analyze the influence of specific products on model results.
- Feature Exploration: Identifying which features have the highest influence on predictions.
Overview of Market Basket Analysis with Spark FPGrowth
masterThis project provides a series of notebooks designed to perform Market Basket Analysis using the Spark FPGrowth algorithm. The goal is to mine frequent itemsets from large-scale datasets to understand purchase behavior, which can be used for store layout optimization, cross-promotional programs, and cross-selling strategies.
Implementation Details
- Algorithm: Uses
spark.mllib's parallel implementation of the FP-growth algorithm. - Environment: The notebooks are written for Azure Synapse using PySpark, Scala, and SQL queries.
- Portability: With minor adjustments to magic commands, these notebooks can be migrated to Databricks.
Workflow
The analysis is split into two distinct notebooks:
- Data Preparation: A notebook dedicated to preparing the necessary data tables.
- EDA and ML: A notebook for Exploratory Data Analysis (EDA) and Machine Learning execution.
- Algorithm: Uses
Overview of Schedule Board Settings Management (Virtual)
masterThe Schedule Board Settings Management (Virtual) is a Power Apps Component Framework (PCF) control designed for Dynamics 365 Field Service. It provides a user interface to manage Schedule Board settings, which are critical for how dispatchers view and schedule resources.
This specific version is a virtual PCF control, meaning it uses the new virtual framework to achieve smaller
bundle.jssizes and faster load times by leveraging Fluent UI and React libraries already provided by the platform.Key Capabilities:
- View Settings: Browse all available Schedule Board settings via a dropdown.
- Copy Settings: Perform a 'Save As' operation by creating a copy of an existing setting with a new name.
- Delete Settings: Remove settings (excluding system-protected boards).
- Enable/Disable: Toggle the active state of a setting. Disabled settings will not appear as tabs in the Schedule Board.
- Detailed View: Inspect JSON configurations with syntax highlighting.
- Open in New Tab: Open a setting in a new browser tab for sharing or detailed editing.
- Refresh: Reload the settings list.