Microsoft Dynamics AX 2012 Connector
Select
Latest version: 1.2.0
Anypoint Connector for Microsoft Dynamics AX 2012 (Microsoft Dynamics AX 2012 Connector) enables Mule applications to interact with the Microsoft Dynamics AX Query Service. Microsoft Dynamics AX is an enterprise resource planning (ERP) application.
Release Notes: Microsoft Dynamics AX 2012 Connector Release Notes
Samples: dynamics-ax-2012-samples.zip
Microsoft Dynamics AX 2012 Connector supports these operations:
Operation | Description |
---|---|
Query table |
Run a query against an Application Object Tree (AOT) Table. For more information, see the Microsoft AOT table site. |
Static query |
Run an AOT static query. |
Document Service |
Call an AIF Document Service. |
Before You Begin
The following prerequisites must be satisfied before running the Dynamics AX connector:
-
Install the Windows Gateway Services. Just go through the wizard by clicking the Install button if you plan to use this connector alone, otherwise take a look at its reference documentation for settings that apply to other connectors as well.
Windows Gateway Services for Anypoint Platform
The Windows Gateway Services perform protocol translation when calling the Dynamics AX System Services. The Dynamics AX System Services (Metadata Service, Query Service) use the net.tcp
protocol which is not implemented in Java.
To execute requests, the connector routes the requests through the Windows Gateway Services as follows:
-
The connector sends an HTTP request to the Windows Gateway Services.
-
The Windows Gateway Services receives the HTTP request.
-
The Windows Gateway Services executes the request against the Dynamics AX System Services using the
net.tcp
protocol. -
The Windows Gateway Services receives the response from the Dynamics AX System Services.
-
The Windows Gateway Services sends the response to the connector over HTTP.
-
The connector receives the response.
All communication between the Anypoint Platform and Windows Gateway Services is authenticated and secured by SSL.
Installation
To install the Microsoft Dynamics AX 2012 Connector in Anypoint Studio:
-
Under the Help menu in Anypoint Studio, click Install New Software.
-
From Work with drop down, click
Anypoint Connectors Update Site
. -
Expand the Select category and click the checkbox for Microsoft Dynamics AX 2012 Connector. Click Next.
-
Review the details of the item you selected, and click Next.
-
Select I accept the terms of the license agreement and click Finish.
-
Click Restart Now to complete the installation.
-
After Studio restarts, expand the Connectors palette group to see your recently added Microsoft Dynamics AX 2012 Connector.
Getting Started
Step 1: Create a New Mule Project
Open Anypoint Studio and create a new project:
-
From the menu, select File > New > Mule Project.
-
In the New Mule Project window, enter ax-demo as the Project Name.
-
Click Finish.
Step 2: Create and Configure a New Microsoft Dynamics AX Global Element
Configure the connector’s connection:
-
Click the Global Elements tab.
-
Click Create to bring up Global Type dialog box.
-
In the Search text box, enter ax.
-
Select Microsoft Dynamics AX: Gateway Connection and click OK.
-
Fill in the required parameters:
Parameter Description Username
The username to connect to Dynamics AX.
Password
The password to connect to Dynamics AX.
AOS Server Name
The name or IP of the server on which the Application Object Server is running.
AOS Services WSDL Port
(v 1.1.0 and newer) The port number that the WSDL Services runs on. The default port number is
8101
.Gateway Router Service Uri
The address (host and port) of the Windows Gateway Services. This address is usually similar to
https://[server_with_windows_gateway_services].com:9333/router
(refer to [Prerequisites]) if you haven’t changed the Windows Gateway Services routing service configuration, otherwise use the port you have chosen.AOS Services Endpoint Port (Optional)
(v 1.1.0 and newer) Use this configuration to override the service endpoint that is specified in the Services' WSDL document.
Connection timeout (Optional)
Use this setting to configure the timeout to use while establishing a connection with the Windows Gateway Services. If you want to configure an infinite timeout then set it to zero (value is in milliseconds).
Reception timeout (Optional)
Use this setting to configure the timeout to use when sending/receiving data through the Windows Gateway Services. If you want to configure an infinite timeout then set it to zero (value is in milliseconds).
-
Click Test Connection to make sure the connection works correctly.
-
Once the connection is successful, click OK.
Step 3: Create a Flow to Query Dynamics AX
Creating a Mule flow to query the "ProjTable".
To create the Mule flow, follow these steps:
-
Click the Message Flow tab.
-
Search for http and drag an HTTP connector onto the canvas. This creates a new flow.
-
Search for ax and drag the Microsoft Dynamics AX 2012 connector next to the HTTP connector, in the Process area.
-
Search for json and drag an Object to JSON transformer next to Microsoft Dynamics AX 2012.
-
Double-click the HTTP connector. Click the plus sign (+) beside the Connector Configuration list.
-
In the HTTP Listener Configuration window, make sure Protocol is set to HTTP, Host is set to All Interfaces [0.0.0.0] (Default) and Port is set to 8081. Click OK.
-
Under Basic Settings, set the Path to /query.
-
Double-click Microsoft Dynamics AX 2012 and update the following configuration values:
-
From the Connector Configuration list, select the Microsoft Dynamics AX 2012 Connector configuration that was previously created.
-
From the Operation list, select Query table.
-
From the Language list, click DataSense Query Language.
-
Click Query Builder…
-
From the list of Types, select ProjTable.
-
From the list of Fields, select ProjId and ProjGroupId.
-
From Order By list, select ProjId.
-
From Direction list, select DESCENDING.
-
-
Click OK.
Step 4: Running the Flow
-
In Package Explorer, right click demo-ax and select Run As > Mule Application.
-
Check the console to see when the application starts. You should see the following message if no errors occurred:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Started app 'ax-demo' + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ [main] org.mule.module.launcher.DeploymentDirectoryWatcher: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Mule is up and kicking (every 5000ms) + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ [main] org.mule.module.launcher.StartupSummaryDeploymentListener: ********************************************************************** * - - + DOMAIN + - - * - - + STATUS + - - * ********************************************************************** * default * DEPLOYED * ********************************************************************** ************************************************************************************* * - - + APPLICATION + - - * - - + DOMAIN + - - * - - + STATUS * ************************************************************************************* * ax-demo * default * DEPLOYED * *************************************************************************************
-
Open an Internet browser and visit http://localhost:8081/query
-
The list of accounts ordered by descending name should be returned in JSON format (results vary according to your AX instance).
[{"ProjId":"DAT-000009","ProjGroupId":"Group-2"},{"ProjId":"DAT-000008","ProjGroupId":"Group-1"},{"ProjId":"DAT-000007","ProjGroupId":"Group-0"}]
Use Case Example
Starting the Demo
-
Import the project folder in Studio.
-
Update the Microsoft Dynamics AX connection parameters in
/src/main/app/mule-app.properties
. -
Click Test Connection to make sure the connection works correctly.
-
Run the application.
Running the Demo
The demo includes the following operations:
-
Query all projects from ProjTable table:
http://localhost:8081/projects
-
List all projects (static query ProjListProjectTable):
http://localhost:8081/list-projects
-
Get project by ProjId (static query ProjListProjectTable):
http://localhost:8081/list-projects?ProjId={projid}
Datasense
When inbound/outbound ports are not configured over the net.tcp adapter their metadata is not retrieved and, in consequence, they are not shown through Datasense. In addition, net.tcp services that are not deployed within the AOS are not shown either.
Operations
Query Table
Run a query on an AOT table.
Static Query
Run an AOT static query.
Static Query Input
The following table details the operation’s input parameters.
Parameter | Description |
---|---|
staticQueryName |
The name of the static query to execute. |
fetchSize |
The size of the page for paging the results. |
Message Payload |
For static queries that accept input parameters, a |
Document Service
Call an AIF Document Service.
Document Service Input
The following table details the operation’s input parameters.
Parameter | Description |
---|---|
serviceAndSoapActionUri |
The Document Service name and the SOAP action URI, concatenated in the format: |
Message Payload |
The XML document that is sent to the operation. |
Troubleshooting
In case of errors while executing AX operations through the connector, there are a number of steps that you can follow depending on the nature of the issue.
Timeouts
If you receive a timeout while executing any operation using the connector, then you should properly set the Connection timeout
& Reception timeout
parameters described at the connector’s settings table shown above (Step 2: Create and Configure a New Microsoft Dynamics AX Global Element). In addition to the connector’s timeout settings, there are timeouts that you should check/set at the Windows Gateway Services (who is the responsible of routing your requests to the AX server). For more information please refer to the Windows Gateway Services reference documentation.
Other issues
For other issues it is recommended to see the troubleshooting section at the Windows Gateway Services reference documentation. There are message size related settings (AX configuration) that you can increase if you suspect the issue might be related with the response’s payload of the operation you are executing. In addition, within that section, there are many helpful tips on tracing/debugging that could give you insights on what could be causing the problem.