Microsoft Dynamics CRM 2016 SDK Update
Microsoft just released version 8.0.1 of the CRM 2016 SDK. Here is what’s new for developers
- CRM Online features now available for on-premises organizations
- Introducing the Web API
- Organization data service (OData v2 REST endpoint) deprecated
- CORS Support added
- Form script support for keypress events and auto-completion feature
- CRM for phones and tablets enhancements
- Knowledge management enhancements
- Solution enhancements
- Service Level Agreement enhancements
- Upload and manage document templates
- XRM Tooling controls now support OAuth authentication and connection strings
- New entities in CRM 2016
- New messages in CRM 2016
- New privileges in 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, see What’s new for Microsoft Dynamics CRM Online 2015 Update 1
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, see http://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
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
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.
More information: Xrm.Page.ui control (client-side reference)
- CRM for phones and tablets enhancements
Web resources and IFRAMEs
- Form script support for new custom controls
- Open records in CRM mobile client with a URL
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 methods, getValue, Keypress 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 the FullTextSearchKnowledgeArticleRequest 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 getSelectedResult 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.
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 new attribute, Incident.ManualSLA, 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.
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 SLA, ConvertRule, 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 Microsoft 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|
|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|
|CloneAsPatchRequest||CloneAsPatch Action||Creates a solution patch from a managed or unmanaged solution.||Create patches to simplify solution updates|
|CloneAsSolutionRequest||CloneAsSolution Action||Creates a new copy of an unmanaged solution that contains the original solution plus all of its patches.||Create patches to simplify solution updates|
|CreateKnowledgeArticleTranslationRequest||CreateKnowledgeArticleTranslation Action||Creates a translation of a knowledge article record.||Create a knowledge article translation|
|CreateKnowledgeArticleVersionRequest||CreateKnowledgeArticleVersion Action||Creates a major or minor version of a knowledge article record.||Create major and minor versions of a knowledge article|
|DeleteAndPromoteRequest||DeleteAndPromote Action||Replaces a managed solution plus all of its patches.||Create patches to simplify solution updates|
|FullTextSearchKnowledgeArticleRequest||N/A||Performs a full-text search on knowledge articles in CRM using the specified search text.||Search knowledge articles using full-text search|
|IncrementKnowledgeArticleViewCountRequest||N/A||Increments the per day view count of a knowledge article record.||Increment knowledge article view count|
|SetProcessRequest||SetProcess Action||Sets the process that associates with a given target entity.|
|UpdateSolutionComponentRequest||UpdateSolutionComponent Action||Updates a component in an unmanaged solution.||Package and distribute extensions using solutions|
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||TechNet: Configure interactive experience dashboards|
|prv*LanguageLocale||Language||LanguageLocale (Language) entity messages and methods|
|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||Define custom claim mapping for SharePoint server-based integration|
|prv*KnowledgeArticle||Knowledge Article||Work with knowledge articles in Dynamics CRM|
|prv*KnowledgeArticleViews||Knowledge Article Views||Work with knowledge articles in Dynamics CRM|
|prvApproveKnowledgeArticle||Approve Knowledge Articles||Work with knowledge articles in Dynamics CRM|
|prvPublishKnowledgeArticle||Publish Knowledge Articles||Work with knowledge articles in Dynamics CRM|
|prv*DocumentTemplate||Document Template||DocumentTemplate entity messages and methods|
|prv*PersonalDocumentTemplate||Personal Document Template||PersonalDocumentTemplate entity messages and methods|
|prvDocumentGeneration||Document Generation||Upload and manage document templates in CRM|
|prv*KnowledgeSearchModel||Knowledge Search Model||Search knowledge articles using full-text search|
|prv*TopicModel||Topic Model||For internal use only.|
|prv*CustomControl||Custom Control||TechNet: Additional controls for CRM for phones and tablets|
|prv*CustomControlDefaultConfig||Custom Control Default Config||TechNet: Additional controls for CRM for phones and tablets|
|prv*CustomControlResource||Custom Control Resource||TechNet: Additional controls for CRM for phones and tablets|
* This privilege is one of the following: Create, Read, Write, Delete, Append, AppendTo, Assign, or Share.