CRM 2015 – Tips on passing MB2-707 customization and config exam

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

Tips on passing MB2-703 – CRM 2013 Customization and Configuration Certification

I recommend you read the blog post above, this post will concentrate on CRM 2015 version.

Why should you take the certification

I have written about why you should get Microsoft Dynamics CRM certifications before

Here are a few points

  • 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.  The out of the box functionality works and has been thoroughly tested by Microsoft (most of the time).
  • 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

  • Rollup and calculated fields
  • Business Process flows
  • Business Rules (enhanced)
  • Hierarchy Visualization
  • Search multiple entities
  • Enhanced Mobile

This blog Dynamics CRM 2015 / 2013 New Feature Summary has a quick list of new features

This doesn’t mean you should ignore older functionality, you need to study all the areas in the certification criteria

MB2-707 – Microsoft Dynamics CRM Customization and Configuration

Study Material

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

MB2-703 – CRM 2013 Customization and Configuration Certification Information

MB2-703 – CRM 2013 Customization and Configuration Hosk study notes

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.

Here are my security exam cram notes

CRM 2013 – MB2-703 – Security Exam Cram Notes

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

The Free MB2-703 Study Guide

Other Blogs information

There isn’t much information but here are a few blogs

Good luck to anybody taking the exam

 

Advertisements

CRM 2015 – The benefits of Access Teams

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.

This post will explain
  • What are Access Teams
  • The benefits of Access Teams
  • When to use Access Teams
This week a new plugin was added to the XrmToolbox to XrmToolBox plugin for moving access team templates, which prompted me to investigate Access teams.

What are Access Teams?

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.

Here is some information to help study for Microsoft Dynamics CRM customization certification and this post explains the benefits of acquiring Microsoft Dynamics CRM certifications 

To get an introduction to Access teams read

CRM 2013 – MB2-703 – Access Teams and Access Team Templates how to use them and key facts

There is a great white paper on access teams 

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

Some men learn all they know from 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

Reduced sharing overhead

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.

Improved performance

Read Adam Vero‘s section on Performance Improvements because he explains it better than me.

Access team facts

  • 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.

This topic is explained CRM 2013 – Why are access teams marooned?

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.

Access teams have a connect request Access Team Template in CRM Solution

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 would like 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.

XrmToolBox plugin for moving 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.

CRM 2015/2013 – All you need to know about Database Encryption

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

  1. Why were SQL encryption errors appearing?
  2. 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.

Data encyption - no https

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 plan because 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.

The forum title below captures the feeling

HELP! My data is encrypted and I didn’t do it!

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.

What is Data encryption

Always start with the CRM SDK

The CRM SDK has two articles on database encryption, The first describes what SQL field level encryption is and does.

Field-level data encryption

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.

Data encryption 

A 5 minute video to explain the basics of database encryption

Microsoft Dynamics CRM 2013 Setup and Upgrade New Features – Data Encryption

The video states Yammer tokens are encrypted, I’m not sure what this means or if Yammer won’t work on a database which isn’t encrypted,

What is encrypted?

Passwords for email are encrypted but what does this mean?

The article describes what is encrypted

Entity Attribute
EmailServerProfile IncomingPassword
EmailServerProfile OutgoingPassword
Mailbox Password
Queue EmailPassword
UserSettings EmailPassword

I found the answer on this page, If you lost your encryption key

Entities

  • Mailbox
  • Email Server Profile

If you do an advanced find and use the entity of Mailbox.

You will get a list of mailboxes, if you click on one, on an encrypted database where you have lost the encryption key you will get this message

Data encyption 2

If you are wondering where the mailboxes are used, each user has a queue and each queue has an Emailbox

Why is data encrypted

Understanding the purpose of functionality, makes it easier to comprehend the logic driving the functionality.

The purpose of encrypting user and password fields in CRM is to hide this information from CRM developers/CRM Admins.

Data encrypted is around email functionality is because Microsoft Dynamics CRM has no email functionality.  Email functionality is outsourced to

  • Email Router
  • Server side sync
  • CRM users Outlook

To use external email services, it passes credentials to the other services, to make things secure CRM encrypts this data.

CRM Encryption Facts

Is database encryption is automatically turned on?

YES!

Whilst writing this article I get confused whether database encryption was turned on on or not

This paragraph in Field-level data encryption confused me

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.

Data encyption - no https

To view the data encryption details you need to disable the SSL check

Go to Settings –> Data –> Database

Data encyption

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

Why you shouldn’t put unsupported customizations in Microsoft Dynamics CRM

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.

Set by step instructions here

My Database has no encryption key

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

This article will help

Data encryption errors after restoring CRM database

Best practices – Backup your key

Microsoft recommends changing the database key once a year, the article below describes how to backup your encryption key

What if you lose your key

You are in a pickle!

I read this blog post – Tip of the day if you lost your 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)

HELP! My data is encrypted and I didn’t do it!

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.

Good articles on CRM and database encryption

CRM 2013 and SQL encryption

 

 

Hosk’s Top CRM Articles of the week – 26th October

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.

Hunter S Thompson featured on Farnam Street blog

You can’t change the CRM SDK, you must change to use the CRM SDK to develop suitable customizations for the customers requirements – Hosk Quotes

“Drama is anticipation mingled with uncertainty.”

― William Archer

 

Article of the week

Getting started with CRM development

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 would add the list of top 25 CRM blogs to the list and the Microsoft Dynamic CRM forums

Not forgetting Hosk’s CRM Developer Articles

CRM

Why Should You Always Debug with the Plugin Registration Tool

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

CRM Implementation and Deployment Best Practices

Interesting list of deployment best practices

Calculated and Rollup field limitation

A classic CRM gotcha you need to know about regarding calculated and rollup fields.

CRM Deployment Best Practices

Technet outline for further articles,  provides a good framework for things you should have already thought about.

New Knowledge Management in Microsoft Dynamics CRM 2016 release

Good new features, why has it taken so long?

Data Loader Service: Preview Feature for Microsoft Dynamics CRM Online

Getting data into your CRM online instance can be pain.  You should also read How to create realistic Test Data for your CRM Project and why you should

How to Integrate Microsoft Dynamics CRM

At the heart of CRM is data but what’s the best tool to use to import it

A Classic CRM debate – To use leads or not to use leads, that is the questions

I have had many a discussion with customers about leads, don’t discuss it

The pains of setting up a new CRM dev environment

Setting up CRM dev environments is something which has to be done

Dynamics CRM 2015 Workflow Tools

Useful free tools

CRM 2013 – using Entity.GetAttributeValue instead of Entity.Contains

Get rid of your if (entity.field != null) and use Entity.contains

A record count tool

counting records can be useful in scenarios of counting records.

Business Rules – Your Key to Programming Knowledge in MS Dynamics CRM

A great tool for non coders to create JavaScript like actions on your CRM forms.

Getting the CRM Developer toolkit working with Visual Studio 2013

With a few edits here and there you can get CRM Dev toolkit working with visual studio 2013 whilst we wait for Microsoft to make an official version

Javascript to set the current date and time

Set the current data and time using JavaScript.

{Customization and Scripting Tip} Workaround for showing some number fields without comma in Dynamics CRM

Good tip

Programmatically create folders and upload files in SharePoint Server 2013 through Plug-in/Workflow

Useful to have an example, SharePoint code needs a different way of thinking

programming

Javascript goes async

Satya Nadella Explains Why Microsoft Still Makes Hardware

An Ex-Microsoft Engineer’s Advice to Programmers: Learn How to Write

other

9 Learnings from 9 Years of Brain Pickings

How to tell a great story, visualized

The 8 causes of Plateaus

Tesla’s batteries to power two dozen Calif. office buildings

Hunter S. Thompson on Living versus Existing

Previous top picks

Hosk’s Top CRM Articles of the week – 13th October

Useful Hosk Links

Hosk list Of CRM 2013 Tools

A list and review of CRM 2013 tools, this will probably work in CRM 2015 as well

Hosk’s CRM Developer Articles

A collection of my favourite CRM Developer articles I have written

MB2-703 – CRM 2013 Customization and Configuration Certification Information

All the CRM 2013 content to help you pass the exam

HoskWisdom – Hosk Developer Quotes

 Words of Wisdom from the Hosk.  I have written over 900 articles, surely I should have said a few memorable things

Oi Hosk, Why the lack of blog posts

Be grateful for what you have and stop complaining – it bores everybody else, does you no good, and doesn’t solve any problems.

Zig Ziglar

 

Some blog readers have complained (in a nice way) about the lack of blog posts from the Hosk.

One person said, why don’t you write a blog about not writing blog posts, which would help fix the lack of blog posts.

My first reaction was to say

  • I have been busy
  • I haven’t had time
  • I was ill

Often my instinctive reaction to a question is often defensive and a justification to myself.

Defensive answers are not useful because they don’t tackle the true cause deflect the question from being answered.

The truth is, I haven’t prioritised writing my Hosk CRM blog.  If you really want to do something you make time to do it.  

Quality not Quantity

When writing the blog post Tips on how to become a CRM MVP from CRM MVP’S, which summarises CRM MVP Q&A

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 (about time many readers will be 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)

Those who really want to 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 currently nominated 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

The pain of setting up CRM Dev environments

“To see what is in front of one’s nose needs a constant struggle.”

George Orwell

Whilst creating a console app to create email records in CRM I find my CRM dev environment working against me rather than assisting me.

Setting up a CRM environment tasks

  • Restore a copy of a CRM organisation
  • Configure the custom project data
  • Configure CRM settings
  • Setting up web service’s (web.config, copying dll‘s)
  • Import data (How to create realistic Test Data for your CRM Project and why you should)
  • setting up users + security
  • testing everything is working

Configuring the data involves having both systems side by side and ensuring environment-specific settings are setup correctly.

Setting up environments is done in copying mode and not thinking mode, which can lead to mistakes.

The frustrating part is I’m not testing but spending time on creating my environment to enable me to test.

Copying and changing data can be done with no need to think.

Create a plan

You were born to win, but to be a winner, you must plan to win, prepare to win, and expect to win.

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 numerous variables.

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

CRM 2015 – How to diagnose plugin errors

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

As I mention in Sherlock Hosk and the case of the annoying bug you need to work through potential causes, tick them off and narrow the list of potential problems

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 back from the task and have a 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.

Visual Studio 2013 Intellisense stopped working

I just installed Visual Studio 2013 and annoying the IntelliSense wasn’t working.

Initially I found this slightly annoying, after 5 minutes of not having IntelliSense this became a big issue.

I knew an answer couldn’t be too far away but where because what developer can survive without IntelliSense

IntelliSense worked if I pressed

CTRL + SPACE

Long 20 minutes

It was a long 20 minutes without IntelliSense but I finally found the solution.

Options –> Text Editor –> All Languages

intellisenes

You need to make sure Auto List Members and Parameter information are selected.

They were ticked, but I unticked/ticked the options and hey presto Intellisense was working again.

Useful links

http://www.dirkstrauss.com/coderush-stops-intellisense-working-for-visual-studio-2013/#.VgzwG4VVikr

http://stackoverflow.com/questions/8420303/visual-studio-c-sharp-intellisense-not-automatically-displaying