Skip to content

Commit a0dfc28

Browse files
committed
Merge branch 'main' into jdaly-main-upsert-multiple
2 parents 0f86bb4 + b35ac4c commit a0dfc28

File tree

827 files changed

+18309
-29715
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

827 files changed

+18309
-29715
lines changed

.openpublishing.redirection.json

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,7 @@
487487
},
488488
{
489489
"source_path": "powerapps-docs/developer/data-platform/webapi/relevance-search.md",
490-
"redirect_url": "../search/overview.md",
490+
"redirect_url": "../search/overview",
491491
"redirect_document_id": false
492492
},
493493
{
@@ -8744,6 +8744,21 @@
87448744
"source_path": "powerapps-docs/maker/canvas-apps/working-with-dynamic-schema.md",
87458745
"redirect_url": "/power-apps/maker/canvas-apps/untyped-and-dynamic-objects#converting-formulas-that-return-untyped-objects-that-previously-returned-boolean",
87468746
"redirect_document_id": false
8747+
},
8748+
{
8749+
"source_path": "powerapps-docs/maker/canvas-apps/performance-tips.md",
8750+
"redirect_url": "/power-apps/maker/canvas-apps/create-performant-apps-overview",
8751+
"redirect_document_id": false
8752+
},
8753+
{
8754+
"source_path": "powerapps-docs/maker/data-platform/azure-synapse-link-troubleshooting-guide.md",
8755+
"redirect_url": "/power-apps/maker/data-platform/export-data-lake-faq",
8756+
"redirect_document_id": false
8757+
},
8758+
{
8759+
"source_path": "powerapps-docs/maker/canvas-apps/slow-performance-sources.md",
8760+
"redirect_url": "/power-apps/maker/canvas-apps/create-performant-apps-overview",
8761+
"redirect_document_id": false
87478762
}
87488763
]
87498764
}

CODEOWNERS

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
# Lines starting with '#' are comments.
22
# Each line is a file pattern followed by one or more owners.
33

4-
/powerapps-docs/ @KumarVivek
5-
/powerapps-docs/administrator/ @jimholtz @KumarVivek
6-
/powerapps-docs/developer/ @PHecke @KumarVivek @JimDaly
7-
/powerapps-docs/developer/data-platform/cli @JimDaly @KumarVivek
8-
/powerapps-docs/developer/data-platform/cli @JimDaly @KumarVivek
9-
/powerapps-docs/developer/model-driven-apps @JimDaly @KumarVivek
10-
/powerapps-docs/maker/canvas-apps @tapanm-msft @KumarVivek
11-
/powerapps-docs/maker/data-platform @Mattp123 @KumarVivek
12-
/powerapps-docs/maker/model-driven-apps @Mattp123 @KumarVivek
13-
/powerapps-docs/maker/common @Mattp123 @tapanm-msft @KumarVivek
14-
/powerapps-docs/maker/portals @nickdoelman @KumarVivek
15-
/powerapps-docs/user/ @mduelae @KumarVivek
16-
/powerapps-docs/teams/ @tapanm-msft @KumarVivek
4+
/powerapps-docs/ @tapanm-msft
5+
/powerapps-docs/cards @tapanm-msft @mduelae
6+
/powerapps-docs/developer/ @PHecke @leeclontz @JimDaly
7+
/powerapps-docs/developer/data-platform/cli @JimDaly @leeclontz
8+
/powerapps-docs/developer/data-platform/cli @JimDaly @leeclontz
9+
/powerapps-docs/developer/model-driven-apps @JimDaly @leeclontz
10+
/powerapps-docs/guidance @tapanm-msft @mduelae @Mattp123
11+
/powerapps-docs/maker/canvas-apps @tapanm-msft @mduelae
12+
/powerapps-docs/maker/data-platform @Mattp123 @tapanm-msft
13+
/powerapps-docs/maker/model-driven-apps @Mattp123 @tapanm-msft
14+
/powerapps-docs/maker/common @Mattp123 @tapanm-msft @mduelae
15+
/powerapps-docs/maker/portals @professorkendrick @tapanm-msft
16+
/powerapps-docs/mobile @tapanm-msft @sericks007
17+
/powerapps-docs/sample-apps @tapanm-msft @mduelae
18+
/powerapps-docs/user @sericks007 @tapanm-msft
19+
/powerapps-docs/teams @tapanm-msft @mduelae
Loading
Loading

powerapps-docs/cards/send-a-card/send-card-with-flow.md

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Send a card automatically with a flow (preview)
2+
title: Send a card automatically with a flow
33
description: Learn how to send a card automatically using a Power Automate flow.
44
keywords: "Card Designer, Power Apps, cards, send a card, Power Automate, flow"
55
author: anuitz
@@ -15,19 +15,21 @@ contributors:
1515
- anuitz
1616
---
1717

18-
# Send a card automatically with a flow (preview)
18+
# Send a card automatically with a flow
1919

20-
[!INCLUDE[cards_preview_notice](../includes/preview-include.md)]
20+
Use Power Automate to send cards for Power Apps from a flow. By setting up a flow that is triggered by an event, you can automate the process of sending cards in Teams. For instance, you can create a flow that requests the assigned individual to approve or reject an expense when a new record is added to Dataverse. Alternatively, you can create a flow that sends a daily status update in Teams every morning.
2121

22-
Use Power Automate to send cards. By setting up a flow that is triggered by an event, you can automate the process of sending cards. For instance, you can create a flow that requests the assigned individual to approve or reject an expense when a new record is added to Dataverse. Alternatively, you can create a flow that sends a daily status update every morning.
22+
You can use **Send from a flow** option in **Send** menu on the card's **Play** page to launch a Power Automate flow template for sending cards in Teams. You can modify and save this template as a new flow to post your card in Teams chat or channel or send it to a specific Teams user.
23+
24+
:::image type="content" source="../media/send-a-card/Send_from_flow.png" alt-text="Select Send from flow option to lauch a Power Automate template.":::
2325

2426
## Prerequisites
2527

2628
- [Power Automate](https://make.powerautomate.com) account
2729
- Create a [card](../tutorials/hello-world-card.md)
2830
- The [Power Apps Teams app](send-card-in-teams.md#add-power-apps-to-teams) installed in the chat, group chat, or channel that the card will be sent to
2931

30-
## Cards for Power Apps connector
32+
## Use Cards for Power Apps connector in Power Automate
3133

3234
The **Cards for Power Apps** connector is used to create instances of cards to send using a flow. The connector has no triggers and two actions:
3335

@@ -36,20 +38,34 @@ The **Cards for Power Apps** connector is used to create instances of cards to s
3638

3739
:::image type="content" source="../media/send-a-card/cards-connector.png" alt-text="Screenshot of the cards for Power Apps connector.":::
3840

39-
## Send card in Teams using the Teams connector
41+
## Send a card for Power Apps in Teams chat or channel
4042

41-
Sending a card in Teams requires a card instance. To get a card instance, use the **Cards for Power Apps** connector actions. The **Create card instance** action has `Card` dynamic content that can be used with the **Teams** connector **Post card in a chat or channel** action.
43+
Sending a card in Teams froma flow requires a card instance. To crearte a card instance, use the **Cards for Power Apps** connector actions. The **Create card instance** action has `Card` dynamic content that can be used with the **Teams** connector **Post card in a chat or channel** action.
4244

43-
1. Create or modify an existing flow
45+
1. Create or modify an existing flow, or use **Send** > **Send from a flow** on cards for Power Apps **Play** page to start with a template.
4446
1. Make sure the flow has a trigger. In the screenshot below, the trigger is when a new account record is created.
45-
1. Create or get the card instance you want to send using the **Cards for Power Apps** connector. In the screenshot, we created a card instance of the `Account Card` and setting the `Body` input variable to the `Account Name` of the newly created account record.
47+
1. Create a card instance you want to send using the **Cards for Power Apps** connector's **Create card instance** action. In the screenshot, we created a card instance of the `Account Card` and setting the `Body` input variable to the `Account Name` of the newly created account record.
4648
1. Add an action to **Post card in a chat or channel** using the **Teams** connector.
47-
1. On the action, set **Post as** to `Power Apps (Preview)`.
49+
1. On the action, set **Post as** to `Power Apps`.
4850
1. On the action, set **Post in**, **Team** & **Channel**, or **Group chat** to the conversation you want to send the card in. In the example screenshot, this is to the `Cards for Power Apps (Customer Channel)` Teams in the `General` channel.
4951
1. On the action, set **Card** to the `Card` dynamic content from the **Cards for Power Apps** connector action you added earlier.
5052

5153
:::image type="content" source="../media/send-a-card/card-in-flow-example.png" alt-text="Screenshot a flow that creates a card instance when an account record is created and sends it in Teams.":::
5254

55+
## Send a card for Power Apps to a Teams user
56+
You can send a card to a specific Teams user. In a Power Automate flow, use the **Create card instance** action in **Cards for Power Apps** connector actions to create a card instance as `Card` dynamic content. You can use the resulting `Card` dynamic content with the **Teams** connector **Post card in a chat or channel** action to send a card to a specific Teams user.
57+
58+
1. Create or modify an existing flow, or use **Send** > **Send from a flow** on cards for Power Apps **Play** page to start with a template.
59+
1. Make sure the flow has a trigger. In the screenshot below, the trigger is when a new account record is created.
60+
1. Create a card instance you want to send using the **Cards for Power Apps** connector's **Create card instance** action. In the screenshot, we created a card instance of the `Account Card` and setting the `Body` input variable to the `Account Name` of the newly created account record.
61+
1. Add an action to **Post card in a chat or channel** using the **Teams** connector.
62+
1. On the action, set **Post as** to `Power Apps`.
63+
1. On the action, set **Post in** to **Chat with Power Apps**.
64+
1. On the action, enter the **Teams user** you want to post the card to.
65+
1. On the action, set **Card** to the `Card` dynamic content from the **Cards for Power Apps** connector action you added earlier.
66+
67+
:::image type="content" source="../media/send-a-card/Send_card_to_a_Teams_user.png" alt-text="Screenshot a flow that creates a card instance when an account record is created and sends it to a specific Teams user.":::
68+
5369
## Managing your flow in a solution
5470

5571
For more details on managing your flow that uses the Card for Power Apps Connector, see [Manage cards in solutions](../manage-cards/manage-cards.md).

powerapps-docs/developer/component-framework/code-components-alm.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ When developing code components, you would follow the steps below:
3838

3939
When your code component is ready for testing inside a model-driven app, canvas app, or portal, there are two ways to deploy a code component to Dataverse:
4040

41-
1. [pac pcf push](/power-platform/developer/cli/reference/pcf#pac-pcf-push): This deploys a single code component at a time to a temporary **PowerAppsTools** solution.
41+
1. [pac pcf push](/power-platform/developer/cli/reference/pcf#pac-pcf-push): This deploys a single code component at a time to a solution specified by the `--solution-unique-name` parameter, or a temporary **PowerAppsTools** solution when no solution is specified.
4242

4343
2. Using [pac solution init](/power-platform/developer/cli/reference/solution#pac-solution-init) and `msbuild` to build a `cdsproj` solution project that has references to one or more code components. Each code component is added to the `cdsproj` using [pac solution add-reference](/power-platform/developer/cli/reference/solution#pac-solution-add-reference). A solution project can contain references to multiple code components, whereas code component projects may only contain a single code component.
4444

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
---
2+
title: "Style components with modern theming (preview) | Microsoft Docs"
3+
description: You can style your components based on the modern theme used in the app."
4+
keywords: "Component Framework, code components, Power Apps controls"
5+
ms.author: hemantg
6+
author: HemantGaur
7+
ms.date: 11/15/2023
8+
ms.reviewer: jdaly
9+
ms.custom:
10+
- "dyn365-a11y"
11+
- "dyn365-developer"
12+
ms.topic: article
13+
ms.subservice: pcf
14+
contributors:
15+
- HemantGaur
16+
- noazarur-microsoft
17+
- JimDaly
18+
---
19+
20+
# Style components with modern theming (preview)
21+
22+
[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)]
23+
24+
Developers need to be able to style their components so they look like the rest of the application they're included in. They can do this when modern theming is in effect for either a canvas app (via the [Modern controls and themes](../../maker/canvas-apps/controls/modern-controls/overview-modern-controls.md) feature) or model-driven app (through the [new refreshed look](../../user/modern-fluent-design.md)). Use modern theming, which is based on [Fluent UI React v9](https://react.fluentui.dev/), to style your component. This approach is recommended to get the best performance and theming experience for your component.
25+
26+
There are four different ways to apply modern theming to your component.
27+
28+
- [Fluent UI v9 controls](#fluent-ui-v9-controls)
29+
- [Fluent UI v8 controls](#fluent-ui-v8-controls)
30+
- [Non-Fluent UI controls](#non-fluent-ui-controls)
31+
- [Custom theme providers](#custom-theme-providers)
32+
33+
## Fluent UI v9 controls
34+
35+
Wrapping Fluent UI v9 controls as a component is the easiest way to utilize modern theming because the modern theme is automatically applied to these controls. The only prerequisite is to ensure your component adds a dependency on the [React controls & platform libraries (preview)](react-controls-platform-libraries.md) as shown below. This approach allows your component to use the same React and Fluent libraries as the platform, and therefore share the same React context that passes the theme tokens down to the component.
36+
37+
```xml
38+
<resources>
39+
<code path="index.ts" order="1"/>
40+
<!-- Dependency on React controls & platform libraries -->
41+
<platform-library name="React" version="16.8.6" />
42+
<platform-library name="Fluent" version="9.4.0" />
43+
</resources>
44+
```
45+
46+
## Fluent UI v8 controls
47+
48+
Fluent provides a migration path for applying v9 theme constructs when you use Fluent UI v8 controls in your component. Use the `createV8Theme` function included in the [Fluent's v8 to v9 migration package](https://www.npmjs.com/package/@fluentui/react-migration-v8-v9) to create a v8 theme based on v9 theme tokens, as shown in the following example:
49+
50+
```tsx
51+
const theme = createV8Theme(
52+
context.fluentDesignLanguage.brand,
53+
context.fluentDesignLanguage.theme
54+
);
55+
return <ThemeProvider theme={theme}></ThemeProvider>;
56+
```
57+
58+
## Non-Fluent UI controls
59+
60+
If your component doesn't use Fluent UI, you can take a dependency directly on the v9 theme tokens available through the `fluentDesignLanguage` context parameter. Use this parameter to get access to all [theme](reference/theming.md) tokens so it can reference any aspect of the theme to style itself.
61+
62+
```tsx
63+
<span style={{ fontSize: context.fluentDesignLanguage.theme.fontSizeBase300 }}>
64+
{"Stylizing HTML with platform provided theme."}
65+
</span>
66+
```
67+
68+
## Custom theme providers
69+
70+
When your component requires styling that is different from the current theme of the app, create your own `FluentProvider` and pass your own set of theme tokens to be used by your component.
71+
72+
```tsx
73+
<FluentProvider theme={context.fluentDesignLanguage.tokenTheme}>
74+
{/* your control */}
75+
</FluentProvider>
76+
```
77+
78+
## Sample controls
79+
80+
Examples for each of these use cases are available at [Modern Theming API control](./sample-controls/modern-theming-api-control.md).
81+
82+
## FAQ
83+
84+
This section contains frequently asked questions. If you have a question about this feature, use the **Feedback** for **This page** button at the bottom of this page to create a GitHub issue.
85+
86+
### Q: My control uses Fluent UI v9 and has a dependency on the platform libraries, but I don't want to utilize modern theming. How can I disable it for my component?
87+
88+
**A**: You can do this two different ways:
89+
90+
1. You can create your own component-level `FluentProvider`
91+
92+
```tsx
93+
<FluentProvider theme={customFluentV9Theme}>
94+
{/* your control */}
95+
</FluentProvider>
96+
```
97+
98+
1. You can wrap your control inside `IdPrefixContext.Provider` and set your own `idPrefix` value. This prevents your component from getting theme tokens from the platform.
99+
100+
```tsx
101+
<IdPrefixProvider value="custom-control-prefix">
102+
<Label weight="semibold">This label is not getting Modern Theming</Label>
103+
</IdPrefixProvider>
104+
```
105+
106+
### Q: Some of my Fluent UI v9 controls aren't getting styles
107+
108+
**A**: Fluent v9 controls that rely on the React Portal need to be rewrapped in the theme provider to ensure styling is properly applied. You can use `FluentProvider`.
109+
110+
### Q: How can I check if modern theming is enabled
111+
112+
**A**: You can check if tokens are available: `context.fluentDesignLanguage?.tokenTheme`. Or in model-driven applications you can check app settings: `context.appSettings.getIsFluentThemingEnabled()`.
113+
114+
## Related articles
115+
116+
[Theming (Power Apps component framework API reference)](../component-framework/reference/theming.md)
117+
[Modern Theming API control](./sample-controls/modern-theming-api-control.md)
118+
[Use modern themes in canvas apps (preview)](../../maker/canvas-apps/controls/modern-controls/modern-theming.md)
119+
120+
[!INCLUDE[footer-include](../../includes/footer-banner.md)]

powerapps-docs/developer/component-framework/implementing-controls-using-typescript.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -955,7 +955,7 @@ Follow these steps to create and import a [solution](../../maker/data-platform/s
955955
> Re build the solution file using the command `msbuild/property:configuration=Release` and reimport the solution into Dataverse and run the solution checker. More information: [Debug code components](debugging-custom-controls.md).
956956

957957
1. The generated solution zip file is located in the `Solution\bin\debug` folder.
958-
1. Manually [import the solution into Dataverse](../../maker/data-platform/import-update-export-solutions.md) using [PowerApps](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc) once the zip file is ready or automatically using the [Microsoft Power Platform Build Tools](https://marketplace.visualstudio.com/items?itemName=microsoft-IsvExpTools.PowerPlatform-BuildTools).
958+
1. Manually [import the solution into Dataverse](../../maker/data-platform/import-update-export-solutions.md) using [Power Apps](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc) once the zip file is ready or automatically using the [Microsoft Power Platform Build Tools](https://marketplace.visualstudio.com/items?itemName=microsoft-IsvExpTools.PowerPlatform-BuildTools).
959959

960960
> [!NOTE]
961961
> Manually publish the customizations if you are importing unmanaged solution.

0 commit comments

Comments
 (0)