It has been six years since the SysOperation framework was made available for development in Dynamics AX 2012.  The SysOperation framework replaced the RunBase Framework.  It promised to run faster by limiting which code runs on each tier of the system and limiting the network communication which became common with RunBaseBatch.  If you are curious, a good example of the SysOperation framwork can be found in the  /Inventory management/Periodic/Cleanup/Warehouse management on-hand entries cleanup code, which demonstrates parameters, queries, progress bars, and error handling.

Let’s check in as to the adoption of that new framework within the Microsoft code that ships with Dynamics 365 for Finance and Operations.  To answer these questions I went into a 7.3 PU 15 virtual machine and checked references on the base classes that would be extended by an implementation of either framework.  I did several searches for which framework was used.

Dyn365FO DataContractAttribute References

  • 1,272 instances of DataContracts (SysOperation framework)
  • 688 instances of classes extending RunBaseBatch
  • 2,614 instances of classes extending RunBase

72% of the classes are using the RunBase Framework instead of the SysOperation framework.  We have made progress towards using the new framework, and there is still quite a bit of refactoring work left.  So we come to the conclusion that this implementation has gone the way of IPv6, where we made the existing IPv4 work with adaptations (i.e. NAT and reverse proxies) instead of jumping to the latest standard.

Have you been using SysOperation or RunBase?  Comment below!

More Reading: Microsoft Dynamics AX 2012 White Paper: Introduction to the SysOperation Framework