<dependency>
<groupId>com.mulesoft.connectors</groupId>
<artifactId>mule-microsoft-dynamics-gp-connector</artifactId>
<version>RELEASE</version>
<classifier>mule-plugin</classifier>
</dependency>
Microsoft Dynamics GP Connector - Mule 4
Support Category: Select
Microsoft Dynamics GP Connector v2.1
Anypoint Connector for Microsoft Dynamics GP enables Mule applications to interact with the Microsoft Dynamics Great Plains (GP) Web Services.
Release Notes: Microsoft Dynamics GP Connector Release Notes
Exchange: Microsoft Dynamics GP Connector
Prerequisites
To use this information, you should be familiar with Microsoft Dynamics GP, Mule runtime engine (Mule), Anypoint Connectors, Anypoint Studio, Mule concepts, elements in a Mule flow, and Global Elements.
To use this connector, you need:
-
Microsoft Dynamics GP instance.
-
Valid credentials for a Kerberos connection.
-
MuleSoft Enterprise License.
POM File Information
Mule converts RELEASE to the latest version. To specify a version, view Microsoft Dynamics GP Connector in Anypoint Exchange and click Dependency Snippets.
Connect in Design Center
-
In Design Center, click a trigger such as an HTTP Listener or Scheduler.
-
To create an HTTP global element for the connector, set the path where your Mule application listens:
-
Click Edit and set these fields:
Field Description Protocol
Protocol selected for the HTTP endpoint, it can be HTTP or HTTPS (secure).
Host
IP address where your Mule application listens for requests.
Port
Port address where your Mule application listens for requests.
Base Path
An optional base path, the Mule application listens to the base path + path.
-
Select the plus sign next to the trigger to add a component.
-
Select the connector as a component.
-
Select the operation:
-
Configure the global element for the connector:
Field Description Username
https://msdn.microsoft.com/en-us/library/windows/desktop/aa380525(v=vs.85).aspx
- User Principal Name of the Dynamics GP user to authenticate.Password
The password for the user to connect to Dynamics GP.
Endpoint URL
Base URL where the SOAP services are exposed in this format:
http://<Server>:<WebServicePort>/Dynamics/GPService/GPService
.SPN
The service principal name that identifies the service instance.
Login Conf. Location
Path to the Kerberos login module.
Krb5 Conf. Location
Path to the Kerberos configuration file.
Sample Kerberos configuration file:
[libdefaults]
default_realm = MYREALM.COM
[realms]
MYREALM.COM = {
kdc = mydomaincontroller.myrealm.com
default_domain = MYREALM.COM
}
[domain_realm]
.myrealm.com = MYREALM.COM
myrealm.com = MYREALM.COM
Note: The realm and default_domain are case-sensitive and must be specified exactly as defined in the Active Directory. Receiving an error during Test Connection stating “Message stream modified (41)” is an indication that the domain name is not correctly formed.
More information on how to create the Kerberos configuration file can be found in the MIT Kerberos documentation on krb5.conf.
The Kerberos login module (Krb5LoginModule) can be tuned with scenario-specific configurations by defining a JAAS login configuration file. Following is a sample of the JAAS login configuration file for the Kerberos login module:
Kerberos {
com.sun.security.auth.module.Krb5LoginModule required
debug=true
refreshKrb5Config=true;
};
More information on how to create the JAAS login configuration file for the Kerberos login module can be found in the Class Krb5LoginModule Java documentation.
Add the Connector to a Studio Project
Anypoint Studio provides two ways to add the connector to your Studio project: from the Exchange button in the Studio taskbar or from the Mule Palette view.
Add the Connector Using Exchange
-
In Studio, create a Mule project.
-
Click the Exchange icon (X) in the upper-left of the Studio task bar.
-
In Exchange, click Login and supply your Anypoint Platform username and password.
-
In Exchange, search for "gp".
-
Select the connector and click Add to project.
-
Follow the prompts to install the connector.
Use Case: Studio
Create Customer

-
From the Mule Palette drag an HTTP Listener element to the canvas and use the default configuration but with the path set to /createCustomer.
-
Drag a Transform Message element next to the HTTP Listener and add:
%dw 2.0 output application/xml ns ns0 http://schemas.microsoft.com/dynamics/gp/2010/01 ns ns01 http://schemas.datacontract.org/2004/07/Microsoft.Dynamics.Common ns ns02 http://schemas.datacontract.org/2004/07/Microsoft.Dynamics.GP ns xsi http://www.w3.org/2001/XMLSchema-instance --- { ns0#CreateCustomer: { ns0#customer: { ns02#Key: { ns02#Id: attributes.queryParams.customerKeyID }, ns02#Name: attributes.queryParams.customerName }, ns0#context: { ns01#OrganizationKey @(xsi#"type": "ns01:CompanyKey") : { ns01#Id: attributes.queryParams.companyKeyID } } } }
-
Drag a Microsoft Dynamics GP connector next to the Transform Message.
-
Set its configuration and fill in the required fields, this applies to any other Dynamics GP connectors that are dragged into the flows.
-
Select the operation Create Entity. Pick the Customer entity from the drop-down list. Leave the Input Reference as it is.
-
Drag a Set Payload element next to the Connector and set its value to
Success
.
Get Customer

-
From the Mule Palette, drag an HTTP Listener element to the canvas and use the default configuration but with the path set to /getCustomer.
-
Drag a Transform Message element next to the HTTP Listener and add:
%dw 2.0 output application/xml ns ns0 http://schemas.microsoft.com/dynamics/gp/2010/01 ns ns01 http://schemas.datacontract.org/2004/07/Microsoft.Dynamics.GP ns ns02 http://schemas.datacontract.org/2004/07/Microsoft.Dynamics.Common ns xsi http://www.w3.org/2001/XMLSchema-instance --- { ns0#GetCustomerByKey: { ns0#key: { ns01#Id: attributes.queryParams.customerKeyID }, ns0#context: { ns02#OrganizationKey @(xsi#"type": "ns02:CompanyKey") : { ns02#Id: attributes.queryParams.companyKeyID } } } }
-
Drag a Microsoft Dynamics GP connector next to the Transform Message.
-
Select the operation Get Entity By Key. Pick the Customer entity from the drop-down list. Leave the Input Reference as it is.
-
Drag a Transform Message next to the connector and add:
%dw 2.0 output application/json --- payload
Update Customer

-
From the Mule Palette, drag an HTTP Listener element to the canvas and use the default configuration but with the path set to /updateCustomer.
-
Drag a Transform Message element next to the HTTP Listener and add:
%dw 2.0 output application/xml ns ns0 http://schemas.microsoft.com/dynamics/gp/2010/01 ns ns01 http://schemas.datacontract.org/2004/07/Microsoft.Dynamics.Common ns ns02 http://schemas.datacontract.org/2004/07/Microsoft.Dynamics.GP ns xsi http://www.w3.org/2001/XMLSchema-instance --- { ns0#GetCustomerByKey: { ns0#key: { ns02#Id: attributes.queryParams.keyId }, ns0#context: { ns01#OrganizationKey @(xsi#"type": "ns01:CompanyKey") : { ns01#Id: attributes.queryParams.companyKeyID } } } }
-
Create a variable called 'updatedComment' on this Transform Message with this value:
%dw 2.0 output application/java --- { comment1: payload.customer.comment1 }
-
Drag a Microsoft Dynamics GP connector next to the Transform Message.
-
Select the Get Entity By Key operation. Pick the Customer entity from the drop-down list. Leave the Input Reference as it is.
-
Drag a Transform Message element next to the Connector and add:
%dw 2.0 output application/java --- %dw 2.0 output application/xml ns ns0 http://schemas.microsoft.com/dynamics/gp/2010/01 ns ns01 http://schemas.datacontract.org/2004/07/Microsoft.Dynamics.Common ns ns02 http://schemas.datacontract.org/2004/07/Microsoft.Dynamics.GP ns xsi http://www.w3.org/2001/XMLSchema-instance --- { ns0#UpdateCustomer: { ns0#customer: { ns02#Comment1: vars.comment1, ns02#Key: { ns02#Id: payload.key.id }, ns02#Name: payload.name }, ns0#context: { ns01#OrganizationKey @(xsi#"type": "ns01:CompanyKey") : { ns01#Id: attributes.queryParams.companyKeyID } } } }
-
Drag a Microsoft Dynamics GP connector next to the Transform Message.
-
Select the Update Entity operation. Pick the Customer entity from the drop-down list. Leave the Input Reference as it is.
-
Drag a Set Payload element next to the connector and set its value to
Success
.
Delete Customer

-
From the Mule Palette, drag an HTTP Listener element to the canvas and use the default configuration but with the path set to /deleteCustomer.
-
Drag a Transform Message element next to the HTTP Listener and add:
%dw 2.0 output application/xml ns ns0 http://schemas.microsoft.com/dynamics/gp/2010/01 ns ns01 http://schemas.datacontract.org/2004/07/Microsoft.Dynamics.GP ns ns02 http://schemas.datacontract.org/2004/07/Microsoft.Dynamics.Common ns xsi http://www.w3.org/2001/XMLSchema-instance --- { ns0#DeleteCustomer: { ns0#key: { ns01#Id: attributes.queryParams.customerKeyID }, ns0#context: { ns02#OrganizationKey @(xsi#"type": "ns02:CompanyKey") : { ns02#Id: attributes.queryParams.companyKeyID } } } }
-
Drag a Microsoft Dynamics GP connector next to the Transform Message.
-
Select the Delete Entity. Pick the Customer entity from the drop-down list. Leave the Input Reference as it is.
-
Drag a Set Payload element next to the connector and set its value to
Success
.
Get Customer List

-
From the Mule Palette, drag an HTTP Listener element to the canvas and use the default configuration but with the path set to /getCustomerList.
-
Drag a Transform Message element next to the HTTP Listener and add:
%dw 2.0 output application/xml ns ns0 http://schemas.microsoft.com/dynamics/gp/2010/01 ns ns01 http://schemas.datacontract.org/2004/07/Microsoft.Dynamics.Common ns ns02 http://schemas.datacontract.org/2004/07/Microsoft.Dynamics.GP ns xsi http://www.w3.org/2001/XMLSchema-instance --- { ns0#GetCustomerList: { ns0#criteria: { ns02#Name: { ns01#Like: attributes.queryParams.like } }, ns0#context: { ns01#OrganizationKey @(xsi#"type": "ns01:CompanyKey") : { ns01#Id: attributes.queryParams.companyKeyID } } } }
-
Drag a Microsoft Dynamics GP connector next to the Transform Message.
-
Select the Get Entity List. Pick the Customer entity from the drop-down list. Leave the Input Reference as it is.
-
Drag a Transform Message next to the connector and add:
%dw 2.0 output application/json --- payload