CRM 3.0 provided limited support for importing data from external files. We were only allowed to import data of few entities like Account, Contact, Lead etc.
This feature has been greatly enhanced in version 4.0. The import tool now allows to import data into most of the entities. It also allows for Mapping of attribute values especially for Picklist type of attributes.
One of the shortcomings though is that it doesn’t update existing records. It will always create new records from the import file. The work around for this would be to develop your own custom application using CRM SDK.
We found that companies receive Price Lists from their vendors on a regular basis and they were required to import and update the prices in CRM for the Products. Since the Import tool would not work in this scenario we had to develop an import tool.
Using SDK we create/update Price List Items (the entity that stores the prices). Price Lists Items are created as a unique combination of Product/Unit and Price List. A change in either of these 3 attributes will result in a new Price List Item record.
Once we were able to create/update Price List Item, we extended it further to take care of scenarios where the Product itself does not exist in CRM. In this case to import the price we were required to first create the Product in CRM and then create a Price List Item for that product. Note that Product entity has few of its attributes mandatory so you need to take care of this in the External file so that the product can be created successfully.
With a successful implementation of this, we went a step further to generalize this tool so that the tool could be used to import and set the values for any of the attributes of Product or Price List Item. This was not too difficult. The only requirement was that the column name in the external file should match the attribute's schema name in the Product or Price List Item entity. With this requirement satisfied you can now set the values for custom attributes on your product entity.
Any SDK developer with good knowledge of Dynamics CRM can take the above route and validation to develop an Import tool for repetitively importing product price list in CRM. For those who do not want to reinvent the wheel, you can contact us or any other third party developers who must have developed this product already. More information at
Inogic is a hub of like minded professionals who believe in innovativeness and are committed to putting our time and efforts to R & D on Dynamics CRM.We endeavor to share some of our work on this blog by introducing Tips, Tricks and products from our labs.
Wednesday, April 15, 2009
Import Price Lists in Dynamics CRM
Thursday, April 9, 2009
Edit CRM Messages
When you change the entity name the name is reflected on most places. However in the messages and other related functionality of CRM it still reflects the old name so for e.g. even though you have changed the entity name of Lead to Prospect it would still show “Convert Lead…” on the button.
To change such labels and other related messages that CRM displays related to this entity it is important that will also change the Messages section of the entity.
1. Go to Settings => Customization
2. Edit the Lead Entity
3. Choose the Messages navigation option.You will find a list of all messages displayed/used by CRM for this entity.
4. Edit the message as required and save and Publish the entity to see the changes.
Monday, April 6, 2009
Integrating DOTNETNUKE with Self Service Portal for Dynamics CRM
DotNetNuke:
This is a widely used Open source framework available to develop websites without requiring much technical knowledge. Its framework provides for developing custom modules that can integrate seamlessly with the main DNN website. DNN also takes care of security by providing website owners to provide access to different sets of users to different functionalities on the portal.
Self Service Portal:
Any self service portal (in our case Inogic has a product for Self Service portal/Customer Portal) to allow CRM users to allow their customers to register tickets through the Portal and monitor its progress online. These customers use the portal to register incidents that are directly created in CRM and any updates by the company on their case is reflected to them through the portal.
Linking the two:
We need to create a DNN module for our Self Service Portal that can be installed within DNN. DNN uses the concept of User Controls. We needed to convert each of the web forms that we had to user controls.
Once they were converted to User controls you can add these Controls to DNN and associate it with your module. Once the controls have been uploaded, user can use these controls to add on their pages as and where they wish. can include these in your DNN module. These controls can then be used by end users to add on the pages they wish.
The Self Service Portal had its inbuilt security that was integrated with CRM by adding custom attributes to store the login id and password of the customers. This was taken care of in DNN module by using the DNN security. So only users that are registered on the DNN site had access to the Portal. We could well do away with this security check from CRM as DNN already has a robust security architecture.
Advantages of linking:
A customer centric website can be designed using DNN by the users easily while also utilizing the entire features of CRM's customer service portal.
Tuesday, March 17, 2009
How to merge records in Dynamics CRM
For this CRM provides the option to Merge 2 records.
This feature is available only on below entities:
- Account
- Contact
- Lead
Using merge functionality user can merge two records and can deactivate the duplicate record. Below is the screen shot which will show you the button to merge the selected two records.
- User can choose master record which is at the end will remain active and other will get deactivated.
- Also there is an option to directly choose the filled values from two records. If for a field there is value present in both the records then master records value will get selected here. For this user need to checked on check box as shown in below screen shot.
Thursday, March 12, 2009
New Plugin Messages made available by Microsoft in Dynamics CRM 4.0
While registering this event, no primary entity name is required.
Input parameter: fetchxml - The fetchXML query sent.
Output parameter: fetchxmlresult - The resultant records of the fetchXML query
Retrieve: The event is available for each of the entities like account, contact, custom entities etc. When user opens CRM record (CRM form) this event is fired
Input parameter: columnset - the attributes requested in the Retrieve Message
Output parameter: businessentity - The resultant business entity found.
Retrieve Multiple: The event will fire when user goes to associated view of Contacts or Custom entities that do not use the Rollup message. So it works for all associated views that does not provide the “Related Regarding Records” option.
Input parameter: query - Query passed to the Retrieve Multiple message
Output parameter: businessentitycollection - The resultset business entity collection.
Rollup message can be used for associated views that provide the option of displaying related records. However the Plugin registration tool does not provide for registering on the Rollup message. So that is something we still need to find out how it works.
Route: Route event gets fired when any of below entity instance moves from one queue to another.
Appointment
CampaignActivity
CampaignResponse
Fax
Incident
Letter
PhoneCall
ServiceAppointment
Task
For email entity new events introduced are,
Assign, BackgroundSend, CheckIncoming, CheckPromote, Create, Delete, DeliverIncoming, DeliverPromote, DetachFromQueue, GrantAccess, Handle, ModifyAccess, Retrieve, RetrieveMultiple, RetrievePrincipalAccess, RetrieveSharedPrincipalsAndAccess, RevokeAccess, Route, Send, SendFromTemplate, SetState, SetStateDynamicEntity, Update
So with Dynamics CRM 4.0 Microsoft has given greater control to the developers to trap appropriate messages and perform custom actions.