Thursday 27 December 2012

Qualify Lead ribbon button behaviour overriding.

I have seen some of the posts on MS CRM forum regrading the "Qualify Lead" button behaviour.
Some fellow are interested in the removal of the "Qualify Lead" dialog altogether.
In this post I am going to override the behaviour of the Lead Qualify button.

Customization aim:To remove the "Convert Lead" dialog and qualify the lead into "Account","Contact" and "Opportunity" whenever user clicks qualify lead ribbon button.

Question:What things needs to be customized in order to achieve this.
Answer:

1)We need to customize the ribbondefinition of lead entity i.e  RibbonDiffXml.
2)We need to create one custom field on Lead form.
3)We need to write a JavaScript function.
4)We have to write a plugin which will take care of creation of account,contact and opportunity.

Solution steps:

1.Customizing the Lead ribbon button :

1.1) Create a solution containing lead entity.Export it and save it.Extract the solution file.
        Open the "customizations.xml" search the <RibbonDiffXml> tag.
        Replace this with the following

<RibbonDiffXml>
        <CustomActions >
          <CustomAction Id="Mscrm.Form.lead.ConvertLead.CustomAction" Location="Mscrm.Form.lead.ConvertLead" Sequence="100">
            <CommandUIDefinition>
              <Button Id="Mscrm.Form.lead.ConvertLead" ToolTipTitle="$Resources:Ribbon.Form.opportunity.MainTab.Actions.Convert" ToolTipDescription="$Resources:Ribbon.Tooltip.ConvertLead" Command="Mscrm.Form.lead.Convert" Sequence="5" Alt="$Resources:Ribbon.Form.opportunity.MainTab.Actions.Convert" LabelText="$Resources:Ribbon.Form.opportunity.MainTab.Actions.Convert" Image16by16="/_imgs/ribbon/ConvertLead_16.png" Image32by32="/_imgs/ribbon/ConvertLead_32.png" TemplateAlias="o1" />
            </CommandUIDefinition>
          </CustomAction>
        
        </CustomActions>
        <Templates>
          <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
        </Templates>
        <CommandDefinitions >
          <CommandDefinition Id="Mscrm.Form.lead.Convert">
            <EnableRules />
            <DisplayRules>
              <DisplayRule Id="Mscrm.LeadIsOpen" />
              <DisplayRule Id="Mscrm.CanWriteLead" />
            </DisplayRules>
            <Actions>
              <!--<JavaScriptFunction FunctionName="convertLead" Library="/_static/sfa/leads/lead.js" />-->
              <JavaScriptFunction FunctionName="convertLead" Library="$webresource:new_CustomRibbonJavascript" />
            </Actions>
          </CommandDefinition>
        </CommandDefinitions>
        <RuleDefinitions>
          <TabDisplayRules />
          <DisplayRules >
            <DisplayRule Id="Mscrm.LeadIsOpen">
              <FormStateRule State="Existing" />
            </DisplayRule>
            <DisplayRule Id="Mscrm.CanWriteLead">
              <EntityPrivilegeRule EntityName="lead" PrivilegeType="Write" PrivilegeDepth="Basic" />
            </DisplayRule>
          </DisplayRules>
          <EnableRules />
        </RuleDefinitions>
        <LocLabels />
      </RibbonDiffXml>


Note: In the above XML  default functionality is overwritten by a new webresource called new_CustomRibbonJavascript.


2.Lead form Customization:

Customize the lead form create one radio button with logical name "new_isleadqualified" having default value false.Hide this field on the form.We will make use of this field for writing our logic.



3.Write the Javascipt function:
Create a webresource  called "new_CustomRibbonJavascript" and add the following JavaScript function to it.

 
function convertLead() {
 
    if (Xrm.Page.getAttribute("new_isleadqualified").getValue() != null && Xrm.Page.getAttribute("new_isleadqualified").getValue() == false) {
        var answer = confirm("Do you want to qualify the lead");
        if (answer) {
            Xrm.Page.getAttribute("new_isleadqualified").setValue(true);
            Xrm.Page.data.entity.save();
        }
    }
}


4.Writing the plugin:
Create a plugin as given below


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Crm.Sdk;
using Microsoft.Xrm.Sdk;
using System.ServiceModel;
using System.Diagnostics;
using System.Data.Services;
using System.Data.Services.Client;
using contoso;
using System.Xml;
using Microsoft.Crm.Sdk.Messages;
 
namespace Xrm.Lead
{
    public class LeadPostUpdate : IPlugin
    {
 
        public void Execute(IServiceProvider serviceProvider)
        {
           
            Entity lead;
            
            IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
 
            if (context.InputParameters.Contains("Target") && context.InputParameters["Target"is Entity)
            { 
                //Verify that the entity represents a Lead
                if (((Entity)context.InputParameters["Target"]).LogicalName != "lead" || context.MessageName != "Update")
                {
                    return;
                }
                else
                {
                    lead = (Entity)context.InputParameters["Target"];
                }
 
            }
            else
            {
                return;
            }
            string msg = string.Empty;
            try
            {
                
                IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
             
                if (context.Depth == 1)
                {
                    Entity updatelead = new Entity("lead");
                   
                    updatelead["new_isleadqualified"] = false;
                    updatelead["leadid"] = lead.Id;                 
                    service.Update(updatelead);
 
                    QualifyLeadRequest req = new QualifyLeadRequest();
 
                    req.CreateAccount = true;
                    req.CreateContact = true;
                    req.CreateOpportunity = true;
 
                    EntityReference currency = new EntityReference();
                    currency.LogicalName = "transactioncurrency";
                    currency.Id = new Guid("2D2983F1-9A4A-E211-B48A-1CC1DEE8CEB7");//GUID of the Currency being Used
                    req.OpportunityCurrencyId = currency;
                    req.SourceCampaignId = null;
                    req.OpportunityCustomerId = null;
 
                    req.LeadId = new EntityReference("lead", lead.Id);
                    req.Status = new OptionSetValue(3);
                    var res = (service.Execute(req) as QualifyLeadResponse);  
                   
                }             
              
 
 
            }
            catch (FaultException<OrganizationServiceFault> ex)
            {
                throw new InvalidPluginExecutionException("An error occurred in the plug-in.", ex);
            }
            catch (Exception ex)
            {
                throw ex;
            }
           
 
        }
    }
}


5.Register the plugin as per the below screen shots:




After registration of plugin  we are done with our desired task of overwriting the Lead Qualify ribbon
button.

Below are the screen shots of the result.











I hope it will be useful to implement this for lead.Similarly we can override the Opportunity and Case.

Thanks and Regards,
Yusuf


Friday 14 September 2012

Workaround for text editor error after applying update Rollup 10

MS CRM  2011 developers might not be too concerned with performing actual queries on live customer data, but they will certainly be annoyed when encountering the following prompt after editing a JavaScript web resource: "You have exceeded the maximum number of 200 characters in this field; it will be truncated."



Below is the workaround to work with editor

1.Open the editor.
2.Copy your code and paste it in editor.
3.Click OK button.
4.You will get the error prompt ""You have exceeded the maximum number of 200 characters in this field"
5.Press "Cancel" button on prompt.
6.Now press "OK" button on editor.
7.You can see that all your code has been copied  successfully without truncation.

Hope this helps, Enjoy Coding :) 

Thursday 13 September 2012

Removing duplicates using sql script in MS CRM 2011

Recently we have a requirement where we have to remove the duplicates records using sql query in MS CRM 2011.

To better understand the requirement let's describe entity and their relationship

Duplicate Entity :AccountMapping
Related entities related to AccountMapping  as below

Having 1:N relationship with AccountMapping

1) CSCall ( One Accountmapping can have multiple CSCalls)

Having N:1 relationship with AccountMapping
1)Account (One  Account can have multiple AccountMapping  )

Problem Screenshot



What we need to achieve

1)We need to remove the duplicate account mappings.
Example :If their are three duplicate Accountmapping having same AccountNumber then we need to delete
two duplicate Accountmapping

Challenges:Difficulty we were facing was that we have to update the references of the to be deleted duplicate AccountMapping to one AccountMapping records.
Example: If we have one account with two duplicate accountmapping(Say AM-1,AM-1) where first AM-1
is  referred by two CSCalls(Say CS-1,CS-2)and second AM-1 is  referred by one CSCall (Say- CS-3).
If  We are deleting the duplicate accountmapping say second AM-1 then we have to programatically
change the reference of CS-3 to first AM-1.

Refer below diagram to know the requirement.



Solution :
Query 1 :Sql script to get the  all Accounts which have duplicate Accountmapping

 

select new_accountid,new_accountidname,new_accountnumber,COUNT(1) as DuplicateRecordCount 
from Filterednew_accountmapping  am
inner join FilteredAccount ac on ac.accountid = am.new_accountid
where new_accountid is not  null ac.statecode =0 and am.statecode =0 
Group By new_accountid,new_accountidname,new_accountnumber
Having COUNT(1) >1

Query 2:Delete duplicates account mapping which do not referenced in CS Calls


begin tran
  
 delete from new_accountmappingExtensionBase
 
 where new_accountmappingid in
 (
 
 Select  distinct 
a.new_accountmappingid
From
(select  new_accountmappingid,A.new_accountid,A.new_accountidname,A.new_accountnumber from Filterednew_accountmapping CS
join(select new_accountid,new_accountidname,new_accountnumber,COUNT(1) as DuplicateRecordCount 
from Filterednew_accountmapping  am
inner join FilteredAccount ac on ac.accountid = am.new_accountid
 where new_accountid is not  null and ac.statecode =0    and am.statecode =0
--where Am.new_accountidname='Village Vet of Urbana'
Group By new_accountid,new_accountidname,new_accountnumber
Having COUNT(1) >1)A
on CS.new_accountid=A.new_accountid And
CS.new_accountidname=A.new_accountidname And
CS.new_accountnumber=A.new_accountnumber)A
left outer Join Filterednew_cscase C
on A.new_accountmappingid=c.new_cscallaccountmappingid 
 where C.new_cscallaccountmappingid  is null
 
 )

Final Query :Making use of above sql queries Query 1Query2 also we have written a CURSOR which updates the references of CSCalls and deletes the duplicate Accountmapping.
 -------------------------------------------------------------------------------
 -- Delete duplicates account mapping which do not referenced in CS Calls
 -------------------------------------------------------------------------------

begin tran
  
 delete from new_accountmappingExtensionBase
 
 where new_accountmappingid in
 (
 
 Select  distinct 
a.new_accountmappingid
From
(select  new_accountmappingid,A.new_accountid,A.new_accountidname,A.new_accountnumber from Filterednew_accountmapping CS
join(select new_accountid,new_accountidname,new_accountnumber,COUNT(1) as DuplicateRecordCount 
from Filterednew_accountmapping  am
inner join FilteredAccount ac on ac.accountid = am.new_accountid
 where new_accountid is not  null and ac.statecode =0    and am.statecode =0
Group By new_accountid,new_accountidname,new_accountnumber
Having COUNT(1) >1)A
on CS.new_accountid=A.new_accountid And
CS.new_accountidname=A.new_accountidname And
CS.new_accountnumber=A.new_accountnumber)A
left outer Join Filterednew_cscase C
on A.new_accountmappingid=c.new_cscallaccountmappingid 
 where C.new_cscallaccountmappingid  is null
 
 
 )
 
 -------------------------------------------------------------------------------
 -- Update CS Call reference and delete duplicates account mapping
 -------------------------------------------------------------------------------
 --rollback tran
begin tran

DECLARE @Accountid uniqueidentifier, @AccountName nvarchar(100), @AccountNumber nvarchar(100), @AccountMapId uniqueidentifier

DECLARE My_cursor CURSOR FOR 

select new_accountid,new_accountidname
from Filterednew_accountmapping  am
inner join FilteredAccount ac on ac.accountid = am.new_accountid
where new_accountid is not  null and ac.statecode =0
Group By new_accountid,new_accountidname,new_accountnumber
Having COUNT(1) >1

OPEN My_cursor

FETCH NEXT FROM My_cursor INTO @Accountid, @AccountName

WHILE @@FETCH_STATUS = 0
BEGIN

 Select  distinct TOP 1
 @AccountMapId = a.new_accountmappingid, @AccountNumber = a.new_accountnumber  From
 (select  new_accountmappingid,A.new_accountid,A.new_accountidname,A.new_accountnumber from Filterednew_accountmapping CS
 join(select new_accountid,new_accountidname,new_accountnumber,COUNT(1) as DuplicateRecordCount 
 from Filterednew_accountmapping  am
 inner join FilteredAccount ac on ac.accountid = am.new_accountid
 
 where Am.new_accountid=@Accountid and 
 ac.statecode =0 and am.statecode =0
 Group By new_accountid,new_accountidname,new_accountnumber
 Having COUNT(1) >1)A
 on CS.new_accountid=A.new_accountid And
 CS.new_accountidname=A.new_accountidname And
 CS.new_accountnumber=A.new_accountnumber)A
 left outer Join Filterednew_cscase C
 on A.new_accountmappingid=c.new_cscallaccountmappingid
 where C.new_cscallaccountmappingid  is  not null
 
 
 update c Set 
  c.new_cscallaccountmappingid = @AccountMapId   
  From new_cscase c WHERE
  c.new_cscallaccountmappingidname = @AccountNumber and c.new_accountnameid = @Accountid
  
 
  delete from new_accountmappingExtensionBase WHERE
  new_accountid = @Accountid and new_accountmappingid != @AccountMapId
  and new_accountnumber = @AccountNumber

  
 FETCH NEXT FROM My_cursor INTO @Accountid, @AccountName
END 
CLOSE My_cursor;
DEALLOCATE My_cursor;

Thursday 12 July 2012

MS Dynamics CRM 2011 Core Entities


Entities
Description
Accounts
Business that represents a customer or potential customer. The company that is billed in business transactions.
Activities
Task performed, or to be performed, by a user. An activity is any action for which an entry can be made on a calendar.
Activity Parties
Person or group associated with an activity. An activity can have multiple activity parties.
Addresses
Address and shipping information. Used to store additional addresses for an account or contact.
Announcements
Announcement associated with an organization.
Annual Fiscal Calendars
Year long fiscal calendar of an organization. A span of time during which the financial activities of an organization are calculated.
Application Files
Files used by the application
Application Ribbons
Ribbon customizations for the application ribbon and entity ribbon templates.
Appointments
Commitment representing a time interval with start/end times and duration.
Article Comments
Comment on a knowledge base article.
Article Templates
Template for a knowledge base article that contains the standard attributes of an article.
Articles
Structured content that is part of the knowledge base.
Attachments
Attachment for an e-mail activity.
Attribute Maps
Represents a mapping between attributes where the attribute values should be copied from a record into the form of a new related record.
Audits
Track changes to records for analysis, record keeping, and compliance.
Bulk Delete Failures
Record that was not deleted during a bulk deletion job.
Bulk Delete Operations
User-submitted bulk deletion job.
Bulk Operation Logs
Log used to track bulk operation execution, successes, and failures.
Business Unit Maps
Stores mapping attributes for business units.
Business Units
Business, division, or department in the Microsoft Dynamics CRM database.
Calendar Rules
Defines free/busy times for a service and for resources or resource groups, such as working, non-working, vacation, and blocked.
Calendars
Calendar used by the scheduling system to define when an appointment or activity is to occur.
Campaign Activities
Task performed, or to be performed, by a user for planning or running a campaign.
Campaign Activity Items
Work item of a campaign activity, such as a list or sales literature.
Campaign Items
Work item in a campaign, a list or sales literature.
Campaign Responses
Response from an existing or a potential new customer for a campaign.
Campaigns
Container for campaign activities and responses, sales literature, products, and lists to create, plan, execute, and track the results of a specific marketing campaign through its life.
Case Resolutions
Special type of activity that includes description of the resolution, billing status, and the duration of the case.
Cases
Service request case associated with a contract.
Client Updates
Microsoft Dynamics CRM client for Outlook offline database update.
Column Mappings
Mapping for columns in a data map.
Comments
A comment on an activity feed post.
Commitments
For internal use only.
Competitor Addresses
Additional addresses for a competitor. The first two addresses are stored in the competitor object.
Competitor Products
Association between a competitor and a product offered by the competitor.
Competitors
Business competing for the sale represented by a lead or opportunity.
Connection Role Object Type Codes
Specifies the entity type that can play specific role in a connection.
Connection Roles
Role describing a relationship between a two records.
Connections
Relationship between two entities.
Contacts
Person with whom a business unit has a relationship, such as customer, supplier, and colleague.
Contract Lines
Line item in a contract that specifies the type of service a customer is entitled to.
Contract Templates
Template for a contract containing the standard attributes of a contract.
Contracts
Agreement to provide customer service during a specified amount of time or number of cases.
Currencies
Currency in which a financial transaction is carried out.
Customer Relationships
Relationship between a customer and a partner in which either can be an account or contact.
Data Imports
Status and ownership information for an import job.
Data Maps
Data map used in import.
Dependency
A component dependency in CRM.
Dependency Nodes
The representation of a component dependency node in CRM.
Dialog Sessions
Information that is generated when a dialog is run. Every time that you run a dialog, a dialog session is created.
Discount Lists
Type of discount specified as either a percentage or an amount.
Discounts
Price reduction made from the list price of a product or service based on the quantity purchased.
Display String Maps
Maps customized display strings to entities.
Display Strings
Customized messages for an entity that has been renamed.
Document Locations
Document libraries or folders on a SharePoint server from where documents can be managed in Microsoft Dynamics CRM.
Duplicate Detection Rules
Rule used to identify potential duplicates.
Duplicate Records
Potential duplicate record.
Duplicate Rule Conditions
Condition of a duplicate detection rule.
E-Mail Attachments
MIME attachment for an e-mail activity.
E-Mail Hashes
E-mail activity hashes used for correlation purposes.
E-mail Messages
Activity that is delivered using e-mail protocols.
E-Mail Searches
E-mail Address Search Table.
E-mail Templates
Template for an e-mail message that contains the standard attributes of an e-mail message.
Entity Maps
Represents a mapping between two related entities so that data from one record can be copied into the form of a new related record.
Facilities/Equipment
Resource that can be scheduled.
Faxes
Activity that tracks call outcome and number of pages for a fax and optionally stores an electronic copy of the document.
Field Permissions
Group of privileges used to categorize users to provide appropriate access to secured columns.
Field Security Profiles
Profile which defines access level for secured attributes
Field Sharing
Defines CRM security principals (users and teams) access rights to secured field for an entity instance.
Filter Templates
Template for a filter.
Fixed Monthly Fiscal Calendars
Fixed monthly fiscal calendar of an organization. A span of time during which the financial activities of an organization are calculated.
Follows
Represents a user following the activity feed of an object.
Goal Metrics
Type of measurement for a goal, such as money amount or count.
Goals
Target objective for a user or a team for a specified time period.
Import Data
Unprocessed data from imported files.
Import Entity Mappings
Mapping for entities in a data map.
Import Jobs
For internal use only.
ImportLogs
Failure reason and other detailed information for a record that failed to import.
Imports
File name of file used for import.
Indexed Articles
Article indexed for search purposes.
Integration Statuses
Contains integration status information.
Inter Process Locks
Inter Process Locks.
Internal Addresses
Storage of addresses for a user, business unit, or site.
Invalid Dependencies
An invalid dependency in the CRM system.
Invoice Products
Line item in an invoice containing detailed billing information for a product.
Invoices
Order that has been billed.
ISV Config
An XML document used to configure client extension controls.
Lead Addresses
Address information for a lead.
Leads
Prospect or potential sales opportunity. Leads are converted into accounts, contacts, or opportunities when they are qualified. Otherwise, they are deleted or archived.
Letters
Activity that tracks the delivery of a letter. The activity can contain the electronic copy of the letter.
Licenses
Stores information about a Microsoft CRM license.
Likes
A like on an activity feed post.
List Value Mappings
In a data map, maps list values from the source file to Microsoft Dynamics CRM.
Lookup Mappings
In a data map, maps a lookup attribute in a source file to Microsoft Dynamics CRM.
Mail Merge Templates
Template for a mail merge document that contains the standard attributes of that document.
Marketing List Members
Item in a marketing list.
Marketing Lists
Group of existing or potential customers created for a marketing campaign or other sales purposes.
Monthly Fiscal Calendars
Monthly fiscal calendar of an organization. A span of time during which the financial activities of an organization are calculated.
Notes
Note that is attached to one or more objects, including other notes.
Notifications
For internal use only.
Opportunities
Potential revenue-generating event, or sale to an account, which needs to be tracked through a sales process to completion.
Opportunity Close Activities
Activity that is created automatically when an opportunity is closed, containing information such as the description of the closing and actual revenue.
Opportunity Products
Association between an opportunity and a product.
Opportunity Relationships
Relationship between an account or contact and an opportunity.
Order Close Activities
Activity generated automatically when an order is closed.
Order Products
Line item in a sales order.
Orders
Quote that has been accepted.
Organization Statistics
Statistics measuring the organization�s usage of the Microsoft Dynamics CRM system over the past 24 hours.
Organization UI Settings
Entity customizations including form layout and icons. Includes current and past versions.
Organizations
Top level of the Microsoft Dynamics CRM business hierarchy. The organization can be a specific business, holding company, or corporation.
Owner Mappings
In a data map, maps ownership data from the source file to Microsoft Dynamics CRM.
Owners
Group of undeleted system users and undeleted teams. Owners can be used to control access to specific objects.
Phone Calls
Activity to track a telephone call.
Plug-in Assemblies
Assembly that contains one or more plug-in types.
Plug-in Type Statistics
Plug-in type statistic.
Plug-in Types
Type that inherits from the IPlugin interface and is contained within a plug-in assembly.
Post Configurations
Contains information about the activity feed configuration of an entity.
Post Regarding
Represents which object an activity feed post is regarding. For internal use only.
Post Roles
Represents the objects with which an activity feed post is associated. For internal use only.
Post Rule Configurations
Contains information about the configuration of an activity feed rule for an entity.
Posts
An activity feed post.
Price List Items
Information about how to price a product in the specified price level, including pricing method, rounding option, and discount type based on a specified product unit.
Price Lists
Entity that defines pricing levels.
Privilege Object Type Codes
For internal use only.
Privileges
Permission to perform an action in Microsoft CRM. The platform checks for the privilege and rejects the attempt if the user does not hold the privilege.
Process Dependencies
Dependencies for a process.
Process Logs
Log used to track process execution.
Processes
Set of logical rules that define the steps necessary to automate a specific business process, task, or set of actions to be performed.
Product Associations
Relationship that stores information about products that belong to a kit.
Product Substitutes
Storage of an association between a product and a substitute product.
Products
Information about products and their pricing information.
Profile Albums
Publisher Addresses
Address and shipping information. Used to store additional addresses for a publisher.
Publishers
A publisher of a CRM solution.
Quarterly Fiscal Calendars
Quarterly fiscal calendar of an organization. A span of time during which the financial activities of an organization are calculated.
Queue Items
A specific item in a queue, such as a case record or an activity record.
Queues
A list of records requiring action, such as accounts, cases, and activities.
Quick Campaigns
System operation used to perform lengthy and asynchronous operations on large data sets, such as distributing a campaign activity or quick campaign.
Quote Close Activities
Activity generated when a quote is closed.
Quote Products
Product line item in a quote. The details include such information as product ID, description, quantity, and cost.
Quotes
Formal offer for products and/or services, proposed at specific prices and related payment terms, which is sent to a prospective customer.
Recurrence Rules
Recurrence Rule represents the pattern of incidence of recurring entities.
Recurring Appointments
The Master appointment of a recurring appointment series.
Relationship Role Maps
Mapping of the primary associated objects between which the relationship role is valid.
Relationship Roles
Relationship between an account or contact and an opportunity.
Replication Backlogs
Entity to hold replication backlog tasks. For internal use only.
Report Links
Links and dependencies between reports. A report may drill through to another report, or it may have another report as a sub-report.
Report Related Categories
Categories related to a report. A report can be related to multiple categories.
Report Related Entities
Entities related to a report. A report can be related to multiple entities.
Report Visibilities
Area in which to show a report. A report can be shown in multiple areas.
Reports
Data summary in an easy-to-read layout.
Resource Expansions
Resource Expansions.
Resource Groups
Group or collection of people, equipment, and/or facilities that can be scheduled.
Resource Specifications
Selection rule that allows the scheduling engine to select a number of resources from a pool of resources. The rules can be associated with a service.
Resources
User or facility/equipment that can be scheduled for a service.
Ribbon Commands
Ribbon Commands - the command definition, rules, etc.
Ribbon Context Groups
Groupings of contextual tabs.
Ribbon Differences
All layout customizations to be applied to the ribbons, which contain only the differences from the base ribbon.
Ribbon Rules
Ribbon rule definitions, used to enable and disable, show and hide ribbon elements.
Ribbon Tab To Command Map
A mapping between Tab Ids, and the Commands within those tabs.
Role Templates
Template for a role. Defines initial attributes that will be used when creating a new role.
Rollup Fields
Field to be rolled up to calculate the actual and in-progress values against the goal.
Rollup Queries
Query that is used to filter the results of the goal rollup.
Sales Attachments
Item in the sales literature collection.
Sales Literature
Storage of sales literature, which may contain one or more documents.
Sales Process Instances
Instance of a sales process.
Saved Views
Saved database query that is owned by a user.
Scheduling Groups
Resource group or team whose members can be scheduled for a service.
Sdk Message Filters
Filter that defines which SDK messages are valid for each type of entity.
Sdk Message Pairs
For internal use only.
Sdk Message Processing Step Images
Copy of an entity�s attributes before or after the core system operation.
Sdk Message Processing Step Secure Configurations
Non-public custom configuration that is passed to a plug-in�s constructor.
Sdk Message Processing Steps
Stage in the execution pipeline that a plug-in is to execute.
Sdk Message Request Fields
For internal use only.
Sdk Message Requests
For internal use only.
Sdk MessageResponse Fields
For internal use only.
Sdk MessageResponses
For internal use only.
Sdk Messages
Message that is supported by the SDK.
Security Roles
Grouping of security privileges. Users are assigned roles that authorize their access to the Microsoft CRM system.
Semiannual Fiscal Calendars
Calendar representing the semi-annual span of time during which the financial activities of an organization are calculated.
Service Activities
Activity offered by the organization to satisfy its customer�s needs. Each service activity includes date, time, duration, and required resources.
Service Endpoints
Service endpoint that can be contacted.
Services
Activity that represents work done to satisfy a customer�s need.
SharePoint Sites
SharePoint site from where documents can be managed in Microsoft Dynamics CRM.
Site Maps
XML data used to control the application navigation pane.
Sites
Location or branch office where an organization does business. An organization can have multiple sites.
Solution Components
A component of a CRM solution.
Solutions
A solution which contains CRM customizations.
Status Maps
Mapping between statuses.
String Maps
Mapping between strings.
Subjects
Information regarding subjects available in the system.
Subscription Clients
For internal use only.
Subscription Manually Tracked Objects
For internal use only.
Subscription Synchronization Information
For internal use only.
Subscriptions
For internal use only.
System Charts
System chart attached to an entity.
System Forms
Organization-owned entity customizations including form layout and dashboards.
System Jobs
Process whose execution can proceed independently or in the background.
System User Principals
For internal use only.
SystemUserBusiness Unit Entity Maps
Stores mapping attributes for business units.
Tasks
Generic activity representing work needed to be done.
Team Profiles
Team Profiles
Teams
Collection of system users that routinely collaborate. Teams can be used to simplify record sharing and provide team members with common access to organization data when team members belong to different Business Units.
Territories
Territory represents sales regions.
Time Zone Definitions
Time zone definition, including name and time zone code.
Time Zone Localized Names
Localized name of the time zone.
Time Zone Rules
Definition for time conversion between local time and Coordinated Universal Time (UTC) for a particular time zone at a particular time period.
Tracking information for deleted entities
For internal use only.
Transformation Mappings
In a data map, maps the transformation of source attributes to Microsoft Dynamics CRM attributes.
Transformation Parameter Mappings
In a data map, defines parameters for a transformation.
Unit Groups
Grouping of units.
Units
Unit of measure.
Unresolved Addresses
For internal use only.
User Charts
Chart attached to an entity.
User Dashboards
User-owned dashboards.
User Entity UI Settings
Stores user settings for entity views.
User Fiscal Calendars
Custom fiscal calendar used for tracking sales quotas.
User Settings
User�s preferred settings.
UserEntityInstanceData
Per User item instance data
Users
Person with access to the Microsoft CRM system and who owns objects in the Microsoft CRM database.
Views
Saved query against the database.
Web Resources
Data equivalent to files used in Web development. Web resources provide client-side components that are used to provide custom user interface elements.
Web Wizard Access Privileges
Privilege needed to access a Web-based wizard.
Web Wizards
Definition for a Web-based wizard.
Wizard Pages
Page in a Web-based wizard.
Workflow Wait Subscriptions
For internal use only.


Above post is originally posted here