Saturday, 4 June 2016

What's new for developers: Microsoft Dynamics CRM 2016

Applies To: Dynamics CRM 2016, Dynamics CRM Online

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

What’s new for Microsoft Dynamics CRM Online 2016 Update 1 and Microsoft Dynamics CRM 2016 Service Pack 1

Create customer attributes for any entity

With this release, you can define customer lookup attributes on system and custom entities. Customer lookup attributes can be set to either a contact or an account record.
Microsoft Dynamics CRM has always had customer lookup attributes that are used for the ContractIncidentLeadQuoteOpportunity, andSalesOrder entities. These remain and work as they always have, except now you can create new ones.
You can create these attributes using the customization tools in the application, or programmatically using the newCreateCustomerRelationshipsRequest message. More information: Create a customer lookup attribute

CRM Web API enhancements

With this release, the CRM Web API supports:

Filtering records based on single-value navigation properties

Filter your records for entity sets or entity instances based on single-value navigation property values. You can only use the primary attribute value of the entity referenced by the single-value navigation property to filter records. More information: Filter records based on single-valued navigation property
System_CAPS_noteNote
This partially addresses the following limitation in the previous version of Web API: Can't filter queries based on the value of a single-value navigation property

Retrieving related records for entity sets by expanding navigation properties

Expand single- and collection-valued navigation properties to retrieve related records for entity sets in CRM. For example, retrieve contacts for accounts or retrieve tasks for accounts. More information: Retrieve related entities by expanding navigation properties

Enhanced client API support in interactive service hub

The interactive service hub now also supports the following client APIs:

Support for knowledge base search control client APIs on CRM mobile clients and the interactive service hub

With this release, all the existing and the following new client APIs for the knowledge base search control are supported on the CRM mobile clients (phones and tablets) and the interactive service hub, along with the CRM web client: PostSearch event, addOnPostSearch,removeOnPostSearchgetTotalResultCount, and openSearchResult.

Easily launch the interactive service hub using the CRM SiteMap

With this release, the CRM SiteMap has been updated to include a navigation link for launching the interactive service hub. You can now launch the interactive service hub by selecting Settings > Application > Interactive Service Hub in CRM. More information: Default SiteMap XML

Apply SLAs to additional entities

You can now apply service level agreements (SLAs) to custom entities and specific system entities in CRM. Before this release, you could only apply SLAs to the Incident (Case) entity. More information: Apply SLAs to entities

Categorize entity records in CRM

Use the new Category entity to create and manage a hierarchical structure of categories, and then associate entity records to one or more categories. Categorizing entity records helps in logically grouping them so that it’s easier to organize and search them. More information: Use the Category entity to categorize CRM records

Provide feedback and rating for entity records in CRM

Use the new Feedback entity to create and manage feedback and ratings for entity records in CRM. The Feedback entity is primarily used for capturing user feedback and ratings for knowledge articles to determine their effectiveness, but you can enable capturing feedback for other system and custom entities as well. Use the new HasFeedback property with the CreateEntity and UpdateEntity messages to enable feedback for a system or custom entity. More information: Use the Feedback entity to manage feedback and ratings for CRM records

Control how packages are deployed with the enhanced Package Deployer

With Microsoft Dynamics CRM Package Deployer, you can bundle one or more solution files, configuration data files, and custom code into a "package" and deploy the package to a CRM instance (online or on-premises). Developers can now control how the packages will be deployed while creating packages using the updated CRM Package Visual Studio project template. This project template allows you to:
  • Specify whether to maintain or overwrite customizations while updating existing solutions on a target CRM instance.
  • Specify whether to automatically activate plug-ins and workflows after solutions are imported.
  • Import data files exported from the Configuration Migration tool for various languages along with the user information.
  • Import data files exported from the Configuration Migration tool for various languages along with the user information.
  • Override the language for configuration data import by specifying the locale identifier (LCID) of the language to be imported.
  • Specify whether to skip importing the data during the solution deployment. Data includes CRM sample data, flat files, and data files exported from the Configuration Migration tool.
  • Specify whether to skip some safety checks while importing data to save time and improve the import performance.
  • Specify settings that can be passed to the Package Deployer at runtime. For example, add a runtime parameter to specify the LCID of the data file to be imported.
You can specify these settings using the updated ImportConfig.xml file or the new methods and properties that can be overridden in the Visual Studio project template.
Existing CRM Package projects can be updated to take advantage of the new feature set by updating the Package Deployer assemblies using NuGet to version 8.1 or later.

XRM tools enhancements

Xrm.Tooling.Connector has been improved to provide the following enhancements:
  • When using connection strings for CRM online organizations where the URL of the organization has been customized using the Admin Center, the connector will now correctly identify the organization instance, and connect successfully.
  • When using OAuth connections to CRM, timeout settings defined in a supporting app.config file for connections will now be honored correctly.
  • When creating a custom OAuth-based connection and passing it to the Xrm.tooling.connector, timeout settings defined in a supporting app.config file for connections will now be honored correctly.
  • The Xrm.Tooling.Connector.CrmServiceClient class can now be directly cast to an IOrganizationService Interface. This works for all authentication types, and allows you to take advantage of the threading, diagnostics, and logging capabilities of XRM tooling in your existing code.

Simplified FormXML for Stream items in the interactive dashboards

Earlier, all the stream items (queue, entity view, and saved query) in the interactive dashboards were present under a single <Streams> tag separated by semicolons, and the item names were present under a single <StreamNames> tag separated by semicolons.
The FormXML structure for streams has been updated to have each stream item under a separate tag so customizers and developers can easily read and identify individual stream components in the FormXML. More information: Form XML reference

Entities updated for improved form rendering experience and new client APIs support

The following entities now use the improved form rendering experience in CRM, and support the client APIs that were introduced since the experience was introduced in CRM:
  • Invoice Product (InvoiceDetail)
  • Order Product (SalesOrderDetail)
  • Quote Product (QuoteDetail)
For the complete list of entities that use the improved form rendering infrastructure, see Updated entities.

Add SAS authorization support to your CRM-Azure applications

Do you have existing applications hosted in the Azure cloud that obtain data from CRM through the Microsoft Azure Service Bus? The new Shared Access Signature (SAS) authorization is now the recommended method for CRM-Azure authorization, and it comes with improved authorization performance. Consider updating your existing applications from using Access Control Service (ACS) to SAS. Learn how this change impacts your applications, and follow the revised registration and configuration process using the new version of the Plug-in Registration tool - now with SAS support.

Send CRM data in multiple formats to a Microsoft Azure hosted listener application

Introduced in this release is a new capability to format Microsoft Azure Service Bus message bodies as JSON or XML, instead of the default binary format, in support of improved cross-platform interoperability for non.NET programming languages and platforms. Learn how to configure, send, and receive Service Bus message bodies in those formats.

Integrate CRM with external event hub publishers

Are you interested in making use of the Microsoft Azure Event Hubs? Are you wondering how to push your CRM event data to an event hub? New in this release is the ability to easily connect CRM with event hubs. Learn how to use the new Plug-in Registration tool to configure this connection and then learn how to write a listener application for your Azure-hosted event hub that can read and process CRM event data.

New entities

The following table lists new entities included in this release.
Schema name
Display name
Description
More Information
BookableResource
Bookable Resource
Represents the resource that has capacity which can be allocated to work.
BookableResourceBooking
Bookable Resource Booking
Represents the line details of a resource booking.
BookableResourceBookingHeader
Bookable Resource Booking Header
Reservation entity representing the summary of the associated resource bookings.
BookableResourceCategory
Bookable Resource Category
Categorize resources that have capacity into categories such as roles.
BookableResourceCategoryAssn
Bookable Resource Category Assn
Represents the association entity to model the categorization of resources.
BookableResourceCharacteristic
Bookable Resource Characteristic
Associates resources with their characteristics and specifies the proficiency level of a resource for that characteristic.
BookableResourceGroup
Bookable Resource Group
Associates resources with resource groups that they are a member of.
BookingStatus
Booking Status
Allows creation of multiple sub statuses mapped to a booking status option.
Category
Category
Entity for categorizing records to make it easier for your customers to find them on portals and through search.
Characteristic
Characteristic
Represents the skills, education, and certifications of resources.
Feedback
Feedback
Container for feedback and ratings for knowledge articles.
KnowledgeArticlesCategories
Knowledge Article Category
Contains the associations between the Knowledge Articleand Category records.
RatingModel
Rating Model
Represents a model to evaluate skills or other related entities.
RatingValue
Rating Value
Represents a unique value associated with a rating model that allows providing a user friendly rating value.
RecommendedDocument
Document Recommendation
Recommended Document.

New privileges

The following privileges are new or changed in this release. For an overall view of how the security role editor maps to privilege names in this SDK, see Security role UI to privilege mapping
Privilege name
Name displayed in the security role UI
More Information
prv*BookableResource
Bookable Resource
prv*BookableResourceBooking
Bookable Resource Booking
prv*BookableResourceBookingHeader
Bookable Resource Booking Header
prv*BookableResourceCategory
Bookable Resource Category
prv*BookableResourceCategoryAssn
Bookable Resource Category Assn
prv*BookableResourceCharacteristic
Bookable Resource Characteristic
prv*BookableResourceGroup
Bookable Resource Group
prv*BookingStatus
Booking Status
prv*Category
Category
prv*Characteristic
Characteristic
prvConfigureDocumentRecommendation
prvReadRecommendedDocument
Document Recommendation
prv*Feedback
Feedback
prv*RatingModel
Rating Model
prv*RatingValue
Rating Value
prv*SavedOrganizationInsightsConfiguration
Saved Organization Insights Configuration
prv*SyncError
Sync Error
prvUseOfficeApps
Use CRM for Outlook
* This privilege is one of the following: Create, Read, Write, Delete, Append, AppendTo, Assign, or Share.

What’s new for Microsoft Dynamics CRM Online 2016 Update and CRM 2016

CRM Online features now available for on-premises organizations

New features that were added to Microsoft Dynamics CRM Online 2015 Update 1 are now available for on-premises organizations. One exception is the integration with Parature which is only available for CRM Online. For a summary of new features included in that release, seeWhat’s new for Microsoft Dynamics CRM Online 2015 Update 1

Introducing the Web API

Why a new API?

The Web API makes it easier to create applications across a wide variety of platforms, devices, and programming languages. The Web API will provide parity with the existing organization service (SOAP endpoint). You will be able to do anything using the Web API that you can do using the organization service, with a few differences. You won’t have to download any Microsoft Dynamics CRM SDK assemblies. You can perform all operations using HTTP requests with the Web API located at [organization uri]/api/data/v8.0/. The Web API implements OData version 4.0, an open standard for data access. For the list of third-party libraries that support OData, version 4.0, seehttp://www.odata.org/libraries/.
Use the Web API for integrations and modern applications. For code that will run in the context of a plug-in, you’ll continue to use the classes defined in the SDK assemblies to use the organization service. More information:Use the Microsoft Dynamics CRM Web API

Authentication using the Web API

To manage authentication, you can use the Web API from inside the CRM web application using JavaScript and HTML web resources without any code to authenticate, just as you can today with the organization (SOAP) or organization data service (Odata v2 REST) endpoints.
When you use the Web API to access CRM Online or Internet-facing deployment (IFD) web services from your own applications, you must first register your app with the Active Directory for your organization. Then you can use the Azure Active Directory Authentication Library (ADAL) to manage OAuth 2.0 authentication with the CRM web service identity provider. To access an on-premises CRM deployment from your own applications, you’d use your Windows network credentials to authenticate with the web services.

Web API Discovery service

To maintain parity with the Discovery service on the SOAP endpoint, we’ve added a Discovery service to the Web API. This service enables you to determine, at run-time, the organizations that the signed-in user belongs to. You can retrieve information about those organizations like the organization service URL, the CRM release version, and more. A new feature of the Web API Discovery service is the ability to filter the returned list of organizations by using OData filter parameters. The Discovery service is supported by all CRM deployment types. More information:Discover the URL for your organization using the Web API

Organization data service (OData v2 REST endpoint) deprecated

The new Web API provides better capabilities over the organization data service introduced with Microsoft Dynamics CRM 2011. We recommend any new code for this version use the Web API instead of the organization data service, so we’re deprecating the organization data service with this release. The organization data service, also known as the REST endpoint or the OData endpoint, will remain in the application for the foreseeable future to support backward capability. For information about using this deprecated endpoint, see the Microsoft Dynamics CRM 2015 SDK: Use the OData endpoint with web resources.

CORS Support added

The Web API supports client-side cross-origin web resource requests when called using OAuth token authentication. This is accomplished by using a compatible implementation of cross-origin resource sharing (CORS). This Web API capability safely works around browser restrictions imposed to prevent cross-site scripting security issues. More information:Use OAuth with Cross-Origin Resource Sharing to connect a Single Page Application to Microsoft Dynamics CRM

Form script support for keypress events and auto-completion feature

When a user presses keys in a number or text control, use the new getValue method to retrieve the value of a control. You can use this value to configure interactive experiences, such as data validation when a user types in a field, by configuring function handlers for keypress events using the new Keypress methods. In addition, you can use the new Auto-completion methods to configure the auto-completion feature for text controls in forms. These new methods aren’t supported for CRM for phones or CRM for tablets, and are only available for Updated entities.

CRM for phones and tablets enhancements

Web resources and IFRAMEs

The ability to create web resources and IFRAMEs for use with CRM for tablets is now fully supported in all CRM for tablets forms: iOS, Android, and Windows 10. More information:Create web resources and IFrame content for use with the CRM for tablets client

Form script support for new custom controls

Use new custom controls to configure a visually modern and richer experience for your users in CRM for phones and CRM for tablets. More information:TechNet: Use the form editor
The new custom controls support the same client APIs as the CRM controls, except for the Auto-completion methodsgetValueKeypress methods and Lookup control methods and events. For the complete list of the client APIs supported by CRM controls, see Xrm.Page.ui control (client-side reference).

Open records in CRM mobile client with a URL

With the new application handler protocol in Microsoft Dynamics CRM 2016, you can use URLs to directly open records in CRM for phones and CRM for tablets. You can also open an empty form for creating an entity record. To use this feature, you have to install CRM for phones or CRM for tablets on your mobile device. More information:Open forms, views, and dashboards in CRM mobile client with a URL

Knowledge management edit and search enhancements

The CRM Service module gets a boost in this release with the addition of powerful knowledge management capabilities. In addition to rich text, the new KnowledgeArticle entity supports multimedia data like pictures and videos. Articles have a lifecycle where they proceed through a publishing workflow.
Discover the answers to your questions using full text searches of knowledge base records for topics and products using theFullTextSearchKnowledgeArticleRequest message. This message provides systematic access to a keyword based search index of the article content. Use this message to access that search content and provide search results to customers and partners.
To support the knowledge management capability, new privileges named Publish Knowledge Articles and Approve Knowledge Articles were added. The Customer Service Representative and Customer Service Manager roles have these privileges, and a new Knowledge Manager role has been added.
For the CRM web client, the client-side form programming API has been updated to include additional properties in the object returned from the getSelectedResults function call. All other client APIs and events, which were supported by the knowledge base search control in the Microsoft Dynamics CRM 2015 release, continue to be supported.
For the new interactive service hub client, only the getSearchQuery and setSearchQuery methods are supported for the knowledge base search control.
For more information about the client-side APIs supported by knowledge base search control, see Knowledge base search control (client-side reference). For more information about knowledge management, see Knowledge management entities.

Solution enhancements

Previously, when an entity was added to a solution and that solution was exported, the entity and all of its assets were exported in that solution. This included attributes, forms, views, relationships, visualizations, and any other assets packaged with the entity. All objects were exported regardless of whether the developer actually wanted to ship the object. This process potentially carried dependencies or modified unintended objects on the target deployment.
Now,a developer or other application customizer can create and publish solution patches that contain subcomponents of entities, as compared to publishing the entire entity and all of its assets. The original solution and multiple released patches can be rolled-up at a later time into an updated version of the original solution, which then can replace the original solution.

Service level agreement enhancements

Service level agreements (SLAs) in CRM have been enhanced in the current release.
  • Manually apply SLAs to incidents (cases): You can now manually apply an SLA to a case by updating the case record, and specifying an active SLA in the Incident.SLAId attribute, for the case record.
  • Programmatically activate or deactivate SLAs: You can now use the UpdateRequest message to activate or deactivate an SLA record. You must activate an SLA record after creating it for the SLA record to be applied to cases. You typically deactivate SLAs during maintenance activities or when you're importing cases and you don't want the SLAs to apply to the cases.
    System_CAPS_noteNote
    You can also use the UpdateRequest message to activate and deactivate automatic record creation and update rules (ConvertRule) and routing rule sets (RoutingRule). This wasn’t possible in the earlier versions.
    The SLAConvertRule, and RoutingRule entities are still for internal use only. Other SDK messages, except for the Update message, are still not supported for these entities. More information:Service entities (contract, incident, knowledge article, queue, calendar, entitlement, slakpiinstance)

Upload and manage document templates

You can now create document templates for Microsoft Excel or Word to have a standardized representation of your CRM data. These templates can be used by your team members to generate Excel or Word documents with up-to-date CRM data for analysis and reporting purposes. Use the SDK to programmatically upload and manage document templates.

XRM Tooling controls now support OAuth authentication and connection strings

Microsoft.Xrm.Tooling.Connector is the primary interface to CRM for all tooling and Unified Service Desk operations. It is also provided as part of the Microsoft Dynamics CRM SDK to developers who want to build CRM connected Windows applications. Developers can use this updated API to allow the OAuth 2 protocol to be used to authenticate with CRM web services. Adding OAuth enables multi-factor authentication for improved security and access to CRM.
XRM tooling now also supports connection strings, which allow for the use of SQL-like connection strings in the CrmServiceClient class.

New entities in CRM 2016

The following table lists new entities included in this release.
Schema name
Display name
Description
More Information
KnowledgeArticle
Knowledge Article
Describes articles that are organizational knowledge for internal and external use.
KnowledgeArticleIncident
Knowledge Article Incident
Contains the associations between a knowledge article and incident.
KnowledgeArticleViews
Knowledge Article Views
Tracks the number of times an article is viewed per day.
LanguageLocale
Language
Contains information about the supported languages for translating a knowledge article.

New messages in CRM 2016

The following table lists new messages included in this release.
Request class
Web API action
Description
More information
Creates a solution patch from a managed or unmanaged solution.
Creates a new copy of an unmanaged solution that contains the original solution plus all of its patches.
Creates a translation of a knowledge article record.
Creates a major or minor version of a knowledge article record.
Replaces a managed solution plus all of its patches.
N/A
Performs a full-text search on knowledge articles in CRM using the specified search text.
N/A
Increments the per day view count of a knowledge article record.
Sets the process that associates with a given target entity.
Updates a component in an unmanaged solution.

New privileges in CRM 2016

The following privileges are new or changed in this release. For an overall view of how the security role editor maps to privilege names in this SDK, see Security role UI to privilege mapping.
Privilege name
Name displayed in the security role UI
More information
prv*AzureServiceConnection
Azure Service Connection
For internal use only.
prv*DataPerformance
Data Performance Dashboard
prv*LanguageLocale
Language
prv*MobileOfflineProfile
Mobile Offline Profile
For internal use only.
prv*RecommendationModel
Product Recommendation Model
For internal use only.
prv*SimilarityRule
Similarity Rule
For internal use only.
prvConfigureSharePoint
Run SharePoint Integration Wizard
prv*KnowledgeArticle
Knowledge Article
prv*KnowledgeArticleViews
Knowledge Article Views
prvApproveKnowledgeArticle
Approve Knowledge Articles
prvPublishKnowledgeArticle
Publish Knowledge Articles
prv*DocumentTemplate
Document Template
prv*PersonalDocumentTemplate
Personal Document Template
prvDocumentGeneration
Document Generation
prv*KnowledgeSearchModel
Knowledge Search Model
prv*TopicModel
Topic Model
For internal use only.
prv*CustomControl
Custom Control
prv*CustomControlDefaultConfig
Custom Control Default Config
prv*CustomControlResource
Custom Control Resource
* This privilege is one of the following: Create, Read, Write, Delete, Append, AppendTo, Assign, or Share.

1 comment:

  1. Thank you for your post. This is excellent information. It is amazing and wonderful to visit your site.
    sas value added reseller
    sap mbe reseller

    ReplyDelete