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/data-platform/scalable-customization-design/auto-numbering-example.md
+14-7Lines changed: 14 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -1,20 +1,27 @@
1
1
---
2
-
title: "Scalable Customization Design: Auto-numbering example (Microsoft Dataverse) | Microsoft Docs"
2
+
title: "Scalable Customization Design: Autonumbering example (Microsoft Dataverse) | Microsoft Docs"
3
3
description: "This example illustrates how transactions and concurrency issues need to be accounted for in a code customization."
4
-
ms.date: 04/23/2024
4
+
ms.date: 09/06/2024
5
5
ms.reviewer: pehecke
6
6
ms.topic: article
7
7
author: rogergilchrist
8
-
ms.author: jdaly # MSFT alias of Microsoft employees only
8
+
ms.author: rogergil
9
9
search.audienceType:
10
10
- developer
11
+
contributors:
12
+
-JimDaly
11
13
---
12
-
# Scalable Customization Design: Auto-numbering example
14
+
# Scalable Customization Design: Autonumbering example
13
15
14
16
15
17
16
18
> [!NOTE]
17
19
> This example supports a series of topics about scalable customization design. To start at the beginning, see [Scalable Customization Design in Microsoft Dataverse](overview.md).
20
+
>
21
+
> Dataverse has an [Autonumber columns](../../../maker/data-platform/autonumber-fields.md) feature you should use if it meets your requirements.
22
+
>
23
+
> This article describes how to manage transactions effectively to ensure a solution can handle growth, using the example of autonumbering. It outlines a process of trying, testing, and evaluating different approaches. While the third approach improves upon the first two, it might not be perfect for every situation. Therefore, it's crucial to thoroughly test any developed solution, as you are responsible for maintaining your own code.
24
+
18
25
19
26
One scenario that illustrates the common misunderstanding of how transactions are handled within Dataverse is implementing an automatic numbering scheme.
20
27
@@ -37,12 +44,12 @@ The following sections describe different approaches that can be taken within Da
37
44
38
45
## Approach 1: Out of a transaction
39
46
40
-
The simplest approach is to realize that any use of a commonly required resource would introduce the potential for blocking. Since this has an impact on scalability, you might decide you want to avoid a platform transaction when generating an auto number.
47
+
The simplest approach is to realize that any use of a commonly required resource would introduce the potential for blocking. Since blocking has an impact on scalability, you might decide you want to avoid a platform transaction when generating an auto number.
41
48
Let's consider the scenario for auto numbering generation outside of the pipeline transaction in a pre-validation plug-in.
42
49
43
50

44
51
45
-
When you run this in isolation it works fine. It doesn't, however, actually protect against concurrency errors. As the following diagram shows, if two requests in parallel both request the latest number and then both increment and update the value, you end up with duplicate numbers. Because there's no locking held against the retrieved number, it's possible for a race condition to occur and both threads to end up with the same value.
52
+
When you run this in isolation, it works fine. It doesn't, however, actually protect against concurrency errors. As the following diagram shows, if two requests in parallel both request the latest number and then both increment and update the value, you end up with duplicate numbers. Because there's no locking held against the retrieved number, it's possible for a race condition to occur and both threads to end up with the same value.
@@ -84,7 +91,7 @@ Normally, generation of the auto number would be done in a pre-event plug-in. Yo
84
91
85
92
With the scalability implications in mind, if there's other complex processing in the account creation process, an alternative would be to move the auto number generation to a post create process, which still ensures a consistent update process. The benefit would be that it reduces the length of time within the transaction that the auto number record lock is held as the lock is only taken towards the end of the process. If the auto numbering table is the most highly contested resource and this approach is taken for all processes accessing it, this reduces the amount of contention overall.
86
93
87
-
The tradeoff here would be the need to perform an additional update to account, while reducing the overall length of time blocking waiting for the auto numbering record.
94
+
The tradeoff here would be the need to perform an another update to account, while reducing the overall length of time blocking waiting for the auto numbering record.
88
95
89
96

Copy file name to clipboardExpand all lines: powerapps-docs/maker/common/faq-timeline-highlights-with-copilot.md
+23-2Lines changed: 23 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -64,8 +64,29 @@ We used the following metrics to measure Copilot's performance:
64
64
65
65
Copilot is a powerful and helpful feature, but it isn't perfect. It has some limitations that you should be aware of and respect. These limitations include:
66
66
67
-
-**Language**: Copilot only supports the English language for now. If you need to write in another language, you can't use Copilot.
68
-
67
+
-**Language**: Many languages are supported in Copilot scenarios. While the quality is expected to be highest in English, the quality in the other languages is expected to improve over time. The following languages are available for Copilot in the timeline:
68
+
69
+
- Danish
70
+
- Dutch
71
+
- English
72
+
- French
73
+
- German
74
+
- Italian
75
+
- Japanese
76
+
- Portuguese (Brazil)
77
+
- Spanish
78
+
- Thai
79
+
- Simplified Chinese
80
+
- Czech
81
+
- Finnish
82
+
- Greek
83
+
- Korean
84
+
- Norwegian (Bokmål)
85
+
- Polish
86
+
- Russian
87
+
- Swedish
88
+
- Turkish
89
+
69
90
-**Suggestions**: Copilot only provides suggestions, not final content. You're responsible for reviewing and editing the content before you send it to your customers. You shouldn't rely on Copilot to write your content for you.
70
91
71
92
-**Ethics**: Copilot is designed to help you create ethical and responsible content. However, Copilot may not be able to detect or prevent offensive, harmful, or misleading content. You should always use your own judgment and follow your company's policies and values when using Copilot.
Copy file name to clipboardExpand all lines: powerapps-docs/mobile/canvas-mobile-offline-setup.md
+4-3Lines changed: 4 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: Set up mobile offline for canvas apps
3
3
description: Learn how to set up canvas apps for use offline on mobile devices in Microsoft Power Apps.
4
-
ms.date: 09/09/2024
4
+
ms.date: 09/10/2024
5
5
ms.topic: how-to
6
6
ms.subservice: mobile
7
7
ms.component: pa-user
@@ -23,14 +23,15 @@ Turn on offline mode in your canvas app if users need to work without worrying a
23
23
24
24
## Prerequisites
25
25
26
-
-[The canvas app must be in a solution](../maker/canvas-apps/add-app-solution.md).
27
-
28
26
- You must have the Environment Maker, System Administrator, or System Customizer role to set up offline mode for canvas apps. These roles have create, read, write, delete, and share privileges on **Canvas App**, **Mobile offline profile**, and **Sync Error** tables. [Learn about predefined security roles](../maker/model-driven-apps/share-model-driven-app.md#about-predefined-security-roles).
29
27
30
28
- Users with the Basic User role can't open an offline application. You must create a custom security role with read privileges on **Canvas App**, **Mobile offline profile**, and **Sync Error** tables.
31
29
32
30
- If you already have a custom security role, make sure it grants read privileges on **Canvas App**, **Mobile offline profile**, and **Sync Error** tables. Learn about [Create or edit a security role to manage access](/power-platform/admin/create-edit-security-role).
33
31
32
+
> [!NOTE]
33
+
> It's recommended that the [canvas app is in a solution](../maker/canvas-apps/add-app-solution.md). The offline profile **App usage** field in the [Power Platform admin center](https://admin.powerplatform.microsoft.com/) (**Environements** > _select an environment_ > **Setings** > **User + permissions** > **Mobile configuration**) only applies to apps within a solution.
34
+
34
35
## Optimize your app for mobile offline
35
36
36
37
Mobile apps run on small screens with limited connectivity. Before you set up offline mode, make sure your canvas app is optimized for offline and mobile use. Consider the user scenarios you want to cover and the amount of data the app uses. Create an app that's simple and lightweight.
description: Learn about the updated, user interface that makes model-driven apps easier to use.
4
4
author: chmoncay
5
5
ms.topic: overview
6
-
ms.date: 09/05/2024
6
+
ms.date: 09/10/2024
7
7
ms.service: powerapps
8
8
ms.subservice: end-user
9
9
ms.author: chmoncay
@@ -91,27 +91,27 @@ Switching themes or enabling dark mode isn't supported at this time.
91
91
92
92
### Honoring classic theming
93
93
94
-
With the modern, refreshed look, Power Apps is no longer honoring [classic theme customizations](../maker/model-driven-apps/create-themes-organization-branding.md). You can, however, override the colors for the app header to match your organization branding with the modern, refreshed look. See [change the color of the app header](#change-the-color-of-the-app-header) for more details. Other theme customization options for the modern, refreshed look aren't available yet.
94
+
With the modern, refreshed look, Power Apps is no longer honoring [classic theme customizations](../maker/model-driven-apps/create-themes-organization-branding.md). You can, however, override the colors for the app header to match your organization branding with the modern, refreshed look. Leaern more in [Change the color of the app header](#can-i-change-the-color-of-the-app-header). Other theme customization options for the modern, refreshed look aren't available yet.
95
95
96
96
### Custom icons
97
97
98
98
Only SVG icons are supported. If you use other formats such as PNG, the navigation doesn't display them and a default icon appears instead.
99
99
100
100
## Frequently asked questions (FAQs)
101
101
102
-
### Using the modern, refreshed look in Power Apps Component Framework / custom code components
102
+
### Can I use the modern, refreshed look in the Power Apps component framework or in custom code components?
103
103
104
104
The modern theme in use is passed to [Power Apps component framework](../developer/component-framework/overview.md) components allowing you to [style your components with modern theming](../developer/component-framework/fluent-modern-theming.md).
105
105
106
-
### Using the modern, refreshed look in custom pages
106
+
### Can I use the modern, refreshed look in custom pages?
107
107
108
108
Modern controls can be used with custom pages and the modern, refreshed look. The modern theme isn't currently inherited by custom pages.
109
109
110
-
### Change the color of the app header
110
+
### Can I change the color of the app header?
111
111
112
112
It's possible to change the color of the app header to match your organization while in the modern, refreshed look. See [Use modern themes](../maker/model-driven-apps/modern-theme-overrides.md) for more details. Other theme customization options for the modern, refreshed look aren't available yet.
113
113
114
-
### Using custom chart colors
114
+
### Can I use custom chart colors?
115
115
116
116
When using the modern, refreshed look, charts in views and dashboards are updated to a set of modern colors. If the chart colors have been customized, the new look overrides the custom colors. The maker can keep the custom colors by adding the **CustomColorOverride** property in the chart .xml file.
0 commit comments