A truly extensible warehouse

A truly extensible warehouse

One size never fits all - selecting a warehouse solution that can be modeled to your needs and grow with you for years to come is critical.

Before diving into exactly how extensible the Microsoft Dynamics 365 SCM Warehouse solution is, lets get a few things out of the way. There are many ways to change the behavior of a warehouse management system - they can typically be categorized as:

  • Configuration. Every WMS comes with a healthy set of dials and knobs where you can change and tune the behavior of standard functionality. Microsoft Dynamics 365 Warehouse's configuration options are extraordinary flexible - this is not the focus of this article.
  • Customization. On the other end of the spectrum are customizations. Some systems allow deep code level customizations, where partner and customer developers can rewrite portions of the system. Such customizations quickly become a liability, as each upgrade to the latest version becomes a migration project in itself involving code merging. By design Microsoft Dynamics 365 Warehouse does not support customizations. We value keeping all customers on the latest version higher.
  • Extensions. As the name implies, extensions enable adding new capabilities on top of the standard functionality. To support this the system must provide a healthy set of extension points and guarantee they remain unchanged version after version - making it seamless to upgrade to the latest version. This article is about exactly how extensible Microsoft Dynamics 365 Warehouse is.

Why it matters

The Microsoft Dynamics 365 warehouse solution supports a huge range of warehouse processes out of the box - yet, the holistic solution is designed to fit your business every day for years to come. Our customers typically have one or more specialized processes, that are implemented using some of the many extension points readily available.

We believe no business should select a solution limiting their flexibility, future potential or ability to act in an ever changing business landscape. We also believe business empowered to act with agility to changes will prosper. With these pillars we build the Microsoft Dynamics 365 Warehouse solution, enabling scenarios like:

  1. If the standard 5 product dimensions (Color, Size, Style, Configuration and Version) don't cover your needs - just add your own. Yes, we provide a tutorial, and operate businesses with dimensions such as Design, Brand, Grade, Quality, Thickness, Pattern and Shape - just to name a few.
  2. Do you want to track your items by something else than Serial and Batch numbers - no problem, we operate businesses tracking their items by Sample, Project, Operation, Condition, Equipment, Purpose, Season, Asset and more.
  3. What processes do you prefer in your warehouse? We support more than 60 out of the box and of course you can create your own.

This is only possible in a solution where extensibility is designed in.

The data in this article is from version 10.0.31. In other words, release number 31 since April 2019, where a reset of version numbers signaled a new era for the cloud based solution - we've released about 8 times per year since. Each version is guaranteed to be backwards compatible, enabling every customer to get the full value of their system investments, and getting the latest innovations immediately. To provide business flexibility, we allow customers to skip upgrades to fit their operation schedule. Here in November 2022, every single warehouse customer is on a release from 2022, and 90% are on a release less than 4 months old.

All customers on latest release, always!

While this is crucial for business investments and an impressive accomplishment, the real eye-opener is that this is achieved on a system built on arguably the most extensible platform on the planet - enabling you to have the solution you want, without worrying about being left behind on an old unsupported version. Learn more in The extensibility story.

Extensibility points in Warehouse - let's count!

In the rest of this article, I'll explain by numbers how ridiculously extensible Microsoft Dynamics 365 Warehouse is, to the point where counting extension points stop making sense. Just like you don't buy Lego bricks because of the number of knobs they have. You buy them because of what you can build with them. Still you know the knobs are where the magic lies.

Data model extension points

The data model consists of tables containing fields and field groups, each fields modeled using an extended data type.

Each extended data type has 4 properties extenders can control, including label, help text and string sizes.

Each field has 4 properties extenders can control, including label and help text.

Each field group enable extenders to add their own fields, allowing the fields to surface in the user interface without further ado.

Each table allows extenders to add their own fields, and offers 50 events extenders can subscribe to such as onInserting, onDeleted, onValidateWrite.

User interface extension points

The user interface consists of forms with data sources and controls.

Each form allows extenders to add their own data sources and controls, as well as subscribing to events such as onInitializing and onClosing.

Each data source has 23 events the extender can subscribe to, including onInserting, onDeleted, onValidateWrite.

Each field on the datasources has 3 events extenders can subscribe to such as onModified.

Each control has 8 events extenders can subscribe to such as onFocus and onModified.

Business logic

In X++ every public or protected method is an extension point. Extenders can subscribe to pre and post events, or use the superior wrapping technique offered by chain-of-command.

Further each class can be extended with additional members, including methods and stateful fields.

Summing it all up

After a bit of counting all the publicly available artifacts in the warehouse solution (those prefixed with "WHS"), the follow statistics emerge:

Table with extension count

And is if that is not enough, we do encourage anyone to log extensibility requests, if something is missing. We will fulfill it in the first coming release.

Go create the warehouse you deserve.



THIS POST IS PROVIDED AS-IS; AND CONFERS NO RIGHTS.

Again an interesting blog article to read it! Like the article regarding the extension story. However, you are mentioning that the product and tracking dimensions are extensible so we can add own inventory dimensions if possible. Indeed, it's possible and we are using custom inventory (tracking) dimensions. Only it's a bit of hard to see that the custom inventory dimensions can't be used in some micro services like Planning Optimizer. Hopefully Microsoft will execute some actions to make it possible!

Markus Fogelberg

Product Manager Dynamics 365 Finance & Supply Chain Management at Alfa Laval | Ex Microsoft

2 年

Good post, the possibility to always stay on latest version is a safe way is ground-breaking, even today when we have been on this platform for years already! We don't have a reason to complain on the extensibility offered, only thing in the warehouse area where I would love to see some more investment is on the Process Guide framework, to make it easier for us to build out the mobile processes.

要查看或添加评论,请登录

Michael Pontoppidan的更多文章

  • My favorite 2024 X++ Improvements

    My favorite 2024 X++ Improvements

    Every year brings new improvements to X++ developers, and 2024 is no exception. On behalf of all X++ developers: Thank…

    13 条评论
  • Warehouse Inventory Transactions - what are you waiting for?

    Warehouse Inventory Transactions - what are you waiting for?

    The single largest performance optimization for D365 SCM Warehouse Management during my time in D365 Supply Chain…

    12 条评论
  • WMA protocol improvements

    WMA protocol improvements

    If you like the technical bits of what happens under the hood, then this article is for you. If not; all you need to…

    7 条评论
  • Do you listen to yourself?

    Do you listen to yourself?

    I'm invincible, I can do anything, my body is a perpetual machine, my mind is a fortress. Sounds familiar? To me it…

    3 条评论
  • Extensibility - Fact Check

    Extensibility - Fact Check

    Introduction Recently, I participated in a longer online conversation with a group of skilled Dynamics partners. The…

    12 条评论
  • X++ Exceptions and Transactions

    X++ Exceptions and Transactions

    Have you ever wondered why the heck transaction scopes in X++ are tied to exceptions? Technically they are two…

    5 条评论
  • How do you balance learning wishes and business needs?

    How do you balance learning wishes and business needs?

    I'm preparing for a manager symposium, where I'm to answer a couple of questions as part of a panel discussion on…

    6 条评论
  • Unleash your warehouse telemetry super-powers today!

    Unleash your warehouse telemetry super-powers today!

    Today is the day. Your can now experience the same insight as I recently wrote about in Warehouse Management -…

    13 条评论
  • Warehouse Location Directives in 10.0.31

    Warehouse Location Directives in 10.0.31

    If you don't know what location directives are - just move on in your feed. If on the other hand, you ever configured a…

    24 条评论
  • Warehouse Mobile Resiliency

    Warehouse Mobile Resiliency

    Suppose you operate a Dynamics 365 SCM Warehouse around the clock - 24x7 operations. Items and orders are constantly…

    5 条评论

社区洞察

其他会员也浏览了