You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: powerapps-docs/developer/common-data-service/cds-sql-query.md
+6-1Lines changed: 6 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
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
3
3
description: "Learn how to query Common Data Service entity data using SQL."# 115-145 characters including spaces. This abstract displays in the search result.
> 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
+
23
26
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.
24
27
28
+
29
+
25
30
> [!IMPORTANT]
26
31
> - This is a preview feature, and isn't available in all regions.
Copy file name to clipboardExpand all lines: powerapps-docs/maker/canvas-apps/functions/function-patch.md
+144-3Lines changed: 144 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,14 +7,15 @@ ms.service: powerapps
7
7
ms.topic: reference
8
8
ms.custom: canvas
9
9
ms.reviewer: nabuthuk
10
-
ms.date: 03/16/2020
10
+
ms.date: 09/25/2020
11
11
ms.author: gregli
12
12
search.audienceType:
13
13
- maker
14
14
search.app:
15
15
- PowerApps
16
16
---
17
17
# Patch function in Power Apps
18
+
18
19
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.
19
20
20
21
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
67
68
68
69
**Patch** returns the merged record and doesn't modify its arguments or records in any data sources.
@@ -91,7 +96,7 @@ Specify two or more records that you want to merge. Records are processed in the
91
96
#### Modify or create a record (in a data source)
92
97
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):
|**Patch( { Name: "James", Score: 90 }, { Name: "Jim", Passed: true } )**|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**). |{ Name: "Jim", Score: 90, Passed: true } |
110
115
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.
> 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
+
22
27
You can use Power BI Desktop to view entities in Common Data Service. The entity
23
28
record data that you can access from your environment is read-only. Data access
24
29
uses the Common Data Service security model that is the same used to access

223
223
224
224
-**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>
225
225
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
273
273
274
274

275
275
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.
277
277
278
278
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.
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.
Copy file name to clipboardExpand all lines: powerapps-docs/teams/manage-your-apps.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,7 +27,7 @@ Select **Edit** to edit the app in Power Apps Studio. More information: [Edit a
27
27
28
28
## Play an app
29
29
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)
31
31
32
32
> [!NOTE]
33
33
> Selecting **Play** opens the app outside of Teams.
0 commit comments