Skip to content

Commit b51cd0d

Browse files
committed
Merge branch 'master' into Nava_pcfcanvas
2 parents 67e838e + cac1f2a commit b51cd0d

File tree

57 files changed

+944
-144
lines changed

Some content is hidden

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

57 files changed

+944
-144
lines changed

powerapps-docs/developer/common-data-service/best-practices/business-logic/develop-iplugin-implementations-stateless.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ ms.devlang: na
1313
ms.topic: article
1414
ms.tgt_pltfrm: na
1515
ms.workload: na
16-
ms.date: 1/15/2019
16+
ms.date: 9/05/2019
1717
ms.author: jowells
1818
search.audienceType:
1919
- developer
@@ -40,7 +40,11 @@ Members of classes that implement the <xref href="Microsoft.Xrm.Sdk.IPlugin?text
4040

4141
## Guidance
4242

43-
When implementing <xref:Microsoft.Xrm.Sdk.IPlugin>, do not use member fields and properties and write the <xref:Microsoft.Xrm.Sdk.IPlugin.Execute*> method as a stateless operation. All per invocation state information should be accessed via the execution context only. Do not attempt to store any execution state data in member fields or properties for use during the current or next plug-in invocation unless that data was obtained from the configuration parameter provided to the overloaded constructor.
43+
When implementing <xref:Microsoft.Xrm.Sdk.IPlugin>, do not use member fields and properties and write the <xref:Microsoft.Xrm.Sdk.IPlugin.Execute*> method as a stateless operation. All per invocation state information should be accessed via the execution context only.
44+
45+
Do not attempt to store any execution state data in member fields or properties for use during the current or next plug-in invocation unless that data was obtained from the configuration parameter provided to the overloaded constructor.
46+
47+
Do not use code that registers to AppDomain events. Plugin logic should not rely on any AppDomain events or properties, since the internal implementation of the plugin infrastructure can change the execution behavior at any point of time. This can cause failures even if the code worked at some point in time.
4448

4549
Read-only, static, and constant members are inherently thread-safe and can also be used reliably within a plug-in class. The following are some examples on how to maintain thread-safe plug-ins:
4650

powerapps-docs/developer/common-data-service/build-web-applications-server-server-s2s-authentication.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ search.app:
1919

2020
Use server-to-server (S2S) authentication to securely and seamlessly communicate with Common Data Service with your web applications and services. S2S authentication is the common way that apps registered on Microsoft AppSource use to access the Common Data Service data of their subscribers.
2121

22-
S2S authentication means you don’t need to use a paid PowerApps user license when you connect to Common Data Service environments. There is no license fee for the special *application user* account you will use with S2S authentication. With S2S authentication a special unlicensed application user account is created and includes information about your application registered with Azure Active Directory (Azure AD). Rather than user credentials, the application is authenticated based on a service principal identified by an Azure AD Object ID value which is stored in the application user record. The application user is associated with a custom security role which controls the kinds of data and operations the application is allowed to perform.
22+
S2S authentication means you don’t need to use a paid PowerApps user license when you connect to Common Data Service environments. There is no license fee for the special *application user* account you will use with S2S authentication. However, there are [limits to the number of requests the application user](https://docs.microsoft.com/power-platform/admin/api-request-limits-allocations#non-licensed-usersapplication-users) account can call. With S2S authentication, a special unlicensed application user account is created and includes information about your application registered with Azure Active Directory (Azure AD). Rather than user credentials, the application is authenticated based on a service principal identified by an Azure AD Object ID value which is stored in the application user record. The application user is associated with a custom security role which controls the kinds of data and operations the application is allowed to perform.
2323

2424
All operations performed by your application or service using S2S will be performed as the application user you provide rather than as the user who is accessing your application. If you want your application to perform data operations on behalf of a specific user, such as the one who is interacting with your application, you can apply impersonation when the custom security role applied to your application service principal has the privileges required. More information: [Impersonate another user](impersonate-another-user.md)
2525

powerapps-docs/developer/common-data-service/virtual-entities/custom-ve-data-providers.md

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Custom virtual entity data providers (Common Data Service) | Microsoft Docs"
33
description: "Using the Common Data Service Data SDK, .NET Developers have the option of creating custom virtual entity data providers to help integrate external data source types that are not supported by an existing data provider."
4-
ms.date: 10/31/2018
4+
ms.date: 09/05/2019
55
ms.service: powerapps
66
ms.topic: "article"
77
applies_to:
@@ -30,19 +30,12 @@ Using the Common Data Service Data SDK, .NET Developers have the option of creat
3030
Custom data providers require substantial development resources to create and maintain. You must have fundamental knowledge of the following areas:
3131

3232
- The external data source schema and associated data access techniques. This ___domain knowledge is specific to the external data source type.
33-
34-
35-
<!-- TODO:
36-
- Common Data Service metadata schema: More information: [The metadata and data models in Microsoft Dynamics 365](../metadata-data-models.md).
37-
- Common Data Service event system: More information: [Introduction to the event framework](../introduction-event-framework.md).
38-
- Common Data Service plug-in architecture and development: More information: [Plug-in development](../plugin-development.md). -->
33+
- Common Data Service metadata schema: More information: [Work with metadata using code](../metadata-services.md).
34+
- Common Data Service event framework: More information: [Event Framework](../event-framework.md).
35+
- Common Data Service plug-in architecture and development: More information: [Use plug-ins to extend business processes](../plug-ins.md).
3936

4037
The `Microsoft.Xrm.Sdk.Data.dll` assembly is available as a NuGet package: [Microsoft.CrmSdk.Data](https://www.nuget.org/packages/Microsoft.CrmSdk.Data/)
4138

42-
<!-- ## Data Provider Architecture -->
43-
<!-- TODO: it would be nice to have a more detailed architecture diagram of a data provider and add discussion. -->
44-
45-
4639
## Categories of providers
4740

4841
There are two general categories of data provider you can create using the virtual entity data SDK assemblies: generic or targeted. The table below describes these approaches and matches them to the data provider development model best suited for that approach.
@@ -96,11 +89,6 @@ If for any reason your code cannot achieve the expected result, you must throw t
9689
|<xref:Microsoft.Xrm.Sdk.Data.Exceptions.ObjectNotFoundException>|The specified record in the external data source does not exist.|
9790
|<xref:Microsoft.Xrm.Sdk.Data.Exceptions.TimeoutException>|The external operation did not complete within the allowed time; for example, the result of a HTTP status 408 from the external data service.|
9891

99-
<!--
100-
TODO:
101-
To assist you in plug-in development, the Data SDK contains the _Plugin Profiler and Debugger_; for more information see [TBD]TODO: Obtain information on this tool, create subtopic.
102-
-->
103-
10492

10593
### Plug-in registration
10694

@@ -114,6 +102,11 @@ Unlike an ordinary plugin, you will only use the Plugin Registration Tool (PRT)
114102

115103
When the metadata for your virtual entity is configured, your plugins are registered using the PRT and the correct configuration data is set in the **EntityDataProvider** and **EntityDataSource** entities, your virtual entity will start to respond to requests.
116104

105+
### Debugging plug-ins
106+
107+
A custom virtual entity provider is a type of plug-in. Use the information in these topics to debug plug-ins for custom virtual entity providers: [Debug Plug-ins](../debug-plug-in.md) and [Tutorial: Debug a plug-in](../tutorial-debug-plug-in.md).
108+
109+
117110
### See also
118111

119112
[Get started with virtual entities](get-started-ve.md)<br />

powerapps-docs/maker/TOC.yml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -911,6 +911,8 @@
911911
href: ./model-driven-apps/configure-event-handlers-legacy.md
912912
- name: How to disable auto-save in a form
913913
href: ./model-driven-apps/manage-auto-save.md
914+
- name: How to add a tab for SharePoint documents
915+
href: ./model-driven-apps/add-documents-tab-entity-main-form.md
914916
- name: Embed a canvas app on a model-driven form
915917
href: ./model-driven-apps/embed-canvas-app-in-form.md
916918
items:
@@ -1155,8 +1157,6 @@
11551157
href: ./common-data-service/data-platform-create-entity.md
11561158
- name: "Create a custom entity that has components"
11571159
href: ./common-data-service/create-custom-entity.md
1158-
- name: Add data to an entity using Power Query
1159-
href: ./common-data-service/data-platform-cds-newentity-pq.md
11601160
- name: Entities and metadata
11611161
href: ./common-data-service/create-edit-metadata.md
11621162
- name: Types of entities
@@ -1305,6 +1305,17 @@
13051305
href: ./common-data-service/set-managed-properties-metadata.md
13061306
- name: Publish changes
13071307
href: ./common-data-service/publish-changes-for-use-customer-service-hub.md
1308+
- name: Work with dataflows
1309+
href: ./common-data-service/self-service-data-prep-with-dataflows.md
1310+
items:
1311+
- name: Create and use dataflows
1312+
href: ./common-data-service/create-and-use-dataflows.md
1313+
- name: Add data to an entity using Power Query
1314+
href: ./common-data-service/data-platform-cds-newentity-pq.md
1315+
- name: Connect Azure Data Lake for dataflow storage
1316+
href: ./common-data-service/connect-azure-data-lake-storage-for-dataflow.md
1317+
- name: Use an on-premises data gateway
1318+
href: ./common-data-service/using-dataflows-with-on-premises-data.md
13081319
- name: License requirements for entities
13091320
href: ./common-data-service/data-platform-entity-licenses.md
13101321
items:

powerapps-docs/maker/canvas-apps/component-behavior.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ search.app:
1919
2020
Specify one or more [behavior formulas](working-with-formulas-in-depth.md) that run when an event triggers a change in component instances. For example, set a component's **OnReset** property to one or more formulas that perform initialization, clear input, and reset values when the **Reset** function runs on the component instances.
2121

22-
## OnReset ##
22+
## OnReset
2323

2424
With a component selected, select **OnReset** in the drop-down list of properties (on the right side of the formula bar), and then enter one or more formulas.
2525

powerapps-docs/maker/canvas-apps/embed-teams-app.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ ms.service: powerapps
77
ms.topic: conceptual
88
ms.custom: canvas
99
ms.reviewer:
10-
ms.date: 05/29/2019
10+
ms.date: 09/09/2019
1111
ms.author: jimholtz
1212
search.audienceType:
1313
- maker
@@ -123,7 +123,7 @@ For more information, see [Manifest Editor](https://docs.microsoft.com/microsoft
123123
> [!div class="mx-imgBorder"]
124124
> ![Team tab Add](./media/embed-teams-app/team-tab-add.png "Team tab Add")
125125
126-
7. Add your app's configuration URL in the "Configuration URL" input field, using the following format: `https://web.powerapps.com/webplayer/teamsapptabsettings?appid=<PowerApp ID>`
126+
7. Add your app's configuration URL in the "Configuration URL" input field, using the following format: `https://apps.powerapps.com/teams/settings/<PowerApp ID>`
127127

128128
Replace `<PowerApp ID>` with the App ID GUID you recorded above.
129129

powerapps-docs/maker/canvas-apps/gateway-reference.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ There is currently no single place where tenant administrators can manage all t
154154
**Answer:** No. A gateway connects to on-premises data sources only.
155155

156156
**Question:** What is the actual Windows service called?
157-
**Answer:** In Services, the gateway is called **Power BI Enterprise Gateway Service**.
157+
**Answer:** In Services, the gateway is called **On-premises data gateway service**.
158158

159159
**Question:** Are there any inbound connections to the gateway from the cloud?
160160
**Answer:** No. The gateway uses outbound connections to Azure Service Bus.

powerapps-docs/maker/common-data-service/configure-connection-roles.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ applies_to:
1212
- "Dynamics 365 Version 9.x"
1313
- "PowerApps"
1414
ms.author: "matp"
15-
manager: "brycho"
15+
manager: "kvivek"
16+
author: "Mattp123"
1617
search.audienceType:
1718
- maker
1819
search.app:

0 commit comments

Comments
 (0)