This blog post gives tips on passing the MB2-707 certification, the real value of the certification isn’t the certification itself but what you learn to get it.
I created this blog post for the CRM 2013 customization and config certification
It’s a great method to learn the out of the box/inbuilt functionality in Microsoft Dynamics CRM. The first tool a CRM developer should use to deliver request features is out of the box Dynamics CRM functionality. Theoutofthe box functionality works andhasbeenthoroughly testedby Microsoft (mostofthetime).
Out of the box functionality is quicker to create and is easier to maintain.
Study for customization and config certification is a great way to learn new functionality added in the Microsoft Dynamics CRM
Certification gives you a deadline to motivate you to learn
MONEY, a certification is something to take into your yearly review.
Understand the new functionality
I have taken the Microsoft Dynamics CRM customization and config certification for
CRM 4
CRM 2011
CRM 2013
CRM 2015
The exams historically have many questions on the new functionality added in each release. The major new features added into CRM 2015 are
If you work for a company who has PartnerSource I would recommend you use the study material provided by Microsoft which is free for PartnerSource members. I found a link here
Course 80665: Customization and Configuration in Microsoft Dynamics CRM Online and On Premise [eLearning]
The eLearning provided by Microsoft is the best study resource because it’s focused on the customization and config certification.
I created articles, questions and videos I have created for the CRM 2013 customization and configuration certification
Most of the content is still relevant for CRM 2015 – MB2-707 exam, you will need to make notes on the new functionality added into CRM 2015.
Make notes and use Microsoft Dynamics CRM
Don’t just read information for the exam, make notes and use a free CRM trial to try out the new functionality.
This helps you learn how the functionality works. It will help you remember it for the exam.
My trying the functionality you get practical knowledge, not just theoretical
When I study for CRM certifications I make bullet point lists of what the functionality can do. I use the list to revise and create YES/NO questions and multiple choice to help me study.
A different method is to go through the skills measured in the certification criteria and highlight the functionality you need to study. Find blogs, articles and white papers and make notes. I did this but got bored
Access teams are an underused feature in Microsoft Dynamics CRM because the benefits of access teams are not clearly understood by many CRM professionals.
When I have asked fellow CRM professionals about Access teams most had only heard of Access team and none had ever used them.
I learnt about Access teams because it’s on the CRM 2013 customization exam. Study for certifications are a good method to learn new functionality added to Microsoft Dynamics CRM.
The purpose of access teams is a dynamic way to share records with users without using the default sharing functionality in CRM or security roles.
Access teams are enabled on an entity basis. When Access teams are enabled for an entity, a grid will appear on the record. Any user record you add to the grid will have permissions (controlled by a template) to the record.
Access teams are a quick way to share records to an ad hoc team, an example is people working on an opportunity record. Instead of using security roles/teams/business units to give access or sharing the record you can add the users to the access team.
A key fact to remember is Access teams don’t have security roles. Because Access teams don’t have security roles this prohibits them from owning records because they cannot be granted the privilege to own a record.
Team confusion
Confusion understanding the purpose of Access teams is because team functionality exists in CRM, users aren’t clear how Access teams are different.
The table compares Access Teams and Owner Teams.
Access Team
Owner Team
Can own records
No
Yes
Team can be assigned security records
No
Yes
Manually created and managed
No
Yes
Displayed in Team views
No
Yes
Cached by CRM Server when user logs on
No
Yes
Use Team template to define security priviledges
Yes
No
Access teams remind me of field level security (how to setup field level security) because the template specifies a simple security permissions
Access teams share record permissions without the overhead of using the full CRM security model, avoiding the sharing overhead which can occur with a complex security model.
The benefits of access teams
A benefit of studying for the CRM customization certification is learning how Access teams work, it doesn’t teach you how and why you when you should use them
reminds me of this quote
Somemen learn all they knowfrom books; others from life. both kinds are narrow. The first are all theory; the second are all practice.
It’s the fellow who knows enough about practice to test his theories for blow-holes that gives the world a shove a head, and finds a fair margin of profit in shoving it.
George Lorimer, Letters from a Self-Made Merchant to His Son
Two great resources for learning the benefits of Access Teams
Sharing records in CRM can cause the POA table to grow in size. A large POA table can affect the performance of your CRM system. Access teams offer a way to share permissions to records to individuals but using CRM managed access teams
The performance benefit of Access teams is it shares using teams is more efficient than sharing to individuals.
Adam Vero corrected when I mistakenly put Access Teams don’t use the POA table, this is false, Access teams write records to the POA, it uses a team rather than an individual users.
Quick and ad hoc
If your need is to share records to groups or individuals, not in teams, Access teams is great for sharing permissions to unrelated individuals quickly and easily.
Manage sharing
Managing shared records in Microsoft Dynamics CRM can be difficult (can you remember how to see what records are shared with whom?). Using Access teams it’s easy to see who the record is shared with and add/remove users.
When records are deactivated, access team permissions are not effected
Access teams don’t have security roles
Access teams can’t own records
Access teams are created and managed by CRM
An access team is created when you have added the first user
Access teams are not visible in default team views
Sharing records via access teams isn’t displaying in the sharing screen
Access teams can’t be used in resource scheduling
Multiple access teams can be linked to a single record
Understanding Access Teams
We understand Access teams, how they work and the benefits but when should you use Access teams?
If you are sharing lots of records, investigate an alternative method of sharing records which does not grow the POA table. Sharing records are difficult to manage to individuals, you should use teams.
When to use Access teams
When you need to grant permissions on individual records. Access teams are great if you need to grant permissions to different individuals and not teams. A good example is granting permission on an opportunity to users from different areas, sales, marketing, support who are creating a proposal/demo.
If the group of people who need to access a record will change often, Access teams offer a way to add/remove users who can access the record.
Access teams are great for quick/ad hoc sharing
When not to use Access Teams
If security is important it’s better to use the default CRM security model. Access team members can add/remove other users which might compromise the security of the record. Default security is more powerful and nuanced, Access teams have 5 levels of permission.
When teams are static it’s better to use Owner teams to manage access to records.
If the volume of records being shared/view is high, managing permissions through Access teams will take too long.
The problem with access teams
Microsoft added Access teams into CRM 2013 but then forgot to add any functionality to export/import Access team templates between CRM instances.
With Access teams not included in the CRM solution it means Access team templates need to be manually recreated in all your CRM environments, this massive overhead, almost makes Access teams unusable.
This request is active, created on 11/27/2014, it has 68 votes but as yet Microsoft have not responded. Is Microsoft Listening to the Dynamics CRM Community?
I understand Microsoft are working on updating the connect platform, this will be a welcome change but I wouldlike to see more responses from Microsoft. The most disappointing part of the Microsoft Connect experience isn’t the poor user interface its the fact Microsoft doesn’t seem to be listening to the suggestions of the CRM community.
Access Team templates tool
The CRM community is awesome and Lucas Alexander has created a plugin for the XrmToolbox to move Access team templates.
The tool allows you to easily export and import Access team templates between CRM organisations
Try Access Teams
If you haven’t used Access teams, open a CRM trial and try them out. Access teams are a great way to share individual records to individuals without impacting the POA table.
Now you understand how Access teams work, the benefits and when to use them. You can see where it might be appropriate to use them or advise your customers the functionality Access teams provide.
There are two types of encryption: one that will prevent your sister from reading your diary and one that will prevent your government.
Bruce Schneier
Encryption problems don’t occur because Microsoft Dynamics CRM encrypts password fields. Problem’s occur if you don’t realise CRM 2013/2015 database are encrypted and encryption keys need to be looked after.
CRM 2013/2015 and future versions automatically creates a default encryption key and encrypts data in CRM.
Understand how database encryption works to ensure they don’t lose the encryption key or create a situation where they don’t know where the original encryption key came from. Retrieving encrypted data isn’t possible with the encryption key, deletion and recreation will be your available options.
Along came an SQL Encryption error
In a CRM 2013 dev organisations clicking on mailboxes would bring up an SQL encryption error
No one turned on database encryption, so this raised questions
Why were SQL encryption errors appearing?
Why in one of our dev organisations?
Database encryption was introduced in CRM 2013, automatically enabled and encrypts email password fields.
Developers won’t notice database encryption in a new CRM organization because an encryption key is created for you, all functionality works and mailbox passwords encrypted.
It wasn’t until we created a DEV environments from a copy of a CRM 2013 org and restored it, SQL encryption errors appeared.
If you attempt to look at the database encryption settings on an http on-premise organisation you will get an SSL error.
It’s not uncommon to find the CRM developer bashing head on desk whilst pulling out his hair.
When you work out how to turn the SSL check, you then get presented with a blank certification field with a helpful place to past the encryption key? Erm……what, where, who is the encryption key (repeat head banging).
If you are lucky the encryption key is in the original database, Other scenarios could be the original database is deleted or you can’t remember what CRM org was the original.
Why it’s important for Developers to know
Database Encryption gets turned on automatically, if you backup/copy and restore a CRM organisation the copy database won’t have database encryption key. It’s easy to copy the database encryption key once you know where to look, it’s important to planbecause encryption keys can change or get lost.
What won’t work if you don’t have your database encryption key?
Server side Sync
Mailboxes (opening)
Cannot update user email addresses
Cannot update mailbox emails
If server side sync doesn’t work workflows sending emails might not work
You cannot change emails of users and mailboxes.
The biggest problem I experienced was the loss of time. Time investigating the problem and understanding database encryption. The investigation stopped development on areas which needed email functionality using server side sync.
It’s important for CRM developers to understand database encryption in Microsoft Dynamics CRM is because it’s automatically turned on and cannot be disabled.
If you restore a CRM database the database encryption won’t be activated, encrypted data isn’t available to your CRM instance, certain email functionality won’t work, throwing SQL encryption errors.
Restoring databases can happen when creating new development environments, QA, TEST, PREPROD environments.
If you create a new CRM organisations for each environment, each CRM database is automatically encrypted with its own key.
If you copy and restore CRM organisations you MUST copy the database encryption key from the original CRM database and activate the database encryption. CRM developers need to be proactive and mange the encryption keys, to avoid ending up in a mess.
Why doesn’t the encryption key copy
The data encryption key is stored in the MSCRM config database and not in the instance CRM database. So when the bak file is imported into a new CRM org it doesn’t know how to get the key because the key isn’t in the bak file.
It can’t get it from the MSCRM_config because by creating a new org you will create new /different data in the MSCRM_config. Each CRM database will have its own encryption key.
Microsoft Dynamics CRM uses standard Microsoft SQL Server cell level encryption for a set of default entity attributes that contain sensitive information, such as user names and email passwords. This feature can help organizations meet FIPS 140-2 compliance.
This article explains changing and copying your encryption key.
The encryption key is required to activate data encryption when you import an organization database into a new deployment or into a deployment that has had the configuration database (MSCRM_CONFIG) recreated after the organization was encrypted.
The paragraph is saying (and the cause of problems I experienced) selected fields are encrypted, its turned on but not activated on imported databases. You will need to activate encryption by copying the correct encryption key, which you can find on original database.
Database encryption facts
When doing a retrieve on an encrypted field value, a null is returned
Encrypted fields cannot be indexed
Database encryption is automatically turned on for any CRM versions of CRM 2013 and higher.
You cannot turn database encryption off
You can set and retrieve the database encryption key using the CRM SDK see here
The SSL check is automatically turned on but can be turned off by updating the field on the mscrm_config database
Users with the Microsoft Administrator role can change the CRM encryption key
All the encrypted fields are password fields
Default encryption key setup during setup
All new and upgraded (which means all) CRM version will have data encryption enabled
You can’t audit or customize the encrypted fields
Common Database Encryption questions
Database encryption is likely to interest CRM developers when things have gone and you have restored a CRM database. I will cover the common scenario’s and give links to the answers
Can you change the database encryption key?
Yes, but you have activate database encryption. If the database encryption key field is blank you need to copy a the key from the original database.
I can’t check the database encryption because of the SSL check?
Microsoft turned on the SSL check by default, all on-premise CRM installations which are not SSL enabled cannot open the data encryption screen.
To view the data encryption details you need to disable the SSL check
Go to Settings –> Data –> Database
You cannot check the Data encryption key on a database if CRM is not SSL (HTTPS). This is because the Microsoft config database MSCRM has a field to stop CRM
You need to connect via SQL manager to view and change the database field on the MSCRM_Config database DisableSSLCheckForEncryption
I don’t recommend changing a CRM database, particularly the MSCRM_CONFIG because this is unsupported by Microsoft
The only time you can access the database is when Microsoft say you can on this page
When the Microsoft Dynamics CRM (on-premises) website is not configured for HTTPS/SSL, the Data Encryption dialog box will not be displayed. For a more secure deployment, we recommend that you configure the website for HTTPS/SSL. However, if the website is not configured for HTTPS/SSL, use a tool that can be used to modify CRM database tables, such as Microsoft SQL Server Management Studio or the Deployment Web Service, open the configuration database (MSCRM_CONFIG), and in the DeploymentProperties table, set DisableSSLCheckForEncryption to 1.
We have permission, here is the SQL
This views the data
SELECT [ColumnName], [BitColumn]
FROM [MSCRM_CONFIG]. [dbo].[DeploymentProperties]
WHERE ColumnName= 'DisableSSLCheckForEncryption'
This updates it
UPDATE [MSCRM_CONFIG].[dbo].[DeploymentProperties]
SET [BitColumn]=1
WHERE ColumnName='DisableSSLCheckForEncryption'
You need to do an IISReset after changing the database value, until you do you won’t be able to access the database encryption screen.
You can set the field back after you have got the database encryption key if you wish.
If you have turned off the SSL check and there is no database encryption key, it means you have a restored database. You need to find the original database and copy the database encryption key
It states you can add a new encryption key if you delete the encrypted data. Deleting the data is difficult because mailboxes are linked to User and Queues, which means they are Dependant.
You cannot delete the data using the UI, I tried using the CRM SDK but got the same dependency errors.
This forum post suggests you can null but I’m not sure this would work (make sure you backup the DB)
One solution is to create a new CRM organization and import your solution files. This works because the a new database is automatically encrypted, so you don’t need to recover the database encryption key.
One day you go into work, the work is difficult and boring.
The next day you can go into work and continue working on the same piece of work and it’s interesting, exciting and enjoyable.
The work stayed the same the difference was you and your approach to work.
This lead me to watch , a small pale blue dot from Carl Sagan
Quotes of the week
that IS the question: whether to float with the tide, or to swim for a goal. It is a choice we must all make consciously or unconsciously at one time in our lives.
A great list of resources to get started with CRM development. There is a wealth of information available for CRM developers and this blog rounds up the Microsoft offerings.
I agree developers should use the plugin registration tool because it doesn’t stop any other developers on the system. There are other reason, read the article to find out
I have been trying to increase the quality of posts, by spending more time constructing blog posts (this one excluded) by
Make notes on the subject
Design the subheadings
Write
Edit (abouttimemany readers willbe saying)
The goal of writing better quality posts is to create posts with more Hosk thoughts and insights (I do have a page of quotes!). Do create posts with deeper insights you need to spend more time thinking about a subject.
The Hosk blog grows
I have been blogging for 5 years and have written over 1000 posts on CRM. The early posts were quiet basic often involving linking to other good blog posts. In the early blog days what I lacked in skill and original thought I made up for in number of posts.
The early blog posts I viewed the blog as a tool to help share great content on CRM 2011.
As my knowledge and expertease in Microsoft Dynamics CRM grew so has the length, detail and insight in my blog posts.
The Hosk CRM blog has grown in numbers over and this year has already had 50000 more views than last year and for the first time I have clocked up over 500000 views in a year.
CRM MVP – Failed
An initial goal of the blog was to help me achieve CRM MVP status, I learnt like many others, it’s extremely difficult to become a CRM MVP.
A general rule of thumb with regards to becoming a CRM MVP (which I have been told many times)
Thosewhoreallywantto become a CRM MVP, seldom do.
After 10 nominations (2 and half years) I believe you can’t become a CRM MVP by just writing a blog. If you think who are the thought leaders in the Microsoft Dynamics CRM community, the currentlynominated CRM MVP’s offer great advice, insights and best practices for Microsoft Dynamics CRM.
My motivation has changed to focus on creating quality blog posts. A goal which I stated in New Year Hosk CRM Resolutions
Everyone should write a CRM blog
I believe everyone should write a CRM blog, for these reasons
To help others in the CRM community
To learn more about CRM
Social media content is your professional brand
A place to store your CRM knowledge
Writing the Hosk Dynamics CRM blog has been great and I have referred to it as my online CRM Brain in this blog post CRM 2015 – How to diagnose plugin errors. If I have a CRM error, I usually search the Hosk CRM blog for answers (or google which usually takes me to the Hosk CRM blog).
Writing the blog has created a Hosk CRM brand and most CRM developers I meet have read my blog, which is cool. It’s useful when going for interviews and in one situation someone went was asking me questions featured on my blog
When creating a test environment, get a piece of paper and create a list of all the items you need to create/import/setup in order for your new Dev environment to be created successfully.
If you don’t create a list, it’s easy to miss important steps. Not having a plan is trying to get to a destination without having a map, you will end up wandering around not knowing how near or far you are.
A common scenario is developers end up, installing and setting up lots of different parts of a new DEV system, not keeping track of what they have done. When the new CRM dev environment doesn’t work they are not sure of the cause because they have changed numerousvariables.
If you don’t create a new Dev organization systematically on creation, you will need to work systematically when trying to diagnose the problems.
It will be less frustrating to set up the Dev organisation systematically.
What if it still isn’t working?
Don’t Assume, Know
The above line is a mantra I use when diagnosing problems, which I discuss in this blog post
Make a list of the common problems with setting up your CRM system, check them and tick them off the list.
In this example I found a web service wasn’t working. I tried checking lots of things, before finding the password for the web service app pool user had expired!
I would have found this problem sooner if I hadn’t assumed it was working
When debugging, eliminate what isn’t causing the problem and whatever code or customization is left must be the culprit. – Sherlock Hosk
Be a finisher
Don’t give up. Every problem you fix is a step nearer to having a new working Dev environment.
Step backfromthe task andhavea break. This allows you to view problems from a different perspective, giving fresh insights, providing new solutions.
It’s amazing how an impossible problem late one day, is obvious when you start with a fresh mind the next day.
Problems are often solved with clear thinking and not brute force and continued bashing away. It’s easy to get involved in setting up an environment/instance, using effort instead of brains.
Difficult tasks is like navigating a maze, sometimes you need to stop, refocus and realise you have gone down a wrong path.
Don’t suffer in silence
Some developers suffer in silence, other suffer loudly with plenty of swear words :–)
If you get stuck and can’t resolve the problems then try explaining them to a cardboard developer.
This works by explaining the problem to yourself/cardboard developer you are analysing and thinking logically. You are giving your brain time and space to think about the problem.
If you are not making progress then it’s time to ask for help.
Most developers don’t mind helping a fellow developer if they can see the developer has tried lots of solutions but is still stuck. Developers are not so willing to help a lazy developer.
Suffering in silence helps no one, you get frustrated, and the task doesn’t get done.
Part of the job
Setting up new instances or dev environments is a task which isn’t fun or exciting but it has to be done.
It’s in the list with importing solutions to different environments.
It’s better to leave these more manual, less creative tasks to the afternoon when you have depleted your energy, enthusiasm and will power levels.
I have been writing performance test scripts for Microsoft Dynamics CRM 2013 over the last week. I now realise the reason for the lack of blogs posts and information on performance testing with Dynamics CRM.I am using Visual Studio 2013 ultimate Web Performance and load tests and its frustrating, slow, difficult.
The main difficulties arise from the number of guids used in CRM. To move the scripts from one CRM organisation to another, allguids need to be parameterised.
The CRM WRPC token stops scripts rerunning. I took the easy option and turned off the token, instead of parameterising the token. Read more here – What is the WRPC Token?
Microsoft released the CRM Performance toolkit, backwards compatible with CRM 2013. The performance toolkit tests the default entities in CRM. The good news is its a free performance testing tool, the bad news is its complex, making it difficult to change it to test your custom entities
A custom workflow was published, but CRM continued to use the old custom workflow. This error frustrated the developer for a while before diagnosing the problem.
CRM developers must understand the CRM architecture and CRM SDK, the alternative is fixing problems using trial and error.
trial-and-error method of find solutions is a lottery, sometimes you find the solution quickly, other times you try many alternatives.
The CRM SDK is a map showing boundaries and location of major CRM SDK landmarks. Developers navigate the CRM landscape creating suitable customizations for customer requirements. CRM developers who don’t consult the CRM SDK (map) can get lost and not know how to get back on course.
The Problem
A CRM developer updated a Custom workflow, published the custom workflow, but the old custom workflow was still running.
Experienced CRM developers will nod their head at this rite of passage.
The quick answer
Recycling the CRM app pool refreshed the custom workflow, doing an IISRESET resolve the problem.
Be careful recycling the CRM app pool or doing an IISRESET on production systems, it will disrupt users sessions. IISRESETS and CRM app pool recycle should be done out of hours where possible.
The reason this worked is the custom workflow had changed the parameters passed in.
Detailed explanation
Thinking isthe hardest workthereis, whichisprobablythereason whysofew engage in it.
Learning how the CRM works, helps diagnose future problems and avoid making similar mistakes. The CRM developer centre is a great resource to help navigate the CRM SDK.
The better you understand how CRM works the fewer error/mistakes and dead ends you will make. Dead ends can waste time because
Create a customization
find it doesn’t work
Remove customization
Have to create another customization
CRM is the framework sitting on top of languages JavaScript and .NET, you need to learn CRM as well the programming languages. This explains why .NET developers struggle with CRM development
Custom workflows and developer fear
CRM developers can fear custom workflows if they have never created one. Custom workflows share many characteristics of plugins but have some fundamental differences.
One of the main differences is how the Custom Workflow variables are passed in but the key difference is plugins must run within 2 minutes or the plugin times out, throws an error and rolls back any changes.
Custom workflows are often used for long running process.
Before you have created a customization, there is a doubt you can successfully create the customization. The developer often has theoretical knowledge but not the practical experience.
The best method to remove this developer fear is to do it, it’s often not as difficult as your mind tells you it MIGHT be.
A Custom workflow is Asynchronous, running after the plugin execution pipeline has finished. Async processes (System Jobs) are managed by the Async Queue Manager which decides what System job runs next.
The Async processes can never guarantee when they will run because the Async Queue manager decides what is run. It could be 3 seconds or it could be 2 days (unlikely but possible).
There is one other scenario when you need to recycle the CrmAppPool application pool. If you modify the parametersthat are available for a Custom Workflow Activity, then CRM will not make any new parameters available when editing the workflow until after recycling the application pool.
I think the reason the custom workflow wasn’t updating was because the parameter values might have changed.
Interesting facts on Custom Workflows
A great article on using versioning your Plugins and Custom Workflows
You should stop the asynchronous service before you unregister a plug-in that was registered to execute asynchronously. Stopping the service prevents a situation where an asynchronous registered plug-in has been queued for execution but for which there is no plug-in assembly currently registered. For example, consider the situation in which a plug-in has been registered to execute asynchronously and the related event has fired. After the asynchronous operation has been queued by the queue manager, you then unregister (delete) the plug-in assembly from the Microsoft Dynamics CRM database. In this case, an error occurs when the asynchronous service tries to execute the queued asynchronous operation but the plug-in assembly no longer exists.
Poor quality and inconsistent data in your CRM database = bugs and odd behaviour out of CRM customizations and CRM demo’s – Hosk
Test data which doesn’t replicate live data in your CRM environment can cause bugs and create havoc in demo’s but few CRM developers or companies have realistic dummy data available to import.
Have you been in these situations
Whilst showing new functionality, unexplained errors disrupt the demo
or
Setting up a new CRM environment, finding the process is bottle necked by bad data (which always takes longer than you think to import and get right)
Create good data once and import many times
Being able to import dummy data into different CRM organisations and different CRM projects is a valuable resource, making it worth the effort to create your dummy data files.
Useful and reusable data is contacts, accounts, tasks, phone calls, emails, Address, Text
Developers and Data
All CRM systems need data to use it. without data your beautiful CRM solution is like a car without petrol, it won’t do anything. – Hosk
CRM developers don’t like dealing with data requirements for a project (because it’s a task which isn’t coding).
Getting your data in a format which can be imported into a CRM organisation is great because often during CRM projects you will need to setup and move data between lots of different CRM environments e.g.
Dev
Test
Customer Test
Pre-Production
Production
Characteristics of good CRM project are well structured, organised and all aspects are planned and prepared. Data preparation and importing between environments should be easy with minimal effort required by the developers.
Avoid data technical debt by ensuring data files are kept up to date and stored in source control, all developers should no the location and the steps to import the data. Don’t burden one developer with importing the data, it’s not pleasurable for the developer and the project can become dependent on the developer, which can cause problems.
On a chaotic CRM project the data import/export process will be ad hoc, not defined and a confusing and time consuming process, prone to missing chunks of data.
The time spent on creating and updating the data to move between CRM organisations is time well spent. In the long term it will make a unpopular tasks manageable and will save you time (particular with bugs caused by bad data)
Importing data is simple
Microsoft Dynamics CRM comes with an easy to use Data Import Wizard for import small to medium amounts of data. Below is a guide how to use the Data import wizard.
The data import wizard is a great tool for importing small amounts of data quickly. The data enrich functionality when used with the advanced find is a great way to bulk edit
before you can import data you need to create some.
Why create realistic dummy data?
Good data in CRM database can help find bugs, bad data can help create bugs – Hosk
Setting up environments and data importing are often unpopular jobs for CRM developers (Developers favourite activity is coding and any other activities get in the way!)
In most projects you will need to create accounts, contacts and maybe some records. Consider it’s likely you will need to set-up lots of different environments so you want to get on top of your data requirements.
What is developer/test data?
If I use the term bad data I am referring to what I call developer data. Developer data is data created by developers or testers which doesn’t accurately replicate the data created in production or the data which will exist in the production environment.
You could create lots of data with Test e.g Test1, Test2, Test3, perhaps with a number counter appended. The problems I have found with poor test data
Not testing your customization’s with realistic data, can delay finding bugs until you hit the live system with real data
Test data can make understanding and using the system confusing
It can give a bad impression to the customer (similar to the broken window theory)
Realistic data or random data can help find bugs in your system. Developers will put simple data into a system (usually as fast as they can), this allows bugs to not found. This is one cause of bugs being uncovered in the live system, when real data is imported into the system you can find errors appearing
The code doesn’t like comma’s, hyphens or quotes
length or size errors
null errors
unexpected types of data
Data imported into a CRM organisation stretches, pushes and pulls the system to see if it brakes.
Why do developers create developer data
Developers do not and often don’t need to know how the end users will use a feature. In many situations developers will be given a technical specification document with a list of required features to implement. A developer will learn enough about the customization to create it but will lack the detailed knowledge of the business analyst who captured the requirements and wrote the functional specification.
If a developer isn’t clear how the functionality will be used it’s difficult for the developer to put in realistic data, instead developers input data in the correct format (e.g. string, number).
A developers goal when developing is to test the code navigates through the various paths of code, read my blog post to learn more about this – Don’t just test the happy path
Happy path (when it works)
Alternative path (other routes through the code/customization)
Exception path (when things go wrong)
The developers goal is to put in as small amount of data to be able to test the different code/customization paths.
The unrealistic data used by developers and developers use of System Administrator security role highlight why companies should test functionality with testers in a different CRM environment from the developers CRM environment.
The benefits of creating realistic dummy data is the ability to import data into your existing CRM project and future projects.
Contacts and Account data are reusable
You do the effort once, reap the rewards of your efforts many times over
Customer safe data ready to important
Save time and effort creating the data for every project
Ease of use
I found contact data import data I created for a project using the the website Mockaroo. I got the files and imported them into my test system, first go without problems.
boom 500 contacts with realistic names, phone numbers and email addresses which imported straight into CRM.
Make sure you import the data and fix all the errors.
Good data should import with out errors.
Tools to create Test data
I have found three websites to create test data, please leave other good sites in the comments. I looked at free websites to create the data
Database Test Data
A basic website with an easy to use interface. It’s not as complex as the other two does have a lot of useful functions. The biggest plus for this site is there is no limit on records created.
Mockaroo is a great site with a lot of functionality to create common columns in data import. The preview function is handy. The is a limit of 1000 rows of data unless you would like to sign up for a data plan which starts at $50 dollars a year.
Mockaroo organises the fields you can add into various section, the location field creation functionality has the options below