Skip to content

Commit ea6eb1e

Browse files
committed
Merge branch 'master' into pehecke-aad-security
2 parents 9de0c58 + a31a19e commit ea6eb1e

File tree

338 files changed

+2181
-1466
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

338 files changed

+2181
-1466
lines changed

powerapps-docs/developer/data-platform/configure-entity-relationship-cascading-behavior.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,9 @@ The `CascadeConfiguration` (<xref:Microsoft.Xrm.Sdk.Metadata.CascadeConfiguratio
5050
|UserOwned|Cascade User Owned|Perform the action on all referencing table records owned by the same user as the referenced table record.|
5151

5252
>[!NOTE]
53-
> Cascading actions on Active records will only include records that have a Status Code of Active. Any other solution provided or custom status
54-
> codes that indicate a record as live and in use will not be processed as an Active record for cascading purposes.
53+
> Cascading actions on active records will only include records that have a state code of "Active" and a status code of "Open".
54+
> If custom status and state code labels are being used, this is the same as `statecode` value=0 and `statuscode` value=1 in most cases.
55+
> Any other solution provided or custom status codes with values other than the above will not be processed as an active record for cascading purposes.
5556
5657

5758
The `CascadeConfiguration` (<xref:Microsoft.Xrm.Sdk.Metadata.CascadeConfiguration> class or <xref href="Microsoft.Dynamics.CRM.CascadeConfiguration?text=CascadeConfiguration ComplexType" />) contains the following properties representing actions that may be performed on the referenced table in the one-to-many relationship.

powerapps-docs/developer/data-platform/data-synchronization.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: "Data Synchronization (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces
3-
description: "Sometimes you’ll need to synchronize and integrate Microsoft Dataverse data with data that is stored in other systems. The common data integration patterns include taking data from an external system and pushing it into Dataverse, taking data from Dataverse and synchronizing it to some external data store, or updating Dataverse with external data. You can now use several new capabilities to make it easier to write code to achieve these scenarios." # 115-145 characters including spaces. This abstract displays in the search result.
3+
description: "Learn about synchronizing Dataverse data with external systems." # 115-145 characters including spaces. This abstract displays in the search result.
44
ms.custom: ""
55
ms.date: 03/24/2021
66
ms.reviewer: "pehecke"

powerapps-docs/developer/data-platform/deployment-service/administer-deployment-using-deployment-web-service.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: "Administer the deployment using the deployment web service (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces
3-
description: "<Description>" # 115-145 characters including spaces. This abstract displays in the search result.
3+
description: "Learn about the deployment web service." # 115-145 characters including spaces. This abstract displays in the search result.
44
ms.custom: ""
55
ms.date: 10/31/2018
66
ms.reviewer: "pehecke"

powerapps-docs/developer/data-platform/developer-resources-page.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: "Developer resources page (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces
3-
description: "<Description>" # 115-145 characters including spaces. This abstract displays in the search result.
3+
description: "Learn about the developer resources web page." # 115-145 characters including spaces. This abstract displays in the search result.
44
ms.custom: ""
55
ms.date: 10/31/2018
66
ms.reviewer: "pehecke"

powerapps-docs/developer/data-platform/isv-app-management.md

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ ms.devlang: na
1313
ms.topic: article
1414
ms.reviewer: nabuthuk
1515
ms.workload: na
16-
ms.date: 02/11/2021
16+
ms.date: 04/11/2021
1717
ms.author: nabuthuk
1818
search.audienceType:
1919
- developer
@@ -28,6 +28,9 @@ search.app:
2828

2929
ISV Studio is designed to become the go-to Power Platform destination for Independent Software Vendors (ISV) to monitor and manage their applications. ISV Studio provides a consolidated cross tenant view of all the applications an ISV is distributing to customers.
3030

31+
> [!div class="mx-imgBorder"]
32+
> ![Studio home page](media/isv-studio-home-page.png "Studio home page")
33+
3134
[!INCLUDE[cc-terminology](includes/cc-terminology.md)]
3235

3336
> [!IMPORTANT]
@@ -37,18 +40,23 @@ ISV Studio is designed to become the go-to Power Platform destination for Indepe
3740
3841
ISV Studio supports applications built on the Microsoft Dataverse that are published to and deployed through [AppSource](https://appsource.microsoft.com/). No telemetry will be provided on side loaded solutions not deployed through AppSource.
3942

40-
The applications currently available on the Dataverse includes Power Apps and Dynamics 365 for Sales, Marketing, Service, and Talent.
43+
The applications currently available on the Dataverse includes Power Apps and Dynamics 365 for Sales, Marketing, Service, and Talent. ISV Studio now provides telemetry features in Dynamics 365 Finance and Operations.
4144

42-
As an end user installs an application from AppSource, a consent dialog will be displayed requesting the user to acknowledge that contact, usage, and transactional information may be shared with the application provider. This information is used by the provider to support billing and other transactional activities and to enable telemetry in ISV Studio for the ISV to learn from and act on.
45+
When end user installs an application from AppSource, a consent dialog will be displayed requesting the user to acknowledge that contact, usage, and transactional information may be shared with the application provider. This information is used by the provider to support billing and other transactional activities and to enable telemetry in ISV Studio for the ISV to learn from and act on.
4346

4447
A customer can request that data not be shared with the provider, in which case Microsoft will remove all data from that particular tenant within ISV Studio.
4548

4649
To access the public preview of ISV Studio, navigate your browser to [https://aka.ms/ISVStudio](https://aka.ms/ISVStudio/).
4750

48-
## Pre-requisites
51+
## Pre-requisites for Microsoft Dataverse
4952

5053
The ISV must be associated with a Microsoft registered Partner organization [ISV] that has one or more supported apps published in [AppSource](https://appsource.microsoft.com/). Supported apps include model-driven apps created using Power Apps and Dynamics 365 apps such as Dynamics 365 Sales and Dynamics 365 Customer Service.
5154

55+
## Pre-requisites for Dynamics 365 Finance and Operations
56+
57+
- For Dynamics 365 Finance and Operations, update the `SolutionID` in the descriptors with the `ProductId` of their offer in Partner Center. The `ProductId` of their offer can be found in the URL in Partner Center.
58+
- Ask customers to install the latest solution with the above. They need to be on version `10.0.16` or above to see the telemetry feature in ISV Studio.
59+
5260
### Admin access to ISV Studio
5361

5462
To be an admin in ISV Studio, your Azure Active Directory account must be configured as an app owner in Partner Center for their publisher account. Once you get the admin access, you'll be able to give more users access to ISV Studio from the studio directly.
@@ -100,4 +108,4 @@ Please send an email to [[email protected]](mailto:ISVFeedback@microsoft
100108
[Publish your app on AppSource](publish-app-appsource.md)
101109

102110

103-
[!INCLUDE[footer-include](../../includes/footer-banner.md)]
111+
[!INCLUDE[footer-include](../../includes/footer-banner.md)]
Loading

powerapps-docs/developer/data-platform/on-premises-options.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: "On-premises deployment options (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces
3-
description: "<Description>" # 115-145 characters including spaces. This abstract displays in the search result.
3+
description: "Learn about deployment options for an on-premise installation." # 115-145 characters including spaces. This abstract displays in the search result.
44
ms.custom: ""
55
ms.date: 10/31/2018
66
ms.reviewer: "pehecke"

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@
5353
href: entity-operations-update-delete.md
5454
- name: Associate and disassociate entities
5555
href: entity-operations-associate-disassociate.md
56+
- name: Access entity data faster using partitions
57+
href: azure-storage-partitioning-sdk.md
5658
- name: Use messages
5759
href: use-messages.md
5860
- name: Special Operations
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
---
2+
title: "Improve performance using storage partitions when accessing entity data (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces
3+
description: "Learn how to improve performance when accessing non-relational entity date." # 115-145 characters including spaces. This abstract displays in the search result.
4+
ms.custom: ""
5+
ms.date: 01/25/2021
6+
ms.reviewer: "pehecke"
7+
ms.service: powerapps
8+
ms.topic: "article"
9+
author: "JimDaly" # GitHub ID
10+
ms.author: "pehecke" # MSFT alias of Microsoft employees only
11+
manager: "sunilg" # MSFT alias of manager or PM counterpart
12+
search.audienceType:
13+
- developer
14+
search.app:
15+
- PowerApps
16+
- D365CE
17+
---
18+
# Improve performance using storage partitions when accessing entity data
19+
20+
An optional partition key can be specified to create a logical partition for non-relational custom entity data stored in NoSql tables of Azure heterogenous storage ([Cosmos DB](/azure/cosmos-db/introduction)). Having a partition key improves application performance for large sets of data (millions of records) by grouping data items into logical sets within a table. For example, a table containing products can be grouped logically into product categories to improve retrieval of all items within a product category. The partition key value can be a string or numeric type. Once specified, the partition key value can't be changed.
21+
22+
When no partition key is specified, the table is the logical boundary and retrieving a single item or a set of logically related items from a large data set will not be as performant as when using a partition key.
23+
24+
## Creating and accessing a partition
25+
26+
A unique new partition key value must be used to create a new logical partition. The same value must be used to create additional items in the same logical partition and to retrieve, update, or delete items belonging to that logical partition.
27+
28+
```csharp
29+
public void Run(CrmServiceClient client)
30+
{
31+
// Create
32+
Entity entity = new Entity("new_msdyn_customer");
33+
entity["new_firstname"] = "Monica";
34+
entity["new_lastname"] = "Thompson";
35+
36+
// First use of the partition ID value during an entity Create operation
37+
// also creates the partition where that entity record is stored.
38+
entity["partitionid"] = "CustomerPartition";
39+
Guid id = client.Create(entity);
40+
41+
// Update
42+
UpdateRequest updateRequest = new UpdateRequest();
43+
entity = new Entity("new_msdyn_customer", id);
44+
entity["new_firstname"] = "Cora";
45+
//entity["new_lastname"] = "Thomas";
46+
entity["partitionid"] = "CustomerPartition";
47+
updateRequest.Target = entity;
48+
var updateResponse = (UpdateResponse)client.Execute(updateRequest);
49+
50+
// Retrieve
51+
RetrieveRequest request = new RetrieveRequest();
52+
request.ColumnSet = new ColumnSet("new_firstname");
53+
request.Target = new EntityReference("new_msdyn_customer", id);
54+
request["partitionId"] = "CustomerPartition";
55+
var response = (RetrieveResponse)client.Execute(request);
56+
57+
// RetrieveMultiple
58+
RetrieveMultipleRequest retreiveMultipleRequest = new RetrieveMultipleRequest();
59+
retreiveMultipleRequest.Query = new QueryExpression()
60+
{
61+
EntityName = "new_msdyn_customer",
62+
ColumnSet = new ColumnSet("new_firstname")
63+
};
64+
retreiveMultipleRequest["partitionId"] = "CustomerPartition";
65+
var retrieveResponse = (RetrieveMultipleResponse)client.Execute(retreiveMultipleRequest);
66+
67+
// Update and insert
68+
UpsertRequest upsertRequest = new UpsertRequest();
69+
entity = new Entity("new_msdyn_customer", id);
70+
entity["new_firstname"] = "Andre";
71+
entity["new_lastname"] = "Lawson";
72+
entity["partitionid"] = "CustomerPartition";
73+
upsertRequest.Target = entity;
74+
var upsertResponse = (UpsertResponse)client.Execute(upsertRequest);
75+
76+
// Delete
77+
DeleteRequest deleteRequest = new DeleteRequest();
78+
deleteRequest.Target = new EntityReference("new_msdyn_customer", id);
79+
deleteRequest["partitionId"] = "CustomerPartition";
80+
var deleteResponse = (DeleteResponse)client.Execute(deleteRequest);
81+
}
82+
```
83+
84+
## Additional information
85+
86+
Here are a few more details about the partition key and partition management.
87+
88+
- The key value must be unique in the environment.
89+
- A partition is limited to 20 GB of data, and there is no method available to check the partition's current size.
90+
- There is no defined limit to the number of partitions you can allocate in an environment.
91+
- Partition allocation is automatic. Specifying a unique partition key during a Create operation creates a partition. When all data has been deleted from the partition, the partition is automatically deleted.
92+
- There is no method available to rename a key.
93+
- Presently, only the Create, Update, Retrieve, and Delete entity operations support storage partitioning.
94+
95+
### See Also
96+
97+
[Passing optional parameters with a request](use-messages.md#passing-optional-parameters-with-a-request)
98+
[Create entities using the Organization Service](entity-operations-create.md)
99+
[Retrieve an entity using the Organization Service](entity-operations-retrieve.md)
100+
[Update and Delete entities using the Organization Service](entity-operations-update-delete.md)
101+
[Partitioning and horizontal scaling in Azure Cosmos DB](/azure/cosmos-db/partitioning-overview)

powerapps-docs/developer/data-platform/org-service/entity-operations-create.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: "Create entities using the Organization Service (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces
3-
description: "<Description>" # 115-145 characters including spaces. This abstract displays in the search result.
3+
description: "Learn how to create entities using the Organization Service." # 115-145 characters including spaces. This abstract displays in the search result.
44
ms.custom: ""
55
ms.date: 10/31/2018
66
ms.reviewer: "pehecke"
@@ -272,6 +272,10 @@ Another way to create an entity is by using the <xref:Microsoft.Xrm.Sdk.Messages
272272

273273
More information: [Use Upsert](entity-operations-update-delete.md#use-upsert)
274274

275+
## Create documents in storage partitions
276+
277+
If you are creating large numbers of entities that contain documents, you can create the entities in storage partitions to speed up access to those entity records. More information: [Improve performance when accessing documents using storage partitions](azure-storage-partitioning-sdk.md)
278+
275279

276280
### See also
277281

0 commit comments

Comments
 (0)