Skip to content

Commit f9fb313

Browse files
authored
Merge pull request #7305 from MicrosoftDocs/main
Sally - latest from Main
2 parents 1f292f0 + dfb5d28 commit f9fb313

29 files changed

+259
-63
lines changed

powerapps-docs/developer/data-platform/file-attributes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ contributors:
1717
---
1818
# File columns
1919

20-
Use file columns to store file data up to a specified maximum size. A custom or customizable table can have zero or more file columns.
20+
Use file columns to store file data up to a specified maximum size. A custom or customizable table can have zero or more file columns. This topic is about working with column definitions in code. To use data stored in these columns, see [Use file column data](file-column-data.md).
2121

2222
## Create file columns
2323

powerapps-docs/developer/data-platform/file-column-data.md

Lines changed: 122 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Use file column data (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces
33
description: "Learn about uploading, downloading, and deleting data in file columns." # 115-145 characters including spaces. This abstract displays in the search result.
4-
ms.date: 11/02/2022
4+
ms.date: 11/08/2022
55
ms.reviewer: jdaly
66
ms.topic: article
77
author: NHelgren # GitHub ID
@@ -30,6 +30,12 @@ Each file column has a supporting read-only string column that contains the name
3030
> [!NOTE]
3131
> The file name column does not appear in the [Power Apps](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc) designer.
3232
33+
## Relationship to FileAttachment table
34+
35+
When a file column is created for a table, a new one-to-many relationship is created between the table and the `FileAttachment` table. The name of the relationship is `{table logical name}_FileAttachments`. For example, if the file column is part of the account table, the relationship name will be `account_FileAttachments`.
36+
37+
You can use this relationship to return additional data about the file column and any other file columns for the table. More information: [Retrieve additional information about files for a record](#retrieve-additional-information-about-files-for-a-record).
38+
3339
## Behavior when retrieving
3440

3541
When you retrieve a record and include a file column, the value returned will be a unique identifier for the file. You can use this value to delete the file using the `DeleteFile` message. There is no other use for this id other than to check whether the column has a value. More information: [Use the DeleteFile message](#use-the-deletefile-message).
@@ -101,6 +107,121 @@ More information: [Retrieve a table row using the Web API](webapi/retrieve-entit
101107

102108
---
103109

110+
### Retrieve additional information about files for a record
111+
112+
You can use the relationship between the file column table and the `FileAttachment` table to return information about all file columns associated to that table row.
113+
114+
#### [SDK for .NET](#tab/sdk)
115+
116+
The `RetrieveAccountRecordWithFileData` static method below will return information about all the file columns that contain data related to the `account` record with the matching `accountid` value.
117+
118+
```csharp
119+
static void RetrieveAccountRecordWithFileData(IOrganizationService service, Guid accountid)
120+
{
121+
// Create query for related records
122+
var relationshipQueryCollection = new RelationshipQueryCollection {
123+
{
124+
new Relationship("account_FileAttachments"),
125+
new QueryExpression("fileattachment"){
126+
ColumnSet = new ColumnSet(
127+
"createdon",
128+
"mimetype",
129+
"filesizeinbytes",
130+
"filename",
131+
"regardingfieldname",
132+
"fileattachmentid")
133+
}
134+
}
135+
};
136+
137+
// Include the related query with the Retrieve Request
138+
RetrieveRequest request = new RetrieveRequest
139+
{
140+
ColumnSet = new ColumnSet("accountid"),
141+
RelatedEntitiesQuery = relationshipQueryCollection,
142+
Target = new EntityReference("account", accountid)
143+
};
144+
145+
// Send the request
146+
RetrieveResponse response = (RetrieveResponse)service.Execute(request);
147+
148+
//Display related FileAttachment data for the account record
149+
response.Entity.RelatedEntities[new Relationship("account_FileAttachments")]
150+
.Entities.ToList().ForEach(e =>
151+
{
152+
Console.WriteLine($"createdon: {e.FormattedValues["createdon"]}");
153+
Console.WriteLine($"mimetype: {e["mimetype"]}");
154+
Console.WriteLine($"filesizeinbytes: {e.FormattedValues["filesizeinbytes"]}");
155+
Console.WriteLine($"filename: {e["filename"]}");
156+
Console.WriteLine($"regardingfieldname: {e["regardingfieldname"]}");
157+
Console.WriteLine($"fileattachmentid: {e["fileattachmentid"]}");
158+
});
159+
}
160+
```
161+
162+
**Output**:
163+
164+
In this case, there is a single file column in the account table named `sample_filecolumn`, and this is the data about the file stored in that column.
165+
166+
```
167+
createdon: 10/22/2022 2:01 PM
168+
mimetype: application/pdf
169+
filesizeinbytes: 25,870,370
170+
filename: 25mb.pdf
171+
regardingfieldname: sample_filecolumn
172+
fileattachmentid: 63a6afb7-4c52-ed11-bba1-000d3a9933c9
173+
```
174+
175+
More information:
176+
177+
- [What is the Organization service](org-service/overview.md)
178+
- [Retrieve with related rows](org-service/entity-operations-retrieve.md#retrieve-with-related-rows)
179+
180+
#### [Web API](#tab/webapi)
181+
182+
The request below below will return information about all the file columns that contain data related to the `account` record with `accountid` equal to `352edda9-4c52-ed11-bba1-000d3a9933c9`.
183+
184+
**Request**
185+
186+
```http
187+
GET [Organization URI]/api/data/v9.2/accounts(352edda9-4c52-ed11-bba1-000d3a9933c9)?$filter=sample_filecolumn%20ne%20null&$expand=account_FileAttachments($select=createdon,mimetype,filesizeinbytes,filename,regardingfieldname)&$select=accountid HTTP/1.1
188+
OData-MaxVersion: 4.0
189+
OData-Version: 4.0
190+
If-None-Match: null
191+
Accept: application/json
192+
```
193+
194+
**Response**
195+
196+
In this case, there is a single file column in the account table named `sample_filecolumn`, and this is the data about the file stored in that column.
197+
198+
```http
199+
HTTP/1.1 200 OK
200+
Content-Type: application/json; odata.metadata=minimal
201+
OData-Version: 4.0
202+
203+
{
204+
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts(accountid,account_FileAttachments(createdon,mimetype,filesizeinbytes,filename,regardingfieldname))/$entity",
205+
"@odata.etag": "W/\"75119522\"",
206+
"accountid": "352edda9-4c52-ed11-bba1-000d3a9933c9",
207+
"account_FileAttachments": [
208+
{
209+
"@odata.etag": "W/\"75119363\"",
210+
"createdon": "2022-10-22T21:01:45Z",
211+
"mimetype": "application/pdf",
212+
"filesizeinbytes": 25870370,
213+
"filename": "25mb.pdf",
214+
"regardingfieldname": "sample_filecolumn",
215+
"fileattachmentid": "63a6afb7-4c52-ed11-bba1-000d3a9933c9"
216+
}
217+
]
218+
}
219+
```
220+
221+
More information: [Retrieve with related rows](org-service/entity-operations-retrieve.md#retrieve-with-related-rows)
222+
223+
---
224+
104225
## Upload Files
105226

106227
There at three different ways to upload files to a file column:

powerapps-docs/developer/data-platform/use-access-teams-owner-teams-collaborate-share-information.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ With *owner* teams or *access* teams, you can easily share business objects and
2424
> [!NOTE]
2525
> While teams provide access to a group of users, you must still associate individual users with security roles that grant the privileges they need to create, update, or delete user-owned records. These privileges cannot be applied by assigning security roles to a team and then adding the user to that team.
2626
27-
An access team doesn’t own records and doesn’t have security roles assigned to the team. The team members have privileges defined by their individual security roles and by roles from the teams in which they are members. The records are shared with an access team and the team is granted access rights on the records, such as Read, Write or Append.
27+
An access team doesn’t own records and doesn’t have security roles assigned to the team. The team members have privileges defined by their individual security roles and by roles from the teams in which they are members. The records are shared with an access team and the team is granted access rights on the records, such as Read, Write or Append, and therefore access team members cannot create records using the access rights of the access team. User is required to have a security role with Create privilege to create records.
2828

2929
The team functionality is supported by the `Team` and `TeamTemplate` tables. The `Team` table is used to create owner teams and user-created access teams. For auto-created access teams, the `Team` table and the `TeamTemplate` table are used.
3030

powerapps-docs/developer/model-driven-apps/actions-dashboards.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ contributors:
1919

2020
# Actions on dashboards
2121

22-
You can perform actions such as create, retrieve, update, or delete, on organization-owned and user-owned dashboards.
22+
You can perform actions such as create, retrieve, update, or delete on organization-owned and user-owned dashboards.
2323

2424
## Actions on an organization-owned dashboard
2525

2626
To perform the following actions on an organization-owned dashboard (`SystemForm`), you must have the System Administrator or the System Customizer role assigned to your account in Microsoft Dataverse:
2727

28-
- Create, retrieve, update, and delete. You can create or update an organization-owned dashboard by using the Dataverse web services or by customizing the form. For detailed information about creating a dashboard, see [Create a dashboard](create-dashboard.md).
28+
- Create, retrieve, update, and delete. You can create or update an organization-owned dashboard using the Dataverse web services or customizing the form. For detailed information about creating a dashboard, see [Create a dashboard](create-dashboard.md).
2929
- Set an organization-owned dashboard as the default dashboard for an organization by setting the `SystemForm.IsDefault` value to `true` while creating or updating the dashboard.
3030

3131
> [!IMPORTANT]

powerapps-docs/maker/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,8 @@
217217
href: index.md
218218
- name: Sign in to Power Apps
219219
href: ./canvas-apps/intro-maker-portal.md
220+
- name: Use the learning hub
221+
href: ./common/learn-hub.md
220222
- name: Find it with unified search
221223
href: search.md
222224
- name: Get help from a virtual agent

powerapps-docs/maker/canvas-apps/search.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,33 +82,33 @@ Selecting search results in different areas of the Search pane will behave diffe
8282

8383
There are several category headers inside the Search pane that you can use to navigate through the results. Categories such as **Variables**, **Collections**, **Data**, **Media**, **Flows**, and **Components** are referred to as **definitions**.
8484

85-
Selecting the results under such definition category headers takes you to the appropriate definition screen backstage (such as for Variables and Collections), or to the appropriate pane where that object is available in your app (such as Data, Media, Flows, or Components).
85+
Selecting the results under such definition category headers takes you to the appropriate information screen such as for Variables and Collections, or to the appropriate pane where that object is available in your app (such as Data, Media, Flows, or Components).
8686

8787
- **Instances** describe the search results that are tied to an individual app, screen, or control property in the formula bar. All these results are tied to the **Screens** category based on the structure found inside the **Tree View**. When you select a result under this **Screens** category, you'll be taken to that specific formula bar reference or the related control, as applicable.
8888

8989
### Variables
9090

91-
Selecting a global or a context variable under the **Variables** header in the search results will take you to the information screen backstage for the selection.
91+
Selecting a global or a context variable under the **Variables** header in the search results will take you to the Variables information screen for the selection.
9292

9393
As shown below, you're taken to the definition of the global or context variable depending on your selection from the search results available.
9494

9595
Search result:
9696

9797
:::image type="content" source="media/search/variables-1.png" alt-text="Global and context variables available in search result.":::
9898

99-
Depending on the selected global or context variable, you're taken to the backstage for the selected type of variable.
99+
Depending on the selected global or context variable, you're taken to the information screen for the selected type of variable.
100100

101101
Global variable selected:
102102

103-
:::image type="content" source="media/search/global-variable.png" alt-text="Selecting a global variable takes you to the backstage of the selected global variables.":::
103+
:::image type="content" source="media/search/global-variable.png" alt-text="Selecting a global variable takes you to the information screen of the selected global variables.":::
104104

105105
Context variable selected:
106106

107-
:::image type="content" source="media/search/local-variable-1.png" alt-text="Selecting a context variable takes you to the backstage of the selected context variables.":::
107+
:::image type="content" source="media/search/local-variable-1.png" alt-text="Selecting a context variable takes you to the information screen of the selected context variables.":::
108108

109109
### Collections
110110

111-
Selecting a collection under the **Collections** header will take you to the information screen backstage for that collection.
111+
Selecting a collection under the **Collections** header will take you to the information screen for that collection.
112112

113113
:::image type="content" source="media/search/collections-1.png" alt-text="Collections selected from search results showing the relevant collection details.":::
114114

@@ -186,13 +186,13 @@ You can also interact with individual results in the results list directly to pe
186186

187187
### Replacing Variables results
188188

189-
Performing a replacement for results in the Variables category replaces the variable name at the definition level, meaning all instances of the matching variable name will be replaced across the entire app. You can also view the variable details backstage to review the usage before making the replacement.
189+
Performing a replacement for results in the Variables category replaces the variable name at the definition level, meaning all instances of the matching variable name will be replaced across the entire app. You can also view the variable details on their information screen to review the usage before making the replacement.
190190

191191
:::image type="content" source="media/search/variables.png" alt-text="Screen showing replacing variables results.":::
192192

193193
### Replacing Collections results
194194

195-
Similar to variables, replacing a result in the Collections category replaces the collection name at the definition level, replacing all matching instances of the collection name across the app. You can view collection details backstage prior to making the replacement.
195+
Similar to variables, replacing a result in the Collections category replaces the collection name at the definition level, replacing all matching instances of the collection name across the app. You can view collection details on their information screen prior to making the replacement.
196196

197197
:::image type="content" source="media/search/collections.png" alt-text="Screen showing replace collections results.":::
198198

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
title: "How to use the learning hub | MicrosoftDocs"
3+
description: How to use the learning hub.
4+
ms.custom: ""
5+
ms.date: 11/2/2022
6+
ms.reviewer: "mkaur"
7+
ms.topic: overview
8+
author: "mkaur"
9+
ms.subservice: common
10+
ms.author: "mkaur"
11+
manager: "tapanm"
12+
search.audienceType:
13+
- maker, admin
14+
search.app:
15+
- PowerApps
16+
---
17+
18+
# Use the learning hub
19+
20+
With the learning hub, you can explore documents, training material, get help from the Power Apps community, and other resources that will help you to create and build Power Apps.
21+
22+
1. To access the learning hub, go to the [Power Apps home page](https://make.powerapps.com) and select **Learn** on the left pane.
23+
2. Select one of the tabs to access the information that you're looking for.
24+
3. Use the **Previous** and **Next** buttons to see more items.
25+
26+
> [!div class="mx-imgBorder"]
27+
> ![How to use the learning hub.](media/learn/learn-hub.png "How to use the learning hub")
28+
29+
30+
## Banner
31+
32+
The banner at the top showcases the latest announcements, trending posts, and information about upcoming Microsoft events.
33+
34+
> [!div class="mx-imgBorder"]
35+
> ![Banner for the learning hub.](media/learn/learn-banner.png "Banner for learning hub")
36+
37+
## Overview
38+
39+
The **Overview** tab lists featured learning path and modules, posts from the community, help articles, and training videos on YouTube.
40+
41+
> [!div class="mx-imgBorder"]
42+
> ![Overview tab.](media/learn/overview-tab.png "Overview tab")
43+
44+
## Courses
45+
46+
The **Courses** tab provides guided training such as learning path, modules, and training events.
47+
48+
> [!div class="mx-imgBorder"]
49+
> ![Courses tab.](media/learn/learn-courses.png "Courses tab")
50+
51+
## Articles
52+
53+
The **Articles** tab has information from public blogs articles.
54+
55+
> [!div class="mx-imgBorder"]
56+
> ![Articles tab.](media/learn/learn-articles.png "Articles tab")
57+
58+
59+
## Community
60+
61+
The **Community** tab provides access to content from the Power Apps community including user groups, networking events, LinkedIn Power Apps community, and more.
62+
63+
> [!div class="mx-imgBorder"]
64+
> ![Community tab.](media/learn/learn-community.png "Community tab")
65+
66+
## Support
67+
68+
Go to the **Support** tab to get help with common issues, report a problem, submit an idea, and get access to help topics.
69+
70+
> [!div class="mx-imgBorder"]
71+
> ![Support tab.](media/learn/learn-support.png "Support tab")
Loading
Loading
Loading

0 commit comments

Comments
 (0)