Skip to content

Commit f579e42

Browse files
committed
Merge branch 'master' into portals-1720960
2 parents 8a0d982 + 1aeb62c commit f579e42

14 files changed

+258
-78
lines changed

powerapps-docs/developer/common-data-service/cds-sql-query.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: "Use SQL to query data (Common Data Service) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces
33
description: "Learn how to query Common Data Service entity data using SQL." # 115-145 characters including spaces. This abstract displays in the search result.
44
ms.custom: ""
5-
ms.date: 05/26/2020
5+
ms.date: 09/25/2020
66
ms.reviewer: "pehecke"
77
ms.service: powerapps
88
ms.topic: "article"
@@ -20,8 +20,13 @@ search.app:
2020

2121
[!INCLUDE[cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)]
2222

23+
> [!WARNING]
24+
> A problem has been identified with the Tabular Data Stream (TDS) endpoint. This feature is globally disabled, and we are working urgently to address the issue. This topic will be updated when the issue is resolved or when we have more information to share.
25+
2326
A SQL data connection is available on the Common Data Service endpoint. The SQL connection provides read-only access to the entity data of the target Common Data Service environment. This allows you to write and execute SQL queries against the entity data table. Table columns provide the attribute data of the entity. No custom views of the data have been provided.
2427

28+
29+
2530
> [!IMPORTANT]
2631
> - This is a preview feature, and isn't available in all regions.
2732
> - [!INCLUDE[cc_preview_features_definition](../../includes/cc-preview-features-definition.md)]

powerapps-docs/maker/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1832,6 +1832,8 @@
18321832
href: ../teams/relationships-table.md
18331833
- name: Work with table columns
18341834
href: ../teams/table-columns.md
1835+
- name: Project Oakdale FAQs
1836+
href: ../teams/data-platform-faqs.md
18351837
- name: Manage your apps
18361838
href: ../teams/manage-your-apps.md
18371839
- name: Publish and share your app

powerapps-docs/maker/canvas-apps/functions/function-patch.md

Lines changed: 144 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@ ms.service: powerapps
77
ms.topic: reference
88
ms.custom: canvas
99
ms.reviewer: nabuthuk
10-
ms.date: 03/16/2020
10+
ms.date: 09/25/2020
1111
ms.author: gregli
1212
search.audienceType:
1313
- maker
1414
search.app:
1515
- PowerApps
1616
---
1717
# Patch function in Power Apps
18+
1819
Modifies or creates one or more [records](../working-with-tables.md#records) in a [data source](../working-with-data-sources.md), or merges records outside of a data source.
1920

2021
Use the **Patch** function to modify records in complex situations. Such as, when you do updates that require no user interaction or use forms that span multiple screens.
@@ -67,6 +68,10 @@ Specify two or more records that you want to merge. Records are processed in the
6768

6869
**Patch** returns the merged record and doesn't modify its arguments or records in any data sources.
6970

71+
72+
73+
74+
7075
## Syntax
7176
#### Modify or create a record in a data source
7277
**Patch**( *DataSource*, *BaseRecord*, *ChangeRecord1* [, *ChangeRecord2*, … ])
@@ -91,7 +96,7 @@ Specify two or more records that you want to merge. Records are processed in the
9196
#### Modify or create a record (in a data source)
9297
In these examples, you'll modify or create a record in a data source, named **IceCream**, that contains the data in this [table](../working-with-tables.md) and automatically generates the values in the **ID** [column](../working-with-tables.md#columns):
9398

94-
![](media/function-patch/icecream.png)
99+
![Example icecream](media/function-patch/icecream.png "Example icecream")
95100

96101
| Formula | Description | Result |
97102
| --- | --- | --- |
@@ -100,11 +105,147 @@ In these examples, you'll modify or create a record in a data source, named **Ic
100105

101106
After the previous formulas have been evaluated, the data source ends with these values:
102107

103-
![](media/function-patch/icecream-after.png)
108+
![Example icecream after](media/function-patch/icecream-after.png "Example icecream after")
104109

105110
#### Merge records (outside of a data source)
106111

107112
| Formula | Description | Result |
108113
| --- | --- | --- |
109114
| **Patch(&nbsp;{&nbsp;Name:&nbsp;"James",&nbsp;Score:&nbsp;90&nbsp;}, {&nbsp;Name:&nbsp;"Jim",&nbsp;Passed:&nbsp;true&nbsp;} )** |Merges two records outside of a data source:<br><ul><li>The values in the **Name** column of each record don't match. The result contains the value (**Jim**) in the record that's closer to the end of the argument list instead of the value (**James**) in the record that's closer to the start.</li><li>The first record contains a column (**Score**) that doesn't exist in the second record. The result contains that column with its value (**90**).</li><li>The second record contains a column (**Passed**) that doesn't exist in the first record. The result contains that column with its value (**true**). |{&nbsp;Name:&nbsp;"Jim", Score:&nbsp;90, Passed:&nbsp;true&nbsp;} |
110115

116+
### Use of **As** or **ThisRecord**
117+
118+
Using the **As** or **ThisRecord** keyword in the formula avoids ambiguous evaluation context.
119+
120+
In the example below, consider the first lookup in the `If` statement. `(OrderID = A[@OrderID])` is expected to compare the `OrderId` in the lookup scope with the `OrderId` of collection `A` in the `ForAll` scope. In this case, you likely want `A[@OrderId]` to be resolved as a local parameter. But it is ambiguous.
121+
122+
Power Apps currently interprets both the left-hand side `OrderId` and right-hand side `A[@OrderId]` as a field in the lookup scope. Therefore, lookup will always find the first row in `[dbo].[Orders1]` because the condition is always true (that is, any row's `OrderId` is equal to itself.)
123+
124+
```powerapps-dot
125+
ClearCollect(
126+
A,
127+
Filter(
128+
'[dbo].[Orders1]',
129+
OrderId = 8888888
130+
)
131+
);
132+
ForAll(
133+
A,
134+
If(
135+
LookUp(
136+
'[dbo].[Orders1]',
137+
OrderId = A[@OrderId],
138+
"OK"
139+
) = "OK",
140+
Patch(
141+
'[dbo].[Orders1]',
142+
LookUp(
143+
'[dbo].[Orders1]',
144+
OrderId = A[@OrderId]
145+
),
146+
{
147+
OrderName: "val1"
148+
}
149+
),
150+
Patch(
151+
'[dbo].[Orders1]',
152+
Defaults('[dbo].[Orders1]'),
153+
{
154+
OrderName: "val2"
155+
}
156+
)
157+
)
158+
)
159+
```
160+
161+
#### Using **As** or **ThisRecord**
162+
163+
Whenever possible use the **As** operator or the **ThisRecord** to disambiguate the left-hand side. **As** is recommended for the above scenario.
164+
165+
When your formula uses multiple scopes with `ForAll`, `Filter`, and `Lookup` on the same data source or table, it is possible that the scope parameters may collide with a same field elsewhere. Therefore, it is recommended to use the **As** operator or **ThisRecord** to resolve the field name and avoid ambiguity.
166+
167+
For example, you can use the **As** operator to disambiguate in the example below.
168+
169+
```powerapps-dot
170+
ClearCollect(
171+
A,
172+
Filter(
173+
'[dbo].[Orders1]',
174+
OrderId = 8888888
175+
)
176+
);
177+
ForAll(
178+
A,
179+
If(
180+
LookUp(
181+
'[dbo].[Orders1]' As B,
182+
B.OrderId = A[@OrderId],
183+
"OK"
184+
) = "OK",
185+
Patch(
186+
'[dbo].[Orders1]',
187+
LookUp(
188+
'[dbo].[Orders1]' As C,
189+
C.OrderId = A[@OrderId]
190+
),
191+
{
192+
OrderName: "val1"
193+
}
194+
),
195+
Patch(
196+
'[dbo].[Orders1]',
197+
Defaults('[dbo].[Orders1]'),
198+
{
199+
OrderName: "val2"
200+
}
201+
)
202+
)
203+
)
204+
```
205+
206+
Alternatively, you can use **ThisRecord** for the same purpose.
207+
208+
```powerapps-dot
209+
ClearCollect(
210+
A,
211+
Filter(
212+
'[dbo].[Orders1]',
213+
OrderId = 8888888
214+
)
215+
);
216+
ForAll(
217+
A,
218+
If(
219+
LookUp(
220+
'[dbo].[Orders1]',
221+
ThisRecord.OrderId = A[@OrderId],
222+
"OK"
223+
) = "OK",
224+
Patch(
225+
'[dbo].[Orders1]',
226+
LookUp(
227+
'[dbo].[Orders1]',
228+
ThisRecord.OrderId = A[@OrderId]
229+
),
230+
{
231+
OrderName: "val1"
232+
}
233+
),
234+
Patch(
235+
'[dbo].[Orders1]',
236+
Defaults('[dbo].[Orders1]'),
237+
{
238+
OrderName: "val2"
239+
}
240+
)
241+
)
242+
)
243+
```
244+
245+
To learn more about the usage of **As** operator and **ThisRecord** see **[Operators](operators.md)** article.
246+
247+
248+
249+
250+
251+

powerapps-docs/maker/common-data-service/view-entity-data-power-bi.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: "View entity data in Power BI Desktop (Preview) | MicrosoftDocs"
33
description: "Learn how access and view entity data in Power BI Desktop"
44
ms.custom: ""
5-
ms.date: 05/26/2020
5+
ms.date: 09/25/2020
66
ms.reviewer: "matp"
77
ms.service: powerapps
88
author: "Mattp123"
@@ -19,6 +19,11 @@ search.app:
1919

2020
[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)]
2121

22+
> [!WARNING]
23+
> A problem has been identified with the Tabular Data Stream (TDS) endpoint. This feature is globally disabled, and we are working urgently to address the issue. This topic will be updated when the issue is resolved or when we have more information to share.
24+
>
25+
> While this feature is disabled, the existing Commmon Data Service connector still works using the import connection mode.
26+
2227
You can use Power BI Desktop to view entities in Common Data Service. The entity
2328
record data that you can access from your environment is read-only. Data access
2429
uses the Common Data Service security model that is the same used to access

powerapps-docs/maker/portals/configure/use-simplified-authentication-configuration.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ For more information about site settings, see [related site settings](azure-ad-b
219219

220220
You have the option of configuring additional setting for the Azure AD B2C identity provider.
221221

222-
![Configure additional settings](media/use-simplified-authentication-configuration/configure-ad-b2c-step3.png "Configure additional settings")
222+
![Configure additional settings](media/use-simplified-authentication-configuration/configure-ad-b2c-step3.png "Configure additional settings - Azure AD B2C")
223223

224224
- **Registration claims mapping​** - List of logical name/claim pairs to be used to map claim values returned from Azure AD B2C created during sign up to attributes in the contact record. <br>
225225
For example, if you've enabled **Job Title (jobTitle)** and **Postal Code (postalCode)** as **User Attributes** in your user flow and you want to update the corresponding Contact entity fields **Job Title (jobtitle)** and **Address 1: ZIP / Postal Code (address1_postalcode)**, enter the claims mapping as: ```jobtitle=jobTitle,address1_postalcode=postalCode```.
@@ -273,7 +273,7 @@ For more information about configuring OAuth 2 providers, see [OAuth 2 provider
273273

274274
![Configure the Google app](media/use-simplified-authentication-configuration/configure-google.png "Configure the Google app")
275275

276-
To use **Google** as an identity provider, you need to [create an app in Google](https://console.developers.google.com/) with a redirect URL.
276+
To use **Google** as an identity provider, you need to [create an app in Google](configure-oauth2-settings.md#google-people-api-settings) with a redirect URL.
277277

278278
The redirect URL is used by the Google app to redirect users to the portal after the authentication succeeds. If your portal uses a custom ___domain name, you might have a different URL than the one provided here.​
279279

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
title: FAQs for Project Oakdale | Microsoft Docs
3+
description: Frequent asked questions (FAQs) for Project Oakdale.
4+
author: mmercuri
5+
ms.service: powerapps
6+
ms.topic: conceptual
7+
ms.custom:
8+
ms.date: 09/22/2020
9+
ms.author: mmercuri
10+
ms.reviewer: kvivek
11+
---
12+
# FAQs for Project Oakdale
13+
14+
[!INCLUDE [cc-beta-prerelease-disclaimer.md](../includes/cc-beta-prerelease-disclaimer.md)]
15+
16+
Here is a list of frequently asked (FAQs) for Project Oakdale; also see [Project Oakdale licensing FAQs](/power-platform/admin/powerapps-flow-licensing-faq#project-oakdale) in the Power Platform admin guide.
17+
18+
### What does Project Oakdale enable and how does this impact Microsoft Power Platform and Teams users?
19+
20+
Power Apps developers and Power Virtual Agents chatbot creators will now be able to make and manage their apps and bots directly in Teams with embedded [Power Apps](overview.md) and [Power Virtual Agents](https://aka.ms/pva-teams-docs) apps. This enables a streamlined end-to-end user experience and allows makers to deploy to Teams with one click through the Teams app store. These new features are powered by Power Platform enhancement in Teams that provide enterprise datastores with rich data types to Microsoft 365 users and is now included in Microsoft 365 and Office 365 licenses.
21+
22+
Also, apps built with Power Apps and used in Teams will be responsive to the form factor that they're loaded on, meaning a creator can build an app once for users to view full screen on both mobile devices and desktops.
23+
24+
### What value does Project Oakdale offer for professional developers?
25+
26+
Common Data Service includes a robust set of capabilities for professional developers, including API access, the ability to create plug-ins, and so on.
27+
28+
Project Oakdale is initially focused on the low-code and no-code developer and does not provide access to these capabilities at launch. However, Project Oakdale capability along with premium functionality through Power apps provides professional developers the ability to create robust solutions with far less code, including extending the out-of-the-box capabilities of Power Automate with their own custom logic in Azure functions, connect their own web services, etc.
29+
30+
### When should customers use Lists versus Project Oakdale?
31+
32+
Lists is great for quickly tracking data in Teams. All your lists are instantly usable inside of Teams. Additionally, you can build canvas apps and flows on top of your Lists just like you can today in SharePoint.
33+
34+
Project Oakdale is great for building Microsoft Power Platform solutions in Teams. With support for files, images, and multiple related tables, Oakdale can meet your needs today and be promoted to the full Common Data Service if you need additional capacity or capabilities in the future.
35+
36+
### How does security and governance differ between Common Data Service and Microsoft Project Oakdale?
37+
38+
Project Oakdale is enterprise grade and designed to work within Teams. Focused on Teams, it aligns with the core roles identified in the environment: Owners, Members, and Guests.
39+
40+
For Project Oakdale, access to the environment is restricted just to the Teams owners, members, and guests.
41+
Granting access to the environment is managed by Teams Owner by adding or removing the Teams members.
42+
Key benefits include -
43+
- Supports Teams Azure AD security group with runtime (JIT) user access and privilege checks.
44+
- Auto assignment of System Administrator security role to Teams Owners.
45+
- Ability to assign different security roles to Teams Owners and Members.
46+
- No security settings management for Business Unit and Teams is required.
47+
48+
Common Data Service is designed to be used in any application (not just Teams) and includes additional security features such as auditing, sharing, field level and hierarchical security.
49+
50+
### How do users import data into tables in Project Oakdale?
51+
Makers have the opportunity to bring in data through both the apps they develop as well as via connectors in Power Apps and Power Automate.
52+
53+
### Which tables are available to developers in Project Oakdale?
54+
55+
Project Oakdale makes it easy for users to create custom tables for all of their scenarios.
56+
57+
It also includes a User table that represents the Common Data Model's [User entity](https://docs.microsoft.com/common-data-model/schema/core/applicationcommon/user). Data stored in the User table corresponds to a user in Azure Active Directory (Azure AD).
58+
59+
60+
### Does Project Oakdale include support for Common Data Model?
61+
62+
During public preview, the User table is included in Project Oakdale. A broader set of Common Data Model entity support is available out-of-the-box in Common Data Service.
63+
64+
### Can I use tables from other environments?
65+
66+
Applications can include data from environments that the maker has access to within the current tenant.
67+
68+
### Where can I use the new Visual Editor?
69+
70+
In addition to the table designer experience previously found in Common Data Service, Project Oakdale includes a new, easy-to-use editable grid that helps user be even more productive. You can also use tables from other environments subject to the normal permission model. The new visual editor is currently available only in Project Oakdale.
71+
72+
73+
### Can I use applications built using Project Oakdale Preview later in the generally available (GA) version of Project Oakdale?
74+
75+
Products in preview can and do change, but the current plan is that Project Oakdale applications built using the preview version can be used later in the generally available version of Project Oakdale.
76+
77+
78+
### See also
79+
80+
[Project Oakdale overview](overview-data-platform.md)<br />
81+
[How are Project Oakdale and Common Data Service different?](data-platform-compare.md) <br />
82+
[Create tables](create-table.md)<br/>
83+
[Work with table relationships](relationships-table.md)

powerapps-docs/teams/manage-your-apps.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Select **Edit** to edit the app in Power Apps Studio. More information: [Edit a
2727
2828
## Play an app
2929

30-
Select **Play** to run the latest [published version](../maker/canvas-apps/save-publish-app.md) of the app. More information: [Publish an app](publish-and-share-apps.md)
30+
Select **Play** to run the latest published version of the app. More information: [Publish an app](publish-and-share-apps.md)
3131

3232
> [!NOTE]
3333
> Selecting **Play** opens the app outside of Teams.
6.38 KB
Loading
-9.18 KB
Loading

0 commit comments

Comments
 (0)