Export (0) Print
Expand All

What's new for developers

Applies To: CRM 2015 on-prem, CRM Online

Microsoft Dynamics CRM 2015 and Microsoft Dynamics CRM Online 2015 Update provide a single development environment for on-premises and cloud-based deployments. Partners, including independent software vendors, global system integrators, and value-added resellers, can quickly create, package, and distribute Microsoft Dynamics CRM extensions and custom solutions.

What’s new for CRM 2015 and CRM Online 2015 Update

Developers will be able to leverage the following enhancements and new capabilities in this release:

Product catalog enhancements

The enhanced product catalog feature enables you to:

  • Create a rich product classification system (taxonomy) for your organization by defining hierarchies of product families and products with configurable properties that reduce the number of product stock keeping units (SKUs) needed to maintain your product catalog.

  • Group products and services into a bundle to create attractive packages for your customers.

  • Define new relationships, such as cross-sell, up-sell, and accessory, in addition to the substitute relationships for your products that surface as product suggestions to your sales agents during opportunity and order management, which can help to boost sales of the related products.

  • Use custom pricing instead of the CRM system pricing to calculate prices when you associate a product or bundle to opportunity, quote, order, or invoice.

  • Define per unit discount for products at line level when you add them to opportunity, quote, order, or invoice.

  • Automatically set the default price level (price list) for an opportunity, quote, order, and invoice based on the current user and his/her territory relationship with the price level.

  • Specify localized values for certain product properties (attributes) to allow for product names and descriptions to be available in the user’s preferred language.

More information: Product catalog entities.

Use hierarchical data

Users can gain valuable insight about their data because they can visualize hierarchically related data and navigate between related records.

Identify and edit hierarchical entity relationships

Hierarchical relationships aren’t new to Microsoft Dynamics CRM. However, these visualizations and new query operators for hierarchical data depend on explicit declarations that certain entity relationships are hierarchical. There are limitations that are enforced using this declaration, for example, each entity can have just one self-referential one-to-many entity relationship that is considered hierarchical. This declaration is included in the metadata of the relationship. The OneToManyRelationshipMetadata class has a new IsHierarchical property that specifies whether the entity relationship should be considered hierarchical. There is also a new EntityMetadata.CanChangeHierarchicalRelationship managed property that you can use to control whether the hierarchical state of entity relationships included in your managed solutions can be changed. The following system entities have hierarchical relationships that can’t be changed: account, systemuser, product, and position.

All of these settings can be configured using the customization tools in the web application without writing code, but developers can also define hierarchies programmatically using metadata APIs or query the metadata to understand which entity relationships are considered hierarchical.

More information: Hierarchical one-to-many entity relationships.

Query hierarchical data

Developers can take advantage of new query condition operators to query entities with explicit hierarchical relationships. These operators only apply for the entity relationship specifically defined as a hierarchical relationship. These condition operators allow for queries that are above or under other records in the hierarchy.

More information: Query hierarchical data.

New hierarchy visualizations allow people to navigate through records in a hierarchy and apply commands on selected records using the command bar. Custom commands for these visualizations support the same contextual information available to commands for views so that you can determine whether to enable or disable your command based on the record currently selected and perform actions on the selected record.

More information: Customize commands and the ribbon.

Apply hierarchical security models

While Microsoft Dynamics CRM provides a rich set of structures in which to model security (business units, security roles, sharing, teams), some organizations may need special exceptions defined in code so that people who need to see data can view it. Today, when the existing security configuration doesn’t support business requirements in the organization, organizations might need to define a large number of business units and developers write code in plug-ins to programmatically share records.

Hierarchical security models is an optional feature to provide another dimension to the current matrix of security structures that can reduce the need to create a large number of business units or to write code that deals with exceptions. Developers and implementers need to understand how this new additional layer of security can be applied so that programmatically modifying the security access to records in code becomes something that is done less frequently for those organizations with complex security requirements.

More information: How hierarchical security can be used to control access to entities in Microsoft Dynamics CRM.

Use calculated and rollup attributes created in Dynamics CRM

Calculated and rollup attributes are essential because they free the user from having to manually perform calculations and focus on their work. System administrators can now easily define a field to contain the value of many common calculations without having to work with a developer. Developers can also leverage the platform capabilities to perform these calculations rather than within their own code.

More information: Calculated and rollup attributes

Write form scripts that interact with business process flows

In this release, business process flows have been enhanced to support branches based on conditions. These conditions take advantage of the newly introduced support for If-Else structures as well as support for combining multiple conditional expressions entirely using OR or AND. With these new capabilities, developers should evaluate whether existing processes that use form scripts could instead use business process flows so that organizations can maintain the logic they need without writing code.

This release also makes it easier for developers to interact with the business process flows in their scripts. Form script developers have asked for a supported way to interact with the business process form user interface (UI) in form scripts. This release provides a client-side object model developers can use to interact with business process flows in their form scripts. The Xrm.Page object model is extended to include new events, methods, and objects.

More information: Write scripts for business process flows

Use field-level security with system entities

Previous versions of Microsoft Dynamics CRM only allowed definition of field-level security for custom attributes. Because of feedback from our customers, this release now provides for defining field-level security for system attributes. Not all system attributes can be secured because all system users have to be able to access certain attributes.

You can query the metadata to determine which system attributes you can apply field-level security to. The AttributeMetadata properties CanBeSecuredForCreate, CanBeSecuredForRead, and CanBeSecuredForUpdate values have been modified for those system attributes that you can apply field-level security to. You can detect which fields have been secured using the IsSecured property.

More information: How field security can be used to control access to field values in Microsoft Dynamics CRM

Create business rules instead of writing code

Business rules allow customizers to move common form logic away from form scripts so that they do not need to rely on developers. Business rules don’t replace form scripts or plug-ins. They provide a way for a person who isn’t a developer to apply common logic. The logic applied in the business rule can be quickly changed without editing code.

With new business rules enhancements, customizers can now also define common logic that can be evaluated on the server, eliminating the need to apply this logic in a plug-in or a workflow. Business rules are also more useful because they allow for branching logic using OR and If-else conditions that weren’t previously available. Business rules also now allow for setting default values. People who aren’t developers will find defining processes using business rules easier and therefore may not require form scripts as often.

Developers need to be familiar with the capabilities of business rules so they can evaluate if a business requirement can be met without writing code.

Developers must also be aware that business rules evaluated on the server apply to all clients, including custom clients and integration solutions that perform operations on records. When code from any client violates a rule, the business rule will return the error message specified by the rule. This means that it’s important that code include appropriate error handling to adapt to changes that may be applied using business rules.

More information: Custom errors from business rules and the Customization Guide topic Create and edit business rules

Add custom help content

Organizations have a highly customized system, especially those that use custom entities, will find that the application help content may not address the needs of their users. Administrators can configure the system to override the default help content by specifying a URL to open instead. The page to open might be a static page on a Microsoft SharePoint site, a web page on the Internet, or a custom help application created using web resources and included with a solution. Developers need to understand the options available and what contextual information can be passed with the URL so that they can create pages to display appropriate content. More information: Add custom help content and Customize the Help experience.

New service proxy classes for the web endpoint

A new namespace called Microsoft.Xrm.Sdk.WebServiceClient provides OrganizationWebProxyClient and DiscoveryWebProxyClient classes for web service access. These classes support executing message requests through the /web endpoint of the Discovery.svc or Organization.svc when authenticated with OAuth. In addition, a new message named RetrieveCurrentOrganizationRequest has been added.

New messages in the Organization web service

The following messages are new in this release:

 

Request class name Description More information

CalculatePriceRequest

Defines custom pricing for your products in opportunities, quotes, orders, and invoices.

Use custom pricing for products

CalculateRollupFieldRequest

Calculates a rollup attribute value on demand.

Rollup attributes

CloneProductRequest

Clones a product family, product, or bundle record, and creates a copy of the record under the same parent node.

Clone a product family, product, or bundle

ExportFieldTranslationRequest

Exports localizable attributes for translation.

Translate localizable attributes

GetDefaultPriceLevelRequest

Used internally by CRM to determine the default price level (price list) for an opportunity, quote, order, and invoice based on the current user and his/her territory relationship with the price level.

Set default price level for opportunity, quote, order, invoice

ImportFieldTranslationRequest

Imports localizable attributes for translation.

Translate localizable attributes

PublishProductHierarchyRequest

Publishes a product family hierarchy including the child products and bundles.

Publish a product family, product, or bundle

RetrieveCurrentOrganizationRequest

Retrieves organization information from the organization service rather than the discovery service.

Retrieve organization information from the organization service instead of using the discovery service.

RetrievePrincipalSyncAttributeMappingsRequest

Retrieves the synchronization attribute mapping information, which defines the flow of data from the server to the client application.

This message doesn’t have any extensibility scenarios in this release.

RetrieveProductPropertiesRequest

Retrieves all the property instances (dynamic property instances) for a product added to an opportunity, quote, order, or invoice.

DynamicPropertyInstance (property instance) methods and messages

RevertProductRequest

Reverts a product family, product, or bundle record to its last Active state. All the product property (attribute) changes done to the record since it was last published (Active state) will be lost.

Revert a product family, product, or bundle

UpdateProductPropertiesRequest

Updates the value of property instances (dynamic property instances) for a product added to an opportunity, quote, order, or invoice.

DynamicPropertyInstance (property instance) methods and messages

New messages in the Deployment web service

The following new messages are introduced to support tasks you can do using the Deployment web service:

 

Request class name Description

AddCrmDatabaseRequest

Adds a CRM database to your deployment from a database backup or from a detached database.

DeleteOrganizationRequest

Deletes a CRM organization.

RetrieveMonitoringResultsRequest

Retrieves results from the monitoring service operation tests for your CRM deployment.

RetrieveUserMappingRequest

Retrieves the mapping information of existing users in a CRM organization.

You can also use the Windows PowerShell cmdlets to manage your CRM deployment. More information: Microsoft Dynamics CRM PowerShell Reference

New entities

New entities can be found by querying on the entity metadata IntroducedVersion property. Entities added in this release have the property value “7.0.0.0”. To view the entity metadata for your organization, install the Metadata Browser solution described in Browse the metadata for your organization. You can also view the metadata for an uncustomized organization in the Excel file called EntityMetadata.xlsx included in the top-level folder of the SDK download.

The following entities are new in this release.

 

Schema name Description More information

BusinessDataLocalizedLabel

For internal use only.

For internal use only.

DynamicProperty

For internal use only.

Define product properties (not supported through SDK)

DynamicPropertyAssociation

For internal use only.

Define product properties (not supported through SDK)

DynamicPropertyInstance

A property instance (DynamicPropertyInstance) stores the instance of a product property along with its values.

DynamicPropertyInstance (property instance) methods and messages

DynamicPropertyOptionSetItem

For internal use only.

Define product properties (not supported through SDK)

HierarchyRule

For internal use only.

For internal use only.

HierarchySecurityConfiguration

For internal use only.

Hierarchical security (position) entity

Position

Contains the position of a user in the security hierarchy.

How hierarchical security can be used to control access to entities in Microsoft Dynamics CRM

PrincipalSyncAttributeMap

Maps security principals (users and teams) to synchronization attribute mappings.

This entity doesn’t have any extensibility scenarios in this release.

RollupJob

For internal use only.

For internal use only.

RollupProperties

For internal use only.

For internal use only.

SLAKPIInstance

Service level agreement (SLA) key performance indicator (KPI) instance that is tracked for an individual case.

SLAKPIInstance (SLA KPI instance) entity messages and methods

SyncAttributeMapping

Synchronization attribute mappings used to provide attribute mappings during synchronization for a particular user or team.

This entity doesn’t have any extensibility scenarios in this release.

SyncAttributeMappingProfile

Stores profile information used to map synchronization attribute mapping data to users or teams.

This entity doesn’t have any extensibility scenarios in this release.

SystemUserManagerMap

For internal use only.

For internal use only.

SystemUserSyncMappingProfiles

Mapping between the synchronization attribute mapping and system users.

This entity doesn’t have any extensibility scenarios in this release.

TeamSyncAttributeMappingProfiles

Mapping between the synchronization attribute mapping and teams.

This entity doesn’t have any extensibility scenarios in this release.

New privileges

The following privileges are new or changed. For an overall view of how the security role editor maps to privilege names in this SDK, see Security role UI to privilege mapping.

 

Tab name in the security role dialog Name displayed in the dialog Privilege name More information

Sales

Property

prv*DynamicProperty

Define product properties (not supported through SDK)

Sales

Property Association

prv*DynamicPropertyAssociation

Define product properties (not supported through SDK)

Sales

Property Instance

prv*DynamicPropertyInstance

DynamicPropertyInstance (property instance) methods and messages

Sales

Property Option Set item

prv*DynamicPropertyOptionSetItem

Define product properties (not supported through SDK)

Business Management

Change Hierarchy Security Settings

prvWriteHierarchicalSecurityConfiguration

How hierarchical security can be used to control access to entities in Microsoft Dynamics CRM

Customization

Hierarchy Rule

prv*HierarchyRule

Hierarchical security (position) entity

Business Management

Position

prv*Position

Hierarchical security (position) entity

Business Management

Principal Sync Attribute Map

prvWritePrincipalSynAttributeMap

This entity doesn’t have any extensibility scenarios in this release.

Service Managment

SLA KPI Instance

prv*SLAKPIInstance

SLAKPIInstance (SLA KPI instance) entity messages and methods

Business Management

Sync Attribute Mapping Profile

prv*SyncAttributeMappingProfile

This entity doesn’t have any extensibility scenarios in this release.

Business Management

Assign position for a user

prvAssignPosition

Hierarchical security (position) entity

Business Management

Change Hierarchy Security Settings

prvWriteHierarchicalSecurityConfiguration

Hierarchical security (position) entity

* This privilege is one of the following: Create, Read, Write, Delete, Append, AppendTo, Assign, or Share.

NuGet packages

For detailed information about how to obtain the NuGet packages containing SDK assemblies and tools for this release, see Subscribe to SDK assembly updates using NuGet.

Deprecated form script methods removed

Some previously deprecated form script methods have been removed in this release. More information: Removed methods.

noteNote
If you’re upgrading from Microsoft Dynamics CRM 2011 to this release, make sure you review the guidance in Upgrade your code from Microsoft Dynamics CRM 2011 to Microsoft Dynamics CRM 2013. An important resource that can help you get ready for changes to form script methods is the Custom Code Validation tool. An updated version of the custom code validation tool is available to include the latest changes in Microsoft Dynamics CRM 2015. Download the custom code validation tool from http://go.microsoft.com/fwlink/p/?LinkId=518207.

Preview feature: IFrame and web resources for CRM for tablets

If you want to start developing solutions that will use IFrames and web resources with Microsoft Dynamics CRM for tablets you can enable them with this preview feature. While IFrames and web resources aren’t yet supported for forms and dashboards in CRM for tablets, you can enable them for your development organization and get an early start for a future release where they will be supported. More information:Create web resources and IFRAME content for use with the CRM for tablets client.

See Also

Microsoft Dynamics CRM 2015 and Microsoft Dynamics CRM Online
Send comments about this topic to Microsoft.
© 2014 Microsoft Corporation. All rights reserved.
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft