At Your Service: Microsoft Dynamics AX2012 Integration and Web Services

Standards-based web services are undoubtedly the programming model with the widest possible reach across platform boundaries. In Microsoft Dynamics AX 2012, we have greatly emphasized the role of services, both in integration with other line-of-business applications and as a programming model to expose the rich functionality of the application. We believe these enhancements will benefit our customers by significantly reducing the time it takes to develop custom applications and by enabling the enterprise resource planning (ERP) system to reach the entire organization.

In enterprise IT scenarios, web services are typically thought of as a means of integration between line-of-business applications. Although integration is an indispensible part of any nontrivial ERP implementation, in Microsoft Dynamics AX 2012, we have elevated services to a first-class programming model, which not only streamlines integration but also facilitates customization by exposing functionality across the entire application. We achieved this by introducing a new services architecture, built on Windows Communication Foundation (WCF), and by making some major rationalization and simplification changes to the application integration framework (AIF) features.

The Services Architecture

One of our goals in development of Microsoft Dynamics AX 2012 was to clean up and simplify the application architecture. In particular, in this version, we’ve drawn clean lines between the services as a programming model and integration-specific features. We’ve added many more prebuilt services that come ready out-of-the-box. In addition, we created a better tooling/development environment to enable developers to build new or custom services that expose specific functionality that may not be covered by the out-of-box services.

Our customers tell us that no matter how rich the features are when we ship with the product, there will always be a need for functionality that is unique to a particular business or process. We acknowledge this need for customization with what we call “no code servicization” features, which essentially let a developer turn any existing X++ class into data contracts and service contracts by using simple declarative attributes. Support for attribute-based services contracts ensures that developers won’t have to start from scratch when building services or customizing the product to expose specific functionality. Our goal was to increase the surface area of the product functionality that is accessible via services and to empower and enable partners and developers to do so easily by themselves.

Simplified Integration

The second major area where we directed our energies is in simplifying the configuration and management of integration solutions built on the AIF in Microsoft Dynamics AX. Development, deployment, configuration, and maintenance of integrations between Microsoft Dynamics AX and external systems can be a challenging undertaking. Each integration is typically custom-tailored to the specific instance, and the degree of complexity of each might range from very simple to extremely complex. Based on feedback from our customers and partners, we sought to simplify the integration processes, reducing the number of concepts and steps required to set up the most common integration scenarios.

Simpler Concepts

We reduced and simplified the concepts by adhering to three key principles:

  1. Where applicable, retire proprietary concepts and replace them with standard concepts widely adopted in the industry and supported by standards bodies. This reduces the occurrence of proprietary concepts in Microsoft Dynamics AX that conflict with well-known standardized concepts with similar names in other products, such as Microsoft BizTalk Server and Windows Communication Foundation.
  2. Organize the user experience for configuration and management to follow the principle of “progressive disclosure,” where additional concepts are exposed only on an as-needed basis. This reduces the number of top-level concepts and eliminates concepts with no clear starting points or course of action for creating and configuring integration solutions.
  3. Optimize the user experience around the majority of configuration scenarios, which don’t require extremely fine granularity of control. This enabled us to eliminate tedious repetition from many configuration tasks, which, from our experience, had been both complex and error-prone.

 

Better Tools

Microsoft Dynamics AX 2012 also provides built-in features for supporting integrations involving request and data formats other than XML, without requiring the use of middleware servers to broker connections between systems. For example, to perform simple transforms between the standards-based SWIFT bank format and Microsoft Dynamics AX XML formats for electronic-banking scenarios, the integration ports in AIF allow for plugging in custom transform components that help realize the solution seamlessly.

The AIF stack now also supports flexible logging and tracking of requests and responses and flexible error-handling behavior, which administrators can control through configuration to continue, halt, or roll back when errors occur during bulk request message-handling processes. And, we’ve removed the crippling 10 MB file size limitation! These powerful new features let you implement key integration scenarios with less effort.

Using Industry Standards

We’ve also sought to adhere to industry standards wherever applicable in the services architecture. All shipping services are built on Microsoft .NET Framework 4.0 and Windows Communication Foundation (WCF), which will simplify development of applications for Microsoft Dynamics AX and open the platform to interaction with other platforms such as Java-based applications or Windows Phone applications, paving the way to mobile and remote scenarios.

webservices api

Caption: In Microsoft Dynamics AX 2012, inbound ports provide a logical grouping of services, which model specific integration points between the ERP solution and an external system.