Friday, August 14, 2009

Microsoft CRM Interview Questions - Part 2

This blog is dedicated to the users who are looking for the advanced level of interview questions and for the people who want to dive deeper into MSCRM.I will add questions in incremental basis.
Q: What is CRM Service of MSCRM?
Ans: CRM Service is the main web service and it exposes Six methods such that you can write your code against CRM entities. To perform operation other than the six operations (six methods provided by mscrm) we will have to use the Execute method.
Q: What is Metadata service of MSCRM.
Ans: Dictionary meaning of the word METADATA is data about data and similarly the metadata holds the information about MSCRM means the information about the entity and attribute e.g. Display name, platform name, size of the attribute, datatype of attribute etc. If we want to access any information about any entity (Dynamic or system) we will have to make use of the Metadata service. In the database we can find the metadata table and name of these table begins with keyword Metadata.
Q: What is discovery Service?
Ans: The Discovery service is a global service that helps the caller to detemine the correct organization and URL. Microsoft CRM server may include several servers. Each server might be dedicated to multiple organization. Each of these servers will have dedicated web-service URL for faster operations. Internally the Microsoft CRM server allocation may change so the discovery service directs the request to its corresponding web-server for further processing.
In short the Discovery service responsibility is to find the 'CRM Service' and 'Metadata Service' urls.

The discovery service returns the list of organization URLs that the current-requester (current user) belongs to. During the Outlook client configuration discovery service shows he list of organization the current-user belongs to.

This web-service is used to create authentication ticket in case of Windows live authentication.

Q. Suppose I want to migrate an Microsoft CRM implementation from one environment to other environment. Let us assume that there a published workflow for account entity. Now in normal usage there will be few accounts-records for which the workflow will be waiting/Waiting for Resource/Failed/Succeded state. So what should be our strategy for the migration. What will happen to the records which are in waiting state and what will happen to the records which are in-progress?
Q. Suppose there is a plug-in registered for account entity. When a user submits a request (e.g. account creation etc.) to the web-server then what will happen in the server?
Ans - The plug-in will get loaded into the memory and will perform the operation it is needed to do.
Q. Now what will happen if 100 users will submit the request to the web-server? The plug-in code will get loaded into the memory for 100 times?
Ans - Answer is NO. Noticable point over here is that the Microsoft CRM is a mananged application and runs under .Net framework. So whenever the first request arrives at the web-server the plug-in code is loaded into the memory and will perform its operation and susequently the same plug-in code will serve the process for other user as well. So this way it saves the amount of time required to load the plug-in into the memory. If the plug-in code is not being used for long then the Garbage collector will identify it and will sweep the plug-in out from the memory.
Q. How to add/remove columns in an entity lookup window.
Ans - Go to Settings >> Customization >> Select the entity >> Click 'Forms and Views in the Left Nav Pane" >> Double click the 'Entity Lookup View' >> Dialog box appears that contains the Add/Remove and Sorting options for a lookup view.
Q. How to Debug the java script that we write for some validation on entity pages.
Ans - Following are the steps that are needed to be followed:
1. Enable the Debugging in the Internet Explorer - Goto Tools >> Internet Options (wizard will appear >> Click the 'Advanced Tab' >> Under Browsing Section uncheck the 'Disable script debutting' checkbox >> Click OK.
2. Edit the java script code of the Entity Page that you want to debug.
3. Put the statement 'debugger;' above the line where you want do the debugging. e.g. suppose my java-script show 'Hello World' message and i want to debug this then following is the way I am going to add script:
debugger;
alert('Hello World')
4. Save and Publish corresponding customization.
5. Perform the operation that would trigger the java script written by you
6. Debugger dialog box will appear and select appropriate debugger (Visual Studio new or existing instance)
And you may start debugging from the 'Debugger' statement of your javasript.
More to Come...

Wednesday, March 4, 2009

Microsoft Dynamics CRM Interview Questions

Following are the some of the questions which are asked most frequently in the Microsoft CRM interviews. Generally the during the recruitment of MS CRM Functional consultant, Technical Consultant or Test Consultant the answer to this questions are expected.I will add few more questions in this post.
1. What is a Plug-in?
2. What is a Workflow?
3. What are the differences between Plug-in and a Workflow?
4. What are the differences between Asynchronous Plug-in and a Workflow?
5. When will you use a workflow and when will you use a Plug-in? Give some Real-life scenario.
6. What is an Email-Router?
7. What are the steps to configure an Email router?
8. How the Plug-in and Workflow will behave in case of Off-line client?
9. What is Metadata?
10. What is CRM Discovery Service?
11. What is Sales and Marketing life cycle in MSCRM?
12. What is Queue entity in MSCRM?
13. What is 1:1, 1:N and N:N relationship in Microsoft Dynamics CRM?
14. How a Plug-in is different from a Call-out?
15. What is 'Append' and 'Append To' privilege in MSCRM? Give one example of it?
Ans: 'Append' and 'Append To' priviledges works together. 'Append To' priviledge will allow other entities to get attached with the entity. 'Append' priviledge will allow the entity to attach the records to the entity with 'Append To' privildege.

Let us understand this with simple example:
Let us say that you want to attach a note to a case then note entity should have 'Append' access right and case entity should have 'Append To' access right.

Let us take one more example to understand this. Suppose you have two custom entities called 'TestCustomEntity1' and 'TestCustomEntity2'. You want to attach the 'TestCustomeEntity2' records to 'TestCustomEntity1'records. For this you need to have 'Append' access right on 'TestCustomEntity1' entity and 'Append To' access right on 'TestCustomEntity2'.
Now guess will I be able to attach the records? Answer is "NO" because we need to create a 1:N relationship between 'TestCustomEntity1' and 'TestCustomEntity2'.
Now the user who has above mentioned access right in his security role will only be able to add 'TestCustomEntity2' records to 'TestCustomEntity1'.
16. How to create a Custom Entity record using SDK?
Ans: Using Dynamic Entity.
17. How to join two table using Query Expression?
Ans: Using Linked entity. You should always try to minimize the number of SWS calls that we make in the database. Often during code review it is explored that the number of Microsoft CRM web-service could have been reduced by making use of the Linked-entity concept. So we should always look for the opportunity to minimize the effort.
18. Can we modify the name of Root Business Unit?
Ans: No; We will have to re-install MSCRM.
19. Suppose if I have 20 user license and I have created 20users. What will happen if I create 21st User?
Ans: The 21st User will get created in MSCRM but that user will be in disabled state.
20. What are the maximum number of tabs allowed on a Microsoft Dynamics CRM 4.0 form?
Ans: 8
21. How to enable/disable the form assistant? How to make sure the form assitant is expanded/cllapsed on a form?
Ans: Navigate to Customization >> Open the Entity >> Open Forms and Views >> Open Form >> Select Form Properties >> Open Display Tab >> Check/Uncheck the "Enable the Form Assistant" and "Expanded by Default".

The interviewer will always try to figure-out whether one is comfortable with the basic concepts of Microsoft CRM (MS CRM) or not and after that; questions will be asked from your previous experience (if you have any experience in CRM). Those questions will be something like this:
1. What was you role in the MSCRM implementation project that you have worked on?
You should be honest while giving answer to this question and should give a brief overview of the project and your role. This is very important question because the answer of this question will tigger so many questions. You should highlight the key skills you have; this way you will divert the attention of the interviewer to your key skills and try not to expose the area in which you are less confident.
2. What was the most challenging task you have faced till now?
Here you should give answer that exihibit your positive attiude . e.g. for a techincal consultant it may be something like ... "I was new to the suppport and during this experience i faced challenging issue related to plug-in that impoved my debugging skills. Email-to-case plug-in was really diffcult as we had to take care of so many conditions. I have learnt one thing during my previos assignment and that is 'Never give-up'".
3. What was the size of the implementation? (i.e. the number of user-licenses)

I hope this post will help you to crack technical interviews on MSCRM. All the best for your interview...

google Analytics