Skip to content

Commit 8daec3f

Browse files
committed
Pull from main
2 parents 46e6030 + 2ab65e1 commit 8daec3f

File tree

4 files changed

+47
-18
lines changed

4 files changed

+47
-18
lines changed

powerapps-docs/developer/data-platform/scalable-customization-design/auto-numbering-example.md

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,27 @@
11
---
2-
title: "Scalable Customization Design: Auto-numbering example (Microsoft Dataverse) | Microsoft Docs"
2+
title: "Scalable Customization Design: Autonumbering example (Microsoft Dataverse) | Microsoft Docs"
33
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
55
ms.reviewer: pehecke
66
ms.topic: article
77
author: rogergilchrist
8-
ms.author: jdaly # MSFT alias of Microsoft employees only
8+
ms.author: rogergil
99
search.audienceType:
1010
- developer
11+
contributors:
12+
-JimDaly
1113
---
12-
# Scalable Customization Design: Auto-numbering example
14+
# Scalable Customization Design: Autonumbering example
1315

1416

1517

1618
> [!NOTE]
1719
> 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+
1825

1926
One scenario that illustrates the common misunderstanding of how transactions are handled within Dataverse is implementing an automatic numbering scheme.
2027

@@ -37,12 +44,12 @@ The following sections describe different approaches that can be taken within Da
3744

3845
## Approach 1: Out of a transaction
3946

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.
4148
Let's consider the scenario for auto numbering generation outside of the pipeline transaction in a pre-validation plug-in.
4249

4350
![Approach 1: Out of a transaction.](media/autonumber-approach-1.png)
4451

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.
4653

4754
![race condition.](media/autonumber-approach-1-a.png)
4855

@@ -84,7 +91,7 @@ Normally, generation of the auto number would be done in a pre-event plug-in. Yo
8491

8592
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.
8693

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.
8895

8996
![move the auto number generation to a post create process.](media/autonumber-approach-3-b.png)
9097

powerapps-docs/maker/common/faq-timeline-highlights-with-copilot.md

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,29 @@ We used the following metrics to measure Copilot's performance:
6464

6565
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:
6666

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+
6990
- **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.
7091

7192
- **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.

powerapps-docs/mobile/canvas-mobile-offline-setup.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Set up mobile offline for canvas apps
33
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
55
ms.topic: how-to
66
ms.subservice: mobile
77
ms.component: pa-user
@@ -23,14 +23,15 @@ Turn on offline mode in your canvas app if users need to work without worrying a
2323

2424
## Prerequisites
2525

26-
- [The canvas app must be in a solution](../maker/canvas-apps/add-app-solution.md).
27-
2826
- 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).
2927

3028
- 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.
3129

3230
- 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).
3331

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+
3435
## Optimize your app for mobile offline
3536

3637
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.

powerapps-docs/user/modern-fluent-design.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Modern, refreshed look for model-driven apps
33
description: Learn about the updated, user interface that makes model-driven apps easier to use.
44
author: chmoncay
55
ms.topic: overview
6-
ms.date: 09/05/2024
6+
ms.date: 09/10/2024
77
ms.service: powerapps
88
ms.subservice: end-user
99
ms.author: chmoncay
@@ -91,27 +91,27 @@ Switching themes or enabling dark mode isn't supported at this time.
9191

9292
### Honoring classic theming
9393

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.
9595

9696
### Custom icons
9797

9898
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.
9999

100100
## Frequently asked questions (FAQs)
101101

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?
103103

104104
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).
105105

106-
### Using the modern, refreshed look in custom pages
106+
### Can I use the modern, refreshed look in custom pages?
107107

108108
Modern controls can be used with custom pages and the modern, refreshed look. The modern theme isn't currently inherited by custom pages.
109109

110-
### Change the color of the app header
110+
### Can I change the color of the app header?
111111

112112
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.
113113

114-
### Using custom chart colors
114+
### Can I use custom chart colors?
115115

116116
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.
117117

0 commit comments

Comments
 (0)