What is MS CRM?
Microsoft Dynamics CRM Titan has added one more: The Power of Choice. This is driven by the three new key features:
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.
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?
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
· 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
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?
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.
· 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
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?
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.
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.
1. Can be created via the CRM user interface, without code
2. Can be run manually
3. Always run asynchronously
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:
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:
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:
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.
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.
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.