Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
New Features
Microsoft Dynamics CRM - 2016
List of New Features
▪ Introducing theWeb API
▪ Organization data service (OData v2 REST endpoint) deprecated
▪ CORS Support added (Cross Origin Resource Sharing)
▪ 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
▪ XRMTooling controls now support OAuth authentication and connection strings
▪ New entities in CRM 2016
▪ New messages inCRM 2016
▪ New privileges in CRM 2016
Introducing theWeb API
▪ The Web API makes it easier to create applications across a wide variety of platforms,
devices, and programming languages.
▪ TheWeb 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/.
Authentication using theWeb 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
yourWindows network credentials to authenticate with the web services.
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
Cross Origin Resource Sharing Supported Added(CORS)
▪ 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.
Use OAuth with Cross Origin Resource Sharing to connect
Single Page Application with Microsoft Dynamics CRM
▪ With Microsoft Dynamics CRM (Online & On-premises) with Internet-facing
deployment (IFD) you can create a Single Page Apps (SPAs) which uses JavaScript to
work with Microsoft Dynamics CRM data.
▪ To provide this, Cross-Origin Resource Sharing (CORS) is enabled so that your SPAs
can bypass browser restrictions that normally prevent requests that cross domain
boundaries.
CORS support is only provided when using the Web API. You cannot use
the organization service or the deprecated organization data service.
▪ SPAs and Same-Origin policy
▪ Use CORS with MicrosoftCRM Online
▪ How adal.js works
▪ Preparing to use ADAL.js with a SPA
SPAs and Same-Origin policy
• SPAs depend on extensive use of client-side JavaScript to create a single dynamic page
which doesn't need to load new pages.
• Instead they use XMLHTTPRequests to retrieve data and other resources from the server.
• SPAs work well when the data and resources exist in the same domain as the application.
• But to protect access to data and resources on other domains, all modern browsers enforce
a Same-Origin policy to prevent sites from using data and resources from sites on a
different domain.
• CORS provides a way to gain access to resources on another domain.
• Creating a SPA to access Microsoft Dynamics CRM data without CORS is not a viable
option.
Use CORS with Microsoft CRM Online
• The Cross-Origin Resource Sharing specification provides a detailed description of how to
implement and use CORS.
• It explains all about the various headers and pre-flight requests that you need to apply to make
CORS work.
• The good news is that you don't need to become an expert in CORS to use it with Microsoft
Dynamics CRM.The server-side part has been done for you and all you need is to know how to
consume it.
• You don't need to understand all the inner workings of CORS to use it with Microsoft Dynamics
CRM.
• Instead you can use the Azure Active DirectoryAuthentication Library for JavaScript (adal.js) and
it will take care of much of the CORS complexity for you
.
• Since CRM Online and Internet-facing deployment (IFD) users are authenticated using Azure
Active Directory, ADAL.js is the supported way to authenticate SPA users.
How adal.js works
▪ The core library is adal.js.You can access the minimized version
of this library at https://secure.aadcdn.microsoftonline-
p.com/lib/1.0.0/js/adal.min.js.The GitHub project and
documentation is at https://github.com/AzureAD/azure-
activedirectory-library-for-js.
▪ The adal.js library contains the low-level capabilities to
authenticate using OAuth2. Adal.js is designed so that it can be
used with other frameworks, for example there is an adal-
angular.js library that is designed to be used with the Angular
framework.
▪ The way you work with this library is to set certain configuration
properties and then it will wait until events occur that trigger the
interaction flow.This could be simply calling the login function or
if your application has routing behaviours, the authentication
can be initiated by how the controller for that route is
configured.
The core library is adal.js.
In order to configure your SPA to work with adal.js you will need to :
1. Register your application with the Azure Active Directory tenant
2. Export your registered application manifest and edit it to allowOAuth2 Implicit Flow, and
then import the JSON file back to your application registration.
3. Set configuration variables in your SPA with information from that registration.
You will need to include the following:
▪ The URL to your Microsoft Dynamics CRM organization
▪ The name of the Active Directory tenant your organization uses to authenticate
▪ The client ID you get when you register your application
▪ The URL to where the SPA will be deployed or debugged during development.
Preparing to use ADAL.js with a SPA
Form script support for keypress events and auto-
completion feature
Methods
1. getValue Method
2. Keypress Event Method
addOnKeyPress()
removeOnKeyPress()
fireOnKeyPress()
3. Auto-completion Method
Method – getValue
This method was previously available only for attribute collection and using it we could
get field value after the field was updated and while the cursor was unfocused from that
field. Now, we can capture value of field as early as when users start entering value in
field.
We can use this method as shown below:
Xrm.Page.getControl(field name).getValue();
Where we want the user to enter value as per our specific pattern or regular expression, we
can use code mentioned below:
function OnfieldKeyPress() {
var fieldValue = Xrm.Page.getControl(“field name
here”).getValue().toString().replace(/[^0-9]/g, “”);
Xrm.Page.getAttribute(“field name here”).setValue(fieldValue);
}
This method will work only if we call this on a Keypress event. So let’s first understand how
to call a function on Keypress event for a text field.
Event -Keypress
1. addOnKeyPress()
This is used to attach a function with a Keypress event:
Xrm.Page.getControl (fieldname).addOnKeyPress(function name);
If we add this statement in function which is called at the loading of the form, then
OnFieldKeyPress function will be attached with Keypress event of field.
The following three Keypress methods are added for 2016 version:
▪ removeOnKeyPress()
This is used to remove/detach a function that is attached with a Keypress event:
Xrm.Page.getControl(fieldname).removeOnKeyPress(function name);
▪ fireOnKeyPress()
This is used to call Keypress event handler for text or a number field.
Xrm.Page.getControl(field name).fireOnKeyPress();
So addOnKeyPress and removeOnKeyPress basically attach or delete already attached
function with Keypress event while fireOnKeyPress enables Keypress event for text or
number fields.
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-sideAPIs supported by knowledge base search
control, see Knowledge base search control (client-side reference). For more information
about knowledge management, see Knowledge management entities.
Knowledge base search control (client-side reference)
You can add a knowledge base search control to entity forms in your CRM instance that has the
knowledge management feature enabled. With this control, you can programmatically automate or
enhance users’ search experiences when they use the control.
The knowledge base search control is an Xrm.Page.ui control, so it supports all the standard
methods that controls have. But it also supports additional events and methods.
For information about the standard control methods, see Xrm.Page.ui control (client-side
reference).
The interactive service hub application, introduced in Microsoft Dynamics
CRM 2016, supports only the getSearchQuery and setSearchQuery
methods for the knowledge base search control, along with all the
standard methods that controls have.
▪ If you know the name of the control, you can access it using the following code where <name>
represents the name of the control.
Javascript
kbSearchControl = Xrm.Page.getControl("<name>");
When the knowledge base search control is added to the social pane the name will be
"searchwidgetcontrol_notescontrol".This name can’t be changed.
All of the examples in this topic will use kbSearchControl to represent the knowledge base search control
in the form.
Knowledge base search control events
Use the events for this control to allow code to respond to the selected or opened item.
▪ OnResultOpened
This event occurs when a KB article is opened in the knowledge base search control in
line or through the pop-out action. Use the addOnResultOpened and
removeOnResultOpened methods to manage event handlers for this event.
▪ OnSelection
This event occurs when a KB article is selected in the knowledge base search control. Use
the addOnSelection and removeOnSelection methods to manage event handlers for this
event.
Knowledge base search control methods
Use the methods for the knowledge base search control to set or remove event handlers and
interact with the search query and search results.
• addOnResultOpened
Use this method to add an event handler to the OnResultOpened event.
Parameter: Function.The function to add.
Example:Add the function named myFunction to the OnResultOpened event.
kbSearchControl.addOnResultOpened(myFunction);
• addOnSelection
Use this method to add an event handler to the OnSelection event.
Parameter: Function.The function to add.
Example:Add the function named myFunction to the OnSelection event.
kbSearchControl.addOnSelection(myFunction);
• getSearchQuery
Use this method to get the text used as the search criteria for the knowledge base
management control.
ReturnValue: String.The text of the search query.
Example: Set the variable searchQuery to the text of the search query.
var searchQuery = kbSearchControl.getSearchQuery();
• getSelectedResult
Use this method to get the currently selected result of the search control.The currently selected
result also represents the result that is currently open.
ReturnValue: KBSearchResult.The currently selected result.
Example: Set the variable kbSearchResult to the currently selected result.
var kbSearchResult = kbSearchControl.getSelectedResult();
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.
▪ More information: https://msdn.microsoft.com/en-us/library/mt593040.aspx
Service level agreement enhancements
▪ 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.
Service level agreements (SLAs) in CRM have been enhanced in the current release.
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.
Upload and manage document templates
▪ You can now create document templates for Microsoft Excel or MicrosoftWord to have
a standardized representation of your CRM data.These templates can be used by your
team members to generate Excel orWord documents with up-to-date CRM data for
analysis and reporting purposes. Use the SDK to programmatically upload and manage
document templates.
▪ More information: https://msdn.microsoft.com/en-us/library/mt607957.aspx
XRMTooling 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 connectedWindows 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.
More Information : https://msdn.microsoft.com/en-in/library/dn689057.aspx
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.
KnowledgeArticleInci
dent
Knowledge Article
Incident
Contains the associations
between a knowledge article
and incident.
KnowledgeArticleVie
ws
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
CloneAsPatchReques CloneAsPatch Action Creates a solution patch from a
managed or unmanaged solution.
CloneAsSolutionRequest CloneAsSolution Action Creates a new copy of an
unmanaged solution that contains
the original solution plus all of its
patches.
CreateKnowledgeArticleTranslation
Request
CreateKnowledgeArticleTranslation
Action
Creates a translation of a
knowledge article record.
CreateKnowledgeArticleVersionReq
uest
CreateKnowledgeArticleVersion
Action
Creates a major or minor version of
a knowledge article record.
DeleteAndPromoteRequest DeleteAndPromoteAction Replaces a managed solution plus
all of its patches.
FullTextSearchKnowledgeArticleRe
quest
N/A Performs a full-text search on
knowledge articles in CRM using the
specified search text.
IncrementKnowledgeArticleViewCo
untRequest
N/A Increments the per day view count
of a knowledge article record.
SetProcessRequest SetProcess Action Sets the process that associates
with a given target entity.
UpdateSolutionComponentRequest UpdateSolutionComponentAction Updates a component in an
unmanaged solution.
The following table lists new
messages included in this release.
New privileges
in CRM 2016
Privilege name Name displayed in the security role UI
prv*AzureServiceConnection Azure Service Connection
prv*DataPerformance Data Performance Dashboard
prv*LanguageLocale Language
prv*MobileOfflineProfile Mobile Offline Profile
prv*RecommendationModel Product Recommendation Model
prv*SimilarityRule Similarity Rule
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
prv*CustomControl Custom Control
prv*CustomControlDefaultConfig Custom Control Default Config
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,
K.Naveen Kumar
Microsoft Dynamics CRMTechnical
Consultant

More Related Content

New Feature in CRM 2016

  • 2. List of New Features ▪ Introducing theWeb API ▪ Organization data service (OData v2 REST endpoint) deprecated ▪ CORS Support added (Cross Origin Resource Sharing) ▪ Form script support for keypress events and auto-completion feature ▪ CRM for phones and tablets enhancements ▪ Knowledge management enhancements ▪ Solution enhancements
  • 3. ▪ Service Level Agreement enhancements ▪ Upload and manage document templates ▪ XRMTooling controls now support OAuth authentication and connection strings ▪ New entities in CRM 2016 ▪ New messages inCRM 2016 ▪ New privileges in CRM 2016
  • 4. Introducing theWeb API ▪ The Web API makes it easier to create applications across a wide variety of platforms, devices, and programming languages. ▪ TheWeb 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/.
  • 5. Authentication using theWeb 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 yourWindows network credentials to authenticate with the web services.
  • 6. 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
  • 7. Cross Origin Resource Sharing Supported Added(CORS) ▪ 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.
  • 8. Use OAuth with Cross Origin Resource Sharing to connect Single Page Application with Microsoft Dynamics CRM ▪ With Microsoft Dynamics CRM (Online & On-premises) with Internet-facing deployment (IFD) you can create a Single Page Apps (SPAs) which uses JavaScript to work with Microsoft Dynamics CRM data. ▪ To provide this, Cross-Origin Resource Sharing (CORS) is enabled so that your SPAs can bypass browser restrictions that normally prevent requests that cross domain boundaries. CORS support is only provided when using the Web API. You cannot use the organization service or the deprecated organization data service.
  • 9. ▪ SPAs and Same-Origin policy ▪ Use CORS with MicrosoftCRM Online ▪ How adal.js works ▪ Preparing to use ADAL.js with a SPA
  • 10. SPAs and Same-Origin policy • SPAs depend on extensive use of client-side JavaScript to create a single dynamic page which doesn't need to load new pages. • Instead they use XMLHTTPRequests to retrieve data and other resources from the server. • SPAs work well when the data and resources exist in the same domain as the application. • But to protect access to data and resources on other domains, all modern browsers enforce a Same-Origin policy to prevent sites from using data and resources from sites on a different domain. • CORS provides a way to gain access to resources on another domain. • Creating a SPA to access Microsoft Dynamics CRM data without CORS is not a viable option.
  • 11. Use CORS with Microsoft CRM Online • The Cross-Origin Resource Sharing specification provides a detailed description of how to implement and use CORS. • It explains all about the various headers and pre-flight requests that you need to apply to make CORS work. • The good news is that you don't need to become an expert in CORS to use it with Microsoft Dynamics CRM.The server-side part has been done for you and all you need is to know how to consume it. • You don't need to understand all the inner workings of CORS to use it with Microsoft Dynamics CRM. • Instead you can use the Azure Active DirectoryAuthentication Library for JavaScript (adal.js) and it will take care of much of the CORS complexity for you . • Since CRM Online and Internet-facing deployment (IFD) users are authenticated using Azure Active Directory, ADAL.js is the supported way to authenticate SPA users.
  • 12. How adal.js works ▪ The core library is adal.js.You can access the minimized version of this library at https://secure.aadcdn.microsoftonline- p.com/lib/1.0.0/js/adal.min.js.The GitHub project and documentation is at https://github.com/AzureAD/azure- activedirectory-library-for-js. ▪ The adal.js library contains the low-level capabilities to authenticate using OAuth2. Adal.js is designed so that it can be used with other frameworks, for example there is an adal- angular.js library that is designed to be used with the Angular framework. ▪ The way you work with this library is to set certain configuration properties and then it will wait until events occur that trigger the interaction flow.This could be simply calling the login function or if your application has routing behaviours, the authentication can be initiated by how the controller for that route is configured. The core library is adal.js.
  • 13. In order to configure your SPA to work with adal.js you will need to : 1. Register your application with the Azure Active Directory tenant 2. Export your registered application manifest and edit it to allowOAuth2 Implicit Flow, and then import the JSON file back to your application registration. 3. Set configuration variables in your SPA with information from that registration. You will need to include the following: ▪ The URL to your Microsoft Dynamics CRM organization ▪ The name of the Active Directory tenant your organization uses to authenticate ▪ The client ID you get when you register your application ▪ The URL to where the SPA will be deployed or debugged during development. Preparing to use ADAL.js with a SPA
  • 14. Form script support for keypress events and auto- completion feature Methods 1. getValue Method 2. Keypress Event Method addOnKeyPress() removeOnKeyPress() fireOnKeyPress() 3. Auto-completion Method
  • 15. Method – getValue This method was previously available only for attribute collection and using it we could get field value after the field was updated and while the cursor was unfocused from that field. Now, we can capture value of field as early as when users start entering value in field. We can use this method as shown below: Xrm.Page.getControl(field name).getValue();
  • 16. Where we want the user to enter value as per our specific pattern or regular expression, we can use code mentioned below: function OnfieldKeyPress() { var fieldValue = Xrm.Page.getControl(“field name here”).getValue().toString().replace(/[^0-9]/g, “”); Xrm.Page.getAttribute(“field name here”).setValue(fieldValue); } This method will work only if we call this on a Keypress event. So let’s first understand how to call a function on Keypress event for a text field.
  • 17. Event -Keypress 1. addOnKeyPress() This is used to attach a function with a Keypress event: Xrm.Page.getControl (fieldname).addOnKeyPress(function name); If we add this statement in function which is called at the loading of the form, then OnFieldKeyPress function will be attached with Keypress event of field. The following three Keypress methods are added for 2016 version:
  • 18. ▪ removeOnKeyPress() This is used to remove/detach a function that is attached with a Keypress event: Xrm.Page.getControl(fieldname).removeOnKeyPress(function name); ▪ fireOnKeyPress() This is used to call Keypress event handler for text or a number field. Xrm.Page.getControl(field name).fireOnKeyPress(); So addOnKeyPress and removeOnKeyPress basically attach or delete already attached function with Keypress event while fireOnKeyPress enables Keypress event for text or number fields.
  • 19. 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.
  • 20. ▪ 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-sideAPIs supported by knowledge base search control, see Knowledge base search control (client-side reference). For more information about knowledge management, see Knowledge management entities.
  • 21. Knowledge base search control (client-side reference) You can add a knowledge base search control to entity forms in your CRM instance that has the knowledge management feature enabled. With this control, you can programmatically automate or enhance users’ search experiences when they use the control. The knowledge base search control is an Xrm.Page.ui control, so it supports all the standard methods that controls have. But it also supports additional events and methods. For information about the standard control methods, see Xrm.Page.ui control (client-side reference). The interactive service hub application, introduced in Microsoft Dynamics CRM 2016, supports only the getSearchQuery and setSearchQuery methods for the knowledge base search control, along with all the standard methods that controls have.
  • 22. ▪ If you know the name of the control, you can access it using the following code where <name> represents the name of the control. Javascript kbSearchControl = Xrm.Page.getControl("<name>"); When the knowledge base search control is added to the social pane the name will be "searchwidgetcontrol_notescontrol".This name can’t be changed. All of the examples in this topic will use kbSearchControl to represent the knowledge base search control in the form. Knowledge base search control events Use the events for this control to allow code to respond to the selected or opened item.
  • 23. ▪ OnResultOpened This event occurs when a KB article is opened in the knowledge base search control in line or through the pop-out action. Use the addOnResultOpened and removeOnResultOpened methods to manage event handlers for this event. ▪ OnSelection This event occurs when a KB article is selected in the knowledge base search control. Use the addOnSelection and removeOnSelection methods to manage event handlers for this event. Knowledge base search control methods Use the methods for the knowledge base search control to set or remove event handlers and interact with the search query and search results.
  • 24. • addOnResultOpened Use this method to add an event handler to the OnResultOpened event. Parameter: Function.The function to add. Example:Add the function named myFunction to the OnResultOpened event. kbSearchControl.addOnResultOpened(myFunction); • addOnSelection Use this method to add an event handler to the OnSelection event. Parameter: Function.The function to add. Example:Add the function named myFunction to the OnSelection event. kbSearchControl.addOnSelection(myFunction); • getSearchQuery Use this method to get the text used as the search criteria for the knowledge base management control. ReturnValue: String.The text of the search query. Example: Set the variable searchQuery to the text of the search query. var searchQuery = kbSearchControl.getSearchQuery();
  • 25. • getSelectedResult Use this method to get the currently selected result of the search control.The currently selected result also represents the result that is currently open. ReturnValue: KBSearchResult.The currently selected result. Example: Set the variable kbSearchResult to the currently selected result. var kbSearchResult = kbSearchControl.getSelectedResult();
  • 26. 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. ▪ More information: https://msdn.microsoft.com/en-us/library/mt593040.aspx
  • 27. Service level agreement enhancements ▪ 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. Service level agreements (SLAs) in CRM have been enhanced in the current release. 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.
  • 28. Upload and manage document templates ▪ You can now create document templates for Microsoft Excel or MicrosoftWord to have a standardized representation of your CRM data.These templates can be used by your team members to generate Excel orWord documents with up-to-date CRM data for analysis and reporting purposes. Use the SDK to programmatically upload and manage document templates. ▪ More information: https://msdn.microsoft.com/en-us/library/mt607957.aspx XRMTooling 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 connectedWindows applications.
  • 29. ▪ 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. More Information : https://msdn.microsoft.com/en-in/library/dn689057.aspx
  • 30. 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. KnowledgeArticleInci dent Knowledge Article Incident Contains the associations between a knowledge article and incident. KnowledgeArticleVie ws 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.
  • 31. New messages in CRM 2016 CloneAsPatchReques CloneAsPatch Action Creates a solution patch from a managed or unmanaged solution. CloneAsSolutionRequest CloneAsSolution Action Creates a new copy of an unmanaged solution that contains the original solution plus all of its patches. CreateKnowledgeArticleTranslation Request CreateKnowledgeArticleTranslation Action Creates a translation of a knowledge article record. CreateKnowledgeArticleVersionReq uest CreateKnowledgeArticleVersion Action Creates a major or minor version of a knowledge article record. DeleteAndPromoteRequest DeleteAndPromoteAction Replaces a managed solution plus all of its patches. FullTextSearchKnowledgeArticleRe quest N/A Performs a full-text search on knowledge articles in CRM using the specified search text. IncrementKnowledgeArticleViewCo untRequest N/A Increments the per day view count of a knowledge article record. SetProcessRequest SetProcess Action Sets the process that associates with a given target entity. UpdateSolutionComponentRequest UpdateSolutionComponentAction Updates a component in an unmanaged solution. The following table lists new messages included in this release.
  • 32. New privileges in CRM 2016 Privilege name Name displayed in the security role UI prv*AzureServiceConnection Azure Service Connection prv*DataPerformance Data Performance Dashboard prv*LanguageLocale Language prv*MobileOfflineProfile Mobile Offline Profile prv*RecommendationModel Product Recommendation Model prv*SimilarityRule Similarity Rule 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 prv*CustomControl Custom Control prv*CustomControlDefaultConfig Custom Control Default Config 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,
  • 33. K.Naveen Kumar Microsoft Dynamics CRMTechnical Consultant