Skip to content

Commit d9c8adf

Browse files
committed
Merge branch 'main' into jdaly-main-discovery-unification
2 parents fd2dbb5 + 315c76f commit d9c8adf

13 files changed

+425
-14
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,8 @@
251251
- name: Activity tables
252252
href: activity-entities.md
253253
items:
254+
- name: Activities data model and storage
255+
href: activities-data-model-storage.md
254256
- name: Custom activities
255257
href: custom-activities.md
256258
- name: Email activity tables
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
---
2+
title: "Activities data model and storage | MicrosoftDocs"
3+
description: "This article will help you understand the activities data model and its impact on storage capacity."
4+
ms.custom: ""
5+
ms.date: 07/18/2022
6+
ms.reviewer: mduelae
7+
ms.topic: "article"
8+
author: DanaMartens
9+
ms.subservice: dataverse-developer
10+
ms.author: dmartens
11+
search.audienceType:
12+
- developer
13+
search.app:
14+
- PowerApps
15+
- D365CE
16+
---
17+
18+
# Activities data model and storage
19+
20+
Activity tables (formerly entities) such as email, phone call, and appointment are stored in the Microsoft Dataverse database with a more sophisticated data model compared to standard tables, which are usually stored in one database table. This article will help you understand the activities data model and its impact on storage capacity. For more details regarding how activities are used, see [Activity tables](activity-entities.md).
21+
22+
## Activities underlying database tables
23+
24+
Activity rows are saved in the Dataverse database across multiple underlying tables. Each activity table stores corresponding rows of data in a base table (ActivityPointerBase) and an extension table that is dedicated for each specific activity type (EmailBase, TaskBase, AppointmentBase, etc.).
25+
26+
### ActivityPointerBase
27+
28+
This table is the base table for each activity in the system. The creation of any activity such as an email, phone call, appointment, or custom activity will create a corresponding row in this table. Because this table contains one row for every activity, it is expected this table may have many rows.
29+
30+
This table includes all default activity columns such as subject, description, owner, regarding, status, and many more. For a full list of the columns in this table, see [activitypointer EntityType](reference/entities/activitypointer.md). Because each of these columns are included in this base activity table and there is one row for every activity, this is often one of the largest consumers of data capacity. The description column is the same column used to store the email body for an email activity. Because an email body can include a lot of text, large emails can contribute to the growth in data capacity consumed by this table.
31+
32+
When you access a view such as My Activities or All Activities, the data is retrieved from the ActivityPointerBase table allowing you to see a single view of activities across multiple activity types.
33+
34+
Any activity in the system is retrievable using the specific activity schema name, and is also retrievable using the activitypointer schema, this functionality is useful when retrieving multiple activities of different activity types.
35+
36+
### ActivityPartyBase
37+
38+
This table contains the party information for each activity. Each activity party represents a person or group associated with an activity. Example: Assume you created an Appointment activity which has one organizer, one owner, two required attendees, one optional attendee, and one regarding object. There would be six corresponding rows stored in this table. Another example of activity parties are all the people on an email activity on the From, To, and Cc lines.
39+
40+
More information: [ActivityParty table](activityparty-entity.md) and [activityparty EntityType](reference/entities/activityparty.md).
41+
42+
### ActivityMimeAttachment
43+
44+
This table contains the data to relate an attachment to an activity row.
45+
46+
More information: [activitymimeattachment EntityType ](reference/entities/activitymimeattachment.md)
47+
48+
### EmailSearchBase (internal use)
49+
50+
This table is used for email address resolution. It is for internal use only and contains rows for each email address in the system associated to an email address formatted column.
51+
52+
### EmailHashBase (internal use)
53+
54+
This table is used for [smart matching](/power-platform/admin/email-message-filtering-correlation) and contains hashes generated for each email message in the system.
55+
56+
More information: [Use email message filtering and correlation](/power-platform/admin/email-message-filtering-correlation) and [Disable Smart Matching EmailHashBase table population](https://community.dynamics.com/crm/b/crminthefield/posts/disable-smart-matching-emailhashbase-table-population-for-dataverse-environments)
57+
58+
### Difference between schema and storage
59+
60+
There is a difference between the schema exposed for individual activity tables and the underlying storage. Example: If you refer to the [email entity schema](reference/entities/email.md) accessible from SDK, all the table columns will be available and will be surfaced from different underlying tables (base table, extension table, activityparty table). However, most of these columns are stored in the base table (ActivityPointerBase), and only custom columns, if any, will be stored in the EmailBase table.
61+
62+
## FAQ
63+
64+
### ActivityPointerBase
65+
66+
#### Why does ActivityPointerBase have so many rows?
67+
68+
Please refer to the base table definition above for more details. There is one row for each activity in the system.
69+
70+
#### Why is ActivityPointerBase consuming so much storage?
71+
72+
One potential cause is having many rows which contributes to the overall table size. Another potential cause is the length of text in the description column. This is the same description column used for any activity such as the body of an email activity or the description of an appointment activity.
73+
74+
#### How can I reduce ActivityPointerBase table usage?
75+
76+
ActivityPointerBase contains data which was saved as users create activity rows such as emails, phone calls, tasks, and appointments. As users create more activities, the table will grow. The table contains data saved by users and does not contain any internal use data. You can reduce the space used for this table by deleting any old activities which are no longer needed.
77+
78+
### ActivityPartyBase
79+
80+
#### Why does ActivityPartyBase have so many rows?
81+
82+
There is one row for each activity participation. It’s easy to have many rows in this table, however the space utilized by these individual rows is minimal.
83+
84+
### Other Questions
85+
86+
#### Why does an activity extension table consume a lot of storage?
87+
88+
An extension table extends the base activity table (ActivityPointerBase) for a specific activity table such as Task and is used for storing the data for any custom columns. The Task table stores data for the default attributes inside the ActivityPointerBase table in the database. If you add custom attributes to the Task table, they will be saved in the TaskBase table in the database. An extension table will have rows only when there is a custom attribute defined for the specific activity. There could be cases where a text field which contains a lot of text is defined as custom activity attribute and could cause high storage usage. Please review the custom attributes defined and the content.
89+
90+
#### Where is the body (description) of an email stored?
91+
92+
The email body is stored in the description column of the ActivityPointerBase table. This attribute is retrievable from both schemas: email and activitypointerbase. However, the data isn't duplicated. It is just surfaced in two locations as needed.
93+
94+
## See also
95+
96+
97+
98+
99+
[!INCLUDE[footer-include](../../includes/footer-banner.md)]
100+
101+
102+
103+
104+
105+
106+
107+
108+
109+
110+
111+
112+

powerapps-docs/limits-and-config.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: lancedMicrosoft
55
ms.topic: conceptual
66
ms.custom: canvas
77
ms.reviewer: tapanm
8-
ms.date: 07/07/2022
8+
ms.date: 07/18/2022
99
ms.subservice: canvas-maker
1010
ms.author: gregli
1111
search.audienceType:
@@ -104,9 +104,13 @@ This list identifies all services to which Power Apps communicates and their usa
104104
| ecs.office.com | https | Retrieve feature flags for Power Apps |
105105
| config.edge.skype.com | https | Retrieve feature flags for Power Apps (backup)|
106106
| \*.api.powerplatform.com | https | Required for Power Platform API connectivity used internally by Microsoft products, and Power Platform [programmability and extensibility](/power-platform/admin/programmability-extensibility-overview).|
107-
| gov.content.powerapps.us | https | Required for Power Apps portals for Government Community Cloud (GCC). |
108-
| high.content.powerapps.us | https | Required for Power Apps portals for Government Community Cloud (GCC High). |
109-
| content.appsplatform.us | https | Required for Power Apps portals for Power Apps Department of Defense (DoD). |
107+
| *.powerapps.us | https | Required for Power Apps portals for Government Community Cloud (GCC).<sup>1</sup> |
108+
| *.powerapps.us | https | Required for Power Apps portals for Government Community Cloud (GCC High).<sup>2</sup> |
109+
| *.appsplatform.us | https | Required for Power Apps portals for Power Apps Department of Defense (DoD).<sup>3</sup> |
110+
111+
<sup>1</sup> Replaces ___domain name `gov.content.powerapps.us` used prior to July 2022. <br>
112+
<sup>2</sup> Replaces ___domain name `high.content.powerapps.us` used prior to July 2022. <br>
113+
<sup>3</sup> Replaces ___domain name `content.appsplatform.us` used prior to July 2022.
110114

111115
> [!NOTE]
112116
> If you're using a VPN, it must be configured to exclude localhost from tunneling for Power Apps Mobile.

powerapps-docs/maker/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2333,6 +2333,8 @@
23332333
href: ./data-platform/create-edit-global-option-sets.md
23342334
- name: Autonumber columns
23352335
href: ./data-platform/autonumber-fields.md
2336+
- name: Fx formula columns
2337+
href: ./data-platform/formula-columns.md
23362338
- name: Set managed properties for columns
23372339
href: ./data-platform/set-managed-properties-for-field.md
23382340
- name: Behavior and format of the Date and Time column

powerapps-docs/maker/canvas-apps/create-blank-app.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Create a blank canvas app from scratch
2+
title: Create a blank canvas app from scratch (contains video)
33
description: Create an app from scratch and then add your data.
44
author: franklanmsft
55

@@ -26,6 +26,9 @@ In Power Apps, create a blank canvas app that you can then use to customize furt
2626

2727
If you're not signed up for Power Apps, [sign up for free](https://make.powerapps.com?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc) before you start.
2828

29+
Watch this short video that shows you how to create a blank canvas app.
30+
> [!VIDEO https://www.microsoft.com/videoplayer/embed/RE4YnKM]
31+
2932
## Prerequisites
3033

3134
To follow this quickstart, you must be assigned to the [Environment Maker](/power-platform/admin/database-security#predefined-security-roles) security role.

powerapps-docs/maker/canvas-apps/data-platform-create-app.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ In Power Apps, create a canvas app based on a list of sample accounts in [Datave
2626
If you're not signed up for Power Apps, [sign up for free](https://make.powerapps.com?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc) before you start.
2727

2828
Watch this short video that shows you how to create a canvas app quickly using Dataverse tables.
29-
> [!VIDEO https://www.microsoft.com/videoplayer/embed/RWIUJy]
29+
> [!VIDEO https://www.microsoft.com/videoplayer/embed/RE4YzH0]
3030
3131
## Prerequisites
3232

powerapps-docs/maker/data-platform/EnvironmentVariables.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ ms.subservice: dataverse-maker
77
ms.author: caburk
88
ms.reviewer: matp
99
manager: kvivek
10-
ms.date: 01/03/2022
10+
ms.date: 07/15/2022
1111
ms.topic: overview
1212
search.audienceType:
1313
- maker
@@ -254,7 +254,7 @@ If not already prevented by dependency system, runtime will use the last known v
254254

255255
### If a value is changed, when does the new value get used in canvas apps and cloud flows?
256256

257-
For canvas apps, the new value will be used during the next session. For example, closing the app and then playing it again.
257+
It may take up to an hour to fully publish updated environment variables.
258258

259259
With cloud flows, the flows must currently be de-activated and re-activated in order to use the updated value.
260260

0 commit comments

Comments
 (0)