Using Anypoint Studio to Configure Microsoft Dynamics 365 Connector 2.6 | MuleSoft Documentation
# Using Anypoint Studio to Configure Microsoft Dynamics 365 Connector 2.6
Anypoint Studio (Studio) editors help you design and update your Mule applications, properties, and configuration files.
To add and configure a connector in Studio:
  1. Create a Mule project.
  2. Add the connector to your Mule project.
  3. Configure a source for the connector’s flow.
  4. Add a connector operation to the flow.
  5. Configure a global element for the connector.


When you run the connector, you can view the app log to check for problems, as described in View the App Log.
If you are new to configuring connectors in Studio, see Using Anypoint Studio to Configure a Connector. If, after reading this topic, you need additional information about the connector fields, see the Microsoft Dynamics Reference.
## Create a Mule Project
In Studio, create a new Mule project in which to add and configure the connector:
  1. In Studio, select **File > New > Mule Project**.
  2. Enter a name for your Mule project and click **Finish**.


## Add the Connector to Your Mule Project
Add Microsoft Dynamics 365 Connector to your Mule project to automatically populate the XML code with the connector’s namespace and schema location and to add the required dependencies to the project’s `pom.xml` file:
  1. In the **Mule Palette** view, click **(X) Search in Exchange**.
  2. In the **Add Dependencies to Project** window, type `dynamics 365` in the search field.
  3. Click **Microsoft Dynamics 365** in **Available modules**.
  4. Click **Add**.
  5. Click **Finish**.


Adding a connector to a Mule project in Studio does not make that connector available to other projects in your Studio workspace.
## Configure a Source
A source initiates a flow when a specified condition is met. You can configure one of these sources to use with Microsoft Dynamics 365 Connector:
  * **On new object** starts your app when an object is created
  * **On modified object** Starts your app when an object is modified
  * **On deleted object** Starts your app when an object is deleted
  * **HTTP > Listener** Initiates a flow each time it receives a request on the configured host and port
  * **Scheduler** Initiates a flow when a time-based condition is met


For example, to configure an **On New Object** source, follow these steps:
  1. In the **Mule Palette** view, select **Dynamics 365 > On new object**.
  2. Drag **On new object** to the Studio canvas.
  3. On the **On new object** **General** configuration screen, optionally change the value of the **Display Name** field.
  4. Specify a value for the **Entity type** field, for example `account`. The entity type string describes business data that is defined in the Microsoft Dynamics 365 instance.
  5. Click the plus sign (+) next to the **Connector configuration** field to configure a global element that can be used by all instances of the **On new object** source in the app.
  6. On the **General** tab, specify the connection information for the connector.
  7. On the **TLS** tab, optionally specify the TLS information for the connector.
  8. On the **Advanced** tab, optionally specify reconnection information, including a reconnection strategy.
  9. Click **Test Connection** to confirm that Mule can connect with the specified server.
  10. Click **OK**.


## Add a Connector Operation to the Flow
When you add a connector operation to your flow, you immediately define a specific operation for that connector to perform.
To add an operation for Microsoft Dynamics 365 Connector, follow these steps:
  1. In the **Mule Palette** view, select **Dynamics 365** and then select the desired operation.
  2. Drag the operation onto the Studio canvas and to the right of the input source.


## Configure a Global Element for the Connector
When you configure a connector, it’s best to configure a global element that all instances of that connector in the app can use. Configuring a global element requires you to provide the authentication credentials that the connector requires to access the target Microsoft Dynamics 365 system. Microsoft Dynamics 365 Connector supports the OAuth connection, OAuth client credentials, and OAuth username and password authentication types.
To configure the global element for Microsoft Dynamics 365 Connector, follow these steps:
  1. Select the operation in the Studio canvas.
  2. In the configuration screen for the operation, click the plus sign (+) next to the **Connector configuration** field to access the global element configuration fields.
  3. On the **General** tab, in **Connection** , select the authentication method to configure:
     * Connection (OAuth 2.0 authentication)
     * OAuth 2.0 client credentials authentication
     * OAuth 2.0 username and password authentication
  4. On the **Advanced** tab, optionally specify reconnection information, including a reconnection strategy.
  5. Click **Test Connection** to confirm that Mule can connect with the specified server.
  6. Click **OK**.


### OAuth 2.0 Authentication
Use OAuth 2.0 to delegate user authentication to the service hosting the user account. For more information, refer to Configuring OAuth 2.0 for Connectors or Configuring OAuth 2.0 for Connectors on CloudHub.
OAuth 2.0 delegates user authentication to the service hosting the user account.
To configure OAuth 2.0 authentication:
  1. Enter the following required information on the **General** tab of the **Global Element Properties** screen:
     * **Resource** Resource URL for accessing the Microsoft Dynamics 365 instance
     * **Consumer Key** OAuth consumer key registered with the service provider
     * **Consumer Secret** OAuth consumer secret registered with the service provider
     * **Listener Config** A reference to the listener that catches the access token callback endpoint
     * **Callback Path** The path of the access token callback endpoint
     * **Authorize Path** The path of the local HTTP endpoint that triggers the OAuth dance
The following image shows an example OAuth Connection configuration using property placeholder values:
For the **Authorization url** and **Access token url** , replace the variables `<authorization-url>` and `<access-token>` with your own authorization and access URL tokens.
  2. Call the `/authorize` path by pasting it into a web page.
  3. On the returned web page, perform the authorization steps by providing your credentials, and so on.


After you complete the proper authorization steps, the web page is automatically redirected to the path you configured inside the **Callback Path** field, for example, `/oauth2callback`. This redirect contains additional properties, including an access code for the connector to use.
Once the app is authorized, the connector refreshes the token automatically. However, in the event of a restart, you must call the `/authorize` path again and perform the authorization steps.
### OAuth 2.0 Client Credentials Authentication
With OAuth 2.0 client credentials authentication, clients authenticate themselves by using a client ID and client secret.
To configure OAuth 2.0 client credentials authentication, enter the following required information on the **General** tab of the **Global Element Properties** screen:
  * **Endpoint**
Location where to send the requests
  * **Client id**
The OAuth client ID, as registered with the service provider
  * **Client secret**
The OAuth client secret, as registered with the service provider


The following image shows an example OAuth client credentials configuration using property placeholder values:
### OAuth 2.0 Username and Password Authentication
With OAuth 2.0 username and password authentication, the app makes a POST request that includes a username and password. If the credentials are valid, the server returns an access token.
To configure OAuth 2.0 username and password authentication, enter the following information on the **General** tab of the **Global Element Properties** screen:
  * **Username** User name used to initialize the session.
  * **Password** Password used to authenticate against the proxy
  * **Resource** Application ID URI of the web API’s secured resource
  * **Client ID** Application ID assigned to your app when you registered it with Azure AD. You can find this in the Azure Portal:
    1. Go to the Azure portal.
    2. Click **Active Directory** , and select the directory.
    3. Click the application, and then click **Configure**.
  * **Client Secret** App secret that you created in the app registration portal for your app
The app secret should not be used in a native app, because client secrets cannot be reliably stored on devices. It is required for web apps and web APIs, which have the ability to store the client secret securely on the server side.
  * **Token Request Endpoint** URL of the OAuth token request server


The following image shows an example OAuth username and password configuration using property placeholder values:
## Run a Flow
  1. In Package Explorer, right-click your project’s name and click **Run As** > **Mule Application**.
  2. Check the console to see when the application starts. You should see messages such as these if no errors occur:
The following image shows an example OAuth username and password configuration using property placeholder values:
## Run a Flow
  1. In Package Explorer, right-click your project’s name and click **Run As** > **Mule Application**.
  2. Check the console to see when the application starts. You should see messages such as these if no errors occur:


```
************************************************************
INFO 2019-10-14 22:12:42,003 [main] org.mule.module.launcher.DeploymentDirectoryWatcher:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Mule is up and kicking (every 5000ms)          +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
INFO 2019-10-14 22:12:42,006 [main] org.mule.module.launcher.StartupSummaryDeploymentListener:
**********************************************************
* - - + DOMAIN + - -        * - - + STATUS + - - *
**********************************************************
* default              * DEPLOYED      *
**********************************************************
************************************************************************
* - - + APPLICATION + - -  * - - + DOMAIN + - - * - - + STATUS + - - *
************************************************************************
* myapp           * default       * DEPLOYED      *
************************************************************************
```

## View the App Log
To check for problems, you can view the app log as follows:
  * If you’re running the app from Anypoint Platform, the output is visible in the Anypoint Studio console window.
  * If you’re running the app using Mule from the command line, the app log is visible in your OS console.


Unless the log file path is customized in the app’s log file (`log4j2.xml`), you can also view the app log in the default location `MULE_HOME/logs/<app-name>.log`.
## Next Step
After you configure a global element and connection information, see the Examples topic for more configuration information.
## See Also
  * MuleSoft Help Center