Unlocking Operational Efficiency with Dynamics 365: Leveraging Monitoring and Telemetry for Warehouse Optimization
In the dynamic realm of Microsoft Dynamics 365 for Finance and Operations and Microsoft Dynamics 365 Supply Chain Management, achieving operational excellence is paramount. Understanding how efficiently your floor operators interact with the system is the key to gaining control over operations and initiating optimization where and when needed.
Empowering Insights with Monitoring and Telemetry
A pivotal feature that empowers organizations in managing their workforce more efficiently is the Monitoring and Telemetry options embedded within the system. This out-of-the-box solution provides invaluable insights, allowing businesses to fine-tune their processes for optimal performance.
A Practical Approach: Warehouse Mobile Device Page Request Duration
To exemplify the potential of Monitoring and Telemetry, here's a sample query that offers a comprehensive overview:
customEvents
| where name == "Warehouse.MobileApp.NextPageRequest" and customDimensions.eventStatus == "start" and customDimensions.mobileDeviceId != "<empty>" and customDimensions.mobileDeviceRequestActivityId != "<empty>"
| extend MobileDeviceId_ = tostring(customDimensions.mobileDeviceId)
| extend MobileDeviceActivityId_ = tostring(customDimensions.mobileDeviceRequestActivityId)
| extend ActivityId_ = tostring(customDimensions.activityId)
| join kind=inner (customEvents
| where name == "Warehouse.MobileApp.NextPageRequest" and customDimensions.eventStatus == "stop"
| extend MobileDeviceId_ = tostring(customDimensions.mobileDeviceId)
| extend MobileDeviceActivityId_ = tostring(customDimensions.mobileDeviceRequestActivityId)
| extend ActivityId_ = tostring(customDimensions.activityId)
| extend WorkExecutionMode_ = tostring(customDimensions.workExecuteMode)) on MobileDeviceId_, MobileDeviceActivityId_, ActivityId_
| extend NextPageRequest_duration = timestamp1 - timestamp
| extend MonthOfYear = monthofyear(timestamp)
| extend MonthName = case(
MonthOfYear == 1, "January",
MonthOfYear == 2, "February",
MonthOfYear == 3, "March",
MonthOfYear == 4, "April",
MonthOfYear == 5, "May",
MonthOfYear == 6, "June",
MonthOfYear == 7, "July",
MonthOfYear == 8, "August",
MonthOfYear == 9, "September",
MonthOfYear == 10, "October",
MonthOfYear == 11, "November",
MonthOfYear == 12, "December",
"Unknown Month"
)
| extend DayOfMonth = tostring(dayofmonth(timestamp))
| extend DayOfMonthPadded = substring(strcat("0000", DayOfMonth), strlen(strcat("0000", DayOfMonth))-2, 2)
| extend DayOfWeekNumber = dayofweek(timestamp)
| extend DayOfWeekName = case(
DayOfWeekNumber == totimespan("0.00:00:00"), "Sunday",
DayOfWeekNumber == totimespan("1.00:00:00"), "Monday",
DayOfWeekNumber == totimespan("2.00:00:00"), "Tuesday",
DayOfWeekNumber == totimespan("3.00:00:00"), "Wednesday",
DayOfWeekNumber == totimespan("4.00:00:00"), "Thursday",
DayOfWeekNumber == totimespan("5.00:00:00"), "Friday",
DayOfWeekNumber == totimespan("6.00:00:00"), "Saturday",
"Unknown Day"
)
| extend HourOfDay = strcat(DayOfMonthPadded, "-", tostring(hourofday(timestamp)))
| summarize
CountNextPageRequests = count(),
AvgDuration = avg(NextPageRequest_duration / time(1ms)),
PT01 = percentile(NextPageRequest_duration / time(1ms), 1),
PT05 = percentile(NextPageRequest_duration / time(1ms), 5),
PT10 = percentile(NextPageRequest_duration / time(1ms), 10),
PT15 = percentile(NextPageRequest_duration / time(1ms), 15),
PT75 = percentile(NextPageRequest_duration / time(1ms), 75),
PT90 = percentile(NextPageRequest_duration / time(1ms), 90),
PT95 = percentile(NextPageRequest_duration / time(1ms), 95),
PT99 = percentile(NextPageRequest_duration / time(1ms), 99)
by name, WorkExecutionMode_, MonthName, DayOfWeekName, HourOfDay
| order by CountNextPageRequests desc
This query provides a detailed summary of "warehouse mobile device page request duration summarized by work execution mode through time." By leveraging such queries, you can delve into the intricacies of your operations, gaining valuable insights that serve as a foundation for strategic decision-making.
{update 09-jan-2024: adding percentiles in the result set as well as request counts to be able to prioritize the issues if any.}
领英推荐
Taking the Leap: Monitoring and Optimizing Warehouse Workload
Armed with these insights, businesses can take a proactive approach to monitor and optimize their warehouse workload effectively. The Warehouse Monitoring and Telemetry data becomes a powerful tool, offering real-time visibility into operational nuances and paving the way for continuous improvement.
Conclusion
In the competitive landscape of modern business, staying ahead requires not just utilizing cutting-edge solutions like Microsoft Dynamics 365 but also harnessing the full potential of its features. By embracing Monitoring and Telemetry, businesses can propel themselves toward operational excellence, making informed decisions and adapting to the ever-evolving industry landscape.
I hope this sample query serves as a valuable starting point for your journey into optimizing warehouse operations. Feel free to explore further and tailor these insights to your unique business needs. Together, let's unlock the full potential of Dynamics 365 for a more efficient and streamlined future.
References
#MicrosoftDynamics #WarehouseOptimization #MonitoringAndTelemetry #OperationalExcellence #BusinessIntelligence #d365fo
Senior support engineer at HSO International
1 年I remember vividly the weekly Warehouse performance summaries I sent you with similar information for one of your customers back in my MS support days. Glad partners and customers have access to this now directly and glad you are sharing this great example.