Search This Blog

Thursday, December 30, 2021

Dynamics 365/CRM JavaScript Development Code

 Get the value of a Text field:

//-------------------------------------------------------------------------------------------
// getTextField
//-------------------------------------------------------------------------------------------

function getTextField(e){

    // Get the Form Context
    var formContext = e.getFormContext();

    // Get the value of a Contact's first name 
    var firstName = formContext.getAttribute("firstname").getValue();

}
Set the value of a Text field:
//-------------------------------------------------------------------------------------------
// setTextField
//-------------------------------------------------------------------------------------------

function setTextField(e){

    // Get the Form Context
    var formContext = e.getFormContext();

    // Set the Contact's first name to Joe
    formContext.getAttribute("firstname").setValue("Joe");

    // Set the Contact's first name to a variable
    var firstName = "Joe";
    formContext.getAttribute("firstname").setValue(firstName);

}

Get the text of a Lookup field:
//-------------------------------------------------------------------------------------------
// getLookupFieldText
//-------------------------------------------------------------------------------------------

function getLookupFieldText(e){

    // Get the Form Context
    var formContext = e.getFormContext();

    // Get the Parent Company name of a Contact
    var companyName = formContext.getAttribute("parentcustomerid").getValue()[0].name;

}
Set the value and text of a Lookup field:
//-------------------------------------------------------------------------------------------
// setLookupField
//-------------------------------------------------------------------------------------------

function setLookupField(e){

    // Get the Form Context
    var formContext = e.getFormContext();

    // First, you need the GUID, Name and Entity Type stored as variables
    // For this example, let's assume we have a "Parent Customer 2" field 
    // on a Contact and we want to populate it with the same value as the
    // Parent Customer 

    // Get the GUID 
    var id = formContext.getAttribute("primarycustomerid").getValue()[0].id;

    // Get the Company Name
    var name = formContext.getAttribute("primarycustomerid").getValue()[0].name;

    // Set the entity type - Account, Contact, Lead, Opportunity, etc. 
    var entityType = "Account";

    // If the ID isn't null, then create a variable to store the new Object
    if (id != null) {
        var lookupVal = new Array();
        lookupVal[0] = new Object();
        lookupVal[0].id = guid;
        lookupVal[0].name = name;
        lookupVal[0].entityType = entityType;
    
        // Set the value of the custom "Parent Customer 2" field
        formContext.getAttribute("new_parentcustomerid2").setValue(lookupVal);
    }

}
Get the value of a Numeric field
//-------------------------------------------------------------------------------------------
// getNumericField
//-------------------------------------------------------------------------------------------

function getNumericField(e){

    // Get the Form Context
    var formContext = e.getFormContext();

    // Get the value of a custom Age field on a Contact
    var age = formContext.getAttribute("new_age").getValue();

}
Set the value of a Numeric field:
//-------------------------------------------------------------------------------------------
// setNumericField
//-------------------------------------------------------------------------------------------

function setNumericField(e){

    // Get the Form Context
    var formContext = e.getFormContext();
    
    // Set the Contact's age to 25
    formContext.getAttribute("new_age").setValue(25);
    
    // Set the Contact's age to a variable
    var age = 25;
    Xrm.Page.data.entity.attributes.get("new_age").setValue(age);

}
Get the value of a Bit field:
//-------------------------------------------------------------------------------------------
// getBitField
//-------------------------------------------------------------------------------------------

function getBitField(e) {

    // Get the value of a custom "Is Decision Maker" checkbox on a Contact
    var decisionMaker = formContext.getAttribute("new_isDecisionMaker").getValue();

    // checked will return 1; unchecked will return 0;
}

Set the value of a Bit field:
//-------------------------------------------------------------------------------------------
// setBitField
//-------------------------------------------------------------------------------------------

function setBitField(e){

    // Get the Form Context
    var formContext = e.getFormContext();

    // Set the value of a custom "Is Decision Maker" checkbox to checked
    formContext.getAttribute("new_isDecisionMaker").setValue(1);

    // Set the value of a custom "Is Decision Maker" checkbox to unchecked
    formContext.getAttribute("new_isDecisionMaker").setValue(0);

}
Get the database value and text of an Option Set
//-------------------------------------------------------------------------------------------
// getOptionSetField
//-------------------------------------------------------------------------------------------

function getOptionSetField(e){

    // Get the Form Context
    var formContext = e.getFormContext();
    
    // Get the database value of the Opportunity Status Reason field
    var statusReason = formContext.getAttribute("statuscode").getValue();

    // Get the text of the Opportunity Status Reason field
    var statusReason = formContext.getAttribute("statuscode").getText();

}
Set the text and value of an Option Set:
//-------------------------------------------------------------------------------------------
// setOptionSetField
//-------------------------------------------------------------------------------------------

function setOptionSetField(e){

    // Get the Form Context
    var formContext = e.getFormContext();

    // Set the value of the Opportunity Status Reason field

    // Note: Option Set fields are set based on the database id, rather than the name
    formContext.getAttribute("statuscode").setValue(100000001);

    // Set the value of the Opportunity Status Reason field to a variable
    var statusReasonId = 100000001;
    formContext.getAttribute("statuscode").setValue(statusReasonId);

}
Get the value of a Date field (01/31/2018 or 31/01/2018)
//-------------------------------------------------------------------------------------------
// getDateField
//-------------------------------------------------------------------------------------------

function getDateField(e){

    // Get the Form Context
    var formContext = e.getFormContext();

    // Get the value of the Opportunity Est. Close Date 
    var date = formContext.getAttribute("estimatedclosedate").getValue();
    if (date != null) {
        var day = date.getDate();
        var month = date.getMonth();
        var year = date.getFullYear();
        month++;
  
        // Add leading 0's to single digit days and months
        if (day < 10) {day = "0" + day;}
        if (month < 10) {month = "0" + month;}
  
        // Create a variable with the formatted date as MM/DD/YYYY
        var formattedDate = month + "/" + day + "/" + year;
        
        // Create a variable with the formatted date as DD/MM/YYYY
        //var formattedDate = date + "/" + month + "/" + year;
    }
}

Customizing forms:

Show/hide form sections

//-------------------------------------------------------------------------------------------
// showHideFormSections
//-------------------------------------------------------------------------------------------

// Consider using Business Rules before using this code

function showHideFormSections(e){

    // Get the Form Context
    var formContext = e.getFormContext(); 

    // Create variables for the tab an section
    var tab=formContext.ui.tabs.get("TabName");
    var section = tab.sections.get("SectionName");

    // Hide a section
    section.setVisible(false); 

    // Show a section
    section.setVisible(true);

}
Show/hide form fields:
//-------------------------------------------------------------------------------------------
// showHideFields
//-------------------------------------------------------------------------------------------

// Consider using Business Rules before using this code

function showHideFields(e){

    // Get the Form Context
    var formContext = e.getFormContext(); 

    // Show a form field
    formContext.getControl("new_formField").setVisible(true);

    // Hide a form field
    formContext.getControl("new_formField").setVisible(false);

}
Set field requirement level:
//-------------------------------------------------------------------------------------------
// setRequiredLevel
//-------------------------------------------------------------------------------------------

function setRequiredLevel(e){

    // Consider using Business Rules before using this code
    
    // Get the Form Context
    var formContext = e.getFormContext();

    // Set Opportunity Est. Close Date as optional
    formContext.getAttribute("estimatedclosedate").setRequiredLevel("none");

    // Set Opportunity Est. Close Date as required
    formContext.getAttribute("estimatedclosedate").setRequiredLevel("required");

}
Use the value of an Option Set to set up form:
//-------------------------------------------------------------------------------------------
// setCustomFormLayout
//-------------------------------------------------------------------------------------------

function setCustomFormLayout(e){
    
    // Consider using Business Rules before using this code
    
    // Get the Form Context
    var formContext = e.getFormContext();

    // This example assumes a company uses the same Opportunity form, 
    // but shows/hides sections and makes fields required/optional based
    // on the value of a new_division field

    // hook this up to the onLoad event and the onChange event of the new_division field

    // Create variables for the form sections
    var tab = formContext.ui.tabs.get("tab_division");
    var sectionComputers = tab.sections.get("section_computers");
    var sectionMonitors = tab.sections.get("section_monitors");
    var sectionPeripherals = tab.sections.get("section_peripherals");
    
    // Set all sections as hidden
    sectionComputers.setVisible(false);
    sectionMonitors.setVisible(false);
    sectionPeripherals.setVisible(false);
    
    // Set all required fields as not required
    formContext.getAttribute("new_computerField").setRequiredLevel("none");
    formContext.getAttribute("new_monitorField").setRequiredLevel("none");
    formContext.getAttribute("new_peripheralField").setRequiredLevel("none");
    
    // Get the text of the Division field 
    var division = formContext.getAttribute("new_division").getText();
    
    // Make sure Division is populated
    if (division != null) {
    
        // Use a switch statement to set up the form for each division
        switch(division) {
        
            // Computer division
            case "Computers":
            sectionComputers.setVisible(true);
            formContext.getAttribute("new_computerField").setRequiredLevel("required");
            break;
            
            // Monitor division
            case "Monitors":
            sectionMonitors.setVisible(true);
            formContext.getAttribute("new_monitorField").setRequiredLevel("required");
            break;
            
            // Peripherals division
            case "Peripherals":
            sectionPeripherals.setVisible(true);
            formContext.getAttribute("new_peripheralField").setRequiredLevel("required");
            break;
        }
    }
}
Open a specific form based on a field value:
//-------------------------------------------------------------------------------------------
// openSpecificForm
//-------------------------------------------------------------------------------------------

function openSpecificForm(e){
    
    // Get the Form Context
    var formContext = e.getFormContext();

    //if the form is update form
    if (formContext.ui.getFormType()==2) {
        
        // variable to store the name of the form
        var lblForm;
    
        // get the value picklist field
        var relType = formContext.getAttribute("customertypecode").getValue();
    
        // switch statement to assign the form to the picklist value
        // change the switch statement based on the forms numbers and picklist values
        switch (relType) {
            case 1:
                lblForm = "Information1";
                break;
            case 2:
                lblForm = "Information2";
                break;
            default:
                lblForm = "Information";
        }
        
        //check if the current form is form need to be displayed based on the value
        if (formContext.ui.formSelector.getCurrentItem().getLabel() != lblForm) {
            var items = Xrm.Page.ui.formSelector.items.get();
            for (var i in items) {
                var item = items[i];
                var itemId = item.getId();
                var itemLabel = item.getLabel()
    
                if (itemLabel == lblForm) {
                    //navigate to the form
                    item.navigate();
                } 
            }
        } 
    }
} 

Pulling data from related entities:

//-------------------------------------------------------------------------------------------
// getRelatedInfo
//-------------------------------------------------------------------------------------------

function getRelatedInfo(e) {

    // Get the Form Context
    var formContext = e.getFormContext(); 

    // Set variables for the related entity to get data from
    try{var recordGuid = formContext.getAttribute("lookupField").getValue()[0].id; }
    catch(err) {}

    // If the recordGuid contains data
    if (recordGuid != null) {
    
        // Use the WebApi to get data    
        Xrm.WebApi.retrieveRecord("entityName", recordGuid, "?$select=name,revenue").then(
            
            // If successful, set variables for the results 
            function success(result) {
                var abc = result.field1Name;
                var def = result.field2Name;
                
                // Set the form fields
                formContext.getAttribute("field1").setValue(abc);

            },
            // If there's an error in the WebApi call, log the error and alert the user
            function (error) {
                console.log(error.message);
                // handle error conditions
                var errorMessage = 'Error: An error occurred in the GetRelatedInfo function: ' + error.message;
                var alertStrings = { confirmButtonLabel: "Yes", text: errorMessage };
                var alertOptions = { height: 120, width: 260 };
                Xrm.Navigation.openAlertDialog(alertStrings, alertOptions).then(
                    function success(result) {
                        console.log("Alert dialog closed");
                    },
                    function (error) {
                        console.log(error.message);
                    }
                );  
            }
        );
    }
}

Reference:https://www.dynamicconsulting.com/2020/08/14/dynamics-365-crm-javascript-reference/


Saturday, December 18, 2021

Microsoft Dynamics CRM Interview Questions and Answers

 Microsoft Dynamics CRM Interview Questions

The increased demand for CRM tools has created a lot of opportunities in the industry. Microsoft Dynamics CRM is one of the leading CRM platforms in the present age. Organizations are adopting it because of its wide range of benefits which include high customer loyalty, better marketing strategies, enhanced analytics, etc. 

Here, we have gathered a set of frequently asked Microsoft dynamics CRM interview questions for freshers as well as for the experience. Master these and you will definitely clear your interview with flying colours.

1Q) What is the difference between Dialogs and workflow?

Ans: Dialogs refer to synchronous processes that require user input, a wizard-like interface. Whereas Workflow refers to an Asynchronous process that requires no user input and it is a background process

2Q) What is Plug-in?

Ans: A plug-in is a custom business logic that functions for integrating Microsoft Dynamics CRM 2011 with Microsoft Dynamics CRM Online. This integrating is to augment or modify the standard behaviour of the platform.

3Q) What is workflow?

Ans: Workflow involves the automation of business processes from one party to another whose actions are in accordance with a set of rules.

4Q) What is the difference between plug-in and workflow with regard to security restrictions?

Ans: The user requires a system admin or system customizer security role and membership in the development administrator group, in order to register a plug-in with the platform. Whereas, the user can use the web application for workflow.

5Q) When will you use workflow?

Ans: The answer would be, it depends on the characteristics of the task that is under consideration. And the same thing applies to plug-in.

6Q) What is an E-mail router in Microsoft Dynamics CRM

Ans: E-mail router in MS CRM forms the software component which creates an interface between the Organization’s messaging system and the Microsoft Dynamics CRM deployment.

7Q) Should my Active Directory Domain have Microsoft Exchange Server installed in it?

Ans: No, it is not necessary. One can use in-house or external SMTP and POP3 services.

8Q) How can you enable or disable the form assistant? And how to be sure that the form assistant is expanded or not?

Ans: One can use the following pathway to ensure this– 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”.

Do you want to Master Microsoft Dynamics? Then enrol in "Microsoft Dynamics Training" This course will help you to master Microsoft Dynamics

9Q) What is meant by the Metadata services of MSCRM?

Ans: The metadata of MSCRM holds information about the attribute and the entity. For instance, platform name, the data type of attribute, size of the attribute, display name, etc

10Q) What is Discovery Services?

Ans: The discovery services function for determining the correct organization and URL. MSCRM has many servers, each of which it, might be dedicated to multiple organizations.

11Q) What is ‘Append’ and ‘Append To’ privilege in MSCRM? Give one example of it?

Ans: ‘Append’ and ‘Append To’ privileges works together. ‘Append To’ privilege will allow other entities to get attached to the entity. ‘Append’ privilege will allow the entity to attach the records to the entity with ‘Append To’ privilege.

Let us understand this with a simple example:

Let us say that you want to attach a note to a case then note entity should have ‘Append’ access right and the 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? The answer is “NO” because we need to create a 1: N relationship between ‘TestCustomEntity1’ and ‘TestCustomEntity2’.

Now the user who has the above-mentioned access right in his security role will only be able to add ‘TestCustomEntity2’ records to ‘TestCustomEntity1’.

12Q) How to create a Custom Entity record using SDK?

Ans: Using a Dynamic Entity.

13Q) How to join two tables 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.

14Q) Can we modify the name of the Root Business Unit?

Ans: No; We will have to re-install MSCRM.

15Q) Suppose if I have 20 user licenses and I have created 20users. What will happen if I create a 21st User?

Ans: The 21st User will get created in MSCRM but that user will be in a disabled state.

16Q) What is the maximum number of tabs allowed on a Microsoft Dynamics CRM 4.0 form? 

Ans: 8

17Q) How to enable/disable the form assistant? How to make sure the form assistant is expanded/collapsed 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”.

18Q) What is your CRM experience?

Ans: A summary of CRM experience, your CRM career journey.

Mention – Roles and experience, concentrate on the most relevant experience for the role

19Q) Tell me about your last CRM project?

Ans:

  • Size
  • Complexity
  • Customisations
  • Integration

Mention- Mention different customizations, difficulties experienced, and how you overcame them.  Show what skills you used and will bring to the role.

20Q) What development tools do you use for CRM development?

Ans: Mention – CRM Developer toolkit, XrmToolkit, Ribbon Workbench, Plugin Registration.  Tools used in CRM development which you use.

21Q) When do you use managed and unmanaged solutions?

Ans:  Mention – Discuss your experiences with Solutions, how you used them.  How would you use solutions?

22Q) What are the disadvantages of managed and unmanaged solutions?

Ans: Explain when to use managed solutions and when to use unmanaged solutions.  Solutions are a key part of releasing the customization to the customer if done badly can cause problems and waste time.

MS CRM Interview Questions

23Q) How do you set up your CRM solutions?

Ans:  Mention – Your experiences or ideas of how you think solutions should be created.  There is no right or wrong way

24Q) What are the potential problems with multiple developers working on a project?

Ans: Mention – How you have developed solutions with a team of developers and what problems can arise.

25Q) How do you debug a plugin?

Ans: Mention – How you debug, e.g. Unit Test, console app, Remote Debugging or plugin registration tool

26Q) How do you debug Javascript?

Ans: Mention – Pressing the F12 key and getting your breakpoints setup and hit.  If you haven’t done this, try it out, it’s awesome.

27Q) Have you integrated CRM with other systems, what was it, and did you have any problems?

Ans:  Mention – Any experience you have, the problems you experienced, and how you overcame them.

28Q) How do you estimate CRM customizations?

Ans: Mention – explain how you estimate customizations.  e.g. breaking up the work into smaller chunks, taking into account risks and experience.

29Q) Tell me about a project which went wrong, what were the reasons for the problems, how did you cope?

Ans: Mention – The lessons learned and how you avoid potential problems.

30Q) How do you test your code?

Ans: Mention – Unit testing knowledge and experience if you have it.  Your process of testing code.

31Q) Explain how pre-validate, pre and post are different plugins?

Ans: Mention – Plugin stages, images, and when you use each.

32Q) How are Asynchronous and synchronous plugins different?

Ans: Mention – Time.  Synchronous plugins must run straight away, async plugins can be delayed.

33Q) What is a common cause of plugin bugs?

Ans: Mention – The most common error is an infinite loop caused by updating fields, which triggers the plugin to run again and again

34Q) What is early binding, what are the benefits and the drawbacks?

Ans: Mention – Early binding creates strongly typed code which is easier to read and moves the errors to compile-time and not runtime.  Early binding stops syntax errors which can occur with late-bound code.

35Q) Should you keep up with the latest release of Microsoft Dynamics CRM?

Ans: Mention – Whenever you upgrade your CRM your customizations might stop working but you get the new features and fixes.  If you delay you have more versions to catch up to.

36Q) How do you keep up with Microsoft Dynamics CRM news?

Ans: Mention – Blogs, certifications, Microsoft Dynamics training Hyderabad community page

37Q) What is the effect of making a plugin sandboxed?

Ans: Mention – CRM online can only deploy Sandboxed plugins and  Limitations such as

  • Access to the file system (C Drive)
  • system event log
  • certain network protocols
  • registry
  • You cannot access any other DLL’s
  • IP addresses cannot be used
  • Only the HTTP and HTTPS protocols are allowed.
  • In isolated mode, you cannot call any external DLL’sDLL’s in the GAC

38Q) When do you use OData?

Ans: Mention – OData is the primary method to retrieve information from related records

39Q) What Access teams and why would you use them?

Ans: Mention – The purpose of access teams are to easily share records with a team of people where the members of the team are not static.

40Q) What is Metadata and how is it used in CRM?

Ans: Mention – Metadata is the data about data.  CRM has lots of Metadata, types of field, options value, auditing, etc.

To retrieve Metadata you need use web services, RetrieveEntityRequest for entity Metadata and RetrieveAttributeRequest

41Q) What things should you consider when choosing between CRM online or on Premise?

Ans: Mention – The big difference is you can’t see or modify the CRM server and SQL server.  CRM Online limitations, such as Sandbox plugins, workflow limit of 200, custom entities 300, storage is a monthly fee.

MS Dynamics CRM Interview Questions

42Q) Why is code readability important?

Ans: Mention – reading and understanding code is important because code spends most of its time in a maintenance state.  Developers will need to read and understand code to extend the code, debug the code.

43Q) Why Code Readability is important If a user complained a particular CRM form is loading slowly, how to investigate, what to look for?

Ans: CRM 2011/2013 Investigating CRM Form Performance issues

44Q) If CRM stopped working, what would you check?

Ans: Mention – CRM Async services stopped, APP Pool service account password, SQL Server services, Disk space, Active Directory

45Q) What is the POA table and how can it affect performance?

Ans: Mention – security, sharing problems.

On Creation Of Entity How Many Tables Will Be Created At Back End?

Entityname+Base, EntityName+ExtensionBase example: if you created an entity bank then the following tables will be created at CRM database                         

new_bankbase, new_bankentensionbase

Can We Hide Tab In Ms. Dynamic Crm Form Using Javascript? How?

Yes we can hide particular section using following line of code. Xrm.Page.ui.tabs.get("tab_name").sections.get("section_name").setVisible(false);  

 46Q) What is an Unmanaged Solution? 

Ans: There are two types of solutions in Microsoft Dynamics: Managed and Unmanaged. An Unmanaged solution is one that is under development or not yet ready for distribution. A completed unmanaged solution needs to be exported and packaged as a managed solution for its distribution. 

47Q) What is Microsoft XRM? 

Ans: We can interpret XRM as “eXtreme” Relationship Management, or “Any” (the X can be any value) Relationship Management. For example, an organization might be managing contacts, policies, parking violations, property taxes, etc. Hence, with the term XRM, you can manage the relationship of anything within the organization.

48Q) What is the ribbon workbench in Microsoft Dynamics? 

Ans: The Ribbon Workbench is a Microsoft Dynamics managed solution. After downloading it, you have to import it in the Dynamics instance by going to Settings > Solutions > Import. 

After a successful import of the solution, refresh the page, and you can see the Ribbon Workbench button in the solutions area of Dynamics 365. 

49Q) What is the Microsoft CRM SDK? 

Ans:  The CRM SDK contains all the functions which are essential to work with CRM. It describes all the documentation of all the features in CRM. 

50Q) What are the minimum privileges required to develop a solution? 

Ans: The minimum privileges required to develop a solution are: 

  • Read-write of solutions, web resources, customizations, and publishers 

  • Publish customizations 

  • Import and export customizations 

51Q) List some of the components of a solution. 

Ans: Following are some of the components that can be added to a solution: 

  • Site map 

  • Security role 

  • Report 

  • Plug-in assembly 

  • Message 

  • Form 

  • Field 

  • Entity 

  • Dashboard 

  • Connection role 

  • Business role 

52Q) What is the use of Managed Properties? 

Ans: Managed properties help in identifying the component of customizable managed solutions. If you want to apply managed properties, then an entity needs to be included using a managed solution and downloading it to another environment. 

53Q) What is a Publisher?

Ans: Each MS CRM solution has a publisher. The publisher works with data sources to track modification over a timeframe. The default publisher of microdynamics is called “Default Publisher for”. You can also create a customized publisher for a solution. 

54Q) What are web resources? 

Ans: Web resources are the components of CRM for developing HTML, JS, Images, Silverlight, and style sheet files. The different web resources in CRM are: 

  • Webpage (HTML) 

  • Script (JScript) 

  • Image (PNG, GIF, JPG, and ICO) 

  • StyleSheet (XSL, CSS) 

  • Data (XML) 

  • Silverlight (XAP) 

55Q) What are the data types in CRM? 

Ans: The different types of data in CRM are: 

  • Single and multiple lines of texts 

  • Date and time 

  • Decimal number 

  • Floating point number 

  • Option set 

  • Lookup 

  • Currency 

  • Whole number 

  • Two options 

  • Image 

56Q) What are the products provided by Microsoft Dynamics? 

Ans: Microsoft Dynamics provides two products. 

CRM Online 

It is Microsoft’s cloud-based service. It includes application servers, licensing, databases, setups, etc. CRM is a subscription-based service that businesses use when they cannot manage the technicalities of CRM implementation. 

CRM On-Premise 

In CRM On-Premise, applications and databases are deployed on client-server instead of Microsoft servers. It gives full control for customizations, database, backups, deployments, licensing, etc. Businesses use CRM on-premise when they need customized CRM solutions and better integration. 

Dynamics CRM Interview Questions

57Q) Define entity?

Ans: An entity model manages business data. It is a database table that stores the information in an organized format. Some of the different types of entities are: 

  • Cases 

  • Contacts 

  • Accounts 

  • Opportunities 

  • Leads 

  • Activities 

58Q) What are the steps to export a solution as a managed solution? 

Ans: The steps to export a solution as a managed solution are: 

  1. Go to Settings. And then, Solutions. 

  2. Click on the solution that you want to export. 

  3. Select Export. 

  4. On the“Package Type” page, select the “Managed” solution type. 

  5. Complete the remaining steps in the wizard. 

  6. Click on Save Changes. 

59Q) What is the function of a System Administrator? 

Ans: A system administrator gives full access to the files that are protected in MS CRM. 

60Q) Define the ‘Insufficient Permission’ error. 

Ans: When a user makes an object using security fields, an insufficient permission error is a message received on creating a record. 

61Q) List the types of Relationship behaviour? 

Ans: Given below are the different types of relationship behaviour. 

  • Parental 

  • Configurable Cascading 

  • Referential 

  • Referential, Restrict Delete 

62Q) How does CRM help in sales? 

Ans: The various ways in which CRM can help in sales are: 

  • It helps the sales team with customer management. 

  • It helps in lead generation. 

  • It centralizes customer data, which can be useful for the sales department of a company. 

63Q) What are the differences between Find and Advanced Find? 

Ans: The main differences between Find and Advanced Find are: 

 

Find 

Advanced Find 

It performs a search on an attribute. 

It performs a search on the conditions and attributes for which the user customizes or runs. 

It is faster as it searches for one attribute and returns the result. 

It is slower as it searches for all the attributes and conditions while parsing through records. 

It is applicable on only active records. 

It is applied to all the records. 

It filters only one condition. 

It filters multiple conditions. 

 

64Q) What are the changes in CRM? 

Ans: Few of the changes that are taking places in CRM are: 

  • The customer records are at the centre of the data universe. 

  • New and improved visibility is evolving for intelligent decision making. 

  • Companies are scaling to more customers. 

  • Better tools. 

  • Custom dashboards. 

65Q) What are the different web services available in MS CRM? 

Ans:

The web services available are: 

Deployment web service 

The uses of this service are: 

  • To create and import organizations. 

  • To enable and disable organizations. 

  • To add deployment administrators. 

  • To configure IFD and claims-based authentication. 

Discovery web service 

The uses of this service are; 

  • To identify the available organization information in a deployment. 

Organization web service. 

The uses of this service are: 

  • To access data and metadata. 

66Q) How to add/remove columns in an entity lookup window? 

Ans: The steps to add/remove columns in an entity lookup window are: 

  1. Go to Settings. 

  2. Under Customization, select the entity. 

  3. Click ‘Forms and View’ on the left navigation page. 

  4. Double click the ‘Entity Lookup View.’ 

  5. A dialog box will appear that contains the Add/Remove and Sorting options for a lookup view. 

67Q) What are the differences between GAC, Database, and Disk deployments? 

Ans: The key differences are: 

GAC Deployment 

Database Deployment 

Disk Deployment

It does not support CRM 2011 online deployments. 

It supports CRM 2011 online deployments. 

It does not support CRM 2011 online deployments. 

You can refer to external DLL assemblies used in Plugin only if the registration is in GAC. 

You can refer to external DLL assemblies used in Plugin only if the registration is in GAC. 

You can refer to external DLL assemblies from the disk and from GAC. 

68Q) What are the differences between early binding and late binding? 

Ans: 

Early binding 

Late binding 

In early binding, the compiler binds the objects to methods at the compile time. 

In late binding, the compiler binds the objects to methods at the runtime. 

It is also called static binding. 

It is also called dynamic binding. 

Example: Function overloading. 

Example: Function overriding.