Affiliations

Interview Questions & Answers for MSCRM page2

What is MS CRM?

  • Microsoft CRM redefines customer relationship management with a fast, flexible, and affordable solution for driving consistent and measurable improvements in all of your customer business processes using tools and technology like Microsoft Office and Outlook that you already know and use. (Source: Microsoft)

    CRM is a strategy, Microsoft Dynamics CRM helps you achieve it.
    History has shown us that user acceptance is one of the most important factors for the success of a new product, process or any other service that has to be deployed. To overcome this problem, Microsoft Dynamics CRM has been built with the following three tenets in mind:
    • It works the way you do: Microsoft Dynamics CRM offers a native outlook experience and integrates nicely within Microsoft Office. No need to learn a new user interface.
    • It works the way your business does: every company has its own specific products and services. This requires a system to be adaptable to your processes and not the other way around. You customize the system; the system is not customizing you.
    • It works the way IT does: Deployment, maintainability and integration should be easy. It is based on standards and does not require highly specialized or unique knowledge. Even IT should be happy with it.

Microsoft Dynamics CRM Titan has added one more: The Power of Choice. This is driven by the three new key features:

    • Multi-Tenancy: choose where, when and how you want to use the program. From outlook, the browser or your mobile device? On premise, partner hosted or Microsoft Dynamics CRM Live (Microsoft running it under the concept of the popular Software-as-a-Service (SaaS) concept - Currently ONLY available in North America)
    • Multi-Lingual: Choose the language for your organization and/or for every user individually.
    • Multi-Currency: Support for multiple currencies, so you can easily manage customers from different locations.

 

The way you use Microsoft Dynamics CRM greatly depends on your function within your company and the role you play in the customer life cycle. Microsoft Dynamics CRM supports this by categorizing its possibilities into a couple of functional groups. Although some of their functionalities overlap, the first three groups (Sales, Marketing and Customer Service) can really be seen as separate modules in Microsoft Dynamics CRM. Reporting and Analytics is a group which you will encounter in all the modules.

  • Sales: increase your sales success by managing your sales life cycle. It includes Account, Contact, Lead, Opportunity, Quote, Order, Invoice, and Product Catalog management.
  • Marketing Automation: enhance marketing effectiveness by managing you marketing automation life cycle. Plan, manage and track your marketing campaigns from development to launch.
  • Customer Service: deliver outstanding customer service by managing your service and service scheduling life cycle. This includes Contract, Case, Knowledge Base, and Queue management, Service scheduling and Scheduling administration.
  • Reporting and Analytics: start treating your customer data more like customer information. Establish new business intelligence in real-time to uncover business trends and performance results.
 
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.
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".
 
 

What is CRM Service of MSCRM?

The Web service is the core API mechanism for programmatically interacting with all entities in Microsoft Dynamics CRM. This service contains six common methods that work on all entities, and an Execute method that is available for all other needs

http://<crmserver>/mscrmservices/2007/crmservice.asmx

·         Create Creates a new record for a given entity.

·         Retrieve Returns a single record based on the entity ID passed in.

·         RetrieveMultiple Returns multiple records based on a query expression.

·         Update Edits an existing record.

·         Delete Removes a record.

Fetch Returns multiple records based on a FetchXML query. The FetchXML query syntax mirrors that of previous Microsoft Dynamics CRM versions

Execute Method

The Execute method allows you to run any special commands or business logic not addressed by the common methods. Unlike the common methods, the Execute method works on Request and Response classes. You pass a Request class as a parameter to the Execute method, which then processes the request and returns a response message. Though the Execute method can perform all of the actions of the common methods, its real purpose is to provide you with the functionality that the common methods lack. Typical actions for which you might use the Execute method are to retrieve the current user, assign and route records

 

What is Metadata service of MSCRM?

  •  MetadataService Web service that you can use to programmatically access the metadataMetadata Service Web Service: Retrieve the metadata for a specific entity, either system or custom.
  • Retrieve the attributes for an entity.
  • Retrieve the metadata for a specific attribute, such as the possible state names or picklist values for an attribute.
  • Create a custom entity.
  • Add or update an attribute for an entity, either system or custom.
  • Create or delete a relationship between two entities.
  • Retrieve all the metadata to create a metadata cache in a client application.
  • Determine whether the metadata has changed since a previous retrieve.
  • Retrieve all the entities and determine which ones are custom entities.
  • Add or remove an option from a picklist attribute.
  • Write an install and uninstall program for your custom solution.

THe  Metadata Service Web service is located at http://<crmserver>/mscrmservices/2007/metadataservice.asmx

 

What is discovery Service?

The CrmDiscoveryService Web service can provide a list of organizations and their corresponding Web service endpoint URLs. You use this information to configure the CrmService and MetadataService Web service proxies and call Web service methods that access an organization's data. The discovery service URL is fixed per installation so that you can programmatically configure solutions for multiple organizations in a single environment.

The discovery Web service is most applicable for the following situations:

·         Large-scale installations of Microsoft Dynamics CRM, where the installation may have the Web service APIs installed on a server different from the Microsoft Dynamics CRM Web server

·         Independent software vendors (ISVs) solutions

More Info:

A multi-tenant installation is one in which multiple CRM organizations are configured against a common set of hardware. Remember that each organization contains a unique database that contains the custom configuration and all the business data. You need the Enterprise edition of Microsoft Dynamics CRM to setup and deploy a multi-tenant deployment

 

The CrmDiscoveryService Web service for an on-premise installation is located at http://<crmserver>/mscrmservices/2007/AD/CrmDiscoveryService.asmx, where crmserver is the Microsoft Dynamics CRM Web server.

What is a Plug-in?

Plug-ins provide one of the most powerful customization points within Microsoft Dynamics CRM. As users work in the application, their actions cause Microsoft Dynamics CRM to trigger events that developers can use to execute custom business logic through the use of plug-ins

 

What is a Workflow?

Difference Between Plug-in & Workflow !!!!

When will you use a workflow and when will you use a Plug-in? Give some Real-lifescenario?

What are the differences between Asynchronous Plug-in and a Workflow?

 

1.Workflow solution requires zero code maintenance and a normal user or administrator can create the Workflow.

Whereas for Plug-in , needs a Professional to develop it or the individual who as some programming knowledge.

2. Workflow includes a limited set of Events. For Example Create,Update & Delete.

Plug-in includes a number of Events like Create, Update, Delete,Retrieve,Retrieve Multiple,Send,Set-state,Assign,Route & Merge.

3.Workflow can only work as Asynchronous.

Whereas Plug-in can work both way Synchronous & Asynchronous.

4.Workflow can work on only Asynchronous Operations mean after the event occur.For example On creation of Lead an E-mail needs to be generated to the Owner of that Lead. In this example the E-mail will be send to the Owner of that Lead when the Lead get created.

Where's Plug-in can be implemented as Pre-Event and Post-Event.

5. Plug-in feature's include  Pre-Image & Post-Image.

Whereas Workflow include only Post-Image.

6. Workflow can run Automatically & Manually.

Whereas Plug-ins cannot be run manually; they only run on the steps for which they are registered.

NOTE:-

The biggest difference between the two techniques is in the timing of the actual update. Plugins can be executed either Synchronously or Asynchronously. Workflows function in an asynchronous manner.


The Synchronous operation will modify the data stream as it is being saved to the database, which can introduce a delay in the user's experience, but will provide results back to the user in a quicker fashion.

Asynchronous operations will happen shortly after the data has been saved which will not impact the user, but which may result in a slight delay between the time the user saved the record and when the value will be updated.

·         Workflows:

1.     Can be created via the CRM user interface, without code

2.     Can be run manually

3.     Always run asynchronously

Plugins:

4.     Necessarily written as .Net code

5.     Registered in CRM via tools in the SDK

6.     Cannot be run manually

7.     Support more events than workflow

8.     Can run before changes are committed to database, and hence cancel changes

9.     Can run synchronously or asynchronously

 

frequently get this question: When should I write a plug-in in Microsoft Dynamics CRM versus a workflow ? This dilemma is faced whenever custom logic must be executed in a pre and/or post operation.

Peter Hecke of Microsoft created this decision table on MSDN. Here is another pretty cool matrix done by Humberto on how to choose between these options: http://blogs.msdn.com/lezamax/archive/2008/04/02/plug-in-or-workflow.aspx. Additionally, I would like to point out some stuff that could also help when making up your mind.

First of all, remember than both workflows and plug-ins can attach to exactly the same events. Well, plug-ins have available a couple of more events but essentially both work on top of the same event model.Remember also that workflows always run asynchronous and hence, the Asynchronous Processing Service must be running on the server in order to run.

Workflows are more suitable if:

  • you want to achieve simple tasks faster, such as sending an e-mail or creating / updating assigning records. These actions can be set up very quickly with a workflow without any need of writing code.
  • you want to easily scale things to managers (if they were setup for user records), as it is possible to assign records to them.
  • you want to allow an advanced user to make changes to logic. As using the integrated workflow designer is user-friendly, an advanced user would be able to edit an existing workflow and change some rules according to business changes.
  • the logic should be available to be run on demand. I mean, when you are within an entity and navigates to “workflows” option in the left pane, all workflows marked as available to run on demand can be executed making them independent of an event trigger.
  • you want to send emails making use of templates and attaching files.

Workflows also allow running child workflows which may make a lot of sense in some scenarios. Nevertheless, be careful if you need the child workflow results in order to make decisions on your main workflow, as child workflows always run asynchronous, which means that it will trigger the child workflow and continue. If you need your primary workflow to wait until child ends, you will need to write a custom activity.

On the other hand, plug-ins are more suitable if:

  • you need to manipulate data before is saved.
  • you need to make validations before submitting the operation.
  • you want to be able to cancel an operation based on your validations.
  • immediate response to the user is needed.
  • you need retrieve values and/or take actions after operation has been completed (i.e. getting and autogenerated id)

It is important to note that since Dynamics CRM 4, plug-ins can also be configured to run asynchronous (Mode attribute while registering plug-in). Nevertheless, pre-event asynchronous plug-ins are not supported. In this case, you will have to set it up as synchronous mode.

Another important thing about plug-ins is the Deployment option which says if the plug-in is going to be executed on the server and/or Outlook client. If both executions are set up and client goes offline and online, plug-in calls are triggered after synchronization so be prepared in this case to execute your code twice!

Regarding to security:

  • Workflows triggered automatically will run under the security context of the workflow owner. On the contrary, if executed on demand, the security context of the user who executed the workflow will be used.
  • Plug-ins execute under the security context of the CRM Web application pool identity (typically NETWORK SERVICE). As this account typically maps to generic CRM SYSTEM user this typically works fine.

However, within plug-ins you can make use of impersonation to work under the credentials of the user who is making the request. For doing so, you just need to pass True to the CreatCrmService method under the context object.If you need to always impersonate with a specific user, you can do that by passing True as above and setting impersonatinguserid attribute while registering the plug-in.It is important to know that plug-in impersonation does not work offline. The logged on user credentials are always used in this case.

Requirement

Plug-in

Workflow

Needs a synchronous action to happen before or after an event occurs

x

 

The same piece of logic will be executed for different events and possibly on different entities

x

x

The logic needs to be executed while offline

x

 

Needs elevation of privileges (impersonation)

x

 

Needs to execute on events other than assign, create, update, setstate

x

 

The process/logic may take a long time to complete or will be a persistent process (multiple long running steps)

 

x

Needs an asynchronous action

x

x

End users will need to modify the process logic

 

x

Child sub processes will be triggered

 

x

It may also be the case that a combination of both approaches is required; a plug-in can trigger a workflow and a vice versa.  From the above matrix the most decisive factor is whether you need a synchronous action or not; if you do, plug-ins are the way to go, if you don’t then other factors need to be pondered.

What is an Email-Router?

The Microsoft Dynamics CRM E-mail Router is a software component that provides an interface between the Microsoft Dynamics CRM system and Microsoft Exchange Server 2003, Microsoft Exchange Server 2007, SMTP, or a POP3-compliant e-mail server. When E-mail Router is installed, it transfers e-mail messages to the Microsoft Dynamics CRM system, and it sends outgoing e-mail messages.

The Microsoft Dynamics CRM system stores e-mail messages as activity records. These e-mail activity records are stored in the Microsoft Dynamics CRM database and include both the contents of the e-mail message, such as the text of the message and its subject line, and relevant associations with other Microsoft Dynamics CRM records. For example, when a salesperson replies to a customer about a case, the salesperson creates an e-mail activity record that includes the text of the message plus information associating the e-mail activity record with the correct case record.

What are the steps to configure an Email router?

Ans: The E-mail Router Configuration Manager is a separate tool that you use to configure the E-mail Router. The E-mail Router Configuration Manager is installed with the E-mail Router and can be run after the E-mail Router Setup is completed.

All E-mail Router settings configured by using the E-mail Router Configuration Manager are saved in the Microsoft.Crm.tools.EmailAgent.xml file that is located in the folder where E-mail Router is installed.

The E-mail Router has several options. Before you run the E-mail Router Configuration Manager, you should determine how you want to deploy these options.

  • Incoming Configuration. The E-mail Router supports Exchange Server 2003, Exchange Server 2007, or POP3 e-mail systems for incoming e-mail messages.
  • Outgoing Configuration. Microsoft Dynamics CRM supports only SMTP e-mail systems for outgoing e-mail messages.
  • Mailbox Monitoring Type. The following two mailbox types can be configured:
    • Forward Mailbox. If you select Forward Mailbox when you run the E-mail Router Configuration Manager, a single mailbox will be used by E-mail Router to process e-mail messages. Then, for each Microsoft Dynamics CRM user or queue that will receive e-mail messages, a rule must be created for the user, or queue, by running the Rule Deployment Wizard.
    • Individual Mailboxes. If your e-mail system does not allow rules, where an e-mail message can be forwarded as an attachment, you must select Individual Mailbox Monitoring. Notice that, if you are using Exchange Server, we recommend that you use Forward Mailbox Monitoring.

 

How the Plug-in and Workflow will behave in case of Off-line client?

with the Outlook client, further extending your existing solution. You can choose to have the plug-in execute only against the server, run offline with the Outlook client, or both.

Remember that when a client goes offline and then returns online, any plug-in calls are executed after the data synchronizes with the server. If you choose to have your logic execute both with the server and offline, be prepared for Microsoft Dynamics CRM to execute your plug-in code twice.

Microsoft Dynamics CRM does not support an asynchronous implementation of a plug-in with offline deployment. If you want to have your plug-in work offline, you need to register it in synchronous mode.

Comments