This application uses pre-packaged tools to intelligently connect with Microsoft Dynamics CRM. Based on a simple use case, the application takes a CSV file of contacts and uploads the contact information to an active Dynamics CRM user account. It uses the Anypoint DataWeave Transformer to map and transform data, thereby facilitating quick integration with this Software-as-a-Service (SaaS) provider.
At times, you might find that you need to connect one or more of your organization's on-premises systems with a SaaS such as Microsoft Dynamics. Ideally, these independent systems would talk to each other and share data to enable automation of end-to-end business processes. Use Mule applications to facilitate communication between your on-prem system(s) and Microsoft Dynamics. (Though this use case does not extend as far, you can also use Mule to facilitate communication between SaaS providers).
Note: You need to install Java Cryptography Extensions to be able to connect to MS Dynamics. Please choose a relevant version, according to your Java installation.
This document assumes that you are familiar with Mule and the Anypoint Studio interface. Further, this example assumes that you have a basic understanding of Mule flows, Mule Global Elements, and Anypoint DataWeave.
This document describes the details of the example within the context of Anypoint Studio, Mule's graphical user interface.
Note: Be sure to have the Microsoft Dynamics CRM connector installed in your Anypoint Studio.
The application accepts a CSV file by polling a local folder at frequent intervals that are set with a Scheduler component. The columns of the CSV file contain this contact information: first name, last name, phone number, and email. These columns are mapped to each of the respective fields in a specific Dynamics CRM account and the rows are uploaded.
Complete the following procedure to create and then run this example in your own instance of Anypoint Studio.
Organization Service URLfields to your account-specific values as follows: Username @.onmicrosoft.comPassword Organization Service Url https://.api.crm4.dynamics.com/XRMServices/2011/Organization.svc
1 Set the number of authentication retries, the path to the
contacts.csv working directory, and the scheduler parameters, as in this example:
working.directory 'C:/import-contacts-into-ms-dynamics/src/main/resources/input' authenticationRetries '3' scheduler.frequency '10000' scheduler.startDelay '0'
Note: The URL might differ, depending on your location. Choose an appropriate one from For Microsoft Dynamics CRM Online.
connect-with-ms-dynamicsproject name, and then select Run As > Mule Application. Studio runs the application on the embedded server.
src/main/resourcesfolder to expand it, and then find the
contacts.csvfile inside this folder.
contacts.csvfile into an
inputfolder in the same directory. The application, at the intervals set in the Scheduler component, checks the input folder for new files. On the next check, it recognizes the CSV file and processes it.
In your browser, access your Dynamics account and check your contacts for two new entries:
Stop the Mule application by clicking the red, square terminate button in the Console.
Using a single flow with four elements, this application accepts CSV files that contain contact information, and then uploads the contacts to MS Dynamics.
The application, at the intervals set in the Scheduler component, checks the input folder for new files. When it spots a new file, it reads the file and passes the content to the Anypoint DataWeave transformer. This transformer not only converts the format of the data from CSV to a collection, but it automatically maps the input fields from the CSV file to output fields that MS Dynamics uses in a collection. When it has converted all the contacts in the file to a collection of MS Dynamics-friendly data, the application uses a MS Dynamics Connector to push data into your MS Dynamics account. The connector's configuration specifies exactly how the data is uploaded to MS Dynamics; in this case, it specifies to create new contacts.