Skip to content

Commit d9b74fa

Browse files
authored
Merge branch 'master' into repo_sync_working_branch
2 parents 0e24069 + fcfb4dd commit d9b74fa

37 files changed

+4337
-3374
lines changed

powerapps-docs/developer/common-data-service/define-alternate-keys-entity.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ You should be aware of the following constraints when creating alternate keys:
5454

5555
- **Unicode characters in key value**
5656

57-
If the data within a field that is used in an alternate key will contain one of the following characters `<`,`>`,`*`,`%`,`&`,`:`,`\\` then patch or upsert actions will not work. If you only need uniqueness then this approach will work, but if you need to use these keys as part of data integration then it is best to create the key on fields that won't have data with those characters.
57+
If the data within a field that is used in an alternate key will contain one of the following characters `<`,`>`,`*`,`%`,`&`,`:`,`\\` then get or patch actions will not work. If you only need uniqueness then this approach will work, but if you need to use these keys as part of data integration then it is best to create the key on fields that won't have data with those characters.
5858

5959
<a name="BKMK_crud"></a>
6060

powerapps-docs/developer/common-data-service/event-framework.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: " Event Framework (Common Data Service) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces
33
description: "Describes the event framework and information developers should know when working with it." # 115-145 characters including spaces. This abstract displays in the search result.
44
ms.custom: ""
5-
ms.date: 05/25/2019
5+
ms.date: 06/18/2019
66
ms.reviewer: ""
77
ms.service: powerapps
88
ms.topic: "article"
@@ -45,7 +45,27 @@ Generally, you can expect to find a message for most of the **Request* classes i
4545

4646
Data about messages is stored in the [SdkMessage](reference/entities/sdkmessage.md) and [SdkMessageFilter](reference/entities/sdkmessagefilter.md) entities. The Plug-in registration tool will filter this information to only show valid messages.
4747

48-
To verify if a message and entity combination supports execution of plug-ins using a database query, use Advanced Find or a community tool (e.g., [FetchXML Builder](http://fxb.xrmtoolbox.com)) to execute the following fetchXML query. When using Advanced Find, you must create the query interactively.
48+
To verify if a message and entity combination supports execution of plug-ins using a database query, you can use the following Web API query:
49+
50+
```
51+
{{webapiurl}}sdkmessages?$select=name
52+
&$filter=isprivate eq false
53+
and (name ne 'SetStateDynamicEntity'
54+
and name ne 'RemoveRelated'
55+
and name ne 'SetRelated' and
56+
name ne 'Execute')
57+
and sdkmessageid_sdkmessagefilter/any(s:s/iscustomprocessingstepallowed eq true
58+
and s/isvisible eq true)
59+
&$expand=sdkmessageid_sdkmessagefilter($select=primaryobjecttypecode;
60+
$filter=iscustomprocessingstepallowed eq true and isvisible eq true)
61+
&$orderby=name
62+
```
63+
64+
> [!TIP]
65+
> You can export this data to an Excel worksheet using this query and the instructions provided in this blog post: [Find Messages and entities eligible for plug-ins using the Common Data Service](https://powerapps.microsoft.com/en-us/blog/find-messages-and-entities-eligible-for-plug-ins-using-the-common-data-service/)
66+
67+
68+
You can also use the following FetchXML to retrieve this information. The [FetchXML Builder](http://fxb.xrmtoolbox.com) is a useful tool to execute this kind of query.
4969

5070
```xml
5171
<fetch>

powerapps-docs/developer/common-data-service/org-service/TOC.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,16 +70,16 @@
7070
items: # We may need a topic here about CRUD?
7171
- name: Build queries with LINQ (.NET language-integrated query)
7272
href: build-queries-with-linq-net-language-integrated-query.md
73-
- name: LINQ query examples
74-
href: linq-query-examples.md
73+
- name: Use LINQ to construct a query
74+
href: use-linq-construct-query.md
75+
- name: Use late-bound entity class with a LINQ query
76+
href: use-late-bound-entity-class-linq-query.md
7577
- name: Order results using entity attributes with LINQ
7678
href: order-results-entity-attributes-linq.md
7779
- name: Page large result sets with LINQ
7880
href: page-large-result-sets-linq.md
79-
- name: Use late-bound entity class with a LINQ query
80-
href: use-late-bound-entity-class-linq-query.md
81-
- name: Use LINQ to construct a query
82-
href: use-linq-construct-query.md
81+
- name: LINQ query examples
82+
href: linq-query-examples.md
8383
- name: Detect duplicate data
8484
href: detect-duplicate-data.md
8585
- name: Generate classes for early-bound programming

powerapps-docs/developer/common-data-service/org-service/build-queries-with-linq-net-language-integrated-query.md

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,27 +19,14 @@ search.app:
1919

2020
You can use .NET Language-Integrated Query (LINQ) to write queries in Common Data Service. You can use the <xref:Microsoft.Xrm.Sdk.Client.OrganizationServiceContext> class or a deriving class created by the CrmSvcUtil tool to write [LINQ](https://msdn.microsoft.com/library/bb397897.aspx) queries that access the SOAP endpoint (Organization.svc). The <xref:Microsoft.Xrm.Sdk.Client.OrganizationServiceContext> class contains an underlying LINQ query provider that translates LINQ queries from Visual C# or Visual Basic .NET syntax into the query API used by Common Data Service.
2121

22-
When you use early-bound programming classes you can generate a class derived from the <xref:Microsoft.Xrm.Sdk.Client.OrganizationServiceContext> class if you specify the name of the class using the **servicecontextname** parameter when using the Code Generation Tool (CrmSvcUtil.exe). Use of this class allows for referencing an [IQueryable](https://msdn.microsoft.com/library/system.linq.iqueryable.aspx) entity set using the pattern `<entity schema name>+Set`, for example **AccountSet** to reference the collection of `Account` entity records. All samples in the Common Data Service Web Services, use **ServiceContext** as the name for this class but your code may use a different name. More information: [Create Early Bound Entity Classes with the Code Generation Tool (CrmSvcUtil.exe)](/dynamics365/customer-engagement/developer/org-service/create-early-bound-entity-classes-code-generation-tool.md)
22+
When you use early-bound programming classes you can generate a class derived from the <xref:Microsoft.Xrm.Sdk.Client.OrganizationServiceContext> class if you specify the name of the class using the **servicecontextname** parameter when using the Code Generation Tool (CrmSvcUtil.exe). Use of this class allows for referencing an [IQueryable](https://msdn.microsoft.com/library/system.linq.iqueryable.aspx) entity set using the pattern `<entity schema name>+Set`, for example **AccountSet** to reference the collection of `Account` entity records. All samples in the Common Data Service Web Services, use **ServiceContext** as the name for this class but your code may use a different name. More information: [Generate early-bound classes for the Organization service)](generate-early-bound-classes.md).
2323

24-
## In This Section
24+
### See Also
25+
2526
[Use LINQ to Construct a Query](use-linq-construct-query.md)
2627

2728
[Use Late-Bound Entity Class with a LINQ Query](use-late-bound-entity-class-linq-query.md)
2829

2930
[Use Entity Lookup Attributes with LINQ](order-results-entity-attributes-linq.md)
30-
31-
[Order Results Using Entity Attributes with LINQ](/dynamics365/customer-engagement/developer/org-service/order-results-entity-attributes-linq)
32-
33-
[Paging Large Result Sets with LINQ](/dynamics365/customer-engagement/developer/org-service/page-large-result-sets-linq)
34-
35-
[LINQ Query Examples](/dynamics365/customer-engagement/developer/org-service/linq-query-examples)
36-
37-
[Sample: Create a LINQ Query](/dynamics365/customer-engagement/developer/org-service/sample-create-linq-query)
38-
39-
[Sample: LINQ Query Examples](/dynamics365/customer-engagement/developer/org-service/sample-complex-linq-queries)
40-
41-
[Sample: RetrieveMultiple With Condition Operators Using LINQ](/dynamics365/customer-engagement/developer/org-service/sample-retrieve-multiple-with-condition-operators-using-linq)
42-
43-
[Sample: More LINQ Query Examples](/dynamics365/customer-engagement/developer/org-service/sample-more-linq-query-examples)
44-
45-
[Sample: Use LINQ with Late Binding](/dynamics365/customer-engagement/developer/org-service/sample-create-linq-query-late-binding)
31+
32+
[LINQ query examples](linq-query-examples.md)

powerapps-docs/developer/common-data-service/org-service/handle-exceptions-code.md

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: "Handle exceptions in your code (Common Data Service) | Microsoft Docs"
33
description: "This article discusses the exceptions that are returned from a Dynamics 365 Customer Engagement web service method call. The sample in this article highlights the common faults and exceptions that your application design should handle."
44
ms.custom: ""
5-
ms.date: 10/31/2018
5+
ms.date: 06/17/2019
66
ms.reviewer: ""
77
ms.service: powerapps
88
ms.topic: "article"
@@ -23,7 +23,7 @@ There are a number of exceptions that can be returned from a Common Data Service
2323

2424
## Common exceptions and faults
2525

26-
The following code is used in most Common Data Service Web Services samples. It highlights the common faults and exceptions that your application design should handle.
26+
The following code is used in most Common Data Service Web Services samples. It highlights the common faults and exceptions that your application design should handle.
2727

2828
```csharp
2929
catch (FaultException<Microsoft.Xrm.Sdk.OrganizationServiceFault> ex)
@@ -71,27 +71,23 @@ catch (System.Exception ex)
7171
> [!NOTE]
7272
> If you’re accessing the Discovery web service, your code should catch <xref:Microsoft.Xrm.Sdk.DiscoveryServiceFault> instead of the <xref:Microsoft.Xrm.Sdk.OrganizationServiceFault> fault shown previously.
7373
74-
In addition to these exceptions and faults, your code must handle the following exceptions:
74+
In addition to these exceptions and faults, your code must handle the following exceptions:
7575

76-
- [SecurityTokenValidationException](https://msdn.microsoft.com/library/system.identitymodel.tokens.securitytokenvalidationexception.aspx)
76+
- [SecurityTokenValidationException](/dotnet/api/system.identitymodel.tokens.securitytokenvalidationexception)
77+
- [ExpiredSecurityTokenException](/dotnet/api/system.servicemodel.security.expiredsecuritytokenexception)
78+
- [SecurityAccessDeniedException](/dotnet/api/system.servicemodel.security.securityaccessdeniedexception)
79+
- [MessageSecurityException](/dotnet/api/system.servicemodel.security.messagesecurityexception)
80+
- [SecurityNegotiationException](/dotnet/api/system.servicemodel.security.securitynegotiationexception)
7781

78-
- [ExpiredSecurityTokenException](https://msdn.microsoft.com/library/system.servicemodel.security.expiredsecuritytokenexception.aspx)
79-
80-
- [SecurityAccessDeniedException](https://msdn.microsoft.com/library/system.servicemodel.security.securityaccessdeniedexception.aspx)
81-
82-
- [MessageSecurityException](https://msdn.microsoft.com/library/system.servicemodel.security.messagesecurityexception.aspx)
83-
84-
- [SecurityNegotiationException](https://msdn.microsoft.com/library/system.servicemodel.security.securitynegotiationexception.aspx)
85-
86-
When connecting to Common Data Service, a `SecurityAccessDeniedException` exception can be thrown if you use a valid Microsoft account and your account is not associated with any Common Data Service organization. A `MessageSecurityException` can be thrown if your Microsoft account isn’t valid or there was an authentication failure.
82+
When connecting to Common Data Service, a `SecurityAccessDeniedException` exception can be thrown if you use a valid Microsoft account and your account is not associated with any Common Data Service organization. A `MessageSecurityException` can be thrown if your Microsoft account isn’t valid or there was an authentication failure.
8783

8884
<a name="BKMK_BusinessRuleErrors"></a>
8985

9086
## Custom errors from business rules
9187

92-
With Common Data Service, customizers can create business rules that are evaluated on the server. Customizers can throw error messages based on conditions set in the business rule. Developers should be sure to include robust error handling in their code to catch and handle these exceptions.
88+
With Common Data Service, customizers can create business rules that are evaluated on the server. Customizers can throw error messages based on conditions set in the business rule. Developers should be sure to include robust error handling in their code to catch and handle these exceptions.
9389

94-
The following is an example of the trace log produced when one of these errors is returned from a business rule named **Name of Entity Scope Business Rule returning Error** and the error message is **custom error message**.
90+
The following is an example of the trace log produced when one of these errors is returned from a business rule named **Name of Entity Scope Business Rule returning Error** and the error message is **custom error message**.
9591

9692
```csharp
9793
Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: custom error messageDetail:
@@ -123,15 +119,16 @@ Sync workflow 'Name of Entity Scope Business Rule returning Error' terminated wi
123119
</OrganizationServiceFault>
124120
```
125121

126-
More information: [Create and edit Business Rules](https://technet.microsoft.com/library/dn531086.aspx).
122+
More information: [Create a business rule for an entity](../../../maker/common-data-service/data-platform-create-business-rule.md)
127123

128-
<a name="BKMK_AdditionalInfo"></a>
129-
## Additional information about exceptions
130-
When an uncaught exception is thrown that contains sensitive information that the user doesn’t have permission to see, the sensitive information in the exception is hidden from the user and a reference number is provided. This reference number refers to the related server event log entry and server trace entry. A system administrator can look up those entries and find more information about the exception.
124+
<a name="BKMK_AdditionalInfo"></a>
125+
126+
## Additional information about exceptions
127+
128+
When an uncaught exception is thrown that contains sensitive information that the user doesn’t have permission to see, the sensitive information in the exception is hidden from the user and a reference number is provided. This reference number refers to the related server event log entry and server trace entry. A system administrator can look up those entries and find more information about the exception.
131129

132130
### See also
133-
[Troubleshooting and error handling](/dynamics365/customer-engagement/developer/troubleshooting-error-handling)
134-
[Troubleshooting tips](/dynamics365/customer-engagement/developer/troubleshooting-tips)
131+
135132
[Web service error codes](web-service-error-codes.md)
136133
[Handle exceptions in plug-ins](../handle-exceptions.md)
137134
[.NET Framework Developer Center](https://docs.microsoft.com/dotnet/framework/development-guide)

powerapps-docs/developer/common-data-service/org-service/use-linq-construct-query.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,8 @@ select new Contact
149149
}
150150
```
151151
### See also
152-
[Sample: Create a LINQ Query](/dynamics365/customer-engagement/developer/org-service/sample-create-linq-query.md)
153-
[Sample: LINQ Query Examples](/dynamics365/customer-engagement/developer/org-service/sample-complex-linq-queries.md)
154-
[Build Queries with LINQ (.NET Language-Integrated Query)](/dynamics365/customer-engagement/developer/org-service/build-queries-with-linq-net-language-integrated-query.md)
155-
[Use Late-Bound Entity Class with a LINQ Query](/dynamics365/customer-engagement/developer/org-service/use-late-bound-entity-class-linq-query.md)
152+
[Sample: Create a LINQ Query](/dynamics365/customer-engagement/developer/org-service/sample-create-linq-query)
153+
[Sample: LINQ Query Examples](/dynamics365/customer-engagement/developer/org-service/sample-complex-linq-queries)
154+
[Build Queries with LINQ (.NET Language-Integrated Query)](/dynamics365/customer-engagement/developer/org-service/build-queries-with-linq-net-language-integrated-query)
155+
[Use Late-Bound Entity Class with a LINQ Query](/dynamics365/customer-engagement/developer/org-service/use-late-bound-entity-class-linq-query)
156156
[Blog: LINQPad 4 Driver for Dynamics CRM REST/Web API are available on CodePlex](http://blogs.msdn.com/b/crminthefield/archive/2015/06/11/linqpad-4-driver-for-dynamics-crm-rest-webapi-are-available-on-codeplex.aspx)

0 commit comments

Comments
 (0)