diff --git a/.gitignore b/.gitignore index c279f87b56..4862a2e5e5 100644 --- a/.gitignore +++ b/.gitignore @@ -19,5 +19,3 @@ powerapps-docs/.vs/ProjectSettings.json powerapps-docs/.vs/slnx.sqlite powerapps-docs/.vs/VSWorkspaceState.json /.vs/slnx.sqlite-journal -powerapps-docs/teams/media/how-to-architecture/Thumbs.db -powerapps-docs/teams/media/milestones-broad-distribution/Thumbs.db diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index 163d00a0a2..38600d7ba7 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -1,5 +1,55 @@ { "redirections": [ + { + "source_path": "powerapps-docs/developer/data-platform/org-service/samples/enable-field-security-entity.md", + "redirect_url": "column-level-security", + "redirect_document_id": "false" + }, + { + "source_path": "powerapps-docs/developer/data-platform/org-service/samples/retrieve-field-permissions.md", + "redirect_url": "column-level-security", + "redirect_document_id": "false" + }, + { + "source_path": "powerapps-docs/developer/data-platform/org-service/samples/retrieve-field-sharing-records.md", + "redirect_url": "column-level-security", + "redirect_document_id": "false" + }, + { + "source_path": "powerapps-docs/developer/data-platform/field-security-entities.md", + "redirect_url": "column-level-security", + "redirect_document_id": "false" + }, + { + "source_path": "powerapps-docs/developer/data-platform/calculated-rollup-attributes.md", + "redirect_url": "specialized-columns.md", + "redirect_document_id": "false" + }, + { + "source_path": "powerapps-docs/developer/data-platform/deletemultiple.md", + "redirect_url": "bulk-operations#deletemultiple", + "redirect_document_id": "false" + }, + { + "source_path": "powerapps-docs/developer/test-engine/overview.md", + "redirect_url": "/power-platform/test-engine/overview", + "redirect_document_id": "false" + }, + { + "source_path": "powerapps-docs/developer/test-engine/powerfx.md", + "redirect_url": "/power-platform/test-engine/powerfx", + "redirect_document_id": "false" + }, + { + "source_path": "powerapps-docs/developer/test-engine/yaml.md", + "redirect_url": "/power-platform/test-engine/yaml", + "redirect_document_id": "false" + }, + { + "source_path": "powerapps-docs/developer/data-platform/quick-start-register-configure-simplespa-application-msal-js.md", + "redirect_url": "webapi/quick-start-js-spa", + "redirect_document_id": "false" + }, { "source_path": "powerapps-docs/developer/data-platform/webapi/query-data-web-api.md", "redirect_url": "query/overview", @@ -4102,7 +4152,7 @@ }, { "source_path": "powerapps-docs/developer/common-data-service/field-security-entities.md", - "redirect_url": "../data-platform/field-security-entities", + "redirect_url": "../data-platform/column-level-security", "redirect_document_id": false }, { @@ -5022,7 +5072,12 @@ }, { "source_path": "powerapps-docs/developer/common-data-service/org-service/samples/assign-record-to-new-owner.md", - "redirect_url": "../../../data-platform/org-service/samples/assign-record-to-new-owner", + "redirect_url": "../../../data-platform/org-service/samples/assign-records-to-team", + "redirect_document_id": false + }, + { + "source_path": "powerapps-docs/developer/data-platform/org-service/samples/assign-record-to-new-owner.md", + "redirect_url": "./assign-records-to-team", "redirect_document_id": false }, { @@ -8932,7 +8987,7 @@ }, { "source_path": "powerapps-docs/maker/canvas-apps/working-with-dynamic-schema.md", - "redirect_url": "/power-apps/maker/canvas-apps/untyped-and-dynamic-objects#converting-formulas-that-return-untyped-objects-that-previously-returned-boolean", + "redirect_url": "/power-apps/maker/canvas-apps/untyped-and-dynamic-objects#converting-formulas-that-return-dynamic-values-that-previously-returned-boolean", "redirect_document_id": false }, { @@ -9145,6 +9200,16 @@ "redirect_url": "/power-platform/responsible-ai-overview", "redirect_document_id": "false" }, + { + "source_path": "powerapps-docs/user/cs-template-options.md", + "redirect_url": "/power-apps/user/email-template-create", + "redirect_document_id": "false" + }, + { + "source_path": "powerapps-docs/user/cs-email-template-builder.md", + "redirect_url": "/power-apps/user/email-template-create", + "redirect_document_id": "false" + }, { "source_path": "powerapps-docs/maker/portals/control-portal-creation.md", "redirect_url": "/power-pages/admin/control-site-creation", @@ -9419,12 +9484,13 @@ "source_path": "powerapps-docs/maker/canvas-apps/connections/connection-excel.md", "redirect_url": "/power-apps/maker/canvas-apps/get-started-create-from-blank", "redirect_document_id": false - }, + }, { "source_path": "powerapps-docs/maker/canvas-apps/how-to-excel-tips.md", "redirect_url": "https://support.microsoft.com/en-us/office/create-and-format-tables-e81aa349-b006-4f8a-9806-5af9df0ac664", - }, - { + "redirect_document_id": false + }, + { "source_path": "powerapps-docs/maker/canvas-apps/sample-crisis-communication-app.md", "redirect_url": "https://learn.microsoft.com", "redirect_document_id": false @@ -9523,7 +9589,51 @@ "source_path": "powerapps-docs/maker/common/virtual-agent.md", "redirect_url": "/power-apps/maker/canvas-apps/ai-overview", "redirect_document_id": false + }, + { + "source_path": "powerapps-docs/maker/canvas-apps/power-apps-ideas-train-examples.md", + "redirect_url": "../../../power-apps/maker/canvas-apps/power-apps-ideas-transform", + "redirect_document_id": false + }, + { + "source_path": "powerapps-docs/maker/common/build-ai-plugin-for-copilot.md", + "redirect_url": "../../../microsoft-copilot-studio/microsoft-copilot-extend-action-connector", + "redirect_document_id": false + }, + { + "source_path": "powerapps-docs/maker/common/ai-plugin.md", + "redirect_url": "../../../microsoft-copilot-studio/microsoft-copilot-extend-action-connector", + "redirect_document_id": false + }, + { + "source_path": "powerapps-docs/use-ai-builder.md", + "redirect_url": "../ai-builder/overview", + "redirect_document_id": false + }, + { + "source_path": "powerapps-docs/user/smartGrid.md", + "redirect_url": "../../power-apps/maker/model-driven-apps/power-apps-grid-control", + "redirect_document_id": false + }, + { + "source_path": "powerapps-docs/user/well-written-input-text-copilot.md", + "redirect_url": "/power-apps/", + "redirect_document_id": false + }, + { + "source_path": "powerapps-docs/maker/common/faq-draft-with-copilot.md", + "redirect_url": "/power-apps/", + "redirect_document_id": false + }, + { + "source_path": "powerapps-docs/maker/canvas-apps/common-performance-issue-resolutions.md", + "redirect_url": "../../../power-apps/maker/canvas-apps/create-performant-apps-overview", + "redirect_document_id": false + }, + { + "source_path": "powerapps-docs/maker/model-driven-apps/build-app-three-steps.md", + "redirect_url": "../../../power-apps/maker/model-driven-apps/build-first-model-driven-app", + "redirect_document_id": false } - ] } \ No newline at end of file diff --git a/powerapps-docs/cards/make-a-card/ui-elements/data-binding.md b/powerapps-docs/cards/make-a-card/ui-elements/data-binding.md index 08bfe1a6fa..2a5e54741f 100644 --- a/powerapps-docs/cards/make-a-card/ui-elements/data-binding.md +++ b/powerapps-docs/cards/make-a-card/ui-elements/data-binding.md @@ -3,7 +3,7 @@ title: Work with repeating controls in cards description: Learn how to make controls repeat in a table in cards for Microsoft Power Apps. keywords: "Card Designer, Power Apps, cards, controls" ms.date: 09/20/2022 -ms.topic: conceptual +ms.topic: article author: iaanw ms.author: iawilt ms.reviewer: diff --git a/powerapps-docs/cards/send-a-card/send-card-in-teams.md b/powerapps-docs/cards/send-a-card/send-card-in-teams.md index f43a61079e..d59a9afaa2 100644 --- a/powerapps-docs/cards/send-a-card/send-card-in-teams.md +++ b/powerapps-docs/cards/send-a-card/send-card-in-teams.md @@ -3,7 +3,7 @@ title: Share a card in Teams description: Learn how to share a card with your teammates in Teams." keywords: "Card Designer, Power Apps, cards, share a card, Teams, send a card" ms.date: 09/20/2022 -ms.topic: article +ms.topic: how-to author: iaanw ms.author: iawilt ms.reviewer: diff --git a/powerapps-docs/cards/send-a-card/send-card-with-flow.md b/powerapps-docs/cards/send-a-card/send-card-with-flow.md index 1fc6a6bf4a..9f8f1af9b5 100644 --- a/powerapps-docs/cards/send-a-card/send-card-with-flow.md +++ b/powerapps-docs/cards/send-a-card/send-card-with-flow.md @@ -42,7 +42,7 @@ The **Cards for Power Apps** connector is used to create instances of cards to s ## Send a card for Power Apps in Teams chat or channel -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. +Sending a card in Teams from a flow requires a card instance. To create 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. 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. 1. Make sure the flow has a trigger. In the screenshot below, the trigger is when a new account record is created. diff --git a/powerapps-docs/cards/tutorials/dataverse-card.md b/powerapps-docs/cards/tutorials/dataverse-card.md index 82bddc5689..f894e40e7d 100644 --- a/powerapps-docs/cards/tutorials/dataverse-card.md +++ b/powerapps-docs/cards/tutorials/dataverse-card.md @@ -3,7 +3,7 @@ title: Create a card with data from Dataverse description: Learn how to use Dataverse connectors in a card. keywords: "Card Designer, Power Apps, cards, tutorial, Dataverse, connectors" ms.date: 09/20/2022 -ms.topic: article +ms.topic: how-to author: iaanw ms.author: iawilt ms.reviewer: diff --git a/powerapps-docs/developer/component-framework/add-custom-controls-to-a-field-or-entity.md b/powerapps-docs/developer/component-framework/add-custom-controls-to-a-field-or-entity.md index 7ad9e8fe32..5d24a35599 100644 --- a/powerapps-docs/developer/component-framework/add-custom-controls-to-a-field-or-entity.md +++ b/powerapps-docs/developer/component-framework/add-custom-controls-to-a-field-or-entity.md @@ -5,7 +5,7 @@ author: anuitz ms.author: anuitz ms.date: 05/27/2022 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: pcf contributors: - JimDaly diff --git a/powerapps-docs/developer/component-framework/bring-intelligence-using-agent-apis.md b/powerapps-docs/developer/component-framework/bring-intelligence-using-agent-apis.md new file mode 100644 index 0000000000..27b9c5aabe --- /dev/null +++ b/powerapps-docs/developer/component-framework/bring-intelligence-using-agent-apis.md @@ -0,0 +1,49 @@ +--- +title: "Bring intelligence into your components using Agent APIs (preview)" +description: "Learn about how you can integrate Copilot Studio topics into your custom components using Agent APIs" +author: adrianorth +ms.author: aorth +ms.date: 07/07/2025 +ms.reviewer: jdaly +ms.topic: conceptual +ms.subservice: pcf +search.audienceType: + - developer +contributors: + - JimDaly +--- + +# Bring intelligence into your component using Agent APIs (preview) + +[!INCLUDE [preview-note-pp](~/../shared-content/shared/preview-includes/preview-note-pp.md)] + +Agent APIs are a set of interfaces introduced in Microsoft Power Apps that allow components to interact with topics created in Microsoft Copilot Studio. These APIs are available in two forms: + +- `Context.Copilot` methods used for PCF controls. This is the subject of this article. +- [Xrm.Copilot namespace used for client scripts in model-driven apps.](../model-driven-apps/clientapi/bring-intelligence-using-agent-apis.md) + +These APIs are designed to enhance integration with Microsoft Copilot Studio, enabling more intelligent and responsive app experiences. The APIs use a single Copilot Studio agent that is either: +- Interactive agent selected in the model app designer of custom apps. See more at [Working with an interactive agent](../../maker/model-driven-apps/add-agents-to-app.md#working-with-an-interactive-agent). +- Model app containing lead or opportunity table, which implicitly uses the "Copilot in Dynamics 365 Sales" agent. + +|API|Description| +|---------|---------| +|[copilot.executeEvent](reference/copilot/executeevent.md)|[!INCLUDE [executeevent-description](reference/copilot/includes/executeevent-description.md)]| +|[copilot.executePrompt](reference/copilot/executeprompt.md)|[!INCLUDE [executeprompt-description](reference/copilot/includes/executeprompt-description.md)]| + +## Accessibility + +When creating a code component, ensure the following best practices in [code component accessibility checks](code-components-best-practices.md#check-accessibility) are followed to have an accessible experience. + +### Related articles + +[FAQ for Agent APIs and Agent Response component](../../maker/common/faq-agent-api-component.md) +[Copilot](reference/copilot.md) +[executeEvent](reference/copilot/executeevent.md) +[executePrompt](reference/copilot/executeprompt.md) +[Working with an interactive agent](../../maker/model-driven-apps/add-agents-to-app.md#working-with-an-interactive-agent) +[Power Apps component framework overview](overview.md) +[Create your first code component](implementing-controls-using-typescript.md) +[Learn Power Apps component framework](/training/paths/use-power-apps-component-framework) +[Xrm.Copilot (Client API reference)](../model-driven-apps/clientapi/reference/xrm-copilot.md) +[Add agent response with the form designer (preview)](../../maker/model-driven-apps/form-designer-add-configure-agent-response.md) diff --git a/powerapps-docs/developer/component-framework/code-components-alm.md b/powerapps-docs/developer/component-framework/code-components-alm.md index 36e23c4985..caabc0c74d 100644 --- a/powerapps-docs/developer/component-framework/code-components-alm.md +++ b/powerapps-docs/developer/component-framework/code-components-alm.md @@ -5,7 +5,7 @@ author: anuitz ms.author: anuitz ms.date: 05/27/2022 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: pcf contributors: - JimDaly diff --git a/powerapps-docs/developer/component-framework/code-components-best-practices.md b/powerapps-docs/developer/component-framework/code-components-best-practices.md index 745b022eeb..4e2c2f0342 100644 --- a/powerapps-docs/developer/component-framework/code-components-best-practices.md +++ b/powerapps-docs/developer/component-framework/code-components-best-practices.md @@ -5,7 +5,7 @@ author: anuitz ms.author: anuitz ms.date: 03/25/2024 ms.reviewer: jdaly -ms.topic: article +ms.topic: best-practice ms.subservice: pcf contributors: - JimDaly diff --git a/powerapps-docs/developer/component-framework/component-framework-for-canvas-apps.md b/powerapps-docs/developer/component-framework/component-framework-for-canvas-apps.md index dff8042f4f..31e103254b 100644 --- a/powerapps-docs/developer/component-framework/component-framework-for-canvas-apps.md +++ b/powerapps-docs/developer/component-framework/component-framework-for-canvas-apps.md @@ -4,9 +4,9 @@ description: Learn how to create code components using Power Apps component fram keywords: author: anuitz ms.author: anuitz -ms.date: 05/27/2022 +ms.date: 07/01/2025 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: pcf contributors: - JimDaly @@ -14,7 +14,7 @@ contributors: # Code components for canvas apps -Professional developers can use Power Apps component framework to create code components that can be used in their canvas apps. More information: [Power Apps component framework overview](overview.md) +Professional developers can use Power Apps component framework to create code components that can be used in their canvas apps. More information: [Power Apps component framework overview](overview.md). App makers can use Power Apps component framework to create, import, and add code components to canvas apps by using [Microsoft Power Platform CLI](get-powerapps-cli.md). Certain APIs might not be available in canvas apps. We recommend that you check each API to determine where it's available. @@ -23,7 +23,7 @@ App makers can use Power Apps component framework to create, import, and add cod > [!WARNING] > Code components contain code that may not be generated by Microsoft and can potentially access security tokens and data when rendered in Power Apps Studio. When adding code components to a canvas app, make sure that the code component solutions are from a trusted source. This vulnerability does not exist when playing the canvas app. -When you open a canvas app that contains code components in Power Apps Studio, a warning message about potentially unsafe code appears. Code components in the Power Apps Studio environment have access to security tokens; hence only components from trusted sources should be opened. Administrators and system customizers should review and validate all code components before importing those components in an environment and making them available for makers to use in their apps. The `Default` publisher is shown when you import code components by using an unmanaged solution or when you have used [pac pcf push](/power-platform/developer/cli/reference/pcf#pac-pcf-push) to install your code component. +When you open a canvas app that contains code components in Power Apps Studio, a warning message about potentially unsafe code appears. Code components in the Power Apps Studio environment have access to security tokens; hence only components from trusted sources should be opened. Administrators and system customizers should review and validate all code components before importing those components in an environment and making them available for makers to use in their apps. The `Default` publisher is shown when you import code components by using an unmanaged solution or when you have used [pac pcf push](/power-platform/developer/cli/reference/pcf#pac-pcf-push) to install your code component. ![Safety warning.](media/canvas-app-safety-warning.png "Safety warning") @@ -39,13 +39,13 @@ To add code components to an app, you need to enable the Power Apps component fr 1. Sign in to [Power Apps](https://powerapps.microsoft.com/). 2. Select **Settings** ![Settings.](media/settings.png), and then select **Admin Center**. - + > [!div class="mx-imgBorder"] - > ![Settings and Admin Center.](media/select-admin-center-from-settings.png "Settings and Admin Center") + > ![Settings and Admin Center.](media/select-admin-center-from-settings.png "Settings and Admin Center") 3. On the left pane, select **Environments**, select the environment where you want to enable this feature, and then select **Settings**. -4. Expand **Product**, and select **Features**. +4. Expand **Product**, and select **Features**. 5. From the list of available features, turn on **Power Apps component framework for canvas apps**, and then select **Save**. @@ -56,6 +56,8 @@ To add code components to an app, you need to enable the Power Apps component fr After you enable the Power Apps component framework feature in your environment, you can start implementing the logic for code components. For a step-by-step tutorial, go to [Create your first code component](implementing-controls-using-typescript.md). +We recommend that you check the [limitations](limitations.md) of code components in canvas apps before starting implementation. + ## Add components to a canvas app 1. Go to Power Apps Studio. @@ -65,8 +67,8 @@ After you enable the Power Apps component framework feature in your environment, > [!IMPORTANT] > Make sure the solution .zip file containing the code components has already been [imported](../../maker/data-platform/import-update-export-solutions.md) into Microsoft Dataverse before you proceed to the next step. -3. On the left pane, select **Add** (**+**), and then select **Get more components**. - +3. On the left pane, select **Add** (**+**), and then select **Get more components**. + > [!div class="mx-imgBorder"] > ![Insert components.](media/insert-code-components-using-get-more-components.png "Insert components") @@ -82,26 +84,26 @@ After you enable the Power Apps component framework feature in your environment, > [!NOTE] > You can also add components by selecting **Insert** > **Custom** > **Import component**. This option will be removed in a future release, so we suggest using the flow described above. - > + > -On the **Properties** tab, you'll notice the code component properties are displayed. +On the **Properties** tab, you'll notice the code component properties are displayed. > [!div class="mx-imgBorder"] > ![Default code component properties pane.](media/property-pane-with-parameters.png "Default code components properties pane") > [!NOTE] -> Existing code components can be re-imported by updating the code component's manifest version if you want the properties to be available in the default **Properties** tab. As before, the properties will continue to be available on the **Advanced** properties tab. +> Existing code components can be re-imported by updating the code component's manifest version if you want the properties to be available in the default **Properties** tab. As before, the properties will continue to be available on the **Advanced** properties tab. ## Delete a code component from a canvas app -1. Open the app where you've added the code component. -1. On the left pane, select **Tree view**, and then select the screen where you've added the code component. +1. Open the app where you've added the code component. +1. On the left pane, select **Tree view**, and then select the screen where you've added the code component. 1. Next to the component, select **More** (**...**), and then select **Delete**. > [!div class="mx-imgBorder"] > ![Delete a code component.](media/delete-code-component.png "Delete a code component") -1. Save the app to see the changes. +1. Save the app to see the changes. ## Update existing code components @@ -116,5 +118,4 @@ Whenever you update the code components and want to see the runtime changes, you [Create your first code component](implementing-controls-using-typescript.md)
[Learn Power Apps component framework](/training/paths/use-power-apps-component-framework) - [!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/component-framework/create-custom-controls-using-pcf.md b/powerapps-docs/developer/component-framework/create-custom-controls-using-pcf.md index c9a7bc744d..b4d8528270 100644 --- a/powerapps-docs/developer/component-framework/create-custom-controls-using-pcf.md +++ b/powerapps-docs/developer/component-framework/create-custom-controls-using-pcf.md @@ -6,7 +6,7 @@ author: anuitz ms.author: anuitz ms.date: 01/27/2023 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: pcf contributors: - JimDaly diff --git a/powerapps-docs/developer/component-framework/custom-controls-overview.md b/powerapps-docs/developer/component-framework/custom-controls-overview.md index 55120121ca..fea14d8d90 100644 --- a/powerapps-docs/developer/component-framework/custom-controls-overview.md +++ b/powerapps-docs/developer/component-framework/custom-controls-overview.md @@ -5,7 +5,7 @@ author: anuitz ms.author: anuitz ms.date: 02/10/2023 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: pcf contributors: - JimDaly @@ -108,7 +108,7 @@ You can define additional resource files in the manifest to include: More information: [resources element](manifest-schema-reference/resources.md) -### Related topics +### Related articles [Create and build a code component](create-custom-controls-using-pcf.md) diff --git a/powerapps-docs/developer/component-framework/customize-editable-grid-control.md b/powerapps-docs/developer/component-framework/customize-editable-grid-control.md index c4f65ef60b..13a42e5817 100644 --- a/powerapps-docs/developer/component-framework/customize-editable-grid-control.md +++ b/powerapps-docs/developer/component-framework/customize-editable-grid-control.md @@ -6,7 +6,7 @@ author: clromano ms.author: clromano ms.date: 07/25/2022 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: pcf contributors: - JimDaly @@ -61,7 +61,7 @@ The template control is included in the [PowerApps-Samples](https://github.com/m ``` > [!NOTE] - > If the function returns null or undefined, then the grid will use the internal renderer/editor for the targeted cells. + > If the function returns null or undefined, then the grid uses the internal renderer/editor for the targeted cells. 1. After defining your custom cell renderers and editors, **package** the grid customizer control and **import** it to your Power Apps environment. Alternatively, you can use the [pac pcf push](/power-platform/developer/cli/reference/pcf#pac-pcf-push) command. 1. After publishing the grid customizer control, open the **Customize the system** panel from the **Settings > Customizations** menu. diff --git a/powerapps-docs/developer/component-framework/debugging-custom-controls.md b/powerapps-docs/developer/component-framework/debugging-custom-controls.md index bccced3a7f..2cdd5bc2d5 100644 --- a/powerapps-docs/developer/component-framework/debugging-custom-controls.md +++ b/powerapps-docs/developer/component-framework/debugging-custom-controls.md @@ -5,7 +5,7 @@ author: anuitz ms.author: anuitz ms.date: 05/27/2022 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: pcf contributors: - JimDaly diff --git a/powerapps-docs/developer/component-framework/dependent-libraries.md b/powerapps-docs/developer/component-framework/dependent-libraries.md new file mode 100644 index 0000000000..ece8d01854 --- /dev/null +++ b/powerapps-docs/developer/component-framework/dependent-libraries.md @@ -0,0 +1,149 @@ +--- +title: Dependent Libraries (preview) +description: Explains how to use dependent libraries with Power Apps Component Framework (PCF) controls. +author: anuitz +ms.author: anuitz +ms.date: 03/24/2025 +ms.reviewer: jdaly +ms.topic: article +ms.subservice: pcf +contributors: + - JimDaly + - kierantpetrie +--- +# Dependent Libraries (preview) + +[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] + +With model-driven apps, you can reuse a prebuilt library contained in another component that is loaded as a dependency to more than one component. + +Having copies of a prebuilt library in multiple controls is undesirable. Reusing existing libraries improves performance, especially when the library is large, by reducing the load time for all components that use the library. Library reuse also helps reduce the maintenance overhead in build processes. + +:::row::: + :::column span=""::: + Before + :::column-end::: + :::column span=""::: + After + :::column-end::: +:::row-end::: +:::row::: + :::column span=""::: + :::image type="content" source="media/dependent-library-before-example.png" alt-text="Diagram showing custom library files contained in each pcf component"::: + :::column-end::: + :::column span=""::: + :::image type="content" source="media/dependent-library-after-example.png" alt-text="Diagram showing components calling a shared function from a Library Control"::: + :::column-end::: +:::row-end::: + +To use dependent libraries, you need to: + +- Create a *Library component* that contains the library. This component can provide some functionality or only be a container for the library. +- Configure another component to depend on the library loaded by the library component. + +By default, the library loads when the dependent component loads, but you can [configure it to load on demand](#dependency-as-on-demand-load-of-a-component). + +This way you can independently maintain the library in the Library Control and the dependent controls don't need to have a copy of the library bundled with them. + +## How it works + +You need to add configuration data to your component project so that the build process deploys your libraries the way you want. Set this configuration data by adding or editing the following files: + +- [featureconfig.json](#featureconfigjson) +- [webpack.config.js](#webpackconfigjs) +- Edit the manifest schema to [Register dependencies](#register-dependencies) + +### featureconfig.json + +Add this file to override the default feature flags for a component without modifying the files generated in the `node_modules` folder. + +The following table describes the feature flags you can set in `featureconfig.json`: + +|Name|Description| +|---|---| +|`pcfResourceDependency`|Enables the component to use a library resource.| +|`pcfAllowCustomWebpack`|Enables the component to use a custom web pack. This feature must be enabled for components that define a library resource.| + +By default, these values are `off`. Set them to `on` to override the default. For example: + +```json +{ +  "pcfAllowCustomWebpack": "on" +} +``` + +```json +{ +  "pcfResourceDependency": "on", + "pcfAllowCustomWebpack": "off" +} +``` + +### webpack.config.js + +The build process for components uses [Webpack](https://webpack.js.org/) to bundle the code and dependencies into a deployable asset. To exclude your libraries from this bundling, add a `webpack.config.js` file to the project root folder that specifies the alias of the library as `externals`. [Learn more about the Webpack externals configuration option](https://webpack.js.org/configuration/externals/) + +This file might look like the following when the library alias is `myLib`. + +```typescript +/* eslint-disable */ +"use strict"; + +module.exports = { +  externals: { +    "myLib": "myLib" +  }, +} +``` + + +### Register dependencies + +Use the [dependency element](manifest-schema-reference/dependency.md) within [resources](manifest-schema-reference/resources.md) of the manifest schema. + +```xml + + + + + +``` + +### Dependency as on demand load of a component + +Rather than loading the dependent library when a component loads, you can load the dependent library on demand. Loading on demand provides the flexibility for more complex controls to only load dependencies when they're required, especially if the dependent libraries are large. + +:::image type="content" source="media/dependent-library-on-demand-load.png" alt-text="Diagram showing the use of a function from a library where the library is loaded on demand"::: + + + +To enable on demand loading, you need to: + +1. Add these [platform-action element](manifest-schema-reference/platform-action.md), [feature-usage element](manifest-schema-reference/feature-usage.md), and [uses-feature element](manifest-schema-reference/uses-feature.md) child elements to the [control element](manifest-schema-reference/control.md): + + ```xml + + + + + ``` + +1. Set the `load-type` attribute of the [dependency element](manifest-schema-reference/dependency.md) to `onDemand`. + + ```xml + + ``` + +### Next steps + +Try a tutorial that walks you through creating a dependent library. + +> [!div class="nextstepaction"] +> [Tutorial: Use dependent libraries in a component](tutorial-use-dependent-libraries.md) \ No newline at end of file diff --git a/powerapps-docs/developer/component-framework/events.md b/powerapps-docs/developer/component-framework/events.md new file mode 100644 index 0000000000..728102202c --- /dev/null +++ b/powerapps-docs/developer/component-framework/events.md @@ -0,0 +1,108 @@ +--- +title: Define Events (preview) +description: Explains how to define new events with Power Apps Component Framework (PCF) controls. +author: anuitz +ms.author: anuitz +ms.date: 03/24/2025 +ms.reviewer: jdaly +ms.topic: how-to +ms.subservice: pcf +contributors: + - JimDaly + - kierantpetrie +--- +# Define Events (preview) + +[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] + +A common requirement when building custom components with the Power Apps Component Framework is the ability to react to events generated within the control. These events can be invoked either due to user interaction or programmatically via code. For example, an application can have a code component that lets a user build a product bundle. This component can also raise an event which could show product information in another area of the application. + +## Component Data Flow + +The common data flow for a code component is data flowing from the hosting application into the control as inputs and updated data flowing out of the control to the hosting form or page. This diagram shows the standard pattern of data flow for a typical PCF component: + +:::image type="content" source="media/component-events-onchange-example.png" alt-text="Shows that data update from the code component to the binding field triggers the `OnChange` event"::: + +The data update from the code component to the bound field triggers the `OnChange` event. For most component scenarios, this is enough and makers just add a handler to trigger subsequent actions. However, a more complicated control might require events to be raised that aren't field updates. The event mechanism allows code components to define events that have separate event handlers. + +## Using events + +The event mechanism in PCF is based on the standard event model in JavaScript. The component can define events in the manifest file and raise these events in the code. The hosting application can listen to these events and react to them. + +The component defines events using the [event element](manifest-schema-reference/event.md) in the manifest file. This data allows the respective hosting application to react to events in different ways. + +```xml + + + +``` + +Canvas apps react to the event using Power Fx expressions: + +:::image type="content" source="media\custom-events-in-canvas-designer.png" alt-text="Shows the custom events in the canvas apps designer"::: + +Model Driven Apps use the [addEventHandler method](../model-driven-apps/clientapi/reference/controls/addeventhandler.md) to associate event handlers to custom events for a component. + +```javascript + const controlName1 = "cr116_personid"; + + this.onLoad = function (executionContext) { + const formContext = executionContext.getFormContext(); + + const sampleControl1 = formContext.getControl(controlName1); + sampleControl1.addEventHandler("customEvent1", this.onSampleControl1CustomEvent1); + sampleControl1.addEventHandler("customEvent2", this.onSampleControl1CustomEvent2); + } +``` + +> [!NOTE] +> These events occur separately for each instance of the code component in the app. + +## Defining an event for model-driven apps + +For model-driven apps you can pass a payload with the event allowing for more complex scenarios. For example in the diagram below the component passes a callback function in the event allowing the script handling to call back to the component. + +:::image type="content" source="media/passing-payload-in-events.png" alt-text="In this example, the component passes a callback function in the event allowing the script handling to call back to the component"::: + + + +```javascript +this.onSampleControl1CustomEvent1 = function (params) { + //alert(`SampleControl1 Custom Event 1: ${params}`); + alert(`SampleControl1 Custom Event 1`); +}.bind(this); + +this.onSampleControl2CustomEvent2 = function (params) { +alert(`SampleControl2 Custom Event 2: ${params.message}`); +// prevent the default action for the event +params.callBackFunction(); +} +``` + +## Defining an event for canvas apps + +Makers configure an event using Power Fx on the PCF control in the properties pane. + +### Calling an event + +See how to call an event in [Events](reference/events.md). + +### Next steps + +> [!div class="nextstepaction"] +> [Tutorial: Define a custom event in a component](tutorial-define-event.md) diff --git a/powerapps-docs/developer/component-framework/fluent-modern-theming.md b/powerapps-docs/developer/component-framework/fluent-modern-theming.md index 05ac01726e..3ae93e9599 100644 --- a/powerapps-docs/developer/component-framework/fluent-modern-theming.md +++ b/powerapps-docs/developer/component-framework/fluent-modern-theming.md @@ -9,7 +9,7 @@ ms.reviewer: jdaly ms.custom: - "dyn365-a11y" - "dyn365-developer" -ms.topic: article +ms.topic: how-to ms.subservice: pcf contributors: - HemantGaur diff --git a/powerapps-docs/developer/component-framework/implementing-controls-using-typescript.md b/powerapps-docs/developer/component-framework/implementing-controls-using-typescript.md index da8603d795..47fd7bfbe2 100644 --- a/powerapps-docs/developer/component-framework/implementing-controls-using-typescript.md +++ b/powerapps-docs/developer/component-framework/implementing-controls-using-typescript.md @@ -5,7 +5,7 @@ author: anuitz ms.author: anuitz ms.date: 02/06/2023 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: pcf contributors: - JimDaly diff --git a/powerapps-docs/developer/component-framework/import-custom-controls.md b/powerapps-docs/developer/component-framework/import-custom-controls.md index 2633d129c2..98fc646abe 100644 --- a/powerapps-docs/developer/component-framework/import-custom-controls.md +++ b/powerapps-docs/developer/component-framework/import-custom-controls.md @@ -5,7 +5,7 @@ author: anuitz ms.author: anuitz ms.date: 12/04/2024 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: pcf contributors: - JimDaly diff --git a/powerapps-docs/developer/component-framework/issues-and-workarounds.md b/powerapps-docs/developer/component-framework/issues-and-workarounds.md index 7bebadc833..2c81b5f21a 100644 --- a/powerapps-docs/developer/component-framework/issues-and-workarounds.md +++ b/powerapps-docs/developer/component-framework/issues-and-workarounds.md @@ -3,7 +3,7 @@ title: Common issues and workarounds (Power Apps Component Framework) | Microsof description: Provides information on known issues and workarounds some come across while working with Power Apps component framework and CLI author: anuitz ms.author: anuitz -ms.date: 10/28/2024 +ms.date: 07/01/2025 ms.reviewer: jdaly ms.topic: article ms.subservice: pcf @@ -164,13 +164,13 @@ Power Apps component framework dataset component currently does not properly sho No workaround as of now. We are working on pushing a fix to our deployment trains.--> -## Authentication for third party services fails in Canvas +## Custom authentication fails in Canvas -PCF authentication for third parties isn't supported. +Custom authentication within PCF controls is not supported within canvas apps. **Workaround** -Use combination of a [custom page](../../maker/model-driven-apps/model-app-page-overview.md) and a [connector](../../maker/canvas-apps/connections-list.md). +Use [connectors](../../maker/canvas-apps/connections-list.md) to handle authentication. ## Control can't finish loading diff --git a/powerapps-docs/developer/component-framework/limitations.md b/powerapps-docs/developer/component-framework/limitations.md index 5968350865..6785aac149 100644 --- a/powerapps-docs/developer/component-framework/limitations.md +++ b/powerapps-docs/developer/component-framework/limitations.md @@ -3,7 +3,7 @@ title: "Limitations of Power Apps component framework | MicrosoftDocs" description: "Limitations using Power Apps component framework" author: anuitz ms.author: anuitz -ms.date: 12/04/2024 +ms.date: 07/01/2025 ms.reviewer: jdaly ms.topic: article ms.subservice: pcf @@ -21,6 +21,8 @@ With Power Apps component framework, you can create your own code components to 3. Code components should not use the HTML web storage objects, like `window.localStorage` and `window.sessionStorage`, to store data. Data stored locally on the user's browser or mobile client is not secure and not guaranteed to be available reliably. +4. Custom auth in code components is not supported in Power Apps canvas applications. Use connectors to get data and take actions instead. + ## Related topics [Power Apps component framework API reference](reference/index.md)
diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/code.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/code.md index c9eb4335b1..f74368febc 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/code.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/code.md @@ -40,7 +40,7 @@ Model-driven and canvas apps ``` -### Related topics +### Related articles [Power Apps component framework manifest schema reference](index.md)
[Power Apps component framework API reference](../reference/index.md)
diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/control.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/control.md index e7d324b857..40b3a25a6d 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/control.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/control.md @@ -1,9 +1,9 @@ --- -title: Control Element | Microsoft Docs -description: Defines the component's namespace, version and display information. +title: control Element | Microsoft Docs +description: Defines the component's namespace, version, and display information. ms.author: anuitz author: anuitz -ms.date: 12/04/2023 +ms.date: 03/24/2025 ms.reviewer: jdaly ms.topic: reference ms.subservice: pcf @@ -26,9 +26,9 @@ Model-driven and canvas apps |`namespace`|Defines the object prototype of the component|[!INCLUDE [alphanumerictype-description](includes/alphanumerictype-description.md)]|Yes|Model-driven and canvas apps | |`constructor`|A method for initializing the object|[!INCLUDE [alphanumerictype-description](includes/alphanumerictype-description.md)]|Yes|Model-driven and canvas apps | |`control-type`|Whether the control is a standard control or a React control. The value of `virtual` indicates a React control using platform React library. Virtual controls are a feature in public preview. More information: [React controls & platform libraries](../react-controls-platform-libraries.md)|[!INCLUDE [controltype-description](includes/controltype-description.md)]|No|Model-driven and canvas apps | -|`description-key`|Defines the description of the component that will be seen on the UI.|`string`|No|Model-driven and canvas apps | -|`display-name-key`|Defines the name of the control that is displayed on the UI.|`string`|Yes|Model-driven and canvas apps | -|`preview-image`|Image that will be used on the customization screens to show a preview of the component.|`string`|No|Model-driven apps| +|`description-key`|Defines the description of the component visible in the UI.|`string`|No|Model-driven and canvas apps | +|`display-name-key`|Defines the name of the control visible in the UI.|`string`|Yes|Model-driven and canvas apps | +|`preview-image`|Image used on the customization screens to show a preview of the component.|`string`|No|Model-driven apps| |`version`|Defines the version of the component defined in [Semantic Versioning](https://semver.org)|`string`|Yes|Model-driven and canvas apps | @@ -48,6 +48,7 @@ Model-driven and canvas apps |[resources](resources.md)|[!INCLUDE [resources-description](includes/resources-description.md)]|1| |[type-group](type-group.md)|[!INCLUDE [type-group-description](includes/type-group-description.md)]|0 or more| |[property-dependencies](property-dependencies.md)|[!INCLUDE [property-dependencies-description](includes/property-dependencies-description.md)]|0 or more| +|[platform-action](platform-action.md)|[!INCLUDE [platform-action-description](includes/platform-action-description.md)]|0 or 1| ## Example @@ -62,10 +63,10 @@ Model-driven and canvas apps ``` -### Related topics +### Related articles -[Power Apps component framework manifest schema reference](index.md)
-[Power Apps component framework API reference](../reference/index.md)
+[Power Apps component framework manifest schema reference](index.md) +[Power Apps component framework API reference](../reference/index.md) [Power Apps component framework overview](../overview.md) diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/css.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/css.md index c7f7a9fd29..41e81da5d8 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/css.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/css.md @@ -41,7 +41,7 @@ Model-driven and canvas apps ``` -### Related topics +### Related articles [Power Apps component framework manifest schema reference](index.md)
[Power Apps component framework API reference](../reference/index.md)
diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/dependency.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/dependency.md new file mode 100644 index 0000000000..afaef96415 --- /dev/null +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/dependency.md @@ -0,0 +1,54 @@ +--- +title: dependency Element | Microsoft Docs +description: Refers to a library in another component that this component depends on. +author: anuitz +ms.author: anuitz +ms.date: 03/24/2025 +ms.reviewer: jdaly +ms.topic: reference +ms.subservice: pcf +contributors: + - JimDaly + - kierantpetrie +--- + +# dependency element + +[!INCLUDE [dependency-description](includes/dependency-description.md)] + +## Available for + +Model-driven apps + +## Parameters + +|Name|Description|Type|Required|Available for| +|--|--|--|--|-----| +|`type`|Set to `control`|`String`|Yes|Model-driven apps | +|`name`|The schema name name of the library component|`String`|Yes|Model-driven apps | +|`order`|The order in which the dependent library should load|`Positive integer`|No|Model-driven apps | +|`load-type`|Set to `onDemand`|`String`|No|Model-driven apps | + +## Parent Elements + +|Element|Description| +|--|--| +|[resources](resources.md)|[!INCLUDE [resources-description](includes/resources-description.md)]| + +### Example + +```XML + +``` + +### Related articles + +[Dependent Libraries (preview)](../dependent-libraries.md) +[Power Apps component framework manifest schema reference](index.md) +[Power Apps component framework API reference](../reference/index.md) +[Power Apps component framework overview](../overview.md) + +[!INCLUDE[footer-include](../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/domain.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/domain.md index ed20473f26..900b406a9c 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/domain.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/domain.md @@ -32,7 +32,7 @@ Canvas apps ``` -### Related topics +### Related articles [Power Apps component framework manifest schema reference](index.md)
[Power Apps component framework API reference](../reference/index.md)
diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/event.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/event.md index 008ea5e751..a956918404 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/event.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/event.md @@ -4,7 +4,7 @@ description: Defines a Power FX expression that can be configured within Power A author: anuitz ms.author: anuitz ms.reviewer: jdaly -ms.date: 11/20/2023 +ms.date: 03/24/2025 ms.topic: reference ms.subservice: pcf contributors: @@ -17,15 +17,15 @@ contributors: ## Available for -Canvas apps +Canvas and model-driven apps ## Properties |Name |Description |Type |Required | Available for| |------|------|------|-------|------------| -|`name` |Name of the event |`string` |Yes |Canvas apps| -|`display-name-key` |Used in the customization screens as localized strings that describes the name of the event. |`string` |Yes |Canvas apps| -|`description-key` |Used in the customization screens as localized strings that describes the description of the event. |`string` |Optional |Canvas apps| +|`name` |Name of the event |`string` |Yes |Canvas and model-driven apps| +|`display-name-key` |Used in the customization screens as localized strings that describe the name of the event. |`string` |Yes |Canvas apps| +|`description-key` |Used in the customization screens as localized strings that describe the description of the event. |`string` |Optional |Canvas apps| |`pfx-default-value` |The default Power Fx expression value provided to the component. |See [Remarks](#remarks) |Optional |Canvas apps| ### Remarks @@ -47,7 +47,7 @@ Canvas apps description-key="OnSelectCustomButton_Desc_Key" /> ``` -### Related topics +### Related articles [Power Apps component framework manifest schema reference](index.md) [Power Apps component framework API reference](../reference/index.md) diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/img.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/img.md index 0bfe4dd696..0dd0f06245 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/img.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/img.md @@ -41,7 +41,7 @@ Model-driven apps ``` -### Related topics +### Related articles [Power Apps component framework manifest schema reference](index.md)
[Power Apps component framework API reference](../reference/index.md)
diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/includes/control-description.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/includes/control-description.md index 4292509fd2..ccfe1d6eaf 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/includes/control-description.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/includes/control-description.md @@ -1 +1 @@ -Defines the component's namespace, version and display information. +Defines the component's namespace, version, and display information. diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/includes/dependency-description.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/includes/dependency-description.md new file mode 100644 index 0000000000..058e1f200d --- /dev/null +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/includes/dependency-description.md @@ -0,0 +1 @@ +Refers to a library in another component that this component depends on. \ No newline at end of file diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/includes/platform-action-description.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/includes/platform-action-description.md new file mode 100644 index 0000000000..cb2479ec97 --- /dev/null +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/includes/platform-action-description.md @@ -0,0 +1 @@ +Used to specify that control dependencies load on demand instead of when the control is loaded. \ No newline at end of file diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/index.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/index.md index d2383ce789..ef6e912509 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/index.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/index.md @@ -3,7 +3,7 @@ title: Power Apps component framework manifest schema reference | Microsoft Docs description: This section contains reference documentation for manifest schema generated using Microsoft Power Platform CLI. author: anuitz ms.author: anuitz -ms.date: 02/22/2023 +ms.date: 03/24/2025 ms.reviewer: jdaly ms.topic: reference ms.subservice: pcf @@ -25,11 +25,13 @@ This section contains reference documentation for manifest schema generated usin |[css](css.md)|[!INCLUDE [css-description](includes/css-description.md)]|Model-driven and canvas apps| |[data-set](data-set.md)|[!INCLUDE [data-set-description](includes/data-set-description.md)]|Model-driven apps| |[domain](domain.md)|[!INCLUDE [domain-description](includes/domain-description.md)]|Canvas apps| +|[dependency](dependency.md)|[!INCLUDE [dependency-description](includes/dependency-description.md)]|Model-driven apps| |[external-service-usage](external-service-usage.md)|[!INCLUDE [external-service-usage-description](includes/external-service-usage-description.md)]|Canvas apps| |[event element](event.md)|[!INCLUDE [event-description](includes/event-description.md)]|Canvas apps| |[feature-usage](feature-usage.md)|The feature-usage element acts as a wrapper around the `uses-feature` elements, which themselves allow developers to declare which features their component wants to use. If there are no uses-feature elements defined, the feature-usage element is not required.|Model-driven apps| |[img](img.md)|[!INCLUDE [img-description](includes/img-description.md)]|Model-driven apps| |[manifest](manifest.md)|Manifest is the metadata file that defines a component. It is an XML document that describes
- The namespace of the component.
- The kind of data it can be configured, either a field or a data-set.
- Any properties that can be configured in the application when the component is added.
- A list of resource files that the component needs.
- One of them must be a JavaScript web resource. This JavaScript must include a function that will instantiate an object. This implements an interface that exposes methods that are required for the component to work. This is called the component implementation library.
- The name of a JavaScript function in the component implementation library that will return an object that applies the required interface.
When someone configures a component in the application, the data in the manifest filters out the available components so that only valid components for the context are available for configuration. The properties defined in the manifest for a component are rendered as configuration fields so that the person configuring the control can specify values. These property values are then available to your component function at run time.|Model-driven and canvas apps| +|[platform-action](platform-action.md)|[!INCLUDE [platform-action-description](includes/platform-action-description.md)]|Model-driven and canvas apps| |[platform-library](platform-library.md)|[!INCLUDE [platform-library-description](includes/platform-library-description.md)]|Model-driven and canvas apps| |[property-dependencies](property-dependencies.md)|[!INCLUDE [property-dependencies-description](includes/property-dependencies-description.md)]|Canvas apps| |[property-dependency](property-dependency.md)|[!INCLUDE [property-dependency-description](includes/property-dependency-description.md)]|Canvas apps| @@ -37,15 +39,16 @@ This section contains reference documentation for manifest schema generated usin |[property](property.md)|[!INCLUDE [property-description](includes/property-description.md)]|Model-driven and canvas apps| |[resources](resources.md)|[!INCLUDE [resources-description](includes/resources-description.md)]|Model-driven and canvas apps| |[resx](resx.md)|[!INCLUDE [resx-description](includes/resx-description.md)]|Model-driven and canvas apps| -|[type-group](type-group.md)|[!INCLUDE [type-group-description](includes/type-group-description.md)]|Model-driven and canvas apps| |[type](type.md)|[!INCLUDE [type-description](includes/type-description.md)]|Model-driven apps| +|[type-group](type-group.md)|[!INCLUDE [type-group-description](includes/type-group-description.md)]|Model-driven and canvas apps| +|[types](types.md)|[!INCLUDE [types-description](includes/types-description.md)]|Model-driven and canvas apps| |[uses-feature](uses-feature.md)|[!INCLUDE [uses-feature-description](includes/uses-feature-description.md)]|Model-driven apps| -### Related topics +### Related articles -[Power Apps component framework manifest schema reference](index.md)
-[Power Apps component framework API reference](../reference/index.md)
+[Power Apps component framework manifest schema reference](index.md) +[Power Apps component framework API reference](../reference/index.md) [Power Apps component framework overview](../overview.md) [!INCLUDE[footer-include](../../../includes/footer-banner.md)] \ No newline at end of file diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/manifest.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/manifest.md index 146d87a1fe..3c1188f81e 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/manifest.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/manifest.md @@ -59,7 +59,7 @@ Model-driven and canvas apps ``` -### Related topics +### Related articles [Power Apps component framework manifest schema reference](index.md)
[Power Apps component framework API reference](../reference/index.md)
diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/platform-action.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/platform-action.md new file mode 100644 index 0000000000..34be66278f --- /dev/null +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/platform-action.md @@ -0,0 +1,48 @@ +--- +title: platform-action Element | Microsoft Docs +description: "Used to specify that control dependencies load on demand instead of when the control is loaded." +author: anuitz +ms.author: anuitz +ms.date: 03/24/2025 +ms.reviewer: jdaly +ms.topic: reference +ms.subservice: pcf +contributors: + - JimDaly + - kierantpetrie +--- + +# platform-action element + +[!INCLUDE [platform-action-description](includes/platform-action-description.md)] + +## Available for + +Model-driven apps + +## Parameters + +|Name|Description|Type|Required|Available for| +|--|--|--|--|--------| +|`action-type`| Set to `afterPageLoad` | string | No | Model-driven apps| + +## Parent Elements + +|Element|Description| +|--|--| +|[control](control.md)|[!INCLUDE [control-description](includes/control-description.md)]| + +### Example + +```XML + +``` + +### Related articles + +[Dependent Libraries (preview)](../dependent-libraries.md) +[Power Apps component framework manifest schema reference](index.md) +[Power Apps component framework API reference](../reference/index.md) +[Power Apps component framework overview](../overview.md) + +[!INCLUDE [footer-banner](../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/property-dependencies.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/property-dependencies.md index 26fbd94495..51f83447ac 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/property-dependencies.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/property-dependencies.md @@ -39,7 +39,7 @@ Canvas apps ``` -### Related topics +### Related articles [Power Apps component framework manifest schema reference](index.md)
[Power Apps component framework API reference](../reference/index.md)
diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/property-dependency.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/property-dependency.md index 01db1a0f14..9d647c7234 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/property-dependency.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/property-dependency.md @@ -41,7 +41,7 @@ Canvas apps ``` -### Related topics +### Related articles [Power Apps component framework manifest schema reference](index.md)
[Power Apps component framework API reference](../reference/index.md)
diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/property-set.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/property-set.md index 9b8b44710c..865c9f43c9 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/property-set.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/property-set.md @@ -49,7 +49,7 @@ The `of-type` attribute value must be one of the following: [!INCLUDE [type-table](includes/type-table.md)] -### Related topics +### Related articles [Power Apps component framework manifest schema reference](index.md)
[Power Apps component framework API reference](../reference/index.md)
diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/property.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/property.md index 745be170be..1827319b22 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/property.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/property.md @@ -61,7 +61,7 @@ The `of-type` property value must be one of the following: description-key="myFirstProperty_Desc_Key" of-type="SingleLine.Text" usage="bound" required="true" /> ``` -### Related topics +### Related articles [Power Apps component framework manifest schema reference](index.md)
[Power Apps component framework API reference](../reference/index.md)
diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/resources.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/resources.md index 08337e5f93..57523f466d 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/resources.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/resources.md @@ -1,9 +1,9 @@ --- -title: Resources Element | Microsoft Docs +title: resources Element | Microsoft Docs description: The resources node in the component manifest refers to the resource files that component requires to implement it's visualization. author: anuitz ms.author: anuitz -ms.date: 05/27/2022 +ms.date: 03/24/2025 ms.reviewer: jdaly ms.topic: reference ms.subservice: pcf @@ -34,6 +34,7 @@ Model-driven and canvas apps |[img](img.md)|[!INCLUDE [img-description](includes/img-description.md)]|0 or more| |[resx](resx.md)|[!INCLUDE [resx-description](includes/resx-description.md)]|0 or more| |[platform-library](platform-library.md)|[!INCLUDE [platform-library-description](includes/platform-library-description.md)]|0 or more| +|[dependency](dependency.md)|[!INCLUDE [dependency-description](includes/dependency-description.md)]|0 or more| ## Example @@ -45,10 +46,10 @@ Model-driven and canvas apps ``` -### Related topics +### Related articles -[Power Apps component framework manifest schema reference](index.md)
-[Power Apps component framework API reference](../reference/index.md)
+[Power Apps component framework manifest schema reference](index.md) +[Power Apps component framework API reference](../reference/index.md) [Power Apps component framework overview](../overview.md) [!INCLUDE[footer-include](../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/resx.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/resx.md index 44a15c1971..dda55a3a91 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/resx.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/resx.md @@ -44,7 +44,7 @@ Model-driven and canvas apps ``` -### Related topics +### Related articles [Power Apps component framework manifest schema reference](index.md)
[Power Apps component framework API reference](../reference/index.md)
diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/type-group.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/type-group.md index a72e00e0a9..6ef35895de 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/type-group.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/type-group.md @@ -85,7 +85,7 @@ While the following would again receive "Decimal": ``` -### Related topics +### Related articles [Power Apps component framework manifest schema reference](index.md)
[Power Apps component framework API reference](../reference/index.md)
diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/type.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/type.md index 1861095842..dc5d402dc8 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/type.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/type.md @@ -40,7 +40,7 @@ This element contains a `string` with one of the following values:
``` -### Related topics +### Related articles [Power Apps component framework manifest schema reference](index.md)
[Power Apps component framework API reference](../reference/index.md)
diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/types.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/types.md index 35c205252f..880da2ded2 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/types.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/types.md @@ -30,7 +30,7 @@ Model-driven and canvas apps |[type](type.md)|[!INCLUDE [type-description](includes/type-description.md)]|0 or more| -### Related topics +### Related articles [Power Apps component framework manifest schema reference](index.md)
[Power Apps component framework API reference](../reference/index.md)
diff --git a/powerapps-docs/developer/component-framework/manifest-schema-reference/uses-feature.md b/powerapps-docs/developer/component-framework/manifest-schema-reference/uses-feature.md index fdfc9ba7f7..ba912b2e76 100644 --- a/powerapps-docs/developer/component-framework/manifest-schema-reference/uses-feature.md +++ b/powerapps-docs/developer/component-framework/manifest-schema-reference/uses-feature.md @@ -3,7 +3,7 @@ title: uses-feature | Microsoft Docs description: Indicates which feature their components want to use. author: anuitz ms.author: anuitz -ms.date: 05/27/2022 +ms.date: 03/24/2025 ms.reviewer: jdaly ms.topic: reference ms.subservice: pcf @@ -19,18 +19,20 @@ contributors: Model-driven apps +## Parameters + +|Element|Description|Type|Required| +|--|--|---|----| +|`name`|Name of the feature that is declared in the component|`string`|Yes| +|`required`|Indicates if the component requires that feature or not|`boolean`|Yes| + ## Parent Element |Element|Description| |--|--| -|feature-usage|The feature-usage element acts as a wrapper around the uses-feature elements, which themselves allow developers to declare which features their component wants to use. If there are no uses-feature elements defined, the feature-usage element is not required.| +|[feature-usage](feature-usage.md)|[!INCLUDE [feature-usage-description](includes/feature-usage-description.md)]| -## Child Elements -|Element|Description|Type|Required| -|--|--|---|----| -|name|Name of the feature that is declared in the component|`string`|Yes| -|required|Indicates if the component requires that feature or not|`boolean`|Yes| ### Example @@ -40,18 +42,18 @@ Model-driven apps ``` -The table below shows the relationship of these settings to what happens in the code at runtime whether the feature function will be available to call based upon the uses-feature settings defined in the manifest. +The following table shows the relationship of these settings to what happens in the code at runtime whether the feature function is available to call based upon the `uses-feature` settings defined in the manifest. |Manifest|If Host supports|If Host doesn't support| |----|----|-----| -|`uses-feature name="device.captureImage" required="true"`|`Context.device.captureImage != null`, no check needed.|Warning at design time. Component load will fail at runtime.| +|`uses-feature name="device.captureImage" required="true"`|`Context.device.captureImage != null`, no check needed.|Warning at design time. Component load fails at runtime.| |`uses-feature name="device.captureImage" required="false"`|`Context.device.captureImage != null`|`Context.device.captureImage == null`, component can adaptively check this at runtime. | |(none)|`Context.device.captureImage == null` |`Context.device.captureImage == null` | -### Related topics +### Related articles -[Power Apps component framework manifest schema reference](index.md)
-[Power Apps component framework API reference](../reference/index.md)
+[Power Apps component framework manifest schema reference](index.md) +[Power Apps component framework API reference](../reference/index.md) [Power Apps component framework overview](../overview.md) [!INCLUDE[footer-include](../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/component-framework/media/component-events-onchange-example.png b/powerapps-docs/developer/component-framework/media/component-events-onchange-example.png new file mode 100644 index 0000000000..0a8d70e3e9 Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/component-events-onchange-example.png differ diff --git a/powerapps-docs/developer/component-framework/media/custom-events-in-canvas-designer.png b/powerapps-docs/developer/component-framework/media/custom-events-in-canvas-designer.png new file mode 100644 index 0000000000..6088a7caf5 Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/custom-events-in-canvas-designer.png differ diff --git a/powerapps-docs/developer/component-framework/media/define-custom-event-tutorial-diagram.png b/powerapps-docs/developer/component-framework/media/define-custom-event-tutorial-diagram.png new file mode 100644 index 0000000000..da4b2604d9 Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/define-custom-event-tutorial-diagram.png differ diff --git a/powerapps-docs/developer/component-framework/media/dependent-library-after-example.png b/powerapps-docs/developer/component-framework/media/dependent-library-after-example.png new file mode 100644 index 0000000000..da74bcf518 Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/dependent-library-after-example.png differ diff --git a/powerapps-docs/developer/component-framework/media/dependent-library-before-example.png b/powerapps-docs/developer/component-framework/media/dependent-library-before-example.png new file mode 100644 index 0000000000..d7c9778dd5 Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/dependent-library-before-example.png differ diff --git a/powerapps-docs/developer/component-framework/media/dependent-library-libprojectview.png b/powerapps-docs/developer/component-framework/media/dependent-library-libprojectview.png new file mode 100644 index 0000000000..3567011838 Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/dependent-library-libprojectview.png differ diff --git a/powerapps-docs/developer/component-framework/media/dependent-library-loaded.png b/powerapps-docs/developer/component-framework/media/dependent-library-loaded.png new file mode 100644 index 0000000000..dd4f7bcf45 Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/dependent-library-loaded.png differ diff --git a/powerapps-docs/developer/component-framework/media/dependent-library-loading.png b/powerapps-docs/developer/component-framework/media/dependent-library-loading.png new file mode 100644 index 0000000000..cf9de9dd3d Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/dependent-library-loading.png differ diff --git a/powerapps-docs/developer/component-framework/media/dependent-library-on-demand-load.png b/powerapps-docs/developer/component-framework/media/dependent-library-on-demand-load.png new file mode 100644 index 0000000000..49db58ec8b Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/dependent-library-on-demand-load.png differ diff --git a/powerapps-docs/developer/component-framework/media/dependent-library-running.png b/powerapps-docs/developer/component-framework/media/dependent-library-running.png new file mode 100644 index 0000000000..f728924c7b Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/dependent-library-running.png differ diff --git a/powerapps-docs/developer/component-framework/media/event_canvas_sample_app.png b/powerapps-docs/developer/component-framework/media/event_canvas_sample_app.png new file mode 100644 index 0000000000..c707ad2bc8 Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/event_canvas_sample_app.png differ diff --git a/powerapps-docs/developer/component-framework/media/event_canvas_sample_app_customevents.png b/powerapps-docs/developer/component-framework/media/event_canvas_sample_app_customevents.png new file mode 100644 index 0000000000..8f2a84e34f Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/event_canvas_sample_app_customevents.png differ diff --git a/powerapps-docs/developer/component-framework/media/event_canvas_sample_app_displaymode.png b/powerapps-docs/developer/component-framework/media/event_canvas_sample_app_displaymode.png new file mode 100644 index 0000000000..847251c1b7 Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/event_canvas_sample_app_displaymode.png differ diff --git a/powerapps-docs/developer/component-framework/media/event_canvas_sample_app_visible.png b/powerapps-docs/developer/component-framework/media/event_canvas_sample_app_visible.png new file mode 100644 index 0000000000..bcfed542b6 Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/event_canvas_sample_app_visible.png differ diff --git a/powerapps-docs/developer/component-framework/media/event_mda_sample_jsbinding.png b/powerapps-docs/developer/component-framework/media/event_mda_sample_jsbinding.png new file mode 100644 index 0000000000..35a4162b95 Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/event_mda_sample_jsbinding.png differ diff --git a/powerapps-docs/developer/component-framework/media/event_mda_sample_param.png b/powerapps-docs/developer/component-framework/media/event_mda_sample_param.png new file mode 100644 index 0000000000..0622681cb7 Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/event_mda_sample_param.png differ diff --git a/powerapps-docs/developer/component-framework/media/passing-payload-in-events.png b/powerapps-docs/developer/component-framework/media/passing-payload-in-events.png new file mode 100644 index 0000000000..537f7e9bcb Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/passing-payload-in-events.png differ diff --git a/powerapps-docs/developer/component-framework/media/src/define-custom-event-tutorial-diagram.vsdx b/powerapps-docs/developer/component-framework/media/src/define-custom-event-tutorial-diagram.vsdx new file mode 100644 index 0000000000..e731bf7d36 Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/src/define-custom-event-tutorial-diagram.vsdx differ diff --git a/powerapps-docs/developer/component-framework/media/src/passing-payload-in-events.vsdx b/powerapps-docs/developer/component-framework/media/src/passing-payload-in-events.vsdx new file mode 100644 index 0000000000..85cd0b240e Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/src/passing-payload-in-events.vsdx differ diff --git a/powerapps-docs/developer/component-framework/media/src/pcf_events_dependencies_diagrams.vsdx b/powerapps-docs/developer/component-framework/media/src/pcf_events_dependencies_diagrams.vsdx new file mode 100644 index 0000000000..0cfe7cc936 Binary files /dev/null and b/powerapps-docs/developer/component-framework/media/src/pcf_events_dependencies_diagrams.vsdx differ diff --git a/powerapps-docs/developer/component-framework/react-controls-platform-libraries.md b/powerapps-docs/developer/component-framework/react-controls-platform-libraries.md index 039030cad8..c9320ae428 100644 --- a/powerapps-docs/developer/component-framework/react-controls-platform-libraries.md +++ b/powerapps-docs/developer/component-framework/react-controls-platform-libraries.md @@ -9,7 +9,7 @@ ms.reviewer: jdaly ms.custom: - "dyn365-a11y" - "dyn365-developer" -ms.topic: article +ms.topic: how-to ms.subservice: pcf contributors: - miglisic diff --git a/powerapps-docs/developer/component-framework/reference/context.md b/powerapps-docs/developer/component-framework/reference/context.md index 7cdc2f99c5..714ab5fb54 100644 --- a/powerapps-docs/developer/component-framework/reference/context.md +++ b/powerapps-docs/developer/component-framework/reference/context.md @@ -3,7 +3,7 @@ title: Context (Power Apps component framework API reference) | Microsoft Docs description: Provides all the properties and methods available in the Power Apps component framework author: anuitz ms.author: anuitz -ms.date: 05/27/2022 +ms.date: 06/16/2025 ms.reviewer: jdaly ms.topic: reference ms.subservice: pcf @@ -28,6 +28,12 @@ Model-driven apps, canvas apps, & portals. [!INCLUDE [client-description](includes/client-description.md)] **Type**: [Client](client.md) +### copilot + +[!INCLUDE [copilot-description](includes/copilot-description.md)] + +**Type**: [Copilot](copilot.md) + ### device [!INCLUDE [device-description](includes/device-description.md)] diff --git a/powerapps-docs/developer/component-framework/reference/copilot.md b/powerapps-docs/developer/component-framework/reference/copilot.md new file mode 100644 index 0000000000..d1a941e6fc --- /dev/null +++ b/powerapps-docs/developer/component-framework/reference/copilot.md @@ -0,0 +1,41 @@ +--- +title: Copilot (Power Apps component framework API reference) (preview) +description: Provides methods to execute registered Microsoft Copilot Studio Topics. +author: aorth +ms.author: aorth +ms.date: 06/16/2025 +ms.reviewer: jdaly +ms.topic: reference +ms.subservice: pcf +contributors: + - JimDaly +--- + +# Copilot (Power Apps component framework API reference) (preview) + +[!INCLUDE [preview-note-pp](~/../shared-content/shared/preview-includes/preview-note-pp.md)] + +[!INCLUDE [copilot-description](includes/copilot-description.md)] + +## Available for + +Model-driven apps + +## Syntax + +`context.copilot` + +## Methods + +| Method| Description| +| --- | --- | +| [executeEvent](copilot/executeevent.md) | [!INCLUDE [executeevent-description](copilot/includes/executeevent-description.md)] | +| [executePrompt](copilot/executeprompt.md) | [!INCLUDE [executeprompt-description](copilot/includes/executeprompt-description.md)] | + + +### Related articles + +[Power Apps component framework API reference](../reference/index.md) +[Power Apps component framework overview](../overview.md) + +[!INCLUDE[footer-include](../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/component-framework/reference/copilot/executeevent.md b/powerapps-docs/developer/component-framework/reference/copilot/executeevent.md new file mode 100644 index 0000000000..9f55710d90 --- /dev/null +++ b/powerapps-docs/developer/component-framework/reference/copilot/executeevent.md @@ -0,0 +1,73 @@ +--- +title: executeEvent (Power Apps component framework API reference) (preview) +description: Executes a Microsoft Copilot Studio topic based on the registered Event Name. +author: adrianorth +ms.author: aorth +ms.date: 07/07/2025 +ms.reviewer: jdaly +ms.topic: reference +ms.subservice: pcf +contributors: + - JimDaly +--- + +# executeEvent (preview) + +[!INCLUDE [preview-note-pp](~/../shared-content/shared/preview-includes/preview-note-pp.md)] + +[!INCLUDE[./includes/executeevent-description.md](./includes/executeevent-description.md)] + +## Available for + +Model-driven apps + +## Syntax + +`context.copilot.executeEvent(eventName, eventParameters).then(successCallback, errorCallback);` + +## Parameters + +| Parameter Name| Type| Required | Description| +| --- | --- | --- | --- | +| `eventName` | string | Yes | Event Name registered in the Copilot Studio topic | +| `eventParameters` | Unknown | Yes | Parameters needed for the event execution. These depend on what the topic does.| +| `successCallback` | Function | Yes | A function to call when the operation succeeds.| +| `errorCallback` | Function | Yes | A function to call when the operation fails.| + +## Return Value + +Type: `Promise<`[MCSResponse](mcsresponse.md)`>` + +See [Promise](https://developer.mozilla.org/docs/Web/JavaScript/reference/Global_Objects/Promise) and [MCSResponse](mcsresponse.md) + +## Accessing app context + +When an Agent API is called, context for the app is passed to the Copilot Studio topic through a set of variables. The following are context variables available as [Copilot Studio global variables](/microsoft-copilot-studio/authoring-variables-bot). + +[!INCLUDE [app-context-table](../../../model-driven-apps/clientapi/includes/app-context-table.md)] + +For example, using `Global.PA__Copilot_Model_PageContext.pageContext.id.guid` and `Global.PA__Copilot_Model_PageContext.pageContext.entityTypeName`, the form's record can be retrieved from Dataverse. + +[!INCLUDE [accessing-event-parameters](../../../model-driven-apps/clientapi/includes/accessing-event-parameters.md)] + +### Example + +In Microsoft Copilot Studio, where a topic is registered that accepts an ID (entity record ID) as an input parameter. Based on the input, it retrieves the related activities of that entity record and returns the results as an Copilot Studio event activity. The PCF context API enables the execution of these methods within the context of PCF controls. + +```javascript +const response = await context.copilot.executeEvent( + "Microsoft.PowerApps.Copilot.RelatedActivities", + { id:"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"}); +``` + +[!INCLUDE [accessing-event-parameters-response](../../../model-driven-apps/clientapi/includes/accessing-event-parameters-response.md)] + + +### Related articles + +[Copilot](../copilot.md) +[executePrompt](executeprompt.md) +[Power Apps component framework API reference](../../reference/index.md) +[Power Apps component framework overview](../../overview.md) + +[!INCLUDE[footer-include](../../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/component-framework/reference/copilot/executeprompt.md b/powerapps-docs/developer/component-framework/reference/copilot/executeprompt.md new file mode 100644 index 0000000000..282ce2ab15 --- /dev/null +++ b/powerapps-docs/developer/component-framework/reference/copilot/executeprompt.md @@ -0,0 +1,73 @@ +--- +title: executePrompt (Power Apps component framework API reference) (preview) +description: Executes a Microsoft Copilot Studio topic based on the trigger queries registered in the topic. +author: adrianorth +ms.author: aorth +ms.date: 06/16/2025 +ms.reviewer: jdaly +ms.topic: reference +ms.subservice: pcf +contributors: + - JimDaly +--- + +# executePrompt (preview) + +[!INCLUDE [preview-note-pp](~/../shared-content/shared/preview-includes/preview-note-pp.md)] + +[!INCLUDE[./includes/executeprompt-description.md](./includes/executeprompt-description.md)] + +## Available for + +Model-driven apps + +## Syntax + +`context.copilot.executeEvent(promptText).then(successCallback, errorCallback);` + +## Parameters + +| Parameter Name| Type| Required | Description| +| --- | --- | --- | --- | +| `promptText` | string | Yes | The text that is registered as a trigger query in the MCS topic. | +| `successCallback` | Function | Yes | A function to call when the operation succeeds.| +| `errorCallback` | Function | Yes | A function to call when the operation fails.| + +## Return Value + +Type: `Promise<`[MCSResponse](mcsresponse.md)`>` + +See [Promise](https://developer.mozilla.org/docs/Web/JavaScript/reference/Global_Objects/Promise) and [MCSResponse](mcsresponse.md) + +## Example + +In Microsoft Copilot Studio, when a topic is triggered by queries like "hello" or "hi." When `executePrompt` runs with matching `promptText`, it activates the topic and returns a Message activity with the response text. + +```typescript +const response = await context.copilot.executePrompt("hello"); +``` + +### Response + +```json +[ + { + "type": "message", + "timestamp": "2025-02-05T16:46:07.7799759+00:00", + "replyToId": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", + "attachments": [], + "textFormat": "markdown", + "text": "Hello, how can I help you today?", + "speak": "Hello, how can I help?" + } +] +``` + +### Related articles + +[Copilot](../copilot.md) +[executeEvent](executeevent.md) +[Power Apps component framework API reference](../../reference/index.md) +[Power Apps component framework overview](../../overview.md) + +[!INCLUDE[footer-include](../../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/component-framework/reference/copilot/includes/executeevent-description.md b/powerapps-docs/developer/component-framework/reference/copilot/includes/executeevent-description.md new file mode 100644 index 0000000000..f14865b3a6 --- /dev/null +++ b/powerapps-docs/developer/component-framework/reference/copilot/includes/executeevent-description.md @@ -0,0 +1 @@ +Executes a Microsoft Copilot Studio topic based on the registered Event Name. Returns an array of type [MCSResponse](../mcsresponse.md). \ No newline at end of file diff --git a/powerapps-docs/developer/component-framework/reference/copilot/includes/executeprompt-description.md b/powerapps-docs/developer/component-framework/reference/copilot/includes/executeprompt-description.md new file mode 100644 index 0000000000..c0ed81bd8d --- /dev/null +++ b/powerapps-docs/developer/component-framework/reference/copilot/includes/executeprompt-description.md @@ -0,0 +1 @@ +Executes a Microsoft Copilot Studio topic based on the trigger queries registered in the topic. Returns an array of type [MCSResponse](../mcsresponse.md). \ No newline at end of file diff --git a/powerapps-docs/developer/component-framework/reference/copilot/mcsresponse.md b/powerapps-docs/developer/component-framework/reference/copilot/mcsresponse.md new file mode 100644 index 0000000000..7297d75dac --- /dev/null +++ b/powerapps-docs/developer/component-framework/reference/copilot/mcsresponse.md @@ -0,0 +1,54 @@ +--- +title: "MCSResponse Interface (Power Apps component framework API reference) (preview)" +description: The interface that describes the properties of contains data returned by the context.executeEvent and context.executePrompt methods. +author: adrianorth +ms.author: aorth +ms.date: 06/16/2025 +ms.reviewer: jdaly +ms.topic: reference +applies_to: "Dynamics 365 (online)" +search.audienceType: + - developer +contributors: + - JimDaly +--- + +# MCSResponse Interface (Power Apps component framework API reference) (preview) + +[!INCLUDE [preview-note-pp](~/../shared-content/shared/preview-includes/preview-note-pp.md)] + +An interface that describes the data returned by the [executeEvent](executeevent.md) and [executePrompt](executeprompt.md) methods. + + + +## Properties + +The following table describes the `MCSResponse` properties. Only the `type` property will always be present. + + +| Name| Type| Description| +|---|---|---| +| `type`| `string`| **Required.** The type of the response.| +| `id`| `string`| Unique identifier for the response.| +| `locale`| `string`| Locale information (e.g., language or region).| +| `replyToId`| `string`| ID of the message this is replying to.| +| `timestamp`| `string`| Timestamp of the response.| +| `speak`| `string`| Text to be spoken by a speech synthesizer.| +| `text`| `string`| Text content of the response.| +| `textFormat`| `plain` \| `markdown` \| `xml` | Format of the text content.| +| `suggestedActions` | `{ actions: any[]; to?: string[] }` | Suggested actions for the user to take.| +| `value`| `unknown`| Custom payload or data.| +| `valueType`| `string`| Type of the value payload.| +| `name`| `string`| Name of the response or action.| +| `attachmentLayout` | `list` \| `carousel` | Layout style for displaying attachments.| +| `attachments`| [Attachment](#attachment-interface)[]| Array of attachments included in the response.| + +### Attachment Interface + +| Name| Type| Description| +|---|---|---| +| `content`| `unknown` | **Required.** The content of the attachment. | +| `contentType`| `string` | Describes the type of content. | + + diff --git a/powerapps-docs/developer/component-framework/reference/events.md b/powerapps-docs/developer/component-framework/reference/events.md index 5ab5bc0bc8..25731e73c8 100644 --- a/powerapps-docs/developer/component-framework/reference/events.md +++ b/powerapps-docs/developer/component-framework/reference/events.md @@ -1,10 +1,10 @@ --- title: Events (Power Apps component framework API reference) | Microsoft Docs -description: Provides methods to call maker-defined Power Fx events that are configured in Power Apps Studio. +description: Provides methods to call events defined in a PCF. For canvas apps, makers configure these events using Power Fx. For model-driven apps, developers describe the events using JavaScript. author: OliverDumrique ms.author: olidum ms.reviewer: jdaly -ms.date: 11/20/2023 +ms.date: 03/17/2025 ms.topic: reference ms.subservice: pcf --- @@ -15,7 +15,7 @@ ms.subservice: pcf ## Available for -Canvas apps only +Canvas apps and model-driven apps ## Syntax @@ -25,6 +25,8 @@ Canvas apps only [event](../manifest-schema-reference/event.md) nodes in the manifest file are built as callable methods in the `context.events` object. +[Define Events](../events.md) + ## Example ```JSX @@ -38,7 +40,8 @@ return ( ``` ### Related articles -[Power Apps component framework API reference](../reference/index.md)
-[Power Apps component framework overview](../overview.md) + +[Power Apps component framework API reference](../reference/index.md) +[Power Apps component framework overview](../overview.md) [!INCLUDE[footer-include](../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/component-framework/reference/includes/copilot-description.md b/powerapps-docs/developer/component-framework/reference/includes/copilot-description.md new file mode 100644 index 0000000000..81c6808b1b --- /dev/null +++ b/powerapps-docs/developer/component-framework/reference/includes/copilot-description.md @@ -0,0 +1 @@ +Provides methods to execute registered Microsoft Copilot Studio Topics. \ No newline at end of file diff --git a/powerapps-docs/developer/component-framework/reference/includes/events-description.md b/powerapps-docs/developer/component-framework/reference/includes/events-description.md index 79a6a56de7..0e61a58f50 100644 --- a/powerapps-docs/developer/component-framework/reference/includes/events-description.md +++ b/powerapps-docs/developer/component-framework/reference/includes/events-description.md @@ -1 +1 @@ -Provides methods to call maker-defined Power Fx events that are configured in Power Apps Studio. +Provides methods to call events defined in a PCF. For canvas apps, makers configure these events using Power Fx. For model-driven apps, developers describe the events using JavaScript diff --git a/powerapps-docs/developer/component-framework/reference/index.md b/powerapps-docs/developer/component-framework/reference/index.md index 2bcd712849..fc0149f751 100644 --- a/powerapps-docs/developer/component-framework/reference/index.md +++ b/powerapps-docs/developer/component-framework/reference/index.md @@ -3,7 +3,7 @@ title: "Power Apps component framework API reference | MicrosoftDocs" description: "The topic provides Power Apps component framework API reference." ms.author: anuitz author: anuitz -ms.date: 12/04/2024 +ms.date: 03/24/2025 ms.reviewer: jdaly ms.topic: reference ms.subservice: pcf diff --git a/powerapps-docs/developer/component-framework/reference/webapi/retrievemultiplerecords.md b/powerapps-docs/developer/component-framework/reference/webapi/retrievemultiplerecords.md index 8fedb81311..35e23496d6 100644 --- a/powerapps-docs/developer/component-framework/reference/webapi/retrievemultiplerecords.md +++ b/powerapps-docs/developer/component-framework/reference/webapi/retrievemultiplerecords.md @@ -55,7 +55,7 @@ Model-driven apps & portals. maxPageSize Number No -

Specify a positive number that indicates the number of table records to be returned per page. If you do not specify this parameter, the default value is passed as 5000.

+

Specify a positive number that indicates the number of table records to be returned per page. If you do not specify this parameter, the default value is passed as 5,000.

If the number of records being retrieved is more than the specified maxPageSize value, nextLink column in the returned promise object will contain a link to retrieve the next set of tables. diff --git a/powerapps-docs/developer/component-framework/sample-controls/angular-flip-control.md b/powerapps-docs/developer/component-framework/sample-controls/angular-flip-control.md index fe19527c1e..4b4a55a10f 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/angular-flip-control.md +++ b/powerapps-docs/developer/component-framework/sample-controls/angular-flip-control.md @@ -1,9 +1,9 @@ --- title: "Flip component| Microsoft Docs" -description: "This sample shows how to use third-party libraries to create components in Power Apps component framework. The flip sample component is implemented based on angular.js, angular-ui, angular-animate, angular-sanitize, bootstrap." +description: "This sample shows how to use external libraries/frameworks to create components in Power Apps component framework. The flip sample component is implemented based on angular.js, angular-ui, angular-animate, angular-sanitize, bootstrap." author: anuitz ms.author: anuitz -ms.date: 03/12/2022 +ms.date: 03/17/2025 ms.reviewer: jdaly ms.topic: sample ms.subservice: pcf @@ -15,7 +15,7 @@ contributors: # Implementing Flip component -This sample shows how to use third-party libraries to create components in Power Apps component framework. The flip sample component is implemented based on angular.js, angular-ui, angular-animate, angular-sanitize, bootstrap. The code may not reveal the best practices for the mentioned third-party libraries. +This sample shows how to use external libraries/frameworks to create components in Power Apps component framework. The flip sample component is implemented based on angular.js, angular-ui, angular-animate, angular-sanitize, bootstrap. The code might not reveal the best practices for the mentioned external libraries/frameworks. [!INCLUDE[cc-terminology](../../data-platform/includes/cc-terminology.md)] @@ -30,22 +30,22 @@ Model-driven and canvas apps You can download the complete sample component from [here](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework/AngularJSFlipControl). -This sample provides examples on how to add dependencies for third-party libraries, showcasing how to perform data-binding between Power Apps component framework, component model and third-party inner data model in bi-direction. +This sample provides examples on how to add dependencies for external libraries/frameworks, showcasing how to perform data-binding between Power Apps component framework, component model, and Angular inner data model in bi-direction. -The flip component sample consists of a label and a button. When you click on the button, the text on the label toggles. +The flip component sample consists of a label and a button. When you select on the button, the text on the label toggles. - When the component is loaded, the label shows the text based on the bind column value. The `context.parameters.[property_name].attributes` contains the associated definitions. -- For Yes/No columns, `context.parameters.[property_name].Options` will include both true and false value. -- Selecting on the Flip button, the label will update the value using **notifyOutputEvents** method, [getOutputs](../reference/control/getoutputs.md) method will be called asynchronously and will flow to Power Apps component framework. -- ClientAPI updates the bind column value, and the updated value flows to the component label. You can also use `ClientAPI` to update a column value to trigger control's [updateView](../reference/control/updateview.md) method. The component then updates the third-party model and the label gets updated. +- For Yes/No columns, `context.parameters.[property_name].Options` includes both true and false value. +- When you select the Flip button, the label updates the value using **notifyOutputEvents** method, [getOutputs](../reference/control/getoutputs.md) method is called asynchronously and flows to Power Apps component framework. +- ClientAPI updates the bind column value, and the updated value flows to the component label. You can also use `ClientAPI` to update a column value to trigger control's [updateView](../reference/control/updateview.md) method. The component then updates the Angular model and the label gets updated. -### Related topics +### Related articles -[Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
-[How to use the sample components](../use-sample-components.md)
-[Power Apps component framework manifest schema reference](../manifest-schema-reference/index.md)
-[Power Apps component framework API reference](../reference/index.md)
+[Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework) +[How to use the sample components](../use-sample-components.md) +[Power Apps component framework manifest schema reference](../manifest-schema-reference/index.md) +[Power Apps component framework API reference](../reference/index.md) [Power Apps component framework overview](../overview.md) diff --git a/powerapps-docs/developer/component-framework/sample-controls/control-state-api.md b/powerapps-docs/developer/component-framework/sample-controls/control-state-api.md index b3b6d6ed4b..2fb1ea4f49 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/control-state-api.md +++ b/powerapps-docs/developer/component-framework/sample-controls/control-state-api.md @@ -33,7 +33,7 @@ Model-driven and canvas apps You can download the complete sample component from [here](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework/ControlStateAPI). -### Related topics +### Related articles [Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
[How to use the sample components](../use-sample-components.md)
diff --git a/powerapps-docs/developer/component-framework/sample-controls/customized-editable-grid-control.md b/powerapps-docs/developer/component-framework/sample-controls/customized-editable-grid-control.md index 10991a9611..5a244a064f 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/customized-editable-grid-control.md +++ b/powerapps-docs/developer/component-framework/sample-controls/customized-editable-grid-control.md @@ -60,7 +60,7 @@ export const cellRendererOverrides: CellRendererOverrides = { } ``` -### Related topics +### Related articles [Customize the editable grid control (Preview)](../customize-editable-grid-control.md)
[Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
diff --git a/powerapps-docs/developer/component-framework/sample-controls/data-set-component-canvas.md b/powerapps-docs/developer/component-framework/sample-controls/data-set-component-canvas.md index d1eb297093..1c83c7b01e 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/data-set-component-canvas.md +++ b/powerapps-docs/developer/component-framework/sample-controls/data-set-component-canvas.md @@ -38,13 +38,13 @@ You can download the complete sample component from [here](https://github.com/mi In this sample, the column information is extracted using the `context.parameters.[dataset_property_name].columns`. It's an array type. The ways to access them are the same for both canvas and model-driven apps. -You can define multiple datasets in the manifest. The first dataset in the manifest is as the primary dataset. When configuring the multi dataset component, the primary dataset property always has name `Items`. All non-primary dataset properties will have a `_Items` suffix after the dataset name. +You can define multiple datasets in the manifest. The first dataset in the manifest is as the primary dataset. When you configure the multi dataset component, the primary dataset property always has name `Items`. All nonprimary dataset properties will have a `_Items` suffix after the dataset name. -Certain features in the authoring panel will only apply to the primary dataset properties, such as data source selector, field selector, and view selector. To configure a non-primary dataset property, the maker needs to first import the data source to the app, then set the property value to that secondary data source. Property-set should be used for accessing columns in a non-primary dataset property. +Certain features in the authoring panel only apply to the primary dataset properties, such as data source selector, field selector, and view selector. To configure a nonprimary dataset property, the maker needs to first import the data source to the app, then set the property value to that secondary data source. Property-set should be used for accessing columns in a nonprimary dataset property. ### Record binding -- The sorted record Ids information can be extracted using `context.parameters.[dataset_property_name].sortedRecordIds`. +- The sorted record IDs information can be extracted using `context.parameters.[dataset_property_name].sortedRecordIds`. - Get all the records information using `context.parameters.[dataset_property_name].records`. - Get each record object using `context.parameters.[dataset_property_name].records[record_Id]` - Formatted value could be retrieved using `getFormattedValue` method. @@ -55,14 +55,14 @@ The `context.parameters.[dataset_property_name].paging` method provides paging f ### Property sets -Property-set is used to access individual column values for particular columns in the record. For example, map control can use the longitude and latitude in the data-set to show the location pings in the map. In this sample component, two property sets are defined in the manifest, `samplePropertySet` and `samplePropertySet2`. Users will see two empty columns when the component is added to canvas app before any column names is configured. For a property-set, the corresponding columns are added in the beginning and order will be 0. +Property-set is used to access individual column values for particular columns in the record. For example, map control can use the longitude and latitude in the data-set to show the location pings in the map. In this sample component, two property sets are defined in the manifest, `samplePropertySet` and `samplePropertySet2`. Users see two empty columns when the component is added to canvas app before any column names is configured. For a property-set, the corresponding columns are added in the beginning and order is 0. > [!div class="mx-imgBorder"] > ![Property Set Configuration.](../media/property-set-configuration.png) ### Sizing -This sample also showcases how the component listens to the container resize. The `trackContainerResize` method should be called within the `init` method so that the `mode.allocatedWidth` and `mode.allocatedHeight` will be provided each time when the `updateView` is being called. If this method is not called initially, they don't have `allocatedWidth` and `allocatedHeight` values provided. If the `allocatedHeight` is –1, that means there is no limit on height. The component should adjust its height based on the provided width. +This sample also showcases how the component listens to the container resize. The `trackContainerResize` method should be called within the `init` method so that the `mode.allocatedWidth` and `mode.allocatedHeight` is provided each time when the `updateView` is being called. If this method isn't called initially, they don't have `allocatedWidth` and `allocatedHeight` values provided. If the `allocatedHeight` is –1, that means there's no limit on height. The component should adjust its height based on the provided width. ## Dataset API methods that aren't supported in canvas apps @@ -72,9 +72,9 @@ In this preview for canvas apps, only a limited set of [filtering](../reference/ **View** -In model-driven apps, views are required for dataset components to get the column's information. In canvas apps, views are used as a filter. It's up to the app maker to decide which columns to be added for each of the component. A view can be selected after a source is selected for the dataset component. This is applicable only when you choose Microsoft Dataverse as a source. Selecting a view applies the view's filter to the source. The view name and view id can be retrieved using the `context.parameters.[dataset_property_name].getTitle()` and `context.parameters.[dataset_property_name].getViewId()` methods. +Views are applicable only when you choose Microsoft Dataverse as a source. In model-driven apps, views are required for dataset components to get the column's information. In canvas apps, views are used as a filter. It's up to the app maker to decide which columns to be added for each of the component. A view can be selected after a source is selected for the dataset component. Selecting a view applies the view's filter to the source. The view name and view ID can be retrieved using the `context.parameters.[dataset_property_name].getTitle()` and `context.parameters.[dataset_property_name].getViewId()` methods. -### Related topics +### Related articles [Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
[How to use the sample components](../use-sample-components.md)
diff --git a/powerapps-docs/developer/component-framework/sample-controls/data-set-grid-control.md b/powerapps-docs/developer/component-framework/sample-controls/data-set-grid-control.md index 9a06d18f4c..815555e971 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/data-set-grid-control.md +++ b/powerapps-docs/developer/component-framework/sample-controls/data-set-grid-control.md @@ -49,7 +49,7 @@ The ***onRowClick*** function attaches the context of the record using its GUID The ***getSortedColumnsOnView*** method returns the list of columns based on the defined order on the view. -### Related topics +### Related articles [Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
[How to use the sample components](../use-sample-components.md)
diff --git a/powerapps-docs/developer/component-framework/sample-controls/device-api-control.md b/powerapps-docs/developer/component-framework/sample-controls/device-api-control.md index cdc23d302c..133bbe8f2b 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/device-api-control.md +++ b/powerapps-docs/developer/component-framework/sample-controls/device-api-control.md @@ -31,7 +31,7 @@ Model-driven and canvas apps You can download the complete sample component from [here](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework/DeviceApiControl). -### Related topics +### Related articles [Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
[How to use the sample components](../use-sample-components.md)
[Image upload component](./image-upload-control.md)
diff --git a/powerapps-docs/developer/component-framework/sample-controls/formatting-api-control.md b/powerapps-docs/developer/component-framework/sample-controls/formatting-api-control.md index e590e444f6..a3e68e1326 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/formatting-api-control.md +++ b/powerapps-docs/developer/component-framework/sample-controls/formatting-api-control.md @@ -30,7 +30,7 @@ Model-driven and canvas apps You can download the complete sample component from [here](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework/FormattingAPIControl). -### Related topics +### Related articles [Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
[How to use the sample components](../use-sample-components.md)
diff --git a/powerapps-docs/developer/component-framework/sample-controls/iframe-control.md b/powerapps-docs/developer/component-framework/sample-controls/iframe-control.md index 685061cfbc..735aa5b5ae 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/iframe-control.md +++ b/powerapps-docs/developer/component-framework/sample-controls/iframe-control.md @@ -1,5 +1,5 @@ --- -title: " IFRAME component| Microsoft Docs" +title: "Implementing an IFRAME component | Microsoft Docs" description: "This sample describes how to bind a code component to different columns on the form and use the value of these columns as input properties to the component." author: anuitz ms.author: anuitz @@ -12,7 +12,7 @@ search.audienceType: contributors: - JimDaly --- -# Implementing a IFRAME component +# Implementing an IFRAME component This sample describes how to bind a code component to different columns on the form and use the value of these columns as input properties to the component. @@ -30,20 +30,29 @@ Model-driven and canvas apps You can download the complete sample component from [here](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework/IFrameControl). > [!NOTE] -> Power Apps component framework does not yet support composite columns, so you will not be able to bind this component to the out of the box latitude and longitude address columns. You need to bind the code component to a different floating-point field. +> Power Apps component framework doesn't yet support composite columns, so you aren't able to bind this component to the out of the box latitude and longitude address columns. You need to bind the code component to a different floating-point field. This sample component renders an `IFRAME` which displays `Bing Maps URL`. The component is bound to two floating point columns on the form, which are passed as parameters to the component and injected into the `IFRAME URL` to update the Bing Map to the latitude and longitude of the provided inputs. -Update the `Manifest` file to include binding to two additional columns on the form. +Update the `Manifest` file to include binding to two more columns on the form. This change informs the Power Apps component framework that these bound columns need to be passed to the component during initialization and whenever one of the values is updated. ```xml - - - + + ``` -Additional bound properties may be required or not. This will be enforced during the component configuration when the component is being bound to the form. This can be configured by setting the `required` attribute of the property node in the component manifest. Set the value to false if you don't want to require the component property be bound to a field. +More bound properties might be required. This requirement is enforced during the component configuration when the component is being bound to the form. This can be configured by setting the `required` attribute of the property node in the component manifest. Set the value to false if you don't want to require the component property be bound to a field. `ComponentFramework.d.ts` needs to be updated to add two columns to `IInputs` interface. This is the format the Power Apps component framework passes the field values. Adding these values to the `IInputs` interface allows your TypeScript file to reference the values and compile successfully. @@ -56,9 +65,9 @@ Additional bound properties may be required or not. This will be enforced during The initial rendering generates an `IFRAME` element and appends it to the controls container. This `IFRAME` is used to display the **Bing Map**. The url of the `IFRAME` is set to a `Bing Map URL` and includes the bound columns (latitudeValue and longitudeValue) in the url to center the map at the provided location. -The [updateView](../reference/control/updateview.md) method is invoked whenever one of these columns are updated on the form. This method updates the url of the **Bing Map** IFRAME to use the new latitude and longitude values passed to the component. To view this component in run time, bind the component to a field on the form like any other code component. +The [updateView](../reference/control/updateview.md) method is invoked whenever one of these columns is updated on the form. This method updates the url of the **Bing Map** IFRAME to use the new latitude and longitude values passed to the component. To view this component in run time, bind the component to a field on the form like any other code component. -### Related topics +### Related articles [Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
[How to use the sample components](../use-sample-components.md)
diff --git a/powerapps-docs/developer/component-framework/sample-controls/image-upload-control.md b/powerapps-docs/developer/component-framework/sample-controls/image-upload-control.md index 28bf075e0f..8097aa8a57 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/image-upload-control.md +++ b/powerapps-docs/developer/component-framework/sample-controls/image-upload-control.md @@ -52,7 +52,7 @@ The `device.pickFile` method opens a dialog box to select files for the upload. > [!NOTE] > If the same form or table is used on the legacy web client, then the field will show out-of-box text component on legacy web client, where there might have UX issues.  To make it hidden on the legacy web client, we could uncheck the **Visibility** checkbox and check **Hide Default Control** checkbox together. -### Related topics +### Related articles [Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
[How to use the sample components](../use-sample-components.md)
[Device API component](./device-api-control.md)
diff --git a/powerapps-docs/developer/component-framework/sample-controls/increment-control.md b/powerapps-docs/developer/component-framework/sample-controls/increment-control.md index 1a98f70528..7f4e9677eb 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/increment-control.md +++ b/powerapps-docs/developer/component-framework/sample-controls/increment-control.md @@ -39,7 +39,7 @@ When you click on the button, the value in the text box is increased by 1. The u Edit the value in the text box, and if it is a valid integer, then it updates the value to Power Apps component framework. You can continuously click the `Increment` button and update it. If it's an invalid integer, an error message pops out. -### Related topics +### Related articles [Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
[How to use the sample components](../use-sample-components.md)
diff --git a/powerapps-docs/developer/component-framework/sample-controls/linear-input-control.md b/powerapps-docs/developer/component-framework/sample-controls/linear-input-control.md index 9b94411cab..1b2b5618fc 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/linear-input-control.md +++ b/powerapps-docs/developer/component-framework/sample-controls/linear-input-control.md @@ -61,7 +61,7 @@ public updateView(context: ComponentFramework.IPropBag)    } ``` -### Related topics +### Related articles [Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
[How to use the sample components](../use-sample-components.md)
diff --git a/powerapps-docs/developer/component-framework/sample-controls/localization-api-control.md b/powerapps-docs/developer/component-framework/sample-controls/localization-api-control.md index 0b690314e2..25862710e7 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/localization-api-control.md +++ b/powerapps-docs/developer/component-framework/sample-controls/localization-api-control.md @@ -50,7 +50,7 @@ When this line of code is executed, the Power Apps component framework automatic |1033 |Increment | |1035 |lisäys | -### Related topics +### Related articles [Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
[How to use the sample components](../use-sample-components.md)
diff --git a/powerapps-docs/developer/component-framework/sample-controls/lookup-control.md b/powerapps-docs/developer/component-framework/sample-controls/lookup-control.md index c17e3d0d00..00f22e8058 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/lookup-control.md +++ b/powerapps-docs/developer/component-framework/sample-controls/lookup-control.md @@ -41,7 +41,7 @@ You'll notice that each of the `Lookup Objects` buttons have the same `onClick` In `getOutputs`, the component sends back the newly selected record to consume and update. In `updateView`, the component uses the raw value of both lookup properties to display the currently selected lookups for both bound properties. -### Related topics +### Related articles [Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
[How to use the sample components](../use-sample-components.md)
diff --git a/powerapps-docs/developer/component-framework/sample-controls/map-control.md b/powerapps-docs/developer/component-framework/sample-controls/map-control.md index c59e272a43..574b355234 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/map-control.md +++ b/powerapps-docs/developer/component-framework/sample-controls/map-control.md @@ -5,12 +5,12 @@ author: anuitz ms.author: anuitz ms.date: 03/12/2022 ms.reviewer: jdaly -ms.topic: "article" +ms.topic: concept-article --- # Implementing map component -This sample component changes the user experience of interacting with address fields on the form. Along with the text values of the address, this component provides the ability to visually identify a particular address on a map without navigating to another tab or screen.  +This sample component changes the user experience of interacting with address fields on the form. Along with the text values of the address, this component visually identifies a particular address on a map without navigating to another tab or screen. [!INCLUDE[cc-terminology](../../data-platform/includes/cc-terminology.md)] @@ -28,14 +28,14 @@ You can download the complete sample component from [here](https://github.com/mi In the manifest file, we defined property of type `Single line of Text`. We use this to bind it to the address field on the form.  > [!NOTE] -> You can use any of the map API's that are available in the market. In this example, we are going to show how to do it with the Google Map API. +> You can use any of the map APIs that are available in the market. In this example, we're going to show how to do it with the Google Map API. You need to create an API key for the component to access the Google Map API. Follow the instructions(https://developers.google.com/maps/documentation/embed/get-api-key to generate one). Create a variable name `MAPS_API_KEY` that can be accessed in the context of the component. Google Map API allows you only to render the maps inside an `IFRAME`. So, you need to create an `IFRAME` element that is going to render the map using the URL we generate. -By default, we are setting the map to be hidden and display it only when the address value exists on the form. +By default, we're setting the map to be hidden and display it only when the address value exists on the form. -`buildMapUrl` and `renderMap` (you can even merge them into one) takes the address string and embeds it onto the map URL by encoding the address string and then sets the IFRAME element's src element to the URL respectively. Also, call the **notifyOutputChanged** method to ensure we notify the component that the rendering has changed. +`buildMapUrl` and `renderMap` (you can even merge them into one) takes the address string and embeds it onto the map URL by encoding the address string and then sets the IFRAME element's src element to the URL respectively. Also, call the **notifyOutputChanged** method to ensure we notify the component that the rendering changed. ```TypeScript public renderMap(mapUrl: string) { @@ -51,7 +51,7 @@ By default, we are setting the map to be hidden and display it only when the add Ensure you call the `renderMap` function inside the [updateView](../reference/control/updateview.md) function to ensure the control is refreshed every time the view is updated. -### Related topics +### Related articles [Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
[How to use the sample components](../use-sample-components.md)
diff --git a/powerapps-docs/developer/component-framework/sample-controls/multi-select-option-set-control.md b/powerapps-docs/developer/component-framework/sample-controls/multi-select-option-set-control.md index d8984b96b3..47270bc1c4 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/multi-select-option-set-control.md +++ b/powerapps-docs/developer/component-framework/sample-controls/multi-select-option-set-control.md @@ -43,7 +43,7 @@ The `getOutputs` method simply returns the currently selected set of values back -### Related topics +### Related articles [Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
[How to use the sample components](../use-sample-components.md)
diff --git a/powerapps-docs/developer/component-framework/sample-controls/navigation-api-control.md b/powerapps-docs/developer/component-framework/sample-controls/navigation-api-control.md index 51cfe4475b..3461a4dda9 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/navigation-api-control.md +++ b/powerapps-docs/developer/component-framework/sample-controls/navigation-api-control.md @@ -15,7 +15,7 @@ contributors: # Implementing Navigation API component -This sample component explores the various methods available as part of the Power Apps component framework navigation API. In this sample, you create a series of input elements of type buttons which calls into the respective methods of the navigation API that matches with the value displayed. +This sample component explores the various methods available as part of the Power Apps component framework navigation API. In this sample, you create a series of buttons that call into the respective methods of the navigation API that matches with the value displayed. [!INCLUDE[cc-terminology](../../data-platform/includes/cc-terminology.md)] @@ -32,33 +32,33 @@ You can download the complete sample component from [here](https://github.com/mi The `openAlertDialog` method provides the capability to display an alert dialog containing a message and a button. You can also implement callback methods when the alert dialog is closed or if an error is encountered when loading the dialog.   -In this sample when you click on the `openAlertDialogButton` an alert dialog pops up and sets the value of it to `Alert dialog closed` when the dialog is closed either using the `OK` button or the `X` button. +In this sample when you select on the `openAlertDialogButton` an alert dialog pops up and sets the value of it to `Alert dialog closed` when the dialog is closed either using the `OK` button or the `X` button. > [!NOTE] > This is similar to calling the [Xrm.Navigation.openAlertDialog](../../model-driven-apps/clientapi/reference/Xrm-Navigation/openAlertDialog.md) method in ClientAPI. The `openConfirmDialog` method provides the ability to display an alert dialog containing a message and two buttons. You can use this method to implement different logic based on the button clicked. You can implement the success callback which is called when the dialog is closed by clicking either of the buttons.   -This sample shows you a confirm dialog when you click on the `openConfirmDialogButton` and sets the value of it to `Ok` or `Cancel`, or `X` depending on the button that was clicked. +This sample shows you a confirm dialog when you select on the `openConfirmDialogButton` and sets the value of it to `Ok` or `Cancel`, or `X` depending on the button that was clicked. > [!NOTE] > This is similar to calling the [Xrm.Navigation.openConfirmDialog](../../model-driven-apps/clientapi/reference/Xrm-Navigation/openConfirmDialog.md) method in ClientAPI. -The `openFile` method provides the ability to open a file. You'd need to pass in the file object which has the filename, content, mimetype and the filesize. You can also pass in the optional parameter of the mode you want to open the file as 1 or 2, 1 being the default which opens the file in read or open mode. +The `openFile` method provides the ability to open a file. You'd need to pass in the file object which has the filename, content, mimetype, and the filesize. You can also pass in the optional parameter of the mode you want to open the file as 1 or 2, 1 being the default which opens the file in read or open mode.   This sample opens a file named `SampleDemo.txt` in save mode on clicking the `openFileButton`. > [!NOTE] > This is similar to calling the [Xrm.Navigation.openFile](../../model-driven-apps/clientapi/reference/Xrm-Navigation/openFile.md) method in ClientAPI. -The `openUrl` method provides the ability to open a URL. You need to pass the URL as a string to the method and also pass the optional parameters of height, width and openInNewWindow as true if you want the URL to be opened in a new window. +The `openUrl` method opens a URL. You need to pass the URL as a string to the method and also pass the optional parameters of height, width, and openInNewWindow as true if you want the URL to be opened in a new window.   This sample opens a new window and loads the microsoft.com home page on clicking the `openUrlButton`. > [!NOTE] > This is similar to calling the [Xrm.Navigation.openUrl](../../model-driven-apps/clientapi/reference/Xrm-Navigation/openUrl.md) method in ClientAPI. -### Related topics +### Related articles [Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
[How to use the sample components](../use-sample-components.md)
diff --git a/powerapps-docs/developer/component-framework/sample-controls/object-output.md b/powerapps-docs/developer/component-framework/sample-controls/object-output.md index 74154d80ec..21740f338e 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/object-output.md +++ b/powerapps-docs/developer/component-framework/sample-controls/object-output.md @@ -1,6 +1,6 @@ --- title: "Object Output Component Sample| Microsoft Docs" -description: "Learn how you can use the object outout APIs." +description: "Learn how you can use the object output APIs." author: anuitz ms.author: anuitz ms.date: 06/07/2023 @@ -13,7 +13,7 @@ contributors: # Object Output Component -[This article is pre-release documentation and is subject to change.] +[!INCLUDE [cc-beta-prerelease-disclaimer](../../../includes/cc-beta-prerelease-disclaimer.md)] This sample component shows how to use object type output properties. This component generates a static object and output via a property which then can be accessed in a canvas app or via client APIs in a model form. @@ -56,7 +56,7 @@ We also need to create a property dependency between these two properties. ``` -In the index.ts file we need to add [getOutputSchema](../reference/control/getoutputschema.md) method to provide the output object schema. When the control is added to a Canvas App, the platform will call to this method prior to control initialization to receive the output object(s) schema(s). +In the index.ts file, we need to add [getOutputSchema](../reference/control/getoutputschema.md) method to provide the output object schema. When the control is added to a Canvas App, the platform calls to this method before control initialization to receive the output object(s) schema(s). ```typescript public async getOutputSchema(context: ComponentFramework.Context): Promise> { @@ -76,7 +76,7 @@ public getOutputs(): IOutputs { } ``` -The `onLoadData` method will be called when the **Load Data** button is pressed to load the data to the output object and notify the platform about the output changes. This will trigger onChange behavior in the Canvas App for the control or [OnOutputChange](../../model-driven-apps/clientapi/reference/events/onoutputchange.md) event for client APIs. +The `onLoadData` method is called when the **Load Data** button is pressed to load the data to the output object and notify the platform about the output changes. This triggers onChange behavior in the Canvas App for the control or [OnOutputChange](../../model-driven-apps/clientapi/reference/events/onoutputchange.md) event for client APIs. ```typescript private onLoadData = async () => { @@ -86,7 +86,7 @@ private onLoadData = async () => { } ``` -### Related topics +### Related articles [onOutputChange Event](../../model-driven-apps/clientapi/reference/events/onoutputchange.md) [StandardControl.getOutputSchema](../reference/control/getoutputschema.md) diff --git a/powerapps-docs/developer/component-framework/sample-controls/react-facepile-control.md b/powerapps-docs/developer/component-framework/sample-controls/react-facepile-control.md index 0c29e92a98..a8ef0255f1 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/react-facepile-control.md +++ b/powerapps-docs/developer/component-framework/sample-controls/react-facepile-control.md @@ -15,7 +15,7 @@ contributors: # Implementing the FacePile component -This sample shows how to use React to create components using Power Apps component framework. The facepile sample component is implemented based on React and the Office UI Fabric React components. The code may not reveal the best practices for the mentioned third-party libraries. +This sample shows how to use React to create components using Power Apps component framework. The facepile sample component is implemented based on React and the Office UI Fabric React components. The code might not reveal the best practices for the mentioned third-party libraries. [!INCLUDE[cc-terminology](../../data-platform/includes/cc-terminology.md)] @@ -32,19 +32,19 @@ You can download the complete sample component from [here](https://github.com/mi > [!IMPORTANT] -> Although the Power Apps host applications work on top of React, the version of React you bundle will not communicate with the host version, nor is it dependent on that version. A new copy of React (or any third-party library you bundle with your component) will be loaded into the host page for every instance of that control, so be mindful of how large you are making your page(s) as you add components. We will have a solution to this issue in a future release. +> Although the Power Apps host applications work on top of React, the version of React you bundle won't communicate with the host version, nor is it dependent on that version. A new copy of React (or any third-party library you bundle with your component) is loaded into the host page for every instance of that control, so be mindful of how large you're making your page(s) as you add components. We'll have a solution to this issue in a future release. This sample provides examples on how to add dependencies for third-party libraries and Office UI Fabric, showcasing how to utilize the Office UI Fabric components for React for UI and perform bi-directional data-binding between the Power Apps component framework and the React state model. -The component sample consists of three Office UI Fabric components: a facepile, a slider, a check box, and a drop-down list. When you move the slider, the number of faces in the facepile changes. The check box components whether the faces fade in and out or simply appear or disappear, and the options in the drop-down list control the size of the faces. If there is no value set, the number of faces defaults to 3. +The component sample consists of three Office UI Fabric components: a facepile, a slider, a check box, and a drop-down list. When you move the slider, the number of faces in the facepile changes. The check box components whether the faces fade in and out or appear or disappear, and the options in the drop-down list control the size of the faces. If there's no value set, the number of faces defaults to 3. - When the component is loaded, the slider is set to the bound attribute value. The `context.parameters.[property_name].attributes` property contains the associated metadata. - An event handler is passed in the React component's props; this will allow the React component to notify the host Power Apps component framework control that a value has changed. The event handler then determines if a call to the **notifyOutputEvents** method is necessary. -- Sliding the slider will cause React to update the bound value and call the passed in event handler. Inside that handler, if a call is made to the **notifyOutputEvents** method, then the control's [getOutputs](../reference/control/getoutputs.md) method will be called asynchronously and will flow to the Power Apps component framework. +- Sliding the slider causes React to update the bound value and call the passed in event handler. Inside that handler, if a call is made to the **notifyOutputEvents** method, then the control's [getOutputs](../reference/control/getoutputs.md) method is called asynchronously and flows to the Power Apps component framework. - The framework host updates the bound attribute value, and the updated value flows to the component, triggering the control's [updateView](../reference/control/updateview.md) method. The control then renders again the React component with the new value. -### Related topics +### Related articles [Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
[How to use the sample components](../use-sample-components.md)
diff --git a/powerapps-docs/developer/component-framework/sample-controls/table-control.md b/powerapps-docs/developer/component-framework/sample-controls/table-control.md index bf618a593e..8a876e3fab 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/table-control.md +++ b/powerapps-docs/developer/component-framework/sample-controls/table-control.md @@ -43,7 +43,7 @@ This method returns a `Promise` object, representing the completion or failure o The callback method injects this information as HTML into a div rendered on the code component to showcase the selected results to the user. If the `Promise` is rejected, the error callback method is invoked where your component can handle the error scenario accordingly. -### Related topics +### Related articles [Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
[How to use the sample components](../use-sample-components.md)
diff --git a/powerapps-docs/developer/component-framework/sample-controls/table-grid-control.md b/powerapps-docs/developer/component-framework/sample-controls/table-grid-control.md index 546c64fec5..eac86a3680 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/table-grid-control.md +++ b/powerapps-docs/developer/component-framework/sample-controls/table-grid-control.md @@ -1,6 +1,6 @@ --- title: "Table grid component| Microsoft Docs" -description: "This sample showcases how to create a simple dataset component, view's column metadata binding, record binding, more records from paging and record navigation to form." +description: "This sample showcases how to create a basic dataset component, view's column metadata binding, record binding, more records from paging and record navigation to form." author: anuitz ms.author: anuitz ms.date: 03/12/2022 @@ -15,7 +15,7 @@ contributors: # Implementing table grid component -This sample showcases how to create a simple dataset component, view's column metadata binding, record binding, more records from paging and record navigation to form. +This sample showcases how to create a basic dataset component, view's column metadata binding, record binding, more records from paging and record navigation to form. The component header columns and internal record values are bound to the existing views. [!INCLUDE[cc-terminology](../../data-platform/includes/cc-terminology.md)] @@ -31,28 +31,28 @@ Model-driven apps You can download the complete sample component from [here](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework/TableGrid). -Column Header bind to the View : +Column Header bind to the View: View column info lies at `context.parameters.[dataset_property_name].columns`. It's an array type. -Record binding : +Record binding: -- The sorted record Ids are at `context.parameters.[dataset_property_name].sortedRecordIds` +- The sorted record IDs are at `context.parameters.[dataset_property_name].sortedRecordIds` - All records info is at `context.parameters.[dataset_property_name].records` - For each record object, `context.parameters.[dataset_property_name].records[record_Id]` - Formatted value could be retrieved at `getFormattedValue` -Load more page of data if needed : +Load more pages of data if needed: -`context.parameters.[dataset_property_name].paging` will provide paging functionality like `hasNextPage` and `loadNextPage` data. The `Load More` button is shown if it has next page data. +`context.parameters.[dataset_property_name].paging` provides paging functionality like `hasNextPage` and `loadNextPage` data. The `Load More` button is shown if it has next page data. This sample also showcases how the component listens to the container resize. -The `trackContainerResize` method should be called within [init](../reference/control/init.md) method so that the `mode.allocatedWidth` and `mode.allocatedHeight` will be provided each time [updateView](../reference/control/updateview.md) being called. If this method is not being called initially, then they don't have `allocatedWidth` and `allocatedHeight` provided. +The `trackContainerResize` method should be called within [init](../reference/control/init.md) method so that the `mode.allocatedWidth` and `mode.allocatedHeight` is provided each time [updateView](../reference/control/updateview.md) being called. If this method isn't being called initially, then they don't have `allocatedWidth` and `allocatedHeight` provided. -If the allocatedHeight is –1, that means there is no limit on height. The component should adjust its height based on the provided width. +If the allocatedHeight is –1, that means there's no limit on height. The component should adjust its height based on the provided width. -### Related topics +### Related articles [Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
[How to use the sample components](../use-sample-components.md)
diff --git a/powerapps-docs/developer/component-framework/sample-controls/webapi-control.md b/powerapps-docs/developer/component-framework/sample-controls/webapi-control.md index e1f06c50b8..554abaca12 100644 --- a/powerapps-docs/developer/component-framework/sample-controls/webapi-control.md +++ b/powerapps-docs/developer/component-framework/sample-controls/webapi-control.md @@ -1,6 +1,6 @@ --- title: "Web API component| Microsoft Docs" -description: "The web API component is designed to perform create, retrieve, update and delete actions." +description: "The web API component is designed to perform create, retrieve, update, and delete actions." author: anuitz ms.author: anuitz ms.date: 03/12/2022 @@ -14,7 +14,7 @@ contributors: --- # Implementing Web API component -The web API component is designed to perform create, retrieve, update and delete actions. The component renders four buttons, which can be clicked to invoke different web API actions. The result of the web API call is injected into a HTML div element at the bottom of the code component. +The web API component is designed to perform create, retrieve, update, and delete actions. The component renders four buttons, which can be clicked to invoke different web API actions. The result of the web API call is injected into an HTML div element at the bottom of the code component. [!INCLUDE[cc-terminology](../../data-platform/includes/cc-terminology.md)] @@ -31,7 +31,7 @@ You can download the complete sample component from [here](https://github.com/mi By default, in the sample, the component is configured to perform the create, retrieve, update actions on the `Account` entity and set the name and revenue fields in the web API examples. -To change the default configuration to any entity or field, update the below configuration values as shown +To change the default configuration to any entity or field, update the following configuration values as shown ```TypeScript private static _entityName:string = "account"; @@ -42,17 +42,17 @@ To change the default configuration to any entity or field, update the below con The `createRecord` method renders three buttons, which allows you to create an account record with the revenue field set to different values (100, 200, 300). -When you click one of the create buttons, the button's `onClick` event handler checks the value of the button clicked and use the web API action to create an account record with the revenue field set to the button's value. The name field of the account record will be set to `Web API code component (Sample)` with a random `int` appended to the end of the string. The callback method from the web API call injects the result of the web API call (success or failure) into the custom control's result div. +When you select one of the create buttons, the button's `onClick` event handler checks the value of the button clicked and use the web API action to create an account record with the revenue field set to the button's value. The name field of the account record is set to `Web API code component (Sample)` with a random `int` appended to the end of the string. The callback method from the web API call injects the result of the web API call (success or failure) into the custom control's result div. -The `deleteRecord` method renders a button which opens a lookup dialog when clicked. The lookup dialog allows you to select the account record you want to delete. Once an account record is selected from the lookup dialog, it is passed to the `deleteRecord` to delete the record from the database. The callback method from the web API call injects the result of the web API call (success or failure) into the custom control's result div. +The `deleteRecord` method renders a button which opens a lookup dialog when clicked. The lookup dialog allows you to select the account record you want to delete. Once an account record is selected from the lookup dialog, it's passed to the `deleteRecord` to delete the record from the database. The callback method from the web API call injects the result of the web API call (success or failure) into the custom control's result div. The FetchXML `retrieveMultiple` method renders a button in the code component. `onClick` of this button, FetchXML is generated and passed to the `retrieveMultiple` function to calculate the average value of the revenue field for all the accounts records. The callback method from the web API call injects the result of the web API call (success or failure) into the custom control's result div. The OData `retrieveMultiple` method renders a button in the code component. `onClick` of this button, OData string is generated and passed to the `retrieveMultiple` function to retrieve all account records with a name field that is like 'code component Web API (Sample)', which is true for all account records created by this code component example. -On successful retrieve of the records, the code component has logic to count how many account records have the revenue field set to 100, 200 or 300, and display this count into an OData status container div on the code component. The callback method from the web API call injects the result of the web API call (success or failure) into the custom control's result div. +On successful retrieve of the records, the code component has logic to count how many account records have the revenue field set to 100, 200 or 300, and display this count into an OData status container div on the code component. The callback method from the web API call injects the result of the web API call (success or failure) into the custom control's result div. -### Related topics +### Related articles [Download sample components](https://github.com/microsoft/PowerApps-Samples/tree/master/component-framework)
[How to use the sample components](../use-sample-components.md)
diff --git a/powerapps-docs/developer/component-framework/toc.yml b/powerapps-docs/developer/component-framework/toc.yml index 0f076981b6..a65dfb5986 100644 --- a/powerapps-docs/developer/component-framework/toc.yml +++ b/powerapps-docs/developer/component-framework/toc.yml @@ -16,6 +16,10 @@ items: href: react-controls-platform-libraries.md - name: "Style components with modern theming (preview)" href: fluent-modern-theming.md + - name: Dependent libraries (preview) + href: dependent-libraries.md + - name: Events (preview) + href: events.md - name: Get tooling href: get-powerapps-cli.md - name: Limitations @@ -30,6 +34,10 @@ items: href: tutorial-create-model-driven-app-dataset-component.md - name: Create a canvas app dataset component href: tutorial-create-canvas-dataset-component.md + - name: Define an event in a component + href: tutorial-define-event.md + - name: Use dependent libraries + href: tutorial-use-dependent-libraries.md - name: Online learning href: /training/paths/use-power-apps-component-framework - name: Code components ALM @@ -54,6 +62,8 @@ items: href: publish-components-app-source.md - name: Customize the editable grid control href: customize-editable-grid-control.md + - name: Bring intelligence into your components using Agent APIs + href: bring-intelligence-using-agent-apis.md - name: Troubleshooting items: - name: Common issues and workarounds @@ -146,6 +156,15 @@ items: href: reference/controlattributes.md - name: ControlAttributesType href: reference/controlattributestype.md + - name: Copilot + href: reference/copilot.md + items: + - name: executeEvent + href: reference/copilot/executeevent.md + - name: executePrompt + href: reference/copilot/executeprompt.md + - name: MCSResponse + href: reference/copilot/mcsresponse.md - name: DataProviderCapabilities href: reference/dataprovidercapabilities.md - name: DataSet @@ -452,6 +471,8 @@ items: href: manifest-schema-reference/css.md - name: data-set href: manifest-schema-reference/data-set.md + - name: dependency + href: manifest-schema-reference/dependency.md - name: domain href: manifest-schema-reference/domain.md - name: external-service-usage @@ -464,6 +485,8 @@ items: href: manifest-schema-reference/img.md - name: manifest href: manifest-schema-reference/manifest.md + - name: platform-action + href: manifest-schema-reference/platform-action.md - name: platform-library href: manifest-schema-reference/platform-library.md - name: property-dependencies diff --git a/powerapps-docs/developer/component-framework/tutorial-define-event.md b/powerapps-docs/developer/component-framework/tutorial-define-event.md new file mode 100644 index 0000000000..10b4323e4c --- /dev/null +++ b/powerapps-docs/developer/component-framework/tutorial-define-event.md @@ -0,0 +1,455 @@ +--- +title: "Tutorial: Define a custom event in a component" +description: "In this tutorial, learn how to define a custom event in a PCF control and use it in canvas and model-driven apps." +author: anuitz +ms.author: anuitz +ms.date: 03/24/2025 +ms.reviewer: jdaly +ms.topic: tutorial +ms.subservice: pcf +contributors: + - JimDaly + - kierantpetrie +--- +# Tutorial: Define a custom event in a component + +[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] + +In this tutorial, you'll build a code component that uses custom events and test it using both canvas and model-driven apps. [Learn more about the custom events preview](events.md). + +## Goal + +The steps in this tutorial guide you to create a code component with two buttons which raise different events for the hosting application can react to. You'll define two events: `customEvent1` and `customEvent2`. Then, the code component exposes two buttons that cause these events to occur. + +### Canvas App + +The canvas app uses Power Fx expressions on these events to toggle the visible and display mode properties of a control: + +:::image type="content" source="media/define-custom-event-tutorial-diagram.png" alt-text="Diagram shows the goal of this sample to define two custom events"::: + + +> [!VIDEO https://learn-video.azurefd.net/vod/player?id=9a59542b-cff6-4de5-a347-5da92aae2c9a] + +### Model-driven App + +The model-driven app uses client-side JavaScript to show an alert when the respective events occur. + +## Prerequisites + +You should already know how to: + +- [Create and build a code component](create-custom-controls-using-pcf.md) +- [Package a code component](import-custom-controls.md) +- [Add code components to a model-driven app](add-custom-controls-to-a-field-or-entity.md#add-a-code-component-to-a-column) +- [Add components to a canvas app](component-framework-for-canvas-apps.md#add-components-to-a-canvas-app) + +## Create a new Control + +1. Create a new component using this command: + + `pac pcf init -n EventSample -ns SampleNamespace -t field -fw react -npm` + +2. Edit the manifest to add the new events + +#### [Before](#tab/before) + +```xml + + + + + + + + +``` + +#### [After](#tab/after) + +```xml + + + + + + + + + + +``` + +--- + +## Define events + +In the `EventSample\HelloWorld.tsx` control file, define two events in the interface and bind the events to two different buttons. Also update the import to include `DefaultButton` as the following changes show. + +#### [Before](#tab/before) + +```typescript +import * as React from 'react'; +import { Label } from '@fluentui/react'; + +export interface IHelloWorldProps { + name?: string; +} + +export class HelloWorld extends React.Component { + public render(): React.ReactNode { + return ( + + ) + } +} +``` + +#### [After](#tab/after) + +```typescript +import * as React from 'react'; +import { Label, DefaultButton } from '@fluentui/react'; + +// This component renders two buttons each one will trigger an event passed via props + +export interface IHelloWorldProps { + onCustomEvent1: () => void; + onCustomEvent2: () => void; +} + +export const HelloWorld: React.FunctionComponent = (props: IHelloWorldProps) => { + return ( +

+ + Trigger event 1 + Trigger event 2 +
+ ); +}; +``` + +--- + +## Modify `updateview` method + +In `EventSample\Index.ts`, modify [the updateView method ](reference/react-control/updateview.md) to add handlers for the two button events. These handlers add the two events defined in the manifest to the events in the context passed to the control. + +#### [Before](#tab/before) + +```typescript +public updateView(context: ComponentFramework.Context): React.ReactElement { + const props: IHelloWorldProps = { name: 'Hello, World!' }; + return React.createElement( + HelloWorld, props + ); +} +``` + +#### [After](#tab/after) + +```typescript +public updateView(context: ComponentFramework.Context): React.ReactElement { + const props: IHelloWorldProps = { + onCustomEvent1: ()=> { + context.events.customEvent1() + }, + onCustomEvent2: () => { + context.events.customEvent2() + } + }; + return React.createElement( + HelloWorld, props + ); +} +``` + +--- + +## Build and package + +As usual, you need to complete these steps to use this control: + +1. [Create and build the code component](create-custom-controls-using-pcf.md) +1. [Package the code component](import-custom-controls.md) +1. [Deploy the code component](import-custom-controls.md#deploying-code-components) + +## Use in a canvas app + +To use this control in a canvas app, you need to: + +1. [Create a new blank Canvas App](../../maker/canvas-apps/create-blank-app.md) +1. [Add the new component to the canvas app](component-framework-for-canvas-apps.md#add-components-to-a-canvas-app) +1. [Add a new control](../../maker/canvas-apps/add-configure-controls.md). This example uses a text control. + + :::image type="content" source="media/event_canvas_sample_app.png" alt-text="Image of the Canvas App with controls added." lightbox="media/event_canvas_sample_app.png"::: + +1. Add two global variables to the app: `isVisible` and `canEdit`. +1. Set `canEdit` to the `DisplayMode` property of the text control. + + :::image type="content" source="media/event_canvas_sample_app_displaymode.png" alt-text="Image of the DisplayMode property of the text control" lightbox="media/event_canvas_sample_app_displaymode.png"::: + +1. Set `isVisible` to the `Visible` property of the text control. + + :::image type="content" source="media/event_canvas_sample_app_visible.png" alt-text="Image of the Visible property of the text control" lightbox="media/event_canvas_sample_app_visible.png"::: + +1. Set custom actions on the new custom control to update the `isVisible` and `canEdit` variables when the buttons are clicked. + + :::image type="content" source="media/event_canvas_sample_app_customevents.png" alt-text="Image of the Custom Event properties of the new component" lightbox="media/event_canvas_sample_app_customevents.png"::: + + |Event|Power FX expression| + |---|---| + |customEvent1|`If(isVisible, Set (isVisible, false), Set (isVisible, true))`| + |customEvent2|`If(canEdit = DisplayMode.Edit, Set(canEdit, DisplayMode.Disabled), Set (canEdit, DisplayMode.Edit))`| + +### Test the canvas app + +1. Press **Trigger event 1**. + + **Expected**: The text control toggles between visible and hidden + +1. Press **Trigger event 2**. + + **Expected**: The text control toggles between editable and read only. + +## Use in a model-driven app + +> [!NOTE] +> These steps refer to instructions described in [Walkthrough: Write your first client script](../model-driven-apps/clientapi/walkthrough-write-your-first-client-script.md). + +1. Create a new JavaScript web resource to run on the `onLoad` event of a form. This script binds two event handlers to the new events for the controls on load of the form. + + ```javascript + /* eslint-disable */ + "use strict"; + + var MyScriptsNameSpace = window.MyScriptsNameSpace || {}; + (function () { + + const controlName1 = "cr116_personid"; + + this.onLoad = function (executionContext) { + const formContext = executionContext.getFormContext(); + + const sampleControl1 = formContext.getControl(controlName1); + sampleControl1.addEventHandler("customEvent1", this.onSampleControl1CustomEvent1); + sampleControl1.addEventHandler("customEvent2", this.onSampleControl1CustomEvent2); + }; + + this.onSampleControl1CustomEvent1 = function (params) { + alert(`SampleControl1 Custom Event 1`); + }.bind(this); + + this.onSampleControl1CustomEvent2 = function (params) { + alert(`SampleControl1 Custom Event 2`); + }.bind(this); + + }).call(MyScriptsNameSpace); + ``` + +1. Complete the following steps as you normally do: + + 1. [Upload your new JavaScript file as a web resource](../model-driven-apps/clientapi/walkthrough-write-your-first-client-script.md#step-3-upload-your-code-as-a-web-resource). + 1. [Add the component to the model-driven form](code-components-model-driven-apps.md#add-code-components-to-model-driven-apps). + 1. [Associate the webresource to the form](../model-driven-apps/clientapi/walkthrough-write-your-first-client-script.md#step-4-associate-your-web-resource-to-a-form). + +1. [Configure the On Load event](../model-driven-apps/clientapi/walkthrough-write-your-first-client-script.md#configure-form-on-load-event) as shown in the following image: + + :::image type="content" source="media/event_mda_sample_jsbinding.png" alt-text="Image of the JavaScript binding for the Model Driven App Form" lightbox="media/event_mda_sample_jsbinding.png"::: + +1. Test your app. + + When you navigate to the form and press **Trigger event 1**, an alert displays `SampleControl1 Custom Event 1`. When you press **Trigger event 2**, an alert displays `SampleControl1 Custom Event 2`. + +## Passing payload in events + +As described in [Defining an event for model-driven apps](events.md#defining-an-event-for-model-driven-apps), you can pass payload in events in model-driven apps. You can modify this example in the following way to see how this works. + +:::image type="content" source="media/passing-payload-in-events.png" alt-text="Diagram shows multiple controls generating multiple events with a call back being made"::: + + + +### Pass payload with event + +Change the `EventSample\index.ts` so that the events pass a message payload and in the second event also pass a callback function that changes an internal variable + +#### [Before](#tab/before) + +```typescript +public updateView(context: ComponentFramework.Context): React.ReactElement { + const props: IHelloWorldProps = { + onCustomEvent1: ()=> { + context.events.customEvent1() + }, + onCustomEvent2: () => { + context.events.customEvent2() + } + }; + return React.createElement( + HelloWorld, props + ); +} +``` + +#### [After](#tab/after) + +```typescript +public updateView(context: ComponentFramework.Context): React.ReactElement { + const props: IHelloWorldProps = { + onCustomEvent1: () => { + // Trigger event with a string as payload + context.events.customEvent1("Hello from event 1") + }, + onCustomEvent2: () => { + let defaultPrevented = false; + // Trigger event with a payload object and a preventDefault function + context.events.customEvent2({ message: "Hello from event 2", preventDefault: () => { defaultPrevented = true } }) + + // Check if the event was prevented + if (defaultPrevented) { + alert("Event 2 prevented default!"); + } else { + alert("Event 2 default NOT prevented"); + } + } + }; + return React.createElement( + HelloWorld, props + ); +} +``` + +--- + +Then: + +1. [Rebuild and Deploy the component](tutorial-define-event.md#build-and-package). +1. Add another field to the form used [before](tutorial-define-event.md#use-in-a-model-driven-app) and also set that to use the new component. + + :::image type="content" source="media/event_mda_sample_param.png" alt-text="Diagram shows multiple controls added to the form"::: + +### Use the payload in the event handler + +Update the `onLoad` function to set the event handlers on the custom controls to react to events from both controls and also to make use of the parameters being passed + +#### [Before](#tab/before) + +```javascript +/* eslint-disable */ +"use strict"; + +var MyScriptsNameSpace = window.MyScriptsNameSpace || {}; +(function () { + +const controlName1 = "cr116_personid"; + +this.onLoad = function (executionContext) { + const formContext = executionContext.getFormContext(); + + const sampleControl1 = formContext.getControl(controlName1); + sampleControl1.addEventHandler("customEvent1", this.onSampleControl1CustomEvent1); + sampleControl1.addEventHandler("customEvent2", this.onSampleControl1CustomEvent2); +}; + +this.onSampleControl1CustomEvent1 = function (params) { + alert(`SampleControl1 Custom Event 1`); +}.bind(this); + +this.onSampleControl1CustomEvent2 = function (params) { + alert(`SampleControl1 Custom Event 2`); +}.bind(this); + +}).call(MyScriptsNameSpace); +``` + +#### [After](#tab/after) + +```javascript +/* eslint-disable */ +"use strict"; + +var MyScriptsNameSpace = window.MyScriptsNameSpace || {}; +(function () { + +const controlName1 = "cr116_personid"; +const controlName2 = "cr116_haircolor"; + +this.onLoad = function (executionContext) { + const formContext = executionContext.getFormContext(); + + const sampleControl1 = formContext.getControl(controlName1); + sampleControl1.addEventHandler("customEvent1", this.onSampleControl1CustomEvent1); + sampleControl1.addEventHandler("customEvent2", this.onSampleControl1CustomEvent2); + + const sampleControl2 = formContext.getControl(controlName2); + if (sampleControl2) { + sampleControl2.addEventHandler("customEvent1", this.onSampleControl2CustomEvent1); + sampleControl2.addEventHandler("customEvent2", this.onSampleControl2CustomEvent2); + } +}; + +this.onSampleControl1CustomEvent1 = function (params) { + alert(`SampleControl1 Custom Event 1: ${params.message}`); +}.bind(this); + +this.onSampleControl1CustomEvent2 = function (params) { + alert(`SampleControl1 Custom Event 2: ${params.message}`); +}.bind(this); + +this.onSampleControl2CustomEvent1 = function (params) { + alert(`SampleControl2 Custom Event 1: ${params}`); +} + +this.onSampleControl2CustomEvent2 = function (params) { + alert(`SampleControl2 Custom Event 2: ${params.message}`); + // prevent the default action for the event + params.preventDefault(); +}*/ +}).call(MyScriptsNameSpace); +``` + +--- + +### Test the model-driven app + +1. Navigate to the form. +1. Press **Trigger event 1** on the _first_ field. + + **Expected**: A pop-up displays **SampleControl1 Custom Event 1: Hello from event 1** on the first field. + +1. Press **Trigger event 2** on the _first_ field. + + **Expected**: A pop-up displays **SampleControl1 Custom Event 2: Hello from event 2** on the first field followed by an alert from the first control that says **Event 2 default NOT prevented** + +1. Press **Trigger event 1** on the _second_ field. + + **Expected**: A pop-up displays **SampleControl2 Custom Event 1: Hello from event 1** on the second field. + +1. Press **Trigger event 2** on the _second_ field. + + **Expected**: A pop-up displays **SampleControl2 Custom Event 2: Hello from event 2** on the second field followed by an alert from the second control that says **Event 2 default prevented** + +### Related articles + +[Define Events (preview)](events.md) \ No newline at end of file diff --git a/powerapps-docs/developer/component-framework/tutorial-use-dependent-libraries.md b/powerapps-docs/developer/component-framework/tutorial-use-dependent-libraries.md new file mode 100644 index 0000000000..a314645db6 --- /dev/null +++ b/powerapps-docs/developer/component-framework/tutorial-use-dependent-libraries.md @@ -0,0 +1,628 @@ +--- +title: "Tutorial: Use dependent libraries in a component" +description: "In this tutorial, learn how to use dependent libraries with a model-driven app." +author: anuitz +ms.author: anuitz +ms.date: 04/04/2025 +ms.reviewer: jdaly +ms.topic: tutorial +ms.subservice: pcf +contributors: + - JimDaly + - kierantpetrie +--- +# Tutorial: Use dependent libraries in a component + +[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] + +This tutorial shows how to build a code component for model-driven apps that is dependent on libraries that are contained in another component. +[Learn more about the dependent libraries preview](dependent-libraries.md) + +## Goal + +Follow the steps in this tutorial to create a library control and a control that depends on it. This tutorial contains the following steps: + +1. [Build the library component](#1-build-the-library-component): Create a component that only contains the reusable library. For simplicity, this control only contains the reusable library. There's no reason it couldn't also provide functionality. +1. [Build the dependent control](#2-build-the-dependent-control): Create a component that uses the library defined in the library control and add it to a form of a model-driven app to verify that it works. +1. [Load dependent library on demand](#3-load-dependent-library-on-demand): Expand on the example to make the dependent component load the library resource on demand rather than have the framework load the library when the control loads. + +## Prerequisites + +You should already know how to: + +- [Create and build a code component](create-custom-controls-using-pcf.md) +- [Package a code component](import-custom-controls.md) +- [Add code components to a model-driven app](add-custom-controls-to-a-field-or-entity.md#add-a-code-component-to-a-column) + +## 1. Build the library component + +This component doesn't provide any capabilities by itself. It's simply a container for the library. + +The first step is to create a new component using the [pac pcf init command](/power-platform/developer/cli/reference/pcf#pac-pcf-init): + + ```cmd + pac pcf init -n StubLibrary -ns SampleNamespace -t field -npm + ``` + +### Define the library + +1. You need a new declaration file (d.ts) to describe the objects and functions contained in your library. Create a new file in the root folder of your project named `myLib.d.ts`: + + ```typescript + declare module 'myLib' { + export function sayHello(): string; + } + ``` + +1. We are going to expose our library as an UMD module, and we need to put the variable in the global scope. For this we need a new declaration file (d.ts). Create a new file in the root folder of your project named `global.d.ts`: + + ```typescript + /* eslint-disable no-var */ + declare global { + var myLib: typeof import('myLib'); + } + + export { }; + ``` + +1. Update tsconfig.json to allow UMD modules and javascript code as follows: + + #### [Before](#tab/before) + + ```json + { + "extends": "./node_modules/pcf-scripts/tsconfig_base.json", + "compilerOptions": { + "typeRoots": ["node_modules/@types"] + } + } + ``` + + #### [After](#tab/after) + + ```json + { + "extends": "./node_modules/pcf-scripts/tsconfig_base.json", + "compilerOptions": { + "typeRoots": ["node_modules/@types"], + "allowJs": true, + "allowUmdGlobalAccess": true, + "outDir": "dist" + }, + } + ``` + --- + +### Add the library + +In your new control folder, add a new folder to contain your libraries `libs` for this example create a new JavaScript file. This example uses a library named `myLib-v_0_0_1.js` that has a single `sayHello` function. + + ```javascript + // UMD module pattern + var myLib = (function (exports) { + "use strict"; + + function sayHello() { + return "Hello from myLib"; + } + + exports.sayHello = sayHello; + + return exports; + })(/** @type {import('myLib')} */ ({})); + ``` + +### Add Configuration data + +1. Add a file named `featureconfig.json` in the root folder of the project. +1. Add the following text to the `featureconfig.json` file: + + ```json + { + "pcfAllowCustomWebpack": "on", + "pcfAllowLibraryResources": "on" + } + ``` + + [Learn more about the featureconfig.json file](dependent-libraries.md#featureconfigjson) + +1. Add a new `webpack.config.js` file in the root folder of your project. This configuration data ensures that the libraries aren't bundled with the control output. Bundling isn't necessary because they're already packaged separately when you build the project. + + ```typescript + /* eslint-disable */ + "use strict"; + + module.exports = { + externals: { + "myLib": "myLib" + }, + } + ``` + + [Learn more about the webpack.config.js file](dependent-libraries.md#webpackconfigjs) + +1. Add a reference to the library under the `resources` in the control manifest. + +#### [Before](#tab/before) + +```xml + + + +``` + +#### [After](#tab/after) + +```xml + + + + + + +``` + +--- + +### Add the library to window + +The last step is to edit the `index.ts` of the control to bind the library to the [window](https://developer.mozilla.org/docs/Web/API/Window). + +#### [Before](#tab/before) + +```typescript +import { IInputs, IOutputs } from "./generated/ManifestTypes"; + +export class StubLibrary +implements ComponentFramework.StandardControl +{ + constructor() { + // Empty + } + + public init( + context: ComponentFramework.Context, + notifyOutputChanged: () => void, + state: ComponentFramework.Dictionary, + container: HTMLDivElement + ): void { + // Add control initialization code + } + + public updateView(context: ComponentFramework.Context): void { + // Add code to update control view + } + + public getOutputs(): IOutputs { + return {}; + } + + public destroy(): void { + // Add code to cleanup control if necessary + } +} +``` + +#### [After](#tab/after) + +```typescript +import * as myLib from 'myLib'; +import { IInputs, IOutputs } from "./generated/ManifestTypes"; + +export class StubLibrary +implements ComponentFramework.StandardControl +{ + constructor() { + // Empty + } + + public init( + context: ComponentFramework.Context, + notifyOutputChanged: () => void, + state: ComponentFramework.Dictionary, + container: HTMLDivElement + ): void { + // Add control initialization code + } + + public updateView(context: ComponentFramework.Context): void { + // Add code to update control view + } + + public getOutputs(): IOutputs { + return {}; + } + + public destroy(): void { + // Add code to cleanup control if necessary + } +} + +(function () { + window.myLib = myLib; +})(); +``` + +--- + +The library project should look like this:- + +:::image type="content" source="media/dependent-library-libprojectview.png" alt-text="View of the project folder"::: + +### Build and package the library component + +To finish the library component, complete the following steps as usual: + +1. [Create and build the code component](create-custom-controls-using-pcf.md) +1. [Package the code component](import-custom-controls.md) +1. [Deploy the code component](import-custom-controls.md#deploying-code-components) + +## 2. Build the dependent control + +Now that you have a library control, you need a control to depend on it. + +1. Create a new component using this command: + + ```cmd + pac pcf init -n DependencyControl -ns SampleNamespace -t field -fw react -npm + ``` + +1. Add a new feature control file in the root folder of your project called `featureconfig.json` containing the following text: + + ```json + { + "pcfResourceDependency": "on" + } + ``` + +1. Add the dependent resource in the control manifest. + + Use the `schemaName` of the dependent control `[solution prefix]_[namespace].[control name]` which you can find in the `solution.xml` file for the dependent component. The XML in the solution.xml file might look like this: + + ```xml + + + + ``` + +#### [Before](#tab/before) + +```xml + + + + + +``` + +#### [After](#tab/after) + +```xml + + + + + + +``` + +--- + +### Add Global.d.ts + +Since the StubLibrary is exposed as an UMD module, we need to put the variable in the global scope. For this we need a new declaration file (d.ts). Create a new file in the root folder of your project named `global.d.ts`: + +```typescript +/* eslint-disable no-var */ + +interface MyLib { + sayHello(): string; +} + +declare global { + var myLib: MyLib; +} + +export { }; + +``` + +### Use the library function + +Update the component `HelloWorld.tsx` file so that it uses a function from the dependent library. The library is loaded into the `Window` object at runtime. + +#### [Before](#tab/before) + +```typescript +import * as React from 'react'; +import { Label } from '@fluentui/react-components'; + +export interface IHelloWorldProps { + name?: string; +} + +export class HelloWorld extends React.Component { + public render(): React.ReactNode { + return ( + + ) + } +} + +``` + +#### [After](#tab/after) + +```typescript +import * as React from 'react'; +import { Label } from '@fluentui/react-components'; + +export interface IHelloWorldProps { + name?: string; +} + +export class HelloWorld extends React.Component { + public render(): React.ReactNode { + return ( + + ) + } +} +``` + +--- + +### Build and package the dependent component + +To finish the dependent component, complete the following steps as usual: + +1. [Create and build the code component](create-custom-controls-using-pcf.md) +1. [Package the code component](import-custom-controls.md) +1. [Deploy the code component](import-custom-controls.md#deploying-code-components) + +### Add the component to a form + +1. [Add the component to the model-driven form](code-components-model-driven-apps.md#add-code-components-to-model-driven-apps). + +1. Navigate to the form and you should see the component show the text `Hello from myLib from Dependency`. + + :::image type="content" source="media/dependent-library-running.png" alt-text="Image of component running in an environment"::: + +## 3. Load dependent library on demand + +You can expand on this example by changing the dependent component to load the library resource on demand rather than have the framework load the library when the component loads. On demand load behavior is useful if the libraries being used by the control are large and would increase the load time of the form. + +### Specify on demand load behavior + +To specify on demand load behavior, modify the control manifest of the component created in [2. Build the dependent control](#2-build-the-dependent-control). + +#### [Before](#tab/before) + +```xml + + + + + + +``` + +#### [After](#tab/after) + +```xml + + + + + + + + + + +``` + +--- + +### Modify the dependent component to load library on demand + +Modify the `HelloWorld.tsx` to add a state and methods to update it once the dependency loads. + +#### [Before](#tab/before) + +```typescript +import * as React from 'react'; +import { Label } from '@fluentui/react-components'; + +export interface IHelloWorldProps { + name?: string; +} + +export class HelloWorld extends React.Component { + public render(): React.ReactNode { + return ( + + ) + } +} +``` + +#### [After](#tab/after) + +```typescript +import * as React from 'react'; +import { Label } from '@fluentui/react-components'; + +export interface IHelloWorldProps { + name?: string; +} + +export class HelloWorld extends React.Component { + constructor(props: IHelloWorldProps) { + super(props); + this.state = { + loaded: false + }; + } + + public afterPageLoad() { + this.setState({ loaded: true }); + } + + public render(): React.ReactNode { + return ( + + ) + } +} +``` + +--- + +### Update index.ts + +When the script is loaded on demand, you need to make slight adjustments to how the component is created and initialized. For example, new variables for references to the context and the container to update the state. + +Most importantly add a `getActions` method to react to the On Load and request the dependent control to be loaded. + +#### [Before](#tab/before) + +```typescript +import { IInputs, IOutputs } from "./generated/ManifestTypes"; +import { HelloWorld, IHelloWorldProps } from "./HelloWorld"; +import * as React from "react"; + +export class DependencyControl implements ComponentFramework.ReactControl { + private notifyOutputChanged: () => void; + + constructor() { + // Empty + } + + public init( + context: ComponentFramework.Context, + notifyOutputChanged: () => void, + state: ComponentFramework.Dictionary + ): void { + this.notifyOutputChanged = notifyOutputChanged; + } + + public updateView(context: ComponentFramework.Context): React.ReactElement { + const props: IHelloWorldProps = { name: 'Power Apps' }; + return React.createElement( + HelloWorld, props + ); + } + + public getOutputs(): IOutputs { + return { }; + } + + public destroy(): void { + // Add code to cleanup control if necessary + } +} + +``` + +#### [After](#tab/after) + +```typescript +import { IInputs, IOutputs } from "./generated/ManifestTypes"; +import { HelloWorld} from "./HelloWorld"; +import * as React from "react"; + +export class DependencyControl implements ComponentFramework.ReactControl { + private theComponent: ComponentFramework.ReactControl; + private notifyOutputChanged: () => void; + private context: ComponentFramework.Context; + private mainContainerRef: React.RefObject = React.createRef(); + + constructor() { + // Empty + } + + public init( + context: ComponentFramework.Context, + notifyOutputChanged: () => void, + state: ComponentFramework.Dictionary + ): void { + this.notifyOutputChanged = notifyOutputChanged; + this.context = context; + } + + public updateView(context: ComponentFramework.Context): React.ReactElement { + return React.createElement( + HelloWorld, {ref: this.mainContainerRef } + ); + } + + public getOutputs(): IOutputs { + return { }; + } + + public getActions(): {afterPageLoad: ()=>Promise} { + return { + afterPageLoad: async () => { + console.log("afterPageLoad"); + const loadedControl = await this.context.utils.loadDependency?.("samples_SampleNamespace.StubLibrary"); + if (loadedControl) { + this.mainContainerRef.current?.afterPageLoad(); + } + }, + }; + } + + public destroy(): void { + // Add code to cleanup control if necessary + } +} +``` + +--- + +### Final steps + +1. Update the version number of the control in the `ControlManifest.Input.xml` and the version in the `Solution.xml` +1. Rebuild, package, deploy, and publish the solution with the updated control. + +### Verify results + +Now, when the page loads you see the control load with `Loading...` displayed. + +:::image type="content" source="media/dependent-library-loading.png" alt-text="Image of component while the form loads" lightbox="media/dependent-library-loading.png"::: + +Once the page loads, the control updates to display `Hello from myLib Dependency On Demand Load`. + +:::image type="content" source="media/dependent-library-loaded.png" alt-text="Image of component once the form has loaded" lightbox="media/dependent-library-loaded.png"::: + +### Related articles + +[Dependent Libraries (preview)](dependent-libraries.md) diff --git a/powerapps-docs/developer/component-framework/use-sample-components.md b/powerapps-docs/developer/component-framework/use-sample-components.md index a5ba819fec..5a9e41ccb3 100644 --- a/powerapps-docs/developer/component-framework/use-sample-components.md +++ b/powerapps-docs/developer/component-framework/use-sample-components.md @@ -5,7 +5,7 @@ author: anuitz ms.author: anuitz ms.date: 08/01/2023 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: pcf contributors: - JimDaly diff --git a/powerapps-docs/developer/data-platform/TOC.yml b/powerapps-docs/developer/data-platform/TOC.yml index cb74c42adf..7be9f6d78e 100644 --- a/powerapps-docs/developer/data-platform/TOC.yml +++ b/powerapps-docs/developer/data-platform/TOC.yml @@ -24,6 +24,8 @@ href: security-access-coding.md - name: Security roles and templates href: security-roles.md + - name: Column-level security + href: column-level-security.md - name: Microsoft Entra ID group teams href: aad-group-team.md - name: Work with data using code @@ -46,7 +48,7 @@ href: ./search/statistics-status.md - name: Legacy search href: ./search/legacy.md - - name: Custom Analyzers + - name: Configure Azure AI built-in analyzers href: ./search/custom-search-analyzer.md - name: Query data using FetchXml items: @@ -137,11 +139,8 @@ - name: "Dataverse SQL" href: how-dataverse-sql-differs-from-transact-sql.md - name: Bulk Operation messages - displayName: CreateMultiple, UpdateMultiple, UpsertMultiple + displayName: CreateMultiple, UpdateMultiple, UpsertMultiple, DeleteMultiple href: bulk-operations.md - items: - - name: Use DeleteMultiple (preview) - href: deletemultiple.md - name: Restore deleted records (preview) displayName: RecycleBin, Restore href: restore-deleted-records.md @@ -411,8 +410,6 @@ href: time-zone-entities.md - name: BusinessUnit table href: businessunit-entity.md - - name: Field security tables - href: field-security-entities.md - name: Use access teams and owner teams to collaborate and share information href: use-access-teams-owner-teams-collaborate-share-information.md - name: Azure AD user tables @@ -442,8 +439,8 @@ href: entity-attribute-metadata-messages.md - name: Behavior and format of the date and time column href: behavior-format-date-time-attribute.md - - name: Formula, calculated, and rollup columns - href: calculated-rollup-attributes.md + - name: Specialized columns + href: specialized-columns.md - name: Create auto-number columns href: create-auto-number-attributes.md - name: Choices @@ -537,8 +534,8 @@ href: walkthrough-register-app-azure-active-directory.md - name: "Tutorial: Create an ASP.NET Core Blazor WebAssembly App" href: walkthrough-blazor-webassembly-single-tenant.md - - name: "Quick Start: Register and configure a SPA application with msal.js" - href: quick-start-register-configure-simplespa-application-msal-js.md + - name: "Quick Start: Register and configure a SPA application with MSAL.js" + href: webapi/quick-start-js-spa.md - name: Transition apps to Dataverse ServiceClient href: sdk-client-transition.md - name: Best practices diff --git a/powerapps-docs/developer/data-platform/aad-group-team.md b/powerapps-docs/developer/data-platform/aad-group-team.md index e49171c867..e5ebbca4ae 100644 --- a/powerapps-docs/developer/data-platform/aad-group-team.md +++ b/powerapps-docs/developer/data-platform/aad-group-team.md @@ -6,7 +6,7 @@ ms.date: 09/21/2023 ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" ms.assetid: 767f39d4-6a8e-48f0-bf7d-69ea1191acef diff --git a/powerapps-docs/developer/data-platform/aaduser-entity.md b/powerapps-docs/developer/data-platform/aaduser-entity.md index ca07df0d7f..02a734eab1 100644 --- a/powerapps-docs/developer/data-platform/aaduser-entity.md +++ b/powerapps-docs/developer/data-platform/aaduser-entity.md @@ -1,14 +1,13 @@ --- -title: "Azure Active Directory user (AADUser) table (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "An Azure Active Directory user virtual table in Microsoft Dataverse." # 115-145 characters including spaces. This abstract displays in the search result. -ms.custom: "" +title: "Azure Active Directory user (AADUser) table (Microsoft Dataverse) | Microsoft Docs" +description: "An Azure Active Directory user virtual table in Microsoft Dataverse." ms.date: 04/20/2022 ms.reviewer: "pehecke" ms.topic: "article" -author: "NHelgren" # GitHub ID +author: "NHelgren" ms.service: powerapps ms.subservice: dataverse-developer -ms.author: "nhelgren" # MSFT alias of Microsoft employees only +ms.author: "nhelgren" search.audienceType: - developer --- diff --git a/powerapps-docs/developer/data-platform/access-web-services.md b/powerapps-docs/developer/data-platform/access-web-services.md index 7f19a66531..e21a9f3d81 100644 --- a/powerapps-docs/developer/data-platform/access-web-services.md +++ b/powerapps-docs/developer/data-platform/access-web-services.md @@ -2,16 +2,16 @@ title: "Access external web services (Microsoft Dataverse) | MicrosoftDocs" description: "Learn how to access a web service from a custom plug-in or workflow activity." ms.custom: "" -ms.date: 01/24/2025 -ms.reviewer: "pehecke" -ms.topic: "article" -author: MicroSri +ms.date: 06/10/2025 +ms.reviewer: pehecke +ms.topic: article +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: "pehecke" +ms.author: jukoesma search.audienceType: - developer contributors: - - PHecke + - phecke --- # Access external web services @@ -22,7 +22,7 @@ Plug-ins and custom workflow activities can access the network through the HTTP - Access to localhost (loopback) isn't permitted. - IP addresses can't be used. You must use a named web address that requires DNS name resolution. - Anonymous authentication is supported and recommended. There's no provision for prompting the logged on user for credentials, or saving those credentials. -- Your server must allow connections from [Power Platform and Dynamics 365 services IP address values specified under the AzureCloud service tag](/power-platform/admin/online-requirements#ip-addresses-required). +- Your server must allow connections from Power Platform and Dynamics 365 services [IP address values](/power-platform/admin/online-requirements#ip-addresses-required) specified under the `PowerPlatformPlex` service tag. Other methods of accessing web services include the use of Webhooks and the [!INCLUDE [pn_azure_service_bus](../../includes/pn_azure_service_bus.md)]. Refer to the links provided in the next sections for more information on those topics. diff --git a/powerapps-docs/developer/data-platform/activitypointer-activity-entity.md b/powerapps-docs/developer/data-platform/activitypointer-activity-entity.md index 11d8a89c06..7fcf40ecca 100644 --- a/powerapps-docs/developer/data-platform/activitypointer-activity-entity.md +++ b/powerapps-docs/developer/data-platform/activitypointer-activity-entity.md @@ -3,7 +3,7 @@ title: Activity (ActivityPointer) table description: Learn how to work with the Activity (ActivityPointer) table in Microsoft Dataverse. ms.date: 07/03/2023 ms.reviewer: pehecke -ms.topic: conceptual +ms.topic: article author: DanaMartens ms.author: dmartens ms.subservice: dataverse-developer diff --git a/powerapps-docs/developer/data-platform/analyze-performance.md b/powerapps-docs/developer/data-platform/analyze-performance.md index fda75ee8a8..cd4cd17224 100644 --- a/powerapps-docs/developer/data-platform/analyze-performance.md +++ b/powerapps-docs/developer/data-platform/analyze-performance.md @@ -1,12 +1,12 @@ --- title: "Analyze plug-in performance (Microsoft Dataverse) | Microsoft Docs" description: "Learn how to find and analyze performance data on plug-ins execution." -ms.date: 08/15/2023 -ms.reviewer: "pehecke" -ms.topic: "article" -author: MicroSri +ms.date: 06/20/2025 +ms.reviewer: pehecke +ms.topic: article +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: "pehecke" +ms.author: jukoesma search.audienceType: - developer contributors: @@ -14,16 +14,16 @@ contributors: --- # Analyze plug-in performance -When you add business logic to your plug-in you should be aware of the impact your plug-ins will have on overall system performance. +When you add business logic to your plug-in you should be aware of the impact your plug-ins have on overall system performance. ## Time and resource constraints -There is a hard **2-minute time limit** for a Dataverse message operation to complete. This limit includes executing the intended message operation and all registered synchronous plug-ins. There are also limitations on the amount of CPU and memory resources that can be used by extensions. If the limits are exceeded an exception is thrown and the entire message operation will be cancelled (rolled back). +There's a hard **2-minute time limit** for a Dataverse message operation to complete. This limit includes executing the intended message operation and all registered synchronous plug-ins. There are also limitations on the amount of CPU and memory resources that extensions can use. If the limits are exceeded, Dataverse throws an exception and the entire message operation is canceled (rolled back). -If the time limit is exceeded, an will be thrown. If any custom extension exceeds threshold CPU, memory, or handle limits or is otherwise unresponsive, that process will be killed by the platform. At that point any current extension in that process will fail with exceptions. However, the next time that the extension is executed it will run normally. +If the time limit is exceeded, Dataverse throws a . If any custom extension exceeds threshold CPU, memory, or handle limits or is otherwise unresponsive, Dataverse kills that process. At that point any current extension in that process fails with exceptions. However, the next time that the extension is executed it will run normally. > [!IMPORTANT] -> You cannot control how long the message operation or other synchronous registered plug-ins take to execute. You can only control how long your plug-in takes to execute based on its design and coding. +> You can't control how long the message operation or other synchronous registered plug-ins take to execute. You can only control how long your plug-in takes to execute based on its design and coding. > > Our general recommendation is to limit the time your plug-in takes to execute to no more than 2 seconds. > @@ -34,7 +34,7 @@ More information: [Best practices and guidance regarding plug-in and workflow de ## Monitor performance > [!IMPORTANT] -> This feature is no longer operational or supported. Do not use. +> This feature is no longer operational or supported. Don't use. > > This section will be removed in a future article update. diff --git a/powerapps-docs/developer/data-platform/api-limits.md b/powerapps-docs/developer/data-platform/api-limits.md index 17090a6c3c..a60977575c 100644 --- a/powerapps-docs/developer/data-platform/api-limits.md +++ b/powerapps-docs/developer/data-platform/api-limits.md @@ -4,9 +4,9 @@ description: "Understand what a developer needs to do to manage service protecti ms.date: 11/26/2024 ms.reviewer: jdaly ms.topic: article -author: MicroSri +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/application-insights-ilogger.md b/powerapps-docs/developer/data-platform/application-insights-ilogger.md index ede55b5d3b..449fb1cc29 100644 --- a/powerapps-docs/developer/data-platform/application-insights-ilogger.md +++ b/powerapps-docs/developer/data-platform/application-insights-ilogger.md @@ -1,11 +1,11 @@ --- title: "Write Telemetry to your Application Insights resource using ILogger (Microsoft Dataverse) | Microsoft Docs" description: "When you enable Application Insights for your organization, any plug-ins written using the ILogger Interface provided in the SDK writes telemetry to your Application Insights resource." -ms.date: 03/10/2023 -author: MicroSri -ms.author: sriknair +ms.date: 06/20/2025 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to ms.subservice: dataverse-developer search.audienceType: - developer @@ -17,12 +17,12 @@ contributors: # Write Telemetry to your Application Insights resource using ILogger > [!IMPORTANT] -> To use this capability you must first enable the Application Insights integration feature. More information: [Analyze model-driven apps and Microsoft Dataverse telemetry with Application Insights](/power-platform/admin/analyze-telemetry)

-> There is presently no support of `ILogger` within a plug-in profiling/debug session of the Plug-in Registration tool or the Power Platform Tools extension for Visual Studio. +> To use this capability, you must first enable the Application Insights integration feature using an administrator account. Ensure that the user enabling the feature has the necessary privileges to modify the Dataverse organization (such as System Administrator role or being a Power Platform/Dynamics 365 admin) and has contributor access to the Application Insights resource. If a user without the necessary permissions enables the integration, telemetry data will not be written to Application Insights. More information: [Analyze model-driven apps and Microsoft Dataverse telemetry with Application Insights](/power-platform/admin/analyze-telemetry)

+> There's presently no support of `ILogger` within a plug-in profiling/debug session of the Plug-in Registration tool or the Power Platform Tools extension for Visual Studio. When you enable Application Insights for your organization, any plug-ins written using the [ILogger Interface](/dotnet/api/microsoft.xrm.sdk.plugintelemetry.ilogger) provided in the SDK for .NET assemblies write telemetry to your Application Insights resource. -The Dataverse platform captures the Dataverse and model-driven app telemetry data and exports it to your Application Insights resource. There's some latency between the time it was captured and when it becomes available to you in Application Insights. Because Microsoft gathers this telemetry, you don't need to write any code to enable it. +The Dataverse platform captures the Dataverse and model-driven app telemetry data and exports it to your Application Insights resource. There's some latency between the time it was captured and when it becomes available to you in Application Insights. Because Microsoft gathers this telemetry, you don't need to write any code to enable it. Telemetry data that comes from plug-ins using the ILogger interface is different in two ways: @@ -37,24 +37,24 @@ Using ILogger provides true telemetry data and is intended to work together with |---------|---------|---------| |Intended use|Capture telemetry over time for analysis and debugging.|While developing and debugging plug-ins| |How long data is stored|According to your Application Insights data retention period, which is 90 days by default|24 hours| -|Available|Only for organizations that have subscribed to Application Insights integration.|Available for any organization when Plug-in tracing is enabled.| -|Amount of data|Each log message can pass a String value.|Only 10 kb of text can be written for each plug-in execution. Any more is truncated.| +|Available|Only for organizations that subscribe to Application Insights integration.|Available for any organization when Plug-in tracing is enabled.| +|Amount of data|Each log message can pass a String value.|Only 10 kb of text can be written for each plug-in execution. The text is truncated after the first 10 kb.| |Available in runtime errors|No|Available in model-driven app client errors and as annotations in Web API. More information: [Include more details with errors](webapi/compose-http-requests-handle-errors.md#include-more-details-with-errors)| You should continue to use the [ITracingService.Trace](xref:Microsoft.Xrm.Sdk.ITracingService.Trace%2A) to write to the Plug-in Trace Log table when needed. Not every organization enables Application Insights. If your plug-in code uses the ILogger interface and the organization doesn't have Application Insights integration enabled, nothing is written. So, it's important to continue to use the ITracingService Trace method in your plug-ins. Plug-in trace logs continue to be an important way to capture data while developing and debugging plug-ins, but they were never intended to provide telemetry data. More information: [Plug-ins: Tracing and logging](logging-tracing.md) You should use [ILogger](xref:Microsoft.Xrm.Sdk.PluginTelemetry.ILogger) because it provides telemetry about what happens within a plug-in. This telemetry is integrated with the larger scope of data captured with the Application Insights integration. The Application Insights integration tells you when a plug-in executes, how long it takes to run and whether it makes any external http requests, but Microsoft can't add any telemetry code within the plug-ins that you write to extend the behavior of the platform. -If you're an ISV with a product that includes plug-ins, your customers who enable Application Insights appreciate being able to see what is going on within your plug-ins and this data may help you support them if there are issues. But data captured using ILogger is only sent to the subscribing customer's resource. You'll only be able to see data captured for your own environments when you have Application Insights enabled. +If you're an ISV with a product that includes plug-ins, your customers who enable Application Insights appreciate being able to see what is going on within your plug-ins and this data might help you support them if there are issues. But data captured using ILogger is only sent to the subscribing customer's resource. You'll only be able to see data captured for your own environments when you have Application Insights enabled. ## Use ILogger -ILogger is a common interface for capturing log information. The implementation provided with the SDK for .NET assemblies provides common methods to support establishing a scope and different levels of logging. There's currently no setting to control what level of logs are written. The levels can be used within Application Insights to filter which logs to view. +ILogger is a common interface for capturing log information. The implementation provided with the SDK for .NET assemblies provides common methods to support establishing a scope and different levels of logging. There's currently no setting to control what level of logs are written. The levels can be used within Application Insights to filter the logs to view. -The following is an example of a plug-in using both ILogger and ITracingService.Trace. +The following example plug-in shows using both ILogger and ITracingService.Trace. > [!NOTE] -> Make sure you include `using Microsoft.Xrm.Sdk.PluginTelemetry;`. Don't use `using Microsoft.Extensions.Logging;`, otherwise the `ILogger` instance will be null. +> Make sure you include `using Microsoft.Xrm.Sdk.PluginTelemetry;`. Don't use `using Microsoft.Extensions.Logging;`, otherwise the `ILogger` instance is null. ```csharp using Microsoft.Xrm.Sdk; @@ -206,7 +206,7 @@ When this plug-in is registered on a synchronous `PostOperation` step for the `C You can filter items for a single operation using the `operation_ParentId` that represents the request ID of the response header. -:::image type="content" source="media/application-insights-ilogger-trace-operation_parentid.png" alt-text="Filter items for a single operation using the operation_ParentId ."::: +:::image type="content" source="media/application-insights-ilogger-trace-operation_parentid.png" alt-text="Filter items for a single operation using the operation_ParentId."::: The corresponding plug-in trace log entry looks like this: @@ -232,7 +232,7 @@ And this query limits the results to the logs added during the `OutboundCall` sc ## Logging Exceptions -At the bottom of the plug-in code example above, the following code uses [LogError](/dotnet/api/microsoft.xrm.sdk.plugintelemetry.ilogger.logerror) to log a caught exception and throws an [InvalidPluginExecutionException](/dotnet/api/microsoft.xrm.sdk.invalidpluginexecutionexception): +At the bottom of the previous plug-in code example, the following code uses [LogError](/dotnet/api/microsoft.xrm.sdk.plugintelemetry.ilogger.logerror) to log a caught exception and throws an [InvalidPluginExecutionException](/dotnet/api/microsoft.xrm.sdk.invalidpluginexecutionexception): ```csharp catch (Exception e) @@ -250,7 +250,7 @@ Using the plug-in code above, you can cause an exception by passing an invalid v This value overrides the default value (`https://www.bing.com`) and cause the outbound call to fail. -There's nothing wrong with the request that a client may send: +There's nothing wrong with the request that a client might send: ```http POST [Organization URI]/api/data/v9.1/accounts HTTP/1.1 @@ -326,7 +326,7 @@ Within Application Insights, if you view traces scoped to this request and with :::image type="content" source="media/application-insights-ilogger-trace-error.png" alt-text="View traces scoped to this request and with the scope set to OutboundCall."::: -Within Application Insights, when you switch your query to use `exceptions` rather than `traces`, you'll see three exceptions logged: +Within Application Insights, when you switch your query to use `exceptions` rather than `traces`, you see three exceptions logged: :::image type="content" source="media/application-insights-ilogger-cause-error-exceptions.png" alt-text="Switch your query to use exceptions rather than traces."::: diff --git a/powerapps-docs/developer/data-platform/apply-business-logic-with-code.md b/powerapps-docs/developer/data-platform/apply-business-logic-with-code.md index 8741fb4a6c..463000f8f7 100644 --- a/powerapps-docs/developer/data-platform/apply-business-logic-with-code.md +++ b/powerapps-docs/developer/data-platform/apply-business-logic-with-code.md @@ -2,8 +2,8 @@ title: Apply business logic using code (Microsoft Dataverse)| Microsoft Docs description: Learn how to write code to customize business data processing in Microsoft Dataverse. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke suite: powerapps ms.subservice: dataverse-developer diff --git a/powerapps-docs/developer/data-platform/asynchronous-service.md b/powerapps-docs/developer/data-platform/asynchronous-service.md index 322eb0a3ea..f3a8a38fe7 100644 --- a/powerapps-docs/developer/data-platform/asynchronous-service.md +++ b/powerapps-docs/developer/data-platform/asynchronous-service.md @@ -900,7 +900,7 @@ Whether the requested operation occurs depends on the state of the system job. F |Option|Valid StateCode values|Change| |--|--|--| |**Delete**|any|System Job is deleted| -|**Cancel**|`0` (**Ready**)
`1` (**Suspended**)
`2` (**Locked**)|`StateCode` changed to `3` (**Completed**) and `StatusCode` changed to `32` (**Cancelled**)| +|**Cancel**|`0` (**Ready**)
`1` (**Suspended**)
`2` (**Locked**)|`StateCode` changed to `3` (**Completed**) and `StatusCode` changed to `32` (**Cancelled**), or `StateCode` changed to `3` (**Completed**) and `StatusCode` changed to `31` (**Failed**) | |**Resume**|`1` (**Suspended**)|StateCode changed to `0` (**Ready**)| |**Postpone**|`0` (**Ready**)
`2` (**Locked**)|Postpone Job dialog prompts user for datetime value to postpone the system job. [Learn to Postpone system jobs](#postpone-system-jobs)| |**Pause**|`2` (**Locked**)|StateCode changed to `1` (**Suspended**)| diff --git a/powerapps-docs/developer/data-platform/attachment-annotation-files.md b/powerapps-docs/developer/data-platform/attachment-annotation-files.md index 7a4d0ed58b..7088c75555 100644 --- a/powerapps-docs/developer/data-platform/attachment-annotation-files.md +++ b/powerapps-docs/developer/data-platform/attachment-annotation-files.md @@ -3,7 +3,7 @@ title: Use file data with Attachment and Note records description: Learn how to work with file data in the Attachments and Notes tables in Microsoft Dataverse ms.date: 02/02/2023 ms.reviewer: jdaly -ms.topic: conceptual +ms.topic: how-to author: mkannapiran ms.author: kamanick ms.subservice: dataverse-developer diff --git a/powerapps-docs/developer/data-platform/auditing/configure.md b/powerapps-docs/developer/data-platform/auditing/configure.md index f9110c935b..147f12b852 100644 --- a/powerapps-docs/developer/data-platform/auditing/configure.md +++ b/powerapps-docs/developer/data-platform/auditing/configure.md @@ -1,7 +1,7 @@ --- title: Configure auditing description: Learn how to programmatically configure auditing settings for the organization, tables, and columns in Microsoft Dataverse. -ms.date: 06/02/2023 +ms.date: 06/10/2025 ms.topic: overview ms.subservice: dataverse-developer author: paulliew @@ -21,7 +21,7 @@ Microsoft Dataverse auditing uses settings in the [Organization table](../refere ## Configure organization settings -Four properties in the [Organization table](../reference/entities/organization.md) control how auditing is enabled for an environment. The organization table contains a single row. The `organizationid` column is the primary key. Query the row directly to get the key value, or execute the `WhoAmI` message and take the value of the `WhoAmIResponse.OrganizationId` property. +Five properties in the [Organization table](../reference/entities/organization.md) control how auditing is enabled for an environment. The organization table contains a single row. The `organizationid` column is the primary key. Query the row directly to get the key value, or execute the `WhoAmI` message and take the value of the `WhoAmIResponse.OrganizationId` property. The following table describes the organization table columns that control auditing behavior. @@ -31,6 +31,7 @@ The following table describes the organization table columns that control auditi |`AuditRetentionPeriodV2`
`auditretentionperiodv2`
**Audit Retention Period Settings**|Integer|The number of days to retain audit log records
The default value is 30. Valid values are between 1 and 365,000 days (~1,000 years). If the value is set to -1, the records are retained forever.
[Administrator's guide: Start/stop auditing and set retention policy](/power-platform/admin/manage-dataverse-auditing#startstop-auditing-for-a-dataverse-environment-and-set-retention-policy)| |`IsUserAccessAuditEnabled`
`isuseraccessauditenabled`
**Is User Access Auditing Enabled**|Boolean|Whether user access logging is enabled
Auditing for the environment must be enabled for user access logging to be enabled.| |`UserAccessAuditingInterval`
`useraccessauditinginterval`
**User Authentication Auditing Interval**|Integer|How often user access is logged, in hours
The default value is 4.| +|`AuditSettings`
`auditsettings`
**Audit Settings**|String|Json format string. Contains audit feature related settings.| ### Retrieve organization settings @@ -42,6 +43,7 @@ Use the following queries to retrieve your organization settings. ```http GET [Organization URI]/api/data/v9.2/organizations?$select= +auditsettings, isauditenabled, auditretentionperiodv2, isuseraccessauditenabled, @@ -59,10 +61,11 @@ If-None-Match: null HTTP/1.1 200 OK { - "@odata.context": "[Organization URI]/api/data/v9.2/$metadata#organizations(isauditenabled,auditretentionperiodv2,isuseraccessauditenabled,useraccessauditinginterval)", + "@odata.context": "[Organization URI]/api/data/v9.2/$metadata#organizations(auditsettings,isauditenabled,auditretentionperiodv2,isuseraccessauditenabled,useraccessauditinginterval)", "value": [ { "@odata.etag": "W/\"67404512\"", + "auditsettings": "{\"IsSqlAuditWriteDisabled\":true}", "isauditenabled": true, "auditretentionperiodv2": 30, "isuseraccessauditenabled": true, @@ -84,16 +87,17 @@ Learn more about: ///

/// Shows Auditing Configuration properties /// -/// The IOrganizationService instance to use. -static void ShowAuditingConfig(IOrganizationService svc) +/// The IOrganizationService instance to use. +static void ShowAuditingConfig(IOrganizationService service) { WhoAmIResponse whoAmIResponse = - (WhoAmIResponse)svc.Execute(new WhoAmIRequest()); + (WhoAmIResponse)service.Execute(new WhoAmIRequest()); - Entity organization = svc.Retrieve( + Entity organization = service.Retrieve( entityName: "organization", id: whoAmIResponse.OrganizationId, columnSet: new ColumnSet( + "auditsettings", "isauditenabled", "auditretentionperiodv2", "isuseraccessauditenabled", @@ -101,6 +105,8 @@ static void ShowAuditingConfig(IOrganizationService svc) ) ); + Console.WriteLine($"auditsettings: " + + $"{organization["auditsettings"]}"); Console.WriteLine($"isauditenabled: " + $"{organization["isauditenabled"]}"); Console.WriteLine($"auditretentionperiodv2: " + @@ -123,13 +129,70 @@ Learn more about: ### Change organization settings -Change the column values in the organization table to change how auditing works for the environment. You must have the System Administrator or System Customizer role to change these settings. +Change the column values in the organization table to change how auditing works for the environment. You must have the System Administrator or System Customizer role to change these settings. [Learn more about reading and updating environment settings](../organization-table.md) -You can use Web API or Dataverse SDK for .NET to change your organization settings: +#### Change AuditSettings + +[Organization.AuditSettings](../reference/entities/organization.md#BKMK_AuditSettings) contains a json string to store settings to enable different capabilities. You can enable some capabilities by updating the `auditsettings` column of the organization record. The following table specifies what audit settings exist, what they're used for, and whether they can be changed. + +| Setting | Description | Updatable | +|-----------|-----------|-----------| +| `StoreLabelNameforPicklistAudits` | For audits of picklist values, audit both option value and option name. Otherwise only the option value. The original user selected label choice persists in the audit records. | Yes | +| `IsSqlAuditWriteDisabled` | If NoSql audits are enabled, stop writing data to sql audit table | No, throws an error. | +| `ApplyRetentionToExistingLogs` | Apply new retention policy to existing audit records | No, is ignored. | + +Use the following examples to set your organization settings. You'll need the `organizationid` value. See [Retrieve organization settings](#retrieve-organization-settings) for how to obtain it. + +##### [Web API](#tab/webapi) + +**Request:** + +```http +PATCH [Organization URI]/api/data/v9.2/organizations([Organization ID]) HTTP/1.1 +Content-Type: application/json +OData-MaxVersion: 4.0 +OData-Version: 4.0 +If-Match: * + +{ + "auditsettings": "{\"StoreLabelNameforPicklistAudits\":true}" +} +``` + +**Response:** + +```http +HTTP/1.1 204 No content +``` + +Learn more about: - [Update and delete table rows using the Web API](../webapi/update-delete-entities-using-web-api.md) + +##### [SDK for .NET](#tab/sdk) + +```csharp +/// +/// Sets audit settings +/// +/// The IOrganizationService instance to use. +static void SetAuditSettings(IOrganizationService service) +{ + WhoAmIResponse whoAmIResponse = + (WhoAmIResponse)service.Execute(new WhoAmIRequest()); + + var organization = new Entity("organization", whoAmIResponse.OrganizationId); + organization["auditsettings"] = "{\"StoreLabelNameforPicklistAudits\":true}"; + service.Update(organization); +} +``` + +Learn more about: + - [Update and delete table rows using the SDK for .NET](../org-service/entity-operations-update-delete.md) +--- + ## Configure tables and columns When auditing is enabled for the organization, any tables that are enabled for auditing write audit data for all columns that are enabled for auditing. The primary control is at the organization and then the table level. @@ -215,8 +278,8 @@ Learn more about: /// Lists the tables that can be enabled for auditing and /// the tables that cannot be enabled for auditing. /// -/// The IOrganizationService instance to use. -static void ShowTableAuditConfigurations(IOrganizationService svc) +/// The IOrganizationService instance to use. +static void ShowTableAuditConfigurations(IOrganizationService service) { //Define properties to return MetadataPropertiesExpression EntityProperties = @@ -247,7 +310,7 @@ static void ShowTableAuditConfigurations(IOrganizationService svc) }; RetrieveMetadataChangesResponse response = - (RetrieveMetadataChangesResponse)svc.Execute(request); + (RetrieveMetadataChangesResponse)service.Execute(request); Console.WriteLine("These tables can be enabled for auditing:"); response.EntityMetadata.ToList().ForEach(x => @@ -325,10 +388,10 @@ Learn more about: [Query table definitions using the Web API](../webapi/query-me /// Lists the columns of a table that can be enabled for auditing and /// the columns that cannot be enabled for auditing. /// -/// The IOrganizationService instance to use. +/// The IOrganizationService instance to use. /// The logical name of the table. static void ShowColumnAuditConfigurations( -IOrganizationService svc, +IOrganizationService service, string tableLogicalName) { @@ -379,7 +442,7 @@ RetrieveMetadataChangesRequest request = }; RetrieveMetadataChangesResponse response = - (RetrieveMetadataChangesResponse)svc.Execute(request); + (RetrieveMetadataChangesResponse)service.Execute(request); response.EntityMetadata.ToList().ForEach(x => { @@ -472,7 +535,7 @@ PublishXmlRequest request = new PublishXmlRequest() " }; -svc.Execute(request); +service.Execute(request); ``` Learn more about: diff --git a/powerapps-docs/developer/data-platform/auditing/retrieve-audit-data.md b/powerapps-docs/developer/data-platform/auditing/retrieve-audit-data.md index 18353138c5..b532aeb3b2 100644 --- a/powerapps-docs/developer/data-platform/auditing/retrieve-audit-data.md +++ b/powerapps-docs/developer/data-platform/auditing/retrieve-audit-data.md @@ -3,7 +3,7 @@ title: Retrieve the history of audited data changes description: Learn how to programmatically retrieve the audit change history of records in Microsoft Dataverse. ms.date: 06/02/2023 ms.reviewer: jdaly -ms.topic: conceptual +ms.topic: how-to author: paulliew ms.author: paulliew ms.subservice: dataverse-developer diff --git a/powerapps-docs/developer/data-platform/authenticate-dot-net-framework.md b/powerapps-docs/developer/data-platform/authenticate-dot-net-framework.md index 1aa2bad53f..6595e7c26a 100644 --- a/powerapps-docs/developer/data-platform/authenticate-dot-net-framework.md +++ b/powerapps-docs/developer/data-platform/authenticate-dot-net-framework.md @@ -5,7 +5,7 @@ ms.custom: "" ms.date: 01/06/2022 ms.reviewer: "pehecke" -ms.topic: "article" +ms.topic: concept-article author: "paulliew" # GitHub ID ms.subservice: dataverse-developer ms.author: "jdaly" # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/authenticate-oauth.md b/powerapps-docs/developer/data-platform/authenticate-oauth.md index 7f5f03b67a..8395ef971f 100644 --- a/powerapps-docs/developer/data-platform/authenticate-oauth.md +++ b/powerapps-docs/developer/data-platform/authenticate-oauth.md @@ -4,7 +4,7 @@ description: "Learn how to authenticate applications with Microsoft Dataverse us ms.custom: has-adal-ref ms.date: 12/04/2024 ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to author: ritesp # GitHub ID ms.subservice: dataverse-developer ms.author: ritesp # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/authenticate-office365-deprecation.md b/powerapps-docs/developer/data-platform/authenticate-office365-deprecation.md index 12b8f1b60b..ad6f4d9cdd 100644 --- a/powerapps-docs/developer/data-platform/authenticate-office365-deprecation.md +++ b/powerapps-docs/developer/data-platform/authenticate-office365-deprecation.md @@ -5,7 +5,7 @@ ms.custom: "" ms.date: 12/04/2024 ms.reviewer: "pehecke" -ms.topic: "article" +ms.topic: how-to author: "phecke" # GitHub ID ms.subservice: dataverse-developer ms.author: "pehecke" # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/azure-integration.md b/powerapps-docs/developer/data-platform/azure-integration.md index 38bbe389b1..138844b82e 100644 --- a/powerapps-docs/developer/data-platform/azure-integration.md +++ b/powerapps-docs/developer/data-platform/azure-integration.md @@ -4,7 +4,7 @@ description: "Learn how Microsoft Dataverse can be configured to send data to th ms.collection: get-started ms.date: 07/17/2024 ms.reviewer: "pehecke" -ms.topic: "article" +ms.topic: how-to author: "jaredha" ms.subservice: dataverse-developer ms.author: "pehecke" diff --git a/powerapps-docs/developer/data-platform/behavior-format-date-time-attribute.md b/powerapps-docs/developer/data-platform/behavior-format-date-time-attribute.md index 7f7bb36e8f..318492ff96 100644 --- a/powerapps-docs/developer/data-platform/behavior-format-date-time-attribute.md +++ b/powerapps-docs/developer/data-platform/behavior-format-date-time-attribute.md @@ -3,7 +3,7 @@ title: "Configure the behavior and format of the date and time column using code description: "The DateTimeAttributeMetadata class is used to define and manage columns of type DateTime in Microsoft Dataverse." ms.date: 10/19/2023 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to author: mkannapiran ms.author: kamanick ms.subservice: dataverse-developer diff --git a/powerapps-docs/developer/data-platform/best-practices/business-logic/develop-iplugin-implementations-stateless.md b/powerapps-docs/developer/data-platform/best-practices/business-logic/develop-iplugin-implementations-stateless.md index 5bf09ca9b1..6f463b1975 100644 --- a/powerapps-docs/developer/data-platform/best-practices/business-logic/develop-iplugin-implementations-stateless.md +++ b/powerapps-docs/developer/data-platform/best-practices/business-logic/develop-iplugin-implementations-stateless.md @@ -4,7 +4,7 @@ description: "Members of classes that implement IPlugin are exposed to potential suite: powerapps author: jowells ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to ms.date: 9/05/2019 ms.subservice: dataverse-developer ms.author: jowells diff --git a/powerapps-docs/developer/data-platform/best-practices/business-logic/do-not-use-parallel-execution-in-plug-ins.md b/powerapps-docs/developer/data-platform/best-practices/business-logic/do-not-use-parallel-execution-in-plug-ins.md index e86ad7c0d3..133eecd4a6 100644 --- a/powerapps-docs/developer/data-platform/best-practices/business-logic/do-not-use-parallel-execution-in-plug-ins.md +++ b/powerapps-docs/developer/data-platform/best-practices/business-logic/do-not-use-parallel-execution-in-plug-ins.md @@ -1,9 +1,9 @@ --- -title: "Do not use parallel execution within plug-ins and workflow activities | MicrosoftDocs" -description: "Multi or parallel threading within plug-ins or custom workflow activities is not supported." -ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +title: "Don't use parallel execution within plug-ins and workflow activities | MicrosoftDocs" +description: "Multi or parallel threading within plug-ins or custom workflow activities isn't supported." +ms.date: 06/20/2025 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: article ms.subservice: dataverse-developer @@ -13,7 +13,7 @@ contributors: - JimDaly - phecke --- -# Do not use parallel execution within plug-ins and workflow activities +# Don't use parallel execution within plug-ins and workflow activities **Category**: Design, Performance, Security, Supportability @@ -23,18 +23,18 @@ contributors: ## Symptoms -Multi-threading or parallel calls within plug-ins or custom workflow activities can cause corruption of those the connections. As an example, executing parallel threads can log exceptions such as: +Multi-threading or parallel calls within plug-ins or custom workflow activities can cause corruption of those the connections. As an example, executing parallel threads can log exceptions such as: `Generic SQL error.` `The transaction active in this session has been committed or aborted by another session.` -Also, non-thread safe objects such as items in the [System.Collections Namespace](/dotnet/api/system.collections) can become corrupted by parallel threads. +Also, nonthread safe objects such as items in the [System.Collections Namespace](/dotnet/api/system.collections) can become corrupted by parallel threads. ## Guidance -The sandbox service has been designed to execute calls in a specific order as part of a transaction. Developing plug-ins or custom workflow activities to make parallel or multi-threaded calls is not supported. Develop your plug-ins and custom workflow activities knowing that the calls will be performed sequentially and may need to be rolled back. +The sandbox service is designed to execute calls in a specific order as part of a transaction. Developing plug-ins or custom workflow activities to make parallel or multi-threaded calls isn't supported. Develop your plug-ins and custom workflow activities knowing that the calls are performed sequentially and might need to be rolled back. > [!NOTE] > Using parallel execution from a client program is a supported practice to optimize performance as needed. This guidance is specific to code written to be executed within a plug-in or custom workflow activity. @@ -43,7 +43,7 @@ The sandbox service has been designed to execute calls in a specific order as pa ## Problematic patterns -Plug-ins and custom workflow activities run within a single transaction and multiple threads introduced by parallel execution can corrupt the transaction. The following are examples of patterns and practices that should not be used within plug-ins and custom workflow activities: +Plug-ins and custom workflow activities run within a single transaction and multiple threads introduced by parallel execution can corrupt the transaction. The following are examples of patterns and practices that shouldn't be used within plug-ins and custom workflow activities: - Using [Task-based asynchronous pattern (TAP)](/dotnet/standard/asynchronous-programming-patterns/task-based-asynchronous-pattern-tap) - Using [Task Parallel Library (TPL)](/dotnet/standard/parallel-programming/task-parallel-library-tpl) diff --git a/powerapps-docs/developer/data-platform/best-practices/business-logic/implement-all-types-of-queries-when-filtering-preoperation-retrievemultiple.md b/powerapps-docs/developer/data-platform/best-practices/business-logic/implement-all-types-of-queries-when-filtering-preoperation-retrievemultiple.md index d7a15b1cbc..8534c9e85c 100644 --- a/powerapps-docs/developer/data-platform/best-practices/business-logic/implement-all-types-of-queries-when-filtering-preoperation-retrievemultiple.md +++ b/powerapps-docs/developer/data-platform/best-practices/business-logic/implement-all-types-of-queries-when-filtering-preoperation-retrievemultiple.md @@ -3,8 +3,8 @@ title: "Implement all types of queries when filtering results using PreOperation description: "For best performance and consistent results for all applications you must implement filtering for all types of queries that can be used with plug-ins that are registered for the PreOperation stage of RetrieveMultiple." suite: powerapps ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: article ms.subservice: dataverse-developer diff --git a/powerapps-docs/developer/data-platform/best-practices/business-logic/index.md b/powerapps-docs/developer/data-platform/best-practices/business-logic/index.md index 6a2d939330..1432e11c8b 100644 --- a/powerapps-docs/developer/data-platform/best-practices/business-logic/index.md +++ b/powerapps-docs/developer/data-platform/best-practices/business-logic/index.md @@ -1,38 +1,39 @@ --- -title: "Developers: Best practices and guidance regarding plug-in and workflow development for the Microsoft Dataverse | Microsoft Docs" -description: Best practices and guidance regarding plug-in and workflow development for developers of the Microsoft Dataverse in Power Apps. +title: "Developers: Best practices and guidance regarding plug-in and workflow development for Microsoft Dataverse | Microsoft Docs" +description: Best practices and guidance regarding plug-in and workflow development for developers of Microsoft Dataverse in Power Apps. suite: powerapps author: jowells ms.author: jowells ms.reviewer: jdaly -ms.topic: article -ms.date: 10/25/2021 +ms.topic: best-practice +ms.date: 04/03/2025 ms.subservice: dataverse-developer search.audienceType: - developer --- -# Best practices and guidance regarding plug-in and workflow development for the Microsoft Dataverse +# Best practices and guidance regarding plug-in and workflow development for Microsoft Dataverse - -This list below contains all of the guidance and best practices regarding the plug-in and workflow development within the Dataverse. +This list contains guidance and best practices regarding the plug-in and workflow development within Dataverse. |Best Practice |Description | |---------|---------| -|[Do not use batch request types in plug-ins and workflow activities](avoid-batch-requests-plugin.md)|Don't use ExecuteMultipleRequest or ExecuteTransactionRequest message request classes within the context of a plug-in or workflow activity.| -|[Develop IPlugin implementations as stateless](develop-iplugin-implementations-stateless.md) |Members of classes that implement IPlugin are exposed to potential thread-safety issues, which could lead to data inconsistency or performance problems. | -|[Do not duplicate plug-in step registration](do-not-duplicate-plugin-step-registration.md) |Duplicate plug-in step registration will cause the plug-in to fire multiple times on the same message/event. | -|[Do not use parallel execution within plug-ins and workflow activities](do-not-use-parallel-execution-in-plug-ins.md)|Multi or parallel threading within plug-ins or custom workflow activities is not supported.| -|[Implement all types of queries when filtering results using PreOperation RetrieveMultiple](implement-all-types-of-queries-when-filtering-preoperation-retrievemultiple.md)|For best performance and consistent results for all applications, you must implement filtering for all types of queries that can be used with plug-ins that are registered for the PreOperation stage of RetrieveMultiple| -|[Include filtering attributes with plug-in registration](include-filtering-attributes-plugin-registration.md) |If no filtering attributes are set for a plug-in registration step, then the plug-in will execute every time an update message occurs for that event. | +|[Don't use batch request types in plug-ins and workflow activities](avoid-batch-requests-plugin.md)|Don't use ExecuteMultipleRequest or ExecuteTransactionRequest message request classes within the context of a plug-in or workflow activity.| +|[Develop `IPlugin` implementations as stateless](develop-iplugin-implementations-stateless.md) |Members of classes that implement `IPlugin` are exposed to potential thread-safety issues, which could lead to data inconsistency or performance problems. | +|[Don't duplicate plug-in step registration](do-not-duplicate-plugin-step-registration.md) |Duplicate plug-in step registration cause the plug-in to fire multiple times on the same message/event. | +|[Don't use parallel execution within plug-ins and workflow activities](do-not-use-parallel-execution-in-plug-ins.md)|Multi or parallel threading within plug-ins or custom workflow activities isn't supported.| +|[Implement all types of queries when filtering results using `PreOperation` `RetrieveMultiple`](implement-all-types-of-queries-when-filtering-preoperation-retrievemultiple.md)|For best performance and consistent results for all applications, you must implement filtering for all types of queries that can be used with plug-ins that are registered for the PreOperation stage of RetrieveMultiple| +|[Include filtering attributes with plug-in registration](include-filtering-attributes-plugin-registration.md) |If no filtering attributes are set for a plug-in registration step, then the plug-in executes every time an update message occurs for that event. | |[Limit the registration of plug-ins for Retrieve and RetrieveMultiple messages](limit-registration-plugins-retrieve-retrievemultiple.md) |Adding synchronous plug-in logic to the Retrieve and RetrieveMultiple message events can cause slowness. | |[Manage plug-ins in single solution](manage-plug-ins-single-solution.md)|The definition of a plug-in assembly should be maintained within a single solution. | |[Optimize custom assembly development](optimize-assembly-development.md) |Consider merging separate plug-ins/custom workflow activities into a single custom assembly to improve performance and maintainability and move plug-ins/custom workflow activities into multiple custom assemblies if an assembly size is near the sandbox assembly size constraints. | |[Set KeepAlive to false when interacting with external hosts in a plug-in](set-keepalive-false-interacting-external-hosts-plugin.md) |KeepAlive property set to true in the HTTP request header or not explicitly defined as false can cause increased execution times of plug-ins. | -|[Set Timeout when making external calls in a plug-in](set-timeout-for-external-calls-from-plug-ins.md) |Limit the time period that external calls will expect a response within plug-ins.| +|[Set Timeout when making external calls in a plug-in](set-timeout-for-external-calls-from-plug-ins.md) |Limit the time period that external calls expect a response within plug-ins.| |[Use InvalidPluginExecutionException in plug-ins and workflow activities](use-invalidpluginexecutionexception-plugin-workflow-activities.md) |Use InvalidPluginExecutionException when raising errors within the context of a plug-in or workflow activity. | |[Use ITracingService in Plug-ins](use-itracingservice-plugins.md)| Use the ITracingService within your plug-ins to gain insight into what happens when your code runs.| |[Verify certification dependencies for plug-ins making outbound calls](verify-certification-dependencies.md)|Ensure that any certificates that your code depends on for outbound calls have a valid chain of certificates.| +|[Write memory efficient code](/troubleshoot/power-platform/dataverse/plug-in-execution/dataverse-plug-ins-errors#worker-process-reaches-the-memory-limit)|Retrieve only data within your plugin that is needed.| + ### See Also diff --git a/powerapps-docs/developer/data-platform/best-practices/business-logic/manage-plug-ins-single-solution.md b/powerapps-docs/developer/data-platform/best-practices/business-logic/manage-plug-ins-single-solution.md index c8d77a54bc..f2e7278ce5 100644 --- a/powerapps-docs/developer/data-platform/best-practices/business-logic/manage-plug-ins-single-solution.md +++ b/powerapps-docs/developer/data-platform/best-practices/business-logic/manage-plug-ins-single-solution.md @@ -2,8 +2,8 @@ title: "Manage plug-ins in a single solution | MicrosoftDocs" description: "The definition of a Plug-in assembly should be maintained within a single solution. You may want to have a separate solution that contains only plug-in definitions to help manage the plugin definitions." ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke suite: powerapps ms.subservice: dataverse-developer diff --git a/powerapps-docs/developer/data-platform/best-practices/business-logic/optimize-assembly-development.md b/powerapps-docs/developer/data-platform/best-practices/business-logic/optimize-assembly-development.md index 10e1980816..d26c1841b3 100644 --- a/powerapps-docs/developer/data-platform/best-practices/business-logic/optimize-assembly-development.md +++ b/powerapps-docs/developer/data-platform/best-practices/business-logic/optimize-assembly-development.md @@ -2,11 +2,11 @@ title: "Optimize custom assembly development | MicrosoftDocs" description: "Consider merging separate plug-ins/custom workflow activities into a single custom assembly to improve performance and maintainability and move plug-ins/custom workflow activities into multiple custom assemblies if an assembly size is near the sandbox assembly size constraints." suite: powerapps -ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +ms.date: 06/20/2025 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to ms.subservice: dataverse-developer search.audienceType: - developer @@ -16,8 +16,6 @@ contributors: --- # Optimize assembly development - - **Category**: Performance, Maintainability, Design **Impact potential**: Low @@ -26,7 +24,7 @@ contributors: ## Symptoms -When developing custom assemblies, there are a couple of considerations to take in: +Consider the following points when developing custom assemblies: 1. Assemblies with a large number of custom workflow activities can take a long time to upload when being registered. 1. Multiple different custom assemblies @@ -41,9 +39,9 @@ When developing custom assemblies, there are a couple of considerations to take ### Limit the number of Custom Workflow Activities in a Single assembly -When an assembly that contains custom workflow activities is uploaded during plug-in registration, additional checks are required for custom workflow activities. +When an assembly that contains custom workflow activities is uploaded during plug-in registration, more checks are required for custom workflow activities. -While an assembly with hundreds of ordinary plug-in types may be uploaded very quickly, an assembly with more than 100 custom workflow activities may take several minutes or even time out when being registered or updated. We recommend including no more than 50 custom workflow activities in a single assembly. +While an assembly with hundreds of ordinary plug-in types might be uploaded quickly, an assembly with more than 100 custom workflow activities might take several minutes or even time out when being registered or updated. We recommend including no more than 50 custom workflow activities in a single assembly. ### Consolidate Plug-ins or Custom Workflow Activities into a Single Assembly @@ -56,7 +54,7 @@ Plug-ins and custom workflow activities developed for a Dataverse solution shoul ### Move Plug-ins/Custom Workflow Activities into Multiple Assemblies -Power Apps and Dynamics 365 (online) has an assembly size constraint of 16 MB which cannot be changed. If your assembly size is nearing 16 MB, consider moving plug-in/custom workflow activities into multiple assemblies. +Power Apps and Dynamics 365 (online) has an assembly size constraint of 16 MB, which can't be changed. If your assembly size is nearing 16 MB, consider moving plug-in/custom workflow activities into multiple assemblies. @@ -64,24 +62,25 @@ Power Apps and Dynamics 365 (online) has an assembly size constraint of 16 MB wh ### Assemblies take a long time to upload when being registered -When a custom workflow activity type plug-in is uploaded while being registered, each type requires additional validation checking. When an assembly contains more than a hundred custom workflow activity type plug-ins, it could require several minutes to complete the checks and is at risk of timing out. +When a custom workflow activity type plug-in is uploaded while being registered, each type requires more validation checking. When an assembly contains more than a hundred custom workflow activity type plug-ins, it could require several minutes to complete the checks and is at risk of timing out. ### Multiple assemblies Having multiple assemblies has a couple of areas that can be impacted: -1. Performance - each assembly has a lifecycle that is managed by Dataverse. This includes loading, caching, and unloading the assemblies. Having more than one assembly causes more work to be done on the server, loading and caching an assembly, and could affect the overall plug-in/custom workflow activity execution length. +1. Performance - Dataverse manages the lifecycle of each assembly. This includes loading, caching, and unloading the assemblies. Having more than one assembly causes more work to be done on the server, loading and caching an assembly, and could affect the overall plug-in/custom workflow activity execution length. 2. Maintainability - having more than one plug-in/custom workflow activity Visual Studio project leads to more complex application lifecycle management (ALM). It increases the risk and the amount of time when updating/patching the appropriate project for a specific plug-in/custom workflow activity, packaging the plug-ins/custom workflow activities within a solution, and managing plug-ins/custom workflow activities within a deployment. ### Assembly larger than 16 MB -You will not be able to register a custom assembly within Dataverse that is larger than 16 MB. + +You won't be able to register a custom assembly within Dataverse that is larger than 16 MB. ## Additional information -Quite often, developers create a new Visual Studio project for each plug-in/custom workflow activity. In turn, this causes a separate assembly to be generated for each plug-in/custom workflow activity. +Often, developers create a new Visual Studio project for each plug-in/custom workflow activity. In turn, this causes a separate assembly to be generated for each plug-in/custom workflow activity. diff --git a/powerapps-docs/developer/data-platform/best-practices/business-logic/set-keepalive-false-interacting-external-hosts-plugin.md b/powerapps-docs/developer/data-platform/best-practices/business-logic/set-keepalive-false-interacting-external-hosts-plugin.md index 1bda822f58..3109a66594 100644 --- a/powerapps-docs/developer/data-platform/best-practices/business-logic/set-keepalive-false-interacting-external-hosts-plugin.md +++ b/powerapps-docs/developer/data-platform/best-practices/business-logic/set-keepalive-false-interacting-external-hosts-plugin.md @@ -5,7 +5,7 @@ suite: powerapps author: jowells ms.author: jowells ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to ms.date: 8/21/2019 ms.subservice: dataverse-developer search.audienceType: diff --git a/powerapps-docs/developer/data-platform/best-practices/business-logic/set-timeout-for-external-calls-from-plug-ins.md b/powerapps-docs/developer/data-platform/best-practices/business-logic/set-timeout-for-external-calls-from-plug-ins.md index 1c58df5af6..9a188b6a75 100644 --- a/powerapps-docs/developer/data-platform/best-practices/business-logic/set-timeout-for-external-calls-from-plug-ins.md +++ b/powerapps-docs/developer/data-platform/best-practices/business-logic/set-timeout-for-external-calls-from-plug-ins.md @@ -1,12 +1,12 @@ --- title: "Set Timeout when making external calls in a plug-in | MicrosoftDocs" -description: "Limit the time period that external calls will expect a response within plug-ins" -ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +description: "Limit the time period that external calls expect a response within plug-ins" +ms.date: 06/20/2025 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke suite: powerapps -ms.topic: article +ms.topic: how-to ms.subservice: dataverse-developer search.audienceType: - developer @@ -25,25 +25,25 @@ contributors: ## Symptoms -If a plug-in makes external web requests that fail to respond quickly, the plug-in will wait for the full default timeout period before failing. This duration may cause a long transaction that can effect other operations. If the plug-in is registered: +If a plug-in makes external web requests that fail to respond quickly, the plug-in waits for the full default timeout period before failing. This duration might cause a long transaction that can effect other operations. If the plug-in is registered: -- Synchronously, users may experience: +- Synchronously, users might experience: - Unresponsive model-driven apps - Slow client interactions - The browser stops responding -- Asynchronously, plug-in executions may take an extended period of time before failing. +- Asynchronously, plug-in executions might take an extended period of time before failing. ## Guidance -The default timeout value for .Net Http clients is 100 seconds, just 20 seconds short of the time available for the plug-in to complete. It is best to establish an expected baseline time that a calling service will respond. The longer it exceeds this normal response time, the higher the probability it will ultimately fail. As a performance best practice, it is best to fail quickly rather than allow the default timeout period to expire. You should control the period that your call to the external service will wait. +The default timeout value for .NET Http clients is 100 seconds, just 20 seconds short of the time available for the plug-in to complete. It's best to establish an expected baseline time that a calling service responds. The longer it exceeds this normal response time, the higher the probability it will fail. As a performance best practice, it's best to fail quickly rather than allow the default timeout period to expire. You should control the period that your call to the external service waits. -The timeout value you should set will depend on the service. For example, if you can monitor the performance of the service you may determine a duration where 99.999% of requests succeed and set your timeout period to that duration with a few seconds buffer. This will prevent the occasional outliers from having an inordinate impact on the performance of your plug-in. +The timeout value you should set depends on the service. For example, if you can monitor the performance of the service you might determine a duration where 99.999% of requests succeed and set your timeout period to that duration with a few seconds buffer. This prevents the occasional outliers from having an inordinate impact on the performance of your plug-in. -If you are using [System.Net.Http.HttpClient Class](/dotnet/api/system.net.http.httpclient), you can set the `Timeout` value explicitly, as shown in this example setting the timeout to 15 seconds. +If you're using [System.Net.Http.HttpClient Class](/dotnet/api/system.net.http.httpclient), you can set the `Timeout` value explicitly, as shown in this example setting the timeout to 15 seconds. ```csharp using (HttpClient client = new HttpClient()) @@ -62,7 +62,7 @@ using (HttpClient client = new HttpClient()) } ``` -If you are using [System.Net.WebClient Class](/dotnet/api/system.net.webclient), you need to create a derived class and override the base [GetWebRequest Method](/dotnet/api/system.net.webclient.getwebrequest) to set the timeout: +If you're using [System.Net.WebClient Class](/dotnet/api/system.net.webclient), you need to create a derived class and override the base [GetWebRequest Method](/dotnet/api/system.net.webclient.getwebrequest) to set the timeout: ```csharp /// diff --git a/powerapps-docs/developer/data-platform/best-practices/business-logic/use-invalidpluginexecutionexception-plugin-workflow-activities.md b/powerapps-docs/developer/data-platform/best-practices/business-logic/use-invalidpluginexecutionexception-plugin-workflow-activities.md index c02c6478bd..e790b1a124 100644 --- a/powerapps-docs/developer/data-platform/best-practices/business-logic/use-invalidpluginexecutionexception-plugin-workflow-activities.md +++ b/powerapps-docs/developer/data-platform/best-practices/business-logic/use-invalidpluginexecutionexception-plugin-workflow-activities.md @@ -1,9 +1,9 @@ --- title: "Use InvalidPluginExecutionException in plug-ins and workflow activities | MicrosoftDocs" description: "Use InvalidPluginExecutionException when raising errors within the context of a plug-in or workflow activity." -ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +ms.date: 06/20/2025 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke suite: powerapps ms.topic: article @@ -25,11 +25,11 @@ contributors: ## Symptoms -If a synchronous plug-in returns an exception other than back to the platform, in a Power Apps client an error is displayed to the user with the message of the exception and the stack trace. This provides an unfriendly user experience in what is likely already a frustrating situation. +If a synchronous plug-in returns an exception other than back to the platform, a Power Apps client displays an error to the user with the message of the exception and the stack trace. This provides an unfriendly user experience in what is likely already a frustrating situation. -If you are using to intentionally cancel the operation because of data validation logic issue, you should provide guidance applicable to the application user so that they can correct the issue and continue. +If you're using to intentionally cancel the operation because of data validation logic issue, you should provide guidance applicable to the application user so that they can correct the issue and continue. -If the error is unexpected, it is still recommended to catch the exception, convert it into a , and then throw the new exception so that applications can show a friendly error message with guidance to help a user or technical staff quickly identify the issue. +If the error is unexpected, it's still recommended to catch the exception, convert it into a , and then throw the new exception so that applications can show a friendly error message with guidance to help a user or technical staff quickly identify the issue. @@ -40,11 +40,11 @@ Plug-ins should only return an returns to the caller with a friendly message and an `IsvAborted` error code. Failure to catch and convert an exception into a will result in an `IsvUnExpected` error code with no friendly message displayed to the user from a Power Apps client. +A thrown returns to the caller with a friendly message and an `IsvAborted` error code. Failure to catch and convert an exception into a results in an `IsvUnExpected` error code with no friendly message displayed to the user from a Power Apps client. ### Handle errors from functions called in plug-ins -Within your plug-in you will commonly call other functions to re-use code. How you handle errors in these functions is very important because an unhandled error may cause the worker process to crash. This will not only terminate your plug-in, but may also terminate any concurrent plug-ins running for your organization. More information: [Error: Sandbox Worker process crashed](../../troubleshoot-plug-in.md#error-sandbox-worker-process-crashed) +Plug-ins commonly call other functions to reuse code. How you handle errors in these functions is important because an unhandled error might cause the worker process to crash. This crashing worker process not only terminates your plug-in, but might also terminate any concurrent plug-ins running for your organization. More information: [Error: Sandbox Worker process crashed](../../troubleshoot-plug-in.md#error-sandbox-worker-process-crashed) @@ -53,9 +53,9 @@ Within your plug-in you will commonly call other functions to re-use code. How y > [!WARNING] > These patterns should be avoided. -Do not use HTML within error message text. +Don't use HTML within error message text. -Web applications which access Dataverse data should HTML encode any error message text before they display it to a user. This will prevent any HTML in your message from rendered as you intend. It will just show the HTML code. +Web applications that access Dataverse data should HTML encode any error message text before they display it to a user. This encoding prevents any HTML in your message from rendered as you intend. It just shows the HTML code. diff --git a/powerapps-docs/developer/data-platform/best-practices/business-logic/verify-certification-dependencies.md b/powerapps-docs/developer/data-platform/best-practices/business-logic/verify-certification-dependencies.md index 2883b7df62..8f8fe68f32 100644 --- a/powerapps-docs/developer/data-platform/best-practices/business-logic/verify-certification-dependencies.md +++ b/powerapps-docs/developer/data-platform/best-practices/business-logic/verify-certification-dependencies.md @@ -1,9 +1,9 @@ --- title: "Verify certification dependencies for plug-ins making outbound calls | MicrosoftDocs" description: "Ensure that any certificates that your code depends on for outbound calls has a valid chain of certificates." -ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +ms.date: 06/20/2025 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke suite: powerapps ms.topic: article @@ -26,7 +26,7 @@ contributors: ## Symptoms -You may get this error when your plug-in makes an https call to an external resource: +You might get this error when your plug-in makes an https call to an external resource: `WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.` @@ -42,9 +42,9 @@ You should verify that the site you want to connect with has a valid chain of ce ## Additional information -You may encounter this when connecting to a new endpoint for the first time or when something about the certificate has changed. +You might encounter this error when connecting to a new endpoint for the first time or when something about the certificate changed. -When the code in your plug-in running in the sandbox attempts to connect to an external endpoint using https, the Dataverse Sandbox will start SSL/TLS negotiation. The endpoint presents a certificate to use for encryption. If the certificate has one or more intermediate certificates it must present the entire chain to successfully complete SSL/TLS negotiation. If the complete chain is not presented SSL/TLS communication cannot be established. +When the code in your plug-in running in the sandbox attempts to connect to an external endpoint using https, the Dataverse Sandbox starts SSL/TLS negotiation. The endpoint presents a certificate to use for encryption. If the certificate has one or more intermediate certificates it must present the entire chain to successfully complete SSL/TLS negotiation. If the complete chain isn't presented SSL/TLS communication can't be established. For more information about requirements, see [Server cipher suites and TLS requirements](/power-platform/admin/server-cipher-tls-requirements). diff --git a/powerapps-docs/developer/data-platform/best-practices/index.md b/powerapps-docs/developer/data-platform/best-practices/index.md index 77e64aa292..c74fdfea9b 100644 --- a/powerapps-docs/developer/data-platform/best-practices/index.md +++ b/powerapps-docs/developer/data-platform/best-practices/index.md @@ -3,7 +3,7 @@ title: "Best practices and guidance when coding for Microsoft Dataverse | Micros description: Best practices and guidance for developers writing code for Microsoft Dataverse. suite: powerapps author: jowells -ms.topic: article +ms.topic: best-practice ms.date: 03/18/2021 ms.subservice: dataverse-developer ms.author: jowells diff --git a/powerapps-docs/developer/data-platform/best-practices/work-with-data/index.md b/powerapps-docs/developer/data-platform/best-practices/work-with-data/index.md index a18757112f..666a62b869 100644 --- a/powerapps-docs/developer/data-platform/best-practices/work-with-data/index.md +++ b/powerapps-docs/developer/data-platform/best-practices/work-with-data/index.md @@ -1,10 +1,10 @@ --- title: "Developers: Best practices and guidance around working with data for Microsoft Dataverse | Microsoft Docs" description: Best practices and guidance around working with data for developers of Microsoft Dataverse. -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly -ms.topic: article +ms.topic: best-practice ms.date: 03/26/2021 ms.subservice: dataverse-developer search.audienceType: diff --git a/powerapps-docs/developer/data-platform/best-practices/work-with-data/invalidcharactersinfield.md b/powerapps-docs/developer/data-platform/best-practices/work-with-data/invalidcharactersinfield.md index ce12e64c9e..c3ebdd841e 100644 --- a/powerapps-docs/developer/data-platform/best-practices/work-with-data/invalidcharactersinfield.md +++ b/powerapps-docs/developer/data-platform/best-practices/work-with-data/invalidcharactersinfield.md @@ -1,10 +1,10 @@ --- title: "Manage invalid characters | Microsoft Docs" description: "Describes how to manage invalid characters with the Dataverse API. Only allowed characters can be used or an error is thrown." -ms.date: 03/22/2022 +ms.date: 06/20/2025 ms.topic: article -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.subservice: dataverse-developer search.audienceType: @@ -15,18 +15,18 @@ contributors: # Manage invalid characters -There are a set of characters that cannot be saved in string or memo columns. When an application saves data containing these characters to Dataverse, the following error will occur: +There is a set of characters that can't be saved in string or memo columns. When an application saves data containing these characters to Dataverse, the following error occurs: Name: `InvalidCharactersInField`
-Hexadecimal error code : `80040278`
+Hexadecimal error code: `80040278`
Error Number: `-2147220872`
Description: `The field '{0}' contains one or more invalid characters.`
Dataverse uses the [System.Xml.XmlConvert.VerifyXmlChars(String) Method](/dotnet/api/system.xml.xmlconvert.verifyxmlchars) for every string value passed to these columns. This error is thrown on the first invalid character encountered. -You may encounter these characters in email content that includes replies or when text is copied from another source which may have characters to control presentation. +You might encounter these characters in email content that includes replies or when text is copied from another source that might have characters to control presentation. -To prevent this error you can: +To prevent this error, you can: - HTML encode the content before saving. diff --git a/powerapps-docs/developer/data-platform/best-practices/work-with-data/retrieve-specific-columns-entity-via-query-apis.md b/powerapps-docs/developer/data-platform/best-practices/work-with-data/retrieve-specific-columns-entity-via-query-apis.md index 4ddd3c6780..7e8a07842f 100644 --- a/powerapps-docs/developer/data-platform/best-practices/work-with-data/retrieve-specific-columns-entity-via-query-apis.md +++ b/powerapps-docs/developer/data-platform/best-practices/work-with-data/retrieve-specific-columns-entity-via-query-apis.md @@ -3,7 +3,7 @@ title: "Retrieve specific columns for an entity via query APIs | MicrosoftDocs" description: "Queries submitted to retrieve data should include specific columns in the ColumnSet instance associated to the query rather than All Columns." suite: powerapps author: jowells -ms.topic: article +ms.topic: how-to ms.date: 12/12/2018 ms.subservice: dataverse-developer ms.author: jowells diff --git a/powerapps-docs/developer/data-platform/best-practices/work-with-metadata/index.md b/powerapps-docs/developer/data-platform/best-practices/work-with-metadata/index.md index 59b7d0ef67..f10a401e4f 100644 --- a/powerapps-docs/developer/data-platform/best-practices/work-with-metadata/index.md +++ b/powerapps-docs/developer/data-platform/best-practices/work-with-metadata/index.md @@ -5,7 +5,7 @@ suite: powerapps author: mkannapiran ms.author: kamanick ms.reviewer: jdaly -ms.topic: article +ms.topic: best-practice ms.date: 03/24/2021 ms.subservice: dataverse-developer search.audienceType: diff --git a/powerapps-docs/developer/data-platform/best-practices/work-with-metadata/retrieve-published-metadata.md b/powerapps-docs/developer/data-platform/best-practices/work-with-metadata/retrieve-published-metadata.md index 38afea68b1..96e1e39d05 100644 --- a/powerapps-docs/developer/data-platform/best-practices/work-with-metadata/retrieve-published-metadata.md +++ b/powerapps-docs/developer/data-platform/best-practices/work-with-metadata/retrieve-published-metadata.md @@ -5,7 +5,7 @@ suite: powerapps author: mkannapiran ms.author: kamanick ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.date: 1/15/2019 ms.subservice: dataverse-developer search.audienceType: diff --git a/powerapps-docs/developer/data-platform/browse-your-metadata.md b/powerapps-docs/developer/data-platform/browse-your-metadata.md index 65e7251651..807aa03c26 100644 --- a/powerapps-docs/developer/data-platform/browse-your-metadata.md +++ b/powerapps-docs/developer/data-platform/browse-your-metadata.md @@ -5,7 +5,7 @@ ms.custom: "" ms.date: 03/16/2021 ms.reviewer: "pehecke" -ms.topic: "article" +ms.topic: how-to author: "phecke" # GitHub ID ms.subservice: dataverse-developer ms.author: "pehecke" # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/build-and-package.md b/powerapps-docs/developer/data-platform/build-and-package.md index b989877c13..f0c5981e5a 100644 --- a/powerapps-docs/developer/data-platform/build-and-package.md +++ b/powerapps-docs/developer/data-platform/build-and-package.md @@ -1,10 +1,10 @@ --- title: Build and package plug-in code description: Learn about building and packaging plug-in code for Microsoft Dataverse, including assembly constraints and dependent assembly limitations. -ms.date: 10/14/2024 -ms.topic: conceptual -author: MicroSri -ms.author: sriknair +ms.date: 04/04/2025 +ms.topic: how-to +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.subservice: dataverse-developer search.audienceType: @@ -31,6 +31,9 @@ When you build a plug-in project, keep the following output assembly constraints Plug-in and custom workflow activity assembly projects must target .NET Framework 4.6.2. Assemblies that are built using later versions of the .NET Framework should generally work. However, if the plug-in code uses any features introduced after 4.6.2, a runtime error occurs. +> [!NOTE] +> We are planning to introduce Dataverse plug-in support for the .NET Framework 4.8 runtime before official Microsoft support for .NET Framework 4.6.2 ends. + ### Limit assemblies to 16 MB Your assembly can include multiple plug-in classes or types and even custom workflow activities, but it can't be larger than 16 MB. As a best practice, we recommend that you consolidate plug-ins and workflow assemblies into a single assembly, as long as the size remains below 16 MB. diff --git a/powerapps-docs/developer/data-platform/bulk-operations.md b/powerapps-docs/developer/data-platform/bulk-operations.md index 34486d555b..1cb0d38a2f 100644 --- a/powerapps-docs/developer/data-platform/bulk-operations.md +++ b/powerapps-docs/developer/data-platform/bulk-operations.md @@ -1,9 +1,9 @@ --- title: Use bulk operation messages description: Learn how to use special APIs to perform operations on multiple rows of data in a Microsoft Dataverse table. -ms.date: 01/31/2025 -author: MicroSri -ms.author: sriknair +ms.date: 07/07/2025 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.topic: how-to ms.subservice: dataverse-developer @@ -20,8 +20,8 @@ To get the best performance when you run operations on multiple rows of a Micros - [`CreateMultiple`](#createmultiple): Creates multiple records of the same type in a single request. - [`UpdateMultiple`](#updatemultiple): Updates multiple records of the same type in a single request. -- [`UpsertMultiple`](upsertmultiple.md): Creates or updates multiple records of the same type in a single request. -- [`DeleteMultiple` (preview)](deletemultiple.md): For elastic tables only. Deletes multiple records of the same type in a single request. +- [`UpsertMultiple`](#upsertmultiple): Creates or updates multiple records of the same type in a single request. +- [`DeleteMultiple`](#deletemultiple): For elastic tables only. Deletes multiple records of the same type in a single request. > [!NOTE] > For guidance about options when performing bulk operations, such when to use these APIs compared to batch APIs like `ExecuteMultiple`, see [Optimize performance for bulk operations](optimize-performance-create-update.md). @@ -374,6 +374,107 @@ These queries will not return results for the `UpsertMultiple` message. A table Multiple records with the same primary key or alternate key values in the payload are not supported with `UpsertMultiple`. When more than one record in the `Targets` parameter is uniquely identified by a primary or alternate key, `UpsertMultiple` will return an error. [This behavior is different from `UpdateMultiple`](#duplicate-records-in-updatemultiple-targets-parameter). +### DeleteMultiple + +Delete multiple rows of data in elastic tables with a single request. + +##### [SDK for .NET](#tab/sdk) + +You must use the [OrganizationRequest class](xref:Microsoft.Xrm.Sdk.OrganizationRequest) because the [SDK for .NET](org-service/overview.md) doesn't have a `DeleteMultipleRequest` class. Learn how to [use messages with the SDK for .NET](org-service/use-messages.md). + +The following `DeleteMultipleExample` static method uses the `DeleteMultiple` message with the [OrganizationRequest class](xref:Microsoft.Xrm.Sdk.OrganizationRequest) to delete multiple rows from the `contoso_SensorData` elastic table using the alternate key to include the `partitionid` to uniquely identify the rows. + +```csharp +public static void DeleteMultipleExample(IOrganizationService service) +{ + string tableLogicalName = "contoso_sensordata"; + + List entityReferences = new() { + { + new EntityReference(logicalName: tableLogicalName, + keyAttributeCollection: new KeyAttributeCollection + { + { "contoso_sensordataid", "3f56361a-b210-4a74-8708-3c664038fa41" }, + { "partitionid", "deviceid-001" } + }) + }, + { new EntityReference(logicalName: tableLogicalName, + keyAttributeCollection: new KeyAttributeCollection + { + { "contoso_sensordataid", "e682715b-1bba-415e-b2bc-de9327308423" }, + { "partitionid", "deviceid-002" } + }) + } + }; + + OrganizationRequest request = new(requestName:"DeleteMultiple") + { + Parameters = { + {"Targets", new EntityReferenceCollection(entityReferences)} + } + }; + + service.Execute(request); +} +``` + +##### [Web API](#tab/webapi) + +The following example shows how to use the [DeleteMultiple action](xref:Microsoft.Dynamics.CRM.DeleteMultiple) to delete multiple rows from the `contoso_SensorData` elastic table including the `partitionid` to uniquely identify the rows. + +**Request:** + +```http +POST [Organization Uri]/api/data/v9.2/contoso_sensordatas/Microsoft.Dynamics.CRM.DeleteMultiple +OData-MaxVersion: 4.0 +OData-Version: 4.0 +If-None-Match: null +Accept: application/json +Content-Type: application/json; charset=utf-8 +Content-Length: 603 + +{ + "Targets": [ + { + "@odata.type": "Microsoft.Dynamics.CRM.contoso_sensordata", + "contoso_sensordataid": "6114ca58-0928-ee11-9965-6045bd5cd155", + "partitionid": "Device-ABC-1234" + }, + { + "@odata.type": "Microsoft.Dynamics.CRM.contoso_sensordata", + "contoso_sensordataid": "6214ca58-0928-ee11-9965-6045bd5cd155", + "partitionid": "Device-ABC-1234" + }, + { + "@odata.type": "Microsoft.Dynamics.CRM.contoso_sensordata", + "contoso_sensordataid": "6314ca58-0928-ee11-9965-6045bd5cd155", + "partitionid": "Device-ABC-1234" + } + ] +} +``` + +**Response:** + +```http +HTTP/1.1 204 NoContent +OData-Version: 4.0 +``` + +--- + +#### DeleteMultiple availability + +`DeleteMultiple` is supported only for elastic tables. Elastic tables don't support [table relationship cascading behavior](configure-entity-relationship-cascading-behavior.md), which can result in unpredictable execution times for delete operations. If you use `DeleteMultiple` on a standard table, you get the error: `DeleteMultiple has not yet been implemented.` + + +#### DeleteMultiple examples + +You can find sample code on GitHub in [github.com/microsoft/PowerApps-Samples](https://github.com/microsoft/PowerApps-Samples): + +- [Elastic table sample code](elastic-table-samples.md) +- Within [Sample: SDK for .NET Use bulk operations](org-service/samples/create-update-multiple.md) or [Sample: Web API Use bulk operations](webapi/samples/create-update-multiple.md), change the `Settings.cs` config file and choose the `UseElastic` option. + ## Standard and elastic table usage @@ -384,7 +485,7 @@ Both standard and elastic tables benefit from a significant performance boost wh | [Number of records](#number-of-records) | Operations are more efficient with a larger number of records. There's no limit on the number of records, but there are message size and time limits. We recommend sending 100 - 1000 records at a time.| We recommend sending 100 records at a time. | | [On Error behavior](#on-error-behavior) | All operations roll back on error. | Partial success is possible. | | [Availability](#availability) | Not all standard tables support these messages. | Messages are available for all elastic tables. | -| [DeleteMultiple](deletemultiple.md) | Not available. Use the SDK [BulkDeleteRequest class](xref:Microsoft.Crm.Sdk.Messages.BulkDeleteRequest) or the Web API [BulkDelete action](xref:Microsoft.Dynamics.CRM.BulkDelete) instead. [Learn how to delete data in bulk](delete-data-bulk.md). | Available using the SDK [OrganizationRequest class](xref:Microsoft.Xrm.Sdk.OrganizationRequest). The Web API `DeleteMultiple` action is private, but you can use it now. It will become public soon. | +| [DeleteMultiple](#deletemultiple) | Not available. Use the SDK [BulkDeleteRequest class](xref:Microsoft.Crm.Sdk.Messages.BulkDeleteRequest) or the Web API [BulkDelete action](xref:Microsoft.Dynamics.CRM.BulkDelete) instead. [Learn how to delete data in bulk](delete-data-bulk.md). | Use the SDK [DeleteMultipleRequest Class](/dotnet/api/microsoft.xrm.sdk.messages.deletemultiplerequest) or Web API [DeleteMultiple Action](/power-apps/developer/data-platform/webapi/reference/deletemultiple)| Standard and elastic table usage is different because standard tables use Azure SQL and support transactions. Elastic tables use Azure Cosmos DB, which doesn't support transactions but is able to handle large amounts of data at high levels of throughput with low latency. The following sections provide more details. [Learn more about bulk operations on elastic tables](use-elastic-tables.md#bulk-operations-with-elastic-tables). @@ -445,9 +546,6 @@ When you use the Web API to perform a bulk operation on an elastic table, you ne Bulk operation message availability depends on whether you're using standard tables or elastic tables. All elastic tables support the `CreateMultiple`, `UpdateMultiple`, `UpsertMultiple`, and `DeleteMultiple` messages. -See also: -- [DeleteMultiple Availability](deletemultiple.md#availability) - #### Availability with standard tables You can use the `CreateMultiple` and `UpdateMultiple` bulk operation messages with custom standard tables and many common standard tables, but not all. You should test whether individual standard tables support these messages. The following examples show you how to do that. @@ -626,8 +724,6 @@ These limits are based on data changes: `Create`, `Update`, and `Delete` operati ### See also -[Use UpsertMultiple (preview)](upsertmultiple.md) -[Use DeleteMultiple (preview)](deletemultiple.md) [Elastic tables](elastic-tables.md) [Write plug-ins for CreateMultiple and UpdateMultiple](write-plugin-multiple-operation.md) [Sample: SDK for .NET Use bulk operations](org-service/samples/create-update-multiple.md) diff --git a/powerapps-docs/developer/data-platform/business-events.md b/powerapps-docs/developer/data-platform/business-events.md index 2d46720008..4754ec21a7 100644 --- a/powerapps-docs/developer/data-platform/business-events.md +++ b/powerapps-docs/developer/data-platform/business-events.md @@ -5,7 +5,7 @@ ms.date: 04/03/2022 author: jaredha ms.author: jaredha ms.reviewer: jdaly -ms.topic: conceptual +ms.topic: article ms.subservice: dataverse-developer search.audienceType: - maker diff --git a/powerapps-docs/developer/data-platform/bypass-custom-business-logic.md b/powerapps-docs/developer/data-platform/bypass-custom-business-logic.md index b4d7e6c12d..811ad0aff4 100644 --- a/powerapps-docs/developer/data-platform/bypass-custom-business-logic.md +++ b/powerapps-docs/developer/data-platform/bypass-custom-business-logic.md @@ -3,10 +3,10 @@ title: "Bypass custom Dataverse logic" description: "Make data changes which bypass custom Dataverse logic." ms.date: 12/04/2024 ms.reviewer: jdaly -ms.topic: article -author: MicroSri +ms.topic: how-to +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/bypass-power-automate-flows.md b/powerapps-docs/developer/data-platform/bypass-power-automate-flows.md index 9dc5055450..b12746bc4f 100644 --- a/powerapps-docs/developer/data-platform/bypass-power-automate-flows.md +++ b/powerapps-docs/developer/data-platform/bypass-power-automate-flows.md @@ -3,10 +3,10 @@ title: "Bypass Power Automate Flows" description: "Make data changes that don't trigger Power Automate flows." ms.date: 07/01/2024 ms.reviewer: jdaly -ms.topic: article -author: MicroSri +ms.topic: how-to +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: @@ -339,4 +339,4 @@ No. The parameter isn't passed through to any operations performed by plug-ins t [Use optional parameters](optional-parameters.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/cache-schema-data.md b/powerapps-docs/developer/data-platform/cache-schema-data.md index f71e58249a..3c509248a1 100644 --- a/powerapps-docs/developer/data-platform/cache-schema-data.md +++ b/powerapps-docs/developer/data-platform/cache-schema-data.md @@ -2,7 +2,7 @@ title: "Cache schema data (Microsoft Dataverse) | Microsoft Docs" description: "Create a cache of schema definitions and track changes over time." ms.date: 10/17/2022 -ms.topic: article +ms.topic: how-to author: mkannapiran ms.author: kamanick ms.subservice: dataverse-developer diff --git a/powerapps-docs/developer/data-platform/catalog-catalogassignment.md b/powerapps-docs/developer/data-platform/catalog-catalogassignment.md index 84d4b6c100..8739a16215 100644 --- a/powerapps-docs/developer/data-platform/catalog-catalogassignment.md +++ b/powerapps-docs/developer/data-platform/catalog-catalogassignment.md @@ -3,7 +3,7 @@ title: "Catalog and CatalogAssignment tables (Microsoft Dataverse) | Microsoft D description: "Learn how to use the Catalog and CatalogAssignment tables to expose events in your solution" ms.date: 03/22/2022 ms.reviewer: "pehecke" -ms.topic: "article" +ms.topic: how-to author: "jaredha" #TODO: NoOwner ms.subservice: dataverse-developer ms.author: "jdaly" # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/column-level-security.md b/powerapps-docs/developer/data-platform/column-level-security.md new file mode 100644 index 0000000000..0570ffaddc --- /dev/null +++ b/powerapps-docs/developer/data-platform/column-level-security.md @@ -0,0 +1,782 @@ +--- +title: Column-level security with code +description: "Learn how developers use code to secure data for specific columns or fields in a table so that only specified users and teams can view or set the values." +ms.date: 07/29/2025 +ms.reviewer: jdaly +ms.topic: article +author: paulliew +ms.subservice: dataverse-developer +ms.author: paulliew +search.audienceType: + - developer +--- +# Column-level security with code + +Column-level security is applied for columns that contain sensitive information. Passwords, bank account numbers, government ID, telephone numbers, or email addresses can be secured at the column level. + +This article explains how developers can work with column-level security capabilities using code and the Dataverse SDK for .NET or Web API. You don't need to write code to use this feature. [Learn how to configure column-level security to control access](/power-platform/admin/field-level-security). Developers should also understand how to configure column-level security using [Power Apps](https://powerapps.microsoft.com/). + +## Discover which columns are secured + +Detect which columns are secured by retrieving the definition of the column and examining the boolean [AttributeMetadata.IsSecured property](/dotnet/api/microsoft.xrm.sdk.metadata.attributemetadata.issecured). + +There are two ways to discover which columns are secured with code. These ways are described in the following two sections: + +- [Retrieve column data filtered on IsSecured](#retrieve-column-data-filtered-on-issecured) +- [Retrieve FieldSecurityProfile for System Administrator role](#retrieve-fieldsecurityprofile-for-system-administrator-role) + +### Retrieve column data filtered on IsSecured + +This method queries the organization's metadata to identify columns marked with the `IsSecured` property set to `true`. Everyone has access to view this data. [Learn how to Query schema definitions](query-schema-definitions.md) + +The resulting CSV file contains two columns: **Table** and **Column**, representing the schema names of the tables and their secured +columns, respectively. + +#### [SDK for .NET](#tab/sdk) + +:::code language="csharp" source="~/../PowerApps-Samples/dataverse/orgsvc/CSharp-NETCore/ColumnLevelSecurity/Examples.cs" id="GetSecuredColumns"::: + +#### [Web API](#tab/webapi) + +This JSON represents the [EntityQueryExpression](/power-apps/developer/data-platform/webapi/reference/entityqueryexpression) data used with the `Query` parameter with the [RetrieveMetadataChanges Function](/power-apps/developer/data-platform/webapi/reference/retrievemetadatachanges) to return data about columns that are secured using the [AttributeMetadata](/power-apps/developer/data-platform/webapi/reference/attributemetadata)`.IsSecured` property. + +```json +{ + "Properties": { + "AllProperties": false, + "PropertyNames": ["SchemaName","Attributes"] + }, + "Criteria": { + "FilterOperator": "And", + "Conditions": [] + }, + "AttributeQuery": { + "Properties": { + "AllProperties": false, + "PropertyNames": [ + "SchemaName", "IsSecured" + ] + }, + "Criteria": { + "FilterOperator": "And", + "Conditions": [ + { + "ConditionOperator": "Equals", + "PropertyName": "IsSecured", + "Value": { + "Type": "System.Boolean", + "Value": "true" + } + } + ] + } + } +} +``` + +**Request**: + +This JSON is URL encoded before sending: + +```http +GET [ORGANIZATION URI]/api/data/v9.2/RetrieveMetadataChanges(Query=@p1)?@p1=%7b+%22Properties%22%3a+%7b+%22AllProperties%22%3a+false%2c+%22PropertyNames%22%3a+%5b%22SchemaName%22%2c%22Attributes%22%5d+%7d%2c+%22Criteria%22%3a+%7b+%22FilterOperator%22%3a+%22And%22%2c+%22Conditions%22%3a+%5b%5d+%7d%2c+%22AttributeQuery%22%3a+%7b+%22Properties%22%3a+%7b+%22AllProperties%22%3a+false%2c+%22PropertyNames%22%3a+%5b+%22SchemaName%22%2c+%22IsSecured%22+%5d+%7d%2c+%22Criteria%22%3a+%7b+%22FilterOperator%22%3a+%22And%22%2c+%22Conditions%22%3a+%5b+%7b+%22ConditionOperator%22%3a+%22Equals%22%2c+%22PropertyName%22%3a+%22IsSecured%22%2c+%22Value%22%3a+%7b+%22Type%22%3a+%22System.Boolean%22%2c+%22Value%22%3a+%22true%22+%7d+%7d+%5d+%7d+%7d+%7d HTTP/1.1 +Accept: application/json +Authorization: Bearer [REDACTED] +OData-MaxVersion: 4.0 +OData-Version: 4.0 +``` + +**Response**: + +> [!NOTE] +> The data represented in this response was edited to remove null property values returned in the `EntityMetadata` property and it only returns a single representative secured column. In reality, the total amount of data returned is large depending on the number of tables in your environment. + +This example shows how the [Account.OpenDeals column](/dynamics365/developer/reference/entities/account#BKMK_OpenDeals) is one of the secured columns. + +```http +HTTP/1.1 200 OK +Content-Type: application/json; odata.metadata=minimal +OData-Version: 4.0 +Content-Length: 5324876 + +{ + "@odata.context": "[ORGANIZATION URI]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.RetrieveMetadataChangesResponse", + "ServerVersionStamp": "152647645!07/11/2025 22:09:13", + "DeletedMetadata": { + "Count": 0, + "IsReadOnly": false, + "Keys": [], + "Values": [] + }, + "EntityMetadata": [ + { + "SchemaName": "Account", + "MetadataId": "70816501-edb9-4740-a16c-6a5efbc05d84", + "Attributes": [ + { + "SchemaName": "OpenDeals", + "MetadataId": "e10cdd44-5c7f-4ac8-a5d1-b2118926f2bd", + "IsSecured": true + } + ] + }, + Truncated for brevity... + ] +} +``` + +--- + +### Retrieve FieldSecurityProfile for System Administrator role + + +This method queries the Dataverse field permission table to identify columns that the [Field Security Profile (FieldSecurityProfile)](reference/entities/fieldsecurityprofile.md) record with ID `572329c1-a042-4e22-be47-367c6374ea45` secures. This record manages access to secured columns for system administrators. Typically, only system administrators have the `prvReadFieldPermission` privilege to retrieve this data. + +#### [SDK for .NET](#tab/sdk) + +The static `GetSecuredColumnList` method returns fully qualified column names in the format `TableName.ColumnName`, sorted alphabetically. + +:::code language="csharp" source="~/../PowerApps-Samples/dataverse/orgsvc/CSharp-NETCore/ColumnLevelSecurity/Examples.cs" id="GetSecuredColumnList"::: + +#### [Web API](#tab/webapi) + + +**Request**: + +```http +GET https://[ORGANIZATION URI]/api/data/v9.2/fieldsecurityprofiles(572329c1-a042-4e22-be47-367c6374ea45)/lk_fieldpermission_fieldsecurityprofileid?$select=entityname,attributelogicalname&$count=true HTTP/1.1 +Accept: application/json +Authorization: Bearer [REDACTED] +Prefer: odata.include-annotations="*" +OData-Version: 4.0 +OData-MaxVersion: 4.0 +``` + +**Response**: + +The results in this example were edited for brevity to show only one example column ([Account.OpenDeals column](/dynamics365/developer/reference/entities/account#BKMK_OpenDeals)). + +```http +HTTP/1.1 200 OK +Content-Type: application/json; odata.metadata=minimal +OData-Version: 4.0 +Preference-Applied: odata.include-annotations="*" + +{ + "@odata.context": "[ORGANIZATION URI]/api/data/v9.2/$metadata#fieldpermissions(entityname,attributelogicalname)", + "@odata.count": 20, + "@Microsoft.Dynamics.CRM.totalrecordcount": 20, + "@Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded": false, + "value": [ + { + "@odata.etag": "W/\"15577006\"", + "entityname@OData.Community.Display.V1.FormattedValue": "Account", + "entityname": "account", + "attributelogicalname": "opendeals", + "fieldpermissionid": "9b2606bb-0144-413a-ac56-be26922d4edb" + }, + Truncated for brevity... + ] +} +``` + +--- + +## Discover which columns can be secured + +You can't secure every column. When you [enable column security](/power-platform/admin/field-level-security#enable-column-security) using [Power Apps](https://make.powerapps.com/), the **Enable column security** checkbox is disabled for certain fields. You don't need to manually check each column to find out if you can secure it. Write a query to retrieve which columns you can secure. + +Three boolean [AttributeMetadata](/dotnet/api/microsoft.xrm.sdk.metadata.attributemetadata) properties control whether you can secure any column: + +- [CanBeSecuredForCreate](/dotnet/api/microsoft.xrm.sdk.metadata.attributemetadata.canbesecuredforcreate) +- [CanBeSecuredForRead](/dotnet/api/microsoft.xrm.sdk.metadata.attributemetadata.canbesecuredforread) +- [CanBeSecuredForUpdate](/dotnet/api/microsoft.xrm.sdk.metadata.attributemetadata.canbesecuredforupdate) + +When all of these properties are false, the column can't be secured. Some columns might only be secured for one or two of the three operations: `Create`, `Read`, and `Update`. + +The following queries return this data so you can discover which columns in your environment can be secured: + +### [SDK for .NET](#tab/sdk) + +This static `DumpColumnSecurityInfo` method retrieves metadata about entity attributes, including security-related properties, and writes the information to a CSV file. The output file contains details such as whether columns are secured, can be secured for create, update, or read operations, and other relevant metadata. + +:::code language="csharp" source="~/../PowerApps-Samples/dataverse/orgsvc/CSharp-NETCore/ColumnLevelSecurity/Examples.cs" id="DumpColumnSecurityInfo"::: + +### [Web API](#tab/webapi) + +This JSON represents the [EntityQueryExpression](/power-apps/developer/data-platform/webapi/reference/entityqueryexpression) data used with the `Query` parameter with the [RetrieveMetadataChanges Function](/power-apps/developer/data-platform/webapi/reference/retrievemetadatachanges) to return data about whether columns can be secured using the [AttributeMetadata](/power-apps/developer/data-platform/webapi/reference/attributemetadata)`.IsSecured` property. + +```json +{ + "Properties": { + "AllProperties": false, + "PropertyNames": ["SchemaName","Attributes"] + }, + "Criteria": { + "FilterOperator": "And", + "Conditions": [ + { + "ConditionOperator": "Equals", + "PropertyName": "IsPrivate", + "Value": { + "Type": "System.Boolean", + "Value": "false" + } + } + ] + }, + "AttributeQuery": { + "Properties": { + "AllProperties": false, + "PropertyNames": [ + "SchemaName", + "AttributeTypeName", + "IsPrimaryName", + "IsSecured", + "CanBeSecuredForCreate", + "CanBeSecuredForUpdate", + "CanBeSecuredForRead" + ] + }, + "Criteria": { + "FilterOperator": "And", + "Conditions": [ + { + "ConditionOperator": "NotEquals", + "PropertyName": "AttributeTypeName", + "Value": { + "Type": "Microsoft.Xrm.Sdk.Metadata.AttributeTypeDisplayName", + "Value": "VirtualType" + } + } + ] + } + } +} +``` + +**Request**: + +```http +GET [ORGANIZATION URI]/api/data/v9.2/RetrieveMetadataChanges(Query=@p1)?@p1=+%7b+%22Properties%22%3a+%7b+%22AllProperties%22%3a+false%2c+%22PropertyNames%22%3a+%5b%22SchemaName%22%2c%22Attributes%22%5d+%7d%2c+%22Criteria%22%3a+%7b+%22FilterOperator%22%3a+%22And%22%2c+%22Conditions%22%3a+%5b+%7b+%22ConditionOperator%22%3a+%22Equals%22%2c+%22PropertyName%22%3a+%22IsPrivate%22%2c+%22Value%22%3a+%7b+%22Type%22%3a+%22System.Boolean%22%2c+%22Value%22%3a+%22false%22+%7d+%7d+%5d+%7d%2c+%22AttributeQuery%22%3a+%7b+%22Properties%22%3a+%7b+%22AllProperties%22%3a+false%2c+%22PropertyNames%22%3a+%5b+%22SchemaName%22%2c+%22AttributeTypeName%22%2c+%22IsPrimaryName%22%2c+%22IsSecured%22%2c+%22CanBeSecuredForCreate%22%2c+%22CanBeSecuredForUpdate%22%2c+%22CanBeSecuredForRead%22+%5d+%7d%2c+%22Criteria%22%3a+%7b+%22FilterOperator%22%3a+%22And%22%2c+%22Conditions%22%3a+%5b+%7b+%22ConditionOperator%22%3a+%22NotEquals%22%2c+%22PropertyName%22%3a+%22AttributeTypeName%22%2c+%22Value%22%3a+%7b+%22Type%22%3a+%22Microsoft.Xrm.Sdk.Metadata.AttributeTypeDisplayName%22%2c+%22Value%22%3a+%22VirtualType%22+%7d+%7d+%5d+%7d+%7d+%7d HTTP/1.1 +Accept: application/json +Authorization: Bearer [REDACTED] +OData-MaxVersion: 4.0 +OData-Version: 4.0 +``` + +**Response**: + +> [!NOTE] +> The data in this response is edited to remove null property values returned in the `EntityMetadata` property and it only returns a single representative column from one table. In reality, the total amount of data returned is large depending on the number of tables and columns in your environment. + +This example shows the requested properties of the [Account.AccountCategoryCode column](/power-apps/developer/data-platform/reference/entities/account#BKMK_AccountCategoryCode) is one of the secured columns. + +```http +HTTP/1.1 200 OK +Content-Type: application/json; odata.metadata=minimal +OData-Version: 4.0 + +{ + "@odata.context": "[ORGANIZATION URI]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.RetrieveMetadataChangesResponse", + "ServerVersionStamp": "152647645!07/11/2025 23:37:54", + "DeletedMetadata": { + "Count": 0, + "IsReadOnly": false, + "Keys": [], + "Values": [] + }, + "EntityMetadata": [ + { + "SchemaName": "Account", + "MetadataId": "70816501-edb9-4740-a16c-6a5efbc05d84", + "Attributes": [ + { + "CanBeSecuredForRead": true, + "CanBeSecuredForCreate": true, + "CanBeSecuredForUpdate": true, + "IsPrimaryName": false, + "IsSecured": false, + "LogicalName": "accountcategorycode", + "SchemaName": "AccountCategoryCode", + "MetadataId": "118771ca-6fb9-4f60-8fd4-99b6124b63ad", + "AttributeTypeName": { + "Value": "PicklistType" + } + }, + Truncated for brevity... + ] + }, + Truncated for brevity... + ] +} +``` + +[Learn how to Query schema definitions](query-schema-definitions.md) + +--- + +## Secure a column with code + +It's easiest to [Secure a column](/power-platform/admin/field-level-security#enable-column-securit) using [Power Apps](https://make.powerapps.com/). If you need to automate securing a column, use code to update the column definition to set the [AttributeMetadata.IsSecured property](/dotnet/api/microsoft.xrm.sdk.metadata.attributemetadata.issecured) property as shown in the following examples: + + +### [SDK for .NET](#tab/sdk) + +This static `SetColumnIsSecured` method retrieves the current definition of the specified column and updates its security status only if the provided value differs from the current value. If the column is already set to the specified security status, no update request is sent. + +:::code language="csharp" source="~/../PowerApps-Samples/dataverse/orgsvc/CSharp-NETCore/ColumnLevelSecurity/Examples.cs" id="SetColumnIsSecured"::: + +[Learn how to update a column using the SDK for .NET](org-service/metadata-attributemetadata.md#update-a-column) + +### [Web API](#tab/webapi) + +The following `Set-ColumnIsSecured-Example` PowerShell function retrieves the current definition of the specified column and updates its security status only if the provided value differs from the current value. If the column is already set to the specified security status, no update request is sent. + +This function depends on [Get-Column](https://github.com/microsoft/PowerApps-Samples/blob/master/dataverse/webapi/PS/README.md#get-column-function) and [Update-Column](https://github.com/microsoft/PowerApps-Samples/blob/master/dataverse/webapi/PS/README.md#update-column-function) functions defined by the [Dataverse Web API PowerShell Helper functions](https://github.com/microsoft/PowerApps-Samples/blob/master/dataverse/webapi/PS/README.md) used by other PowerShell samples. + +:::code language="powershell" source="~/../PowerApps-Samples/dataverse/webapi/PS/ColumnLevelSecurity/Examples.ps1" id="SetColumnIsSecuredExample"::: + +[Learn how to update a column using the Web API](webapi/create-update-column-definitions-using-web-api.md#update-a-column) + +--- + +## Provide access to secured columns + +By default, when a column is secured, only people who have the system administrator security role can read or set the value. A system administrator can provide other users access to secured columns in two ways: + +- [Manage access using field security profiles](#manage-access-using-field-security-profiles): Use field security profiles to give access to column data for all records to groups. +- [Share data in secured fields](#share-data-in-secured-fields): Use field sharing to give a specific principal or team access to data in a secure column for a specific record. + +### Manage access using field security profiles + +This approach is the most common when you have different groups of users who require different levels of access. See the [Column-level security example](/power-platform/admin/column-level-security-example) that describes how to secure fields for different users using the Power Platform admin center. + +To do this using code, create [Field Security Profile (FieldSecurityProfile)](reference/entities/fieldsecurityprofile.md) records that associate principals (users and teams) with [Field Permission (FieldPermission)](reference/entities/fieldpermission.md) records that control which data operations can be performed on that column for any record. + + + + + +:::image type="content" source="media/fieldsecurityprofile-erd.png" alt-text="entity relationship diagram for the fieldsecurityprofile table and related tables"::: + +You can associate system users and teams to your field security profile using the [systemuserprofiles_association](/power-apps/developer/data-platform/reference/entities/fieldsecurityprofile#BKMK_systemuserprofiles_association) and [teamprofiles_association](/power-apps/developer/data-platform/reference/entities/fieldsecurityprofile#BKMK_teamprofiles_association) many-to-many relationships respectively. + +Associate field permissions to the field security profiles using the [`lk_fieldpermission_fieldsecurityprofileid` one-to-many relationship](reference/entities/fieldsecurityprofile.md#BKMK_lk_fieldpermission_fieldsecurityprofileid). The following table describes important field permission table columns: + + +|Column |Type |Description | +|---------|---------|---------| +|`FieldSecurityProfileId`|Lookup|Refers to the field security profile this field permission applies to.| +|`EntityName`|String|The logical name of the table that contains the secured column.| +|`AttributeLogicalName`|String|The logical name of the secured column.| +|`CanCreate`|Choice|Whether create access is allowed. See [Field security permission type options](#field-security-permission-type-options)| +|`CanRead`|Choice|Whether read access is allowed. See [Field security permission type options](#field-security-permission-type-options)| +|`CanUpdate`|Choice|Whether update access is allowed. See [Field security permission type options](#field-security-permission-type-options)| +|`CanReadUnmasked`|Choice|Whether an unmasked value can be retrieved when `CanRead` is **Allowed**.| + +#### Field security permission type options + +The `CanCreate`, `CanRead`, and `CanUpdate` choice columns use the values defined by the `field_security_permission_type` global choice: + +- `0` **Not Allowed** +- `4` **Allowed** + +> [!NOTE] +> Don't set `CanReadUnmasked` column unless you're using the [display masked data](#display-masked-data) feature and you want to enable an app to return the unmasked value. + +### Share data in secured fields + +Create [Field Sharing (PrincipalObjectAttributeAccess)](reference/entities/principalobjectattributeaccess.md) records to share access to a secured field for a specific record with someone else. + +> [!NOTE] +> Conceptually, this process is similar to the [PrincipalObjectAccess](reference/entities/principalobjectaccess.md) table that manages sharing of records. The difference is that with *record sharing* you use the `GrantAccess`, `ModifyAccess`, and `RevokeAccess` messages to add, modify, and remove records from the `PrincipalObjectAccess` table. [Learn more about sharing records](security-sharing-assigning.md#sharing-records) +> +> With *field sharing*, use the `PrincipalObjectAttributeAccess` table to grant, modify, and revoke field access using create, update, and delete operations on a table row. + +The `PrincipalObjectAttributeAccess` table has these columns: + +|Column |Type |Description | +|---------|---------|---------| +|`AttributeId`|Guid|The [AttributeMetadata.MetadataId](/dotnet/api/microsoft.xrm.sdk.metadata.metadatabase.metadataid) of the secured column. | +|`ObjectId`|Lookup|A reference to the record that contains the secured column.| +|`PrincipalId`|Lookup|A reference to the principal (user or team) you're granting access to.| +|`ReadAccess`|Bool|Whether to grant read access to the field data| +|`UpdateAccess`|Bool|Whether to grant update access to the field data| + + +#### Getting column AttributeId + +The `PrincipalObjectAttributeAccess.AttributeId` column uses the [AttributeMetadata.MetadataId](/dotnet/api/microsoft.xrm.sdk.metadata.metadatabase.metadataid) rather than the column logical name. You need to retrieve this value from the metadata. If your application has a metadata cache, you can include this data and access it as needed. + +#### Retrieve column AttributeId example + +This example shows how to get the [AttributeMetadata.MetadataId](/dotnet/api/microsoft.xrm.sdk.metadata.metadatabase.metadataid) value you need to set the `PrincipalObjectAttributeAccess.AttributeId` column value. + +##### [SDK for .NET](#tab/sdk) + +The [Grant column access](#grant-column-access-example), [Modify column access](#modify-column-access-example), and [Revoke column access](#revoke-column-access-example) SDK for .NET examples use the `RetrieveColumnId` static method to retrieve the [AttributeMetadata.MetadataId](/dotnet/api/microsoft.xrm.sdk.metadata.metadatabase.metadataid) value used in the `PrincipalObjectAttributeAccess.AttributeId` column. + +:::code language="csharp" source="~/../PowerApps-Samples/dataverse/orgsvc/CSharp-NETCore/ColumnLevelSecurity/Examples.cs" id="RetrieveColumnId"::: + +[Learn how to query schema definitions](query-schema-definitions.md) + + +##### [Web API](#tab/webapi) + +This example returns the column `MetadataId` when the table `LogicalName` is `account` and the column `LogicalName` is `name`. + +**Request**: + +```http +GET [Organization URL]/api/data/v9.2/EntityDefinitions(LogicalName='account')/Attributes(LogicalName='name')/MetadataId HTTP/1.1 +Accept: application/json +OData-MaxVersion: 4.0 +OData-Version: 4.0 +``` + +**Response**: + +```http +HTTP/1.1 200 OK +Content-Type: application/json; odata.metadata=minimal +OData-Version: 4.0 + +{ + "@odata.context": "[Organization URL]/api/data/v9.2/$metadata#EntityDefinitions('account')/Attributes('name')/MetadataId", + "value": "a1965545-44bc-4b7b-b1ae-93074d0e3f2a" +} +``` + +--- + + +#### Grant column access example + +These examples create a new [Field Sharing (PrincipalObjectAttributeAccess)](reference/entities/principalobjectattributeaccess.md) record to share access to the specified field. + +##### [SDK for .NET](#tab/sdk) + +This method allows you to share read and/or update permissions for a secured column in a Dataverse table with a specific principal (user or team). The column must be configured as a secured field in Dataverse. + +This example depends on the `RetrieveColumnId` example function found in [Retrieve column AttributeId example](#retrieve-column-attributeid-example). + +:::code language="csharp" source="~/../PowerApps-Samples/dataverse/orgsvc/CSharp-NETCore/ColumnLevelSecurity/Examples.cs" id="GrantColumnAccess"::: + +##### [Web API](#tab/webapi) + +This example grants the user with `systemuserid` value of `d93e9712-5c0b-f011-bae2-7c1e526458ff` read access to the value of the column that has `AttributeMetadata.MetadataId` of `0134fc5f-cb61-f011-bec2-00224823101f` for the `sample_example` table record with primary key value of `eccf556c-cb61-f011-bec2-7ced8d1ef7ad`. + + +**Request**: + +```http +POST [ORGANIZATION URI]/api/data/v9.2/principalobjectattributeaccessset HTTP/1.1 +Accept: application/json +Authorization: Bearer [REDACTED] +OData-Version: 4.0 +OData-MaxVersion: 4.0 +Content-Type: application/json + +{ + "objectid_sample_example@odata.bind": "/sample_examples(eccf556c-cb61-f011-bec2-7ced8d1ef7ad)", + "attributeid": "0134fc5f-cb61-f011-bec2-00224823101f", + "updateaccess": false, + "principalid_systemuser@odata.bind": "/systemusers(d93e9712-5c0b-f011-bae2-7c1e526458ff)", + "@odata.type": "Microsoft.Dynamics.CRM.principalobjectattributeaccess", + "readaccess": true +} +``` + +**Response**: + +The primary key value for the created record is `784a01b1-cb61-f011-bec2-00224823101f`. Use this value to identify records to modify or delete access. + +```http +HTTP/1.1 204 No Content +OData-Version: 4.0 +OData-EntityId: [ORGANIZATION URI]/api/data/v9.2/principalobjectattributeaccessset(784a01b1-cb61-f011-bec2-00224823101f) +``` + +[Learn to create a table row using the Web API](webapi/create-entity-web-api.md) + +--- + +#### Modify column access example + +These examples retrieve and update an existing [Field Sharing (PrincipalObjectAttributeAccess)](reference/entities/principalobjectattributeaccess.md) record to modify access to the specified field. + +##### [SDK for .NET](#tab/sdk) + +This example depends on the `RetrieveColumnId` example function found in [Retrieve column AttributeId example](#retrieve-column-attributeid-example). + +:::code language="csharp" source="~/../PowerApps-Samples/dataverse/orgsvc/CSharp-NETCore/ColumnLevelSecurity/Examples.cs" id="ModifyColumnAccess"::: + +##### [Web API](#tab/webapi) + +This example modifies the access granted in the [Grant column access example](#grant-column-access-example) to include update access. + +**Request**: + +```http +PATCH [ORGANIZATION URI]/api/data/v9.2/principalobjectattributeaccessset(784a01b1-cb61-f011-bec2-00224823101f) HTTP/1.1 +Accept: application/json +Authorization: Bearer [REDACTED] +OData-Version: 4.0 +If-Match: * +OData-MaxVersion: 4.0 +Content-Type: application/json + +{ + "updateaccess": true +} +``` + +**Response**: + +```http +HTTP/1.1 204 No Content +OData-Version: 4.0 +``` + +[Learn how to update a record using Web API](webapi/update-delete-entities-using-web-api.md#basic-update) + +--- + +#### Revoke column access example + +These examples retrieve and delete an existing [Field Sharing (PrincipalObjectAttributeAccess)](reference/entities/principalobjectattributeaccess.md) record to revoke access to the specified field. + +##### [SDK for .NET](#tab/sdk) + +This example depends on the `RetrieveColumnId` example function found in [Retrieve column AttributeId example](#retrieve-column-attributeid-example). + +:::code language="csharp" source="~/../PowerApps-Samples/dataverse/orgsvc/CSharp-NETCore/ColumnLevelSecurity/Examples.cs" id="RevokeColumnAccess"::: + +##### [Web API](#tab/webapi) + +This example removes the access that was granted in the [Grant column access example](#grant-column-access-example). + + +**Request**: + +```http +DELETE [ORGANIZATION URI]/api/data/v9.2/principalobjectattributeaccessset(784a01b1-cb61-f011-bec2-00224823101f) HTTP/1.1 +Accept: application/json +Authorization: Bearer [REDACTED] +OData-MaxVersion: 4.0 +OData-Version: 4.0 +``` + +**Response**: + +```http +HTTP/1.1 204 No Content +OData-Version: 4.0 +``` + +[Learn to delete a record using Web API](webapi/update-delete-entities-using-web-api.md#basic-delete) + +--- + +## Display Masked data + +The default API behavior when returning a value for a secured column is to return no data. The calling application can't distinguish between a value that is secured and a value that is null. + +[There's now a preview feature](/power-platform/admin/create-manage-masking-rules) you can use to specify that a string value is returned when data exists. This string might totally obfuscate the value or show portions of the data depending on masking rules you define. In this way, the application can better manage sensitive data. + +With this feature, you can configure [Field Permission (FieldPermission)](reference/entities/fieldpermission.md) records to create field security profiles that enable applications to send requests to retrieve records with the masking removed so that the data can be shown under controlled circumstances. [Learn more about retrieving unmasked data](#retrieve-unmasked-data) + +### Create a secure masking rule + +Every column that displays masked data needs to refer to a [Secured Masking Rule (MaskingRule)](reference/entities/maskingrule.md) table row. You can create secure masking rules in Power Apps and add them to your solution, or you can use any of the existing rules. + +Create [Secured Masking Column (AttributeMaskingRule)](reference/entities/attributemaskingrule.md) table records to specify which masking rule a secure column should use. + +The following diagram describes these tables: + +:::image type="content" source="media/maskingrule-attributemaskingrule-erd.png" alt-text="Diagram showing columns and relationships between the MaskingRule and AttributeMaskingRule tables"::: + + + + +#### Secured Masking Rule columns + +The [Secured Masking Rule (MaskingRule)](reference/entities/maskingrule.md) table has these write-able columns: + +|Column|Type|Description| +|---|---|---| +|`Name`|String|The unique name of the secured masking rule.| +|`Description`|String|Description of the secured masking rule.| +|`DisplayName`|String|The display name of the secured masking rule.| +|`MaskedCharacter`|String|Character used to mask.| +|`RegularExpression`|String|Regular Expression in C#.| +|`IsCustomizable`|BooleanManagedProperty|Information that specifies whether this component can be customized. [Learn more about managed properties](/power-platform/alm/managed-properties-alm)| +|`RichTestData`|String|Set rich text test data to test this secured masking rule.| +|`MaskedRichTestData`|String|`RichTestData` column data evaluated by this secured masking rule.| +|`TestData`|String|Set test data to test this secured masking rule.| +|`MaskedTestData`|String|`TestData` column data evaluated by a secured masking rule.| + +> [!NOTE] +> The `RichTestData`, `MaskedRichTestData`, `TestData`, and `MaskedTestData` columns exist to support the experience to test masking rules in [Power Apps](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc). [Learn more about creating masking rules](/power-platform/admin/create-manage-masking-rules#create-masking-rules). + +#### Secured Masking Column columns + +The [Secured Masking Column (AttributeMaskingRule)](reference/entities/attributemaskingrule.md) table has these write-able columns: + +|Column|Type|Description| +|---|---|---| +|`AttributeLogicalName`|String|Logical name of the column for which the secured masking rule is used.| +|`EntityName`|String|Logical name of the table that contains the column.| +|`MaskingRuleId`|Lookup|The masking rule that the column uses| +|`UniqueName`|String|The unique name of the secured masking column.| +|`IsCustomizable`|BooleanManagedProperty|Information that specifies whether this component can be customized. [Learn more about managed properties](/power-platform/alm/managed-properties-alm)| + + +### Retrieve unmasked data + +When a [Field Permission (FieldPermission)](reference/entities/fieldpermission.md) record `CanRead` column is **Allowed**, you can set the `CanReadUnmasked` choice column when the column has an [Secured Masking Column (AttributeMaskingRule)](reference/entities/attributemaskingrule.md) record associated with it. + +The `CanReadUnmasked` column supports the following options defined by the `field_security_permission_readunmasked` global choice. + +|Value|Label|Description| +|---|---|---| +|0|**Not Allowed**|The default value. If there isn't an `AttributeMaskingRule` for the column, you can't set any other value.| +|1|**One Record**|Unmasked data can be returned using the a `Retrieve` operation only.| +|3|**All Records**|Unmasked data can be returned using the a `Retrieve` and `RetrieveMultiple` operations.| + + +#### Retrieve unmasked data example + +The following examples show how to use the [`UnMaskedData` optional parameter](optional-parameters.md#return-unmasked-data) to request that the unmasked value is returned when the configuration of the field permission allows it. + +### [SDK for .NET](#tab/sdk) + +The `GetUnmaskedExampleRows` example returns unmasked values for any of the requested columns where the field permission `CanReadUnmasked` column value is set to **All Records** because the optional `UnMaskedData` parameter is added to the `RetrieveMultiple` request. + +This method queries the `sample_example` table and retrieves specific columns, including sensitive data such as government ID and date of birth. The query results are ordered by the `sample_name` column in descending order. + +:::code language="csharp" source="~/../PowerApps-Samples/dataverse/orgsvc/CSharp-NETCore/ColumnLevelSecurity/Examples.cs" id="GetUnmaskedExampleRows"::: + +### [Web API](#tab/webapi) + +**Request:** + +```http +GET [ORGANIZATION URI]/api/data/v9.2/sample_examples?$select=sample_name,sample_email,sample_governmentid,sample_telephonenumber,sample_dateofbirth&$orderby=sample_name%20desc&UnMaskedData=true HTTP/1.1 +Accept: application/json +Authorization: Bearer [Redacted] +Prefer: odata.include-annotations="*" +OData-Version: 4.0 +OData-MaxVersion: 4.0 +``` + +**Response:** + +```http +HTTP/1.1 200 OK +Content-Type: application/json; odata.metadata=minimal +OData-Version: 4.0 +Preference-Applied: odata.include-annotations="*" + +{ + "@odata.context": "[ORGANIZATION URI]/api/data/v9.2/$metadata#sample_examples(sample_name,sample_email,sample_governmentid,sample_telephonenumber,sample_dateofbirth)", + "@Microsoft.Dynamics.CRM.totalrecordcount": -1, + "@Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded": false, + "@Microsoft.Dynamics.CRM.globalmetadataversion": "153019637", + "value": [ + { + "@odata.etag": "W/\"153019647\"", + "sample_email": "jaydenp@adatum.com", + "sample_governmentid": "***-**-5353", + "sample_dateofbirth": "3/25/1974", + "sample_name": "Jayden Phillips", + "sample_exampleid": "eccf556c-cb61-f011-bec2-7ced8d1ef7ad", + "sample_telephonenumber": "(736) 555-9012" + }, + { + "@odata.etag": "W/\"153012339\"", + "sample_email": "benjamin@adventure-works.com", + "sample_governmentid": "***-**-7508", + "sample_dateofbirth": "6/18/1984", + "sample_name": "Benjamin Stuart", + "sample_exampleid": "edcf556c-cb61-f011-bec2-7ced8d1ef7ad", + "sample_telephonenumber": "(195) 555-7901" + }, + { + "@odata.etag": "W/\"153012340\"", + "sample_email": "avery@alpineskihouse.com", + "sample_governmentid": "***-**-1720", + "sample_dateofbirth": "9/4/1994", + "sample_name": "Avery Howard", + "sample_exampleid": "eecf556c-cb61-f011-bec2-7ced8d1ef7ad", + "sample_telephonenumber": "(152) 555-5591" + } + ] +} +``` + +--- + +### Related articles + +[Security and data access](security-model.md) +[Sharing and assigning](security-sharing-assigning.md) +[Sample: Column-level security using Dataverse SDK for .NET](org-service/samples/column-level-security.md) +[Sample: Column-level security using Dataverse Web API (PowerShell)](webapi/samples/column-level-security-powershell.md) diff --git a/powerapps-docs/developer/data-platform/community-tools.md b/powerapps-docs/developer/data-platform/community-tools.md index bdbf553f06..870ce15c03 100644 --- a/powerapps-docs/developer/data-platform/community-tools.md +++ b/powerapps-docs/developer/data-platform/community-tools.md @@ -1,12 +1,12 @@ --- title: "Community tools for Microsoft Dataverse (Dataverse) | Microsoft Docs" description: "Read about the community built tools that help you perform various tasks with Microsoft Dataverse." -ms.date: 03/15/2021 +ms.date: 06/20/2025 ms.reviewer: pehecke ms.topic: article -author: MicroSri +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer --- @@ -15,11 +15,11 @@ search.audienceType: The Power Apps community creates tools! > [!IMPORTANT] -> Tools created by the community are not supported by Microsoft. If you have questions or issues with community tools, contact the publisher of the tool. +> Tools created by the community aren't supported by Microsoft. If you have questions or issues with community tools, contact the publisher of the tool. ## XrmToolBox -Many of the most popular ones are distributed in the [XrmToolBox](https://www.xrmtoolbox.com/). XrmToolBox is a Windows application that connects to Dataverse, providing tools to ease customization, configuration, and operation tasks. It's shipped with more than 30 plugins to make administration, customization, or configuration tasks easier and less time consuming. +Many of the most popular ones are distributed in the [XrmToolBox](https://www.xrmtoolbox.com/). XrmToolBox is a Windows application that connects to Dataverse, providing tools to ease customization, configuration, and operation tasks. It includes more than 30 plugins to make administration, customization, or configuration tasks easier and less time consuming. The following list of selected community tools is distributed via the XrmToolBox that you can use with Dataverse. @@ -48,14 +48,12 @@ The [Level up](https://chrome.google.com/webstore/detail/level-up-for-dynamics-3 ## Visual Studio Code Extensions -With the popularity of building own's extension for Visual Studio Code the community has built several of them. - -The following is a selected list of community tools available for Visual Studio Code: +The following table contains a selected list of community tools available for Visual Studio Code: |Tool |Description | |---------|---------| |[Dataverse DevTools](https://marketplace.visualstudio.com/items?itemName=danish-naglekar.dataverse-devtools)|The all-in-one tool to develop code for Dataverse/Dynamics 365. Helps you connect to a Dataverse environment, generate TypeScript definitions for entities, create different type of Dataverse-specific projects, and much more.| |[Power Apps Portal Helper](https://marketplace.visualstudio.com/items?itemName=oleksandr-olashyn.portal-helper-vscode)|Set of commands that simplify working with Power Apps CLI for Portals| -|[PCF Builder](https://marketplace.visualstudio.com/items?itemName=danish-naglekar.pcf-builder)|Helps with initializing, building and testing Power Apps Component Framework components| +|[PCF Builder](https://marketplace.visualstudio.com/items?itemName=danish-naglekar.pcf-builder)|Helps with initializing, building, and testing Power Apps Component Framework components| [!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/configure-azure-integration.md b/powerapps-docs/developer/data-platform/configure-azure-integration.md index 0d5b86cb06..6dcbd651bf 100644 --- a/powerapps-docs/developer/data-platform/configure-azure-integration.md +++ b/powerapps-docs/developer/data-platform/configure-azure-integration.md @@ -3,7 +3,7 @@ title: "Configure Azure integration (Microsoft Dataverse) | Microsoft Docs" # In description: "Learn about configuring Azure integration with Microsoft Dataverse." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 07/19/2024 ms.reviewer: "pehecke" -ms.topic: "article" +ms.topic: how-to author: "jaredha" # GitHub ID ms.subservice: dataverse-developer ms.author: "jdaly" # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/configure-entity-relationship-cascading-behavior.md b/powerapps-docs/developer/data-platform/configure-entity-relationship-cascading-behavior.md index 1e7c8864a7..ab9d55916e 100644 --- a/powerapps-docs/developer/data-platform/configure-entity-relationship-cascading-behavior.md +++ b/powerapps-docs/developer/data-platform/configure-entity-relationship-cascading-behavior.md @@ -5,7 +5,7 @@ suite: powerapps author: mkannapiran ms.author: kamanick ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.date: 09/05/2023 ms.subservice: dataverse-developer search.audienceType: diff --git a/powerapps-docs/developer/data-platform/configure-exchange-folder-level-tracking-rules.md b/powerapps-docs/developer/data-platform/configure-exchange-folder-level-tracking-rules.md index bfe444a286..bca8cf5671 100644 --- a/powerapps-docs/developer/data-platform/configure-exchange-folder-level-tracking-rules.md +++ b/powerapps-docs/developer/data-platform/configure-exchange-folder-level-tracking-rules.md @@ -3,7 +3,7 @@ title: "Configure Exchange folder-level tracking rules (Microsoft Dataverse) | M description: "Learn how to configure Exchange folder-level tracking rules" # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 03/24/2021 ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to author: DanaMartens # GitHub ID ms.subservice: dataverse-developer ms.author: dmartens # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/create-auto-number-attributes.md b/powerapps-docs/developer/data-platform/create-auto-number-attributes.md index 7c1ee8090a..f4f9a527fb 100644 --- a/powerapps-docs/developer/data-platform/create-auto-number-attributes.md +++ b/powerapps-docs/developer/data-platform/create-auto-number-attributes.md @@ -4,7 +4,7 @@ description: "Learn about creating autonumber column in the same way you create keywords: "Autonumber columns" ms.date: 06/15/2022 ms.reviewer: jdaly -ms.topic: "article" +ms.topic: how-to author: mkannapiran ms.author: kamanick ms.subservice: dataverse-developer diff --git a/powerapps-docs/developer/data-platform/create-custom-api-maker-portal.md b/powerapps-docs/developer/data-platform/create-custom-api-maker-portal.md index dc3e2c35df..c5619583fd 100644 --- a/powerapps-docs/developer/data-platform/create-custom-api-maker-portal.md +++ b/powerapps-docs/developer/data-platform/create-custom-api-maker-portal.md @@ -1,34 +1,33 @@ --- -title: "Create a custom API in Power Apps (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces +title: "Create a custom API in Power Apps (Microsoft Dataverse) | Microsoft Docs" description: "Create a custom API definition using Power Apps (make.powerapps.com)" -ms.custom: "" -ms.date: 04/19/2022 -ms.reviewer: "jdaly" -ms.topic: "article" -author: MicroSri +ms.date: 06/20/2025 +ms.reviewer: jdaly +ms.topic: how-to +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer --- # Create a custom API in Power Apps -When creating a custom API, you must use a solution. If you are not familiar with solutions, first read [Create a solution](../../maker/data-platform/create-solution.md). +When creating a custom API, you must use a solution. If you aren't familiar with solutions, first read [Create a solution](../../maker/data-platform/create-solution.md). -Your solution must be associated with a publisher. The publisher will have a specific customization prefix associated with it. You must use a customization prefix when creating a custom API and this prefix should be the same used by the publisher of your solution. The instructions below will use the value `sample` as the customization prefix because it is the one set for the publisher. +Your solution must be associated with a publisher. The publisher has a specific customization prefix associated with it. You must use a customization prefix when creating a custom API and this prefix should be the same used by the publisher of your solution. The following instructions use the value `sample` as the customization prefix because it's the one set for the publisher. > [!IMPORTANT] -> - There is now a better experience for creating custom API. You can use a designer within the Plug-in registration tool. More information: [Create a custom API using the plug-in registration tool](create-custom-api-prt.md) -> - Many fields related to creating custom API cannot be changed after you create them. You should carefully plan the design of the custom API before you start. If you later decide that you need to change things after you create the custom API, you may need to delete the existing record and re-create the custom API. Review the information about the columns that cannot be changed here: [CustomAPI tables](custom-api-tables.md) +> - There's now a better experience for creating custom API. You can use a designer within the Plug-in registration tool. More information: [Create a custom API using the plug-in registration tool](create-custom-api-prt.md) +> - Many fields related to creating custom API can't be changed after you create them. You should carefully plan the design of the custom API before you start. If you later decide that you need to change things after you create the custom API, you might need to delete the existing record and re-create the custom API. Review the information about the columns that can't be changed here: [CustomAPI tables](custom-api-tables.md) ## Create a custom API record -1. In your solution, click **New** > **More** > **Other** > **custom API** from the drop-down. -1. Edit the fields to set the properties of your custom API. You must set values for the following fields. For more information see [Custom API table columns](custom-api-tables.md#custom-api-table-columns) +1. In your solution, select **New** > **More** > **Other** > **custom API** from the drop-down. +1. Edit the fields to set the properties of your custom API. You must set values for the following fields. For more information, see [Custom API table columns](custom-api-tables.md#custom-api-table-columns) - You cannot set values for **Plug-in Type** unless you have already created the plug-in. You can change this later. + You can't set values for **Plug-in Type** before you create the plug-in. You can change this later. -1. Click **Save**. Your form should look something like this: +1. Select **Save**. Your form should look something like this: :::image type="content" source="media/saved-customapi-form.png" alt-text="Saved Custom API form."::: @@ -36,26 +35,26 @@ Your solution must be associated with a publisher. The publisher will have a spe A custom API doesn't require parameters. Create as many parameters as you need to pass data needed for your logic. -1. In your solution, click **New** > **More** > **Other** > **Custom API Request Parameter** from the drop-down. -1. Edit the fields to set the properties of your custom API Request Parameter. For more information see [CustomAPIRequestParameter Table Columns](custom-api-tables.md#customapirequestparameter-table-columns) +1. In your solution, select **New** > **More** > **Other** > **Custom API Request Parameter** from the drop-down. +1. Edit the fields to set the properties of your custom API Request Parameter. For more information, see [CustomAPIRequestParameter Table Columns](custom-api-tables.md#customapirequestparameter-table-columns) -1. Click **Save**. Your form should look something like this: +1. Select **Save**. Your form should look something like this: :::image type="content" source="media/customapi-request-parameter-form.png" alt-text="Example of a custom API Request Parameter Form."::: ## Create any Response Properties -A custom API that represents an Action doesn't require response properties. A Function must have at least one. If the operation succeeds, it will return a success response. If it fails, it will return an error. You should define response properties for any data that your API will return. +A custom API that represents an Action doesn't require response properties. A Function must have at least one. If the operation succeeds, it returns a success response. If it fails, it returns an error. You should define response properties for any data that your API returns. -If there is only a single **Entity** or **EntityCollection** response property defined, the response will be of that type. If there are multiple properties, or one or more property of a simple type, the API will return a complex type where each response property will be a property of that complex type. +If there's only a single **Entity** or **EntityCollection** response property defined, the response is of that type. If there are multiple properties, or one or more properties of a simple type, the API returns a complex type where each response property is a property of that complex type. -For example, if your custom API Unique name is `sample_CustomAPIExample`, it will return a complex type named `sample_CustomAPIExampleResponse` with properties for each response property you define. +For example, if your custom API Unique name is `sample_CustomAPIExample`, it returns a complex type named `sample_CustomAPIExampleResponse` with properties for each response property you define. -1. In your solution, click **New** > **More** > **Other** > **Custom API Response Property** from the drop-down. -1. Edit the fields to set the properties of your custom API Response Property. For more information see [CustomAPIResponseProperty Table Columns](customapiresponseproperty-table-columns.md) +1. In your solution, select **New** > **More** > **Other** > **Custom API Response Property** from the drop-down. +1. Edit the fields to set the properties of your custom API Response Property. For more information, see [CustomAPIResponseProperty Table Columns](customapiresponseproperty-table-columns.md) -1. Click **Save**. Your form should look something like this: +1. Select **Save**. Your form should look something like this: :::image type="content" source="media/customapi-response-property-form.png" alt-text="Custom API Response Property Form."::: @@ -78,26 +77,26 @@ Search the result to find the name of the custom API. For example, the API defin ## Test your custom API -Now that you have created your custom API you can try it. Even if you haven't set a plug-in type to define the main operation, you can test it now to verify that you can call it correctly. Any response properties will return their default value, such as null. More information: [Invoking custom APIs](custom-api.md#invoking-custom-apis). +After you create your custom API you can try it. Even if you haven't set a plug-in type to define the main operation, you can test it now to verify that you can call it correctly. Any response properties return their default value, such as null. More information: [Invoking custom APIs](custom-api.md#invoking-custom-apis). ## Update the custom API Plugin Type For information about how to write a plug-in for a custom api, see [Write a Plug-in for your custom API](custom-api.md#write-a-plug-in-for-your-custom-api). -After you have registered your assembly, you need to set the **Plugin Type** value for the custom API you created. This is a lookup property, so you just need to find the Plug-in Type that represents the type created when you registered the assembly. +After you register your assembly, you need to set the **Plugin Type** value for the custom API you created. This is a lookup property, so you just need to find the Plug-in Type that represents the type created when you registered the assembly. :::image type="content" source="media/set-custom-api-type.png" alt-text="Set the custom API Plugin Type Lookup."::: -Once you have set the **Plugin Type**, you can test your custom API to verify the correct results are returned. +Once you set the **Plugin Type**, you can test your custom API to verify the correct results are returned. ## Other ways to create custom APIs The plugin registration tool provides a custom API designer. More information: [Create a custom API using the plug-in registration tool](create-custom-api-prt.md) -You may have requirements to create a client application which will allow creation of custom APIs outside of the designer. Because the data for custom APIs is stored in tables, you can create them using code. More information: [Create a custom API with code](create-custom-api-with-code.md). +You might have requirements to create a client application that allows creation of custom APIs outside of the designer. Because the data for custom APIs is stored in tables, you can create them using code. More information: [Create a custom API with code](create-custom-api-with-code.md). -Your ALM process may be better served by creating custom APIs by editing solution files. More information: [Create a custom API with solution files](create-custom-api-solution.md). +Your ALM process might be better served by creating custom APIs by editing solution files. More information: [Create a custom API with solution files](create-custom-api-solution.md). ### See also diff --git a/powerapps-docs/developer/data-platform/create-custom-api-solution.md b/powerapps-docs/developer/data-platform/create-custom-api-solution.md index 3db03f92c8..ab6977f86e 100644 --- a/powerapps-docs/developer/data-platform/create-custom-api-solution.md +++ b/powerapps-docs/developer/data-platform/create-custom-api-solution.md @@ -3,10 +3,10 @@ title: "Create a custom API with solution files" description: "You can write create custom APIs by editing solution files." ms.date: 07/14/2023 ms.reviewer: jdaly -ms.topic: article -author: MicroSri +ms.topic: how-to +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: @@ -213,7 +213,7 @@ See the information in [CustomAPIResponseProperty Table Columns](customapirespon 1. Wait a few minutes while the solution import completes. > [!NOTE] - > It is possible you will see an error if another solution is being installed at the same time. More information: [The solution installation or removal failed due to the installation or removal of another solution at the same time](https://support.microsoft.com/help/4343228/the-solution-installation-or-removal-failed-due-to-the-installation-or) + > It is possible you will see an error if another solution is being installed at the same time. More information: [Concurrent solution operation failures](/troubleshoot/power-platform/dataverse/working-with-solutions/concurrent-solution-operation-failures) ## Step 8: Verify that the custom API was added to your solution diff --git a/powerapps-docs/developer/data-platform/create-custom-api-with-code.md b/powerapps-docs/developer/data-platform/create-custom-api-with-code.md index a3f264c141..81f9612ec6 100644 --- a/powerapps-docs/developer/data-platform/create-custom-api-with-code.md +++ b/powerapps-docs/developer/data-platform/create-custom-api-with-code.md @@ -1,10 +1,10 @@ --- -title: "Create a custom API with code (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "You can write code create custom APis." # 115-145 characters including spaces. This abstract displays in the search result. -author: MicroSri -ms.author: sriknair -ms.date: 09/27/2022 -ms.topic: article +title: "Create a custom API with code (Microsoft Dataverse) | Microsoft Docs" +description: "You can write code create custom APIs." +author: MsSQLGirl +ms.author: jukoesma +ms.date: 06/20/2025 +ms.topic: how-to ms.subservice: dataverse-developer ms.reviewer: jdaly search.audienceType: @@ -15,11 +15,11 @@ contributors: # Create a custom API with code > [!NOTE] -> This is an advanced topic that assumes you have already read and understood these topics: +> Creating an API with code is an advanced subject that assumes you read and understood these articles: > - [Create and use custom APIs](custom-api.md) > - [Create a custom API using the plug-in registration tool](create-custom-api-prt.md) > -> You should also understand how to create Microsoft Dataverse records, using either the Web API or SDK for .NET. For more information see: +> You should also understand how to create Microsoft Dataverse records, using either the Web API or SDK for .NET. For more information, see: > - [Create an entity record using the Web API](webapi/create-entity-web-api.md) > - [Create entities using the SDK for .NET](org-service/entity-operations-create.md) @@ -29,7 +29,7 @@ The tables in [Custom API tables](custom-api-tables.md) describe all the propert #### [SDK for .NET](#tab/sdk) -This code uses the with a early-bound programming style. You can also use . More information: +This code uses the with an early-bound programming style. You can also use . More information: - [Use CrmServiceClient constructors to connect to Dataverse](xrm-tooling/use-crmserviceclient-constructors-connect.md) - [Late-bound and Early-bound programming using the SDK for .NET](org-service/early-bound-programming.md) @@ -37,7 +37,7 @@ This code uses the with This example shows the creation of a custom API action with one request parameter and one response property in a single operation. More information: [Create related entities in one operation](org-service/entity-operations-create.md#create-related-entities-in-one-operation) -This custom api is created as part of a solution with the uniquename `CustomAPIExample` and is associated with a plug-in type with id = `00000000-0000-0000-0000-000000000001`. +This custom API is created as part of a solution with the uniquename `CustomAPIExample` and is associated with a plug-in type with ID = `00000000-0000-0000-0000-000000000001`. ```csharp string conn = $@" @@ -111,7 +111,7 @@ Guid customAPIId = ((CreateResponse)service.Execute(createReq)).id; This example shows the creation of a custom API action with one request parameter and one response property in a single operation. More information: [Create related table rows in one operation](webapi/create-entity-web-api.md#create-related-table-rows-in-one-operation) -This custom api is created as part of a solution with the uniquename `CustomAPIExample` and is associated with a plug-in type with id = `00000000-0000-0000-0000-000000000001`. +This custom API is created as part of a solution with the uniquename `CustomAPIExample` and is associated with a plug-in type with ID = `00000000-0000-0000-0000-000000000001`. **Request:** diff --git a/powerapps-docs/developer/data-platform/create-elastic-tables.md b/powerapps-docs/developer/data-platform/create-elastic-tables.md index 2bc60fc289..d0a2355757 100644 --- a/powerapps-docs/developer/data-platform/create-elastic-tables.md +++ b/powerapps-docs/developer/data-platform/create-elastic-tables.md @@ -1,10 +1,10 @@ --- title: Create elastic tables using code description: Learn how to create Dataverse elastic tables with code. -ms.topic: article +ms.topic: how-to ms.date: 02/22/2024 -author: pnghub -ms.author: gned +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/create-recurring-appointment-series-instance-exception.md b/powerapps-docs/developer/data-platform/create-recurring-appointment-series-instance-exception.md index e157c13c63..e615107aa8 100644 --- a/powerapps-docs/developer/data-platform/create-recurring-appointment-series-instance-exception.md +++ b/powerapps-docs/developer/data-platform/create-recurring-appointment-series-instance-exception.md @@ -5,7 +5,7 @@ ms.custom: "" ms.date: 03/26/2021 ms.reviewer: "pehecke" -ms.topic: "article" +ms.topic: how-to author: "mayadumesh" # GitHub ID ms.subservice: dataverse-developer ms.author: "jdaly" # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/custom-actions.md b/powerapps-docs/developer/data-platform/custom-actions.md index 5f341cfb0b..446aaf943c 100644 --- a/powerapps-docs/developer/data-platform/custom-actions.md +++ b/powerapps-docs/developer/data-platform/custom-actions.md @@ -1,14 +1,12 @@ --- -title: "Create your own messages (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "Learn about creating your own custom Microsoft Dataverse messages to be executed from your applications, and how these custom messages differ from using the custom API feature." # 115-145 characters including spaces. This abstract displays in the search result. -ms.custom: "" -ms.date: 03/21/2022 -ms.reviewer: "jdaly" - -ms.topic: "article" -author: MicroSri +title: "Create your own messages (Microsoft Dataverse) | Microsoft Docs" +description: "Learn about creating your own custom Microsoft Dataverse messages to be executed from your applications, and how these custom messages differ from using the custom API feature." +ms.date: 06/20/2025 +ms.reviewer: jdaly +ms.topic: article +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer --- @@ -17,7 +15,7 @@ search.audienceType: [!INCLUDE[cc-terminology](includes/cc-terminology.md)] -Microsoft Dataverse exposes APIs using *messages*. There are many out-of-box messages available for you to use. Custom messages are typically used to add new domain specific functionality to combine multiple message requests into a single request. For example, in a support call center, you may want to combine the `Create`, `Assign`, and `Update` messages into a single new `Escalate` message. +Microsoft Dataverse exposes APIs using *messages*. There are many out-of-box messages available for you to use. Custom messages are typically used to add new domain specific functionality to combine multiple message requests into a single request. For example, in a support call center, you might want to combine the `Create`, `Assign`, and `Update` messages into a single new `Escalate` message. There are now two ways to define custom messages: @@ -36,17 +34,17 @@ The following table describes some of the different capabilities. |Capability |Custom Process Action |Custom API |Description | |---------|---------|---------|---------| |Declarative logic with workflow |Yes|No|Workflow Actions can have logic defined without writing code using the Classic Workflow designer.
Custom APIs require a plug-in written in .NET to implement logic that is applied on the server.| -|Require specific privilege|No|Yes|With custom API you can designate that a user must have a specific privilege to call the message. If the user doesn't have that privilege through their security roles or team membership, an error will be returned.| -|Define main operation logic with code|Yes|Yes|With Custom Process Actions the main operation processes the Workflow definition which may include custom workflow activities. The code in these custom workflow activities is processed in the main operation together with any other logic in the workflow.
When the custom process action doesn't contain any custom workflow activities, developers frequently add logic to the Post-Operation stage in the event pipeline to define logic.

With custom API the message creator simply associates their plug-in type with the custom API to provide the main operation logic.
More information: [Event execution pipeline](event-framework.md#event-execution-pipeline)| -|Block Extension by other plug-ins|Yes|Yes| With Custom Process actions set the [IsCustomProcessingStepAllowedForOtherPublishers](reference/entities/workflow.md#BKMK_IsCustomProcessingStepAllowedForOtherPublishers) managed property to `true` if you wish to allow 3rd party plug-ins to run when registered on the message for your custom process action. When set to `false`, only plug-ins from the same solution publisher will run when a plug-in step is registered for the message.

For custom API, set the [AllowedCustomProcessingStepType](reference/entities/customapi.md#BKMK_AllowedCustomProcessingStepType) to control whether any plug-ins steps may be registered, or if only asynchronous plug-ins may be registered. More information: [Select a Custom Processing Step Type](custom-api.md#select-a-custom-processing-step-type)| -|Make message private|No|Yes|When you create a message using a Custom Process Action, it is exposed publicly in the endpoint for anyone else to discover and use. If someone else takes a dependency on the message you created, their code will be broken if you remove, rename, or change the input or output parameter signature in the future.

If you do not intend for your message to be used by anyone else, you can mark it as a private message. This will indicate that you do not support others using the message you create, and it will not be included in definitions of available functions or actions exposed by the Web API $metadata service definition. Classes for calling these messages will not be generated using code generation tools, but you will still be able to use it. More information: [When to make your custom API private](custom-api.md#when-to-make-your-custom-api-private)| -|Localizable names and descriptions|No|Yes|While Custom Process Actions provide for a friendly name for the custom action and any input and output parameters it uses, these values are not localizable. With custom API you can provide localizable names and descriptions. These localized strings can then be bound to controls that provide a UI to use the message. More information: [Localized Label values](custom-api.md#localized-label-values)| -|Create OData Function|No|Yes| The Dataverse Web API is an OData web service. OData provides for two types of operations: *Actions* & *Functions*.
  • An **Action** is an operation that makes changes to data in the system. It is invoked using the Http POST method and parameters are passed in the body of the request.
  • A **Function** is an operation that makes no change to data, for example an operation that simply retrieves data. It is invoked using an Http GET method and the parameters are passed in the URL of the request

Custom Process Actions are always Actions. Custom API provides the option to define custom Functions.
More information: [When to create a Function](custom-api.md#when-to-create-a-function)| -|Create a global operation not bound to a table|Yes|Yes|Both provide the ability to define a global message not bound to a table.| -|Bind an operation to a table|Yes|Yes|Both provide the ability to pass a reference to a specific table record by binding it to a table.| -|Bind an operation to a table collection|No|Yes|Binding an operation to a table collection allows for another way to define the signature for the custom API. While this does not pass a collection of entities as an input parameter, it restricts the context of the operation to that type of table collection. Use this when your operation works with a collection of a specific type of table or your operation will return a collection of that type.| -|Compose or modify a custom API by editing a solution|No|Yes|ISVs who build and maintain products that work with the Power Platform apply ALM practices that involve solutions. The data within a solution is commonly checked into a source code repository and checked out by a developer applying changes.

A Custom Process Action is defined by a XAML Windows Workflow Foundation document which is transported as part of a solution. However, creating new or editing existing workflow definitions outside of the workflow designer is not supported.

Custom API definitions are solution aware components included in a solution through a set of folders and XML documents. These files and the file structure enable transport the API from one environment to another. Because these are plain text files, changes can be made to them, or new APIs can be defined by working with these files. This method of defining custom APIs is supported. More information: [Create a custom API with solution files](create-custom-api-solution.md).| -|Subject to 2 minute time limit|No|Yes|A plug-in that implements the main operation for a custom API is subject to the 2 minute time limit to complete execution.

A Custom Process Action is not technically limited to two minutes. If a step in the Workflow logic contains a custom workflow activity, *that part* will be limited to two minutes. But the entire workflow cannot run indefinitely. There are other limitations that will cause long-running Custom Process Actions to fail. More information: [Watch out for long running actions](workflow-custom-actions.md#watch-out-for-long-running-actions)| +|Require specific privilege|No|Yes|With custom API, you can designate that a user must have a specific privilege to call the message. If the user doesn't have that privilege through their security roles or team membership, an error is returned.| +|Define main operation logic with code|Yes|Yes|With Custom Process Actions, the main operation processes the Workflow definition that might include custom workflow activities. The code in these custom workflow activities is processed in the main operation together with any other logic in the workflow.
When the custom process action doesn't contain any custom workflow activities, developers frequently add logic to the Post-Operation stage in the event pipeline to define logic.

With custom API, the message creator simply associates their plug-in type with the custom API to provide the main operation logic.
More information: [Event execution pipeline](event-framework.md#event-execution-pipeline)| +|Block Extension by other plug-ins|Yes|Yes| With Custom Process actions set the [IsCustomProcessingStepAllowedForOtherPublishers](reference/entities/workflow.md#BKMK_IsCustomProcessingStepAllowedForOtherPublishers) managed property to `true` if you wish to allow third party plug-ins to run when registered on the message for your custom process action. When set to `false`, only plug-ins from the same solution publisher runs when a plug-in step is registered for the message.

For custom API, set the [AllowedCustomProcessingStepType](reference/entities/customapi.md#BKMK_AllowedCustomProcessingStepType) to control whether any plug-ins steps might be registered, or if only asynchronous plug-ins might be registered. More information: [Select a Custom Processing Step Type](custom-api.md#select-a-custom-processing-step-type)| +|Make message private|No|Yes|When you create a message using a Custom Process Action, it's exposed publicly in the endpoint for anyone else to discover and use. If someone else takes a dependency on the message you created, their code will be broken if you remove, rename, or change the input or output parameter signature in the future.

If you don't intend for your message to be used by anyone else, you can mark it as a private message. This indicates that you don't support others using the message you create, and it isn't included in definitions of available functions or actions exposed by the Web API $metadata service definition. Classes for calling these messages won't be generated using code generation tools, but you'll still be able to use it. More information: [When to make your custom API private](custom-api.md#when-to-make-your-custom-api-private)| +|Localizable names and descriptions|No|Yes|While Custom Process Actions provide for a friendly name for the custom action and any input and output parameters it uses, these values aren't localizable. With custom API, you can provide localizable names and descriptions. These localized strings can then be bound to controls that provide a UI to use the message. More information: [Localized Label values](custom-api.md#localized-label-values)| +|Create OData Function|No|Yes| The Dataverse Web API is an OData web service. OData provides for two types of operations: *Actions* & *Functions*.
  • An **Action** is an operation that makes changes to data in the system. It's invoked using the Http POST method and parameters are passed in the body of the request.
  • A **Function** is an operation that makes no change to data, for example, an operation that simply retrieves data. It's invoked using an Http GET method and the parameters are passed in the URL of the request

Custom Process Actions are always Actions. Custom API provides the option to define custom Functions.
More information: [When to create a Function](custom-api.md#when-to-create-a-function)| +|Create a global operation not bound to a table|Yes|Yes|You can use both to define a global message not bound to a table.| +|Bind an operation to a table|Yes|Yes|You can use both to pass a reference to a specific table record by binding it to a table.| +|Bind an operation to a table collection|No|Yes|Binding an operation to a table collection allows for another way to define the signature for the custom API. While this doesn't pass a collection of entities as an input parameter, it restricts the context of the operation to that type of table collection. Use this when your operation works with a collection of a specific type of table or your operation returns a collection of that type.| +|Compose or modify a custom API by editing a solution|No|Yes|ISVs who build and maintain products that work with the Power Platform apply ALM practices that involve solutions. The data within a solution is commonly checked into a source code repository and checked out by a developer applying changes.

A XAML Windows Workflow Foundation document contains the data that defines the Custom Process Action transported as part of a solution. However, creating new or editing existing workflow definitions outside of the workflow designer isn't supported.

Custom API definitions are solution aware components included in a solution through a set of folders and XML documents. These files and the file structure enable transport the API from one environment to another. Because these are plain text files, changes can be made to them, or new APIs can be defined by working with these files. This method of defining custom APIs is supported. More information: [Create a custom API with solution files](create-custom-api-solution.md).| +|Subject to 2-minute time limit|No|Yes|A plug-in that implements the main operation for a custom API is subject to the 2-minute time limit to complete execution.

A Custom Process Action isn't technically limited to two minutes. If a step in the Workflow logic contains a custom workflow activity, *that part* is limited to two minutes. But the entire workflow can't run indefinitely. There are other limitations that cause long-running Custom Process Actions to fail. More information: [Watch out for long running actions](workflow-custom-actions.md#watch-out-for-long-running-actions)| ## Next Steps diff --git a/powerapps-docs/developer/data-platform/custom-api-tables.md b/powerapps-docs/developer/data-platform/custom-api-tables.md index 4cc487cca0..67bca44c6d 100644 --- a/powerapps-docs/developer/data-platform/custom-api-tables.md +++ b/powerapps-docs/developer/data-platform/custom-api-tables.md @@ -4,9 +4,9 @@ description: "Describes the tables and column values to use when creating custom ms.date: 02/24/2023 ms.reviewer: jdaly ms.topic: article -author: MicroSri +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/custom-api.md b/powerapps-docs/developer/data-platform/custom-api.md index eb8fcad0ed..3fb3c237ff 100644 --- a/powerapps-docs/developer/data-platform/custom-api.md +++ b/powerapps-docs/developer/data-platform/custom-api.md @@ -1,11 +1,11 @@ --- title: "Create and use custom APIs (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "Custom API is a code-first way to define custom messages for Microsoft Dataverse" # 115-145 characters including spaces. This abstract displays in the search result. -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.date: 11/26/2024 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: dataverse-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/dataverse-odata-dataflows-migration.md b/powerapps-docs/developer/data-platform/dataverse-odata-dataflows-migration.md index 7911c4ac60..392d56236b 100644 --- a/powerapps-docs/developer/data-platform/dataverse-odata-dataflows-migration.md +++ b/powerapps-docs/developer/data-platform/dataverse-odata-dataflows-migration.md @@ -4,7 +4,7 @@ author: denise-msft ms.reviewer: jdaly description: Migrate data between Microsoft Dataverse environments using dataflows OData connector. ms.date: 12/09/2022 -ms.topic: article +ms.topic: upgrade-and-migration-article ms.subservice: dataverse-developer ms.author: demora contributors: diff --git a/powerapps-docs/developer/data-platform/dataverse-sql-query.md b/powerapps-docs/developer/data-platform/dataverse-sql-query.md index f84b4eb196..cf70167717 100644 --- a/powerapps-docs/developer/data-platform/dataverse-sql-query.md +++ b/powerapps-docs/developer/data-platform/dataverse-sql-query.md @@ -1,9 +1,9 @@ --- title: "Use SQL to query data (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "Learn how to query Microsoft Dataverse table data using SQL." # 115-145 characters including spaces. This abstract displays in the search result. -ms.date: 12/06/2024 +ms.date: 05/27/2025 ms.reviewer: "pehecke" -ms.topic: "article" +ms.topic: how-to author: "pnghub" # GitHub ID ms.subservice: dataverse-developer ms.author: "gned" # MSFT alias of Microsoft employees only @@ -97,7 +97,7 @@ Dataverse choice columns are represented as \Name and \Label i > After making changes to labels for a choice column, the table needs to have customizations published. > [!NOTE] -> Including a large number of choice labels in your query will have significant impact on performance. It is best to use less than 10 labels if possible. Because choice labels are localized, the localized string is more expensive to return. +> Including a large number of choice labels in your query have significant impact on performance. It's best to use less than 10 labels if possible. Because choice labels are localized, the localized string is more expensive to return. ### Reported SQL version @@ -131,7 +131,7 @@ The Dataverse TDS endpoint no longer has a hard maximum size limit. Instead, the > To help keep the size of the returned data within acceptable limits, use as few multi-line text columns and choice columns as possible. > [!WARNING] -> The five (5) minute timeout can be adjusted to two (2) minutes depending on the query complexity. For example, queries containing `SELECT *`, `NESTED FROMs and/or JOINs` will automatically adjust the timeout limit to two (2) minutes as those queries put too much pressure on the server when left running for a long time. It is advised to avoid using these patterns in SQL for maximum performance. +> The five (5) minute timeout can be adjusted to two (2) minutes depending on the query complexity. For example, queries containing `SELECT *`, `NESTED FROMs and/or JOINs` automatically adjust the timeout limit to two (2) minutes as those queries put too much pressure on the server when left running for a long time. It's advised to avoid using these patterns in SQL for maximum performance. Dates returned in query results are formatted as Universal Time Coordinated (UTC). Previously, dates were returned in local time. @@ -154,13 +154,13 @@ Only Microsoft Entra ID authentication is supported on the Dataverse endpoint SQ - Error returned when using **Microsoft Entra ID – Integrated** authentication. -"Login failed: The HTTP request was forbidden with client authentication scheme 'Anonymous'. +"Sign-in failed: The HTTP request was forbidden with client authentication scheme 'Anonymous'. RequestId: TDS;81d8a4f7-0d49-4d21-8f50-04364bddd370;2 Time: 2020-12-17T01:10:59.8628578Z (.Net SqlClient Data Provider)" - Error returned when using **SQL Server** authentication. -"Login failed: Request is not authenticated. +"Sign-in failed: Request is not authenticated. RequestId: TDS;918aa372-ccc4-438a-813e-91b086355343;1 Time: 2020-12-17T01:13:14.4986739Z (.Net SqlClient Data Provider)" diff --git a/powerapps-docs/developer/data-platform/debug-plug-in.md b/powerapps-docs/developer/data-platform/debug-plug-in.md index b87aca9cbb..2806800292 100644 --- a/powerapps-docs/developer/data-platform/debug-plug-in.md +++ b/powerapps-docs/developer/data-platform/debug-plug-in.md @@ -1,12 +1,12 @@ --- -title: "Debug plug-ins (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "Learn how to debug plug-ins using the Plug-in Registration tool." # 115-145 characters including spaces. This abstract displays in the search result. -ms.date: 05/10/2022 -ms.reviewer: "pehecke" -ms.topic: "article" -author: MicroSri +title: "Debug plug-ins (Microsoft Dataverse) | Microsoft Docs" +description: "Learn how to debug plug-ins using the Plug-in Registration tool." +ms.date: 06/20/2025 +ms.reviewer: pehecke +ms.topic: how-to +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: @@ -32,7 +32,7 @@ The process of writing, registering, and debugging a plug-in is: 1. **Verify expected trace logs are written** 1. **Debug the assembly as needed** -Content in this topic coverts the steps **in bold** above and supports the following tutorials: +Content in this article coverts the previous steps **in bold** and supports the following tutorials: - [Tutorial: Write and register a plug-in](tutorial-write-plug-in.md) - [Tutorial: Debug a plug-in](tutorial-debug-plug-in.md) @@ -40,20 +40,20 @@ Content in this topic coverts the steps **in bold** above and supports the follo ## Test your assembly -The simplest way to test your assembly may simply be to manually perform the operation using the app. But you should also be aware that events that cause plug-ins to execute can be initiated in multiple ways, such as a table created from a workflow, or from the web services. +The simplest way to test your assembly might be to manually perform the operation using the app. But you should also know that events that cause plug-ins to execute can be initiated in multiple ways, such as a table created from a workflow, or from the web services. -Execution context information may be different depending on how the action is performed. When writing your plug-in, make sure you practice defensive programming practices and don't assume that every value you expect will always be there. +Execution context information might be different depending on how the action is performed. When writing your plug-in, make sure you practice defensive programming practices and don't assume that every value you expect is always there. -You may want to write a program that will automate performing the operations that will cause your plug-in to fire and include a number of possible variations. +You might want to write a program that automates performing the operations that cause your plug-in to fire and include many possible variations. -If you want to use a test automation framework, you will find that the community has created some tools for this. More information: [Testing tools for server-side development](testing-tools-server.md) +If you want to use a test automation framework, you'll find that the community created some tools for automated testing. More information: [Testing tools for server-side development](testing-tools-server.md) ## Use Tracing As described in [Tracing service](write-plug-in.md#tracing-service), you can write messages to the [PluginTraceLog Table](reference/entities/plugintracelog.md) within the code of your plug-in by using the . method. -Before you will be able to use this service, you must enable tracing in your Microsoft Dataverse environment. The process is described in [View trace logs](tutorial-write-plug-in.md#view-trace-logs). +Before you'll be able to use this service, you must enable tracing in your Microsoft Dataverse environment. The process is described in [View trace logs](tutorial-write-plug-in.md#view-trace-logs). > [!NOTE] > Trace logging takes up organization storage space especially when many traces and exceptions are generated. You should only turn trace logging on for debugging and troubleshooting, and turn it off after your investigation is completed. @@ -62,7 +62,7 @@ While debugging, you can easily query the trace logs for a given plug-in class u `GET /api/data/v9.0/plugintracelogs?$select=messageblock&$filter=startswith(typename,'BasicPlugin.FollowUpPlugin')` -The JSON results will be returned to your browser like so: +The JSON results are returned to your browser like so: ```json @@ -76,28 +76,28 @@ The JSON results will be returned to your browser like so: ``` > [!TIP] -> This works best if you install a browser plug-in that will format the returned JSON. Or you may want to use an API client like Postman or [Insomnia](webapi/insomnia.md), or you may want to use [VS Code with PowerShell](webapi/quick-start-ps.md). +> This works best if you install a browser extension that formats the returned JSON. Or you might want to use an API client like Postman or [Insomnia](webapi/insomnia.md), or you might want to use [VS Code with PowerShell](webapi/quick-start-ps.md). > -> You may prefer to use the [XrmToolbox Plugin Trace Viewer](https://www.xrmtoolbox.com/plugins/Cinteros.XrmToolBox.PluginTraceViewer/). This community tool is not supported by Microsoft. If you have questions pertaining to this tool, contact the publisher. +> You might prefer to use the [XrmToolbox Plugin Trace Viewer](https://www.xrmtoolbox.com/plugins/Cinteros.XrmToolBox.PluginTraceViewer/). This community tool isn't supported by Microsoft. If you have questions pertaining to this tool, contact the publisher. Tracing messages can also be found in the log file that can be downloaded when a synchronous plug-in or custom workflow assembly throws an error that results in an error dialog that is displayed to the user. The user can select the **Download Log File** button to view the log containing details of the exception and the trace output. For asynchronous registered plug-ins and workflow assemblies that return an exception, the tracing information is shown in the details area of the **System Job** form in the web application. > [!NOTE] -> If your custom code executes within a database transaction, and an exception occurs that causes a transaction rollback, all table data changes by your code will be undone. However, the `PluginTraceLog` table records will remain after the rollback completes. +> If your custom code executes within a database transaction, and an exception occurs that causes a transaction rollback, all table data changes by your code are undone. However, the `PluginTraceLog` table records will remain after the rollback completes. ## Use Plug-in profiler -Plug-in profiler is a solution that you can install on your environment that enables you to capture the execution context of a plug-in and then use that data to re-play the event within Visual Studio while debugging. +Plug-in profiler is a solution that you can install on your environment that enables you to capture the execution context of a plug-in and then use that data to replay the event within Visual Studio while debugging. You can find instructions to install and use Plug-in profiler in the [Tutorial: Debug a plug-in](tutorial-debug-plug-in.md). See [Install plug-in profiler](tutorial-debug-plug-in.md#install-plug-in-profiler) and [Debug your plug-in](tutorial-debug-plug-in.md#debug-your-plug-in) ### View Plug-in Profile data -After you have installed the Plug-in profiler and captured some profiles, you can view the event context and replay data that is used when you debug. Viewing this data can help you understand the execution context data that your plug-in can use. +After you install the Plug-in profiler and captured some profiles, you can view the event context and replay data that is used when you debug. Viewing this data can help you understand the execution context data that your plug-in can use. -You can view this data using the Plug-in Registration tool by selecting the **View Plug-in Profile** command. This will open the Plugin Profile dialog +You can view this data using the Plug-in Registration tool by selecting the **View Plug-in Profile** command. This opens the Plugin Profile dialog ![Open plug-in profile.](media/view-plug-in-profile.png) @@ -107,7 +107,7 @@ Select the ![download icon.](media/prt-down-arrow-icon.png) icon and in the **Se And then select **View** in the **Plugin Profile** dialog. -This will download an open an XML file with the profile information. The `Context` element represents the execution context passed to the plug-in. +This downloads and opens an XML file with the profile information. The `Context` element represents the execution context passed to the plug-in. ![example profile data.](media/prt-example-profile-data.png) diff --git a/powerapps-docs/developer/data-platform/define-alternate-keys-entity.md b/powerapps-docs/developer/data-platform/define-alternate-keys-entity.md index 9ba71a7d1b..8c85dcdeda 100644 --- a/powerapps-docs/developer/data-platform/define-alternate-keys-entity.md +++ b/powerapps-docs/developer/data-platform/define-alternate-keys-entity.md @@ -3,10 +3,10 @@ title: "Work with alternate keys (Microsoft Dataverse) | Microsoft Docs" # Inten description: "The topic explains about how to create alternate keys for a table. Alternate keys can be created programmatically or by using the customization tools" # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 09/23/2024 ms.reviewer: pehecke -ms.topic: article -author: MicroSri +ms.topic: how-to +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer --- diff --git a/powerapps-docs/developer/data-platform/deletemultiple.md b/powerapps-docs/developer/data-platform/deletemultiple.md deleted file mode 100644 index 2f489fa37b..0000000000 --- a/powerapps-docs/developer/data-platform/deletemultiple.md +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: Use DeleteMultiple (preview) -description: Learn how to use Delete to delete multiple rows of data in a Microsoft Dataverse elastic table. -ms.date: 09/03/2024 -author: pnghub -ms.author: gned -ms.reviewer: jdaly -ms.topic: how-to -ms.subservice: dataverse-developer -search.audienceType: - - developer -contributors: - - JimDaly - - sumantb-msft -ms.custom: bap-template ---- - -# Use DeleteMultiple (preview) - -[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] - -> [!IMPORTANT] -> This is a preview feature. -> -> [!INCLUDE [cc-preview-features-definition](../../includes/cc-preview-features-definition.md)] - -### DeleteMultiple - -Delete multiple rows of data in elastic tables with a single request. - -##### [SDK for .NET](#tab/sdk) - -You must use the [OrganizationRequest class](xref:Microsoft.Xrm.Sdk.OrganizationRequest) because the [SDK for .NET](org-service/overview.md) doesn't have a `DeleteMultipleRequest` class. Learn how to [use messages with the SDK for .NET](org-service/use-messages.md). - -The following `DeleteMultipleExample` static method uses the `DeleteMultiple` message with the [OrganizationRequest class](xref:Microsoft.Xrm.Sdk.OrganizationRequest) to delete multiple rows from the `contoso_SensorData` elastic table using the alternate key to include the `partitionid` to uniquely identify the rows. - -```csharp -public static void DeleteMultipleExample(IOrganizationService service) -{ - string tableLogicalName = "contoso_sensordata"; - - List entityReferences = new() { - { - new EntityReference(logicalName: tableLogicalName, - keyAttributeCollection: new KeyAttributeCollection - { - { "contoso_sensordataid", "3f56361a-b210-4a74-8708-3c664038fa41" }, - { "partitionid", "deviceid-001" } - }) - }, - { new EntityReference(logicalName: tableLogicalName, - keyAttributeCollection: new KeyAttributeCollection - { - { "contoso_sensordataid", "e682715b-1bba-415e-b2bc-de9327308423" }, - { "partitionid", "deviceid-002" } - }) - } - }; - - OrganizationRequest request = new(requestName:"DeleteMultiple") - { - Parameters = { - {"Targets", new EntityReferenceCollection(entityReferences)} - } - }; - - service.Execute(request); -} -``` - -##### [Web API](#tab/webapi) - -The following example shows how to use the [DeleteMultiple action](xref:Microsoft.Dynamics.CRM.DeleteMultiple) to delete multiple rows from the `contoso_SensorData` elastic table including the `partitionid` to uniquely identify the rows. - -**Request:** - -```http -POST [Organization Uri]/api/data/v9.2/contoso_sensordatas/Microsoft.Dynamics.CRM.DeleteMultiple -OData-MaxVersion: 4.0 -OData-Version: 4.0 -If-None-Match: null -Accept: application/json -Content-Type: application/json; charset=utf-8 -Content-Length: 603 - -{ - "Targets": [ - { - "@odata.type": "Microsoft.Dynamics.CRM.contoso_sensordata", - "contoso_sensordataid": "6114ca58-0928-ee11-9965-6045bd5cd155", - "partitionid": "Device-ABC-1234" - }, - { - "@odata.type": "Microsoft.Dynamics.CRM.contoso_sensordata", - "contoso_sensordataid": "6214ca58-0928-ee11-9965-6045bd5cd155", - "partitionid": "Device-ABC-1234" - }, - { - "@odata.type": "Microsoft.Dynamics.CRM.contoso_sensordata", - "contoso_sensordataid": "6314ca58-0928-ee11-9965-6045bd5cd155", - "partitionid": "Device-ABC-1234" - } - ] -} -``` - -**Response:** - -```http -HTTP/1.1 204 NoContent -OData-Version: 4.0 -``` - ---- - -## Availability - -`DeleteMultiple` is supported only for elastic tables. Elastic tables don't support [table relationship cascading behavior](configure-entity-relationship-cascading-behavior.md), which can result in unpredictable execution times for delete operations. If you use `DeleteMultiple` on a standard table, you get the error: `DeleteMultiple has not yet been implemented.` - - -## Examples - -You can find sample code on GitHub in [github.com/microsoft/PowerApps-Samples](https://github.com/microsoft/PowerApps-Samples): - -- [Elastic table sample code](elastic-table-samples.md) -- Within [Sample: SDK for .NET Use bulk operations](org-service/samples/create-update-multiple.md) or [Sample: Web API Use bulk operations](webapi/samples/create-update-multiple.md), change the `Settings.cs` config file and choose the `UseElastic` option. - -### See also - -[Use bulk operation messages](bulk-operations.md) -[Elastic tables](elastic-tables.md) -[Elastic table sample code](elastic-table-samples.md) -[Sample: SDK for .NET Use bulk operations](org-service/samples/create-update-multiple.md) -[Sample: Web API Use bulk operations](webapi/samples/create-update-multiple.md) \ No newline at end of file diff --git a/powerapps-docs/developer/data-platform/discovery-service.md b/powerapps-docs/developer/data-platform/discovery-service.md index 1805da2bd6..2335d8c7ca 100644 --- a/powerapps-docs/developer/data-platform/discovery-service.md +++ b/powerapps-docs/developer/data-platform/discovery-service.md @@ -3,7 +3,7 @@ title: "Discover user organizations (Microsoft Dataverse) | Microsoft Docs" # In description: "Your client application may connect to multiple Dataverse environments. Use the Global Discovery Service to find which environments the user of your application can access." ms.date: 03/14/2024 ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to author: ImadYanni # GitHub ID ms.subservice: dataverse-developer ms.author: iyanni # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/download-tools-nuget.md b/powerapps-docs/developer/data-platform/download-tools-nuget.md index 9958fc048c..b7849fd2db 100644 --- a/powerapps-docs/developer/data-platform/download-tools-nuget.md +++ b/powerapps-docs/developer/data-platform/download-tools-nuget.md @@ -1,7 +1,7 @@ --- title: "Dataverse development tools (Microsoft Dataverse) | Microsoft Docs" description: "Download and launch the Plug-in Registration, Package Deployment, and other Dataverse development tools." -ms.date: 10/14/2024 +ms.date: 05/27/2025 ms.reviewer: pehecke ms.topic: article author: davidjenni # GitHub ID diff --git a/powerapps-docs/developer/data-platform/elastic-table-samples.md b/powerapps-docs/developer/data-platform/elastic-table-samples.md index f440bee56e..aa5d17233e 100644 --- a/powerapps-docs/developer/data-platform/elastic-table-samples.md +++ b/powerapps-docs/developer/data-platform/elastic-table-samples.md @@ -3,8 +3,8 @@ title: Elastic table sample code description: Learn about the sample code that is available on GitHub for Dataverse elastic table operations and the ExecuteCosmosSqlQuery message. ms.topic: article ms.date: 12/04/2023 -author: pnghub -ms.author: gned +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly contributors: - sumantb-msft @@ -23,6 +23,9 @@ The following sample applications on GitHub show how to use code to work with el - Use the `ExecuteCosmosSqlQuery` message. - Use the `DeleteMultiple` message with the [OrganizationRequest class](xref:Microsoft.Xrm.Sdk.OrganizationRequest) to delete elastic table records in bulk. +> [!NOTE] +> The [DeleteMultipleRequest Class](/dotnet/api/microsoft.xrm.sdk.messages.deletemultiplerequest) is now available to use. + > [!div class="nextstepaction"] > [SDK for .NET elastic tables sample](https://github.com/microsoft/PowerApps-Samples/blob/master/dataverse/orgsvc/CSharp-NETCore/ElasticTableOperations/README.md) @@ -33,7 +36,7 @@ The following sample applications on GitHub show how to use code to work with el - Use the [CreateMultiple action](xref:Microsoft.Dynamics.CRM.CreateMultiple) to create elastic table records. - Use the [UpdateMultiple action](xref:Microsoft.Dynamics.CRM.UpdateMultiple) to set JSON data for a column. - Use the [ExecuteCosmosSqlQuery function](xref:Microsoft.Dynamics.CRM.ExecuteCosmosSqlQuery) to query JSON data in columns. -- Use the `DeleteMultiple` action to delete elastic table records in bulk. +- Use the [DeleteMultiple action](xref:Microsoft.Dynamics.CRM.DeleteMultiple) to delete elastic table records in bulk. > [!div class="nextstepaction"] > [Web API elastic tables sample](https://github.com/microsoft/PowerApps-Samples/blob/master/dataverse/webapi/CSharp-NETx/ElasticTableOperations/README.md) diff --git a/powerapps-docs/developer/data-platform/elastic-tables.md b/powerapps-docs/developer/data-platform/elastic-tables.md index bf7ff15dc4..0b7b3e7a52 100644 --- a/powerapps-docs/developer/data-platform/elastic-tables.md +++ b/powerapps-docs/developer/data-platform/elastic-tables.md @@ -3,8 +3,8 @@ title: Elastic tables for developers description: This article provides information to developers about Dataverse elastic tables and how to use elastic tables using code. ms.topic: article ms.date: 12/04/2023 -author: pnghub -ms.author: gned +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly contributors: - sumantb-msft diff --git a/powerapps-docs/developer/data-platform/email-activity-entities.md b/powerapps-docs/developer/data-platform/email-activity-entities.md index fc569d891e..55cb58d884 100644 --- a/powerapps-docs/developer/data-platform/email-activity-entities.md +++ b/powerapps-docs/developer/data-platform/email-activity-entities.md @@ -3,7 +3,7 @@ title: "Email activity tables (Microsoft Dataverse) | Microsoft Docs" # Intent a description: "The email activity in lets you track and manage email communications with customers." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 11/10/2023 ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to author: DanaMartens # GitHub ID ms.subservice: dataverse-developer ms.author: dmartens # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/entity-attribute-metadata.md b/powerapps-docs/developer/data-platform/entity-attribute-metadata.md index 438a77f699..9b76df0323 100644 --- a/powerapps-docs/developer/data-platform/entity-attribute-metadata.md +++ b/powerapps-docs/developer/data-platform/entity-attribute-metadata.md @@ -118,15 +118,18 @@ Because `RequiredLevel` is a managed property, as a publisher of a managed solut More information: [Managed Properties](/power-platform/alm/managed-properties-alm) -## Formula, rollup, and calculated columns +## Specialized columns Formula, rollup, and calculated columns free the user from having to manually perform calculations and focus on their work. System administrators can define a column to contain the value of many common calculations without having to work with a developer. Developers can also use the platform capabilities to perform these calculations rather than within their own code. +A prompt column is an AI-powered data type in Microsoft Dataverse that enables you to define natural language prompts tied to other columns in your table. + More information: - [Define rollup columns that aggregate values](../../maker/data-platform/define-rollup-fields.md) - [Define calculated columns to automate calculations](../../maker/data-platform/define-calculated-fields.md) -- [Formula, rollup, and calculated columns](calculated-rollup-attributes.md) +- [Prompt columns (preview)](../../maker/data-platform/prompt-column.md) +- [Specialized columns using code](specialized-columns.md) ## Column format diff --git a/powerapps-docs/developer/data-platform/fetchxml/aggregate-data.md b/powerapps-docs/developer/data-platform/fetchxml/aggregate-data.md index c479d13e35..22feb3c97f 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/aggregate-data.md +++ b/powerapps-docs/developer/data-platform/fetchxml/aggregate-data.md @@ -4,9 +4,9 @@ description: Learn how to use FetchXml to retrieve aggregated data from Microsof ms.date: 02/29/2024 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: gned +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/fetchxml/count-rows.md b/powerapps-docs/developer/data-platform/fetchxml/count-rows.md index 65ac925485..04f55b3a78 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/count-rows.md +++ b/powerapps-docs/developer/data-platform/fetchxml/count-rows.md @@ -4,9 +4,9 @@ description: Learn how to use FetchXml to count rows from Microsoft Dataverse ta ms.date: 02/29/2024 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl +ms.author: jukoesma ms.subservice: dataverse-developer -ms.author: gned search.audienceType: - developer contributors: @@ -18,7 +18,7 @@ contributors: --- # Count rows using FetchXml -Use the [fetch element](reference/fetch.md) boolean `returntotalrecordcount` attribute to specify that the result include a count of all the records that meet the filter criteria, up to 5000. Use this when retrieving paged results to estimate the total number of pages to display. +Use the [fetch element](reference/fetch.md) boolean `returntotalrecordcount` attribute to specify that the result include a count of all the records that meet the filter criteria, up to 5,000. Use this when retrieving paged results to estimate the total number of pages to display. You can't apply the [fetch element](reference/fetch.md) `top` attribute together with `returntotalrecordcount`. @@ -31,7 +31,7 @@ When the `returntotalrecordcount` attribute value is `true`, the |The total number of records up to 5000; otherwise the value is -1.| +||The total number of records up to 5,000; otherwise the value is -1.| ||`true` if the results of the query exceeds the total record count; otherwise, `false`.| @@ -40,7 +40,7 @@ When the `returntotalrecordcount` attribute value is `true`, the or `@Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded`) value is useful when you need to calculate how many more paged requests you need to send to get all the results when ( or `@Microsoft.Dynamics.CRM.totalrecordcount`) equals 5000. +The ( or `@Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded`) value is useful when you need to calculate how many more paged requests you need to send to get all the results when ( or `@Microsoft.Dynamics.CRM.totalrecordcount`) equals the maximum page size for the type of table you are working with. -If your page size is less than the maximum and ( or `@Microsoft.Dynamics.CRM.totalrecordcount`) is equal to or less than 5000, you can calculate how many more paged requests you must send to get all the records. +If your page size is less than the maximum and ( or `@Microsoft.Dynamics.CRM.totalrecordcount`) is equal to or less than the maximum, you can calculate how many more paged requests you must send to get all the records. -When ( or `@Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded`) is `true` and ( or `@Microsoft.Dynamics.CRM.totalrecordcount`) equals 5000, you can't perform this calculation. +When ( or `@Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded`) is `true` and ( or `@Microsoft.Dynamics.CRM.totalrecordcount`) equals the maximum, you can't perform this calculation. > [!TIP] diff --git a/powerapps-docs/developer/data-platform/fetchxml/filter-rows.md b/powerapps-docs/developer/data-platform/fetchxml/filter-rows.md index b21b635c9e..205c48c560 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/filter-rows.md +++ b/powerapps-docs/developer/data-platform/fetchxml/filter-rows.md @@ -4,9 +4,9 @@ description: Learn how to use FetchXml to filter rows when you retrieve data fro ms.date: 04/01/2024 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: gned +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/fetchxml/join-tables.md b/powerapps-docs/developer/data-platform/fetchxml/join-tables.md index ec1234e9e9..b4d6ba311f 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/join-tables.md +++ b/powerapps-docs/developer/data-platform/fetchxml/join-tables.md @@ -4,9 +4,9 @@ description: Learn how to use FetchXml to join tables when you retrieve data fro ms.date: 03/22/2024 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: gned +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/fetchxml/optimize-performance.md b/powerapps-docs/developer/data-platform/fetchxml/optimize-performance.md index 740cec91cb..a937f089fa 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/optimize-performance.md +++ b/powerapps-docs/developer/data-platform/fetchxml/optimize-performance.md @@ -4,9 +4,9 @@ description: Learn how to optimize performance when you retrieve data from Micro ms.date: 01/06/2025 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: gned +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/fetchxml/order-rows.md b/powerapps-docs/developer/data-platform/fetchxml/order-rows.md index 649ca5d9ab..d250f8cbb1 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/order-rows.md +++ b/powerapps-docs/developer/data-platform/fetchxml/order-rows.md @@ -4,9 +4,9 @@ description: Learn how to use FetchXml to order rows when you retrieve data from ms.date: 03/06/2024 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: gned +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/fetchxml/overview.md b/powerapps-docs/developer/data-platform/fetchxml/overview.md index d4899f6449..9658e05dc3 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/overview.md +++ b/powerapps-docs/developer/data-platform/fetchxml/overview.md @@ -4,9 +4,9 @@ description: Learn to compose a query using FetchXml, a proprietary XML based la ms.date: 03/05/2024 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl +ms.author: jukoesma ms.subservice: dataverse-developer -ms.author: gned search.audienceType: - developer contributors: @@ -39,7 +39,7 @@ This query returns the [Name column](../reference/entities/account.md#BKMK_Name) ## Limit the number of rows -To limit the number of rows returned, use the [fetch element](reference/fetch.md) `top` attribute. Without the `top` attribute, Dataverse returns up to 5,000 rows. +To limit the number of rows returned, use the [fetch element](reference/fetch.md) `top` attribute. Without the `top` attribute, Dataverse returns up to 5,000 standard tables rows, 500 elastic tables rows. Alternatively, specify a number of records to return using *paging*. Don't use the `top` attribute when you request pages of data. [Learn how to request paged results](page-results.md) diff --git a/powerapps-docs/developer/data-platform/fetchxml/page-results.md b/powerapps-docs/developer/data-platform/fetchxml/page-results.md index 1888966a38..158b7ae436 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/page-results.md +++ b/powerapps-docs/developer/data-platform/fetchxml/page-results.md @@ -4,9 +4,9 @@ description: Learn how to use FetchXml to page results when you retrieve data fr ms.date: 12/04/2024 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl +ms.author: jukoesma ms.subservice: dataverse-developer -ms.author: gned search.audienceType: - developer contributors: @@ -21,7 +21,7 @@ contributors: You can specify a limit on the number of rows retrieved for each request by setting a page size. Using paging, you can retrieve consecutive pages of data representing all the records that match the criteria of a query in a performant manner. -The default and maximum page size is 5,000 rows. If you don't set a page size, Dataverse will return up to 5,000 rows of data at a time. To get more rows, you must send additional requests. +The default and maximum page size is 5,000 for standard tables, 500 for elastic tables. If you don't set a page size, Dataverse will return either 5,000 or 500 rows of data at a time, depending on the type of table. To get more rows, you must send additional requests. > [!NOTE] > @@ -110,7 +110,7 @@ After each request, the method checks the [EntityCollection.MoreRecords property ///
/// The authenticated IOrganizationService instance. /// The fetchXml Query string -/// The page size to use. Default is 5000 +/// The page size to use. Default is 5,000 /// All the records that match the criteria static EntityCollection RetrieveAll(IOrganizationService service, string fetchXml, int pageSize = 5000) { @@ -424,7 +424,7 @@ When using C# with [HttpClient](xref:System.Net.Http.HttpClient), the following /// The authenticated HttpClient instance. /// The EntitySetName for the table used in the fetchXml /// The FetchXml query string -/// The page size to use. Default is 5000 +/// The page size to use. Default is 5,000 /// All the records that match the criteria /// static async Task> RetrieveAll(HttpClient client, diff --git a/powerapps-docs/developer/data-platform/fetchxml/reference/all-attributes.md b/powerapps-docs/developer/data-platform/fetchxml/reference/all-attributes.md index be7a05731a..b32228e8c6 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/reference/all-attributes.md +++ b/powerapps-docs/developer/data-platform/fetchxml/reference/all-attributes.md @@ -1,8 +1,8 @@ --- title: all-attributes element description: Use this element to specify that all columns in the containing entity or link-entity element should be returned. -author: pnghub -ms.author: gned +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.date: 02/29/2024 ms.topic: reference diff --git a/powerapps-docs/developer/data-platform/fetchxml/reference/attribute.md b/powerapps-docs/developer/data-platform/fetchxml/reference/attribute.md index 30f439abf3..dfcda04634 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/reference/attribute.md +++ b/powerapps-docs/developer/data-platform/fetchxml/reference/attribute.md @@ -1,8 +1,8 @@ --- title: attribute element -description: Use this element to specify which columns in the containing entity or link-entity element should be returned. -author: pnghub -ms.author: gned +description: Use this element to specify which columns in the containing entity or link-entity element to return. +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.date: 07/12/2024 ms.topic: reference diff --git a/powerapps-docs/developer/data-platform/fetchxml/reference/condition.md b/powerapps-docs/developer/data-platform/fetchxml/reference/condition.md index f7a5e0ddb2..d13928f961 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/reference/condition.md +++ b/powerapps-docs/developer/data-platform/fetchxml/reference/condition.md @@ -1,8 +1,8 @@ --- title: condition element description: Use this element to specify a condition to be evaluated as part of a filter for each row in the containing entity or link-entity elements to be returned. -author: pnghub -ms.author: gned +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.date: 02/29/2024 ms.topic: reference diff --git a/powerapps-docs/developer/data-platform/fetchxml/reference/entity.md b/powerapps-docs/developer/data-platform/fetchxml/reference/entity.md index 1eb049e0a3..735eaca495 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/reference/entity.md +++ b/powerapps-docs/developer/data-platform/fetchxml/reference/entity.md @@ -1,8 +1,8 @@ --- title: entity element description: Use this element to specify the entity of the query. -author: pnghub -ms.author: gned +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.date: 02/29/2024 ms.topic: reference diff --git a/powerapps-docs/developer/data-platform/fetchxml/reference/fetch.md b/powerapps-docs/developer/data-platform/fetchxml/reference/fetch.md index f19b928f61..2c5b1f971d 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/reference/fetch.md +++ b/powerapps-docs/developer/data-platform/fetchxml/reference/fetch.md @@ -1,8 +1,8 @@ --- title: fetch element description: Use this element as the root element in the query. -author: pnghub -ms.author: gned +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.date: 02/29/2024 ms.topic: reference diff --git a/powerapps-docs/developer/data-platform/fetchxml/reference/filter.md b/powerapps-docs/developer/data-platform/fetchxml/reference/filter.md index 28e0914a39..cee06598b8 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/reference/filter.md +++ b/powerapps-docs/developer/data-platform/fetchxml/reference/filter.md @@ -1,8 +1,8 @@ --- title: filter element description: Use this element to specify a set of conditions to be evaluated for each row of the containing entity or link-entity element that determines if the row is returned. -author: pnghub -ms.author: gned +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.date: 02/29/2024 ms.topic: reference diff --git a/powerapps-docs/developer/data-platform/fetchxml/reference/index.md b/powerapps-docs/developer/data-platform/fetchxml/reference/index.md index e012e83d7d..a842732a27 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/reference/index.md +++ b/powerapps-docs/developer/data-platform/fetchxml/reference/index.md @@ -1,8 +1,8 @@ --- title: FetchXml reference description: The articles in this section describe elements you use to compose a query using FetchXml. FetchXml is a proprietary XML based language that is used in Microsoft Dataverse to retrieve data. -author: pnghub -ms.author: gned +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.date: 02/29/2024 ms.topic: reference diff --git a/powerapps-docs/developer/data-platform/fetchxml/reference/link-entity.md b/powerapps-docs/developer/data-platform/fetchxml/reference/link-entity.md index 4b7ed8667a..ba5777f1f4 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/reference/link-entity.md +++ b/powerapps-docs/developer/data-platform/fetchxml/reference/link-entity.md @@ -1,8 +1,8 @@ --- title: link-entity element description: Use this element to join tables with the containing entity or link-entity element. -author: pnghub -ms.author: gned +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.date: 02/29/2024 ms.topic: reference diff --git a/powerapps-docs/developer/data-platform/fetchxml/reference/operators.md b/powerapps-docs/developer/data-platform/fetchxml/reference/operators.md index bc65a10eed..4ae8c4fe14 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/reference/operators.md +++ b/powerapps-docs/developer/data-platform/fetchxml/reference/operators.md @@ -1,8 +1,8 @@ --- title: condition operator values description: Use these values in a condition element operator attribute to specify how to evaluate the condition. -author: pnghub -ms.author: gned +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.date: 03/08/2024 ms.topic: reference diff --git a/powerapps-docs/developer/data-platform/fetchxml/reference/order.md b/powerapps-docs/developer/data-platform/fetchxml/reference/order.md index 10848c5a35..d090d43692 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/reference/order.md +++ b/powerapps-docs/developer/data-platform/fetchxml/reference/order.md @@ -1,8 +1,8 @@ --- title: order element description: Use this element to specify the sort order of rows from the containing entity or link-entity element. -author: pnghub -ms.author: gned +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.date: 02/29/2024 ms.topic: reference diff --git a/powerapps-docs/developer/data-platform/fetchxml/reference/value.md b/powerapps-docs/developer/data-platform/fetchxml/reference/value.md index 735f25b5fc..ee2ef2181e 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/reference/value.md +++ b/powerapps-docs/developer/data-platform/fetchxml/reference/value.md @@ -1,8 +1,8 @@ --- title: value element description: Use this element to specify the values to evaluate with a condition. -author: pnghub -ms.author: gned +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.date: 02/29/2024 ms.topic: reference diff --git a/powerapps-docs/developer/data-platform/fetchxml/retrieve-data.md b/powerapps-docs/developer/data-platform/fetchxml/retrieve-data.md index 5db87dde29..0a87f80a42 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/retrieve-data.md +++ b/powerapps-docs/developer/data-platform/fetchxml/retrieve-data.md @@ -4,9 +4,9 @@ description: Learn how to use the Dataverse SDK for .NET or Web API to send a re ms.date: 01/26/2025 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: gned +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/fetchxml/sample.md b/powerapps-docs/developer/data-platform/fetchxml/sample.md index 5d28f349f2..336f8192dd 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/sample.md +++ b/powerapps-docs/developer/data-platform/fetchxml/sample.md @@ -4,9 +4,9 @@ description: Try using FetchXML to retrieve Dataverse data using this sample cod ms.date: 12/04/2024 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: gned +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/fetchxml/select-columns.md b/powerapps-docs/developer/data-platform/fetchxml/select-columns.md index 67efeaca93..270f08f1e1 100644 --- a/powerapps-docs/developer/data-platform/fetchxml/select-columns.md +++ b/powerapps-docs/developer/data-platform/fetchxml/select-columns.md @@ -4,9 +4,9 @@ description: Learn how to use FetchXml to select columns when you retrieve data ms.date: 02/29/2024 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: gned +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/field-security-entities.md b/powerapps-docs/developer/data-platform/field-security-entities.md deleted file mode 100644 index caa8986c8d..0000000000 --- a/powerapps-docs/developer/data-platform/field-security-entities.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: "Field security entities (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "Learn about using field security entities to apply field-level security, which restricts field access to specified users and teams." # 115-145 characters including spaces. This abstract displays in the search result. -ms.custom: "" -ms.date: 03/27/2021 -ms.reviewer: "pehecke" - -ms.topic: "article" -author: "paulliew" # GitHub ID -ms.subservice: dataverse-developer -ms.author: "jdaly" # MSFT alias of Microsoft employees only -search.audienceType: - - developer ---- -# Field security tables - -[!INCLUDE[cc-terminology](includes/cc-terminology.md)] - -You use field security tables to apply field-level security, which restricts field access to specified users and teams. The scope of field-level security is global, which means that it applies to all records within the organization, regardless of the business unit hierarchical level to which the record or the user belongs. Field security works in all Microsoft Dataverse clients, including the Web client, Dynamics 365 for Outlook, and Dynamics. It applies to all components, such as the Dataverse web services, reports, search, offline, filtered views, auditing, and duplicate detection. For this release, field security can be applied to both custom fields and many out-of-box (OOB) fields. - -> [!IMPORTANT] -> Field-level security profiles prevent unintended users from getting access to Dataverse data based on the profile definitions. If the SQL Server ACLs are misconfigured, or if there is a SQL injection issue, adversaries can get direct access to data in SQL Server thereby bypassing field level security restrictions. For more information, see [Overview of Web Application Security Threats](/previous-versions/f13d73y6(v=vs.140)). - - - -## Set up and use field security - To use field security you must do the following: - -1. Create a field security profile record. - -2. Add users or teams to the profile. - -3. Find a columns that can be secured at the field level. - -4. Secure the column, either when you create the column or by updating the column definition. - -5. Publish the customizations. - -6. Create a field permission record that defines what access (create, update, read) the profile will have for the custom column. - - For sample code about how to perform these steps, see [Sample: Enable Field Security For An Entity](org-service/samples/enable-field-security-entity.md). - - Use the following field permission columns to set whether the specified field security profile can create, read, or update a column. - You can set or compare the value for these columns by using the `field_security_permission_type` global choice: - -- `FieldPermission`.`CanCreate` - -- `FieldPermission`.`CanRead` - -- `FieldPermission`.`CanUpdate` - -> [!IMPORTANT] -> If low privilege users are given Read access to the field security profile entity, they can see what profiles other users have and find other users with access to secured attributes they are interested in. They can then use social engineering techniques to get assigned a profile with access to those secured attributes. - - - -## Which attributes can be secured? - To see which columns can be secured, you can query the table definition for the following properties: - -- - -- - -- - - There are a few additional rules that apply to certain attribute data types: - -- Boolean attributes can be secured for create and update operations but not for read. - -- Option set attributes can be secured for create, update, and read when a default value is unspecified. - - There are thousands of columns that can be secured, so there are two easier ways to look for this information. To view the table definition for your organization, install the Table definition browser solution described in [Browse table definition in your environment](browse-your-metadata.md). You can also browse the reference documentation for entities in the [Table/entity reference](reference/about-entity-reference.md). - - -## Share secured fields - You can share secured fields much as you can share records. To do this, you create, update, or delete a `PrincipalObjectAttributeAccess` (field sharing) record, where you specify the user or team, the entity, and the permissions. - - The following table lists the corresponding methods for securing a field compared to securing a record. - -|Record sharing|Field access sharing| -|--------------------|--------------------------| -|Use the message to grant record access for a user or team.|Use the message or the . method to grant secured field access for a user or team.| -|Use the message to update record access for a user or team.|Use the message or the . method to update secured field access for a user or team.| -|Use the message to remove record access for a user or team.|Use the message or the . method to remove secured field access for a user or team.| - -### See also - [Security and data access](security-model.md) - [FieldSecurityProfile Entity](reference/entities/fieldsecurityprofile.md) - [FieldPermission Entity](reference/entities/fieldpermission.md) - [PrincipalObjectAttributeAccess Entity](reference/entities/principalobjectattributeaccess.md) - - -[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/file-attributes.md b/powerapps-docs/developer/data-platform/file-attributes.md index 40b15e2bd2..f599c2316c 100644 --- a/powerapps-docs/developer/data-platform/file-attributes.md +++ b/powerapps-docs/developer/data-platform/file-attributes.md @@ -3,7 +3,7 @@ title: "Work with file column definitions using code | Microsoft Docs" description: "Learn about how to create, retrieve, update and delete file column definitions using code." ms.date: 01/17/2024 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to author: mkannapiran ms.author: kamanick ms.subservice: dataverse-developer diff --git a/powerapps-docs/developer/data-platform/file-column-data.md b/powerapps-docs/developer/data-platform/file-column-data.md index 5bfe9c6eb0..4d01192b7d 100644 --- a/powerapps-docs/developer/data-platform/file-column-data.md +++ b/powerapps-docs/developer/data-platform/file-column-data.md @@ -3,7 +3,7 @@ title: "Use file column data (Microsoft Dataverse) | Microsoft Docs" description: "Learn about uploading, downloading, and deleting data in file columns." ms.date: 03/29/2024 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to author: mkannapiran ms.author: kamanick ms.subservice: dataverse-developer diff --git a/powerapps-docs/developer/data-platform/files-images-overview.md b/powerapps-docs/developer/data-platform/files-images-overview.md index e22d7ba7d8..46b934bf22 100644 --- a/powerapps-docs/developer/data-platform/files-images-overview.md +++ b/powerapps-docs/developer/data-platform/files-images-overview.md @@ -3,7 +3,7 @@ title: "Files and images overview (Microsoft Dataverse) | Microsoft Docs" # Inte description: "Learn about using file and image data in Dataverse." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 05/26/2023 ms.reviewer: jdaly -ms.topic: article +ms.topic: concept-article author: JimDaly # GitHub ID ms.subservice: dataverse-developer ms.author: jdaly # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/getfilesasurl.md b/powerapps-docs/developer/data-platform/getfilesasurl.md index ca1b6edc50..eb6666a537 100644 --- a/powerapps-docs/developer/data-platform/getfilesasurl.md +++ b/powerapps-docs/developer/data-platform/getfilesasurl.md @@ -3,7 +3,7 @@ title: "Grant limited access to Dataverse files using shared access signatures" description: "Learn how to create a shared access signature URL that enables anyone to download the file or image from Dataverse" ms.date: 09/11/2024 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to author: JimDaly ms.subservice: dataverse-developer ms.author: jdaly @@ -195,4 +195,4 @@ The following limitations apply: [Files and images overview](files-images-overview.md) [Use file column data](file-column-data.md) [Use image column data](image-column-data.md) -[Use file data with Attachment and Note records](attachment-annotation-files.md) \ No newline at end of file +[Use file data with Attachment and Note records](attachment-annotation-files.md) diff --git a/powerapps-docs/developer/data-platform/handle-exceptions.md b/powerapps-docs/developer/data-platform/handle-exceptions.md index 6412368438..4497a3e008 100644 --- a/powerapps-docs/developer/data-platform/handle-exceptions.md +++ b/powerapps-docs/developer/data-platform/handle-exceptions.md @@ -2,8 +2,8 @@ title: "Handle exceptions in a plug-in (Microsoft Dataverse) | Microsoft Docs" description: "Understand system behavior when a plug-in passes an exception back to the caller." ms.date: 02/05/2024 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: "article" ms.subservice: dataverse-developer diff --git a/powerapps-docs/developer/data-platform/image-attributes.md b/powerapps-docs/developer/data-platform/image-attributes.md index 018a0d377b..3d50d18b30 100644 --- a/powerapps-docs/developer/data-platform/image-attributes.md +++ b/powerapps-docs/developer/data-platform/image-attributes.md @@ -3,7 +3,7 @@ title: "Work with image column definitions using code" description: "Learn about how to create, retrieve, update and delete image column definitions using code." ms.date: 01/17/2024 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to author: mkannapiran ms.author: kamanick ms.subservice: dataverse-developer diff --git a/powerapps-docs/developer/data-platform/image-column-data.md b/powerapps-docs/developer/data-platform/image-column-data.md index a2476f3c3d..9226572597 100644 --- a/powerapps-docs/developer/data-platform/image-column-data.md +++ b/powerapps-docs/developer/data-platform/image-column-data.md @@ -3,7 +3,7 @@ title: "Use image column data (Microsoft Dataverse) | Microsoft Docs" description: "Learn about uploading, downloading, and deleting data in image columns." ms.date: 02/04/2023 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to author: mkannapiran ms.author: kamanick ms.subservice: dataverse-developer diff --git a/powerapps-docs/developer/data-platform/impersonate-a-user.md b/powerapps-docs/developer/data-platform/impersonate-a-user.md index 8dea73b930..243dc3b43d 100644 --- a/powerapps-docs/developer/data-platform/impersonate-a-user.md +++ b/powerapps-docs/developer/data-platform/impersonate-a-user.md @@ -2,8 +2,8 @@ title: "Impersonate a user (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "Learn how to write plug-in code to act on behalf of a specific user." ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: "article" ms.subservice: dataverse-developer diff --git a/powerapps-docs/developer/data-platform/impersonate-another-user.md b/powerapps-docs/developer/data-platform/impersonate-another-user.md index c5d9e9375f..44b666b0db 100644 --- a/powerapps-docs/developer/data-platform/impersonate-another-user.md +++ b/powerapps-docs/developer/data-platform/impersonate-another-user.md @@ -2,11 +2,11 @@ title: "Impersonate another user (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "Use impersonation to execute business logic on behalf of another Microsoft Dataverse user." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 03/22/2022 -ms.reviewer: "pehecke" -ms.topic: "article" -author: MicroSri +ms.reviewer: pehecke +ms.topic: article +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/includes/cc-ordering-paging.md b/powerapps-docs/developer/data-platform/includes/cc-ordering-paging.md index b976fa2f7b..0e090f87c0 100644 --- a/powerapps-docs/developer/data-platform/includes/cc-ordering-paging.md +++ b/powerapps-docs/developer/data-platform/includes/cc-ordering-paging.md @@ -68,7 +68,7 @@ Because this query orders unique column values, the order is consistent. > [!NOTE] > When possible, queries should order on the primary key for the table because Dataverse is optimized for ordering on the primary key by default. Ordering by non-unique or complex fields cause excess overhead and slower queries. -When you retrieve a limited set of data to display in an application, or if you need to return more than 5,000 rows of data, you need to page the results. The choices you make in determining the order of the results can determine whether the rows in each page of data you retrieve overlaps with other pages. Without proper ordering, the same record can appear in more than one page. +When you retrieve a limited set of data to display in an application, or if you need to return more than 5,000 rows of data ([500 for elastic tables](../use-elastic-tables.md#query-rows-of-an-elastic-table)), you need to page the results. The choices you make in determining the order of the results can determine whether the rows in each page of data you retrieve overlaps with other pages. Without proper ordering, the same record can appear in more than one page. To prevent the same record from appearing in more than one page, apply the following best practices: diff --git a/powerapps-docs/developer/data-platform/includes/cc-visual-studio-code-powershell-prerequisites.md b/powerapps-docs/developer/data-platform/includes/cc-visual-studio-code-powershell-prerequisites.md index 5458d3cf2c..54b5e4a341 100644 --- a/powerapps-docs/developer/data-platform/includes/cc-visual-studio-code-powershell-prerequisites.md +++ b/powerapps-docs/developer/data-platform/includes/cc-visual-studio-code-powershell-prerequisites.md @@ -3,7 +3,7 @@ - Install Visual Studio Code. See [Download Visual Studio Code](https://code.visualstudio.com/download) - Install the PowerShell extension for Visual Studio Code. See [PowerShell for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell) - Install PowerShell 7.4 or higher. See [Install PowerShell on Windows, Linux, and macOS](/powershell/scripting/install/installing-powershell) -- Install the Az PowerShell module version 11.1.0 or higher. See [How to install Azure PowerShell](/powershell/azure/install-azure-powershell) +- Install the Az PowerShell module version 11.1.0 or higher. See [How to install Azure PowerShell](/powershell/azure/install-azure-powershell) To [update an existing installation to the latest version](/powershell/module/powershellget/update-module), use `Update-Module -Name Az -Force` diff --git a/powerapps-docs/developer/data-platform/includes/cc-web-api-spa-javascript-code-sample-note.md b/powerapps-docs/developer/data-platform/includes/cc-web-api-spa-javascript-code-sample-note.md new file mode 100644 index 0000000000..b8728fe507 --- /dev/null +++ b/powerapps-docs/developer/data-platform/includes/cc-web-api-spa-javascript-code-sample-note.md @@ -0,0 +1,2 @@ +> [!NOTE] +> This code is for a Single Page Application (SPA) and doesn't represent the pattern to use with model-driven apps, Power Apps components framework (PCF) components, or Power pages. Use the [Xrm.WebApi (Client API)](../../model-driven-apps/clientapi/reference/xrm-webapi.md), [Code components WebAPI](../../component-framework/reference/webapi.md), and [Power Pages Portals Web API](/power-pages/configure/web-api-overview) for these scenarios. \ No newline at end of file diff --git a/powerapps-docs/developer/data-platform/includes/data-service-error-codes.md b/powerapps-docs/developer/data-platform/includes/data-service-error-codes.md index f656cd8b8e..11814cbf76 100644 --- a/powerapps-docs/developer/data-platform/includes/data-service-error-codes.md +++ b/powerapps-docs/developer/data-platform/includes/data-service-error-codes.md @@ -16,7 +16,7 @@ |`0x8006041c`
`-2147089380`|Name: **ActionStepInvalidProcessAction**
Message: `ActionStep {0} references invalid Process Action {1}.`| |`0x8006040d`
`-2147089395`|Name: **ActionStepInvalidProcessid**
Message: `ActionStep references invalid Process Id.`| |`0x8006040c`
`-2147089396`|Name: **ActionStepInvalidStageid**
Message: `ActionStep references invalid Stage Id.`| -|`0x80060382`
`-2147089534`|Name: **ActionSupportNotEnabled**
Message: ` Business Processes containing an Action Step cannot be exported because Action Step support is still a Public Preview feature and it is not currently enabled for this organization.`| +|`0x80060382`
`-2147089534`|Name: **ActionSupportNotEnabled**
Message: `Business Processes containing an Action Step cannot be exported because Action Step support is still a Public Preview feature and it is not currently enabled for this organization.`| |`0x80061001`
`-2147086335`|Name: **ActivePropertyValidationFailed**
Message: `You can't create a property instance for an inactive property.`| |`0x80040526`
`-2147220186`|Name: **ActiveQueueItemAlreadyExists**
Message: `An active queue item already exists for the given object. Cannot create more than one active queue item for this object.`| |`0x8004F871`
`-2147157903`|Name: **ActiveSlaCannotEdit**
Message: `You can't edit an active SLA. Deactivate the SLA, and then try editing it.`| @@ -74,6 +74,7 @@ |`0x80048547`
`-2147187385`|Name: **AppEntityLimitExceeded**
Message: `This operation failed since it exceeded the maximum entity limit of {0} total entities for the app {1} set by its owning publisher {2}.`| |`0x80048552`
`-2147187374`|Name: **AppEntityLimitExceededInSiteMap**
Message: `You cannot save or publish the sitemap. The publisher ({0}) of the app ({1}) allows only up to {2} additional entities to be added.`| |`0x80095FFC`
`-2146869252`|Name: **ApplicationBasedAccessControlError**
Message: `Access to Dataverse API is restricted for this application Id : '{0}'. Please contact your administrator for more information.`| +|`0x80090922`
`-2146891486`|Name: **ApplicationBasedAccessControlUserDoesNotHaveMappedRolesError**
Message: `User with SystemUserId = {0} and AccessResultType = {1} has not been explictly or implictly assigned any roles that are mapped to ApplicationId = {2}. Please assign the appropriate roles to grant access and try again.`| |`0x8005F231`
`-2147093967`|Name: **ApplicationMetadataConverterFailed**
Message: `Sorry, something went wrong. Please try again, or restart the app.`| |`0x8005F233`
`-2147093965`|Name: **ApplicationMetadatadaCreateFailed**
Message: `Sorry, something went wrong. Please try again, or restart the app.`| |`0x8005F232`
`-2147093966`|Name: **ApplicationMetadatadaNullData**
Message: `Sorry, something went wrong. Please try again, or restart the app.`| @@ -236,84 +237,84 @@ |`0x80043b03`
`-2147206397`|Name: **BaseUnitNotDeletable**
Message: `The base unit of a schedule cannot be deleted.`| |`0x80043b17`
`-2147206377`|Name: **BaseUnitNotNull**
Message: `Do not use a base unit as the value for a primary unit. This value should always be null.`| |`0x80043810`
`-2147207152`|Name: **BaseUomNameNotSpecified**
Message: `baseuomname not specified`| -|`0x8004B540`
`-2147175104`|Name: **BDK_E_ADDRESS_VALIDATION_FAILURE**
Message: `{0} `| -|`0x8004B541`
`-2147175103`|Name: **BDK_E_AGREEMENT_ALREADY_SIGNED**
Message: `{0} `| -|`0x8004B542`
`-2147175102`|Name: **BDK_E_AUTHORIZATION_FAILED**
Message: `{0} `| -|`0x8004B543`
`-2147175101`|Name: **BDK_E_AVS_FAILED**
Message: `{0} `| -|`0x8004B544`
`-2147175100`|Name: **BDK_E_BAD_CITYNAME_LENGTH**
Message: `{0} `| -|`0x8004B545`
`-2147175099`|Name: **BDK_E_BAD_STATECODE_LENGTH**
Message: `{0} `| -|`0x8004B546`
`-2147175098`|Name: **BDK_E_BAD_ZIPCODE_LENGTH**
Message: `{0} `| -|`0x8004B547`
`-2147175097`|Name: **BDK_E_BADXML**
Message: `{0} `| -|`0x8004B548`
`-2147175096`|Name: **BDK_E_BANNED_PAYMENT_INSTRUMENT**
Message: `{0} `| -|`0x8004B549`
`-2147175095`|Name: **BDK_E_BANNEDPERSON**
Message: `{0} `| -|`0x8004B54A`
`-2147175094`|Name: **BDK_E_CANNOT_EXCEED_MAX_OWNERSHIP**
Message: `{0} `| -|`0x8004B54B`
`-2147175093`|Name: **BDK_E_COUNTRY_CURRENCY_PI_MISMATCH**
Message: `{0} `| -|`0x8004B54C`
`-2147175092`|Name: **BDK_E_CREDIT_CARD_EXPIRED**
Message: `{0} `| -|`0x8004B54D`
`-2147175091`|Name: **BDK_E_DATE_EXPIRED**
Message: `{0} `| -|`0x8004B54E`
`-2147175090`|Name: **BDK_E_ERROR_COUNTRYCODE_MISMATCH**
Message: `{0} `| -|`0x8004B54F`
`-2147175089`|Name: **BDK_E_ERROR_COUNTRYCODE_REQUIRED**
Message: `{0} `| -|`0x8004B550`
`-2147175088`|Name: **BDK_E_EXTRA_REFERRAL_DATA**
Message: `{0} `| -|`0x8004B551`
`-2147175087`|Name: **BDK_E_GUID_EXISTS**
Message: `{0} `| -|`0x8004B552`
`-2147175086`|Name: **BDK_E_INVALID_ADDRESS_ID**
Message: `{0} `| +|`0x8004B540`
`-2147175104`|Name: **BDK_E_ADDRESS_VALIDATION_FAILURE**
Message: `{0}`| +|`0x8004B541`
`-2147175103`|Name: **BDK_E_AGREEMENT_ALREADY_SIGNED**
Message: `{0}`| +|`0x8004B542`
`-2147175102`|Name: **BDK_E_AUTHORIZATION_FAILED**
Message: `{0}`| +|`0x8004B543`
`-2147175101`|Name: **BDK_E_AVS_FAILED**
Message: `{0}`| +|`0x8004B544`
`-2147175100`|Name: **BDK_E_BAD_CITYNAME_LENGTH**
Message: `{0}`| +|`0x8004B545`
`-2147175099`|Name: **BDK_E_BAD_STATECODE_LENGTH**
Message: `{0}`| +|`0x8004B546`
`-2147175098`|Name: **BDK_E_BAD_ZIPCODE_LENGTH**
Message: `{0}`| +|`0x8004B547`
`-2147175097`|Name: **BDK_E_BADXML**
Message: `{0}`| +|`0x8004B548`
`-2147175096`|Name: **BDK_E_BANNED_PAYMENT_INSTRUMENT**
Message: `{0}`| +|`0x8004B549`
`-2147175095`|Name: **BDK_E_BANNEDPERSON**
Message: `{0}`| +|`0x8004B54A`
`-2147175094`|Name: **BDK_E_CANNOT_EXCEED_MAX_OWNERSHIP**
Message: `{0}`| +|`0x8004B54B`
`-2147175093`|Name: **BDK_E_COUNTRY_CURRENCY_PI_MISMATCH**
Message: `{0}`| +|`0x8004B54C`
`-2147175092`|Name: **BDK_E_CREDIT_CARD_EXPIRED**
Message: `{0}`| +|`0x8004B54D`
`-2147175091`|Name: **BDK_E_DATE_EXPIRED**
Message: `{0}`| +|`0x8004B54E`
`-2147175090`|Name: **BDK_E_ERROR_COUNTRYCODE_MISMATCH**
Message: `{0}`| +|`0x8004B54F`
`-2147175089`|Name: **BDK_E_ERROR_COUNTRYCODE_REQUIRED**
Message: `{0}`| +|`0x8004B550`
`-2147175088`|Name: **BDK_E_EXTRA_REFERRAL_DATA**
Message: `{0}`| +|`0x8004B551`
`-2147175087`|Name: **BDK_E_GUID_EXISTS**
Message: `{0}`| +|`0x8004B552`
`-2147175086`|Name: **BDK_E_INVALID_ADDRESS_ID**
Message: `{0}`| |`0x8004B553`
`-2147175085`|Name: **BDK_E_INVALID_BILLABLE_ACCOUNT_ID**
Message: `{0} The specified Billing account is invalid. Or, although the objectID is of the correct type, the account it identifies does not exist in the system.`| -|`0x8004B554`
`-2147175084`|Name: **BDK_E_INVALID_BUF_SIZE**
Message: `{0} `| -|`0x8004B555`
`-2147175083`|Name: **BDK_E_INVALID_CATEGORY_NAME**
Message: `{0} `| -|`0x8004B556`
`-2147175082`|Name: **BDK_E_INVALID_COUNTRY_CODE**
Message: `{0} `| -|`0x8004B557`
`-2147175081`|Name: **BDK_E_INVALID_CURRENCY**
Message: `{0} `| -|`0x8004B558`
`-2147175080`|Name: **BDK_E_INVALID_CUSTOMER_TYPE**
Message: `{0} `| -|`0x8004B559`
`-2147175079`|Name: **BDK_E_INVALID_DATE**
Message: `{0} `| -|`0x8004B55A`
`-2147175078`|Name: **BDK_E_INVALID_EMAIL_ADDRESS**
Message: `{0} `| -|`0x8004B55B`
`-2147175077`|Name: **BDK_E_INVALID_FILTER**
Message: `{0} `| -|`0x8004B55C`
`-2147175076`|Name: **BDK_E_INVALID_GUID**
Message: `{0} `| -|`0x8004B55D`
`-2147175075`|Name: **BDK_E_INVALID_INPUT_TO_TAXWARE_OR_VERAZIP**
Message: `{0} `| -|`0x8004B55E`
`-2147175074`|Name: **BDK_E_INVALID_LOCALE**
Message: `{0} `| +|`0x8004B554`
`-2147175084`|Name: **BDK_E_INVALID_BUF_SIZE**
Message: `{0}`| +|`0x8004B555`
`-2147175083`|Name: **BDK_E_INVALID_CATEGORY_NAME**
Message: `{0}`| +|`0x8004B556`
`-2147175082`|Name: **BDK_E_INVALID_COUNTRY_CODE**
Message: `{0}`| +|`0x8004B557`
`-2147175081`|Name: **BDK_E_INVALID_CURRENCY**
Message: `{0}`| +|`0x8004B558`
`-2147175080`|Name: **BDK_E_INVALID_CUSTOMER_TYPE**
Message: `{0}`| +|`0x8004B559`
`-2147175079`|Name: **BDK_E_INVALID_DATE**
Message: `{0}`| +|`0x8004B55A`
`-2147175078`|Name: **BDK_E_INVALID_EMAIL_ADDRESS**
Message: `{0}`| +|`0x8004B55B`
`-2147175077`|Name: **BDK_E_INVALID_FILTER**
Message: `{0}`| +|`0x8004B55C`
`-2147175076`|Name: **BDK_E_INVALID_GUID**
Message: `{0}`| +|`0x8004B55D`
`-2147175075`|Name: **BDK_E_INVALID_INPUT_TO_TAXWARE_OR_VERAZIP**
Message: `{0}`| +|`0x8004B55E`
`-2147175074`|Name: **BDK_E_INVALID_LOCALE**
Message: `{0}`| |`0x8004B55F`
`-2147175073`|Name: **BDK_E_INVALID_OBJECT_ID**
Message: `{0} The Billing system cannot find the object (e.g. account or subscription or offering).`| -|`0x8004B560`
`-2147175072`|Name: **BDK_E_INVALID_OFFERING_GUID**
Message: `{0} `| -|`0x8004B561`
`-2147175071`|Name: **BDK_E_INVALID_PAYMENT_INSTRUMENT_STATUS**
Message: `{0} `| -|`0x8004B562`
`-2147175070`|Name: **BDK_E_INVALID_PAYMENT_METHOD_ID**
Message: `{0} `| -|`0x8004B563`
`-2147175069`|Name: **BDK_E_INVALID_PHONE_TYPE**
Message: `{0} `| -|`0x8004B564`
`-2147175068`|Name: **BDK_E_INVALID_POLICY_ID**
Message: `{0} `| -|`0x8004B565`
`-2147175067`|Name: **BDK_E_INVALID_REFERRALDATA_XML**
Message: `{0} `| -|`0x8004B566`
`-2147175066`|Name: **BDK_E_INVALID_STATE_FOR_COUNTRY**
Message: `{0} `| +|`0x8004B560`
`-2147175072`|Name: **BDK_E_INVALID_OFFERING_GUID**
Message: `{0}`| +|`0x8004B561`
`-2147175071`|Name: **BDK_E_INVALID_PAYMENT_INSTRUMENT_STATUS**
Message: `{0}`| +|`0x8004B562`
`-2147175070`|Name: **BDK_E_INVALID_PAYMENT_METHOD_ID**
Message: `{0}`| +|`0x8004B563`
`-2147175069`|Name: **BDK_E_INVALID_PHONE_TYPE**
Message: `{0}`| +|`0x8004B564`
`-2147175068`|Name: **BDK_E_INVALID_POLICY_ID**
Message: `{0}`| +|`0x8004B565`
`-2147175067`|Name: **BDK_E_INVALID_REFERRALDATA_XML**
Message: `{0}`| +|`0x8004B566`
`-2147175066`|Name: **BDK_E_INVALID_STATE_FOR_COUNTRY**
Message: `{0}`| |`0x8004B567`
`-2147175065`|Name: **BDK_E_INVALID_SUBSCRIPTION_ID**
Message: `{0} The subscription id specified is invalid. Or, although the objectID is of correct type and also points to a valid account in SCS, the subscription it identifies does not exist in SCS.`| -|`0x8004B568`
`-2147175064`|Name: **BDK_E_INVALID_TAX_EXEMPT_TYPE**
Message: `{0} `| -|`0x8004B569`
`-2147175063`|Name: **BDK_E_MEG_CONFLICT**
Message: `{0} `| -|`0x8004B56A`
`-2147175062`|Name: **BDK_E_MULTIPLE_CITIES_FOUND**
Message: `{0} `| -|`0x8004B56B`
`-2147175061`|Name: **BDK_E_MULTIPLE_COUNTIES_FOUND**
Message: `{0} `| -|`0x8004B56C`
`-2147175060`|Name: **BDK_E_NON_ACTIVE_ACCOUNT**
Message: `{0} `| +|`0x8004B568`
`-2147175064`|Name: **BDK_E_INVALID_TAX_EXEMPT_TYPE**
Message: `{0}`| +|`0x8004B569`
`-2147175063`|Name: **BDK_E_MEG_CONFLICT**
Message: `{0}`| +|`0x8004B56A`
`-2147175062`|Name: **BDK_E_MULTIPLE_CITIES_FOUND**
Message: `{0}`| +|`0x8004B56B`
`-2147175061`|Name: **BDK_E_MULTIPLE_COUNTIES_FOUND**
Message: `{0}`| +|`0x8004B56C`
`-2147175060`|Name: **BDK_E_NON_ACTIVE_ACCOUNT**
Message: `{0}`| |`0x8004B56D`
`-2147175059`|Name: **BDK_E_NOPERMISSION**
Message: `{0} The calling partner does not have access to this method or when the requester does not have permission to search against the supplied search PUID.`| -|`0x8004B56E`
`-2147175058`|Name: **BDK_E_OBJECT_ROLE_LIMIT_EXCEEDED**
Message: `{0} `| -|`0x8004B56F`
`-2147175057`|Name: **BDK_E_OFFERING_ACCOUNT_CURRENCY_MISMATCH**
Message: `{0} `| -|`0x8004B570`
`-2147175056`|Name: **BDK_E_OFFERING_COUNTRY_ACCOUNT_MISMATCH**
Message: `{0} `| -|`0x8004B571`
`-2147175055`|Name: **BDK_E_OFFERING_NOT_PURCHASEABLE**
Message: `{0} `| -|`0x8004B572`
`-2147175054`|Name: **BDK_E_OFFERING_PAYMENT_INSTRUMENT_MISMATCH**
Message: `{0} `| -|`0x8004B573`
`-2147175053`|Name: **BDK_E_OFFERING_REQUIRES_PI**
Message: `{0} `| -|`0x8004B574`
`-2147175052`|Name: **BDK_E_PARTNERNOTINBILLING**
Message: `{0} `| -|`0x8004B575`
`-2147175051`|Name: **BDK_E_PAYMENT_PROVIDER_CONNECTION_FAILED**
Message: `{0} `| -|`0x8004B577`
`-2147175049`|Name: **BDK_E_POLICY_DEAL_COUNTRY_MISMATCH**
Message: `{0} `| -|`0x8004B576`
`-2147175050`|Name: **BDK_E_PRIMARY_PHONE_REQUIRED**
Message: `{0} `| -|`0x8004B578`
`-2147175048`|Name: **BDK_E_PUID_ROLE_LIMIT_EXCEEDED**
Message: `{0} `| -|`0x8004B579`
`-2147175047`|Name: **BDK_E_RATING_FAILURE**
Message: `{0} `| -|`0x8004B57A`
`-2147175046`|Name: **BDK_E_REQUIRED_FIELD_MISSING**
Message: `{0} `| -|`0x8004B57B`
`-2147175045`|Name: **BDK_E_STATE_CITY_INVALID**
Message: `{0} `| -|`0x8004B57C`
`-2147175044`|Name: **BDK_E_STATE_INVALID**
Message: `{0} `| -|`0x8004B57D`
`-2147175043`|Name: **BDK_E_STATE_ZIP_CITY_INVALID**
Message: `{0} `| -|`0x8004B57E`
`-2147175042`|Name: **BDK_E_STATE_ZIP_CITY_INVALID2**
Message: `{0} `| -|`0x8004B57F`
`-2147175041`|Name: **BDK_E_STATE_ZIP_CITY_INVALID3**
Message: `{0} `| -|`0x8004B580`
`-2147175040`|Name: **BDK_E_STATE_ZIP_CITY_INVALID4**
Message: `{0} `| -|`0x8004B581`
`-2147175039`|Name: **BDK_E_STATE_ZIP_COVERS_MULTIPLE_CITIES**
Message: `{0} `| -|`0x8004B582`
`-2147175038`|Name: **BDK_E_STATE_ZIP_INVALID**
Message: `{0} `| -|`0x8004B583`
`-2147175037`|Name: **BDK_E_TAXID_EXPDATE**
Message: `{0} `| -|`0x8004B584`
`-2147175036`|Name: **BDK_E_TOKEN_BLACKLISTED**
Message: `{0} `| -|`0x8004B585`
`-2147175035`|Name: **BDK_E_TOKEN_EXPIRED**
Message: `{0} `| -|`0x8004B586`
`-2147175034`|Name: **BDK_E_TOKEN_NOT_VALID_FOR_OFFERING**
Message: `{0} `| -|`0x8004B587`
`-2147175033`|Name: **BDK_E_TOKEN_RANGE_BLACKLISTED**
Message: `{0} `| -|`0x8004B588`
`-2147175032`|Name: **BDK_E_TRANS_BALANCE_TO_PI_INVALID**
Message: `{0} `| +|`0x8004B56E`
`-2147175058`|Name: **BDK_E_OBJECT_ROLE_LIMIT_EXCEEDED**
Message: `{0}`| +|`0x8004B56F`
`-2147175057`|Name: **BDK_E_OFFERING_ACCOUNT_CURRENCY_MISMATCH**
Message: `{0}`| +|`0x8004B570`
`-2147175056`|Name: **BDK_E_OFFERING_COUNTRY_ACCOUNT_MISMATCH**
Message: `{0}`| +|`0x8004B571`
`-2147175055`|Name: **BDK_E_OFFERING_NOT_PURCHASEABLE**
Message: `{0}`| +|`0x8004B572`
`-2147175054`|Name: **BDK_E_OFFERING_PAYMENT_INSTRUMENT_MISMATCH**
Message: `{0}`| +|`0x8004B573`
`-2147175053`|Name: **BDK_E_OFFERING_REQUIRES_PI**
Message: `{0}`| +|`0x8004B574`
`-2147175052`|Name: **BDK_E_PARTNERNOTINBILLING**
Message: `{0}`| +|`0x8004B575`
`-2147175051`|Name: **BDK_E_PAYMENT_PROVIDER_CONNECTION_FAILED**
Message: `{0}`| +|`0x8004B577`
`-2147175049`|Name: **BDK_E_POLICY_DEAL_COUNTRY_MISMATCH**
Message: `{0}`| +|`0x8004B576`
`-2147175050`|Name: **BDK_E_PRIMARY_PHONE_REQUIRED**
Message: `{0}`| +|`0x8004B578`
`-2147175048`|Name: **BDK_E_PUID_ROLE_LIMIT_EXCEEDED**
Message: `{0}`| +|`0x8004B579`
`-2147175047`|Name: **BDK_E_RATING_FAILURE**
Message: `{0}`| +|`0x8004B57A`
`-2147175046`|Name: **BDK_E_REQUIRED_FIELD_MISSING**
Message: `{0}`| +|`0x8004B57B`
`-2147175045`|Name: **BDK_E_STATE_CITY_INVALID**
Message: `{0}`| +|`0x8004B57C`
`-2147175044`|Name: **BDK_E_STATE_INVALID**
Message: `{0}`| +|`0x8004B57D`
`-2147175043`|Name: **BDK_E_STATE_ZIP_CITY_INVALID**
Message: `{0}`| +|`0x8004B57E`
`-2147175042`|Name: **BDK_E_STATE_ZIP_CITY_INVALID2**
Message: `{0}`| +|`0x8004B57F`
`-2147175041`|Name: **BDK_E_STATE_ZIP_CITY_INVALID3**
Message: `{0}`| +|`0x8004B580`
`-2147175040`|Name: **BDK_E_STATE_ZIP_CITY_INVALID4**
Message: `{0}`| +|`0x8004B581`
`-2147175039`|Name: **BDK_E_STATE_ZIP_COVERS_MULTIPLE_CITIES**
Message: `{0}`| +|`0x8004B582`
`-2147175038`|Name: **BDK_E_STATE_ZIP_INVALID**
Message: `{0}`| +|`0x8004B583`
`-2147175037`|Name: **BDK_E_TAXID_EXPDATE**
Message: `{0}`| +|`0x8004B584`
`-2147175036`|Name: **BDK_E_TOKEN_BLACKLISTED**
Message: `{0}`| +|`0x8004B585`
`-2147175035`|Name: **BDK_E_TOKEN_EXPIRED**
Message: `{0}`| +|`0x8004B586`
`-2147175034`|Name: **BDK_E_TOKEN_NOT_VALID_FOR_OFFERING**
Message: `{0}`| +|`0x8004B587`
`-2147175033`|Name: **BDK_E_TOKEN_RANGE_BLACKLISTED**
Message: `{0}`| +|`0x8004B588`
`-2147175032`|Name: **BDK_E_TRANS_BALANCE_TO_PI_INVALID**
Message: `{0}`| |`0x8004B589`
`-2147175031`|Name: **BDK_E_UNKNOWN_SERVER_FAILURE**
Message: `{0} Unknown server failure.`| -|`0x8004B58A`
`-2147175030`|Name: **BDK_E_UNSUPPORTED_CHAR_EXIST**
Message: `{0} `| +|`0x8004B58A`
`-2147175030`|Name: **BDK_E_UNSUPPORTED_CHAR_EXIST**
Message: `{0}`| |`0x8004B58F`
`-2147175025`|Name: **BDK_E_USAGE_COUNT_FOR_TOKEN_EXCEEDED**
Message: `{0} Billing token is already spent.`| -|`0x8004B58B`
`-2147175029`|Name: **BDK_E_VATID_DOESNOTHAVEEXPDATE**
Message: `{0} `| -|`0x8004B58C`
`-2147175028`|Name: **BDK_E_ZIP_CITY_MISSING**
Message: `{0} `| +|`0x8004B58B`
`-2147175029`|Name: **BDK_E_VATID_DOESNOTHAVEEXPDATE**
Message: `{0}`| +|`0x8004B58C`
`-2147175028`|Name: **BDK_E_ZIP_CITY_MISSING**
Message: `{0}`| |`0x8004B58D`
`-2147175027`|Name: **BDK_E_ZIP_INVALID**
Message: `{0} Billing zip code error.`| |`0x8004B58E`
`-2147175026`|Name: **BDK_E_ZIP_INVALID_FOR_ENTERED_STATE**
Message: `{0} Billing zip code error.`| |`0x8005E003`
`-2147098621`|Name: **BidsAuthenticationError**
Message: `An error occured while authenticating with server {0}.`| @@ -421,7 +422,7 @@ |`0x8004030a`
`-2147220726`|Name: **CampaignNotSpecifiedForCampaignResponse**
Message: `RegardingObjectId is a required field.`| |`0x8006099E`
`-2147087970`|Name: **CanAssociateOnlyMobileOfflineEnabledEntityToProfileItem**
Message: `{0} needs to be enabled for mobile offline.`| |`0x8006099C`
`-2147087972`|Name: **CanAssociateOnlyMobileOfflineEnableEntityToProfileItem**
Message: `This entity needs to be enabled for mobile offline.`| -|`0x8006099D`
`-2147087971`|Name: **CanAssociateOnlyOneEntityPerProfileItem**
Message: `You can only add one mobile offline profile item record per entity to a mobile offline profile record. `| +|`0x8006099D`
`-2147087971`|Name: **CanAssociateOnlyOneEntityPerProfileItem**
Message: `You can only add one mobile offline profile item record per entity to a mobile offline profile record.`| |`0x8003F451`
`-2147224495`|Name: **CancelActiveChildCaseFirst**
Message: `Cancel active child case before canceling parent case.`| |`0x80044F03`
`-2147201277`|Name: **CancelAsyncOperationsRetriableError**
Message: `Failed to cancel targeted system jobs, will be retried later.`| |`0x80044F04`
`-2147201276`|Name: **CancelAsyncOperationsTerminalError**
Message: `Failed to cancel targeted system jobs.`| @@ -537,7 +538,7 @@ |`0x80055005`
`-2147135483`|Name: **CannotCreateSLAForEntity**
Message: `You can't create a service level agreement (SLA) for this entity because it’s not enabled for creating SLAs`| |`0x80041d4d`
`-2147214003`|Name: **CannotCreateSyncUserIsLicensedField**
Message: `The property IsLicensed cannot be set for Sync User Creation.`| |`0x80041d4b`
`-2147214005`|Name: **CannotCreateSyncUserObjectMissing**
Message: `This is not a valid Microsoft Online Services ID for this organization.`| -|`0x80090481`
`-2146892671`|Name: **CannotCreateSystemFieldOnEntityUpdate**
Message: `Attribute {0} cannot be created on an existing entity {1} because it is not a custom field. `| +|`0x80090481`
`-2146892671`|Name: **CannotCreateSystemFieldOnEntityUpdate**
Message: `Attribute {0} cannot be created on an existing entity {1} because it is not a custom field.`| |`0x800608D5`
`-2147088171`|Name: **CannotCreateSystemOrDefaultTheme**
Message: `You can’t create system or default themes. System or default theme can only be created out of box.`| |`0x80044804`
`-2147203068`|Name: **CannotCreateUpdateSourceAttribute**
Message: `Source Attribute Not Valid For Create/Update if Metric Type is Count.`| |`0x8004027a`
`-2147220870`|Name: **CannotDeactivateDefaultView**
Message: `Default views cannot be deactivated.`| @@ -637,12 +638,13 @@ |`0x8004852C`
`-2147187412`|Name: **CannotExecuteRequestBecauseHttpsIsRequired**
Message: `HTTPS protocol is required for this type of request, please enable HTTPS protocol and try again.`| |`0x80090474`
`-2146892684`|Name: **CannotExportRoutingRuleForNonCaseEntity**
Message: `Exporting routing rules is only available for cases when using basic routing rulesets.`| |`0x8004F847`
`-2147157945`|Name: **CannotExportRuleOnAnyEntityRoutingRuleFCBOff**
Message: `Unable to export routing rule set record for entities (except case entity) as the feature control bit for entity records routing is disabled.`| +|`0x80041155`
`-2147217067`|Name: **CannotFilterOnMaskedAttribute**
Message: `Filtering on masked attributes without the read unmasked column permission is not allowed.`| |`0x8004F083`
`-2147159933`|Name: **CannotFindBaseFromUpgrade**
Message: `Cannot find the data for the previous version of the holding solution: [{0}].`| |`0x80044342`
`-2147204286`|Name: **CannotFindDomainAccount**
Message: `Invalid domain account`| |`0x8004F060`
`-2147159968`|Name: **CannotFindLayerToMerge**
Message: `Cannot find a suitable layer to merge Component: [{0}] with Id: [{1}]. Cannot continue with the operation. Check the layers of the component.`| |`0x800404eb`
`-2147220245`|Name: **CannotFindObjectInQueue**
Message: `The object was not found in the given queue`| |`0x800404ec`
`-2147220244`|Name: **CannotFindUserQueue**
Message: `Cannot find user queue`| -|`0x8004F6A3`
`-2147158365`|Name: **CannotFollowInactiveEntity**
Message: `Can't follow inactive record. `| +|`0x8004F6A3`
`-2147158365`|Name: **CannotFollowInactiveEntity**
Message: `Can't follow inactive record.`| |`0x80090012`
`-2146893806`|Name: **CannotGenerateFileSasUrl**
Message: `Cannot generate SAS url for this file.`| |`0x80048446`
`-2147187642`|Name: **CannotGrantAccessToAddressBookFilters**
Message: `Cannot grant access to address book filters`| |`0x80040271`
`-2147220879`|Name: **CannotGrantAccessToOfflineFilters**
Message: `Cannot grant access to offline filters`| @@ -761,7 +763,8 @@ |`0x80061114`
`-2147086060`|Name: **CannotUpdateExternalPartyWithSameCorrelationKey**
Message: `An external party record already exists with the same correlation key value.`| |`0x80044901`
`-2147202815`|Name: **CannotUpdateGoalPeriodInfoChildGoal**
Message: `You cannot update goal period related attributes on a child goal.`| |`0x80044910`
`-2147202800`|Name: **CannotUpdateGoalPeriodInfoClosedGoal**
Message: `You cannot change the time period of this goal because there are one or more closed subordinate goals.`| -|`0x80048461`
`-2147187615`|Name: **CannotUpdateLogicalAttribute**
Message: `Cannot update logical attribute {0} `| +|`0x80048362`
`-2147187870`|Name: **CannotUpdateLicenseStateForUser**
Message: `User with SystemUserId={0} and SystemManagedUserType={1} cannot have their licensed state updated.`| +|`0x80048461`
`-2147187615`|Name: **CannotUpdateLogicalAttribute**
Message: `Cannot update logical attribute {0}`| |`0x8004F024`
`-2147160028`|Name: **CannotUpdateManagedSolution**
Message: `Cannot update solution '{0}' because it is a managed solution.`| |`0x80044900`
`-2147202816`|Name: **CannotUpdateMetricOnChildGoal**
Message: `You cannot update metric on a child goal.`| |`0x80044902`
`-2147202814`|Name: **CannotUpdateMetricOnGoalWithChildren**
Message: `You cannot update metric on a goal which has associated child goals.`| @@ -801,6 +804,7 @@ |`0x8005F214`
`-2147093996`|Name: **CantSaveRecordInOffline**
Message: `You can't save this record while you're offline.`| |`0x8006111A`
`-2147086054`|Name: **CantSetIsGuestProfile**
Message: `You can’t set or change the value of the IsGuestProfile field because it’s for internal use only.`| |`0x8005F224`
`-2147093980`|Name: **CantUpdateOnlineRecord**
Message: `You can’t update this record because it doesn’t exist in the offline mode.`| +|`0x80072360`
`-2147015840`|Name: **CanvasAppCouldNotBeDeletedDueToBeingARequiredDependency**
Message: `The {0} with name '{1}' cannot be deleted because it is a required dependency by one or more components (from managed or active layer) outside this solution.`| |`0x80050121`
`-2147155679`|Name: **CanvasAppNotPartOfAppModule**
Message: `The custom page being opened is not part of this app.`| |`0x80072356`
`-2147015850`|Name: **CanvasAppsExpectedFileMissing**
Message: `The solution specified an expected assets file but that file was missing or invalid.`| |`0x80072354`
`-2147015852`|Name: **CanvasAppsInvalidSolutionFileContent**
Message: `The request to import a canvas app should contain at least one asset file.`| @@ -873,6 +877,7 @@ |`0x80061771`
`-2147084431`|Name: **CloneSolutionPatchException**
Message: `Patch '{0}' has a matching or higher version ({1}) than that of the patch being installed.`| |`0x80071112`
`-2147020526`|Name: **CloneTitleTooLong**
Message: `A validation error occurred. The length of the Name attribute of the mobileofflineprofile entity exceeded the maximum allowed length of 200.`| |`0x8003F452`
`-2147224494`|Name: **CloseActiveChildCaseFirst**
Message: `Close active child case before closing parent case.`| +|`0x80098020`
`-2146861024`|Name: **ClusteringFeatureNotAvailable**
Message: `This operation couldn't be completed because {0} feature is not enabled for your organization as {1}.`| |`0x80090019`
`-2146893799`|Name: **CmkStatusMismatch**
Message: `The CMK status does not match. Input: {0}, expected: {1}`| |`0x80061500`
`-2147085056`|Name: **ColorStripAttributesExceeded**
Message: `Color Strip section cannot have more than 1 attribute`| |`0x80061502`
`-2147085054`|Name: **ColorStripAttributesInvalid**
Message: `Color Strip section can only have attributes of type Two Options, Option Set and Status Reason`| @@ -992,7 +997,7 @@ |`0x80050300`
`-2147155200`|Name: **CrmLicensingError**
Message: `A failure occurred during licensing check.`| |`0x80050307`
`-2147155193`|Name: **CrmLicensingNoAccessViaEntitlementBilling**
Message: `This user with userId={0} does not have an appropriate license to access this application uniqueName={1} with Id={2} from publisher={3}. An appropriate license is required or the user needs to have sufficient per app licenses allocated, for accessing custom applications. For more information, please refer https://go.microsoft.com/fwlink/p/?linkid=2122607 Error=CrmLicensingNoAccessViaEntitlementBilling.`| |`0x80050303`
`-2147155197`|Name: **CrmLicensingNoRestrictedServicePlan**
Message: `This application {0}({1}) requires an appropriate license. Technical Information: This user with user Id {2} does not have appropriate license(s) to access this application from publisher {3}. An appropriate license is required with one of these service plans : {4}. Error=CrmLicensingNoRestrictedServicePlan.`| -|`0x80050301`
`-2147155199`|Name: **CrmLicensingNoServicePlan**
Message: `This user with userId={0} does not have appropriate license(s) to access this application uniqueName={1} with Id={2} from publisher={3}. An appropriate license is required with one of these service plans : {5}. For more information, please refer https://go.microsoft.com/fwlink/p/?linkid=2122607 Error=CrmLicensingNoServicePlan.`| +|`0x80050301`
`-2147155199`|Name: **CrmLicensingNoServicePlan**
Message: `This user with userId={0} does not have appropriate license(s) to access this application uniqueName={1} with Id={2} from publisher={3}. An appropriate license is required with one of these service plans: {5}. For additional troubleshooting steps, please refer https://go.microsoft.com/fwlink/p/?linkid=2314633. For a mapping of all licenses to service plans, refer https://go.microsoft.com/fwlink/p/?linkid=2307706 Error=CrmLicensingNoServicePlan.`| |`0x80050302`
`-2147155198`|Name: **CrmLicensingNoUserPass**
Message: `This user with userId={0} does not have an appropriate license to access this application uniqueName={1} with Id={2} from publisher={3}. An appropriate license is required or the organization instance needs to have sufficient per app licenses assigned, for accessing custom applications. For more information, please refer https://go.microsoft.com/fwlink/p/?linkid=2122607 Error=CrmLicensingNoUserPass.`| |`0x8004B056`
`-2147176362`|Name: **CrmLiveAddOnAddLicenseLimitReached**
Message: `Your subscription has the maximum number of user licenses available. For additional licenses, please contact our sales organization at 1-877-Dynamics 365-CHOICE (276-2464).`| |`0x8004B057`
`-2147176361`|Name: **CrmLiveAddOnAddStorageLimitReached**
Message: `Your storage consumption has reached the maximum storage limit allotted to this environment. Trial environments are allocated with limited resources. If you are not using a trial environment, please contact support.`| @@ -1093,20 +1098,21 @@ |`0x80071156`
`-2147020458`|Name: **CyclicDependency**
Message: `Cyclic component dependency detected. Please check the exception for more details. Fix the invalid dependencies and try the operation one more time. Detaisl: {0}`| |`0x8004417F`
`-2147204737`|Name: **CyclicReferencesNotSupported**
Message: `The input contains a cyclic reference, which is not supported.`| |`0x80072401`
`-2147015679`|Name: **DatabaseCallsBlockedFailure**
Message: `This invocation may lead to calls to Database which is not allowed.`| +|`0x80048564`
`-2147187356`|Name: **DatabaseUnavailable**
Message: `Database is currently unavailable. This operation should be retried later. Database connection exception message: {0}`| |`0x8004B065`
`-2147176347`|Name: **DatacenterNotAvailable**
Message: `This datacenter endpoint is not currently available for this organization.`| |`0x80040345`
`-2147220667`|Name: **DataColumnsNumberMismatch**
Message: `The number of fields differs from the number of column headings.`| -|`0x80048744`
`-2147186876`|Name: **DataEngineComputedColumnQueryThrottling**
Message: `This query cannot be executed because it conflicts with Query Throttling; the query uses a computed column in a filter condition, which will cause the query to be throttled more aggressively. Please refer to this document: https://go.microsoft.com/fwlink/?linkid=2162952`| +|`0x80048744`
`-2147186876`|Name: **DataEngineComputedColumnQueryThrottling**
Message: `This query is throttled as it negatively impacts the database health; the query uses a computed column in a filter condition, which will cause the query to be throttled more aggressively. Please refer to this document: https://go.microsoft.com/fwlink/?linkid=2162952`| |`0x80048589`
`-2147187319`|Name: **DataEngineCreateIndexCannotQueue**
Message: `The adhoc request already exists`| |`0x80048588`
`-2147187320`|Name: **DataEngineCreateIndexMetadataAlreadyExists**
Message: `The requested index already Exists in Index Metadata. The index will be created during the nightly job.`| |`0x80048590`
`-2147187312`|Name: **DataEngineCreateIndexSqlIndexAlreadyExists**
Message: `The Index or a super-set index already exists in sql.`| |`0x80048586`
`-2147187322`|Name: **DataEngineIndexMGMTApisForbidden**
Message: `Forbidden: Invalid User for endpoint`| |`0x80048587`
`-2147187321`|Name: **DataEngineIndexMGMTApisInvalidInput**
Message: `Input Invalid: {0}`| -|`0x80048644`
`-2147187132`|Name: **DataEngineLeadingWildcardQueryThrottling**
Message: `This query cannot be executed because it conflicts with Query Throttling; the query uses a leading wildcard value in a filter condition, which will cause the query to be throttled more aggressively. Please refer to this document: https://go.microsoft.com/fwlink/?linkid=2162952`| -|`0x80048745`
`-2147186875`|Name: **DataEnginePerformanceValidationIssuesQueryThrottling**
Message: `This query cannot be executed because it conflicts with Query Throttling; the query has performance validation issues ({0}), which will cause the query to be throttled more aggressively. Please refer to this document: https://go.microsoft.com/fwlink/?linkid=2162952`| +|`0x80048644`
`-2147187132`|Name: **DataEngineLeadingWildcardQueryThrottling**
Message: `This query is throttled as it negatively impacts the database health; the query uses a leading wildcard value in a filter condition, which will cause the query to be throttled more aggressively. Please refer to this document: https://go.microsoft.com/fwlink/?linkid=2162952`| +|`0x80048745`
`-2147186875`|Name: **DataEnginePerformanceValidationIssuesQueryThrottling**
Message: `This query is throttled as it negatively impacts the database health; the query has performance validation issues ({0}), which will cause the query to be throttled more aggressively. Please refer to this document: https://go.microsoft.com/fwlink/?linkid=2162952`| |`0x80049544`
`-2147183292`|Name: **DataEngineQueryBlocking**
Message: `This query cannot be executed because it was blocked by the platform. Please refer to this document: https://go.microsoft.com/fwlink/?linkid=2162952`| |`0x80049545`
`-2147183291`|Name: **DataEngineQueryBlockingQDS**
Message: `This query cannot be executed because it was blocked by the platform. This was blocked due to query complexity leading to timeouts. Please refer to this document: https://go.microsoft.com/fwlink/?linkid=2162952`| -|`0x80048544`
`-2147187388`|Name: **DataEngineQueryThrottling**
Message: `This query cannot be executed because it conflicts with Query Throttling. Please refer to this document: https://go.microsoft.com/fwlink/?linkid=2162952`| -|`0x80050544`
`-2147154620`|Name: **DataEngineSerializeQueryThrottling**
Message: `This query cannot be executed because it conflicts with Query Throttling. The query is restricted to limited parallel executions. Please refer to this document: https://go.microsoft.com/fwlink/?linkid=2162952`| +|`0x80048544`
`-2147187388`|Name: **DataEngineQueryThrottling**
Message: `This query is throttled as it negatively impacts the database health. Please refer to this document: https://go.microsoft.com/fwlink/?linkid=2162952`| +|`0x80050544`
`-2147154620`|Name: **DataEngineSerializeQueryThrottling**
Message: `This query is throttled as it negatively impacts the database health. The query is restricted to limited parallel executions. Please refer to this document: https://go.microsoft.com/fwlink/?linkid=2162952`| |`0x80160021`
`-2146041823`|Name: **DataFieldNameIsMissing**
Message: `Required attribute \datafieldname\ is missing for control. More Details:{0}`| |`0x8006041b`
`-2147089381`|Name: **DatafieldNameShouldBeNull**
Message: `ActionStep {0} references invalid DataFieldName {1}.`| |`0x80160022`
`-2146041822`|Name: **DataFieldSpecifiedIsNotALookup**
Message: `The datafieldname attribute {0} is not of type lookup. More Details:{1}`| @@ -1156,7 +1162,7 @@ |`0x80090910`
`-2146891504`|Name: **DelegatedAuthorizationTeamNotFound**
Message: `Matching delegated authorization team not found for delegated authorization '{0}'.`| |`0x80097208`
`-2146864632`|Name: **DelegatedTeamMembershipNotAllowed**
Message: `Team '{0}' is associated to a delegated authorization and cannot have members.`| |`0x8004501A`
`-2147200998`|Name: **DeleteActiveWorkflowTemplateDependency**
Message: `Cannot delete workflow dependency from a published workflow template .`| -|`0x80049950`
`-2147182256`|Name: **DeletedItemRefMarkedInvalid**
Message: `Deleted item ref '{0}' has been marked invalid for restore. This entity cannot be restored. `| +|`0x80049950`
`-2147182256`|Name: **DeletedItemRefMarkedInvalid**
Message: `Deleted item ref '{0}' has been marked invalid for restore. This entity cannot be restored.`| |`0x80097262`
`-2146864542`|Name: **DeleteElasticTableDataError**
Message: `DeleteElasticTableData failed with Status code : '{0}'`| |`0x80045006`
`-2147201018`|Name: **DeletePublishedWorkflowDefinitionWorkflowDependency**
Message: `Cannot delete a workflow dependency for a published workflow definition.`| |`0x80045004`
`-2147201020`|Name: **DeleteWorkflowActivation**
Message: `Cannot delete a workflow activation.`| @@ -1204,6 +1210,7 @@ |`0x80048cf8`
`-2147185416`|Name: **DiscountTypeAndPriceLevelCurrencyNotEqual**
Message: `The currency of the discount needs to match the currency of the price list for discount type amount.`| |`0x80050124`
`-2147155676`|Name: **DiskSpaceNotEnough**
Message: `There is not enough space in the Temp Folder.`| |`0x80040c06`
`-2147218426`|Name: **DistinctClauseUnsupportedForMultiPartitionQuery**
Message: `Distinct clause is not supported for multi-partition query.`| +|`0x80040c0c`
`-2147218420`|Name: **DistinctWithGroupByClauseUnsupportedForMultiPartitionQuery**
Message: `Distinct with group by clause is not supported for multi-partition query.`| |`0x80072531`
`-2147015375`|Name: **DistinctWithImageAttributeError**
Message: `Distinct is not allowed when image attributes are selected.`| |`0x80048453`
`-2147187629`|Name: **DistributeListAssociatedVary**
Message: `This campaign activity cannot be distributed. Mail merge activities can be done only on marketing lists that are all the same record type. For this campaign activity, remove marketing lists so that the remaining ones are the same record type, and then try again.`| |`0x80048454`
`-2147187628`|Name: **DistributeNoListAssociated**
Message: `This campaign activity cannot be distributed. No marketing lists are associated with it. Add at least one marketing list and try again.`| @@ -1374,8 +1381,8 @@ |`0x80060421`
`-2147089375`|Name: **EntityIsNotBusinessProcessFlowEnabled**
Message: `The IsBusinessProcessEnabled property of the {0} entity is false.`| |`0x80047008`
`-2147192824`|Name: **EntityIsNotCustomizable**
Message: `The specified entity is not customizable`| |`0x8006111B`
`-2147086053`|Name: **EntityIsNotEnabledForExternalParty**
Message: `You can't create/update an external party item associated to an entity that is not enabled for external party.`| -|`0x8004F6A2`
`-2147158366`|Name: **EntityIsNotEnabledForFollow**
Message: `This entity is not enabled to be followed. `| -|`0x8004F6A1`
`-2147158367`|Name: **EntityIsNotEnabledForFollowUser**
Message: `This entity is not enabled to be followed. `| +|`0x8004F6A2`
`-2147158366`|Name: **EntityIsNotEnabledForFollow**
Message: `This entity is not enabled to be followed.`| +|`0x8004F6A1`
`-2147158367`|Name: **EntityIsNotEnabledForFollowUser**
Message: `This entity is not enabled to be followed.`| |`0x80043b1e`
`-2147206370`|Name: **EntityIsUnlocked**
Message: `This entity is already unlocked.`| |`0x80090110`
`-2146893552`|Name: **EntityKeyAttributeNotValidForCreate**
Message: `Attribute of an entity key must be valid for create. Atribute Name = '{0}' Id = '{1}'`| |`0x80090112`
`-2146893550`|Name: **EntityKeyAttributeNotValidForCreateAndUpdate**
Message: `Attribute of an entity key must be valid for create and update. Atribute Name = '{0}' Id = '{1}'`| @@ -1392,7 +1399,7 @@ |`0x80040387`
`-2147220601`|Name: **EntityLoopBeingCreated**
Message: `Creating this parental association would create a loop in this entity hierarchy.`| |`0x80040386`
`-2147220602`|Name: **EntityLoopExists**
Message: `Loop exists in this entity hierarchy.`| |`0x8005F238`
`-2147093960`|Name: **EntityMetadataSyncFailed**
Message: `There were problems with the server configurations. There was a problem with the server configuration changes. We are unable to load the application, please contact your Dynamics 365 administrator.`| -|`0x8005F239`
`-2147093959`|Name: **EntityMetadataSyncFailedWithContinue**
Message: `There were difficulties with the server configuration changes. You can continue to use the app with the older configuration, however, you may experience problems including errors when saving. Please contact your Dynamics 365 administrator. `| +|`0x8005F239`
`-2147093959`|Name: **EntityMetadataSyncFailedWithContinue**
Message: `There were difficulties with the server configuration changes. You can continue to use the app with the older configuration, however, you may experience problems including errors when saving. Please contact your Dynamics 365 administrator.`| |`0x80048334`
`-2147187916`|Name: **EntityNotEnabledForAutoCreatedAccessTeams**
Message: `The entity with logicalname {0} and ObjectTypeCode {1} is not enabled for auto created access teams.`| |`0x8004E00C`
`-2147164148`|Name: **EntityNotEnabledForCharts**
Message: `Charts are not enabled on the specified primary entity type code: {0}.`| |`0x8005F200`
`-2147094016`|Name: **EntityNotEnabledForThisDevice**
Message: `Entity not enabled to be viewed in this device`| @@ -1594,12 +1601,13 @@ |`0x8009724D`
`-2146864563`|Name: **FilterOnSecuredAttributeCallerCantReadNotSupportedForElasticTables**
Message: `Caller does not have read permission on secured attribute ('{0}'). Filtering on this attribute without permission is not supported for Elastic Tables.`| |`0x80060443`
`-2147089341`|Name: **FinalMergedEntityIsNull**
Message: `Error creating or updating Business Process: final merged entity cannot be null.`| |`0x80090300`
`-2146893056`|Name: **FinanceAndOperationsVirtualEntityInvalidDataSource**
Message: `Unable to establish connection using data source: '{0}'. Failed to sync entity metadata. Ensure the data source is configured properly.`| +|`0x80090318`
`-2146893032`|Name: **FinanceAndOperationsVirtualEntityInvalidDataSourceV2**
Message: `Unable to establish connection using data source: '{0}', Error: '{1}' Ensure the data source is configured properly.`| |`0x80090301`
`-2146893055`|Name: **FinanceAndOperationsVirtualEntityInvalidEntities**
Message: `Unable to sync metadata for entities: '{0}'. Ensure the entities are available in data source: '{1}'.`| |`0x80090302`
`-2146893054`|Name: **FinanceAndOperationsVirtualEntitySyncError**
Message: `Failed to sync entity metadata for entity '{0}'. Exception details: {1}.`| -|`0x80097501`
`-2146863871`|Name: **FinOpsCallBackException**
Message: ` Finance and Operations returned an exception, Error Code "{0}".`| -|`0x80097504`
`-2146863868`|Name: **FinOpsGrpcChannelGenericException**
Message: ` An error has occured when communicating with Finance And Operations.`| -|`0x80097503`
`-2146863869`|Name: **FinOpsGrpcChannelRpcException**
Message: ` An error has occured when communicating with Finance And Operations. Error Detail- {0}.`| -|`0x80097502`
`-2146863870`|Name: **FinOpsGrpcChannelTimeoutException**
Message: ` Timeout error has occured when communicating with Finance And Operations. Error Detail- {0}.`| +|`0x80097501`
`-2146863871`|Name: **FinOpsCallBackException**
Message: `Finance and Operations returned an exception, Error Code "{0}".`| +|`0x80097504`
`-2146863868`|Name: **FinOpsGrpcChannelGenericException**
Message: `An error has occured when communicating with Finance And Operations.`| +|`0x80097503`
`-2146863869`|Name: **FinOpsGrpcChannelRpcException**
Message: `An error has occured when communicating with Finance And Operations. Error Detail- {0}.`| +|`0x80097502`
`-2146863870`|Name: **FinOpsGrpcChannelTimeoutException**
Message: `Timeout error has occured when communicating with Finance And Operations. Error Detail- {0}.`| |`0x80060456`
`-2147089322`|Name: **FirstStageIdInTraversedPathDoesNotMatchFirstStageIdInBusinessProcess**
Message: `First Stage ID in traversed path ‘{0}’ does not match first Stage ID in Business Process ‘{1}’. Please contact your system administrator.`| |`0x80044903`
`-2147202813`|Name: **FiscalPeriodGoalMissingInfo**
Message: `For a goal of fiscal period type, the fiscal period attribute must be set.`| |`0x80043809`
`-2147207159`|Name: **FiscalSettingsAlreadyUpdated**
Message: `Fiscal settings have already been updated. They can be updated only once.`| @@ -1700,7 +1708,7 @@ |`0x80048060`
`-2147188640`|Name: **ImportCustomizationsBadZipFileError**
Message: `The solution file is invalid. The compressed file must contain the following files at its root: solution.xml, customizations.xml, and [Content_Types].xml. Customization files exported from previous versions of Microsoft Dynamics 365 are not supported.`| |`0x8004E308`
`-2147163384`|Name: **ImportDashboardDeletedError**
Message: `A dashboard with the same id is marked as deleted in the system. Please first publish the system form entity and import again.`| |`0x80048049`
`-2147188663`|Name: **ImportDefaultAsPackageError**
Message: `The package supplied for the default solution is trying to install it in managed mode. The default solution cannot be managed. In the XML for the default solution, set the Managed value back to "false" and try to import the solution again.`| -|`0x80048034`
`-2147188684`|Name: **ImportDependencySolutionError**
Message: `{0} requires solutions that are not currently installed. Import the following solutions before Importing this one. {1} `| +|`0x80048034`
`-2147188684`|Name: **ImportDependencySolutionError**
Message: `{0} requires solutions that are not currently installed. Import the following solutions before Importing this one. {1}`| |`0x8004810c`
`-2147188468`|Name: **ImportDuplicateEntity**
Message: `This import has failed because a different entity with the identical name, {0}, already exists in the target organization.`| |`0x8004800C`
`-2147188724`|Name: **ImportEmailTemplateError**
Message: `There was an error in parsing the email templates in Import Xml`| |`0x8004802B`
`-2147188693`|Name: **ImportEmailTemplateErrorMissingFile**
Message: `E-mail Template '{0}' import: The attachment '{1}' was not found in the import zip file.`| @@ -1765,6 +1773,7 @@ |`0x80048073`
`-2147188621`|Name: **ImportServiceEndpointError**
Message: `An error occurred while importing Service Endpoints.`| |`0x80048011`
`-2147188719`|Name: **ImportSiteMapError**
Message: `An error occurred while importing the Site Map.`| |`0x8004F868`
`-2147157912`|Name: **ImportSlaError**
Message: `An error occurred while importing SLAs.`| +|`0x80072048`
`-2147016632`|Name: **ImportSolutionAfterAppUpdatesOperationFailed**
Message: `Solution import failed due to failure in installing required dependencies. Please see addition details in Solution history record of this solution import operation.`| |`0x8004804C`
`-2147188660`|Name: **ImportSolutionBlockedByRunSafeInternalErrors**
Message: `An error occurred while trying to run solution checker enforcement on the importing solution. Try importing the solution again. If this problem persists, contact your system administrator.`| |`0x8004803D`
`-2147188675`|Name: **ImportSolutionBlockedByRunSafeIssues**
Message: `Solution is blocked from importing due to critical violations. Fix these violations, then retry the import.`| |`0x80048033`
`-2147188685`|Name: **ImportSolutionError**
Message: `An error occurred while importing a Solution.`| @@ -1831,7 +1840,7 @@ |`0x80048502`
`-2147187454`|Name: **IncorrectSingleFileMultipleEntityMap**
Message: `There should be two or more Entity Mappings defined when EntitiesPerFile in ImportMap is set to Multiple`| |`0x80048360`
`-2147187872`|Name: **IncorrectUserAzureState**
Message: `User with SystemUserId={0} and AzureActiveDirectoryObjectId={1} is present in Azure Active Directory with state {2}. AzureState can't be set to incorrect value={3}.`| |`0x80060991`
`-2147087983`|Name: **IncreasingDaysWillResetMobileOfflineData**
Message: `Increasing the number of days will cause a reset of mobile offline data and a resynchronization with mobile devices.`| -|`0x80048d40`
`-2147185344`|Name: **IndexExceedsMaxLength**
Message: `The index entry of length for the index exceeds the maximum length. Please try removing some columns or reduce the number of columns in the table. `| +|`0x80048d40`
`-2147185344`|Name: **IndexExceedsMaxLength**
Message: `The index entry of length for the index exceeds the maximum length. Please try removing some columns or reduce the number of columns in the table.`| |`0x8005E008`
`-2147098616`|Name: **IndexOutOfRange**
Message: `The index {0} is out of range for {1}. Number of elements present are {2}.`| |`0x80060895`
`-2147088235`|Name: **IndexSizeConstraintViolated**
Message: `Index size exceeded the size limit of {0} bytes. The key is too large. Try removing some columns or making the strings in string columns shorter.`| |`0x8004F800`
`-2147158016`|Name: **InitializeErrorNoReadOnSource**
Message: `The operation could not be completed because you donot have read access on some of the fields in {0} record.`| @@ -2055,6 +2064,7 @@ |`0x80040396`
`-2147220586`|Name: **InvalidFileBadCharacters**
Message: `The file could not be uploaded because it contains invalid character(s)`| |`0x80090000`
`-2146893824`|Name: **InvalidFileRangeRequested**
Message: `Chunk range used in this call is either not valid or it is bigger than allowed {0} MB.`| |`0x80090015`
`-2146893803`|Name: **InvalidFileRangeRequestedSqlStorage**
Message: `{0} in multiple chunks is not supported for the files stored in the database.`| +|`0x80072524`
`-2147015388`|Name: **InvalidFileRecordsFound**
Message: `Invalid file records found for requested {0}`| |`0x80090011`
`-2146893807`|Name: **InvalidFileSasUrl**
Message: `SAS url has either expired or is invalid.`| |`0x800608CC`
`-2147088180`|Name: **InvalidFileType**
Message: `Invalid File Type.`| |`0x8004E01E`
`-2147164130`|Name: **InvalidFilterCriteriaForVisualization**
Message: `The visualization cannot be rendered for the given filter criteria.`| @@ -2326,7 +2336,7 @@ |`0x80048511`
`-2147187439`|Name: **InvalidTransformationParameterEmptyCollection**
Message: `The transformation parameter: {0} has an invalid input value length: {1}. The parameter length cannot be an empty collection.`| |`0x80040382`
`-2147220606`|Name: **InvalidTransformationParameterMapping**
Message: `The transformation parameter mapping defined is invalid. Check that the target attribute name exists.`| |`0x8004037c`
`-2147220612`|Name: **InvalidTransformationParameterMappings**
Message: `One or more transformation parameter mappings are invalid or do not match the transformation parameter description.`| -|`0x80048510`
`-2147187440`|Name: **InvalidTransformationParameterOutsideRange**
Message: `The transformation parameter: {0} has an invalid input value: {1}. The parameter is out of the permissible range: {2}. `| +|`0x80048510`
`-2147187440`|Name: **InvalidTransformationParameterOutsideRange**
Message: `The transformation parameter: {0} has an invalid input value: {1}. The parameter is out of the permissible range: {2}.`| |`0x80048512`
`-2147187438`|Name: **InvalidTransformationParameterOutsideRangeGeneric**
Message: `One or more input transformation parameter values are outside the permissible range: {0}.`| |`0x80048507`
`-2147187449`|Name: **InvalidTransformationParametersGeneric**
Message: `The transformation parameter: {0} has an invalid input value: {1}. The parameter must be of type: {2}.`| |`0x80048508`
`-2147187448`|Name: **InvalidTransformationParameterString**
Message: `The transformation parameter: {0} has an invalid input value: {1}. The parameter must be a string that is not empty.`| @@ -2450,7 +2460,7 @@ |`0x8004F050`
`-2147159984`|Name: **LayerDesiredOrderInvalidXMLDetail**
Message: `The LayerDesiredOrder parameter contains an invalid XML schema. Check the property [{0}].`| |`0x8004F052`
`-2147159982`|Name: **LayerDesiredOrderNotAllowedOnPatch**
Message: `The LayerDesiredOrder parameter cannot be used when importing a Patch. The parameter can only be used while importing a solution.`| |`0x8004F048`
`-2147159992`|Name: **LayerDesiredOrderNotSamePublisher**
Message: `The solution [{0}] was used in the LayerDesiredOrder parameter, but its publisher [{1}] does not match the publisher of the solution being installed: [{2}]. This parameter can be used only by solutions from the same publisher.`| -|`0x8004F065`
`-2147159963`|Name: **LayerDesiredOrderNotWhitelist**
Message: `The LayerDesiredOrder parameter is present in the import request of [{0}], but this solution is not allowed to use it. Solutions must be allow listed to use this feature.`| +|`0x8004F065`
`-2147159963`|Name: **LayerDesiredOrderNotWhitelist**
Message: `The LayerDesiredOrder parameter is present in the import request of [{0}], but this solution is not allowed to use it. Solutions must be allow (white) listed to use this feature.`| |`0x8004F047`
`-2147159993`|Name: **LayerDesiredOrderPendingUpgrade**
Message: `The solution [{0}] used in LayerDesiredOrder parameter has a pending upgrade. Please complete its upgrade before retrying this operation.`| |`0x8004F056`
`-2147159978`|Name: **LayerDesiredOrderPublisherNotAllowed**
Message: `The publisher [{0}] is not allowed to use the LayerDesiredOrder parameter.`| |`0x8004F058`
`-2147159976`|Name: **LayerDesiredOrderRestrictedSolution**
Message: `The LayerDesiredOrder parameter cannot be used on [{0}].`| @@ -2477,6 +2487,7 @@ |`0x80090438`
`-2146892744`|Name: **LinkedAttributeOptionSetValueMismatch**
Message: `OptionSet value {2} is not found in linked attribute optionset for attribute {0} of entity {1}`| |`0x80071120`
`-2147020512`|Name: **LinkedEntitiesAreNotAllowed**
Message: `The filter contains a link-entity with an invalid link-type. The link-type must be "Any" or "Not Any".`| |`0x80071143`
`-2147020477`|Name: **LinkEntityCountExceeded**
Message: `The profile could not be published because one or more tables exceed the allowed number of relationships of {1}. Please reduce the number of relationships for the following table(s): {0}.`| +|`0x80041d3a`
`-2147214022`|Name: **LinkEntityVirtualFilterNotPermitted**
Message: `RetrieveMultiple cannot accept LinkEntity which is virtual entity with filters defined outside of LinkEntity node. Move the filters inside.`| |`0x8004D239`
`-2147167687`|Name: **LiveAdminUnknownCommand**
Message: `Unknown administration command {0}`| |`0x8004D238`
`-2147167688`|Name: **LiveAdminUnknownObject**
Message: `Unknown administration target {0}`| |`0x8004B524`
`-2147175132`|Name: **LivePlatformEmailInvalidBody**
Message: `The "Body" parameter is blank or null`| @@ -2491,6 +2502,7 @@ |`0x80072454`
`-2147015596`|Name: **LocalDataSourceTimeOutError**
Message: `The operation timed out. Please try again.`| |`0x80072043`
`-2147016637`|Name: **LockdownOfUnmanagedSolutionImports**
Message: `This environment doesn't allow unmanaged customizations. This was a choice made by your admin, and certain actions won't be available or will be view only. Learn more: https://go.microsoft.com/fwlink/?linkid=2251006`| |`0x80072042`
`-2147016638`|Name: **LockdownOfUnmangedCustomization**
Message: `This environment doesn't allow unmanaged customizations. This was a choice made by your admin, and certain actions won't be available or will be view only. Learn more: https://go.microsoft.com/fwlink/?linkid=2251006`| +|`0x80072046`
`-2147016634`|Name: **LockdownOfUnmangedCustomizationForClusteredEnvironments**
Message: `This clustered environment doesn't allow unmanaged customizations. This was a choice made by your admin, and certain actions won't be available or will be view only.`| |`0x8004F703`
`-2147158269`|Name: **LockStatusNotValidForDynamicList**
Message: `Lock Status cannot be specified for a dynamic list.`| |`0x800608D2`
`-2147088174`|Name: **LogoImageNodeDoesNotExist**
Message: `Logo Image node in organization cache theme data doesnot exist.`| |`0x80040372`
`-2147220622`|Name: **LongParseRow**
Message: `The row is too long to import`| @@ -2562,7 +2574,7 @@ |`0x8006088C`
`-2147088244`|Name: **MailboxTrackingFolderMappingCannotBeUpdated**
Message: `The mailbox tracking folder mapping cannot be updated.`| |`0x8005E247`
`-2147098041`|Name: **MailboxUnsupportedEmailServerType**
Message: `Server-side synchronization for appointments, contacts, and tasks isn't supported for POP3 or SMTP server types. Select a supported email type or change the synchronization method for appointments, contacts, and tasks to None.`| |`0x80097303`
`-2146864381`|Name: **MalformODataAnnotationHeader**
Message: `Error identified on the 'odata.include-annotations' value inside the 'Prefer' header. Refer to the following link for more details: https://go.microsoft.com/fwlink/?linkid=2300109. See exception message for more details '{0}'.`| -|`0x80060383`
`-2147089533`|Name: **ManagedBpfDeletionInvalid**
Message: ` The business process flow is part of a managed solution and cannot be individually deleted. Uninstall the parent solution to remove the business process flow.`| +|`0x80060383`
`-2147089533`|Name: **ManagedBpfDeletionInvalid**
Message: `The business process flow is part of a managed solution and cannot be individually deleted. Uninstall the parent solution to remove the business process flow.`| |`0x8004A114`
`-2147180268`|Name: **ManagedIdentityCredentialSourceNotSupported**
Message: `The configured Credential Source for ManagedIdentity is not support`| |`0x8004A119`
`-2147180263`|Name: **ManagedIdentityPublisherRestriction**
Message: `ManagedIdentity cannot be assigned to a component from different publisher.`| |`0x80072457`
`-2147015593`|Name: **ManagedProcessDeletionError**
Message: `The process is part of a managed solution and cannot be individually deleted. Uninstall the parent solution to remove the process.`| @@ -2813,6 +2825,7 @@ |`0x8004E123`
`-2147163869`|Name: **OccurrenceSkipsOverBackward**
Message: `Cannot reschedule an occurrence of the recurring appointment if it skips over an earlier occurrence of the same appointment.`| |`0x8004E122`
`-2147163870`|Name: **OccurrenceSkipsOverForward**
Message: `Cannot reschedule an occurrence of the recurring appointment if it skips over a later occurrence of the same appointment.`| |`0x8004E121`
`-2147163871`|Name: **OccurrenceTimeSpanTooBig**
Message: `Cannot perform the operation. An instance is outside of series effective expansion range.`| +|`0x80040c0a`
`-2147218422`|Name: **ODataBatchChangeMultiplePartitionsNotSupported**
Message: `Request in OData $batch operations can't target more than one partition due to changeset transaction requirements. Requested partitions: '{0}'.`| |`0x80040c00`
`-2147218432`|Name: **ODataBatchChangeSetPartitionedRequestNotSupported**
Message: `Request '{0}' in OData $batch changesets is targeting a remote partition '{1}' instead of local. This is not supported. Please directly execute the $batch operation on targeted organization instead of routing through this one.`| |`0x80048d19`
`-2147185383`|Name: **ODataClientPayloadError**
Message: `Error identified in Payload provided by the user for Entity :'{0}', For more information on this error please follow this help link {2} ----> InnerException : {1}.`| |`0x8004B00C`
`-2147176436`|Name: **OfferingCategoryAndTokenNull**
Message: `Offer category and Billing Token are both missing, but at least one is required.`| @@ -2869,6 +2882,7 @@ |`0x80094007`
`-2146877433`|Name: **OptionSetValuesNotFound**
Message: `Could not find OptionSet values for Table: '{0}', AttributeMetadataId: '{1}'.`| |`0x80048402`
`-2147187710`|Name: **OptionValuePrefixOutOfRange**
Message: `CustomizationOptionValuePrefix must be a number between {0} and {1}`| |`0x80048d16`
`-2147185386`|Name: **OrderByColumnsMustBeUnique**
Message: `A column has been specified more than once in the order by list. Columns in the order by list must be unique.`| +|`0x80040c0d`
`-2147218419`|Name: **OrderByNotSubSequenceOfGroupByInMultiPartitionQuery**
Message: `Order by columns must be a subsequence of group by columns in multi-partition queries.`| |`0x8004804a`
`-2147188662`|Name: **OrganizationDataServiceDeprecatedError**
Message: `The Organization Data Service (OData v2.0 endpoint) has been removed. Please use the Dataverse Web API (OData v4.0) endpoint instead. See https://go.microsoft.com/fwlink/?linkid=2206384`| |`0x8004A104`
`-2147180284`|Name: **OrganizationDisabled**
Message: `The Dynamics 365 organization you are attempting to access is currently disabled. Please contact your system administrator`| |`0x8004B044`
`-2147176380`|Name: **OrganizationMigrationUnderway**
Message: `Organization migration is already underway.`| @@ -2903,8 +2917,8 @@ |`0x80040361`
`-2147220639`|Name: **OwnerValueNotMapped**
Message: `The owner value is not mapped`| |`0x80097379`
`-2146864263`|Name: **PackageEntityNotFound**
Message: `Package entity is not found in org, failed to validate dynamics billing context of workflow.`| |`0x8005F21A`
`-2147093990`|Name: **PageNotFound**
Message: `Page not found. The record might not exist, or the link might be incorrect.`| -|`0x80097505`
`-2146863867`|Name: **ParallelRequestsToFinOpsNotSupported**
Message: ` Concurrent sdk calls are not allowed. Please work with plugin owner to make sure multiple sdk calls in parallel are not made to avoid this error.`| -|`0x80048d41`
`-2147185343`|Name: **ParamNotValidDataType**
Message: `The supplied value is not a valid instance of data type. Check the source data for invalid values and update the correct data type. `| +|`0x80097505`
`-2146863867`|Name: **ParallelRequestsToFinOpsNotSupported**
Message: `Concurrent sdk calls are not allowed. Please work with plugin owner to make sure multiple sdk calls in parallel are not made to avoid this error.`| +|`0x80048d41`
`-2147185343`|Name: **ParamNotValidDataType**
Message: `The supplied value is not a valid instance of data type. Check the source data for invalid values and update the correct data type.`| |`0x80041d23`
`-2147214045`|Name: **ParentBusinessDoesNotExist**
Message: `The parent business Id is invalid.`| |`0x8003F455`
`-2147224491`|Name: **ParentCaseNotAllowedAsAChildCase**
Message: `You can't add a parent case as a child case`| |`0x80044905`
`-2147202811`|Name: **ParentChildMetricIdDiffers**
Message: `The metricid of child goal should be same as the parent goal.`| @@ -2937,7 +2951,7 @@ |`0x8004431A`
`-2147204326`|Name: **PicklistValueOutOfRange**
Message: `The picklist value is out of the range.`| |`0x80049949`
`-2147182263`|Name: **PicklistValueOutOfRangeRecycleBin**
Message: `Picklist value not valid, please add the invalid value back to the picklist before restoring record. See inner exception for details.`| |`0x8005F212`
`-2147093998`|Name: **PingFailureErrorCode**
Message: `The system couldn't reconnect with your {#Brand_CRM} server.`| -|`0x8004419e`
`-2147204706`|Name: **PipelineCancellationRequested**
Message: `The operation is cancelled as requested by the source - Sandbox`| +|`0x8004419e`
`-2147204706`|Name: **PipelineCancellationRequested**
Message: `The request has been cancelled because it originated from a plugin that has already exceeded the 2 minute timeout limit.`| |`0x80097622`
`-2146863582`|Name: **PlatformNotSupported**
Message: `The specified call has encountered an PlatformNotSupportedException, Retrying the operation may succeed or you can specify a request header "x-ms-select-stable-service" to be directed to the stable endpoint.`| |`0x80072044`
`-2147016636`|Name: **PlatformSkuLockedForCustomization**
Message: `This is a platform environment and it only allows customizations from authorized Microsoft solutions.`| |`0x8004418f`
`-2147204721`|Name: **PluginAssemblyContentSizeExceeded**
Message: `"The assembly content size '{0} bytes' has exceeded the maximum value allowed for isolated plug-ins '{1} bytes'."`| @@ -2960,7 +2974,7 @@ |`0x80091007`
`-2146889721`|Name: **PluginSecureStoreTPSAssemblyNotRegistered**
Message: `Assembly is not registered in TPS`| |`0x80091009`
`-2146889719`|Name: **PluginSecureStoreTPSClient**
Message: `Unable to create TPS Client`| |`0x80091006`
`-2146889722`|Name: **PluginSecureStoreTPSKeyVaultUnconfigured**
Message: `KeyVaultURI was not configured for an Assembly in TPS`| -|`0x80081118`
`-2146954984`|Name: **PluginTypeDisabled**
Message: `Plugin type {0} has been disabled. Please disable the steps registered on this plugin type. To re-enable plugin type, please contact Microsoft Dynamics 365 technical support.`| +|`0x80081118`
`-2146954984`|Name: **PluginTypeDisabled**
Message: `Plugin type '{0}' has been disabled. Please disable the steps registered on this plugin type. To re-enable plugin type, please contact Microsoft Dynamics 365 technical support.`| |`0x8004417C`
`-2147204740`|Name: **PluginTypeMustBeUnique**
Message: `Multiple plug-in types from the same assembly and with the same typename are not allowed.`| |`0x80048116`
`-2147188458`|Name: **POAOperationConcurrentRequested**
Message: `More than one concurrent {0} requests detected for an Entity {1} and ObjectTypeCode {2}.`| |`0x80090428`
`-2146892760`|Name: **PolymorphicLookupNotSupportedInSolutionAwareEntity**
Message: `The entity '{0}' is solution aware and cannot include the polymorphic lookup.`| @@ -3010,13 +3024,14 @@ |`0x80041153`
`-2147217069`|Name: **PrivilegeChecker_CannotCreateRoleWithActiveRun**
Message: `Cannot create role using an active privilege checker run.`| |`0x80041152`
`-2147217070`|Name: **PrivilegeChecker_CannotStartAnotherPrivilegeChecker**
Message: `A Privilege Checker run is already active for the specified user {0}.`| |`0x80041151`
`-2147217071`|Name: **PrivilegeChecker_FeatureNotReady**
Message: `The Privilege Checker feature is not ready to be used yet.`| +|`0x80041154`
`-2147217068`|Name: **PrivilegeChecker_OnlyUsersCanUse**
Message: `Only users can be traced for the privilege checker tool.`| |`0x80040276`
`-2147220874`|Name: **PrivilegeCreateIsDisabledForOrganization**
Message: `Privilege Create is disabled for organization.`| |`0x80040220`
`-2147220960`|Name: **PrivilegeDenied**
Message: `{5} {2}(Id = {3}) is missing {0} privilege on {1} entity(OTC={4}). Consider adding missing privilege to one of the principal (user/team) roles for the request to succeed.`| |`0x80045054`
`-2147200940`|Name: **ProcessActionDoesNotExist**
Message: `Process Action does not exist.`| |`0x80045053`
`-2147200941`|Name: **ProcessActionIsNotActive**
Message: `Process Action should be active to be used on Action Step.`| |`0x80060379`
`-2147089543`|Name: **ProcessActionNameIncorrect**
Message: `Process Action “{0}” does not match the name configured: “{1}”. Contact your system administrator to check the configuration metadata if the error persists.`| |`0x80045058`
`-2147200936`|Name: **ProcessActionWithInvalidInputOutputParam**
Message: `Process Action contains a parameter that is not supported. Name: {0}, type: {1}, direction: {2}.`| -|`0x80045057`
`-2147200937`|Name: **ProcessActionWithInvalidInputParam**
Message: `Process Action contains a field in input parameter that is unsupported on Action Steps. Refer to {0} `| +|`0x80045057`
`-2147200937`|Name: **ProcessActionWithInvalidInputParam**
Message: `Process Action contains a field in input parameter that is unsupported on Action Steps. Refer to {0}`| |`0x80045056`
`-2147200938`|Name: **ProcessActionWithInvalidOutputParam**
Message: `Process Action contains a field in output parameter that is unsupported on Action Steps. Refer to {0}.`| |`0x80060380`
`-2147089536`|Name: **ProcessActionWorkflowNotEnabledForOnDemand**
Message: `Process Action or Workflow must be enabled for on-demand execution to be available for action steps.`| |`0x80060372`
`-2147089550`|Name: **ProcessControlDoesNotExistOnForm**
Message: `Process Control does not exist on form`| @@ -3027,7 +3042,7 @@ |`0x80072553`
`-2147015341`|Name: **ProcessImageFailure**
Message: `Error occured when processing image. Reason: {0}`| |`0x80060370`
`-2147089552`|Name: **ProcessInstanceNotFound**
Message: `Supplied process instance {0} does not match any existing instance on this entity {1}`| |`0x80060398`
`-2147089512`|Name: **ProcessNameContainsInvalidCharacters**
Message: `The business process name contains invalid characters.`| -|`0x80060418`
`-2147089384`|Name: **ProcessNameIsNullOrEmpty**
Message: `The business process flow name is NULL or empty. `| +|`0x80060418`
`-2147089384`|Name: **ProcessNameIsNullOrEmpty**
Message: `The business process flow name is NULL or empty.`| |`0x80060461`
`-2147089311`|Name: **ProcessStageIdIsEmpty**
Message: `Validation error: Primary Stage ID cannot be empty.`| |`0x8004F995`
`-2147157611`|Name: **ProductCanOnlyBeUpdatedInDraft**
Message: `Product, product family and bundle can only be updated in draft state.`| |`0x80061006`
`-2147086330`|Name: **ProductCloneFailed**
Message: `You can't clone a child record of a retired product family.`| @@ -3062,6 +3077,9 @@ |`0x80061100`
`-2147086080`|Name: **ProfileRuleMissingRuleCriteria**
Message: `You can't activate this rule until you resolve any missing rule criteria information in the rule items.`| |`0x80061103`
`-2147086077`|Name: **ProfileRulePublishedByOwner**
Message: `Your rule can't be activated until the current active rule is deactivated. The active rule can only be deactivated by the rule owner.`| |`0x80061101`
`-2147086079`|Name: **ProfileRuleWorkflowAuthorGenericError**
Message: `An error occurred while authoring workflow. Please fix workflow definition and try again.`| +|`0x80060569`
`-2147089047`|Name: **PromptFieldAdditionNotAllowed**
Message: `More than 5 columns of type Prompt filed are not allowed.`| +|`0x80060567`
`-2147089049`|Name: **PromptFieldAIModelIDNotValid**
Message: `Provided AIModel Id as part of Formula defination {0} is not guid`| +|`0x80060568`
`-2147089048`|Name: **PromptFieldDataTypeNotValid**
Message: `The {0} data type isn’t valid for the prompt field.`| |`0x80160045`
`-2146041787`|Name: **PropertyBoundToNonExistingAttribute**
Message: `Property {0} is bound to a non-existent attribute {1} in entity {2}. More Details:{3}`| |`0x80160051`
`-2146041775`|Name: **PropertyBoundToNonExistingAttributeInPrimaryAndRelatedEntitiesAndNotExistingAsFormParameter**
Message: `Property {0} is bound to a non-existent attribute {1} in current entity {2} or in related entity {3} and also not present as part of formParameters. More Details:{4}`| |`0x80160046`
`-2146041786`|Name: **PropertyBoundToNonExistingEntity**
Message: `Property {0} is bound to an attribute in non-existent entity. More Details:{1}`| @@ -3271,7 +3289,7 @@ |`0x80048469`
`-2147187607`|Name: **RelationshipRoleNodeNumberInvalid**
Message: `There must be two entity relationship role nodes when creating a new many-to-many entity relationship.`| |`0x80048835`
`-2147186635`|Name: **RelationshipSchemaNameConflictWithFieldNameOnReferencedEntity**
Message: `RelationshipName {0} conflict with attribute name on entity {1} (entityid={2}). Please use unique name for relationship.`| |`0x80090421`
`-2146892767`|Name: **RelationshipsMissingFromCreatePolymorphicLookupAttribute**
Message: `The OneToManyRelationships property must contain at least one relationship. Lookup attribute name '{0}', Relationships count '{1}'.`| -|`0x8005F221`
`-2147093983`|Name: **RelatioshipAlreadyExists**
Message: `Selected Relationship {0} for entity already exists in profile under profile item association {1}. `| +|`0x8005F221`
`-2147093983`|Name: **RelatioshipAlreadyExists**
Message: `Selected Relationship {0} for entity already exists in profile under profile item association {1}.`| |`0x800608B8`
`-2147088200`|Name: **ReloginRequiredForSharePoint**
Message: `Relogin required. To continue use SharePoint integration, you need to relogin.`| |`0x8004F075`
`-2147159947`|Name: **RemoveActiveCustomizationsFailedForEntity**
Message: `Entity '{0}' validation failed for property '{1}' which has value '{2}' on Active layer and value '{3}' on solution '{4}' layer. The values must match.`| |`0x8004F059`
`-2147159975`|Name: **RemoveActiveCustomizationsNotSupported**
Message: `RemoveActiveCustomizations is not supported for components of type {0}.`| @@ -3314,6 +3332,7 @@ |`0x80044302`
`-2147204350`|Name: **RequestIsNotAuthenticated**
Message: `Request is not authenticated.`| |`0x8009732B`
`-2146864341`|Name: **RequestIsNotValidCustomApi**
Message: `{0} is not a valid Custom API.`| |`0x8004418a`
`-2147204726`|Name: **RequestLengthTooLarge**
Message: `Request message length is too large.`| +|`0x80040c0b`
`-2147218421`|Name: **RequestRequirePartitionId**
Message: `Entity {1} is a partitioned entity. {0} Request requires partition id to be provided.`| |`0x80081009`
`-2146955255`|Name: **RequiredBundleItemCannotBeUpdated**
Message: `You can't delete this bundle item because it's a required product in the bundle.`| |`0x80081008`
`-2146955256`|Name: **RequiredBundleProductCannotBeDeleted**
Message: `You can't delete this product record because it's a required product in a bundle.`| |`0x8004F029`
`-2147160023`|Name: **RequiredChildReportHasOtherParent**
Message: `A category option for the reports was not found.`| @@ -3325,14 +3344,14 @@ |`0x80160032`
`-2146041806`|Name: **RequiredPropertyDeclarationIsMissing**
Message: `Property {0} is required, but the declaration is missing. More Details:{1}`| |`0x8004F600`
`-2147158528`|Name: **RequireValidImportMapForUpdate**
Message: `The update operation cannot be completed because the import map used for the update is invalid.`| |`0x80005050`
`-2147463088`|Name: **RestoreJobInvalid**
Message: `Deleted item reference or bulk restore job not found for job id '{0}'`| -|`0x80072533`
`-2147015373`|Name: **RestrictCustomPluginForVE**
Message: `Custom plugins are not allowed for Virtual Entity. `| +|`0x80072533`
`-2147015373`|Name: **RestrictCustomPluginForVE**
Message: `Custom plugins are not allowed for Virtual Entity.`| |`0x8004F022`
`-2147160030`|Name: **RestrictedSolutionName**
Message: `The solution unique name '{0}' is restricted and can only be used by internal solutions.`| |`0x8004A121`
`-2147180255`|Name: **RestrictedToAccessCDSLiteNonOdataEndpoint**
Message: `The Application with Id:{appId} can only use Odata endpoint to access APIs of Dataverse for Teams organization.`| |`0x80044152`
`-2147204782`|Name: **RestrictInheritedRole**
Message: `Inherited roles cannot be modified.`| |`0x80097260`
`-2146864544`|Name: **RestrictNotSupportedDueToElasticTableInParentGraph**
Message: `Restrict configuration for delete is not supported as there is a cascade relationship between elastic table {0} and sql table {1}.`| |`0x80090303`
`-2146893053`|Name: **RestrictSynchronousCustomPluginForVECUDEvents**
Message: `Only Asynchronous plugin steps are allowed for virtual entity external events.`| -|`0x80072535`
`-2147015371`|Name: **RestrictVEInBatch**
Message: `Write operation for Virtual Entity is not allowed in Batch request. `| -|`0x80072534`
`-2147015372`|Name: **RestrictVEPluginOnNestedPipelineAtRunTime**
Message: `Custom plugin execution is not allowed in nested pipeline for Virtual Entity. `| +|`0x80072535`
`-2147015371`|Name: **RestrictVEInBatch**
Message: `Write operation for Virtual Entity is not allowed in Batch request.`| +|`0x80072534`
`-2147015372`|Name: **RestrictVEPluginOnNestedPipelineAtRunTime**
Message: `Custom plugin execution is not allowed in nested pipeline for Virtual Entity.`| |`0x80097250`
`-2146864560`|Name: **RetainNotSupportedForSQLAudits**
Message: `Retain is not supported for SQL Audits.`| |`0x80048d22`
`-2147185374`|Name: **RetentionDisabledOrg**
Message: `Your admin has disabled long term retention for this environment. Please contact your admin to enable an environment for long term retention.`| |`0x80048d28`
`-2147185368`|Name: **RetentionPolicyRescheduleError**
Message: `The parameter entered is invalid. Parameter name: {0}`| @@ -3458,17 +3477,18 @@ |`0x80043800`
`-2147207168`|Name: **SalesPeopleEmptySalesPerson**
Message: `Parent salesperson cannot be empty`| |`0x80043805`
`-2147207163`|Name: **SalesPeopleManagerNotAllowed**
Message: `Territory manager cannot belong to other territory`| |`0x80072007`
`-2147016697`|Name: **SameSolutionCircularDependenciesIdentified**
Message: `Circular dependencies were identified for this solution.`| -|`0x80048840`
`-2147186624`|Name: **SampleDataIsNotUninstalled**
Message: `InitialSolutionSampleDataState is not Uninstalled. :{0} `| +|`0x80048840`
`-2147186624`|Name: **SampleDataIsNotUninstalled**
Message: `InitialSolutionSampleDataState is not Uninstalled. :{0}`| |`0x80044171`
`-2147204751`|Name: **SandboxClientPluginTimeout**
Message: `The plug-in execution failed because the operation has timed-out at the Sandbox Client.`| |`0x8004418e`
`-2147204722`|Name: **SandboxHostNotAvailable**
Message: `The plug-in execution failed because no Sandbox Hosts are currently available. Please check that you have a Sandbox server configured and that it is running.`| |`0x80044172`
`-2147204750`|Name: **SandboxHostPluginTimeout**
Message: `The plug-in execution failed because the operation has timed-out at the Sandbox Host.`| |`0x80044194`
`-2147204716`|Name: **SandboxHostSubnetDelegationFailed**
Message: `The plug-in execution failed because your organization's subnet delegation configuration may be incorrect. To fix the configuration, contact your tenant administrator. Please refer to this document: https://go.microsoft.com/fwlink/?linkid=2195693`| +|`0x8004029B`
`-2147220837`|Name: **SandboxMessageSizeExceeded**
Message: `"Message size exceeded when sending context to Sandbox. Message size: '{0}'Mb"`| |`0x80081115`
`-2146954987`|Name: **SandboxPluginDisabled**
Message: `Sandbox Plug-in execution is disabled.`| |`0x80044174`
`-2147204748`|Name: **SandboxSdkListenerStartFailed**
Message: `The plug-in execution failed because the Sandbox Client encountered an error during initialization.`| |`0x8004418d`
`-2147204723`|Name: **SandboxWorkerNotAvailable**
Message: `The plug-in execution failed because the Sandbox Worker process crashed. This is typically due to an error in the plug-in code. Please refer to this document: https://go.microsoft.com/fwlink/?linkid=2189390`| |`0x80081111`
`-2146954991`|Name: **SandboxWorkerPluginExecuteTimeout**
Message: `Didn’t receive a response from the {0} plug-in within the 2:20-minute limit.`| |`0x80044173`
`-2147204749`|Name: **SandboxWorkerPluginTimeout**
Message: `The plug-in execution failed because the operation has timed-out at the Sandbox Worker.`| -|`0x80081116`
`-2146954986`|Name: **SandboxWorkerThrottleLimit**
Message: `Maximum processes allocated for plug-in business logic exceeded. Fatal errors in plug-ins for this environment have occurred {0} times in the last {1} minutes. Each error requires an additional process to recover. Processes for plug-ins are being recycled. All plug-ins for this environment will fail during this period. More information: https://go.microsoft.com/fwlink/?linkid=2038718 `| +|`0x80081116`
`-2146954986`|Name: **SandboxWorkerThrottleLimit**
Message: `Maximum processes allocated for plug-in business logic exceeded. Fatal errors in plug-ins for this environment have occurred {0} times in the last {1} minutes. Each error requires an additional process to recover. Processes for plug-ins are being recycled. All plug-ins for this environment will fail during this period. More information: https://go.microsoft.com/fwlink/?linkid=2038718`| |`0x8004026b`
`-2147220885`|Name: **SaveAsDraftAppointmentNotAllowed**
Message: `AllowSaveAsDraftAppointment is turned off.`| |`0x8005F209`
`-2147094007`|Name: **SaveDataFileErrorOutOfSpace**
Message: `Try this action again. If the problem continues, check the {0} for solutions or contact your organization's {#Brand_CRM} Administrator. Finally, you can contact {1}.`| |`0x80047017`
`-2147192809`|Name: **SavedQueryIsNotCustomizable**
Message: `The specified view is not customizable`| @@ -3559,7 +3579,7 @@ |`0x8004F0F4`
`-2147159820`|Name: **SharePointUnableToRetrieveGroup**
Message: `Unable to retrieve the group {0} from SharePoint.`| |`0x8004F301`
`-2147159295`|Name: **SharePointUrlHostValidator**
Message: `The URL cannot be resolved into an IP.`| |`0x8004F306`
`-2147159290`|Name: **SharePointUrlIsRootWebValidator**
Message: `The URL is not valid. The URL must be a valid site collection and cannot include a subsite. The URL must be in a valid form, such as http://SharePointServer/sites/CrmSite.`| -|`0x800608B6`
`-2147088202`|Name: **SharePointVersionUnsupported**
Message: `Microsoft Dynamics 365 cannot connect to Sharepoint as the Sharepoint Version is unsupported. Install the correct version, and then try again. `| +|`0x800608B6`
`-2147088202`|Name: **SharePointVersionUnsupported**
Message: `Microsoft Dynamics 365 cannot connect to Sharepoint as the Sharepoint Version is unsupported. Install the correct version, and then try again.`| |`0x80071016`
`-2147020778`|Name: **SimilarityRuleDisabled**
Message: `No similarity rule active for this entity.`| |`0x80071018`
`-2147020776`|Name: **SimilarityRuleFCBOff**
Message: `Similarity rules not enabled.`| |`0x80160040`
`-2146041792`|Name: **SimplePropertyCannotHaveChildNodes**
Message: `Simple property {0} cannot have child nodes. More Details:{1}`| @@ -3586,16 +3606,16 @@ |`0x80071151`
`-2147020463`|Name: **SolutionConcurrencyFailure**
Message: `The solution installation or removal failed due to the installation or removal of another solution at the same time. Please try again later.`| |`0x8004701C`
`-2147192804`|Name: **SolutionConfigurationPageMustBeHtmlWebResource**
Message: `The solution configuration page must exist within the solution it represents.`| |`0x8004F080`
`-2147159936`|Name: **SolutionContextNotSupported**
Message: `This method doesn't only support SolutionContexts used to install managed solutions. Unsupported: [{0}]`| -|`0x80040c04`
`-2147218428`|Name: **SolutionDeleteNotPermittedOnSecondary**
Message: ` Solution '{0}' with version '{1}' is present organization(s) with ID(s) '{2}'. Solution should be deleted on primary and on organizationss with higher secondary index before the current secondary organization.`| +|`0x80040c04`
`-2147218428`|Name: **SolutionDeleteNotPermittedOnSecondary**
Message: `Solution '{0}' with version '{1}' in mode '{2}' exists on secondary organization(s) with id(s) '{3}'. Solution should be deleted on primary and on organizationss with higher secondary index before the current secondary organization.`| |`0x80048543`
`-2147187389`|Name: **SolutionImportCauseTimeout**
Message: `The operation timed out. This may be because a solution is currently being imported into this environment. Please try again after the solution import is completed. Solutions should be imported outside of working hours if possible.`| -|`0x80040c01`
`-2147218431`|Name: **SolutionInstallNotPermitted**
Message: ` Solution '{0}' with version '{1}' is missing on secondary organization(s) with id(s) '{2}'. Solution should be applied on all secondary organizations before primary.`| +|`0x80040c01`
`-2147218431`|Name: **SolutionInstallNotPermitted**
Message: `Solution '{0}' with version '{1}' in mode '{2}' is missing on secondary organization(s) with id(s) '{3}'. Solution should be applied on floor secondary organization before install.`| |`0x80072003`
`-2147016701`|Name: **SolutionRestrictedAttributes**
Message: `Component cannot be created because it already has solution-aware columns. Entity: {0}, Existing Attribute: {1}`| |`0x80097603`
`-2146863613`|Name: **SolutionSignatureVerifiedRequired**
Message: `Digital Signature verification required for importing solution with name {0} and publisher name {1}.`| |`0x8004F023`
`-2147160029`|Name: **SolutionUniqueNameViolation**
Message: `The solution unique name '{0}' is already being used and cannot be used again.`| -|`0x80040c02`
`-2147218430`|Name: **SolutionUpdateNotPermitted**
Message: ` Solution '{0}' with version '{1}' is missing on active secondary organization(s) with ID(s) '{2}' that have a lower secondary index than the current one. The solution must be applied to these secondary organizations before update.`| +|`0x80040c02`
`-2147218430`|Name: **SolutionUpdateNotPermitted**
Message: `Solution '{0}' with version '{1}' in mode '{2}' is missing on secondary organization(s) with id(s) '{3}'. Solution should be applied on floor secondary organization before update.`| |`0x8004F046`
`-2147159994`|Name: **SolutionUpgradeFailed**
Message: `Solution Upgrade action failed after import as holding. InnerException is: {1}.`| |`0x8004853B`
`-2147187397`|Name: **SolutionUpgradeNotAvailable**
Message: `"The {0} solution doesn’t have an upgrade that is ready to be applied."`| -|`0x80040c03`
`-2147218429`|Name: **SolutionUpgradeNotPermitted**
Message: ` Solution '{0}' with version '{1}' is missing on active secondary organization(s) with ID(s) '{2}' that have a lower secondary index than the current one. The solution must be applied to these secondary organizations before upgrade.`| +|`0x80040c03`
`-2147218429`|Name: **SolutionUpgradeNotPermitted**
Message: `Solution '{0}' with version '{1}' in mode '{2}' is missing on secondary organization(s) with id(s) '{3}'. Solution should be applied on floor secondary organization before upgrade.`| |`0x8004803C`
`-2147188676`|Name: **SolutionUpgradeOfApiManagedSolutionError**
Message: `The import has failed because an ApiManaged solution cannot be updated.`| |`0x8004853C`
`-2147187396`|Name: **SolutionUpgradeWrongSolutionSelected**
Message: `"To use this action, you must first select the old solution and then try again."`| |`0x80044340`
`-2147204288`|Name: **SourceAttributeHeaderTooBig**
Message: `Column headers must be 160 or fewer characters. Fix the column headers, and then run Data Migration Manager again.`| @@ -3604,7 +3624,7 @@ |`0x8004033d`
`-2147220675`|Name: **SourceEntityMappedToMultipleTargets**
Message: `This source entity is mapped to more than one Microsoft Dynamics 365 entity. Remove any duplicate mappings, and then import this data map again.`| |`0x8006072A`
`-2147088598`|Name: **SPAccountNameFetchFailure**
Message: `Exception occured while fetching account name from Sharepoint.`| |`0x80060760`
`-2147088544`|Name: **SPAllFilesErrorScenario**
Message: `One or more sites in all files view of SharePointDocument failed.`| -|`0x8006070A`
`-2147088630`|Name: **SPBadLockInFileCollectionErrorCode**
Message: `The file in the collection has bad lock `| +|`0x8006070A`
`-2147088630`|Name: **SPBadLockInFileCollectionErrorCode**
Message: `The file in the collection has bad lock`| |`0x80060767`
`-2147088537`|Name: **SPCertificationError**
Message: `S2STokenIssuer certificate not found.`| |`0x80060761`
`-2147088543`|Name: **SPConnectionFailure**
Message: `Failed to connect to SharePointSite.`| |`0x80060720`
`-2147088608`|Name: **SPCurrentDocumentLocationDisabledErrorCode**
Message: `Current document location is disabled by administrator`| @@ -3709,6 +3729,9 @@ |`0x80048292`
`-2147188078`|Name: **SrsDataConnectorNotInstalledUpload**
Message: `This report can’t upload because Dynamics 365 Reporting Extensions, required components for reporting, are not installed on the server that is running Microsoft SQL Server Reporting Services.`| |`0x80072570`
`-2147015312`|Name: **SSM_MaxPCI_Exceeded**
Message: `Please re-login to refresh your session.`| |`0x80072571`
`-2147015311`|Name: **SSM_RefreshToken_Failed**
Message: `Failed to refresh login session.`| +|`0x8005E280`
`-2147097984`|Name: **SSSACSEndpointUrlUpdateRequiresExchangeOrTenantAdmin**
Message: `The Azure Communication Service (ACS) Endpoint URL must be supplied by an Exchange Administrator or Office 365 Global Administrator. Please see https://go.microsoft.com/fwlink/?linkid=2306201 to learn more.`| +|`0x8005E281`
`-2147097983`|Name: **SSSACSInvalidDeploymentType**
Message: `Azure Communication Service (ACS) integration is only available for Online deployments. Please see https://go.microsoft.com/fwlink/?linkid=2306201 to learn more.`| +|`0x8005E279`
`-2147097991`|Name: **SSSACSInvalidEmailServerProfileType**
Message: `Azure Communication Service (ACS) integration can only be enabled for Exchange Online email server profiles. Please see https://go.microsoft.com/fwlink/?linkid=2306201 to learn more.`| |`0x8005E278`
`-2147097992`|Name: **SSSGmailSignInInvalidRedirectUri**
Message: `Sign-in failed due to an invalid or missing redirect uri specified in the associated Google web application client configuration. For more information on how to fix this error, see https://go.microsoft.com/fwlink/?linkid=2292432`| |`0x80060451`
`-2147089327`|Name: **StageEntityIsNull**
Message: `Validation error: stage entity cannot be null.`| |`0x80060454`
`-2147089324`|Name: **StageIdIsEmpty**
Message: `Validation error: Stage ID cannot be empty.`| @@ -3719,7 +3742,7 @@ |`0x80097700`
`-2146863360`|Name: **StageSolutionUnmanagedRootsConversionWarning**
Message: `One or more components in the solution already exist in your system as unmanaged components. Importing this solution will convert the components into managed components for this solution. Warning: Any customizations that your organization has made to these components will be lost. After the import operation is complete, managed solutions from other solution publishers will be unable to update these components.`| |`0x80060470`
`-2147089296`|Name: **StandAloneBpfNotActivated**
Message: `Stand Alone BPF must be activated on Flows page.`| |`0x80055006`
`-2147135482`|Name: **StandardSlaTypeNotApplicable**
Message: `Standard SLA Type is only supported for incident entity. Current entity object type code is {0}. Please pass appropriate SLA Type or entity`| -|`0x80048d21`
`-2147185375`|Name: **StatementConflictedWithAConstraint**
Message: `Statement conflicted with a constraint. `| +|`0x80048d21`
`-2147185375`|Name: **StatementConflictedWithAConstraint**
Message: `Statement conflicted with a constraint.`| |`0x8004F857`
`-2147157929`|Name: **StateTransitionActivateNewStatus**
Message: `You can't activate this record because of the status transition rules.Contact your system administrator.`| |`0x8004F855`
`-2147157931`|Name: **StateTransitionActiveToCanceled**
Message: `Because of the status transition rules, you can't cancel the case in the current status.Change the case status, and then try canceling it, or contact your system administrator.`| |`0x8004F854`
`-2147157932`|Name: **StateTransitionActiveToResolve**
Message: `Because of the status transition rules, you can't resolve a case in the current status.Change the case status, and then try resolving it, or contact your system administrator.`| @@ -3740,6 +3763,13 @@ |`0x8004D292`
`-2147167598`|Name: **StringAttributeIndexError**
Message: `One of the attributes of the selected entity is a part of database index and so it cannot be greater than 900 bytes.`| |`0x80044331`
`-2147204303`|Name: **StringLengthTooLong**
Message: `A validation error occurred. A string value provided is too long.`| |`0x80090429`
`-2146892759`|Name: **StringOrBinaryTruncation**
Message: `String or binary data would be truncated in table '{0}', column '{1}'. Truncated value: {2}.`| +|`0x80090929`
`-2146891479`|Name: **StubUserImpersonationCreationUnauthorized**
Message: `Impersonable Stub Users can only be created by authorized applications. Contact your system administrator for assistance.`| +|`0x80090924`
`-2146891484`|Name: **StubUserImpersonationEnablementUnauthorized**
Message: `Impersonation for Stub Users can only be set by authorized applications. Contact your system administrator for assistance.`| +|`0x80090927`
`-2146891481`|Name: **StubUserImpersonationFeatureNotEnabled**
Message: `This operation couldn't be completed because the Stub User Impersonation feature isn’t enabled for your organization.`| +|`0x80090928`
`-2146891480`|Name: **StubUserImpersonationInvalidUserConfiguration**
Message: `Impersonable Stub Users can only be created in disabled state.`| +|`0x80090926`
`-2146891482`|Name: **StubUserImpersonationInvalidUserType**
Message: `Updated value of SystemManagedUserType={0} is not permitted.`| +|`0x80090923`
`-2146891485`|Name: **StubUserImpersonationMustToggleStandalone**
Message: `Toggling impersonation for a Stub User must be done in a standalone Update request. Modify other user attributes in another Update request.`| +|`0x80090925`
`-2146891483`|Name: **StubUserImpersonationUnauthorized**
Message: `User with SystemUserId={0}, IsDisabled={1} and SystemManagedUserType={2} is not valid for toggling Stub User Impersonation.`| |`0x80048537`
`-2147187401`|Name: **SubcomponentDoesNotExist**
Message: `Subcomponent {0} of type {1} is not found in the organization, it can not be added to the SolutionComponents.`| |`0x80048536`
`-2147187402`|Name: **SubcomponentMissingARoot**
Message: `Subcomponent {0} cannot be added to the solution because the root component {1} is missing.`| |`0x80043e02`
`-2147205630`|Name: **SubjectDoesNotExist**
Message: `Subject does not exist.`| @@ -3762,6 +3792,7 @@ |`0x8004F657`
`-2147158441`|Name: **SystemFormCopyUnmatchedFormType**
Message: `The form type of the SourceId is not valid for the Target entity.`| |`0x8004F658`
`-2147158440`|Name: **SystemFormCreateWithExistingLabel**
Message: `The id '{0}' for label '{1}' in the form with id: '{2}' is already in use by another form. Replace the id with a different unique value.`| |`0x8004F655`
`-2147158443`|Name: **SystemFormImportMissingRoles**
Message: `The unmanaged solution you are importing has displaycondition XML attributes that refer to security roles that are missing from the target system. Any displaycondition attributes that refer to these security roles will be removed.`| +|`0x80090921`
`-2146891487`|Name: **SystemUserAttributeUpdateNotAllowedFromCreate**
Message: `SystemUser updates from plugins registered on PostCreate of SystemUser are not allowed to change certain attributes ({1}), as their values could depend on components which are not yet created. Consider making the updates async.`| |`0x8004A112`
`-2147180270`|Name: **SystemUserDisabled**
Message: `The system user was disabled therefore the ticket expired.`| |`0x80044357`
`-2147204265`|Name: **SystemUserUpdateNotAllowedFromCreate**
Message: `SystemUser updates are not allowed from plugins registered on PostCreate of SystemUser as it could depend on components which are not yet created. Consider making them async.`| |`0x8009049E`
`-2146892642`|Name: **TableTypeMismatch**
Message: `There is a mismatch of values among TableType '{0}', DataProviderId '{1}' and DataSourceId '{2}'.`| @@ -3914,7 +3945,7 @@ |`0x800404c4`
`-2147220284`|Name: **unManagederrorprocessingfilternodes**
Message: `An unexpected error occurred processing the filter nodes.`| |`0x800404ae`
`-2147220306`|Name: **unManagedfieldnotvalidatedbyplatform**
Message: `A field was not validated by the platform.`| |`0x800404ab`
`-2147220309`|Name: **unManagedfilterindexoutofrange**
Message: `The filter index is out of range.`| -|`0x80048306`
`-2147187962`|Name: **unManagedIdsAccessDenied**
Message: `{0} with id {1} does not have {2} right(s) for record with id {3} of entity {4}. Consider assigning a role with the required access level to the user or team. For further troubleshooting, please work with a system administrator to use the Access Checker tool on this record: {5}. More details: {6}`| +|`0x80048306`
`-2147187962`|Name: **unManagedIdsAccessDenied**
Message: `{0} with id {1} does not have {2} right(s) for record with id {3} of entity {4}. Consider assigning a role with the {7} level to the user or team. For further troubleshooting, please work with a system administrator to use the Access Checker tool on this record: {5}. More details: {6}`| |`0x80040511`
`-2147220207`|Name: **unManagedidsaccounthaschildopportunities**
Message: `The Account has child opportunities.`| |`0x8004350a`
`-2147207926`|Name: **unManagedidsactivitydurationdoesnotmatch**
Message: `Activity duration does not match start/end time`| |`0x80043509`
`-2147207927`|Name: **unManagedidsactivityinvalidduration**
Message: `Invalid activity duration`| @@ -4347,7 +4378,7 @@ |`0x80041d24`
`-2147214044`|Name: **UserLoopExists**
Message: `A manager for this user cannot be set because an existing relationship in the management hierarchy is causing a circular relationship. This is usually caused by a manual edit of the Microsoft Dynamics 365 database. To fix this, the hierarchy in the database must be changed to remove the circular relationship.`| |`0x8005E24D`
`-2147098035`|Name: **UserNameRequiredForImpersonation**
Message: `Type in a user name and save again`| |`0x8005F111`
`-2147094255`|Name: **UserNeverLoggedIntoYammer**
Message: `To follow other users, you must be logged in to Yammer. Log in to your Yammer account, and try again.`| -|`0x8004D24B`
`-2147167669`|Name: **UserNotAssignedLicense**
Message: `The user(Id = {0}, accessMode = {1}) has not been assigned any License. Please contact your system administrator to assign license to this user for the action to succeed.`| +|`0x8004D24B`
`-2147167669`|Name: **UserNotAssignedLicense**
Message: `The user(Id = {0}, accessMode = {1}) has not been assigned any License. Please contact your system administrator to assign license to this user for the action to succeed. Additional Details: {2}`| |`0x80042f09`
`-2147209463`|Name: **UserNotAssignedRoles**
Message: `The user (Id = {0}) has not been assigned any roles.`| |`0x80048d29`
`-2147185367`|Name: **UserNotAuthorized**
Message: `Not authorized to perform this operation.`| |`0x80041d07`
`-2147214073`|Name: **UserNotInParentHierarchy**
Message: `The user is not in parent user's business hierarchy.`| diff --git a/powerapps-docs/developer/data-platform/introduction-solutions.md b/powerapps-docs/developer/data-platform/introduction-solutions.md index f3e19ebb3e..652ab3cc31 100644 --- a/powerapps-docs/developer/data-platform/introduction-solutions.md +++ b/powerapps-docs/developer/data-platform/introduction-solutions.md @@ -4,7 +4,7 @@ description: Learn about using solutions to package your Microsoft Dataverse cus suite: powerapps author: shmcarth # GitHub ID ms.author: shmcarth -ms.topic: article +ms.topic: concept-article ms.reviewer: pehecke ms.collection: get-started ms.date: 03/17/2021 diff --git a/powerapps-docs/developer/data-platform/link-custom-attributes-recurring-master-appointment-entities.md b/powerapps-docs/developer/data-platform/link-custom-attributes-recurring-master-appointment-entities.md index a0e1897a94..5cc727dce6 100644 --- a/powerapps-docs/developer/data-platform/link-custom-attributes-recurring-master-appointment-entities.md +++ b/powerapps-docs/developer/data-platform/link-custom-attributes-recurring-master-appointment-entities.md @@ -5,7 +5,7 @@ ms.custom: "" ms.date: 07/19/2021 ms.reviewer: "pehecke" -ms.topic: "article" +ms.topic: how-to author: "mayadumesh" # GitHub ID ms.subservice: dataverse-developer ms.author: "jdaly" # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/logging-tracing.md b/powerapps-docs/developer/data-platform/logging-tracing.md index 1bd6c3f670..1faa9f8d73 100644 --- a/powerapps-docs/developer/data-platform/logging-tracing.md +++ b/powerapps-docs/developer/data-platform/logging-tracing.md @@ -1,11 +1,11 @@ --- title: "Logging and tracing (Microsoft Dataverse) | Microsoft Docs" description: "Use the plugin trace log to store plug-in execution information to aid in plug-in debugging." -ms.date: 04/22/2024 -author: MicroSri -ms.author: sriknair +ms.date: 06/20/2025 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke -ms.topic: "article" +ms.topic: concept-article ms.subservice: dataverse-developer search.audienceType: - developer @@ -27,24 +27,24 @@ Recording of run-time tracing information for Microsoft Dataverse is provided by This data can be found in model-driven applications by navigating to **Settings** and choosing the **Plug-in Trace Log** tile. The tile is only visible if you have access to the trace log table records in your assigned security role. - You may find it easier to view this data by using the Web API in your browser using the example shown in [Use Tracing](debug-plug-in.md#use-tracing) or by using the [Plug-in trace viewer](#plug-in-trace-viewer) community tool. + You may find it easier to view this data by using the Web API in your browser using the example shown in [Use Tracing](debug-plug-in.md#use-tracing) or by using the [Plugin Trace Viewer](#plugin-trace-viewer) community tool. > [!IMPORTANT] > Trace logging takes up organization storage space especially when many traces and exceptions are generated. You should only turn trace logging on for debugging and troubleshooting, and turn it off after your investigation is completed. - **Error dialog** - A synchronous registered plug-in or custom workflow activity that returns an exception from the platform results in an error dialog box in the web application presented to the logged on user. The user may select the **Download Log File** button in the dialog to view the log containing exception and trace output. + A synchronous registered plug-in or custom workflow activity that returns an exception from the platform results in an error dialog box in the web application presented to the logged on user. The user can select the **Download Log File** button in the dialog to view the log containing exception and trace output. - **System job** - For asynchronous registered plug-in or custom workflow activities that returns an exception, the tracing information is shown in the **Details** area of the **System Job** form in the web application. + For asynchronous registered plug-in or custom workflow activities that return an exception, the tracing information is shown in the **Details** area of the **System Job** form in the web application. ## Enable trace logging -Whether trace logs will be written depends on the value of the [Organization](./reference/entities/organization.md) table [PluginTraceLogSetting](./reference/entities/organization.md#BKMK_PluginTraceLogSetting) column value. You can enable trace logging by programmatically updating the `PluginTraceLogSetting` value. +Whether trace logs are written depends on the value of the [Organization](./reference/entities/organization.md) table [PluginTraceLogSetting](./reference/entities/organization.md#BKMK_PluginTraceLogSetting) column value. You can enable trace logging by programmatically updating the `PluginTraceLogSetting` value. A second method to enable trace logging is through the legacy web application. Navigate to **Settings** > **Administration** > **System Settings**. In the **Customization** tab, locate the drop-down menu labeled **Enable logging to plug-in trace log** and select one of the available options. More information: [Settings in Unified Interface apps](/power-platform/admin/admin-settings#settings-in-unified-interface-apps), [Settings in legacy web client apps](/power-platform/admin/admin-settings#settings-in-legacy-web-client-apps) @@ -52,7 +52,7 @@ A third option can be found in the Plug-in Registration tool. After connecting t |Value|Option|Description| |------------|-----------------|-----------------| -|0|Off|Writing to the trace log is disabled. No **PluginTraceLog** records will be created. However, custom code can still call the method even though no log is written.| +|0|Off|Writing to the trace log is disabled. No **PluginTraceLog** records are created. However, custom code can still call the method even though no log is written.| |1|Exceptions|Trace information is written to the log if an exception is passed back to the platform from custom code.| |2|All|Trace information is written to the log upon code completion or an exception is passed back to the platform from the custom code.| @@ -60,7 +60,7 @@ If the trace logging setting is set to **Exception** and your custom code return ## Write to the tracing service -Before writing to the tracing service, you must first extract the tracing service object from the passed execution context. Afterwards, simply add calls to your custom code where appropriate passing any relevant diagnostic information in that method call. +Before writing to the tracing service, you must first extract the tracing service object from the passed execution context. Afterwards, add calls to your custom code where appropriate passing any relevant diagnostic information in that method call. ```csharp //Extract the tracing service for use in debugging plug-ins. @@ -72,16 +72,16 @@ Before writing to the tracing service, you must first extract the tracing servic ``` -Next, build and deploy the plug-in or custom workflow activity. During execution of the custom code, the information provided in the **Trace** method calls is written to a trace log table record by , if supported by your organization and enabled, and may also be made available to the user in a Web dialog or system job as described in the previous section. Tracing information written to the trace log is configured in the trace settings. For more information see [Enable trace logging](#bkmk_trace-settings). +Next, build and deploy the plug-in or custom workflow activity. During execution of the custom code, the information provided in the **Trace** method calls is written to a trace log table record by , if supported by your organization and enabled, and might also be made available to the user in a Web dialog or system job as described in the previous section. Tracing information written to the trace log is configured in the trace settings. For more information, see [Enable trace logging](#bkmk_trace-settings). > [!NOTE] -> If your custom code executes within a database transaction, and an exception occurs that causes a transaction rollback, all table data changes by your code will be undone. However, the [PluginTraceLog](reference/entities/plugintracelog.md) records will remain after the rollback completes. +> If your custom code executes within a database transaction, and an exception occurs that causes a transaction rollback, all table data changes by your code are undone. However, the [PluginTraceLog](reference/entities/plugintracelog.md) records will remain after the rollback completes. ## Additional information about the tracing service The batches the information provided to it through the **Trace** method. The information is written to a new [PluginTraceLog](reference/entities/plugintracelog.md) record after the custom code successfully runs to completion or an exception is thrown. -Each `Trace` call is logged as a new line in the [PluginTraceLog](reference/entities/plugintracelog.md) [MessageBlock](reference/entities/plugintracelog.md#BKMK_MessageBlock) column. Only 10kb of text can be written. Older trace lines will be removed to meet this limit so that only the most recent lines will be saved. +Each `Trace` call is logged as a new line in the [PluginTraceLog](reference/entities/plugintracelog.md) [MessageBlock](reference/entities/plugintracelog.md#BKMK_MessageBlock) column. Only 10 kb of text can be written. Older trace lines are removed to meet this limit so that only the most recent lines are saved. [PluginTraceLog](reference/entities/plugintracelog.md) records have a finite lifetime. A bulk deletion background job runs once per day to delete records that are older than 24 hours from creation. @@ -90,13 +90,13 @@ Each `Trace` call is logged as a new line in the [PluginTraceLog](reference/enti ## Community tools -### Plug-in trace viewer +### Plugin Trace Viewer -**Plug-in Trace Viewer** is a tool that XrmToolbox community developed. Please see the [Community tools for Dataverse](community-tools.md) topic for community developed tools. +**[Plugin Trace Viewer](https://jonasr.app/PTV)** is a tool that XrmToolBox community developed. Please see the [Community tools for Dataverse](community-tools.md) topic for community developed tools. > [!NOTE] -> The community tools are not a product of Microsoft and does not extend support to the community tools. -> If you have questions pertaining to the tool, please contact the publisher. More Information: [XrmToolBox](https://www.xrmtoolbox.com). +> Microsoft doesn't extend support to community tools. +> If you have questions pertaining to the tool, contact the publisher. More Information: [XrmToolBox](https://www.xrmtoolbox.com). ### See also diff --git a/powerapps-docs/developer/data-platform/long-term-retention.md b/powerapps-docs/developer/data-platform/long-term-retention.md index 4ce30d74ae..2414b99036 100644 --- a/powerapps-docs/developer/data-platform/long-term-retention.md +++ b/powerapps-docs/developer/data-platform/long-term-retention.md @@ -3,8 +3,8 @@ title: Long-term data retention description: Learn how to use retention policies to transfer data from your Microsoft Dataverse transactional database to a managed data lake for cost-efficient long-term storage. ms.date: 12/12/2024 ms.topic: how-to -author: pnghub -ms.author: gned +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.subservice: dataverse-developer search.audienceType: diff --git a/powerapps-docs/developer/data-platform/media/dataverse-web-api-javascript-spa-sample-app.png b/powerapps-docs/developer/data-platform/media/dataverse-web-api-javascript-spa-sample-app.png new file mode 100644 index 0000000000..53d30fba97 Binary files /dev/null and b/powerapps-docs/developer/data-platform/media/dataverse-web-api-javascript-spa-sample-app.png differ diff --git a/powerapps-docs/developer/data-platform/media/fieldsecurityprofile-erd.png b/powerapps-docs/developer/data-platform/media/fieldsecurityprofile-erd.png new file mode 100644 index 0000000000..b79d4d371d Binary files /dev/null and b/powerapps-docs/developer/data-platform/media/fieldsecurityprofile-erd.png differ diff --git a/powerapps-docs/developer/data-platform/media/maskingrule-attributemaskingrule-erd.png b/powerapps-docs/developer/data-platform/media/maskingrule-attributemaskingrule-erd.png new file mode 100644 index 0000000000..d65b0271cd Binary files /dev/null and b/powerapps-docs/developer/data-platform/media/maskingrule-attributemaskingrule-erd.png differ diff --git a/powerapps-docs/developer/data-platform/media/simple-spa.png b/powerapps-docs/developer/data-platform/media/simple-spa.png deleted file mode 100644 index 9daa478d44..0000000000 Binary files a/powerapps-docs/developer/data-platform/media/simple-spa.png and /dev/null differ diff --git a/powerapps-docs/developer/data-platform/oauth-cross-origin-resource-sharing-connect-single-page-application.md b/powerapps-docs/developer/data-platform/oauth-cross-origin-resource-sharing-connect-single-page-application.md index 3f61c38f9f..8c21e56ee2 100644 --- a/powerapps-docs/developer/data-platform/oauth-cross-origin-resource-sharing-connect-single-page-application.md +++ b/powerapps-docs/developer/data-platform/oauth-cross-origin-resource-sharing-connect-single-page-application.md @@ -1,9 +1,9 @@ --- -title: "Use OAuth with Cross-Origin Resource Sharing to connect a Single-Page Application (Microsoft Dataverse)| Microsoft Docs" -description: "Learn how to use OAuth with Cross-Origin Resource Sharing (CORS) to connect a Single-Page Application." -ms.date: 09/08/2022 +title: "Use OAuth with CORS to connect a SPA" +description: "Learn how to use OAuth with Cross-Origin Resource Sharing (CORS) to connect a Single-Page Application (SPA) that connects to Microsoft Dataverse using the Web API and JavaScript." +ms.date: 03/22/2025 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to author: ritesp ms.author: ritesp ms.subservice: dataverse-developer @@ -13,40 +13,40 @@ search.audienceType: - developer --- -# Use OAuth with Cross-Origin Resource Sharing to connect a Single-Page Application +# Use OAuth with CORS to connect a SPA -You can create a Single-Page Application (SPA) which uses JavaScript to work with Microsoft Dataverse data using Web API. To provide this, Cross-Origin Resource Sharing (CORS) is enabled so that your SPAs can bypass browser restrictions that normally prevent requests that cross domain boundaries. +You can create a [Single-Page Application (SPA)](https://developer.mozilla.org/docs/Glossary/SPA) which uses JavaScript to work with Microsoft Dataverse data using Web API. To enable creation of apps like these, Dataverse enabled [Cross-Origin Resource Sharing (CORS)](https://developer.mozilla.org/docs/Web/HTTP/Guides/CORS) so that your SPAs can bypass browser restrictions that normally prevent requests that cross domain boundaries. ## SPAs and Same-Origin policy -SPAs depend on extensive use of client-side JavaScript to create a single dynamic page which doesn't need to load new pages. Instead they use [Ajax](https://developer.mozilla.org/docs/Web/Guide/AJAX) programming techniques to retrieve data and other resources from the server. SPAs work well when the data and resources exist in the same domain as the application. But to protect access to data and resources on other domains, all modern browsers enforce a [Same-Origin policy](https://developer.mozilla.org/docs/Web/Security/Same-origin_policy) to prevent sites from using data and resources from sites on a different domain. CORS provides a way to gain access to resources on another domain. Creating a SPA to access Dataverse data without CORS is not a viable option. +SPAs depend on extensive use of client-side JavaScript to create a single dynamic page which doesn't need to load new pages. Instead they use programming patterns using [network requests](https://developer.mozilla.org/docs/Learn_web_development/Core/Scripting/Network_requests), sometimes called 'Ajax', to retrieve data and other resources from the server. SPAs work well when the data and resources exist in the same domain as the application. But to protect access to data and resources on other domains, all modern browsers enforce a [Same-Origin policy](https://developer.mozilla.org/docs/Web/Security/Same-origin_policy) to prevent sites from using data and resources from sites on a different domain. CORS provides a way to gain access to resources on another domain. Creating a SPA to access Dataverse data without CORS isn't a viable option. ## Use CORS with Dataverse -The [CORS protocol](https://fetch.spec.whatwg.org/#http-cors-protocol) provides a detailed description of how to implement and use CORS. It explains all about the various headers and preflight requests that you need to apply to make CORS work. The good news is that you don't need to become an expert in CORS to use it with Dataverse. The server-side part has been done for you and all you need is to know how to consume it. You don't need to understand all the inner workings of CORS to use it with Dataverse. Instead you can use the [Microsoft Authentication Library for JavaScript (MSAL.js) 2.0 for Browser-Based Single-Page Applications](https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-browser) and it will take care of much of the CORS complexity for you. Since Dataverse users are authenticated using Microsoft Entra ID, MSAL.js is the supported way to authenticate SPA users. +The [CORS protocol](https://fetch.spec.whatwg.org/#http-cors-protocol) provides a detailed description of how to implement and use CORS. It explains all about the various headers and preflight requests that you need to apply to make CORS work. The good news is that you don't need to become an expert in CORS to use it with Dataverse. The server-side part was done for you and all you need is to know how to consume it. You don't need to understand all the inner workings of CORS to use it with Dataverse. Instead you can use the [Microsoft Authentication Library for JavaScript (MSAL.js)](/javascript/api/overview/msal-overview?view=msal-js-latest&preserve-view=true) and it takes care of much of the CORS complexity for you. Since Dataverse users are authenticated using Microsoft Entra ID, MSAL.js is the supported way to authenticate SPA users. ## Preparing to use MSAL.js with a SPA -In order to configure your SPA to work with msal.js you will need to: +In order to configure your SPA to work with MSAL.js, you need to: 1. Register your application with the Microsoft Entra ID tenant. 1. Set configuration variables in your SPA with information from that registration. - You will need to include the following: + You need to include the following items: - The URL to your Dataverse organization. - - The Id of the Microsoft Entra ID tenant your organization uses to authenticate. + - The ID of the Microsoft Entra ID tenant your organization uses to authenticate. - The client ID you get when you register your application. - - The URL to where the SPA will be deployed or debugged during development. + - The URL to where the SPA is deployed or debugged during development. -The set of steps required are described in [Quickstart: Register and configure a SPA application for Dataverse using msal.js](quick-start-register-configure-simplespa-application-msal-js.md) +The set of steps required are described in [Quickstart: Web API with client-side JavaScript and Visual Studio Code](webapi/quick-start-js-spa.md). ### See also -[Use OAuth to connect to Dataverse web services](authenticate-oauth.md)
-[Quickstart: Register and configure a SPA application for Dataverse using msal.js](quick-start-register-configure-simplespa-application-msal-js.md)
+[Use OAuth to connect to Dataverse web services](authenticate-oauth.md) +[Quickstart: Web API with client-side JavaScript and Visual Studio Code](webapi/quick-start-js-spa.md) [Quickstart: Register an application with the Microsoft identity platform](/azure/active-directory/develop/quickstart-register-app) [!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/optional-parameters.md b/powerapps-docs/developer/data-platform/optional-parameters.md index 0e54d9daf7..ed0e890837 100644 --- a/powerapps-docs/developer/data-platform/optional-parameters.md +++ b/powerapps-docs/developer/data-platform/optional-parameters.md @@ -1,12 +1,12 @@ --- title: "Use optional parameters (Microsoft Dataverse) | Microsoft Docs" description: "Use optional parameters to control operation behaviors" -ms.date: 07/01/2024 +ms.date: 06/20/2025 ms.reviewer: jdaly -ms.topic: article -author: MicroSri +ms.topic: how-to +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: @@ -20,7 +20,7 @@ contributors: Dataverse provides a set of optional parameters or request header values a developer of a client application can use to modify the behavior of individual requests. This article describes the parameter values and request headers that you can use to get the behaviors you need. > [!NOTE] -> This article introduces these parameters but does not explain them in depth. Please follow the links for more information to fully understand the scenarios for using these parameters. +> This article introduces these parameters but doesn't explain them in depth. Follow the links for more information to fully understand the scenarios for using these parameters. ## How to use @@ -28,21 +28,21 @@ How you use these optional parameters depends on whether you're using the Datave ### [SDK for .NET](#tab/sdk) -Usually, you will add the parameter to the [OrganizationRequest.Parameters Collection](xref:Microsoft.Xrm.Sdk.OrganizationRequest.Parameters) of the named request class. +Usually, you'll add the parameter to the [OrganizationRequest.Parameters Collection](xref:Microsoft.Xrm.Sdk.OrganizationRequest.Parameters) of the named request class. > [!NOTE] -> You cannot specify these parameters using the 7 shortcut methods exposed with the . You must use the named request class with the [IOrganizationService.Execute method](xref:Microsoft.Xrm.Sdk.IOrganizationService.Execute%2A). +> You can't specify these parameters using the seven shortcut methods exposed with the . You must use the named request class with the [IOrganizationService.Execute method](xref:Microsoft.Xrm.Sdk.IOrganizationService.Execute%2A). -One exception is when setting the `partitionid`, this is set as an attribute of the entity instance. More information: [Perform a data operation with specified partition](#perform-a-data-operation-with-specified-partition) +One exception is when setting the `partitionid`. The `partitionid` is set as an attribute of the entity instance. More information: [Perform a data operation with specified partition](#perform-a-data-operation-with-specified-partition) More information: - [Use messages with the SDK for .NET](org-service/use-messages.md) -- See the examples below +- See the following examples ### [Web API](#tab/webapi) -Usually, you'll add the parameter as a request header with the `MSCRM.` namespace. +Usually, you add the parameter as a request header with the `MSCRM.` namespace. Two exceptions are the following that are appended to the URL. @@ -52,7 +52,7 @@ Two exceptions are the following that are appended to the URL. More information: - [Compose HTTP requests and handle errors : Other headers](webapi/compose-http-requests-handle-errors.md#other-headers) -- See the examples below. +- See the following examples. --- @@ -277,7 +277,7 @@ More information: [Shared variables](understand-the-data-context.md#shared-varia ## Perform a data operation with specified partition -When using elastic tables with a partitioning strategy, you can pass a unique string value with the `partitionid` parameter to access non-relational table data within a storage partition. +When using elastic tables with a partitioning strategy, you can pass a unique string value with the `partitionid` parameter to access nonrelational table data within a storage partition. The following examples use the `partitionid` value of `deviceId` when retrieving a `contoso_sensordata` record. @@ -327,7 +327,7 @@ Alternatively, you can use the `partitionid` value using alternate key style. ## Bypass custom Dataverse logic -Synchronous logic must be applied during the transaction and can significantly impact performance of individual operations. When performing bulk operations, the additional time for these individual operations can increase the time required. Use the `BypassBusinessLogicExecution` parameter when you want to improve performance while performing bulk data operations. +Synchronous logic must be applied during the transaction and can significantly impact performance of individual operations. With bulk operations, the extra time for these individual operations can increase the time required. Use the `BypassBusinessLogicExecution` parameter when you want to improve performance while performing bulk data operations. > [!IMPORTANT] > The calling user must have the `prvBypassCustomBusinessLogic` privilege. @@ -376,12 +376,12 @@ MSCRM.BypassBusinessLogicExecution: CustomSync,CustomAsync ## Bypass Power Automate Flows -When bulk data operations occur that trigger flows, Dataverse creates system jobs to execute the flows. When the number of system jobs is very large, it may cause performance issues for the system. If this occurs, you can choose to bypass triggering the flows by using the `SuppressCallbackRegistrationExpanderJob` optional parameter. +When bulk data operations occur that trigger flows, Dataverse creates system jobs to execute the flows. When the number of system jobs is large, it might cause performance issues for the system. If performance issues occur, you can choose to bypass triggering the flows by using the `SuppressCallbackRegistrationExpanderJob` optional parameter. The [CallbackRegistration table](reference/entities/callbackregistration.md) manages flow triggers, and there's an internal operation called *expander* that calls the registered flow triggers. > [!NOTE] -> When this option is used, the flow owners will not receive a notification that their flow logic was bypassed. +> When this option is used, the flow owners won't receive a notification that their flow logic was bypassed. ### [SDK for .NET](#tab/sdk) @@ -422,10 +422,49 @@ MSCRM.SuppressCallbackRegistrationExpanderJob: true More information: [Bypass Power Automate Flows](bypass-power-automate-flows.md) +## Return unmasked data + +When you have a column configured to use the [masking rules](/power-platform/admin/create-manage-masking-rules) preview feature you can use the `UnMaskedData` optional parameter to request that the unmasked value is returned. + +### [SDK for .NET](#tab/sdk) + +```csharp +RetrieveMultipleRequest request = new() +{ + Query = query, + ["UnMaskedData"] = true +}; + +var response = (RetrieveMultipleResponse)service.Execute(request); +``` + +### [Web API](#tab/webapi) + +Use the `UnMaskedData=true` query option to indicate that unmasked values should be returned. + +> [!IMPORTANT] +> The `UnMaskedData` option is case sensitive. If you use the incorrect parameter value you will get this error: +> `{"error":{"code":"0x80060888","message":"The query parameter [REDACTED] is not supported"}}` + +**Request:** + +```http +GET [ORGANIZATION URI]/api/data/v9.2/sample_examples?$select=sample_name,sample_email,sample_governmentid,sample_telephonenumber,sample_dateofbirth&$orderby=sample_name desc&UnMaskedData=true HTTP/1.1 +Accept: application/json +Authorization: Bearer [REDACTED] +OData-Version: 4.0 +OData-MaxVersion: 4.0 +``` + +--- + +[Learn more about retrieving unmasked data](column-level-security.md#retrieve-unmasked-data). + + ### See also -[Use messages with the SDK for .NET](org-service/use-messages.md)
-[Web API: Compose HTTP requests and handle errors : Other headers](webapi/compose-http-requests-handle-errors.md#other-headers)
+[Use messages with the SDK for .NET](org-service/use-messages.md) +[Web API: Compose HTTP requests and handle errors : Other headers](webapi/compose-http-requests-handle-errors.md#other-headers) [Bypass Custom Business Logic](bypass-custom-business-logic.md) diff --git a/powerapps-docs/developer/data-platform/org-service/build-queries-with-linq-net-language-integrated-query.md b/powerapps-docs/developer/data-platform/org-service/build-queries-with-linq-net-language-integrated-query.md index 6fb1f67a68..40d9ca68f2 100644 --- a/powerapps-docs/developer/data-platform/org-service/build-queries-with-linq-net-language-integrated-query.md +++ b/powerapps-docs/developer/data-platform/org-service/build-queries-with-linq-net-language-integrated-query.md @@ -2,8 +2,8 @@ title: "Build queries with LINQ (.NET language-integrated query) (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "Learn how to use .NET Language-Integrated Query (LINQ) to write queries for Microsoft Dataverse." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/org-service/create-custom-entity.md b/powerapps-docs/developer/data-platform/org-service/create-custom-entity.md index 936dd0b5c6..513b088c73 100644 --- a/powerapps-docs/developer/data-platform/org-service/create-custom-entity.md +++ b/powerapps-docs/developer/data-platform/org-service/create-custom-entity.md @@ -3,7 +3,7 @@ title: "Create a custom table using code (Microsoft Dataverse) | Microsoft Docs" description: "Shows how to programmatically create a custom table in Microsoft Dataverse." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 03/22/2022 ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to author: mkannapiran ms.author: kamanick search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/detect-duplicate-data.md b/powerapps-docs/developer/data-platform/org-service/detect-duplicate-data.md index 46b0b5ae3f..ba8dfb3b34 100644 --- a/powerapps-docs/developer/data-platform/org-service/detect-duplicate-data.md +++ b/powerapps-docs/developer/data-platform/org-service/detect-duplicate-data.md @@ -5,7 +5,7 @@ ms.custom: "" ms.date: 06/09/2021 ms.reviewer: "pehecke" -ms.topic: "article" +ms.topic: how-to author: "mayadumesh" # GitHub ID ms.author: "jdaly" # MSFT alias of Microsoft employees only search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/early-bound-programming.md b/powerapps-docs/developer/data-platform/org-service/early-bound-programming.md index 509e810377..2bcf81986a 100644 --- a/powerapps-docs/developer/data-platform/org-service/early-bound-programming.md +++ b/powerapps-docs/developer/data-platform/org-service/early-bound-programming.md @@ -4,8 +4,8 @@ description: "Describes the different programming styles available when using th ms.collection: get-started ms.topic: "article" ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/org-service/entity-operations-associate-disassociate.md b/powerapps-docs/developer/data-platform/org-service/entity-operations-associate-disassociate.md index 5aa04ec610..d97303b511 100644 --- a/powerapps-docs/developer/data-platform/org-service/entity-operations-associate-disassociate.md +++ b/powerapps-docs/developer/data-platform/org-service/entity-operations-associate-disassociate.md @@ -3,9 +3,9 @@ title: "Associate and disassociate table rows using the SDK for .NET (Microsoft description: "Learn how to associate and disassociate table rows using the SDK for .NET" # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 12/13/2024 ms.reviewer: "pehecke" -ms.topic: "article" -author: MicroSri -ms.author: sriknair +ms.topic: how-to +author: MsSQLGirl +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/org-service/entity-operations-create.md b/powerapps-docs/developer/data-platform/org-service/entity-operations-create.md index 5f1cd38564..e6980a3542 100644 --- a/powerapps-docs/developer/data-platform/org-service/entity-operations-create.md +++ b/powerapps-docs/developer/data-platform/org-service/entity-operations-create.md @@ -3,9 +3,9 @@ title: "Create table rows using the SDK for .NET" description: "Learn how to create table rows using the SDK for .NET." ms.date: 12/16/2024 ms.reviewer: pehecke -ms.topic: article -author: MicroSri -ms.author: sriknair +ms.topic: how-to +author: MsSQLGirl +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/org-service/entity-operations-query-data.md b/powerapps-docs/developer/data-platform/org-service/entity-operations-query-data.md index 838b914d7f..510edd6af4 100644 --- a/powerapps-docs/developer/data-platform/org-service/entity-operations-query-data.md +++ b/powerapps-docs/developer/data-platform/org-service/entity-operations-query-data.md @@ -3,9 +3,9 @@ title: "Query data using the SDK for .NET (Microsoft Dataverse) | Microsoft Docs description: "Introduces the different ways to query data using Microsoft Dataverse SDK for .NET assemblies." ms.date: 05/03/2024 ms.reviewer: pehecke -ms.topic: article -author: MicroSri -ms.author: sriknair +ms.topic: how-to +author: MsSQLGirl +ms.author: jukoesma search.audienceType: - developer contributors: @@ -64,11 +64,11 @@ To avoid this problem when using the late-bound style, you can use two strategie > [!NOTE] > If the type specified with [Entity.GetAttributeValue<T>(System.String)](xref:Microsoft.Xrm.Sdk.Entity.GetAttributeValue%60%601(System.String)) is a value type that cannot be null, such as or , the value returned will be the default value, such as `false` or `1/1/0001 12:00:00 AM` rather than null. -## Each request can return up to 5000 records +## Each request can return up to 5,000 records Interactive applications will typically limit the number of records displayed to a number that a human can interact with, and then provide the option to navigate pages of data. For example, model-driven apps depend on a [personal option](../../../user/set-personal-options.md) that allows people to choose a value from 25 to 250. This information is stored in the [UserSettings.PagingLimit](../reference/entities/usersettings.md#BKMK_PagingLimit) column. -Applications that retrieve data from Dataverse without displaying data in an app don't need to specify a page size. The default and maximum page size is 5,000 rows. If you don't set a page size, Dataverse will return up to 5,000 rows of data at a time. To get more rows, you must send additional requests. +Applications that retrieve data from Dataverse without displaying data in an app don't need to specify a page size. The default and maximum page size is 5,000 rows for standard tables and 500 for elastic tables. If you don't set a page size, Dataverse will return up to the maximum number at a time. To get more rows, you must send additional requests. Paging works best when you use the paging cookie data that Dataverse returns with the [EntityCollection.PagingCookie](/dotnet/api/microsoft.xrm.sdk.entitycollection.pagingcookie) property, but it isn't required and some requests will not return a paging cookie value. Learn more: diff --git a/powerapps-docs/developer/data-platform/org-service/entity-operations-retrieve.md b/powerapps-docs/developer/data-platform/org-service/entity-operations-retrieve.md index 3747db732a..c1a14c6150 100644 --- a/powerapps-docs/developer/data-platform/org-service/entity-operations-retrieve.md +++ b/powerapps-docs/developer/data-platform/org-service/entity-operations-retrieve.md @@ -1,11 +1,11 @@ --- -title: "Retrieve a table row using the SDK for .NET (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "Describes options available when retrieving a row programmatically." # 115-145 characters including spaces. This abstract displays in the search result. -ms.date: 05/18/2023 +title: "Retrieve a table row using the SDK for .NET (Microsoft Dataverse) | Microsoft Docs" +description: "Describes options available when retrieving a row programmatically." +ms.date: 06/20/2025 ms.reviewer: pehecke -ms.topic: article -author: MicroSri -ms.author: sriknair +ms.topic: how-to +author: MsSQLGirl +ms.author: jukoesma search.audienceType: - developer contributors: @@ -17,31 +17,31 @@ contributors: [!INCLUDE[cc-terminology](../includes/cc-terminology.md)] -You will typically retrieve a row based on the results of a query and the query results should include a unique identifier for the row. +You'll typically retrieve a row based on the results of a query and the query results should include a unique identifier for the row. > [!NOTE] -> In the following examples the `accountid` variable represents the identifier for an account row. +> In the following examples, the `accountid` variable represents the identifier for an account row. -You have some options to define the data returned when you retrieve a row. You will use the class to define which column (attribute) values you require. +You have some options to define the data returned when you retrieve a row. You use the class to define which column (attribute) values you require. > [!IMPORTANT] -> When retrieving rows you should only request the column values you need by setting the specific columns using the class constructor. Although class constructor provides an overload that accepts a boolean `allColumns` parameter, you should not use this in production code. More information: [Do not retrieve Entity all columns via query APIs](../best-practices/work-with-data/retrieve-specific-columns-entity-via-query-apis.md) +> When retrieving rows, you should only request the column values you need by setting the specific columns using the class constructor. Although class constructor provides an overload that accepts a boolean `allColumns` parameter, you shouldn't use this parameter set to true in production code. More information: [Don't retrieve Entity all columns via query APIs](../best-practices/work-with-data/retrieve-specific-columns-entity-via-query-apis.md) -If you need to return related rows you can include a query with your retrieve request to define which related rows to return. +If you need to return related rows, you can include a query with your retrieve request to define which related rows to return. ## Basic Retrieve -You can retrieve individual rows using either the . method or by setting the property of the class to a reference row and use the . method. +You can retrieve individual rows using either the [IOrganizationService.Retrieve](xref:Microsoft.Xrm.Sdk.IOrganizationService.Retrieve%2A) method or by setting the property of the class to a reference row and use the [IOrganizationService.Execute](xref:Microsoft.Xrm.Sdk.IOrganizationService.Execute%2A) method. -This example shows using the . method. +This example shows using the [](xref:Microsoft.Xrm.Sdk.IOrganizationService.Retrieve%2A) method. ```csharp Entity entity = svc.Retrieve("account", accountid, new ColumnSet("name")); Console.WriteLine("account name: {0}", entity["name"]); ``` -This example shows using the and classes with the . method. +This example shows using the and classes with the [IOrganizationService.Execute](xref:Microsoft.Xrm.Sdk.IOrganizationService.Execute%2A) method. ```csharp RetrieveRequest request = new RetrieveRequest() @@ -55,16 +55,16 @@ Console.WriteLine("account name: {0}", entity["name"]); ``` > [!NOTE] -> Most of the time you should use the . method. +> Most of the time you should use the [IOrganizationService.Retrieve](xref:Microsoft.Xrm.Sdk.IOrganizationService.Retrieve%2A) method. > -> Use with the . method for special circumstances as described below. +> Use with the [IOrganizationService.Execute](xref:Microsoft.Xrm.Sdk.IOrganizationService.Execute%2A) method for special circumstances as described below. > More information: > - [Retrieve with related rows](#retrieve-with-related-rows) > - [Retrieve with an alternate key](#retrieve-with-an-alternate-key) ## Retrieve with related rows -When you retrieve an individual row you can also include a query to include related rows by setting the property of the . +When you retrieve an individual row, you can also include a query to include related rows by setting the property of the . You can define a query using any of the classes derived from and associate it with a specific table row relationship. Add a collection of pairs of queries and relationships to the property using a . @@ -111,6 +111,7 @@ Entity primaryContact = retrievedAccount Console.WriteLine("Primary Contact Fullname: {0}",primaryContact["fullname"]); ``` + The results of the sample could look like the following: ``` @@ -126,7 +127,7 @@ More information: [Query data using the SDK for .NET](entity-operations-query-da ## Retrieve with an alternate key -If you have configured a table to use an alternate key, you can use this alternate key to define an and pass this value as the . property. +If you configured a table to use an alternate key, you can use this alternate key to define an and pass this value as the . property. For example, if you define the `account` `accountnumber` column to be an alternate key, you can retrieve an account using the value of that column. @@ -161,15 +162,15 @@ Entity entity = response.Entity; Console.WriteLine(entity["name"]); ``` > [!NOTE] -> Alternate keys are usually used only for data integration scenarios +> Alternate keys are used only for data integration scenarios ## Retrieve records from elastic tables -If you are retrieving elastic table data stored in partitions be sure to specify the partition key when retrieving that data. More information: [Retrieve a record in an elastic table](../use-elastic-tables.md#retrieve-a-record-in-an-elastic-table) +If you're retrieving elastic table data stored in partitions, be sure to specify the partition key when retrieving that data. More information: [Retrieve a record in an elastic table](../use-elastic-tables.md#retrieve-a-record-in-an-elastic-table) ## Access Formatted values -The method to access formatted values on a retrieve operation is the same you will use when accessing them in the results of a query. More information: [Access formatted values](entity-operations-query-data.md#formatted-values-are-returned-for-some-columns) +The method to access formatted values on a retrieve operation is the same you'll use when accessing them in the results of a query. More information: [Access formatted values](entity-operations-query-data.md#formatted-values-are-returned-for-some-columns) diff --git a/powerapps-docs/developer/data-platform/org-service/entity-operations-update-delete.md b/powerapps-docs/developer/data-platform/org-service/entity-operations-update-delete.md index 38eb74619c..a0e63247e5 100644 --- a/powerapps-docs/developer/data-platform/org-service/entity-operations-update-delete.md +++ b/powerapps-docs/developer/data-platform/org-service/entity-operations-update-delete.md @@ -1,11 +1,11 @@ --- -title: "Update and delete table rows using the SDK for .NET (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "Learn how to update and delete table rows using the SDK for .NET." # 115-145 characters including spaces. This abstract displays in the search result. -ms.date: 07/22/2023 +title: "Update and delete table rows using the SDK for .NET (Microsoft Dataverse) | Microsoft Docs" +description: "Learn how to update and delete table rows using the SDK for .NET." +ms.date: 06/20/2025 ms.reviewer: pehecke -ms.topic: article -author: MicroSri -ms.author: sriknair +ms.topic: how-to +author: MsSQLGirl +ms.author: jukoesma search.audienceType: - developer contributors: @@ -22,23 +22,23 @@ This article includes examples using both late-bound and early-bound programming Each of the examples uses a `svc` variable that represents an instance of a class that implements the methods in the interface. For information about the classes that support this interface see [IOrganizationService Interface](iorganizationservice-interface.md). > [!IMPORTANT] -> When updating a table row, only include the columns you are changing. Simply updating the columns of a table row that you previously retrieved will update each column even though the value is unchanged. This can cause system events that can trigger business logic that expects that the values have actually changed. This can also cause columns to appear to have been updated in auditing data when in fact they haven't actually changed. +> When updating a table row, only include the columns you're changing. Simply updating the columns of a table row that you previously retrieved update each column even though the value is unchanged. This can cause system events that can trigger business logic that expects that the values actually changed. This can also cause columns to appear to be updated in auditing data when in fact they haven't changed. > -> You should create a new `Entity` instance, set the id attribute and any attribute values you are changing, and use that entity instance to update the table row. +> You should create a new `Entity` instance, set the ID attribute and any attribute values you're changing, and use that entity instance to update the table row. > [!NOTE] -> The column definition includes a `RequiredLevel` property. When this is set to `SystemRequired`, you cannot set these columns to a null value. If you attempt this you will get error code `-2147220989` with the message `Attribute: cannot be set to NULL`. +> The column definition includes a `RequiredLevel` property. When this is set to `SystemRequired`, you can't set these columns to a null value. If you attempt to set this column to a null value, you'll get error code `-2147220989` with the message `Attribute: cannot be set to NULL`. > > More information: [Column (attribute) requirement level](../entity-attribute-metadata.md#column-requirement-level) ## Basic update -Both of the examples below use the [IOrganizationService.Update method](xref:Microsoft.Xrm.Sdk.IOrganizationService.Update%2A) to set column values for a table row that was previously retrieved. +Both of the following examples use the [IOrganizationService.Update method](xref:Microsoft.Xrm.Sdk.IOrganizationService.Update%2A) to set column values for a table row that was previously retrieved. Use the [Entity.Id property](xref:Microsoft.Xrm.Sdk.Entity.Id) to transfer the unique identifier value of the retrieved row to the entity instance used to perform the update operation. > [!NOTE] -> If you attempt to update a row without a primary key value you will get the error: `Entity Id must be specified for Update`. +> If you attempt to update a row without a primary key value, you'll get the error: `Entity Id must be specified for Update`. > > If you don't have a primary key value, you can also update rows using alternate keys. More information: [Update with Alternate Key](#update-with-alternate-key) @@ -106,7 +106,7 @@ svc.Update(account); Instead of using the [IOrganizationService.Update method](xref:Microsoft.Xrm.Sdk.IOrganizationService.Update%2A), you can use either the late-bound [Entity class](xref:Microsoft.Xrm.Sdk.Entity) or the generated early-bound entity classes with the [UpdateRequest class](xref:Microsoft.Xrm.Sdk.Messages.UpdateRequest) by setting the entity instance to the [UpdateRequest.Target property](xref:Microsoft.Xrm.Sdk.Messages.UpdateRequest.Target) and then using the [IOrganizationService.Execute method](xref:Microsoft.Xrm.Sdk.IOrganizationService.Execute%2A). > [!NOTE] -> The [UpdateResponse class](xref:Microsoft.Xrm.Sdk.Messages.UpdateResponse) has no properties. While it is returned by the [IOrganizationService.Execute method](xref:Microsoft.Xrm.Sdk.IOrganizationService.Execute%2A), it isn't necessary to refer to it. +> The [UpdateResponse class](xref:Microsoft.Xrm.Sdk.Messages.UpdateResponse) has no properties. While it's returned by the [IOrganizationService.Execute method](xref:Microsoft.Xrm.Sdk.IOrganizationService.Execute%2A), it isn't necessary to refer to it. ```csharp var request = new UpdateRequest() @@ -135,7 +135,7 @@ In a similar manner to how you can [Create related table rows in one operation]( To update related table rows, you have to retrieve a row with the related rows so that you can access the ID values. More information: [Retrieve with related rows](entity-operations-retrieve.md#retrieve-with-related-rows) > [!IMPORTANT] -> Updates to rows are made in a specific order. First, primary table rows are processed, and then related table rows are processed. If a change is made by the primary row for a lookup or related row column, and then a related row updates the same column, the related row value is retained. In general, a lookup column value and its equivalent in the [Entity.RelatedEntities](xref:Microsoft.Xrm.Sdk.Entity.RelatedEntities) for the same relationship should not be used at the same time. +> Updates to rows are made in a specific order. First, primary table rows are processed, and then related table rows are processed. If a change is made by the primary row for a lookup or related row column, and then a related row updates the same column, the related row value is retained. In general, a lookup column value and its equivalent in the [Entity.RelatedEntities](xref:Microsoft.Xrm.Sdk.Entity.RelatedEntities) for the same relationship shouldn't be used at the same time. #### [Late-bound](#tab/late) @@ -227,7 +227,7 @@ svc.Update(account); ## Check for duplicate records -When updating a table row, you may change the values so that the row represents a duplicate of another row. More information: [Detect duplicate data using the SDK for .NET](detect-duplicate-data.md) +When updating a table row, you might change the values so that the row represents a duplicate of another row. More information: [Detect duplicate data using the SDK for .NET](detect-duplicate-data.md) ## Update with Alternate Key @@ -238,7 +238,7 @@ If you want to use early bound types, you can convert the [!IMPORTANT] -> Most tables for business data do not have alternate keys defined. This method can only be used when the environment is configured to define an alternate key for a table. +> Most tables for business data don't have alternate keys defined. This method can only be used when the environment is configured to define an alternate key for a table. ```csharp var accountNumberKey = new KeyAttributeCollection(); @@ -260,9 +260,9 @@ If you're updating or deleting elastic table data stored in partitions, be sure ## Use Upsert -Typically in data integration scenarios you need to create or update data in Dataverse from other sources. Dataverse may already have records with the same unique identifier, which may be an alternate key. If a table row exists, you want to update it. If it doesn't exist, you want to create it so that the data being added is synchronized with the source data. This is the scenario when you want to use upsert. +Typically in data integration scenarios you need to create or update data in Dataverse from other sources. Dataverse might already have records with the same unique identifier, which might be an alternate key. If a table row exists, you want to update it. If it doesn't exist, you want to create it so that the data being added is synchronized with the source data. This scenario is when you want to use upsert. -The following example uses twice. The first time the account row is created, and the second time it's updated because it has an `accountnumber` value and there's an alternate key using that column (attrbute). +The following example uses twice. The first time the account row is created, and the second time it's updated because it has an `accountnumber` value and there's an alternate key using that column (attribute). For both calls, the [UpsertResponse.RecordCreated property](xref:Microsoft.Xrm.Sdk.Messages.UpsertResponse.RecordCreated) indicates whether the operation created a row or not. @@ -313,7 +313,7 @@ svc.Delete("account", new Guid("e5fa5509-2582-e811-a95e-000d3af40ae7")); ``` > [!IMPORTANT] -> Delete operations can initiate cascading operations that may delete child rows to maintain data integrity depending on logic defined for the relationships in the environment. More information: [Table relationship behavior](../../../maker/data-platform/create-edit-entity-relationships.md#table-relationship-behavior) +> Delete operations can initiate cascading operations that might delete child rows to maintain data integrity depending on logic defined for the relationships in the environment. More information: [Table relationship behavior](../../../maker/data-platform/create-edit-entity-relationships.md#table-relationship-behavior) ## Use the DeleteRequest class @@ -340,9 +340,9 @@ svc.Execute(request); You can specify the optimistic concurrency behavior for the operation by setting the `ConcurrencyBehavior` property of the or classes. -The logic to update or delete the row may be based on stale data. If the current data is different because it has changed since it was retrieved, optimistic concurrency provides a way to cancel an update or delete operation so you might retrieve it again and use the current data to determine whether to proceed. +The logic to update or delete the row might be based on stale data. If the current data is different because it has changed since it was retrieved, optimistic concurrency provides a way to cancel an update or delete operation so you might retrieve it again and use the current data to determine whether to proceed. -To determine whether the row has been changed, you don't need to compare all the values, you can use the property to see if it has changed. +To determine whether the row has changed, you don't need to compare all the values. You can use the property to see if it has changed. The following example succeeds only when: diff --git a/powerapps-docs/developer/data-platform/org-service/entity-operations.md b/powerapps-docs/developer/data-platform/org-service/entity-operations.md index 1f52c1eaec..98b8dd18bb 100644 --- a/powerapps-docs/developer/data-platform/org-service/entity-operations.md +++ b/powerapps-docs/developer/data-platform/org-service/entity-operations.md @@ -1,11 +1,11 @@ --- -title: "Entity class operations using the SDK for .NET (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "Learn about the Entity class used for data operations using the Microsoft Dataverse SDK for .NET" # 115-145 characters including spaces. This abstract displays in the search result. -ms.date: 09/16/2022 +title: "Entity class operations using the SDK for .NET (Microsoft Dataverse) | Microsoft Docs" +description: "Learn about the Entity class used for data operations using the Microsoft Dataverse SDK for .NET" +ms.date: 06/20/2025 ms.reviewer: pehecke ms.topic: article -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma search.audienceType: - developer contributors: @@ -17,29 +17,29 @@ contributors: [!INCLUDE[cc-terminology](../includes/cc-terminology.md)] -When you work with Microsoft Dataverse data using the SDK for .NET you will use the class with the late-bound style or with generated entity classes using the early-bound style. The generated entity classes inherit from the class, so understanding the class is important for either style. +When you work with Microsoft Dataverse data using the SDK for .NET, use the class with the late-bound style or with generated entity classes using the early-bound style. The generated entity classes inherit from the class, so understanding the class is important for either style. -This topic will describe some of the most frequently used properties and methods of the class. +This article describes some of the most frequently used properties and methods of the class. ## Entity.LogicalName -When you instantiate a new class instance using the late-bound style you must provide a valid string value to specify what entity type it is. The `LogicalName` is defined in the entity metadata (table definition). +When you instantiate a new class instance using the late-bound style, you must provide a valid string value to specify what entity type it is. The `LogicalName` is defined in the entity metadata (table definition). -When using the early-bound style, this value is set by the constructor of the generated class. For example: `var account = new Entity("account");` +When you use the early-bound style, the constructor of the generated class sets this value. For example: `var account = new Entity("account");` -In your code, if you later want to retrieve the string value that describes the entity type, you can use the property. This is useful for the many APIs that require an entity logical name as a parameter. +In your code, if you later want to retrieve the string value that describes the entity type, you can use the property. This property is useful for the many APIs that require an entity logical name as a parameter. ## Entity.Id -When you instantiate the `Entity` class, whether using the late-bound or early-bound style, it doesn't have a unique id set. If you are creating an entity, you shouldn't set it, but allow it to be set by the system when you create (save) it. +When you instantiate the `Entity` class, whether using the late-bound or early-bound style, it doesn't have a unique ID set. If you're creating an entity, you shouldn't set it, but let the system set it when you create (save) the record. -If you are retrieving an entity, it will include the primary key attribute value whether you request it or not. The primary key attribute name is different for each type of entity. Generally, the name of the primary key attribute is the entity `logicalname` + `id`. For an account it is `accountid` and for contact it is `contactid`. +If you're retrieving an entity, it includes the primary key attribute value whether you request it or not. The primary key attribute name is different for each type of entity. Generally, the name of the primary key attribute is the entity `logicalname` + `id`. For an account, it's `accountid` and for contact it's `contactid`. While you can get or set the primary key value using the primary key attribute, you can also use the property to access the value without having to remember the name of the primary key attribute. ## Early bound access to table columns -If you are using the early-bound style with generated classes, you will find typed properties for each attribute in the class. The properties for the attributes use the . and they can be accessed directly on the `Entity` class instance. +If you're using the early-bound style with generated classes, you'll find typed properties for each attribute in the class. The properties for the attributes use the . and they can be accessed directly on the `Entity` class instance. For example: diff --git a/powerapps-docs/developer/data-platform/org-service/execute-multiple-requests.md b/powerapps-docs/developer/data-platform/org-service/execute-multiple-requests.md index baab91acf3..6d91d70c9c 100644 --- a/powerapps-docs/developer/data-platform/org-service/execute-multiple-requests.md +++ b/powerapps-docs/developer/data-platform/org-service/execute-multiple-requests.md @@ -1,11 +1,11 @@ --- -title: "Execute multiple requests using the SDK for .NET (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "ExecuteMultipleRequest message supports higher throughput bulk message passing scenarios in Microsoft Dataverse." # 115-145 characters including spaces. This abstract displays in the search result. -ms.date: 02/28/2023 +title: "Execute multiple requests using the SDK for .NET (Microsoft Dataverse) | Microsoft Docs" +description: "ExecuteMultipleRequest message supports higher throughput bulk message passing scenarios in Microsoft Dataverse." +ms.date: 06/20/2025 ms.reviewer: pehecke -ms.topic: article -author: MicroSri -ms.author: sriknair +ms.topic: how-to +author: MsSQLGirl +ms.author: jukoesma search.audienceType: - developer contributors: @@ -19,13 +19,13 @@ contributors: The primary purpose of executing multiple requests it so improve performance in high-latency environments by reducing the total volume of data that is transmitted over the network. -You can use the message to support higher throughput bulk message passing scenarios in Microsoft Dataverse. accepts an input collection of message , executes each of the message requests in the order they appear in the input collection, and optionally returns a collection of containing each message's response or the error that occurred. Each message request in the input collection is processed in a separate database transaction. is executed by using the . method. +You can use the message to support higher throughput bulk message passing scenarios in Microsoft Dataverse. accepts an input collection of message , executes each of the message requests in the order they appear in the input collection, and optionally returns a collection of containing each message's response or the error that occurred. Each message request in the input collection is processed in a separate database transaction. is executed by using the [IOrganizationService.Execute](xref:Microsoft.Xrm.Sdk.IOrganizationService.Execute%2a) method. -In general, behaves the same as if you executed each message request in the input request collection separately, except with better performance. Use of the parameter of the service proxy is honored and will apply to the execution of every message in the input request collection. Plug-ins and workflow activities are executed as you would expect for each message processed. +In general, behaves the same as if you executed each message request in the input request collection separately, except with better performance. Use of the parameter of the service proxy is honored and applies to the execution of every message in the input request collection. Plug-ins and workflow activities are executed as you would expect for each message processed. -Plug-ins and custom workflow activities are not blocked from using . However, this is not recommended. Any failures in the synchronous step must rollback all data operations to maintain data integrity. Each operation performed within `ExecuteMultiple` must be rolled back. `ExecuteMultiple` also causes issues when the operations exceed the maximum plug-in timeout duration. +Plug-ins and custom workflow activities aren't blocked from using . However, this isn't recommended. Any failures in the synchronous step must roll back all data operations to maintain data integrity. Each operation performed within `ExecuteMultiple` must be rolled back. `ExecuteMultiple` also causes issues when the operations exceed the maximum plug-in timeout duration. -More information: [Do not use batch request types in plug-ins and workflow activities](../best-practices/business-logic/avoid-batch-requests-plugin.md) +More information: [Don't use batch request types in plug-ins and workflow activities](../best-practices/business-logic/avoid-batch-requests-plugin.md) @@ -86,8 +86,8 @@ The parameter |ExecuteMultipleSettings Member|Description| |------------------------------------|-----------------| -||When `true`, continue processing the next request in the collection even if a fault has been returned from processing the current request in the collection. When `false`, do not continue processing the next request.| -||When `true`, return responses from each message request processed. When `false`, do not return responses.

If set to `true` and a request does not return a response, because that is its design, the for that request is set to `null`.

However, even when `false`, the collection will not be empty if errors are returned. If errors are returned, there will be one response item in the collection for each processed request that returned a fault and will be set to the actual fault that occurred.| +||When `true`, continue processing the next request in the collection even if a fault is returned from processing the current request in the collection. When `false`, don't continue processing the next request.| +||When `true`, return responses from each message request processed. When `false`, don't return responses.

If set to `true` and a request doesn't return a response, because that is its design, the for that request is set to `null`.

However, even when `false`, the collection won't be empty if errors are returned. When errors are returned, there is one response item in the collection for each processed request that returns a fault and is set to the actual fault that occurred.| For example, in a request collection that contains six requests where the third and fifth request return faults, the following table indicates what the collection would contain. @@ -106,20 +106,20 @@ The parameter There are several constraints related to the use of the as described in the following list. -- **No recursion is allowed** cannot invoke . An found in the request collection will generate a fault for that request item. -- **Maximum batch size** There is a limit to how many requests can be added to a request collection. If that limit is exceeded, a fault is thrown before the first request is ever executed. A limit of 1000 requests is typical though this maximum amount can be set for the Dataverse deployment. +- **No recursion is allowed** can't invoke . An found in the request collection generates a fault for that request item. +- **Maximum batch size** There's a limit to how many requests can be added to a request collection. If that limit is exceeded, a fault is thrown before the first request is ever executed. A limit of 1,000 requests is typical though this maximum amount can be set for the Dataverse deployment. > [!NOTE] -> There was once a limit on the number of concurrent ExecuteMultiple requests. The limit was 2. This was removed because service protection limits made it unnecessary. For more information: [Service Protection API Limits](../api-limits.md). +> There was once a limit on the number of concurrent ExecuteMultiple requests. The limit was 2. This limit was removed because service protection limits made it unnecessary. For more information: [Service Protection API Limits](../api-limits.md). ## Handle a batch size fault -What should you do when your input request collection exceeds the maximum batch size? Your code can't directly query the maximum batch size through the deployment web service unless it is run under an account that has the deployment administrator role. +What should you do when your input request collection exceeds the maximum batch size? Your code can't directly query the maximum batch size through the deployment web service unless it's run under an account that has the deployment administrator role. -Fortunately, there is another method that you can use. When the number of requests in the input collection exceeds the maximum batch size allowed for an organization, a fault is returned from the call. The maximum batch size is returned in the fault. Your code can check for that value, resize the input request collection to be within the indicated limit, and re-submit the . The following code snippet demonstrates some of this logic. +Fortunately, there's another method that you can use. When the number of requests in the input collection exceeds the maximum batch size allowed for an organization, a fault is returned from the call. The maximum batch size is returned in the fault. Your code can check for that value, resize the input request collection to be within the indicated limit, and resubmit the . The following code snippet demonstrates some of this logic. ```csharp catch (FaultException fault) diff --git a/powerapps-docs/developer/data-platform/org-service/generate-early-bound-classes.md b/powerapps-docs/developer/data-platform/org-service/generate-early-bound-classes.md index e7f3f9de28..b659b47de6 100644 --- a/powerapps-docs/developer/data-platform/org-service/generate-early-bound-classes.md +++ b/powerapps-docs/developer/data-platform/org-service/generate-early-bound-classes.md @@ -1,16 +1,17 @@ --- title: "Generate early-bound classes for the SDK for .NET" description: "Learn how to use the Power Platform CLI pac modelbuilder build command to generate early-bound classes for use with the Microsoft Dataverse SDK for .NET. This tool generates early-bound .NET classes that represent the Entity Data Model used by Dataverse." -ms.date: 01/26/2024 -author: MicroSri -ms.author: sriknair +ms.date: 04/22/2025 +author: olegovanesyan +ms.author: olegov ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to search.audienceType: - developer contributors: - JimDaly - phecke + - daryllabar --- # Generate early-bound classes for the SDK for .NET @@ -99,7 +100,7 @@ Use the following steps to get started: > [!NOTE] > This file is a modified version of the file you can generate using `pac modelbuilder build` with the [`--writesettingsTemplateFile` parameter](/power-platform/developer/cli/reference/modelbuilder#--writesettingstemplatefile--wstf). Learn how to generate the file without comments in [Using parameters](#using-parameters). -1. Use the following command to generate early bound classes for the connected environment using the settings defined in `builderSettings.json` where `C:\projects\exampleproject\` represents the path to your project and `model` is the folder you created.. +1. Use the following command to generate early bound classes for the connected environment using the settings defined in `builderSettings.json` where `C:\projects\exampleproject\` represents the path to your project and `model` is the folder you created. ```powershell PS C:\projects\exampleproject\model> pac modelbuilder build -o . -stf .\builderSettings.json @@ -118,7 +119,7 @@ Use the following steps to get started: ### Understand what files are written -With either command, the following is the output you should expect: +With either command, the following output is what you should expect: ```powershell Connected to... Your Organization @@ -150,7 +151,7 @@ PS C:\projects\exampleproject\model> When you inspect the output, notice that it only generates classes for the tables specified by `entityNamesFilter` and only the messages specified in the `messageNamesFilter`. You should specify which tables (entities) and messages you use in your project. Otherwise, classes for all tables and messages are generated. -For `messageNamesFilter`, you can use `*` as a wildcard character in these values. This is useful when messages in your solution share a common customization prefix. +For `messageNamesFilter`, you can use `*` as a wildcard character in these values. This filter is useful when messages in your solution share a common customization prefix. `pac modelbuilder build` writes the files into folders with names you can control in the settings file: @@ -160,7 +161,7 @@ For `messageNamesFilter`, you can use `*` as a wildcard character in these value - All the classes are part of the namespace you set in the `namespace` setting. > [!NOTE] -> If you are generating message classes, you should always include a name for the `serviceContextName` setting. See [Include `serviceContextName` when generating message classes](#include-servicecontextname-when-generating-message-classes) +> If you're generating message classes, you should always include a name for the `serviceContextName` setting. See [Include `serviceContextName` when generating message classes](#include-servicecontextname-when-generating-message-classes) This is how the files and folders appear in Visual Studio: @@ -191,7 +192,7 @@ PS C:\>pac modelbuilder build ` --writesettingsTemplateFile ``` -This doesn't include all the settings because it uses the default options. If you use the [`--writesettingsTemplateFile` parameter](/power-platform/developer/cli/reference/modelbuilder#--writesettingstemplatefile--wstf) to generate a `builderSettings.json` file, it doesn't include the comments in the example in the [Get started section](#get-started) of this article. The example using parameters writes the following `builderSettings.json` file in the `model` folder: +This example doesn't include all the settings because it uses the default options. If you use the [`--writesettingsTemplateFile` parameter](/power-platform/developer/cli/reference/modelbuilder#--writesettingstemplatefile--wstf) to generate a `builderSettings.json` file, it doesn't include the comments in the example in the [Get started section](#get-started) of this article. The example using parameters writes the following `builderSettings.json` file in the `model` folder: ```json { @@ -222,8 +223,8 @@ This doesn't include all the settings because it uses the default options. If yo ## Include `serviceContextName` when generating message classes -If you are generating message classes, should always include a name for the `serviceContextName` parameter so that an [OrganizationServiceContext](xref:Microsoft.Xrm.Sdk.Client.OrganizationServiceContext) class will be generated with your code. -This class includes an important property to enable use of generated message classes. If you don't include an `OrganizationServiceContext`, you will get the following error when you try to use the generated message classes. +If you're generating message classes, you should always include a name for the `serviceContextName` parameter so that an [OrganizationServiceContext](xref:Microsoft.Xrm.Sdk.Client.OrganizationServiceContext) class is generated with your code. +This class includes an important property to enable use of generated message classes. If you don't include an `OrganizationServiceContext`, you'll get the following error when you try to use the generated message classes. ``` The formatter threw an exception while trying to deserialize the message: @@ -236,10 +237,11 @@ Please see InnerException for more details. ## Community tools -The [Early Bound Generator V2](https://www.xrmtoolbox.com/plugins/DLaB.Xrm.EarlyBoundGeneratorV2/) is an XrmToolBox plug-in created by the community to provide a user interface and many other configurations to generating early-bound types. +The [Early Bound Generator V2](https://www.xrmtoolbox.com/plugins/DLaB.Xrm.EarlyBoundGeneratorV2/) is an XrmToolBox plug-in created by the community to provide a user interface that generates the correct `builderSettings.json` file, and calls `pac modelbuilder build` command for the user. Since the UI is only used to generate the `builderSettings.json` and call the `pac modelbuilder build` command, it can still be ran via the command line in a pipeline without a dependency on the XrmToolBox. It also provides configuration options that the `pac modelbuilder` doesn't. For example, the ability to explicitly control class/properties casing and language specific transliteration of characters. Early Bound Generator V2 can do this using the extensibility features of the `pac modelbuilder`. + > [!NOTE] -> The community tools are not a product of Microsoft and does not extend support to the community tools. -> If you have questions pertaining to the tool, please contact the publisher. More Information: [XrmToolBox](https://www.xrmtoolbox.com). +> Microsoft doesn't extend support to community developed tools. +> If you have questions pertaining to the tool, contact the publisher. More Information: [XrmToolBox](https://www.xrmtoolbox.com). ## For Dynamics 365 Customer Engagement on-premises @@ -247,10 +249,10 @@ The Power Platform CLI isn't available for Dynamics 365 Customer Engagement on-p ### Related articles -[Late-bound and early-bound programming](early-bound-programming.md) -[Sample: Early-bound table operations](samples/early-bound-entity-operations.md) -[Developer tools and resources](../developer-tools.md) -[Dataverse development tools](../download-tools-NuGet.md) +[Late-bound and early-bound programming](early-bound-programming.md) +[Sample: Early-bound table operations](samples/early-bound-entity-operations.md) +[Developer tools and resources](../developer-tools.md) +[Dataverse development tools](../download-tools-NuGet.md) [Learn how to use the CrmSvcUtil.exe to generate early-bound classes for the SDK for .NET](/dynamics365/customerengagement/on-premises/developer/org-service/create-early-bound-entity-classes-code-generation-tool) [!INCLUDE[footer-include](../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/org-service/handle-exceptions-code.md b/powerapps-docs/developer/data-platform/org-service/handle-exceptions-code.md index 77a149be7d..2eac7c1b13 100644 --- a/powerapps-docs/developer/data-platform/org-service/handle-exceptions-code.md +++ b/powerapps-docs/developer/data-platform/org-service/handle-exceptions-code.md @@ -4,9 +4,9 @@ description: "This article discusses the exceptions that are returned from a Mic ms.collection: get-started ms.date: 03/22/2022 ms.reviewer: "pehecke" -ms.topic: "article" -author: MicroSri -ms.author: sriknair +ms.topic: how-to +author: MsSQLGirl +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/org-service/iorganizationservice-interface.md b/powerapps-docs/developer/data-platform/org-service/iorganizationservice-interface.md index a0dd924d2f..467042dd34 100644 --- a/powerapps-docs/developer/data-platform/org-service/iorganizationservice-interface.md +++ b/powerapps-docs/developer/data-platform/org-service/iorganizationservice-interface.md @@ -1,12 +1,12 @@ --- -title: "IOrganizationService Interface (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "Learn about the common web service methods exposed to perform data operations in Microsoft Dataverse." # 115-145 characters including spaces. This abstract displays in the search result. +title: "IOrganizationService Interface (Microsoft Dataverse) | Microsoft Docs" +description: "Learn about the common web service methods exposed to perform data operations in Microsoft Dataverse." ms.collection: get-started -ms.date: 09/30/2022 -ms.reviewer: "pehecke" -ms.topic: "article" -author: MicroSri -ms.author: sriknair +ms.date: 06/20/2025 +ms.reviewer: pehecke +ms.topic: article +author: MsSQLGirl +ms.author: jukoesma search.audienceType: - developer contributors: @@ -22,7 +22,7 @@ The interface exposes methods used ## Client applications -This interface is implemented by a couple of classes that you can use in your code when creating client applications. +A couple of classes that you can use in your code when creating client applications implement the `IOrganizationService` interface: |Class|Description| |--|--| @@ -31,23 +31,23 @@ This interface is implemented by a couple of classes that you can use in your co ## Plug-ins -When you write plug-ins, there is also an object returned from the . which implements the interface but is not any of the types in the service client classes above. +When you write plug-ins, there's also an object returned from the [IOrganizationServiceFactory.CreateOrganizationService method](xref:Microsoft.Xrm.Sdk.IOrganizationServiceFactory.CreateOrganizationService(System.Nullable{System.Guid})) that implements the interface but isn't any of the types in the client classes described in the previous section. ## IOrganizationService Methods -Each of the classes which implement the interface may include additional properties and methods, but the interface has just 8 methods. +Each of the classes that implement the interface might include additional properties and methods, but the interface has just eight methods. |Method |Description | |---------|---------| -||Link two table rows using a table relationship| -||Create a table row.| -||Delete a table row| -||Remove the link between two table rows using a table relationship| -||Invoke an operation defined as a message by passing an instance of an or a class derived from it.| -||Retrieve an instance of a table row.| -||Retrieve a collection of table rows that match the criteria set in a query.| -||Change the column values of a table row.| +||Link two table rows using a table relationship| +||Create a table row.| +||Delete a table row| +||Remove the link between two table rows using a table relationship| +||Invoke an operation defined as a message by passing an instance of an or a class derived from it.| +||Retrieve an instance of a table row.| +||Retrieve a collection of table rows that match the criteria set in a query.| +||Change the column values of a table row.| > [!NOTE] > The Organization service exposes only the `Execute` method. The other methods in the interface are simply wrappers around the `Execute` method. These other methods are provided for convenience. You can perform all operations using only the `Execute` method. More information: [Use messages with the SDK for .NET](use-messages.md) diff --git a/powerapps-docs/developer/data-platform/org-service/linq-query-examples.md b/powerapps-docs/developer/data-platform/org-service/linq-query-examples.md index bc4e74dfc4..4cdfdb5764 100644 --- a/powerapps-docs/developer/data-platform/org-service/linq-query-examples.md +++ b/powerapps-docs/developer/data-platform/org-service/linq-query-examples.md @@ -1,11 +1,11 @@ --- -title: "Linq query examples (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "Browse code samples of LINQ queries." # 115-145 characters including spaces. This abstract displays in the search result. -ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +title: "Linq query examples (Microsoft Dataverse) | Microsoft Docs" +description: "Browse code samples of LINQ queries." +ms.date: 06/20/2025 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke -ms.topic: "article" +ms.topic: article search.audienceType: - developer contributors: @@ -17,13 +17,13 @@ contributors: [!INCLUDE[cc-terminology](../includes/cc-terminology.md)] -This topic contains many code samples of LINQ queries. +This article contains many code samples of LINQ queries. ## Simple Where clause - The following sample shows how to retrieve a list of accounts where the Name contains “Contoso”. + The following sample shows how to retrieve a list of accounts where the Name contains "Contoso". ```csharp using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) @@ -38,7 +38,7 @@ using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) } ``` - The following sample shows how to retrieve a list of accounts where the Name contains “Contoso” and Address1_City is “Redmond”. + The following sample shows how to retrieve a list of accounts where the Name contains "Contoso" and Address1_City is "Redmond". ```csharp using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) @@ -59,7 +59,7 @@ using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) ## Join and simple Where clause - The following sample shows how to retrieve the account Name and the contact LastName where the account Name contains “Contoso” and the contact LastName contains “Smith” and the contact is the Primary Contact for the account. +The following sample shows how to retrieve the account Name and the contact LastName where the account Name contains "Contoso" and the contact LastName contains "Smith" and the contact is the Primary Contact for the account. ```csharp using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) @@ -90,7 +90,7 @@ using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) ## Use the Distinct Operator - The following sample shows how to retrieve a distinct list of contact last names. Although there may be duplicates, each name will be listed only once. + The following sample shows how to retrieve a distinct list of contact last names. Although there might be duplicates, each name is listed only once. ```csharp using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) @@ -240,7 +240,7 @@ using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) ## Late-binding left join - The following sample shows a left join. A left join is designed to return parents with and without children from two sources. There is a correlation between parent and child, but no child may actually exist. + The following sample shows a left join. A left join is designed to return parents with and without children from two sources. There's a correlation between parent and child, but no child might actually exist. ```csharp using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) @@ -266,7 +266,7 @@ using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) ## Use the Equals operator - The following sample shows how to retrieve a list of contacts where the FirstName is “Colin”. + The following sample shows how to retrieve a list of contacts where the FirstName is "Colin". ```csharp using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) @@ -314,7 +314,7 @@ using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) ## Use the Not Equals operator - The following sample shows how to retrieve a list of contacts where the Address1_City is not “Redmond”. + The following sample shows how to retrieve a list of contacts where the Address1_City isn't "Redmond". ```csharp using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) @@ -335,7 +335,7 @@ using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) } ``` - The following sample shows how to retrieve a list of contacts where the FirstName is not “Colin”. + The following sample shows how to retrieve a list of contacts where the FirstName isn't "Colin". ```csharp using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) @@ -361,7 +361,7 @@ using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) ## Use a method-based LINQ query with a Where clause - The following sample shows how to retrieve a list of contacts where the LastName is “Smith” or contains “Smi”. + The following sample shows how to retrieve a list of contacts where the LastName is "Smith" or contains "Smi". ```csharp using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) @@ -463,7 +463,7 @@ using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) ## Use the Contains operator - The following sample shows how to retrieve contacts where the Description contains “Alpine”. + The following sample shows how to retrieve contacts where the Description contains "Alpine". ```csharp using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) @@ -486,7 +486,7 @@ using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) ## Use the Does Not Contain operator - The following sample shows how to retrieve contacts where the Description does not contain “Coho”. + The following sample shows how to retrieve contacts where the Description doesn't contain "Coho". ```csharp using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) @@ -509,7 +509,7 @@ using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) ## Use the StartsWith and EndsWith operators - The following sample shows how to retrieve contacts where FirstName starts with “Bri”. + The following sample shows how to retrieve contacts where FirstName starts with "Bri". ```csharp using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) @@ -528,7 +528,7 @@ using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) } ``` - The following sample shows how to retrieve contacts where LastName ends with “cox”. + The following sample shows how to retrieve contacts where LastName ends with "cox". ```csharp using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) @@ -551,7 +551,7 @@ using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) ## Use the And and Or operators - The following sample shows how to retrieve contacts where Address1_City is “Redmond” or “Bellevue” and a CreditLimit that is greater than $200. + The following sample shows how to retrieve contacts where Address1_City is "Redmond" or "Bellevue" and a CreditLimit that is greater than $200. ```csharp using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) @@ -661,7 +661,7 @@ using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) ## Use the Skip and Take operators without paging - The following sample shows how to retrieve just two rows after skipping two rows where the LastName is not “Parker” using the [Skip](/dotnet/api/system.linq.enumerable.skip) and [Take](/dotnet/api/system.linq.enumerable.take)operators. + The following sample shows how to retrieve just two rows after skipping two rows where the LastName isn't "Parker" using the [Skip](/dotnet/api/system.linq.enumerable.skip) and [Take](/dotnet/api/system.linq.enumerable.take)operators. ```csharp using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) @@ -686,7 +686,7 @@ using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) ## Use the FirstOrDefault and SingleOrDefault operators - The [FirstOrDefault](/dotnet/api/system.linq.enumerable.firstordefault) operator returns the first element of a sequence, or a default value if no element is found. The [SingleOrDefault](/dotnet/api/system.linq.enumerable.singleordefault) operator returns a single, specific element of a sequence, or a default value if that element is not found. The following sample shows how to use these operators. + The [FirstOrDefault](/dotnet/api/system.linq.enumerable.firstordefault) operator returns the first element of a sequence, or a default value if no element is found. The [SingleOrDefault](/dotnet/api/system.linq.enumerable.singleordefault) operator returns a single, specific element of a sequence, or a default value if that element isn't found. The following sample shows how to use these operators. ```csharp using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) @@ -836,9 +836,9 @@ using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) -## Use .value to retrieve the value of a column (attribute) +## Accessing the value of a column (attribute) - The following sample shows usage of Value to access the value of an attribute. + The following sample shows usage of `Value` to access the value of an attribute. ```csharp using (ServiceContext svcContext = new ServiceContext(_serviceProxy)) diff --git a/powerapps-docs/developer/data-platform/org-service/metadata-attributemetadata.md b/powerapps-docs/developer/data-platform/org-service/metadata-attributemetadata.md index b5707d43a2..bf83ac0cfd 100644 --- a/powerapps-docs/developer/data-platform/org-service/metadata-attributemetadata.md +++ b/powerapps-docs/developer/data-platform/org-service/metadata-attributemetadata.md @@ -3,7 +3,7 @@ title: "Work with column definitions (Microsoft Dataverse) | Microsoft Docs" description: "Describes common operations on column definitions (attribute metadata)." ms.date: 12/12/2022 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to author: mkannapiran ms.author: kamanick search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/metadata-option-sets.md b/powerapps-docs/developer/data-platform/org-service/metadata-option-sets.md index 221e768a06..2a8a1622ea 100644 --- a/powerapps-docs/developer/data-platform/org-service/metadata-option-sets.md +++ b/powerapps-docs/developer/data-platform/org-service/metadata-option-sets.md @@ -5,7 +5,7 @@ ms.date: 01/09/2023 author: mkannapiran ms.author: kamanick ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/org-service/metadata-relationshipmetadata.md b/powerapps-docs/developer/data-platform/org-service/metadata-relationshipmetadata.md index 6b5fbe855c..d3b9a47a18 100644 --- a/powerapps-docs/developer/data-platform/org-service/metadata-relationshipmetadata.md +++ b/powerapps-docs/developer/data-platform/org-service/metadata-relationshipmetadata.md @@ -5,7 +5,7 @@ ms.date: 08/12/2023 author: mkannapiran ms.author: kamanick ms.reviewer: jdaly -ms.topic: "article" +ms.topic: how-to search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/org-service/order-results-entity-attributes-linq.md b/powerapps-docs/developer/data-platform/org-service/order-results-entity-attributes-linq.md index 40b0f91a15..179fb640f7 100644 --- a/powerapps-docs/developer/data-platform/org-service/order-results-entity-attributes-linq.md +++ b/powerapps-docs/developer/data-platform/org-service/order-results-entity-attributes-linq.md @@ -2,10 +2,10 @@ title: "Order results using table columns with LINQ (Microsoft Dataverse) | Microsoft Docs" description: "Read how you can use lookup or choices (picklist) columns to order results within a LINQ query." ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke -ms.topic: "article" +ms.topic: how-to search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/org-service/organizationservicecontext.md b/powerapps-docs/developer/data-platform/org-service/organizationservicecontext.md index 0306d42caf..753cddcfab 100644 --- a/powerapps-docs/developer/data-platform/org-service/organizationservicecontext.md +++ b/powerapps-docs/developer/data-platform/org-service/organizationservicecontext.md @@ -2,10 +2,10 @@ title: "Use OrganizationServiceContext (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "The OrganizationServiceContext class lets you track changes, manage identities and relationships, and gives you access to the LINQ provider." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 11/10/2023 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke -ms.topic: "article" +ms.topic: how-to search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/org-service/overview.md b/powerapps-docs/developer/data-platform/org-service/overview.md index 676a080452..4d7eea3141 100644 --- a/powerapps-docs/developer/data-platform/org-service/overview.md +++ b/powerapps-docs/developer/data-platform/org-service/overview.md @@ -1,9 +1,9 @@ --- title: "Use the SDK for .NET" description: "Learn how you can use the Microsoft Dataverse SDK for .NET to work with business data." -ms.date: 09/27/2022 -author: MicroSri -ms.author: sriknair +ms.date: 06/20/2025 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: overview ms.custom: bap-template @@ -28,25 +28,25 @@ After adding the NuGet package to your Visual Studio project, you then have acce ## Interacting with the Organization service -In this section we cover some key concepts about using provided SDK classes to connect with the web services and perform operations. +In this section, we cover some key concepts about using provided SDK classes to connect with the web services and perform operations. ### Establishing a web service connection -The interface provides a connection to the Organization service enabling applications to work with business data, and table and column definitions. There are two implementations of this interface in the SDK: and . For new application development, you should be using the `ServiceClient` class which supports newer authentication technologies (MSAL) and has a few additional features not available in `CrmServiceClient`. However, both client classes are mostly the same from an API perspective. You will see code samples in this documentation using either of these classes, and it is fairly easy to convert code that uses `CrmServiceClient` to use `ServiceClient`. +The interface provides a connection to the Organization service enabling applications to work with business data, and table and column definitions. There are two implementations of this interface in the SDK: and . For new application development, you should be using the `ServiceClient` class that supports newer authentication technologies (MSAL) and has a few more features not available in `CrmServiceClient`. However, both client classes are mostly the same from an API perspective. You'll see code samples in this documentation using either of these classes, and it's fairly easy to convert code that uses `CrmServiceClient` to use `ServiceClient`. More information: [Transition apps to Dataverse ServiceClient](../sdk-client-transition.md), [IOrganizationService Interface](iorganizationservice-interface.md) ### Web service operations -In the Dataverse SDK for .NET, web service operations are initiated by sending *messages* or *message requests* to the service. Each message has a name which indicates the purpose of the message, and the corresponding request class name is based on that message name. For example, to create a row of data in a table, you populate a create request with data and have the service client send (Execute) this request to the Organization service. The operation is 'create' and the message request is named . After executing a request, the service returns a response class object (e.g., ) which contains an execution status and results data. This pattern is the same for the other operations that the service supports. +In the Dataverse SDK for .NET, web service operations are initiated by sending *messages* or *message requests* to the service. Each message has a name that indicates the purpose of the message, and the corresponding request class name is based on that message name. For example, to create a row of data in a table, you populate a create request with data and have the service client send (Execute) this request to the Organization service. The operation is 'create' and the message request is named . When you execute a request, the service returns a response class object (for example, ) which contains an execution status and results data. This pattern is the same for the other operations that the service supports. Take a look at the available message request and response classes in the and namespaces. ## About the legacy SOAP endpoint -The Organization service endpoint that was introduced in 2011, known as the SOAP endpoint, has been deprecated for some time now. This means that it will continue to work and be supported until we remove it. We have also announced that we will update the SDK for .NET assemblies so that they will continue to work after the endpoint is removed. This means that there will be updated SDK for .NET assemblies available before the endpoint is removed. Developers will be required to update their code to use these new assemblies at some point in the future. The key takeaway is that developers will access the Organization service using the SDK for .NET and ignore the endpoint and its protocol. More information: [Transition apps to Dataverse ServiceClient](../sdk-client-transition.md) +The Organization service endpoint, known as the SOAP endpoint, was introduced in 2011. This endpoint is deprecated. This means that it continues to work and be supported until we remove it. We also announced that we'll update the SDK for .NET assemblies so that they'll continue to work after the endpoint is removed. This means that updated SDK for .NET assemblies will be available before the endpoint is removed. Developers will be required to update their code to use these new assemblies at some point in the future. The key takeaway is that developers access the Organization service using the SDK for .NET and ignore the endpoint and its protocol. More information: [Transition apps to Dataverse ServiceClient](../sdk-client-transition.md) -Since the Web API uses a different endpoint, it is not affected by this 2011 SOAP endpoint deprecation. +Since the Web API uses a different endpoint, it isn't affected by this 2011 SOAP endpoint deprecation. ## Next steps diff --git a/powerapps-docs/developer/data-platform/org-service/page-large-result-sets-linq.md b/powerapps-docs/developer/data-platform/org-service/page-large-result-sets-linq.md index 4de9ca078e..59b048f033 100644 --- a/powerapps-docs/developer/data-platform/org-service/page-large-result-sets-linq.md +++ b/powerapps-docs/developer/data-platform/org-service/page-large-result-sets-linq.md @@ -2,8 +2,8 @@ title: "Page large result sets with LINQ (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "Read how you can page the results of a large .NET Language-Integrated Query (LINQ) query by using the Take and Skip operators." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: "article" search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/queryexpression/aggregate-data.md b/powerapps-docs/developer/data-platform/org-service/queryexpression/aggregate-data.md index 051a1f947d..aa5378af4c 100644 --- a/powerapps-docs/developer/data-platform/org-service/queryexpression/aggregate-data.md +++ b/powerapps-docs/developer/data-platform/org-service/queryexpression/aggregate-data.md @@ -1,16 +1,17 @@ --- title: Aggregate data using QueryExpression description: Learn how to use QueryExpression to retrieve aggregated data from Microsoft Dataverse. -ms.date: 05/12/2024 +ms.date: 04/11/2025 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl +ms.author: jukoesma ms.subservice: dataverse-developer -ms.author: gned search.audienceType: - developer contributors: - JimDaly + - daryllabar --- # Aggregate data using QueryExpression @@ -56,6 +57,7 @@ The types of aggregation you can do are members of the [XrmAggregateType enum](x Note the following points: - Null values aren't considered when calculating aggregate values. +- Aggregated data is returned as an [AliasedValue](xref:Microsoft.Xrm.Sdk.AliasedValue). - You can use data from tables joined using the [LinkEntity class](xref:Microsoft.Xrm.Sdk.Query.LinkEntity). - You can apply filters to limit the results as with any query. @@ -65,7 +67,7 @@ Let's say you have 10 account records with the following data: |Number of Employees|Name|Address 1 City|Created On| |---------|---------|---------|---------| -|NULL|Example Account|NULL|8/25/2023| +|NULL|Example Account|NULL|8/27/2023| |1,500|Contoso Pharmaceuticals (sample)|Redmond|3/25/2023| |2,700|Fabrikam, Inc. (sample)|Lynnwood|3/25/2023| |2,900|Blue Yonder Airlines (sample)|Los Angeles|3/25/2023| @@ -142,6 +144,8 @@ Group the results of an aggregate query by adding an [XrmAttributeExpression](xr When grouping, you should specify a [QueryExpression.Orders](xref:Microsoft.Xrm.Sdk.Query.QueryExpression.Orders) with an [OrderExpression](xref:Microsoft.Xrm.Sdk.Query.OrderExpression) that has the [Alias property](xref:Microsoft.Xrm.Sdk.Query.OrderExpression.Alias) set to the alias of the group. +If a grouped by value is null, it doesn't appear in the results. + For example the following query returns the sum of employees, and count by city: diff --git a/powerapps-docs/developer/data-platform/org-service/queryexpression/count-rows.md b/powerapps-docs/developer/data-platform/org-service/queryexpression/count-rows.md index 2faa25045a..9b26f904b9 100644 --- a/powerapps-docs/developer/data-platform/org-service/queryexpression/count-rows.md +++ b/powerapps-docs/developer/data-platform/org-service/queryexpression/count-rows.md @@ -4,9 +4,9 @@ description: Learn how to use QueryExpression to count rows from Microsoft Datav ms.date: 05/12/2024 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl +ms.author: jukoesma ms.subservice: dataverse-developer -ms.author: gned search.audienceType: - developer contributors: @@ -14,7 +14,7 @@ contributors: --- # Count rows using QueryExpression -Use the boolean [QueryExpression.PageInfo.ReturnTotalRecordCount property](/dotnet/api/microsoft.xrm.sdk.query.paginginfo.returntotalrecordcount) to specify that the result include a count of all the records that meet the filter criteria, up to 5000. Use this when retrieving paged results to estimate the total number of pages to display. +Use the boolean [QueryExpression.PageInfo.ReturnTotalRecordCount property](/dotnet/api/microsoft.xrm.sdk.query.paginginfo.returntotalrecordcount) to specify that the result include a count of all the records that meet the filter criteria, up to 5,000 for standard tables, 500 for elastic tables. Use this when retrieving paged results to estimate the total number of pages to display. You can't use the [QueryExpression.TopCount property](/dotnet/api/microsoft.xrm.sdk.query.queryexpression.topcount) together with `ReturnTotalRecordCount`.. @@ -25,15 +25,15 @@ When the [ReturnTotalRecordCount property](/dotnet/api/microsoft.xrm.sdk.query.p |Property|Description| |---------|---------| -||The total number of records up to 5000; otherwise the value is -1.| +||The total number of records up to 5,000; otherwise the value is -1.| ||`true` if the results of the query exceeds the total record count; otherwise, `false`.| -The value is useful when you need to calculate how many more paged requests you need to send to get all the results when equals 5000. +The value is useful when you need to calculate how many more paged requests you need to send to get all the results when equals the maximum value: 5,000 for standard tables, 500 for elastic tables. -If your page size is less than the maximum and is equal to or less than 5000, you can calculate how many more paged requests you must send to get all the records. +If your page size is less than the maximum and is equal to or less than the maximum, you can calculate how many more paged requests you must send to get all the records. -When is `true` and equals 5000, you can't perform this calculation. +When is `true` and equals the maximum, you can't perform this calculation. > [!TIP] diff --git a/powerapps-docs/developer/data-platform/org-service/queryexpression/filter-rows.md b/powerapps-docs/developer/data-platform/org-service/queryexpression/filter-rows.md index 7cf0729278..ed2577ca8f 100644 --- a/powerapps-docs/developer/data-platform/org-service/queryexpression/filter-rows.md +++ b/powerapps-docs/developer/data-platform/org-service/queryexpression/filter-rows.md @@ -4,9 +4,9 @@ description: Learn how to use QueryExpression to filter rows when you retrieve d ms.date: 05/12/2024 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: gned +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/org-service/queryexpression/join-tables.md b/powerapps-docs/developer/data-platform/org-service/queryexpression/join-tables.md index ee8e32723b..445c6b6cba 100644 --- a/powerapps-docs/developer/data-platform/org-service/queryexpression/join-tables.md +++ b/powerapps-docs/developer/data-platform/org-service/queryexpression/join-tables.md @@ -4,9 +4,9 @@ description: Learn how to use QueryExpression to join tables when you retrieve d ms.date: 05/12/2024 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: gned +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/org-service/queryexpression/optimize-performance.md b/powerapps-docs/developer/data-platform/org-service/queryexpression/optimize-performance.md index a0abc069b3..53a52eb16c 100644 --- a/powerapps-docs/developer/data-platform/org-service/queryexpression/optimize-performance.md +++ b/powerapps-docs/developer/data-platform/org-service/queryexpression/optimize-performance.md @@ -4,9 +4,9 @@ description: Learn how to optimize performance when you retrieve data from Micro ms.date: 01/06/2025 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: gned +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/org-service/queryexpression/order-rows.md b/powerapps-docs/developer/data-platform/org-service/queryexpression/order-rows.md index db5bd8d841..8e4e92d7af 100644 --- a/powerapps-docs/developer/data-platform/org-service/queryexpression/order-rows.md +++ b/powerapps-docs/developer/data-platform/org-service/queryexpression/order-rows.md @@ -4,9 +4,9 @@ description: Learn how to use QueryExpression to order rows when you retrieve da ms.date: 05/12/2024 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: gned +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/org-service/queryexpression/overview.md b/powerapps-docs/developer/data-platform/org-service/queryexpression/overview.md index 35d0f5b371..91fa4c1cc0 100644 --- a/powerapps-docs/developer/data-platform/org-service/queryexpression/overview.md +++ b/powerapps-docs/developer/data-platform/org-service/queryexpression/overview.md @@ -4,9 +4,9 @@ description: Learn to compose a query using QueryExpression, an object model tha ms.date: 05/12/2024 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl +ms.author: jukoesma ms.subservice: dataverse-developer -ms.author: gned search.audienceType: - developer contributors: @@ -74,7 +74,7 @@ Examples in this documentation will use a combination of object initialization a ## Limit the number of rows -To limit the number of rows returned, use the [QueryExpression.TopCount property](xref:Microsoft.Xrm.Sdk.Query.QueryExpression.TopCount). Without setting the `TopCount` property, Dataverse returns up to 5,000 rows. +To limit the number of rows returned, use the [QueryExpression.TopCount property](xref:Microsoft.Xrm.Sdk.Query.QueryExpression.TopCount). Without setting the `TopCount` property, Dataverse returns up to 5,000 rows for standard tables, 500 for elastic tables. Alternatively, specify a number of records to return using paging. Don't use the `TopCount` property when you request pages of data. [Learn how to request paged results](page-results.md) diff --git a/powerapps-docs/developer/data-platform/org-service/queryexpression/page-results.md b/powerapps-docs/developer/data-platform/org-service/queryexpression/page-results.md index 07457f2695..db2f2ffb5b 100644 --- a/powerapps-docs/developer/data-platform/org-service/queryexpression/page-results.md +++ b/powerapps-docs/developer/data-platform/org-service/queryexpression/page-results.md @@ -4,9 +4,9 @@ description: Learn how to use QueryExpression to page results when you retrieve ms.date: 12/04/2024 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl +ms.author: jukoesma ms.subservice: dataverse-developer -ms.author: gned search.audienceType: - developer contributors: @@ -16,7 +16,7 @@ contributors: You can specify a limit on the number of rows retrieved for each request by setting a page size. Using paging, you can retrieve consecutive pages of data representing all the records that match the criteria of a query in a performant manner. -The default and maximum page size is 5,000 rows. If you don't set a page size, Dataverse will return up to 5,000 rows of data at a time. To get more rows, you must send additional requests. +The default and maximum page size is 5,000 rows for standard tables, 500 for elastic. If you don't set a page size, Dataverse will return up to the maximum page size rows of data at a time. To get more rows, you must send additional requests. > [!NOTE] > @@ -98,7 +98,7 @@ After each request, the method checks the [EntityCollection.MoreRecords property /// /// The authenticated IOrganizationService instance. /// The QueryExpression query -/// The page size to use. Defaults to 5000 +/// The page size to use. Defaults to 5,000 /// All the records that match the criteria static EntityCollection RetrieveAll(IOrganizationService service, QueryExpression query, diff --git a/powerapps-docs/developer/data-platform/org-service/queryexpression/sample.md b/powerapps-docs/developer/data-platform/org-service/queryexpression/sample.md index 7b56f04f49..63e19ec7e2 100644 --- a/powerapps-docs/developer/data-platform/org-service/queryexpression/sample.md +++ b/powerapps-docs/developer/data-platform/org-service/queryexpression/sample.md @@ -4,9 +4,9 @@ description: Try using QueryExpression to retrieve Dataverse data using this sam ms.date: 12/04/2024 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: gned +ms.author: jukoesma search.audienceType: - developer contributors: @@ -240,6 +240,6 @@ When you run the program using the `OutputQueryExpression` method, the output sh ### Related articles -[Query data using QueryExpression](overview.md) -[Sample: Retrieve multiple with the QueryExpression class](../samples/retrieve-multiple-queryexpression-class.md) +[Query data using QueryExpression](overview.md) +[Sample: Retrieve multiple with the QueryExpression class](../samples/retrieve-multiple-queryexpression-class.md) [Sample: Use QueryExpression with a paging cookie](../samples/use-queryexpression-with-a-paging-cookie.md) diff --git a/powerapps-docs/developer/data-platform/org-service/queryexpression/select-columns.md b/powerapps-docs/developer/data-platform/org-service/queryexpression/select-columns.md index 72831ce1d1..70adc18028 100644 --- a/powerapps-docs/developer/data-platform/org-service/queryexpression/select-columns.md +++ b/powerapps-docs/developer/data-platform/org-service/queryexpression/select-columns.md @@ -4,9 +4,9 @@ description: Learn how to use QueryExpression to select columns when you retriev ms.date: 05/12/2024 ms.reviewer: jdaly ms.topic: how-to -author: pnghub +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: gned +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/org-service/quick-start-org-service-console-app.md b/powerapps-docs/developer/data-platform/org-service/quick-start-org-service-console-app.md index c8d77a51a3..0cb6806b11 100644 --- a/powerapps-docs/developer/data-platform/org-service/quick-start-org-service-console-app.md +++ b/powerapps-docs/developer/data-platform/org-service/quick-start-org-service-console-app.md @@ -1,11 +1,11 @@ --- title: "Quickstart: Execute an SDK for .NET request (C#) (Microsoft Dataverse) | Microsoft Docs" description: "Demonstrates how to connect to the SDK for .NET of Microsoft Dataverse and execute a request." -ms.date: 12/04/2024 -author: MicroSri -ms.author: sriknair +ms.date: 06/20/2025 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly -ms.topic: "article" +ms.topic: quickstart search.audienceType: - developer contributors: @@ -17,12 +17,12 @@ contributors: [!INCLUDE[cc-terminology](../includes/cc-terminology.md)] -This topic shows you how to begin using classes in the SDK for .NET assemblies to work with Microsoft Dataverse business data. You will create a minimal console application to connect to your environment's Organization service using the class and execute a web service operation. +This article shows you how to begin using classes in the SDK for .NET assemblies to work with Microsoft Dataverse business data. You'll create a minimal console application to connect to your environment's Organization service using the class and execute a web service operation. -Your application will call the [IOrganizationService.Execute method](xref:Microsoft.Xrm.Sdk.IOrganizationService.Execute%2A) passing an instance of the class. The result returned from the web service is a populated [WhoAmIResponse.UserId](xref:Microsoft.Crm.Sdk.Messages.WhoAmIResponse.UserId) value which is the unique identifier of your Dataverse system user account. +Your application calls the [IOrganizationService.Execute method](xref:Microsoft.Xrm.Sdk.IOrganizationService.Execute%2A) passing an instance of the class. The result returned from the web service is a populated [WhoAmIResponse.UserId](xref:Microsoft.Crm.Sdk.Messages.WhoAmIResponse.UserId) value that is the unique identifier of your Dataverse system user account. > [!NOTE] -> This quick start example does not include exception handling for brevity. This is a minimum code example of what you need to connect to and use the SDK for .NET. +> This quick start example doesn't include exception handling for brevity. This quick start is a minimum code example of what you need to connect to and use the SDK for .NET. You can obtain the complete code sample from GitHub [GetStarted](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/orgsvc/CSharp-NETCore/GetStarted/ConsoleApp%20(public)/Program.cs). Consult the program's [README](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/orgsvc/CSharp-NETCore/GetStarted/README.md) for more details. @@ -39,7 +39,7 @@ Read the following important information about using a connection string or user ## Create Visual Studio project -1. Create a new .NET console app project. For this project we are using Visual Studio 2022 and targeting .NET 6. +1. Create a new .NET console app project. For this project, we're using Visual Studio 2022 and targeting .NET 6. ![Start a console app project.](../media/quick-start-org-service-console-app-1.png) @@ -52,7 +52,7 @@ Read the following important information about using a connection string or user ![Install Microsoft.PowerPlatform.Dataverse.Client NuGet package.](../media/quick-start-org-service-console-app-3.png) > [!NOTE] -> Your will be prompted to OK the preview changes, and then select **I Accept** in the **Licence Acceptance** dialog. +> You are prompted to OK the preview changes, and then select **I Accept** in the **Licence Acceptance** dialog. ## Add application code @@ -104,7 +104,7 @@ Read the following important information about using a connection string or user > [!NOTE] > You can find your environment URL in the legacy web application under **Settings > Customization > Developer Resources** or in Power Apps **Settings** (gear icon) > **Developer Resources**. > - > While this code sample places the username/password information in the code for simplicity, other code samples will use the more recommended approach of prompting for that information or storing it in a separate App.config or appsettings.json file. + > While this code sample places the username/password information in the code for simplicity, other code samples use the more recommended approach of prompting for that information or storing it in a separate App.config or appsettings.json file. > > You can find supported values for *AuthType* listed in [Connection string parameters](../xrm-tooling/use-connection-strings-xrm-tooling-connect.md#connection-string-parameters). @@ -177,7 +177,7 @@ Now that you have a simple console program that connects to Dataverse, use this ### Try other IOrganizationService interface methods > [!TIP] -> In our documentation you can find many example methods like this `WhoAmIExample` which accept an `IOrganizationService service` parameter. +> In our documentation, you can find many example methods like this `WhoAmIExample` that accept an `IOrganizationService service` parameter. Try the examples for these [IOrganizationService methods](xref:Microsoft.Xrm.Sdk.IOrganizationService) methods: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/assign-record-to-new-owner.md b/powerapps-docs/developer/data-platform/org-service/samples/assign-record-to-new-owner.md deleted file mode 100644 index 0d4f65c77d..0000000000 --- a/powerapps-docs/developer/data-platform/org-service/samples/assign-record-to-new-owner.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: " Assign a record to a new owner (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "This sample showcases how to assign records to a new owner." # 115-145 characters including spaces. This abstract displays in the search result. -ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair -ms.reviewer: pehecke -ms.topic: sample -search.audienceType: - - developer -contributors: - - JimDaly - - phecke ---- - -# Assign a record to a new owner - -This sample shows how to assign an account to another user by using the [IOrganizationService.Update](/dotnet/api/microsoft.xrm.sdk.iorganizationservice.update) message. - -This sample uses the `IOrganization.Update` method rather than the [AssignRequest](/dotnet/api/microsoft.crm.sdk.messages.assignrequest) because there is an effort to remove specialized messages. More information: [Perform specialized operations using update](../../special-update-operation-behavior.md) - -> [!div class="nextstepaction"] -> [SDK for .NET: Assign a record to a new owner sample code](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/orgsvc/CSharp/AssignRecordToNewOwner) - -## How to run this sample - -[!include[cc-how-to-run-samples](../../includes/cc-how-to-run-samples.md)] - -## What this sample does - -The [IOrganizationService.Update](/dotnet/api/microsoft.xrm.sdk.iorganizationservice.update) message is intended to be used in a scenario where it contains the data that is needed to update existing record. - -## How this sample works - -In order to simulate the scenario described in [What this sample does](#what-this-sample-does), the sample will do the following: - -### Setup - -1. Checks for the current version of the org. -1. Creates required data that this sample requires. - -### Demonstrate - -1. The `Retrieve` method retrieves the account records created in the setup(#setup). -1. The `Update` message updates the `ownerid` column to the user who you want to own the record. - -### Clean up - -Displays an option to delete all the data created in the sample. The deletion is optional in case you want to examine the data created by the sample. You can manually delete the data to achieve same results. - -[!INCLUDE[footer-include](../../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/org-service/samples/assign-records-to-team.md b/powerapps-docs/developer/data-platform/org-service/samples/assign-records-to-team.md index dd1d138f05..6cd8868b00 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/assign-records-to-team.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/assign-records-to-team.md @@ -2,8 +2,8 @@ title: " Assign a record to a team (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample showcases how to assign records to a team." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/associate-security-role-user.md b/powerapps-docs/developer/data-platform/org-service/samples/associate-security-role-user.md index 967e6379fd..135a779ff6 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/associate-security-role-user.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/associate-security-role-user.md @@ -1,7 +1,7 @@ --- -title: " Associate security role to a user (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "This sample showcases how to assign a security role to a user " # 115-145 characters including spaces. This abstract displays in the search result. -ms.date: 04/03/2022 +title: "Sample: Associate security role to a user" +description: "This sample showcases how to assign a security role to a user " +ms.date: 04/01/2025 author: paulliew ms.author: paulliew ms.reviewer: jdaly @@ -15,42 +15,52 @@ contributors: # Sample: Associate security role to a user -This sample shows how to assign a security role to a user by using the [IOrganizationService.Associate](/dotnet/api/microsoft.xrm.sdk.iorganizationservice) message. +Learn how to associate a system user with a security role by using the `Associate` message or method. -This sample requires an additional user that isn't available in your system. Create the required user manually in **Microsoft 365** in order to run the sample without any errors. For this sample create a user profile **as is** shown below. +Related articles: -**First Name**: Dan
-**Last Name**: Park
-**Security Role**: User without any roles assigned
-**UserName**: dpark@yourorg.onmicrosoft.com
+- [Query data using QueryExpression](../queryexpression/overview.md) +- [Role-based security roles](/power-platform/admin/database-security) +- [IOrganizationService.Associate Method](/dotnet/api/microsoft.xrm.sdk.iorganizationservice.associate) -> [!div class="nextstepaction"] -> [SDK for .NET: Associate security role to a user sample code](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/orgsvc/CSharp/AssociateSecurityRoleToUser) - -## How to run this sample +## About the sample code -[!include[cc-how-to-run-samples](../../includes/cc-how-to-run-samples.md)] +|Sample|Description|Build target| +|---|---|---| +|AssociateSecurityRoleToUser|Demonstrates associating a user with a role.|.NET 9| -## What this sample does +> [!div class="nextstepaction"] +> [SDK for .NET: Associate security role to a user sample code](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/orgsvc/CSharp-NETCore/Security/AssociateSecurityRoleToUser) -The [IOrganizationService.Associate](/dotnet/api/microsoft.xrm.sdk.iorganizationservice) message is intended to be used in a scenario where it provides programmatic access to the metadata and data for an organization. +The code sample demonstrates how to associate a system user with a security role. Specifically, the samples demonstrate how to: -## How this sample works +1. Connect to Dataverse using a [connection string](../../xrm-tooling/use-connection-strings-xrm-tooling-connect.md) that defines required connection information +1. Query for a security role using its name attribute. +1. Associate the logged on user with that security role. -In order to simulate the scenario described in [What this sample does](#what-this-sample-does), the sample will do the following: +Additional information can be found in [README-code-design](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/orgsvc/CSharp-NETCore/README-code-design.md) file. -### Setup +## How to build and run the code sample -1. Checks for the current version of the org. -2. The `CreateRequiredRecords` method creates the records required by the sample. +1. Clone the [PowerApps-Samples](https://github.com/microsoft/PowerApps-Samples) repository. +1. Locate the sample folder. +1. Open the solution file (*.sln) in Visual Studio. +1. Edit the project's appsettings.json file and set the `Url`value as appropriate for your Dataverse test environment. +1. Build and run the project [F5]. +1. You'll be prompted in a browser window for account sign-in credentials to the target environment. -### Demonstrate +## Expected program output -1. The `QueryExpression` method retrieves a role from Microsoft Dataverse. -2. The `Associate` message assigns the role to a user. +For a successful run, the program's console output should look similar to the following example. +Otherwise, any errors or exceptions are displayed. -### Clean up +```console +Discovering who you are...done. +Associating your system user record with role 'Basic User'..done. -Display an option to delete the sample data in [Setup](#setup). The deletion is optional in case you want to examine the tables and data created by the sample. You can manually delete the records to achieve the same result. +Use the Power Platform admin center to see that you now have +the 'Basic User' role. Afterwards, remove the role if desired. +Press any key to undo environment data changes. +``` [!INCLUDE[footer-include](../../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/org-service/samples/azure-aware-custom-plugin.md b/powerapps-docs/developer/data-platform/org-service/samples/azure-aware-custom-plugin.md index 560729445c..35941e93cc 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/azure-aware-custom-plugin.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/azure-aware-custom-plugin.md @@ -5,7 +5,7 @@ ms.date: 06/19/2023 author: jaredha ms.author: jaredha ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/azure-aware-custom-workflow-activity.md b/powerapps-docs/developer/data-platform/org-service/samples/azure-aware-custom-workflow-activity.md index 6f1c6bbff9..5e4cbc16de 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/azure-aware-custom-workflow-activity.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/azure-aware-custom-workflow-activity.md @@ -5,7 +5,7 @@ ms.date: 04/03/2022 author: jaredha ms.author: jaredha ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to search.audienceType: - developer --- diff --git a/powerapps-docs/developer/data-platform/org-service/samples/basic-followup-plugin.md b/powerapps-docs/developer/data-platform/org-service/samples/basic-followup-plugin.md index 7a85e51a64..bd74294d35 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/basic-followup-plugin.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/basic-followup-plugin.md @@ -2,8 +2,8 @@ title: "Sample: Create a basic plug-in (Microsoft Dataverse) | Microsoft Docs" description: "Learn how to write a simple plug-in that creates a follow-up activity." ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/column-level-security.md b/powerapps-docs/developer/data-platform/org-service/samples/column-level-security.md new file mode 100644 index 0000000000..3f0080fb3c --- /dev/null +++ b/powerapps-docs/developer/data-platform/org-service/samples/column-level-security.md @@ -0,0 +1,147 @@ +--- +title: "Sample: Column-level security using Dataverse SDK for .NET" +description: "This sample shows how to work with column-level security using the Dataverse SDK for .NET." +ms.date: 07/30/2025 +author: paulliew +ms.subservice: dataverse-developer +ms.author: paulliew +ms.reviewer: jdaly +ms.topic: sample +search.audienceType: + - developer +contributors: + - JimDaly + - phecke +--- +# Sample: Column-level security using Dataverse SDK for .NET + +This sample shows how to perform [column-level security](../../column-level-security.md) operations using [Dataverse SDK for .NET](../overview.md). + +> [!div class="nextstepaction"] +> [View this sample on Github](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/orgsvc/CSharp-NETCore/ColumnLevelSecurity) + +## Prerequisites + +- Microsoft Visual Studio 2022 +- Access to Dataverse with system administrator privileges. + +## How to run this sample + +1. Download or clone the [Samples](https://github.com/Microsoft/PowerApps-Samples) repo so that you have a local copy. +1. Follow the instructions in the [Configure users](https://github.com/microsoft/PowerApps-Samples/blob/master/dataverse/orgsvc/CSharp-NETCore/ColumnLevelSecurity/README.md#configure-users) section to create a second application user account without the system administrator role. +1. Edit the [/ColumnLevelSecurity/appsettings.json](https://github.com/microsoft/PowerApps-Samples/blob/master/dataverse/orgsvc/CSharp-NETCore/ColumnLevelSecurity/appsettings.json) file to define a connection string specifying the Microsoft Dataverse instance you want to connect to for both the system administrator and second application user. +1. Open the sample solution in Visual Studio and press **F5** to run the sample. + +## What this sample does + +This sample demonstrates the capabilities described in [Column-level security with code](../../column-level-security.md): + +- Discover which columns can be secured in a Dataverse environment +- Discover which columns are currently secured +- Secure columns in a Dataverse environment +- Grant read or write access to selected fields to individual users +- Modify access to secured fields for individual users +- Revoke access to selected fields for individual users +- Provide read and write access to specific groups of users +- Enable masking of secured columns +- Retrieve unmasked values for secured columns + +## Sample files + +The code for this sample is in the following files: + +|File|Description| +|---------|---------| +|`Program.cs`|Controls the flow of the sample. Contains definition of `Setup`, `Run`, and `Cleanup` methods and calls them in the `Main` method.| +|`Examples.cs`|Contains methods that demonstrate operations related to column-level security operations.| +|`Helpers.cs`|Contains methods used by the sample to manage setting up and running the sample. These methods aren't the focus of this sample.| + +This sample is designed to be resilient when errors occur so you should be able to run the sample again if it failed previously. + +## How this sample works + +In order to create the scenario described in [What this sample does](#what-this-sample-does), the sample does the following operations: + +### Setup + +The static `Setup` method in this sample does the following operations: + +1. Create a solution publisher named `ColumnLevelSecuritySamplePublisher` with customization prefix of `sample` if it doesn't exist. +1. Create a solution named `ColumnLevelSecuritySampleSolution` associated with the publisher if it doesn't exist. + + All subsequent solution-aware items are created in the context of this solution. + +1. Create a table named `sample_Example` if it doesn't exist. +1. Create four string columns in the `sample_Example` table if they don't exist. The table schema names are: + + - `sample_Email` + - `sample_GovernmentId` + - `sample_TelephoneNumber` + - `sample_DateOfBirth` + +1. Remove any existing sample data in the `sample_Example` table. +1. Add three rows of sample data with information in each column of the `sample_Example` table. +1. Create a new security role named **Column-level security sample role**. +1. Add privileges for the `sample_Example` table to the security role. +1. Associate the user to the security role. +1. Create a [Field Security Profile](../../reference/entities/fieldsecurityprofile.md) record named **Example Field Security Profile** that is used in the [Manage access to secure column data to groups](#manage-access-to-secure-column-data-to-groups) section of the sample. +1. Associate the application user to the field security profile. +1. Wait 30 seconds for the cache to catch up with the new objects created. + +### Demonstrate + +The static `Run` method in this sample does the following operations: + +#### Retrieve information about columns + +1. Use the `Examples.DumpColumnSecurityInfo` method to download a CSV file with data about which columns in the system can be secured. +1. Use the `Examples.GetSecuredColumnList` method to retrieve and show a list of environment columns that are already secured. + +#### Secure columns + +1. Demonstrate that the application user can retrieve data from all the columns in the `sample_Example` table. +1. Use the `Examples.SetColumnIsSecured` method to secure the four columns +1. Demonstrate that the application user can no longer retrieve data from the secured columns in the `sample_Example` table. + +#### Grant access to secure column data to individuals + +1. Use the `Examples.GrantColumnAccess` method to grant the application users read access to specific record field values by creating a [Field Sharing (PrincipalObjectAttributeAccess)](../../reference/entities/principalobjectattributeaccess.md) record. +1. Demonstrate that the application user can now retrieve data from specific secured record fields in the `sample_Example` table. +1. Demonstrate that the application user isn't allowed to write data to the secured columns. +1. Use the `Examples.ModifyColumnAccess` method to grant write access to a specific record field. +1. Demonstrate that the application user is now allowed to write data to the specific record field. +1. Use the `Examples.RevokeColumnAccess` method to delete the `PrincipalObjectAttributeAccess` records that gave the application user access to the secured columns. + +#### Manage access to secure column data to groups + +1. Add field permissions to the **Example Field Security Profile** record that was created in `Setup` by creating [Field Permission (FieldPermission)](../../reference/entities/fieldpermission.md) records +1. Demonstrate that the application user can view only the secured columns specified in the field permission records. +1. Demonstrate that the application user isn't allowed to write data to the specific record field not enabled with field permissions. + +#### Masking + +1. Retrieve ID values for existing masking rules. Create new [Secured Masking Column (AttributeMaskingRule)](../../reference/entities/attributemaskingrule.md) records to specify masking rules for columns of the `sample_Example` table. +1. Update the `canreadunmasked` column values of the [Field Permission (FieldPermission)](../../reference/entities/fieldpermission.md) records created earlier. +1. Wait 30 seconds for the cache to catch up with the new objects created. +1. Demonstrate that the application user can now retrieve data with masked values. +1. Demonstrate that the application user can now retrieve unmasked values with [RetrieveMultipleRequest class](/dotnet/api/microsoft.xrm.sdk.messages.retrievemultiplerequest) when using the [UnMaskedData optional parameter](../../optional-parameters.md#return-unmasked-data). +1. Demonstrate that the application user can now retrieve unmasked values with [RetrieveRequest class](/dotnet/api/microsoft.xrm.sdk.messages.retrieverequest) when using the [UnMaskedData optional parameter](../../optional-parameters.md#return-unmasked-data). + +#### Export solution + +Use an exported solution to test the functionality of the sample configurations outside of this sample. + +1. Export the solution created with all the configurations as an unmanaged solution. +1. Export the solution created with all the configurations as a managed solution + +### Clean up + +The static `Cleanup` method in this sample does the following operations: + +When the `SampleSettings.DeleteCreatedObjects` setting in `appsettings.json` is `true`, the `Cleanup` method tries to delete all components created during `Setup` or `Run`. The goal is to return the environment to the original state. If you don't want the items to be deleted, you can change the setting to `false`. + +### Related samples + +[Sample: Column-level security using Dataverse Web API (PowerShell)](../../webapi/samples/column-level-security-powershell.md) + +[!INCLUDE[footer-include](../../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/org-service/samples/convert-queries-fetch-queryexpression.md b/powerapps-docs/developer/data-platform/org-service/samples/convert-queries-fetch-queryexpression.md index 06dc0fe718..ee3eda0e71 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/convert-queries-fetch-queryexpression.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/convert-queries-fetch-queryexpression.md @@ -2,8 +2,8 @@ title: "Sample: Convert queries between Fetch and QueryExpression" description: This sample shows how to convert queries between FetchXML and QueryExpression ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/create-update-multiple.md b/powerapps-docs/developer/data-platform/org-service/samples/create-update-multiple.md index 512415a606..f7a72ab75d 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/create-update-multiple.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/create-update-multiple.md @@ -2,8 +2,8 @@ title: "Sample: SDK for .NET Use bulk operations (Microsoft Dataverse) | Microsoft Docs" description: "This sample shows how to perform bulk create and update operations using several different approaches including the use of CreateMultipleRequest and UpdateMultipleRequest classes. The messages for these request classes are optimized to provide the most performant way to create or update records with Dataverse." ms.date: 06/01/2023 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/create-update-records-with-related-records.md b/powerapps-docs/developer/data-platform/org-service/samples/create-update-records-with-related-records.md index bf164f18d6..161f872938 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/create-update-records-with-related-records.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/create-update-records-with-related-records.md @@ -2,8 +2,8 @@ title: "Sample: Create and update records with related records (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample showcases how to create and update records with related records." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/createmultiple-updatemultiple-plugin.md b/powerapps-docs/developer/data-platform/org-service/samples/createmultiple-updatemultiple-plugin.md index d5d7b0190c..12a5eb28d1 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/createmultiple-updatemultiple-plugin.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/createmultiple-updatemultiple-plugin.md @@ -2,8 +2,8 @@ title: "Sample: CreateMultiple and UpdateMultiple plug-ins (Microsoft Dataverse) | Microsoft Docs" description: "This sample shows how to write plug-ins for the CreateMultiple and UpdateMultiple messages" ms.date: 06/01/2023 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/early-bound-entity-operations.md b/powerapps-docs/developer/data-platform/org-service/samples/early-bound-entity-operations.md index b07eb16a87..734326868a 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/early-bound-entity-operations.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/early-bound-entity-operations.md @@ -2,8 +2,8 @@ title: "Sample: Create, update related records early bound(Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample shows how to create, retrieve, update, and delete operations on an account using the early bound class. " # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/enable-field-security-entity.md b/powerapps-docs/developer/data-platform/org-service/samples/enable-field-security-entity.md deleted file mode 100644 index ffbd4b0070..0000000000 --- a/powerapps-docs/developer/data-platform/org-service/samples/enable-field-security-entity.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: "Sample: Enable field security for a table (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "This sample shows how to enable field security for a table" # 115-145 characters including spaces. This abstract displays in the search result. -ms.date: 04/03/2022 -author: paulliew -ms.author: paulliew -ms.reviewer: jdaly -ms.topic: sample -search.audienceType: - - developer -contributors: - - JimDaly - - phecke ---- - -# Sample: Enable field security for a table - -[!INCLUDE[cc-terminology](../../includes/cc-terminology.md)] - -This sample shows how to enable field security for a table. - -> [!div class="nextstepaction"] -> [SDK for .NET: Enable field security for a table sample code](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/orgsvc/CSharp/FieldSecurity) - -[!INCLUDE[cc-terminology](../../includes/cc-terminology.md)] - -This sample requires additional users that are not in your system. Create the required users manually in **Microsoft 365** in order to run the sample without any errors. For this sample, create a user profile **as is** shown below. - -**First Name**: Samantha
-**Last Name**: Smith
-**Security Role**: Marketing Manager
-**UserName**: ssmith@yourorg.onmicrosoft.com
- -## How to run this sample - -[!include[cc-how-to-run-samples](../../includes/cc-how-to-run-samples.md)] - -## How this sample works - -In order to simulate the scenario described above, the sample will do the following: - -### Setup - -1. Checks for the current version of the org. -2. Gets the user that you have created manually in **Microsoft 365**. -3. Retrieve the security role needed to assign to the user. -4. Retrieve the default business unit needed to create the team. -5. Instantiate a team record and set its property values. - -### Demonstrate - -1. Creates field security profile and create the request object and set the monikers with the teamprofiles_assocation relationship. -2. Creates custom activity table and columns using the `CreateEntityRequest` and `CreateAttributeRequest` message. -3. Create the field permission for the identity column. - -### Clean up - -Display an option to delete the records in [Setup](#setup). The deletion is optional in case you want to examine the tables and data created by the sample. You can manually delete the records to achieve the same result. - -[!INCLUDE[footer-include](../../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/org-service/samples/execute-multiple-requests.md b/powerapps-docs/developer/data-platform/org-service/samples/execute-multiple-requests.md index d1a4e052c4..7e9bb24fe7 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/execute-multiple-requests.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/execute-multiple-requests.md @@ -2,8 +2,8 @@ title: "Sample: Execute multiple requests (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample shows how to execute multiple organization messages requests by using a single web service method call." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/execute-multiple-transaction.md b/powerapps-docs/developer/data-platform/org-service/samples/execute-multiple-transaction.md index fa8647fd9a..7f0ea2c780 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/execute-multiple-transaction.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/execute-multiple-transaction.md @@ -2,8 +2,8 @@ title: "Sample: Execute multiple requests in transaction (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample shows how to execute multiple request in transaction." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/file-operations.md b/powerapps-docs/developer/data-platform/org-service/samples/file-operations.md index aa96995a87..fa80e0f554 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/file-operations.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/file-operations.md @@ -2,8 +2,8 @@ title: "Sample: File Operations using Dataverse SDK for .NET (Microsoft Dataverse) | Microsoft Learn" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample demonstrates how to perform operations with file columns using the Dataverse SDK for .NET." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 12/04/2024 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/insert-update-record-upsert.md b/powerapps-docs/developer/data-platform/org-service/samples/insert-update-record-upsert.md index ba88818641..7c097fa3de 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/insert-update-record-upsert.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/insert-update-record-upsert.md @@ -2,8 +2,8 @@ title: "Sample: Insert or update record using Upsert (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample shows how to insert or update records using the Upsert message." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/issystemadmin-customapi-sample-plugin.md b/powerapps-docs/developer/data-platform/org-service/samples/issystemadmin-customapi-sample-plugin.md index 91b225e3c2..deec243d16 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/issystemadmin-customapi-sample-plugin.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/issystemadmin-customapi-sample-plugin.md @@ -2,8 +2,8 @@ title: "Sample: IsSystemAdmin custom API plug-in (Microsoft Dataverse) | Microsoft Docs" description: "Learn how to write a plug-in to support a custom API" ms.date: 09/27/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/late-bound-entity-operations.md b/powerapps-docs/developer/data-platform/org-service/samples/late-bound-entity-operations.md index 230dcbdecc..5b3b585e42 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/late-bound-entity-operations.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/late-bound-entity-operations.md @@ -2,8 +2,8 @@ title: "Sample: Create, retrieve, update, and delete (late bound) (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample demonstrates the create, retrieve, update, and delete operations on an account using the late bound table class." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/merge-two-records.md b/powerapps-docs/developer/data-platform/org-service/samples/merge-two-records.md index 91304dfbe2..de2561ef98 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/merge-two-records.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/merge-two-records.md @@ -2,8 +2,8 @@ title: "Sample: Merge two records (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample showcases how to merge two records." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/modify-query-preoperation-stage.md b/powerapps-docs/developer/data-platform/org-service/samples/modify-query-preoperation-stage.md index 6b7806a89e..f6e4c8b49c 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/modify-query-preoperation-stage.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/modify-query-preoperation-stage.md @@ -2,8 +2,8 @@ title: "Sample: Modify query in PreOperation stage (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample shows how to write a plug-in that modifies a query defined within the PreOperation stage of a RetrieveMultiple request." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/retrieve-field-permissions.md b/powerapps-docs/developer/data-platform/org-service/samples/retrieve-field-permissions.md deleted file mode 100644 index 9c36623486..0000000000 --- a/powerapps-docs/developer/data-platform/org-service/samples/retrieve-field-permissions.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: "Sample: Retrieve field permissions (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "This sample shows how to retrieve secured columns for a user" # 115-145 characters including spaces. This abstract displays in the search result. -ms.date: 04/03/2022 -author: paulliew -ms.author: paulliew -ms.reviewer: jdaly -ms.topic: sample -search.audienceType: - - developer -contributors: - - JimDaly - - phecke ---- - -# Sample: Retrieve field permissions - -This sample shows how to retrieve secured columns for a user according to the steps outlined in [Field security tables](/dynamics365/customer-engagement/developer/field-security-entities). - -> [!div class="nextstepaction"] -> [SDK for .NET: Retrieve field permissions sample code](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/orgsvc/CSharp/RetrieveFieldPermission) - -This sample requires additional users that are not in your system. Create the required users manually in **Microsoft 365** in order to run the sample without any errors. For this sample create a user profile **as is** shown below. Replace `yourorg` with the organization name. - -**First Name**: Samantha
-**Last Name**: Smith
-**Security Role**: Marketing Manager
-**UserName**: ssmith@yourorg.onmicrosoft.com
- -## How to run this sample - -[!include[cc-how-to-run-samples](../../includes/cc-how-to-run-samples.md)] - -## What this sample does - -The `FieldPermission` class is intended to be used in a scenario where it contains the data that defines the possible permission types. - -## How this sample works - -In order to simulate the scenario described in [What this sample does](#what-this-sample-does), the sample will do the following: - -### Setup - -1. Checks for the current version of the org. -1. Gets the user information that you have created manually in **Microsoft 365**. -1. The `QueryExpression` method retrieves the security role needed to assign to the user. -1. The `Team` method instantiate a team record and set its property values. - -### Demonstrate - -1. The `FieldSecurityProfile` method creates field security profile. -1. The `AssociateRequest` method adds team and user to the profile. -1. The `CreateEntityRequest` method creates a new custom activity table for the sample. -1. The `RolePrivilege` method adds privileges for the new custom table. -1. The `AddPrivilegeRoleRequest` method creates and execute the `RolePrivilege` method. -1. The `FieldPermission` method creates field permission object for identity. - -### Clean up - -Display an option to delete the records created in the [Setup](#setup). The deletion is optional in case you want to examine the tables and data created by the sample. You can manually delete the records to achieve the same result. - -[!INCLUDE[footer-include](../../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/org-service/samples/retrieve-field-sharing-records.md b/powerapps-docs/developer/data-platform/org-service/samples/retrieve-field-sharing-records.md deleted file mode 100644 index c63454e1b1..0000000000 --- a/powerapps-docs/developer/data-platform/org-service/samples/retrieve-field-sharing-records.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: "Sample: Retrieve field sharing records (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "This sample shows how to retrieve the field sharing records for a table." # 115-145 characters including spaces. This abstract displays in the search result. -ms.date: 04/03/2022 -author: paulliew -ms.author: paulliew -ms.reviewer: jdaly -ms.topic: sample -search.audienceType: - - developer -contributors: - - JimDaly - - phecke ---- - -# Sample: Retrieve field sharing records - -This sample shows how to retrieve the `PrincipalObjectAttributeAccess` (field sharing) records for a table. - -> [!div class="nextstepaction"] -> [SDK for .NET: Retrieve field sharing records sample code](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/orgsvc/CSharp/RetrieveFieldSharing) - -## How to run this sample - -[!include[cc-how-to-run-samples](../../includes/cc-how-to-run-samples.md)] - -## What this sample does - -The `PrincipleObjectAttributeAccess` message is intended to be used in a scenario where it retrieves the field sharing records for a table. - -## How this sample works - -In order to simulate the scenario described in [What this sample does](#what-this-sample-does), the sample will do the following: - -### Setup - -1. Checks for the current version of the org. -2. The `CreateAttributeRequest` method creates the custom columns required for the sample. - -### Demonstrate - -1. The `WhoAMIRequest` retrieves the current user's information. -2. The `RetrieveUserPrivilegesRequest` message checks if the current user has `prvReadPOAA`. -3. The `PrincipalObjectAttributeAccess` creates POAA table for the custom columns created in the Setup(#setup). -4. Using the `QueryExpression` retrieve user shared column permissions. - -### Clean up - -Display an option to delete the sample data that is created in [Setup](#setup). The deletion is optional in case you want to examine the tables and data created by the sample. You can manually delete the records to achieve the same result. - -[!INCLUDE[footer-include](../../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/org-service/samples/retrieve-multiple-querybyattribute-class.md b/powerapps-docs/developer/data-platform/org-service/samples/retrieve-multiple-querybyattribute-class.md index 8054f83ce5..4f35b2f404 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/retrieve-multiple-querybyattribute-class.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/retrieve-multiple-querybyattribute-class.md @@ -2,8 +2,8 @@ title: "Sample: Retrieve multiple with the QueryByAttribute class(Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample shows how to use QueryByAttribute class" # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/retrieve-multiple-queryexpression-class.md b/powerapps-docs/developer/data-platform/org-service/samples/retrieve-multiple-queryexpression-class.md index 1b0aa6bad3..417dd8b028 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/retrieve-multiple-queryexpression-class.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/retrieve-multiple-queryexpression-class.md @@ -2,8 +2,8 @@ title: "Sample: Retrieve multiple with QueryExpression (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample shows how to retrieve multiple using QueryExpression" # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/retrieve-records-intersect-table.md b/powerapps-docs/developer/data-platform/org-service/samples/retrieve-records-intersect-table.md index d3f17b5ff2..6e29349209 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/retrieve-records-intersect-table.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/retrieve-records-intersect-table.md @@ -2,8 +2,8 @@ title: "Sample: Retrieve records from an intersect table(Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample shows how to retrieve record from an intersect table." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/serialize-deserialize-entity.md b/powerapps-docs/developer/data-platform/org-service/samples/serialize-deserialize-entity.md index 0570806143..fde532525b 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/serialize-deserialize-entity.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/serialize-deserialize-entity.md @@ -2,8 +2,8 @@ title: "Sample: Serialize and deserialize entity instances (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample showcases how to serialize and deserialize entity instances." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/toc.yml b/powerapps-docs/developer/data-platform/org-service/samples/toc.yml index 56c89118ce..ee6413c235 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/toc.yml +++ b/powerapps-docs/developer/data-platform/org-service/samples/toc.yml @@ -1,323 +1,315 @@ items: -- name: Activities - items: - - name: 'Convert a fax to a task' - href: convert-fax-task.md - - name: 'Create an email using a template' - href: create-email-template.md - - name: 'Create, retrieve, update, and delete an email attachment' - href: create-retrieve-update-delete-email-attachment.md - - name: 'Promote an email message' - href: promote-email-message.md - - name: 'Retrieve email attachments for an email template' - href: retrieve-email-attachments-email-template.md - - name: 'Send an email' - href: send-email.md - - name: 'Send an email using a template' - href: send-email-template.md - - name: 'Send bulk email and monitor results' - href: send-bulk-email-monitor-results.md - - name: File operations with Attachments and Notes - href: attachment-annotation-files.md - - name: 'Work with activity party records' - href: work-activity-party-records.md -- name: Adminstration & security - items: - - name: Assign security role to team - href: associate-security-role-team.md - - name: Associate security role to a user - href: associate-security-role-user.md - - name: Determine whether a user has a role - href: determine-whether-user-has-role.md - - name: Disable or enable a user - href: disable-a-user.md - - name: Remove a role for a user - href: remove-role-for-user.md - - name: Retrieve license information - href: retrieve-license-information.md - - name: Retrieve roles for an organization - href: retrieve-roles-for-organization.md -- name: Appointments - items: - - name: 'Book an appointment' - href: book-appointment.md - - name: 'Convert an appointment to a recurring appointment' - href: convert-appointment-recurring-appointment.md - - name: 'Create, retrieve, update, and delete a recurring appointment' - href: create-retrieve-update-delete-recurring-appointment.md - - name: 'End a recurring appointment series' - href: end-recurring-appointment-series.md - - name: 'Link custom columns between series and instances' - href: link-custom-attributes-between-series-instances.md - - name: 'Query the working hours of a user' - href: query-working-hours-user.md - - name: 'Query the working hours of multiple users' - href: query-working-hours-multiple-users.md - - name: 'Reschedule and cancel a recurring appointment' - href: reschedule-cancel-recurring-appointment.md - - name: 'Validate an appointment' - href: validate-appointment.md -- name: Auditing - items: - - name: Audit table data changes - href: audit-entity-data-changes.md - - name: Audit user access - href: audit-user-access.md -- name: Azure integration - items: - - name: Azure aware custom plug-in - href: azure-aware-custom-plugin.md - - name: Azure aware custom workflow activity - href: azure-aware-custom-workflow-activity.md - - name: One-way listener - href: one-way-listener.md - - name: Persistent queue listener - href: persistent-queue-listener.md - - name: REST listener - href: rest-listener.md - - name: Two-way listener - href: two-way-listener.md -- name: Bulk Delete - items: - - name: Bulk delete exported records - href: bulk-delete-exported-records.md - - name: Bulk delete records that match common criteria - href: bulk-delete-records-match-common-criteria.md -- name: Change tracking - items: - - name: Synchronize data with external systems using change tracking - href: synchronize-data-external-systems-using-change-tracking.md -- name: Charts & dashboards - items: - - name: Assign chart to another user - href: assign-chart-to-another-user.md - - name: Assign a user-owned dashboard to another user - href: assign-dashboard-to-another-user.md - - name: Create, retrieve, update and delete a dashboard - href: create-retrieve-update-delete-dashboards.md - - name: Create, retrieve, update and delete chart - href: create-retrieve-update-delete-charts.md - - name: Retrieve all charts attached to a table - href: retrieve-charts-attached-to-entity.md -- name: Connections - items: - - name: Create a connection - href: create-connection-early-bound.md - - name: Create a connection role - href: create-connection-role-early-bound.md - - name: Create a reciprocal connection role - href: create-reciprocal-connection-role-early-bound.md - - name: Query connections by a record - href: query-connections-record-early-bound.md - - name: Query connection roles by entity type code - href: query-connection-roles-entity-type-code-early-bound.md - - name: Query connections by reciprocal roles - href: query-connections-reciprocal-roles-early-bound.md - - name: Update a connection role - href: update-connection-role.md -- name: Currency - items: - - name: Retrieve currency exchange rate - href: retrieve-currency-exchange-rate.md -- name: Customization & metadata - items: - - name: Create a custom activity - href: create-custom-activity.md - - name: Create and retrieve table relationships - href: create-retrieve-entity-relationships.md - - name: Create and update an emailable table - href: create-update-emailable-entity.md - - name: Create and update table definitions - href: create-update-entity-metadata.md - - name: Dump column definitions to a file - href: dump-attribute-metadata.md - - name: Dump table definitions to a file - href: dump-entity-metadata-file.md - - name: Dump table privilege information to a file - href: dump-entity-priviliges.md - - name: Dump table relationships information to a file - href: dump-entity-relationships.md - - name: Dump choices information to a file - href: dump-picklist-information.md - - name: Dump choice information to a file - href: dump-global-option-set.md - - name: Export ribbon definitions - href: export-ribbon-definitions.md - - name: Query schema definitions and detect changes - href: query-metadata-changes.md - - name: Retrieve valid status transitions - href: retrieve-valid-status-transitions.md - - name: Work with columns - href: work-with-attributes.md - - name: Work with choice - href: work-with-option-sets.md -- name: Duplicate Detection - items: - - name: Detect multiple duplicate records - href: detect-multiple-duplicate-records.md - - name: Enable duplicate detection and retrieve duplicates - href: enable-duplicate-detection-and-retrieve-duplicates.md - - name: Use duplicate detection when creating and updating records - href: use-duplicate-detection-when-creating-and-updating-records.md -- name: Table records - items: - - name: Assign a record to a new owner - href: assign-record-to-new-owner.md - - name: Assign a record to a team - href: assign-records-to-team.md - - name: Create and update records with related records - href: create-update-records-with-related-records.md - - name: Early-bound table operations - href: early-bound-entity-operations.md - - name: Late-bound table operations - href: late-bound-entity-operations.md - - name: Initialize a record from an existing record - href: initialize-record-from-existing-record.md - - name: Insert or update a record using Upsert - href: insert-update-record-upsert.md - - name: Merge two records - href: merge-two-records.md - - name: Serialize and deserialize a table - href: serialize-deserialize-entity.md - - name: Share a record using an access team - href: share-record-using-access-team.md - - name: Share records using GrantAccess, ModifyAccess and RevokeAccess messages - href: share-records-using-grantaccess-modifyaccess-revokeaccess-messages.md - - name: Validate and set state of a table - href: validate-record-state.md - - name: File operations with Attachments and Notes - href: attachment-annotation-files.md - - name: Use optimistic concurrency with update and delete operations - href: use-optimistic-concurrency-update-delete-operations.md -- name: Field Level Security - items: - - name: Enable field security for a table - href: enable-field-security-entity.md - - name: Retrieve field permissions - href: retrieve-field-permissions.md - - name: Retrieve field sharing records - href: retrieve-field-sharing-records.md -- name: Files and images - items: - - name: File Operations - href: file-operations.md - - name: Image Operations - href: set-retrieve-entity-images.md - - name: Attachment and Annotation file operations - href: attachment-annotation-files.md -- name: Goal management - items: - - name: Rollup goal data for a custom period against the target revenue - href: rollup-goal-data-custom-period-target-revenue.md - - name: Rollup goal data for a fiscal period against the stretch target count - href: rollup-goal-data-fiscal-period-stretch-target-count.md - - name: Use rollup queries to track goals - href: use-rollup-queries-track-goals.md - - name: Override goal total count and close the goal - href: override-goal-total-count-close-goal.md -- name: Import data - items: - - name: Export and import a data map - href: export-import-data-map.md - - name: Import data using complex data map - href: import-data-complex-data-map.md -- name: Plug-ins - items: - - name: Create a basic plug-in - href: basic-followup-plugin.md - - name: Modify query in PreOperation stage - href: modify-query-preoperation-stage.md - - name: Web access from a plug-in - href: web-access-plugin.md - - name: IsSystemAdmin custom API - href: issystemadmin-customapi-sample-plugin.md - - name: CreateMultiple & UpdateMultiple plug-ins - href: createmultiple-updatemultiple-plugin.md - - name: ExportDataUsingFetchXmlToAnnotation custom API - href: export-data-fetchxml-annotation-custom-api-sample.md -- name: Query Data - items: - - name: Query data using LINQ - href: query-using-linq.md - - name: Use QueryExpression with a paging cookie - href: use-queryexpression-with-a-paging-cookie.md - - name: Retrieve multiple with the QueryExpression class - href: retrieve-multiple-queryexpression-class.md - - name: Retrieve multiple with the QueryByAttribute class - href: retrieve-multiple-querybyattribute-class.md - - name: Convert queries between Fetch and QueryExpression - href: convert-queries-fetch-queryexpression.md - - name: Retrieve records from an intersect table - href: retrieve-records-intersect-table.md - - name: Validate and execute a saved query - href: validate-execute-saved-query.md - - name: Use aggregation in FetchXML - href: use-aggregation-fetchxml.md - - name: Use FetchXML with a paging cookie - href: use-fetchxml-paging-cookie.md -- name: Queues - items: - - name: Add a record to a queue - href: add-record-queue-early-bound.md - - name: Add a security principal (user or team) to a queue - href: add-security-principal-user-team-queue-early-bound.md - - name: Create a queue - href: create-queues.md - - name: Clean up history for a queue - href: clean-up-history-queue-early-bound.md - - name: Delete a queue - href: delete-queues.md - - name: Release a queue item to the queue - href: release-queue-item-queue-early-bound.md - - name: Share a queue - href: share-queue.md - - name: Specify a queue item to work on - href: specify-queue-item-work-early-bound.md -- name: Reports - items: - - name: Download report definition - href: download-report-definition.md - - name: Get report history limit - href: get-report-history-limit.md - - name: Make report available or unavailable to organization - href: make-report-available-to-organization.md - - name: Publish a report - href: publish-report.md -- name: Rollup - items: - - name: Rollup records related to a specific record - href: rollup-records-related-to-specificed-record.md -- name: SharePoint - items: - - name: Retrieve absolute URL and site collection URL of a location record - href: retrieve-absolute-url-and-site-collection-url-of-a-location-record.md -- name: Special Operations - items: - - name: Bulk operations - href: create-update-multiple.md - - name: Execute multiple requests - href: execute-multiple-requests.md - - name: Execute multiple requests in transaction - href: execute-multiple-transaction.md -- name: Solutions - items: - - name: Work with solutions - href: work-solutions.md - - name: Staging and async import - href: solution-stage-and-import.md - - name: Detect solution dependencies - href: detect-solution-dependencies.md -- name: Time zones - items: - - name: Retrieve time zone information - href: retrieve-time-zone-information.md -- name: Views - items: - - name: Work with views - href: work-with-views.md -- name: Web resources - items: - - name: Import files as web resources - href: import-files-as-web-resources.md -- name: Workflow operations - href: workflow-operations.md \ No newline at end of file + - name: Activities + items: + - name: "Convert a fax to a task" + href: convert-fax-task.md + - name: "Create an email using a template" + href: create-email-template.md + - name: "Create, retrieve, update, and delete an email attachment" + href: create-retrieve-update-delete-email-attachment.md + - name: "Promote an email message" + href: promote-email-message.md + - name: "Retrieve email attachments for an email template" + href: retrieve-email-attachments-email-template.md + - name: "Send an email" + href: send-email.md + - name: "Send an email using a template" + href: send-email-template.md + - name: "Send bulk email and monitor results" + href: send-bulk-email-monitor-results.md + - name: File operations with Attachments and Notes + href: attachment-annotation-files.md + - name: "Work with activity party records" + href: work-activity-party-records.md + - name: Adminstration & security + items: + - name: Assign security role to team + href: associate-security-role-team.md + - name: Associate security role to a user + href: associate-security-role-user.md + - name: Determine whether a user has a role + href: determine-whether-user-has-role.md + - name: Disable or enable a user + href: disable-a-user.md + - name: Remove a role for a user + href: remove-role-for-user.md + - name: Retrieve license information + href: retrieve-license-information.md + - name: Retrieve roles for an organization + href: retrieve-roles-for-organization.md + - name: Appointments + items: + - name: "Book an appointment" + href: book-appointment.md + - name: "Convert an appointment to a recurring appointment" + href: convert-appointment-recurring-appointment.md + - name: "Create, retrieve, update, and delete a recurring appointment" + href: create-retrieve-update-delete-recurring-appointment.md + - name: "End a recurring appointment series" + href: end-recurring-appointment-series.md + - name: "Link custom columns between series and instances" + href: link-custom-attributes-between-series-instances.md + - name: "Query the working hours of a user" + href: query-working-hours-user.md + - name: "Query the working hours of multiple users" + href: query-working-hours-multiple-users.md + - name: "Reschedule and cancel a recurring appointment" + href: reschedule-cancel-recurring-appointment.md + - name: "Validate an appointment" + href: validate-appointment.md + - name: Auditing + items: + - name: Audit table data changes + href: audit-entity-data-changes.md + - name: Audit user access + href: audit-user-access.md + - name: Azure integration + items: + - name: Azure aware custom plug-in + href: azure-aware-custom-plugin.md + - name: Azure aware custom workflow activity + href: azure-aware-custom-workflow-activity.md + - name: One-way listener + href: one-way-listener.md + - name: Persistent queue listener + href: persistent-queue-listener.md + - name: REST listener + href: rest-listener.md + - name: Two-way listener + href: two-way-listener.md + - name: Bulk Delete + items: + - name: Bulk delete exported records + href: bulk-delete-exported-records.md + - name: Bulk delete records that match common criteria + href: bulk-delete-records-match-common-criteria.md + - name: Change tracking + items: + - name: Synchronize data with external systems using change tracking + href: synchronize-data-external-systems-using-change-tracking.md + - name: Charts & dashboards + items: + - name: Assign chart to another user + href: assign-chart-to-another-user.md + - name: Assign a user-owned dashboard to another user + href: assign-dashboard-to-another-user.md + - name: Create, retrieve, update and delete a dashboard + href: create-retrieve-update-delete-dashboards.md + - name: Create, retrieve, update and delete chart + href: create-retrieve-update-delete-charts.md + - name: Retrieve all charts attached to a table + href: retrieve-charts-attached-to-entity.md + - name: Connections + items: + - name: Create a connection + href: create-connection-early-bound.md + - name: Create a connection role + href: create-connection-role-early-bound.md + - name: Create a reciprocal connection role + href: create-reciprocal-connection-role-early-bound.md + - name: Query connections by a record + href: query-connections-record-early-bound.md + - name: Query connection roles by entity type code + href: query-connection-roles-entity-type-code-early-bound.md + - name: Query connections by reciprocal roles + href: query-connections-reciprocal-roles-early-bound.md + - name: Update a connection role + href: update-connection-role.md + - name: Currency + items: + - name: Retrieve currency exchange rate + href: retrieve-currency-exchange-rate.md + - name: Customization & metadata + items: + - name: Create a custom activity + href: create-custom-activity.md + - name: Create and retrieve table relationships + href: create-retrieve-entity-relationships.md + - name: Create and update an emailable table + href: create-update-emailable-entity.md + - name: Create and update table definitions + href: create-update-entity-metadata.md + - name: Dump column definitions to a file + href: dump-attribute-metadata.md + - name: Dump table definitions to a file + href: dump-entity-metadata-file.md + - name: Dump table privilege information to a file + href: dump-entity-priviliges.md + - name: Dump table relationships information to a file + href: dump-entity-relationships.md + - name: Dump choices information to a file + href: dump-picklist-information.md + - name: Dump choice information to a file + href: dump-global-option-set.md + - name: Export ribbon definitions + href: export-ribbon-definitions.md + - name: Query schema definitions and detect changes + href: query-metadata-changes.md + - name: Retrieve valid status transitions + href: retrieve-valid-status-transitions.md + - name: Work with columns + href: work-with-attributes.md + - name: Work with choice + href: work-with-option-sets.md + - name: Duplicate Detection + items: + - name: Detect multiple duplicate records + href: detect-multiple-duplicate-records.md + - name: Enable duplicate detection and retrieve duplicates + href: enable-duplicate-detection-and-retrieve-duplicates.md + - name: Use duplicate detection when creating and updating records + href: use-duplicate-detection-when-creating-and-updating-records.md + - name: Table records + items: + - name: Assign a record to a team + href: assign-records-to-team.md + - name: Create and update records with related records + href: create-update-records-with-related-records.md + - name: Early-bound table operations + href: early-bound-entity-operations.md + - name: Late-bound table operations + href: late-bound-entity-operations.md + - name: Initialize a record from an existing record + href: initialize-record-from-existing-record.md + - name: Insert or update a record using Upsert + href: insert-update-record-upsert.md + - name: Merge two records + href: merge-two-records.md + - name: Serialize and deserialize a table + href: serialize-deserialize-entity.md + - name: Share a record using an access team + href: share-record-using-access-team.md + - name: Share records using GrantAccess, ModifyAccess and RevokeAccess messages + href: share-records-using-grantaccess-modifyaccess-revokeaccess-messages.md + - name: Validate and set state of a table + href: validate-record-state.md + - name: File operations with Attachments and Notes + href: attachment-annotation-files.md + - name: Use optimistic concurrency with update and delete operations + href: use-optimistic-concurrency-update-delete-operations.md + - name: Column-Level Security + href: column-level-security.md + - name: Files and images + items: + - name: File Operations + href: file-operations.md + - name: Image Operations + href: set-retrieve-entity-images.md + - name: Attachment and Annotation file operations + href: attachment-annotation-files.md + - name: Goal management + items: + - name: Rollup goal data for a custom period against the target revenue + href: rollup-goal-data-custom-period-target-revenue.md + - name: Rollup goal data for a fiscal period against the stretch target count + href: rollup-goal-data-fiscal-period-stretch-target-count.md + - name: Use rollup queries to track goals + href: use-rollup-queries-track-goals.md + - name: Override goal total count and close the goal + href: override-goal-total-count-close-goal.md + - name: Import data + items: + - name: Export and import a data map + href: export-import-data-map.md + - name: Import data using complex data map + href: import-data-complex-data-map.md + - name: Plug-ins + items: + - name: Create a basic plug-in + href: basic-followup-plugin.md + - name: Modify query in PreOperation stage + href: modify-query-preoperation-stage.md + - name: Web access from a plug-in + href: web-access-plugin.md + - name: IsSystemAdmin custom API + href: issystemadmin-customapi-sample-plugin.md + - name: CreateMultiple & UpdateMultiple plug-ins + href: createmultiple-updatemultiple-plugin.md + - name: ExportDataUsingFetchXmlToAnnotation custom API + href: export-data-fetchxml-annotation-custom-api-sample.md + - name: Query Data + items: + - name: Query data using LINQ + href: query-using-linq.md + - name: Use QueryExpression with a paging cookie + href: use-queryexpression-with-a-paging-cookie.md + - name: Retrieve multiple with the QueryExpression class + href: retrieve-multiple-queryexpression-class.md + - name: Retrieve multiple with the QueryByAttribute class + href: retrieve-multiple-querybyattribute-class.md + - name: Convert queries between Fetch and QueryExpression + href: convert-queries-fetch-queryexpression.md + - name: Retrieve records from an intersect table + href: retrieve-records-intersect-table.md + - name: Validate and execute a saved query + href: validate-execute-saved-query.md + - name: Use aggregation in FetchXML + href: use-aggregation-fetchxml.md + - name: Use FetchXML with a paging cookie + href: use-fetchxml-paging-cookie.md + - name: Queues + items: + - name: Add a record to a queue + href: add-record-queue-early-bound.md + - name: Add a security principal (user or team) to a queue + href: add-security-principal-user-team-queue-early-bound.md + - name: Create a queue + href: create-queues.md + - name: Clean up history for a queue + href: clean-up-history-queue-early-bound.md + - name: Delete a queue + href: delete-queues.md + - name: Release a queue item to the queue + href: release-queue-item-queue-early-bound.md + - name: Share a queue + href: share-queue.md + - name: Specify a queue item to work on + href: specify-queue-item-work-early-bound.md + - name: Reports + items: + - name: Download report definition + href: download-report-definition.md + - name: Get report history limit + href: get-report-history-limit.md + - name: Make report available or unavailable to organization + href: make-report-available-to-organization.md + - name: Publish a report + href: publish-report.md + - name: Rollup + items: + - name: Rollup records related to a specific record + href: rollup-records-related-to-specificed-record.md + - name: SharePoint + items: + - name: Retrieve absolute URL and site collection URL of a location record + href: retrieve-absolute-url-and-site-collection-url-of-a-location-record.md + - name: Special Operations + items: + - name: Bulk operations + href: create-update-multiple.md + - name: Execute multiple requests + href: execute-multiple-requests.md + - name: Execute multiple requests in transaction + href: execute-multiple-transaction.md + - name: Solutions + items: + - name: Work with solutions + href: work-solutions.md + - name: Staging and async import + href: solution-stage-and-import.md + - name: Detect solution dependencies + href: detect-solution-dependencies.md + - name: Time zones + items: + - name: Retrieve time zone information + href: retrieve-time-zone-information.md + - name: Views + items: + - name: Work with views + href: work-with-views.md + - name: Web resources + items: + - name: Import files as web resources + href: import-files-as-web-resources.md + - name: Workflow operations + href: workflow-operations.md diff --git a/powerapps-docs/developer/data-platform/org-service/samples/use-aggregation-fetchxml.md b/powerapps-docs/developer/data-platform/org-service/samples/use-aggregation-fetchxml.md index 6366d602b0..74505a877b 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/use-aggregation-fetchxml.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/use-aggregation-fetchxml.md @@ -2,8 +2,8 @@ title: "Sample: Use aggregation in FetchXML (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample shows how to retrieve aggregate record data using FetchXML." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/use-duplicate-detection-when-creating-and-updating-records.md b/powerapps-docs/developer/data-platform/org-service/samples/use-duplicate-detection-when-creating-and-updating-records.md index d8d2fcfada..f6c182fb1d 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/use-duplicate-detection-when-creating-and-updating-records.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/use-duplicate-detection-when-creating-and-updating-records.md @@ -2,8 +2,8 @@ title: "Sample: Use duplicate detection when creating and updating records (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample shows how to invoke duplicate detection for creating and updating table records" # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/use-fetchxml-paging-cookie.md b/powerapps-docs/developer/data-platform/org-service/samples/use-fetchxml-paging-cookie.md index 0324becf82..ce967c5361 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/use-fetchxml-paging-cookie.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/use-fetchxml-paging-cookie.md @@ -2,8 +2,8 @@ title: "Sample: Use FetchXML with a paging cookie (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample shows how to use the paging cookie in a FetchXML" # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/use-optimistic-concurrency-update-delete-operations.md b/powerapps-docs/developer/data-platform/org-service/samples/use-optimistic-concurrency-update-delete-operations.md index f0627053ec..6aee4c1dd0 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/use-optimistic-concurrency-update-delete-operations.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/use-optimistic-concurrency-update-delete-operations.md @@ -2,8 +2,8 @@ title: "Sample: Use optimistic concurrency with update and delete operations (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample shows how to use optimistic concurrency for update and delete operations." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/use-queryexpression-with-a-paging-cookie.md b/powerapps-docs/developer/data-platform/org-service/samples/use-queryexpression-with-a-paging-cookie.md index 278771140c..eda8298a9b 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/use-queryexpression-with-a-paging-cookie.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/use-queryexpression-with-a-paging-cookie.md @@ -2,8 +2,8 @@ title: "Sample: Use QueryExpresion with a paging cookie (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This sample shows how to use the paging cookie in a QueryExpresion" # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/samples/web-access-plugin.md b/powerapps-docs/developer/data-platform/org-service/samples/web-access-plugin.md index 6a7a3f0a66..10663ee3a4 100644 --- a/powerapps-docs/developer/data-platform/org-service/samples/web-access-plugin.md +++ b/powerapps-docs/developer/data-platform/org-service/samples/web-access-plugin.md @@ -2,8 +2,8 @@ title: "Sample: Web access from a plug-in (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "Learn how to write a plug-in that can access resources on the World Wide Web." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 01/24/2025 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: sample search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/subscribe-sdk-assembly-updates-using-nuget.md b/powerapps-docs/developer/data-platform/org-service/subscribe-sdk-assembly-updates-using-nuget.md index 2b5544b763..f3104bc447 100644 --- a/powerapps-docs/developer/data-platform/org-service/subscribe-sdk-assembly-updates-using-nuget.md +++ b/powerapps-docs/developer/data-platform/org-service/subscribe-sdk-assembly-updates-using-nuget.md @@ -5,8 +5,8 @@ ms.collection: get-started ms.date: 04/14/2023 ms.reviewer: pehecke ms.topic: article -author: MicroSri # GitHub ID -ms.author: sriknair # MSFT alias of Microsoft employees only +author: MsSQLGirl # GitHub ID +ms.author: jukoesma # MSFT alias of Microsoft employees only search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/org-service/use-executeAsync.md b/powerapps-docs/developer/data-platform/org-service/use-executeAsync.md index 875a801fdf..30c2cfff72 100644 --- a/powerapps-docs/developer/data-platform/org-service/use-executeAsync.md +++ b/powerapps-docs/developer/data-platform/org-service/use-executeAsync.md @@ -2,8 +2,8 @@ title: "Use ExecuteAsync to execute messages asynchronously (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "You can use the ExecuteAsync message to import solutions asynchronously." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: "article" search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/use-executetransaction.md b/powerapps-docs/developer/data-platform/org-service/use-executetransaction.md index 9de6704eee..34965c7d76 100644 --- a/powerapps-docs/developer/data-platform/org-service/use-executetransaction.md +++ b/powerapps-docs/developer/data-platform/org-service/use-executetransaction.md @@ -1,9 +1,9 @@ --- title: "Execute messages in a single database transaction (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "You can execute two or more requests in a single database transaction using the ExecuteTransactionRequest class." # 115-145 characters including spaces. This abstract displays in the search result. -ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +ms.date: 05/21/2025 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: "article" search.audienceType: @@ -24,6 +24,8 @@ It is a common requirement in business applications to coordinate changes of mul An may contain one or more instances. An instance may not contain a or . For more information on , see [Execute multiple requests using the SDK for .NET](execute-multiple-requests.md). + More information: [Do not use batch request types in plug-ins and workflow activities](../best-practices/business-logic/avoid-batch-requests-plugin.md) + ## Example This example uses a single web method call to execute all message requests in a collection as part of a single database transaction. Settings to alter the execution behavior are also shown. diff --git a/powerapps-docs/developer/data-platform/org-service/use-late-bound-entity-class-linq-query.md b/powerapps-docs/developer/data-platform/org-service/use-late-bound-entity-class-linq-query.md index 084c10898a..9e60678fde 100644 --- a/powerapps-docs/developer/data-platform/org-service/use-late-bound-entity-class-linq-query.md +++ b/powerapps-docs/developer/data-platform/org-service/use-late-bound-entity-class-linq-query.md @@ -2,10 +2,10 @@ title: "Use late-bound Entity class with a LINQ query (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "Read how you can use late binding with .NET Language-Integrated Query (LINQ) queries." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke -ms.topic: "article" +ms.topic: how-to search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/org-service/use-linq-construct-query.md b/powerapps-docs/developer/data-platform/org-service/use-linq-construct-query.md index 6c278ddd1f..a0f09d3a36 100644 --- a/powerapps-docs/developer/data-platform/org-service/use-linq-construct-query.md +++ b/powerapps-docs/developer/data-platform/org-service/use-linq-construct-query.md @@ -2,10 +2,10 @@ title: "Use LINQ to construct a query (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "Describes how to use the .NET Language-Integrated Query (LINQ) query provider to construct a Microsoft Dataverse query." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke -ms.topic: "article" +ms.topic: how-to search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/org-service/use-messages.md b/powerapps-docs/developer/data-platform/org-service/use-messages.md index 4dcae85862..3d28694983 100644 --- a/powerapps-docs/developer/data-platform/org-service/use-messages.md +++ b/powerapps-docs/developer/data-platform/org-service/use-messages.md @@ -3,10 +3,10 @@ title: "Use messages with the SDK for .NET (Microsoft Dataverse) | Microsoft Doc description: "Understand how messages are used to invoke operations using the SDK for .NET." ms.collection: get-started ms.date: 03/26/2024 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/org-service/use-querybyattribute-class.md b/powerapps-docs/developer/data-platform/org-service/use-querybyattribute-class.md index 228e00041c..035ef3d81c 100644 --- a/powerapps-docs/developer/data-platform/org-service/use-querybyattribute-class.md +++ b/powerapps-docs/developer/data-platform/org-service/use-querybyattribute-class.md @@ -2,8 +2,8 @@ title: "Use the QueryByAttribute class (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "You can use the QueryByAttribute class to build queries that test a set of columns against a set of values" ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: "article" search.audienceType: diff --git a/powerapps-docs/developer/data-platform/org-service/visual-studio-dot-net-framework.md b/powerapps-docs/developer/data-platform/org-service/visual-studio-dot-net-framework.md index 0492cec766..024be707e1 100644 --- a/powerapps-docs/developer/data-platform/org-service/visual-studio-dot-net-framework.md +++ b/powerapps-docs/developer/data-platform/org-service/visual-studio-dot-net-framework.md @@ -3,8 +3,8 @@ title: "Visual Studio and the .NET Framework (Microsoft Dataverse) | Microsoft D description: "Learn about managed code development tools and requirements." ms.collection: get-started ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: "article" search.audienceType: diff --git a/powerapps-docs/developer/data-platform/organization-table.md b/powerapps-docs/developer/data-platform/organization-table.md index 739a0a54c9..fa32b8c35c 100644 --- a/powerapps-docs/developer/data-platform/organization-table.md +++ b/powerapps-docs/developer/data-platform/organization-table.md @@ -1,12 +1,12 @@ --- title: "Read and update environment settings (Microsoft Dataverse)" description: "Change environment settings in the organization table." -ms.date: 06/28/2023 -ms.reviewer: jdaly +ms.date: 06/10/2025 ms.topic: article -author: MicroSri +author: MsSQLGirl +ms.author: jukoesma +ms.reviewer: jdaly ms.subservice: dataverse-developer -ms.author: sriknair search.audienceType: - developer contributors: @@ -28,7 +28,7 @@ For example, the following columns are supported because they're mentioned in th |Setting|Link to documentation| |---------|---------| -|[IsAuditEnabled](reference/entities/organization.md#BKMK_IsAuditEnabled)
[AuditRetentionPeriodV2](reference/entities/organization.md#BKMK_AuditRetentionPeriodV2)
[IsUserAccessAuditEnabled](reference/entities/organization.md#BKMK_IsUserAccessAuditEnabled)
[UserAccessAuditingInterval](reference/entities/organization.md#BKMK_UserAccessAuditingInterval)|[Configure auditing](auditing/configure.md)| +|[AuditSettings](reference/entities/organization.md#BKMK_AuditSettings)
[IsAuditEnabled](reference/entities/organization.md#BKMK_IsAuditEnabled)
[AuditRetentionPeriodV2](reference/entities/organization.md#BKMK_AuditRetentionPeriodV2)
[IsUserAccessAuditEnabled](reference/entities/organization.md#BKMK_IsUserAccessAuditEnabled)
[UserAccessAuditingInterval](reference/entities/organization.md#BKMK_UserAccessAuditingInterval)|[Configure auditing](auditing/configure.md)| |[ExpireSubscriptionsInDays](reference/entities/organization.md#BKMK_ExpireSubscriptionsInDays)|[Cache Schema data](cache-schema-data.md)| |[MaxUploadFileSize](reference/entities/organization.md#BKMK_MaxUploadFileSize)
[BlockedAttachments](reference/entities/organization.md#BKMK_BlockedAttachments)
[BlockedMimeTypes](reference/entities/organization.md#BKMK_BlockedMimeTypes)
[AllowedMimeTypes](reference/entities/organization.md#BKMK_AllowedMimeTypes)|[Files and images overview](files-images-overview.md)| |[PluginTraceLogSetting](reference/entities/organization.md#BKMK_PluginTraceLogSetting)|[Tracing and logging](logging-tracing.md)| diff --git a/powerapps-docs/developer/data-platform/plug-ins.md b/powerapps-docs/developer/data-platform/plug-ins.md index bdce3b0762..0ecd458be2 100644 --- a/powerapps-docs/developer/data-platform/plug-ins.md +++ b/powerapps-docs/developer/data-platform/plug-ins.md @@ -5,9 +5,9 @@ ms.collection: get-started ms.date: 01/24/2024 ms.reviewer: pehecke ms.topic: article -author: MicroSri +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/query-antipatterns.md b/powerapps-docs/developer/data-platform/query-antipatterns.md index 5408971f1e..f6daf292df 100644 --- a/powerapps-docs/developer/data-platform/query-antipatterns.md +++ b/powerapps-docs/developer/data-platform/query-antipatterns.md @@ -2,9 +2,9 @@ title: "Query anti-patterns (Microsoft Dataverse)" description: "Read about patterns to avoid when constructing queries to retrieve data from Dataverse." ms.date: 01/06/2025 -ms.topic: article -author: pnghub -ms.author: gned +ms.topic: how-to +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.subservice: dataverse-developer search.audienceType: @@ -74,7 +74,7 @@ Dataverse [heavily throttles](query-throttling.md) leading wild card queries tha > Name: `DataEngineLeadingWildcardQueryThrottling`
> Code: `0x80048644`
> Number: `-2147187132`
-> Message: `This query cannot be executed because it conflicts with Query Throttling; the query uses a leading wildcard value in a filter condition, which will cause the query to be throttled more aggressively.` +> Message: `This query cannot be executed because it conflicts with Query Throttling; the query uses a leading wildcard value in a filter condition, which will cause the query to be throttled more aggressively.`
or
`This query is throttled as it negatively impacts the database health; the query uses a leading wildcard value in a filter condition, which will cause the query to be throttled more aggressively.` If you find yourself using leading wild card queries, look into these options: @@ -96,7 +96,7 @@ Database collation unicode sorting rules make some search strings that start wit ## Avoid using formula or calculated columns in filter conditions -[Formula and calculated column](calculated-rollup-attributes.md#formula-and-calculated-columns) values are calculated in real-time when they're retrieved. Queries that use filters on these columns force Dataverse to calculate the value for each possible record that can be returned so the filter can be applied. Queries are slower because Dataverse can't improve the performance of these queries using SQL. +[Formula and calculated column](specialized-columns.md#formula-and-calculated-columns) values are calculated in real-time when they're retrieved. Queries that use filters on these columns force Dataverse to calculate the value for each possible record that can be returned so the filter can be applied. Queries are slower because Dataverse can't improve the performance of these queries using SQL. When queries time out and this pattern is detected, Dataverse returns a unique error to help identify which queries are using this pattern: @@ -110,7 +110,7 @@ Dataverse [heavily throttles](query-throttling.md) queries that have filters on > Name: `DataEngineComputedColumnQueryThrottling`
> Code: `0x80048744`
> Number: `-2147186876`
-> Message: `This query cannot be executed because it conflicts with Query Throttling; the query uses a computed column in a filter condition, which will cause the query to be throttled more aggressively.` +> Message: `This query cannot be executed because it conflicts with Query Throttling; the query uses a computed column in a filter condition, which will cause the query to be throttled more aggressively.`
or
`This query is throttled as it negatively impacts the database health; the query uses a computed column in a filter condition, which will cause the query to be throttled more aggressively.` ## Avoid ordering by choice columns diff --git a/powerapps-docs/developer/data-platform/query-json-columns-elastic-tables.md b/powerapps-docs/developer/data-platform/query-json-columns-elastic-tables.md index afa54a98ce..c726a26154 100644 --- a/powerapps-docs/developer/data-platform/query-json-columns-elastic-tables.md +++ b/powerapps-docs/developer/data-platform/query-json-columns-elastic-tables.md @@ -1,10 +1,10 @@ --- title: Query JSON columns in elastic tables description: Learn how to query data stored in JSON columns with Dataverse elastic tables with code. -ms.topic: article +ms.topic: how-to ms.date: 12/04/2023 -author: pnghub -ms.author: gned +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/query-throttling.md b/powerapps-docs/developer/data-platform/query-throttling.md index 7dc5d097c7..2dbbfceac3 100644 --- a/powerapps-docs/developer/data-platform/query-throttling.md +++ b/powerapps-docs/developer/data-platform/query-throttling.md @@ -5,9 +5,9 @@ ms.date: 01/08/2025 ms.topic: article applies_to: - "Dynamics 365 (online)" -author: pnghub +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: gned +ms.author: jukoesma ms.reviewer: pehecke search.audienceType: - developer @@ -29,10 +29,10 @@ Throttling can manifest in three ways: |Error code
Hex code|Name|Message| |---|---|---| -|`-2147187388`
`0x80048544`|`DataEngineQueryThrottling`|`This query cannot be executed because it conflicts with query throttling.`| -|`-2147187132`
`0x80048644`|`DataEngineLeadingWildcardQueryThrottling`|`This query cannot be executed because it conflicts with Query Throttling; the query uses a leading wildcard value in a filter condition, which will cause the query to be throttled more aggressively.`| -|`-2147186876`
`0x80048744`|`DataEngineComputedColumnQueryThrottling`|`This query cannot be executed because it conflicts with Query Throttling; the query uses a computed column in a filter condition, which will cause the query to be throttled more aggressively.` | -|`-2147186875`
`0x80048745`|`DataEnginePerformanceValidationIssuesQueryThrottling`|`This query cannot be executed because it conflicts with Query Throttling; the query has performance validation issues ({0}), which will cause the query to be throttled more aggressively.` | +|`-2147187388`
`0x80048544`|`DataEngineQueryThrottling`|`This query cannot be executed because it conflicts with query throttling.`
or
`This query is throttled as it negatively impacts the database health.`| +|`-2147187132`
`0x80048644`|`DataEngineLeadingWildcardQueryThrottling`|`This query cannot be executed because it conflicts with Query Throttling; the query uses a leading wildcard value in a filter condition, which will cause the query to be throttled more aggressively.`
or
`This query is throttled as it negatively impacts the database health; the query uses a leading wildcard value in a filter condition, which will cause the query to be throttled more aggressively.`| +|`-2147186876`
`0x80048744`|`DataEngineComputedColumnQueryThrottling`|`This query cannot be executed because it conflicts with Query Throttling; the query uses a computed column in a filter condition, which will cause the query to be throttled more aggressively.`
or
`This query is throttled as it negatively impacts the database health; the query uses a computed column in a filter condition, which will cause the query to be throttled more aggressively.`| +|`-2147186875`
`0x80048745`|`DataEnginePerformanceValidationIssuesQueryThrottling`|`This query cannot be executed because it conflicts with Query Throttling; the query has performance validation issues ({0}), which will cause the query to be throttled more aggressively.`
or
`This query is throttled as it negatively impacts the database health; the query has performance validation issues ({0}), which will cause the query to be throttled more aggressively.`| ## Dataverse error for query throttling caused by anti-patterns @@ -43,7 +43,9 @@ When a query fails due to throttling and the query is using one of the anti-patt > Name: `DataEnginePerformanceValidationIssuesQueryThrottling`
> Code: `0x80048745`
> Number: `-2147186875`
-> Message: `This query cannot be executed because it conflicts with Query Throttling; the query has performance validation issues ({0}), which will cause the query to be throttled more aggressively. Please refer to this document: https://go.microsoft.com/fwlink/?linkid=2162952` +> Message: `This query cannot be executed because it conflicts with Query Throttling; the query has performance validation issues ({0}), which will cause the query to be throttled more aggressively. Please refer to this document: https://go.microsoft.com/fwlink/?linkid=2162952` +
or
+`This query is throttled as it negatively impacts the database health; the query has performance validation issues ({0}), which will cause the query to be throttled more aggressively. Please refer to this document: https://go.microsoft.com/fwlink/?linkid=2162952` [!INCLUDE [cc-query-antipattern-enum-table](includes/cc-query-antipattern-enum-table.md)] diff --git a/powerapps-docs/developer/data-platform/quick-find.md b/powerapps-docs/developer/data-platform/quick-find.md index 52c58bdb95..1f849f9644 100644 --- a/powerapps-docs/developer/data-platform/quick-find.md +++ b/powerapps-docs/developer/data-platform/quick-find.md @@ -4,9 +4,9 @@ description: "Learn how about Dataverse quick find queries and their limitations ms.date: 01/30/2024 ms.reviewer: jdaly ms.topic: article -author: pnghub +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: gned +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/quick-start-register-configure-simplespa-application-msal-js.md b/powerapps-docs/developer/data-platform/quick-start-register-configure-simplespa-application-msal-js.md deleted file mode 100644 index 4237406a8d..0000000000 --- a/powerapps-docs/developer/data-platform/quick-start-register-configure-simplespa-application-msal-js.md +++ /dev/null @@ -1,436 +0,0 @@ ---- -title: "Quickstart: Register and configure a SPA application for Dataverse using msal.js (Microsoft Dataverse) | Microsoft Docs" -description: "Describes the process of registering and configuring the simplest Single-Page Application (SPA) to access data in Microsoft Dataverse using msal.js and Cross-origin Resource Sharing (CORS)." -ms.date: 09/09/2022 -ms.topic: quickstart -author: ritesp # GitHub ID -ms.subservice: dataverse-developer -ms.author: ritesp # MSFT alias of Microsoft employees only -ms.reviewer: jdaly -search.audienceType: - - developer -contributors: - - JimDaly ---- - -# Quickstart: Register and configure a SPA application for Dataverse using msal.js - -This topic describes the process of registering and configuring the simplest Single-Page Application (SPA) to access data in Microsoft Dataverse using msal.js and Cross-origin Resource Sharing (CORS). More information: [Use OAuth with Cross-Origin Resource Sharing to connect a Single-Page Application to Dataverse ](oauth-cross-origin-resource-sharing-connect-single-page-application.md). - -## Prerequisites - -- Access to a Dataverse environment. -- An Azure account with an active subscription. -- The Azure account must have permission to manage applications in Microsoft Entra ID. Any of the following Microsoft Entra ID roles include the required permissions: - - - [Application administrator](/azure/active-directory/roles/permissions-reference#application-administrator) - - [Application developer](/azure/active-directory/roles/permissions-reference#application-developer) - - [Cloud application administrator](/azure/active-directory/roles/permissions-reference#cloud-application-administrator) - -- Visual Studio Code (VS Code) [Download](https://code.visualstudio.com/download) - - - -## Goal of this quick start - -When you complete this quick start you will be able to run a simple SPA application that will provide the ability for a user to authenticate and retrieve data from Dataverse. - -When you debug the application initially there will only be a **Login** button. - -- Click **Login** and a pop-up will open to enter your credentials. -- After you enter your credentials you will find the **Login** button is hidden and a **Logout** button and a **Get Accounts** button are visible. You will also see a greeting using information from your user account. -- Click the **Get Accounts** button to retrieve 10 account records from your Dataverse organization. The result is shown in the following screenshot: - - ![The SimpleSPA page.](media/simple-spa.png "The SimpleSPA page") - -- Finally, you can click on **Logout** button to logout. - -> [!NOTE] -> This SPA application is not intended to represent a pattern for developing robust SPA applications. It is simplified to focus on the process of registering and configuring the application. - -## Get your Dataverse Web API endpoint - -Use the instructions in [View developer resources](view-download-developer-resources.md) to identify a Web API endpoint for an environment you can access. It should look something like this: `https://yourorg.api.crm.dynamics.com/api/data/v9.2`. - -## Register your application - -1. From [Power Platform admin center](https://admin.powerplatform.microsoft.com) in the left navigation expand **Admin centers** and select **Microsoft Entra ID**. - - :::image type="content" source="media/azure-active-directory-from-ppac.png" alt-text="Microsoft Entra ID from Power Platform Admin Center"::: - - This will open the **Microsoft Entra admin center** - -1. Expand **Applications** and select **App registrations**. - - :::image type="content" source="media/aad-app-registrations-from-entra-admin-center.png" alt-text="Azure App registrations from Microsoft Entra admin center"::: - -1. Click **New registration**. This will open the **Register an application** form. - - :::image type="content" source="media/aad-app-registration-form.png" alt-text="Register and application form"::: - -1. In the **Register an application** form, type a **Name**. For the purpose of this quickstart, use the name *Simple SPA*. -1. For **Supported account types**, the default selection should be:
**Accounts in this organizational directory only (<tenant name> only – Single tenant)**. Don't change this. -1. For **Redirect URI (optional)**, use these options: - - - **Select a platform**: Single-page application (SPA) - - `e.g. https://example.com/auth`: `http://localhost:5500/index.html` - -1. Click **Register**. -1. In the **Overview** area, copy the following values because you will need them in the final step of [Create a web application project](#create-a-web-application-project). - - - **Application (client) ID** - - **Directory (tenant) ID** - -1. Select **API permissions**. -1. Click **Add a permission**. -1. In the **Request API permissions** fly-out, select **Dynamics CRM**. - - - If you don't see **Dynamics CRM**, look for **Dataverse**. Or select the **APIs my organization uses** tab and search for *Dataverse*. - -1. Select the **user_impersonation** delegated permission. -1. Click **Add permissions**. - -The configured permissions should look like this when you are done: - -:::image type="content" source="media/configured-permissions-for-simple-spa-app.png" alt-text="Configured permissions for Simple SPA app"::: - -## Install Live Server Visual Studio Code extension - -[Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer) is a Visual Studio Code extension that allows you to easily launch a local development server for web pages. - -1. Use these instructions to find and install the Live Server extension for VS Code in the VS Code marketplace: - - - [Browse for extensions](https://code.visualstudio.com/docs/editor/extension-marketplace#_browse-for-extensions) - - [Install an extension](https://code.visualstudio.com/docs/editor/extension-marketplace#_install-an-extension) - -1. After you have installed the Live Server extension, make these changes to the default settings. -1. Click the gear icon :::image type="icon" source="media/vscode-gear-icon.png" border="false"::: in VS Code and select **Settings** , or use the `Ctrl+,` keyboard shortcut. -1. In the search window type `liveServer.settings.host` and change the default value from `127.0.0.1` to `localhost`. - -## Create a web application project - -1. Create a folder on your computer. The name is not important but for the purpose of these instructions name it `simplespa`. -1. Open VS Code and select **File** > **Open Folder** in the menu. Select the `simplespa` folder. -1. Create a new HTML file in the folder named `index.html`. (Not `index.htm`) -1. Copy the contents below into the index.html file: - - ```html - - - - - - - - - - - -
- - - -
- - - - -
- - - - ``` - - > [!NOTE] - > The JavaScript code in the HTML page was adapted from the sample code published here: [https://github.com/Azure-Samples/ms-identity-javascript-v2](https://github.com/Azure-Samples/ms-identity-javascript-v2) which connects to Microsoft Graph. - > - > The key difference is the scopes used when getting the access token. - > - > Use these scopes for the login button: - > ```javascript - > // Called by the loginButton - > function signIn() { - > myMSALObj.loginPopup({ - > scopes: ["User.Read",baseUrl+"/user_impersonation"] //<= Includes Dataverse scope - > }) - > ``` - > These scopes include both the Microsoft Graph `User.Read` scope, but also the Dataverse `user_impersonation` scope. - > By including both of these scopes when signing in, the inital consent dialog will include all the necessary scopes used in the applicaiton. - > - > Then, when specifying the scope used for the call to Dataverse you can use either `/.default` or `/user_impersonation`. - > - > ```javascript - > // Retrieves top 10 account records from Dataverse - > function getAccounts(callback) { - > // Gets the access token - > getTokenPopup({ - > scopes: [baseUrl+"/.default"] - > }) - > ``` - > - > `/user_impersonation` scope only works for delegated permissions, which is the case here, so it could be used. `/.default` works for both delegated and application permissions. - > - > If you don't include the `baseUrl+"/user_impersonation"` scope when logging in, the user will have to consent a second time when they click the **Get Accounts** button for the first time. - > - > - > You can find other SPA examples and tutorials here: [Single-page application (SPA) documentation](/azure/active-directory/develop/index-spa). - -1. Within the index.html page, locate the following configuration variables and set them using the information you gathered in earlier steps: [Get your Dataverse Web API endpoint](#get-your-dataverse-web-api-endpoint) and [Register your application](#register-your-application). - - ```javascript - const baseUrl = "https://org.api.crm.dynamics.com"; //<= Change this - const clientId = "00001111-aaaa-2222-bbbb-3333cccc4444"; //<= Change this - const tenantId = "aaaabbbb-0000-cccc-1111-dddd2222eeee"; //<= Change this - ``` - -## Debug the app - -Because you installed the Live Server extension in [Install Live Server Visual Studio Code extension](#install-live-server-visual-studio-code-extension), in the VS Code tool bar you should find this button: :::image type="icon" source="media/vscode-live-server-go-live-button.png" border="false":::. - -1. Click the **Go Live** button and a new browser window will open to `http://localhost:5500/index.html` rendering the index.html page. - - The first time you run the app and click the **Login** button, you will get a consent dialog like this: - - :::image type="content" source="media/permissions-requested-dialog.png" alt-text="Permissions requested dialog"::: - - If you are an administrator, you can select the **Consent on behalf of your organization** checkbox which will enable others to also run the app without having to use the **Permissions requested** dialog. - -1. Click **Accept** to continue testing to verify that the app works as described in [Goal of this quick start](#goal-of-this-quick-start). - -## Troubleshooting - -The experience in this quick start depends on the Live Server port setting to be the default value: `5500`. If you already have Live Server installed and have modified the port setting, you will need to change the default setting or the URL set in the app registration. - -Please note that the `liveServer.settings.port` may also be set for the **Workspace** and will override the **User** setting. - -If you open multiple Live Server instances, the port setting may increment to 5501 or higher. This will break the callback used for authentication because the port is 'hard-coded' into the application registration as `http://localhost:5500/index.html`. - -### See also - -[Single-page application (SPA) documentation](/azure/active-directory/develop/index-spa)
-[Use OAuth with Cross-Origin Resource Sharing to connect a Single-Page Application to Dataverse](oauth-cross-origin-resource-sharing-connect-single-page-application.md)
-[Create client applications](connect-dataverse.md) - -[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/recurring-appointment-partial-expansion-model.md b/powerapps-docs/developer/data-platform/recurring-appointment-partial-expansion-model.md index 078b2b2f0a..8426ba024f 100644 --- a/powerapps-docs/developer/data-platform/recurring-appointment-partial-expansion-model.md +++ b/powerapps-docs/developer/data-platform/recurring-appointment-partial-expansion-model.md @@ -5,7 +5,7 @@ ms.custom: "" ms.date: 03/25/2021 ms.reviewer: "pehecke" -ms.topic: "article" +ms.topic: how-to author: "mayadumesh" # GitHub ID ms.subservice: dataverse-developer ms.author: "jdaly" # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/reference/entities/activitymimeattachment.md b/powerapps-docs/developer/data-platform/reference/entities/activitymimeattachment.md index 6f8de063d9..30692b0a27 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/activitymimeattachment.md +++ b/powerapps-docs/developer/data-platform/reference/entities/activitymimeattachment.md @@ -382,7 +382,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |Property|Value| |---|---| -|Description|**Unique identifier of the user or team who owns the activity_mime_attachment.**| +|Description|**Unique identifier of the user or team who owns the activity\_mime\_attachment.**| |DisplayName|**Owner**| |IsValidForForm|False| |IsValidForRead|True| diff --git a/powerapps-docs/developer/data-platform/reference/entities/activityparty.md b/powerapps-docs/developer/data-platform/reference/entities/activityparty.md index 0852d6ee84..991efbbfb6 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/activityparty.md +++ b/powerapps-docs/developer/data-platform/reference/entities/activityparty.md @@ -19,6 +19,7 @@ Messages represent operations that can be performed on the table. They may also | Name
Is Event? |Web API Operation |SDK for .NET | | ---- | ----- |----- | +| `AppendRelatedParty`
Event: True |**AppendRelatedParty action** |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| | `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| | `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| | `RetrieveMultiple`
Event: True |`GET` /activityparties
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| @@ -382,7 +383,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |Property|Value| |---|---| -|Description|**Unique identifier of the user or team who owns the activity_party.**| +|Description|**Unique identifier of the user or team who owns the activity\_party.**| |DisplayName|**Owner**| |IsValidForForm|False| |IsValidForRead|True| diff --git a/powerapps-docs/developer/data-platform/reference/entities/aiplugin.md b/powerapps-docs/developer/data-platform/reference/entities/aiplugin.md index 0947cccd03..7551e49ed4 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/aiplugin.md +++ b/powerapps-docs/developer/data-platform/reference/entities/aiplugin.md @@ -493,7 +493,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**Swagger value that is upserted to generated plugin definition, used to provide override for properties not exposed as table/columns.Example:{ "info": { "x-ms-keywords": [ "sales", "support" ] }}Adds x-ms-keywords in info property.**| +|Description|**Swagger value that is upserted to generated plugin definition, used to provide override for properties not exposed as table/columns.Example:\{ "info": \{ "x-ms-keywords": \[ "sales", "support" \] \}\}Adds x-ms-keywords in info property.**| |DisplayName|**UpsertSwagger**| |IsValidForForm|True| |IsValidForRead|True| diff --git a/powerapps-docs/developer/data-platform/reference/entities/annotation.md b/powerapps-docs/developer/data-platform/reference/entities/annotation.md index aa50b1d8d3..bda32dcd21 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/annotation.md +++ b/powerapps-docs/developer/data-platform/reference/entities/annotation.md @@ -212,7 +212,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |LogicalName|`objectid`| |RequiredLevel|None| |Type|Lookup| -|Targets|account, adx_invitation, adx_inviteredemption, adx_portalcomment, appointment, calendar, channelaccessprofile, channelaccessprofilerule, channelaccessprofileruleitem, chat, contact, convertrule, duplicaterule, email, emailserverprofile, fax, goal, kbarticle, knowledgearticle, knowledgebaserecord, letter, mailbox, msdyn_aifptrainingdocument, msdyn_aimodel, msdyn_aiodimage, msdyn_flow_approval, mspcat_catalogsubmissionfiles, phonecall, recurringappointmentmaster, routingrule, routingruleitem, sharepointdocument, sla, socialactivity, task, workflow| +|Targets|account, adx_invitation, adx_inviteredemption, adx_portalcomment, appointment, approvalprocess, approvalstageapproval, calendar, channelaccessprofile, channelaccessprofilerule, channelaccessprofileruleitem, chat, contact, convertrule, duplicaterule, email, emailserverprofile, fax, goal, kbarticle, knowledgearticle, knowledgebaserecord, letter, mailbox, msdyn_aifptrainingdocument, msdyn_aimodel, msdyn_aiodimage, msdyn_flow_approval, mspcat_catalogsubmissionfiles, phonecall, recurringappointmentmaster, routingrule, routingruleitem, sharepointdocument, sla, socialactivity, task, workflow| ### ObjectIdTypeCode @@ -637,6 +637,8 @@ These relationships are many-to-one. Listed by **SchemaName**. - [adx_portalcomment_Annotations](#BKMK_adx_portalcomment_Annotations) - [annotation_owning_user](#BKMK_annotation_owning_user) - [Appointment_Annotation](#BKMK_Appointment_Annotation) +- [approvalprocess_Annotations](#BKMK_approvalprocess_Annotations) +- [approvalstageapproval_Annotations](#BKMK_approvalstageapproval_Annotations) - [business_unit_annotations](#BKMK_business_unit_annotations) - [Calendar_Annotation](#BKMK_Calendar_Annotation) - [chat_Annotations](#BKMK_chat_Annotations) @@ -747,6 +749,32 @@ One-To-Many Relationship: [appointment Appointment_Annotation](appointment.md#BK |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `Cascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `Cascade`
Unshare: `Cascade`| +### approvalprocess_Annotations + +One-To-Many Relationship: [approvalprocess approvalprocess_Annotations](approvalprocess.md#BKMK_approvalprocess_Annotations) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalprocess`| +|ReferencedAttribute|`approvalprocessid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_approvalprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `Cascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `Cascade`
Unshare: `Cascade`| + +### approvalstageapproval_Annotations + +One-To-Many Relationship: [approvalstageapproval approvalstageapproval_Annotations](approvalstageapproval.md#BKMK_approvalstageapproval_Annotations) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageapproval`| +|ReferencedAttribute|`approvalstageapprovalid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_approvalstageapproval`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `Cascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `Cascade`
Unshare: `Cascade`| + ### business_unit_annotations One-To-Many Relationship: [businessunit business_unit_annotations](businessunit.md#BKMK_business_unit_annotations) diff --git a/powerapps-docs/developer/data-platform/reference/entities/appointment.md b/powerapps-docs/developer/data-platform/reference/entities/appointment.md index 9c11147fd0..4de9e8a5e6 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/appointment.md +++ b/powerapps-docs/developer/data-platform/reference/entities/appointment.md @@ -507,7 +507,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**Unique identifier of the Microsoft Office Outlook appointment owner that correlates to the PR_OWNER_APPT_ID MAPI property.**| +|Description|**Unique identifier of the Microsoft Office Outlook appointment owner that correlates to the PR\_OWNER\_APPT\_ID MAPI property.**| |DisplayName|**Outlook Appointment Owner**| |IsValidForForm|False| |IsValidForRead|True| diff --git a/powerapps-docs/developer/data-platform/reference/entities/approvalprocess.md b/powerapps-docs/developer/data-platform/reference/entities/approvalprocess.md new file mode 100644 index 0000000000..ac217969a0 --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/approvalprocess.md @@ -0,0 +1,930 @@ +--- +title: "Approval Process (approvalprocess) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the Approval Process (approvalprocess) table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# Approval Process (approvalprocess) table/entity reference (Microsoft Dataverse) + +Approval Process for Multi-Stage Approvals + +## Messages + +The following table lists the messages for the Approval Process (approvalprocess) table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Assign`
Event: True |`PATCH` /approvalprocesses(*approvalprocessid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /approvalprocesses
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /approvalprocesses(*approvalprocessid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `GrantAccess`
Event: True | || +| `IsValidStateTransition`
Event: False | || +| `ModifyAccess`
Event: True | || +| `Retrieve`
Event: True |`GET` /approvalprocesses(*approvalprocessid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /approvalprocesses
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `RetrievePrincipalAccess`
Event: True | || +| `RetrieveSharedPrincipalsAndAccess`
Event: True | || +| `RevokeAccess`
Event: True | || +| `SetState`
Event: True |`PATCH` /approvalprocesses(*approvalprocessid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /approvalprocesses(*approvalprocessid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /approvalprocesses(*approvalprocessid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + + +## Events + +The following table lists the events for the Approval Process (approvalprocess) table. +Events are messages that exist so that you can subscribe to them. Unless you added the event, you shouldn't invoke the message, only subscribe to it. + +|Name|Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `BulkRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `PurgeRetainedContent`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `Retain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `RollbackRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `ValidateRetentionConfig`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| + +## Properties + +The following table lists selected properties for the Approval Process (approvalprocess) table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **Approval Process** | +| **DisplayCollectionName** | **Approval Processes** | +| **SchemaName** | `approvalprocess` | +| **CollectionSchemaName** | `approvalprocesses` | +| **EntitySetName** | `approvalprocesses`| +| **LogicalName** | `approvalprocess` | +| **LogicalCollectionName** | `approvalprocesses` | +| **PrimaryIdAttribute** | `approvalprocessid` | +| **PrimaryNameAttribute** |`name` | +| **TableType** | `Standard` | +| **OwnershipType** | `UserOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [approvalprocessId](#BKMK_approvalprocessId) +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [IsCustomizable](#BKMK_IsCustomizable) +- [MetadataVersion](#BKMK_MetadataVersion) +- [name](#BKMK_name) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [statecode](#BKMK_statecode) +- [statuscode](#BKMK_statuscode) +- [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [UniqueName](#BKMK_UniqueName) +- [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) + +### approvalprocessId + +|Property|Value| +|---|---| +|Description|**Unique identifier for approval process**| +|DisplayName|**Approval Process**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`approvalprocessid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### IsCustomizable + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Is Customizable**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`iscustomizable`| +|RequiredLevel|SystemRequired| +|Type|ManagedProperty| + +### MetadataVersion + +|Property|Value| +|---|---| +|Description|**Metadata version for parsing.**| +|DisplayName|**Metadata Version**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`metadataversion`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|0| + +### name + +|Property|Value| +|---|---| +|Description|**The name of the approval process.**| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`name`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|850| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### statecode + +|Property|Value| +|---|---| +|Description|**Status of the Approval Process**| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statecode`| +|RequiredLevel|SystemRequired| +|Type|State| +|DefaultFormValue|| +|GlobalChoiceName|`approvalprocess_statecode`| + +#### statecode Choices/Options + +|Value|Details| +|---|---| +|0|Label: **Active**
DefaultStatus: 1
InvariantName: `Active`| +|1|Label: **Inactive**
DefaultStatus: 2
InvariantName: `Inactive`| + +### statuscode + +|Property|Value| +|---|---| +|Description|**Reason for the status of the Approval Process**| +|DisplayName|**Status Reason**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Status| +|DefaultFormValue|| +|GlobalChoiceName|`approvalprocess_statuscode`| + +#### statuscode Choices/Options + +|Value|Details| +|---|---| +|1|Label: **Active**
State:0
TransitionData: None| +|2|Label: **Inactive**
State:1
TransitionData: None| + +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### UniqueName + +|Property|Value| +|---|---| +|Description|**Unique Name for the entity.**| +|DisplayName|**Unique Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`uniquename`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|128| + +### UTCConversionTimeZoneCode + +|Property|Value| +|---|---| +|Description|**Time zone code that was in use when the record was created.**| +|DisplayName|**UTC Conversion Time Zone Code**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`utcconversiontimezonecode`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [ComponentIdUnique](#BKMK_ComponentIdUnique) +- [ComponentState](#BKMK_ComponentState) +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [Inputs](#BKMK_Inputs) +- [Inputs_Name](#BKMK_Inputs_Name) +- [IsManaged](#BKMK_IsManaged) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OverwriteTime](#BKMK_OverwriteTime) +- [OwnerIdName](#BKMK_OwnerIdName) +- [OwnerIdYomiName](#BKMK_OwnerIdYomiName) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) +- [OwningTeam](#BKMK_OwningTeam) +- [OwningUser](#BKMK_OwningUser) +- [SolutionId](#BKMK_SolutionId) +- [Stages](#BKMK_Stages) +- [Stages_Name](#BKMK_Stages_Name) +- [SupportingSolutionId](#BKMK_SupportingSolutionId) +- [VersionNumber](#BKMK_VersionNumber) + +### ComponentIdUnique + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Row id unique**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentidunique`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### ComponentState + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Component State**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentstate`| +|RequiredLevel|SystemRequired| +|Type|Picklist| +|DefaultFormValue|| +|GlobalChoiceName|`componentstate`| + +#### ComponentState Choices/Options + +|Value|Label| +|---|---| +|0|**Published**| +|1|**Unpublished**| +|2|**Deleted**| +|3|**Deleted Unpublished**| + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### Inputs + +|Property|Value| +|---|---| +|Description|**The input variables for the multi-stage approvals.**| +|DisplayName|**Inputs**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`inputs`| +|RequiredLevel|None| +|Type|File| +|MaxSizeInKB|32768| + +### Inputs_Name + +|Property|Value| +|---|---| +|Description|| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`inputs_name`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Disabled| +|IsLocalizable|False| +|MaxLength|200| + +### IsManaged + +|Property|Value| +|---|---| +|Description|**Indicates whether the solution component is part of a managed solution.**| +|DisplayName|**Is Managed**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`ismanaged`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`ismanaged`| +|DefaultValue|False| +|True Label|Managed| +|False Label|Unmanaged| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### OverwriteTime + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Record Overwrite Time**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overwritetime`| +|RequiredLevel|SystemRequired| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerIdName + +|Property|Value| +|---|---| +|Description|**Name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwnerIdYomiName + +|Property|Value| +|---|---| +|Description|**Yomi name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridyominame`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|SystemRequired| +|Type|Lookup| +|Targets|businessunit| + +### OwningTeam + +|Property|Value| +|---|---| +|Description|**Unique identifier for the team that owns the record.**| +|DisplayName|**Owning Team**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningteam`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|team| + +### OwningUser + +|Property|Value| +|---|---| +|Description|**Unique identifier for the user that owns the record.**| +|DisplayName|**Owning User**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owninguser`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### SolutionId + +|Property|Value| +|---|---| +|Description|**Unique identifier of the associated solution.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`solutionid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### Stages + +|Property|Value| +|---|---| +|Description|**The stages for the multi-stage approvals.**| +|DisplayName|**Stages**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`stages`| +|RequiredLevel|ApplicationRequired| +|Type|File| +|MaxSizeInKB|32768| + +### Stages_Name + +|Property|Value| +|---|---| +|Description|| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`stages_name`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Disabled| +|IsLocalizable|False| +|MaxLength|200| + +### SupportingSolutionId + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|False| +|LogicalName|`supportingsolutionid`| +|RequiredLevel|None| +|Type|Uniqueidentifier| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [business_unit_approvalprocess](#BKMK_business_unit_approvalprocess) +- [FileAttachment_approvalprocess_Inputs](#BKMK_FileAttachment_approvalprocess_Inputs) +- [FileAttachment_approvalprocess_Stages](#BKMK_FileAttachment_approvalprocess_Stages) +- [lk_approvalprocess_createdby](#BKMK_lk_approvalprocess_createdby) +- [lk_approvalprocess_createdonbehalfby](#BKMK_lk_approvalprocess_createdonbehalfby) +- [lk_approvalprocess_modifiedby](#BKMK_lk_approvalprocess_modifiedby) +- [lk_approvalprocess_modifiedonbehalfby](#BKMK_lk_approvalprocess_modifiedonbehalfby) +- [owner_approvalprocess](#BKMK_owner_approvalprocess) +- [team_approvalprocess](#BKMK_team_approvalprocess) +- [user_approvalprocess](#BKMK_user_approvalprocess) + +### business_unit_approvalprocess + +One-To-Many Relationship: [businessunit business_unit_approvalprocess](businessunit.md#BKMK_business_unit_approvalprocess) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessunit`| +|ReferencedAttribute|`businessunitid`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencingEntityNavigationPropertyName|`owningbusinessunit`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### FileAttachment_approvalprocess_Inputs + +One-To-Many Relationship: [fileattachment FileAttachment_approvalprocess_Inputs](fileattachment.md#BKMK_FileAttachment_approvalprocess_Inputs) + +|Property|Value| +|---|---| +|ReferencedEntity|`fileattachment`| +|ReferencedAttribute|`fileattachmentid`| +|ReferencingAttribute|`inputs`| +|ReferencingEntityNavigationPropertyName|`inputs`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### FileAttachment_approvalprocess_Stages + +One-To-Many Relationship: [fileattachment FileAttachment_approvalprocess_Stages](fileattachment.md#BKMK_FileAttachment_approvalprocess_Stages) + +|Property|Value| +|---|---| +|ReferencedEntity|`fileattachment`| +|ReferencedAttribute|`fileattachmentid`| +|ReferencingAttribute|`stages`| +|ReferencingEntityNavigationPropertyName|`stages`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_approvalprocess_createdby + +One-To-Many Relationship: [systemuser lk_approvalprocess_createdby](systemuser.md#BKMK_lk_approvalprocess_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_approvalprocess_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_approvalprocess_createdonbehalfby](systemuser.md#BKMK_lk_approvalprocess_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_approvalprocess_modifiedby + +One-To-Many Relationship: [systemuser lk_approvalprocess_modifiedby](systemuser.md#BKMK_lk_approvalprocess_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_approvalprocess_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_approvalprocess_modifiedonbehalfby](systemuser.md#BKMK_lk_approvalprocess_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### owner_approvalprocess + +One-To-Many Relationship: [owner owner_approvalprocess](owner.md#BKMK_owner_approvalprocess) + +|Property|Value| +|---|---| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### team_approvalprocess + +One-To-Many Relationship: [team team_approvalprocess](team.md#BKMK_team_approvalprocess) + +|Property|Value| +|---|---| +|ReferencedEntity|`team`| +|ReferencedAttribute|`teamid`| +|ReferencingAttribute|`owningteam`| +|ReferencingEntityNavigationPropertyName|`owningteam`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### user_approvalprocess + +One-To-Many Relationship: [systemuser user_approvalprocess](systemuser.md#BKMK_user_approvalprocess) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`owninguser`| +|ReferencingEntityNavigationPropertyName|`owninguser`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +- [approvalprocess_Annotations](#BKMK_approvalprocess_Annotations) +- [approvalprocess_AsyncOperations](#BKMK_approvalprocess_AsyncOperations) +- [approvalprocess_BulkDeleteFailures](#BKMK_approvalprocess_BulkDeleteFailures) +- [approvalprocess_DuplicateBaseRecord](#BKMK_approvalprocess_DuplicateBaseRecord) +- [approvalprocess_DuplicateMatchingRecord](#BKMK_approvalprocess_DuplicateMatchingRecord) +- [approvalprocess_FileAttachments](#BKMK_approvalprocess_FileAttachments) +- [approvalprocess_MailboxTrackingFolders](#BKMK_approvalprocess_MailboxTrackingFolders) +- [approvalprocess_PrincipalObjectAttributeAccesses](#BKMK_approvalprocess_PrincipalObjectAttributeAccesses) +- [approvalprocess_ProcessSession](#BKMK_approvalprocess_ProcessSession) +- [approvalprocess_SyncErrors](#BKMK_approvalprocess_SyncErrors) + +### approvalprocess_Annotations + +Many-To-One Relationship: [annotation approvalprocess_Annotations](annotation.md#BKMK_approvalprocess_Annotations) + +|Property|Value| +|---|---| +|ReferencingEntity|`annotation`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`approvalprocess_Annotations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalprocess_AsyncOperations + +Many-To-One Relationship: [asyncoperation approvalprocess_AsyncOperations](asyncoperation.md#BKMK_approvalprocess_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencingEntity|`asyncoperation`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalprocess_AsyncOperations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalprocess_BulkDeleteFailures + +Many-To-One Relationship: [bulkdeletefailure approvalprocess_BulkDeleteFailures](bulkdeletefailure.md#BKMK_approvalprocess_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencingEntity|`bulkdeletefailure`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalprocess_BulkDeleteFailures`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalprocess_DuplicateBaseRecord + +Many-To-One Relationship: [duplicaterecord approvalprocess_DuplicateBaseRecord](duplicaterecord.md#BKMK_approvalprocess_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`baserecordid`| +|ReferencedEntityNavigationPropertyName|`approvalprocess_DuplicateBaseRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalprocess_DuplicateMatchingRecord + +Many-To-One Relationship: [duplicaterecord approvalprocess_DuplicateMatchingRecord](duplicaterecord.md#BKMK_approvalprocess_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencedEntityNavigationPropertyName|`approvalprocess_DuplicateMatchingRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalprocess_FileAttachments + +Many-To-One Relationship: [fileattachment approvalprocess_FileAttachments](fileattachment.md#BKMK_approvalprocess_FileAttachments) + +|Property|Value| +|---|---| +|ReferencingEntity|`fileattachment`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`approvalprocess_FileAttachments`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalprocess_MailboxTrackingFolders + +Many-To-One Relationship: [mailboxtrackingfolder approvalprocess_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_approvalprocess_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencingEntity|`mailboxtrackingfolder`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalprocess_MailboxTrackingFolders`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalprocess_PrincipalObjectAttributeAccesses + +Many-To-One Relationship: [principalobjectattributeaccess approvalprocess_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_approvalprocess_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencingEntity|`principalobjectattributeaccess`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`approvalprocess_PrincipalObjectAttributeAccesses`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalprocess_ProcessSession + +Many-To-One Relationship: [processsession approvalprocess_ProcessSession](processsession.md#BKMK_approvalprocess_ProcessSession) + +|Property|Value| +|---|---| +|ReferencingEntity|`processsession`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalprocess_ProcessSession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalprocess_SyncErrors + +Many-To-One Relationship: [syncerror approvalprocess_SyncErrors](syncerror.md#BKMK_approvalprocess_SyncErrors) + +|Property|Value| +|---|---| +|ReferencingEntity|`syncerror`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalprocess_SyncErrors`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/approvalstageapproval.md b/powerapps-docs/developer/data-platform/reference/entities/approvalstageapproval.md new file mode 100644 index 0000000000..2a3eccbd69 --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/approvalstageapproval.md @@ -0,0 +1,917 @@ +--- +title: "Approval Stage Approval (approvalstageapproval) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the Approval Stage Approval (approvalstageapproval) table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# Approval Stage Approval (approvalstageapproval) table/entity reference (Microsoft Dataverse) + +The approval stage in multi-stage approvals + +## Messages + +The following table lists the messages for the Approval Stage Approval (approvalstageapproval) table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Assign`
Event: True |`PATCH` /approvalstageapprovals(*approvalstageapprovalid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /approvalstageapprovals
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /approvalstageapprovals(*approvalstageapprovalid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `GrantAccess`
Event: True | || +| `IsValidStateTransition`
Event: False | || +| `ModifyAccess`
Event: True | || +| `Retrieve`
Event: True |`GET` /approvalstageapprovals(*approvalstageapprovalid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /approvalstageapprovals
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `RetrievePrincipalAccess`
Event: True | || +| `RetrieveSharedPrincipalsAndAccess`
Event: True | || +| `RevokeAccess`
Event: True | || +| `SetState`
Event: True |`PATCH` /approvalstageapprovals(*approvalstageapprovalid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /approvalstageapprovals(*approvalstageapprovalid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /approvalstageapprovals(*approvalstageapprovalid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + + +## Events + +The following table lists the events for the Approval Stage Approval (approvalstageapproval) table. +Events are messages that exist so that you can subscribe to them. Unless you added the event, you shouldn't invoke the message, only subscribe to it. + +|Name|Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `BulkRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `PurgeRetainedContent`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `Retain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `RollbackRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `ValidateRetentionConfig`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| + +## Properties + +The following table lists selected properties for the Approval Stage Approval (approvalstageapproval) table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **Approval Stage Approval** | +| **DisplayCollectionName** | **Approval Stage Approvals** | +| **SchemaName** | `approvalstageapproval` | +| **CollectionSchemaName** | `approvalstageapprovals` | +| **EntitySetName** | `approvalstageapprovals`| +| **LogicalName** | `approvalstageapproval` | +| **LogicalCollectionName** | `approvalstageapprovals` | +| **PrimaryIdAttribute** | `approvalstageapprovalid` | +| **PrimaryNameAttribute** |`name` | +| **TableType** | `Standard` | +| **OwnershipType** | `UserOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [AllowCancel](#BKMK_AllowCancel) +- [AllowReassign](#BKMK_AllowReassign) +- [Approval](#BKMK_Approval) +- [approvalstageapprovalId](#BKMK_approvalstageapprovalId) +- [CustomFields](#BKMK_CustomFields) +- [Details](#BKMK_Details) +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [ItemLink](#BKMK_ItemLink) +- [ItemLinkDescription](#BKMK_ItemLinkDescription) +- [ModelId](#BKMK_ModelId) +- [ModelType](#BKMK_ModelType) +- [Name](#BKMK_Name) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [Result](#BKMK_Result) +- [SendEmailNotification](#BKMK_SendEmailNotification) +- [statecode](#BKMK_statecode) +- [statuscode](#BKMK_statuscode) +- [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [Title](#BKMK_Title) +- [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) + +### AllowCancel + +|Property|Value| +|---|---| +|Description|**Choice to allow cancellation of approval**| +|DisplayName|**Allow Cancel**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`allowcancel`| +|RequiredLevel|None| +|Type|Boolean| +|GlobalChoiceName|`approvalstageapproval_allowcancel`| +|DefaultValue|True| +|True Label|Yes| +|False Label|No| + +### AllowReassign + +|Property|Value| +|---|---| +|Description|**Choice to allow approval reassignment**| +|DisplayName|**Allow Reassign**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`allowreassign`| +|RequiredLevel|ApplicationRequired| +|Type|Boolean| +|GlobalChoiceName|`approvalstageapproval_allowreassign`| +|DefaultValue|True| +|True Label|Yes| +|False Label|No| + +### Approval + +|Property|Value| +|---|---| +|Description|**The linked parent approval**| +|DisplayName|**Approval**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`approval`| +|RequiredLevel|ApplicationRequired| +|Type|Lookup| +|Targets|msdyn_flow_approval| + +### approvalstageapprovalId + +|Property|Value| +|---|---| +|Description|**Unique identifier for entity instances**| +|DisplayName|**Approval Stage Approval**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`approvalstageapprovalid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### CustomFields + +|Property|Value| +|---|---| +|Description|**Custom fields provided by customer**| +|DisplayName|**Custom Fields**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`customfields`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|4000| + +### Details + +|Property|Value| +|---|---| +|Description|**Description of approval**| +|DisplayName|**Details**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`details`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|4000| + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### ItemLink + +|Property|Value| +|---|---| +|Description|**Optional link to the item to approve**| +|DisplayName|**Item Link**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`itemlink`| +|RequiredLevel|None| +|Type|String| +|Format|Url| +|FormatName|Url| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|2000| + +### ItemLinkDescription + +|Property|Value| +|---|---| +|Description|**Optional description for the item link**| +|DisplayName|**Item Link Description**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`itemlinkdescription`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|2000| + +### ModelId + +|Property|Value| +|---|---| +|Description|**The guid of the linked approval model**| +|DisplayName|**Model Id**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`modelid`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### ModelType + +|Property|Value| +|---|---| +|Description|**The type of the linked approval model**| +|DisplayName|**Model Type**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`modeltype`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### Name + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`name`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|850| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### Result + +|Property|Value| +|---|---| +|Description|**The result of the approval**| +|DisplayName|**Result**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`result`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|500| + +### SendEmailNotification + +|Property|Value| +|---|---| +|Description|**Whether to send system generated emails**| +|DisplayName|**Send Email Notification**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`sendemailnotification`| +|RequiredLevel|ApplicationRequired| +|Type|Boolean| +|GlobalChoiceName|`approvalstageapproval_sendemailnotification`| +|DefaultValue|True| +|True Label|Yes| +|False Label|No| + +### statecode + +|Property|Value| +|---|---| +|Description|**Status of the Approval Stage Approval**| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statecode`| +|RequiredLevel|SystemRequired| +|Type|State| +|DefaultFormValue|| +|GlobalChoiceName|`approvalstageapproval_statecode`| + +#### statecode Choices/Options + +|Value|Details| +|---|---| +|0|Label: **Active**
DefaultStatus: 1
InvariantName: `Active`| +|1|Label: **Inactive**
DefaultStatus: 2
InvariantName: `Inactive`| + +### statuscode + +|Property|Value| +|---|---| +|Description|**Reason for the status of the Approval Stage Approval**| +|DisplayName|**Status Reason**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Status| +|DefaultFormValue|| +|GlobalChoiceName|`approvalstageapproval_statuscode`| + +#### statuscode Choices/Options + +|Value|Details| +|---|---| +|1|Label: **Active**
State:0
TransitionData: None| +|2|Label: **Inactive**
State:1
TransitionData: None| + +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### Title + +|Property|Value| +|---|---| +|Description|**Title of the approval**| +|DisplayName|**Title**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`title`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|2000| + +### UTCConversionTimeZoneCode + +|Property|Value| +|---|---| +|Description|**Time zone code that was in use when the record was created.**| +|DisplayName|**UTC Conversion Time Zone Code**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`utcconversiontimezonecode`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OwnerIdName](#BKMK_OwnerIdName) +- [OwnerIdYomiName](#BKMK_OwnerIdYomiName) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) +- [OwningTeam](#BKMK_OwningTeam) +- [OwningUser](#BKMK_OwningUser) +- [VersionNumber](#BKMK_VersionNumber) + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### OwnerIdName + +|Property|Value| +|---|---| +|Description|**Name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwnerIdYomiName + +|Property|Value| +|---|---| +|Description|**Yomi name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridyominame`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|SystemRequired| +|Type|Lookup| +|Targets|businessunit| + +### OwningTeam + +|Property|Value| +|---|---| +|Description|**Unique identifier for the team that owns the record.**| +|DisplayName|**Owning Team**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningteam`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|team| + +### OwningUser + +|Property|Value| +|---|---| +|Description|**Unique identifier for the user that owns the record.**| +|DisplayName|**Owning User**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owninguser`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [approvalstageapproval_approval_msdyn_flow_approval](#BKMK_approvalstageapproval_approval_msdyn_flow_approval) +- [business_unit_approvalstageapproval](#BKMK_business_unit_approvalstageapproval) +- [lk_approvalstageapproval_createdby](#BKMK_lk_approvalstageapproval_createdby) +- [lk_approvalstageapproval_createdonbehalfby](#BKMK_lk_approvalstageapproval_createdonbehalfby) +- [lk_approvalstageapproval_modifiedby](#BKMK_lk_approvalstageapproval_modifiedby) +- [lk_approvalstageapproval_modifiedonbehalfby](#BKMK_lk_approvalstageapproval_modifiedonbehalfby) +- [owner_approvalstageapproval](#BKMK_owner_approvalstageapproval) +- [team_approvalstageapproval](#BKMK_team_approvalstageapproval) +- [user_approvalstageapproval](#BKMK_user_approvalstageapproval) + +### approvalstageapproval_approval_msdyn_flow_approval + +One-To-Many Relationship: [msdyn_flow_approval approvalstageapproval_approval_msdyn_flow_approval](msdyn_flow_approval.md#BKMK_approvalstageapproval_approval_msdyn_flow_approval) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_flow_approval`| +|ReferencedAttribute|`msdyn_flow_approvalid`| +|ReferencingAttribute|`approval`| +|ReferencingEntityNavigationPropertyName|`approval`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Cascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### business_unit_approvalstageapproval + +One-To-Many Relationship: [businessunit business_unit_approvalstageapproval](businessunit.md#BKMK_business_unit_approvalstageapproval) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessunit`| +|ReferencedAttribute|`businessunitid`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencingEntityNavigationPropertyName|`owningbusinessunit`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_approvalstageapproval_createdby + +One-To-Many Relationship: [systemuser lk_approvalstageapproval_createdby](systemuser.md#BKMK_lk_approvalstageapproval_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_approvalstageapproval_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_approvalstageapproval_createdonbehalfby](systemuser.md#BKMK_lk_approvalstageapproval_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_approvalstageapproval_modifiedby + +One-To-Many Relationship: [systemuser lk_approvalstageapproval_modifiedby](systemuser.md#BKMK_lk_approvalstageapproval_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_approvalstageapproval_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_approvalstageapproval_modifiedonbehalfby](systemuser.md#BKMK_lk_approvalstageapproval_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### owner_approvalstageapproval + +One-To-Many Relationship: [owner owner_approvalstageapproval](owner.md#BKMK_owner_approvalstageapproval) + +|Property|Value| +|---|---| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### team_approvalstageapproval + +One-To-Many Relationship: [team team_approvalstageapproval](team.md#BKMK_team_approvalstageapproval) + +|Property|Value| +|---|---| +|ReferencedEntity|`team`| +|ReferencedAttribute|`teamid`| +|ReferencingAttribute|`owningteam`| +|ReferencingEntityNavigationPropertyName|`owningteam`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### user_approvalstageapproval + +One-To-Many Relationship: [systemuser user_approvalstageapproval](systemuser.md#BKMK_user_approvalstageapproval) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`owninguser`| +|ReferencingEntityNavigationPropertyName|`owninguser`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +- [approvalstageapproval_Annotations](#BKMK_approvalstageapproval_Annotations) +- [approvalstageapproval_AsyncOperations](#BKMK_approvalstageapproval_AsyncOperations) +- [approvalstageapproval_BulkDeleteFailures](#BKMK_approvalstageapproval_BulkDeleteFailures) +- [approvalstageapproval_DuplicateBaseRecord](#BKMK_approvalstageapproval_DuplicateBaseRecord) +- [approvalstageapproval_DuplicateMatchingRecord](#BKMK_approvalstageapproval_DuplicateMatchingRecord) +- [approvalstageapproval_MailboxTrackingFolders](#BKMK_approvalstageapproval_MailboxTrackingFolders) +- [approvalstageapproval_PrincipalObjectAttributeAccesses](#BKMK_approvalstageapproval_PrincipalObjectAttributeAccesses) +- [approvalstageapproval_ProcessSession](#BKMK_approvalstageapproval_ProcessSession) +- [approvalstageapproval_SyncErrors](#BKMK_approvalstageapproval_SyncErrors) +- [approvalstageorder_stageapproval_approvalstageapproval](#BKMK_approvalstageorder_stageapproval_approvalstageapproval) + +### approvalstageapproval_Annotations + +Many-To-One Relationship: [annotation approvalstageapproval_Annotations](annotation.md#BKMK_approvalstageapproval_Annotations) + +|Property|Value| +|---|---| +|ReferencingEntity|`annotation`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`approvalstageapproval_Annotations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstageapproval_AsyncOperations + +Many-To-One Relationship: [asyncoperation approvalstageapproval_AsyncOperations](asyncoperation.md#BKMK_approvalstageapproval_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencingEntity|`asyncoperation`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalstageapproval_AsyncOperations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstageapproval_BulkDeleteFailures + +Many-To-One Relationship: [bulkdeletefailure approvalstageapproval_BulkDeleteFailures](bulkdeletefailure.md#BKMK_approvalstageapproval_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencingEntity|`bulkdeletefailure`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalstageapproval_BulkDeleteFailures`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstageapproval_DuplicateBaseRecord + +Many-To-One Relationship: [duplicaterecord approvalstageapproval_DuplicateBaseRecord](duplicaterecord.md#BKMK_approvalstageapproval_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`baserecordid`| +|ReferencedEntityNavigationPropertyName|`approvalstageapproval_DuplicateBaseRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstageapproval_DuplicateMatchingRecord + +Many-To-One Relationship: [duplicaterecord approvalstageapproval_DuplicateMatchingRecord](duplicaterecord.md#BKMK_approvalstageapproval_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencedEntityNavigationPropertyName|`approvalstageapproval_DuplicateMatchingRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstageapproval_MailboxTrackingFolders + +Many-To-One Relationship: [mailboxtrackingfolder approvalstageapproval_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_approvalstageapproval_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencingEntity|`mailboxtrackingfolder`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalstageapproval_MailboxTrackingFolders`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstageapproval_PrincipalObjectAttributeAccesses + +Many-To-One Relationship: [principalobjectattributeaccess approvalstageapproval_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_approvalstageapproval_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencingEntity|`principalobjectattributeaccess`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`approvalstageapproval_PrincipalObjectAttributeAccesses`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstageapproval_ProcessSession + +Many-To-One Relationship: [processsession approvalstageapproval_ProcessSession](processsession.md#BKMK_approvalstageapproval_ProcessSession) + +|Property|Value| +|---|---| +|ReferencingEntity|`processsession`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalstageapproval_ProcessSession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstageapproval_SyncErrors + +Many-To-One Relationship: [syncerror approvalstageapproval_SyncErrors](syncerror.md#BKMK_approvalstageapproval_SyncErrors) + +|Property|Value| +|---|---| +|ReferencingEntity|`syncerror`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalstageapproval_SyncErrors`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstageorder_stageapproval_approvalstageapproval + +Many-To-One Relationship: [approvalstageorder approvalstageorder_stageapproval_approvalstageapproval](approvalstageorder.md#BKMK_approvalstageorder_stageapproval_approvalstageapproval) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageorder`| +|ReferencingAttribute|`stageapproval`| +|ReferencedEntityNavigationPropertyName|`approvalstageorder_stageapproval_approvalstageapproval`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/approvalstagecondition.md b/powerapps-docs/developer/data-platform/reference/entities/approvalstagecondition.md new file mode 100644 index 0000000000..448dd37c7c --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/approvalstagecondition.md @@ -0,0 +1,787 @@ +--- +title: "Approval Stage Condition (approvalstagecondition) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the Approval Stage Condition (approvalstagecondition) table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# Approval Stage Condition (approvalstagecondition) table/entity reference (Microsoft Dataverse) + +The condition in multi-stage approvals + +## Messages + +The following table lists the messages for the Approval Stage Condition (approvalstagecondition) table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Assign`
Event: True |`PATCH` /approvalstageconditions(*approvalstageconditionid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /approvalstageconditions
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /approvalstageconditions(*approvalstageconditionid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `GrantAccess`
Event: True | || +| `IsValidStateTransition`
Event: False | || +| `ModifyAccess`
Event: True | || +| `Retrieve`
Event: True |`GET` /approvalstageconditions(*approvalstageconditionid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /approvalstageconditions
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `RetrievePrincipalAccess`
Event: True | || +| `RetrieveSharedPrincipalsAndAccess`
Event: True | || +| `RevokeAccess`
Event: True | || +| `SetState`
Event: True |`PATCH` /approvalstageconditions(*approvalstageconditionid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /approvalstageconditions(*approvalstageconditionid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /approvalstageconditions(*approvalstageconditionid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + + +## Events + +The following table lists the events for the Approval Stage Condition (approvalstagecondition) table. +Events are messages that exist so that you can subscribe to them. Unless you added the event, you shouldn't invoke the message, only subscribe to it. + +|Name|Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `BulkRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `PurgeRetainedContent`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `Retain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `RollbackRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `ValidateRetentionConfig`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| + +## Properties + +The following table lists selected properties for the Approval Stage Condition (approvalstagecondition) table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **Approval Stage Condition** | +| **DisplayCollectionName** | **Approval Stage Conditions** | +| **SchemaName** | `approvalstagecondition` | +| **CollectionSchemaName** | `approvalstageconditions` | +| **EntitySetName** | `approvalstageconditions`| +| **LogicalName** | `approvalstagecondition` | +| **LogicalCollectionName** | `approvalstageconditions` | +| **PrimaryIdAttribute** | `approvalstageconditionid` | +| **PrimaryNameAttribute** |`name` | +| **TableType** | `Standard` | +| **OwnershipType** | `UserOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [Approval](#BKMK_Approval) +- [approvalstageconditionId](#BKMK_approvalstageconditionId) +- [ConditionalLogic](#BKMK_ConditionalLogic) +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [Name](#BKMK_Name) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [ResultInfo](#BKMK_ResultInfo) +- [ResultType](#BKMK_ResultType) +- [ResultValue](#BKMK_ResultValue) +- [statecode](#BKMK_statecode) +- [statuscode](#BKMK_statuscode) +- [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) + +### Approval + +|Property|Value| +|---|---| +|Description|**The linked approval**| +|DisplayName|**Approval**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`approval`| +|RequiredLevel|ApplicationRequired| +|Type|Lookup| +|Targets|msdyn_flow_approval| + +### approvalstageconditionId + +|Property|Value| +|---|---| +|Description|**Unique identifier for entity instances**| +|DisplayName|**Approval Stage Condition**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`approvalstageconditionid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### ConditionalLogic + +|Property|Value| +|---|---| +|Description|**The conditional logic and related actions**| +|DisplayName|**Conditional Logic**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`conditionallogic`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|4000| + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### Name + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`name`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|850| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### ResultInfo + +|Property|Value| +|---|---| +|Description|**Extra result info needed for some scenarios**| +|DisplayName|**Result Info**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`resultinfo`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1000| + +### ResultType + +|Property|Value| +|---|---| +|Description|**The type of action selected**| +|DisplayName|**Result Type**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`resulttype`| +|RequiredLevel|None| +|Type|Picklist| +|DefaultFormValue|-1| +|GlobalChoiceName|`approvalstagecondition_resulttype`| + +#### ResultType Choices/Options + +|Value|Label| +|---|---| +|192350000|**Continue**| +|192350001|**Goto**| +|192350002|**TerminateAsApproved**| +|192350003|**TerminateAsRejected**| + +### ResultValue + +|Property|Value| +|---|---| +|Description|**The optional value needed for some actions**| +|DisplayName|**Result Value**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`resultvalue`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|500| + +### statecode + +|Property|Value| +|---|---| +|Description|**Status of the Approval Stage Condition**| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statecode`| +|RequiredLevel|SystemRequired| +|Type|State| +|DefaultFormValue|| +|GlobalChoiceName|`approvalstagecondition_statecode`| + +#### statecode Choices/Options + +|Value|Details| +|---|---| +|0|Label: **Active**
DefaultStatus: 1
InvariantName: `Active`| +|1|Label: **Inactive**
DefaultStatus: 2
InvariantName: `Inactive`| + +### statuscode + +|Property|Value| +|---|---| +|Description|**Reason for the status of the Approval Stage Condition**| +|DisplayName|**Status Reason**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Status| +|DefaultFormValue|| +|GlobalChoiceName|`approvalstagecondition_statuscode`| + +#### statuscode Choices/Options + +|Value|Details| +|---|---| +|1|Label: **Active**
State:0
TransitionData: None| +|2|Label: **Inactive**
State:1
TransitionData: None| + +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### UTCConversionTimeZoneCode + +|Property|Value| +|---|---| +|Description|**Time zone code that was in use when the record was created.**| +|DisplayName|**UTC Conversion Time Zone Code**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`utcconversiontimezonecode`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OwnerIdName](#BKMK_OwnerIdName) +- [OwnerIdYomiName](#BKMK_OwnerIdYomiName) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) +- [OwningTeam](#BKMK_OwningTeam) +- [OwningUser](#BKMK_OwningUser) +- [VersionNumber](#BKMK_VersionNumber) + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### OwnerIdName + +|Property|Value| +|---|---| +|Description|**Name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwnerIdYomiName + +|Property|Value| +|---|---| +|Description|**Yomi name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridyominame`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|SystemRequired| +|Type|Lookup| +|Targets|businessunit| + +### OwningTeam + +|Property|Value| +|---|---| +|Description|**Unique identifier for the team that owns the record.**| +|DisplayName|**Owning Team**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningteam`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|team| + +### OwningUser + +|Property|Value| +|---|---| +|Description|**Unique identifier for the user that owns the record.**| +|DisplayName|**Owning User**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owninguser`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [approvalstagecondition_approval_msdyn_flow_approval](#BKMK_approvalstagecondition_approval_msdyn_flow_approval) +- [business_unit_approvalstagecondition](#BKMK_business_unit_approvalstagecondition) +- [lk_approvalstagecondition_createdby](#BKMK_lk_approvalstagecondition_createdby) +- [lk_approvalstagecondition_createdonbehalfby](#BKMK_lk_approvalstagecondition_createdonbehalfby) +- [lk_approvalstagecondition_modifiedby](#BKMK_lk_approvalstagecondition_modifiedby) +- [lk_approvalstagecondition_modifiedonbehalfby](#BKMK_lk_approvalstagecondition_modifiedonbehalfby) +- [owner_approvalstagecondition](#BKMK_owner_approvalstagecondition) +- [team_approvalstagecondition](#BKMK_team_approvalstagecondition) +- [user_approvalstagecondition](#BKMK_user_approvalstagecondition) + +### approvalstagecondition_approval_msdyn_flow_approval + +One-To-Many Relationship: [msdyn_flow_approval approvalstagecondition_approval_msdyn_flow_approval](msdyn_flow_approval.md#BKMK_approvalstagecondition_approval_msdyn_flow_approval) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_flow_approval`| +|ReferencedAttribute|`msdyn_flow_approvalid`| +|ReferencingAttribute|`approval`| +|ReferencingEntityNavigationPropertyName|`approval`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Cascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### business_unit_approvalstagecondition + +One-To-Many Relationship: [businessunit business_unit_approvalstagecondition](businessunit.md#BKMK_business_unit_approvalstagecondition) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessunit`| +|ReferencedAttribute|`businessunitid`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencingEntityNavigationPropertyName|`owningbusinessunit`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_approvalstagecondition_createdby + +One-To-Many Relationship: [systemuser lk_approvalstagecondition_createdby](systemuser.md#BKMK_lk_approvalstagecondition_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_approvalstagecondition_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_approvalstagecondition_createdonbehalfby](systemuser.md#BKMK_lk_approvalstagecondition_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_approvalstagecondition_modifiedby + +One-To-Many Relationship: [systemuser lk_approvalstagecondition_modifiedby](systemuser.md#BKMK_lk_approvalstagecondition_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_approvalstagecondition_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_approvalstagecondition_modifiedonbehalfby](systemuser.md#BKMK_lk_approvalstagecondition_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### owner_approvalstagecondition + +One-To-Many Relationship: [owner owner_approvalstagecondition](owner.md#BKMK_owner_approvalstagecondition) + +|Property|Value| +|---|---| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### team_approvalstagecondition + +One-To-Many Relationship: [team team_approvalstagecondition](team.md#BKMK_team_approvalstagecondition) + +|Property|Value| +|---|---| +|ReferencedEntity|`team`| +|ReferencedAttribute|`teamid`| +|ReferencingAttribute|`owningteam`| +|ReferencingEntityNavigationPropertyName|`owningteam`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### user_approvalstagecondition + +One-To-Many Relationship: [systemuser user_approvalstagecondition](systemuser.md#BKMK_user_approvalstagecondition) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`owninguser`| +|ReferencingEntityNavigationPropertyName|`owninguser`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +- [approvalstagecondition_AsyncOperations](#BKMK_approvalstagecondition_AsyncOperations) +- [approvalstagecondition_BulkDeleteFailures](#BKMK_approvalstagecondition_BulkDeleteFailures) +- [approvalstagecondition_DuplicateBaseRecord](#BKMK_approvalstagecondition_DuplicateBaseRecord) +- [approvalstagecondition_DuplicateMatchingRecord](#BKMK_approvalstagecondition_DuplicateMatchingRecord) +- [approvalstagecondition_MailboxTrackingFolders](#BKMK_approvalstagecondition_MailboxTrackingFolders) +- [approvalstagecondition_PrincipalObjectAttributeAccesses](#BKMK_approvalstagecondition_PrincipalObjectAttributeAccesses) +- [approvalstagecondition_ProcessSession](#BKMK_approvalstagecondition_ProcessSession) +- [approvalstagecondition_SyncErrors](#BKMK_approvalstagecondition_SyncErrors) +- [approvalstageorder_stagecondition_approvalstagecondition](#BKMK_approvalstageorder_stagecondition_approvalstagecondition) + +### approvalstagecondition_AsyncOperations + +Many-To-One Relationship: [asyncoperation approvalstagecondition_AsyncOperations](asyncoperation.md#BKMK_approvalstagecondition_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencingEntity|`asyncoperation`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalstagecondition_AsyncOperations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstagecondition_BulkDeleteFailures + +Many-To-One Relationship: [bulkdeletefailure approvalstagecondition_BulkDeleteFailures](bulkdeletefailure.md#BKMK_approvalstagecondition_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencingEntity|`bulkdeletefailure`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalstagecondition_BulkDeleteFailures`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstagecondition_DuplicateBaseRecord + +Many-To-One Relationship: [duplicaterecord approvalstagecondition_DuplicateBaseRecord](duplicaterecord.md#BKMK_approvalstagecondition_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`baserecordid`| +|ReferencedEntityNavigationPropertyName|`approvalstagecondition_DuplicateBaseRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstagecondition_DuplicateMatchingRecord + +Many-To-One Relationship: [duplicaterecord approvalstagecondition_DuplicateMatchingRecord](duplicaterecord.md#BKMK_approvalstagecondition_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencedEntityNavigationPropertyName|`approvalstagecondition_DuplicateMatchingRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstagecondition_MailboxTrackingFolders + +Many-To-One Relationship: [mailboxtrackingfolder approvalstagecondition_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_approvalstagecondition_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencingEntity|`mailboxtrackingfolder`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalstagecondition_MailboxTrackingFolders`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstagecondition_PrincipalObjectAttributeAccesses + +Many-To-One Relationship: [principalobjectattributeaccess approvalstagecondition_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_approvalstagecondition_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencingEntity|`principalobjectattributeaccess`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`approvalstagecondition_PrincipalObjectAttributeAccesses`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstagecondition_ProcessSession + +Many-To-One Relationship: [processsession approvalstagecondition_ProcessSession](processsession.md#BKMK_approvalstagecondition_ProcessSession) + +|Property|Value| +|---|---| +|ReferencingEntity|`processsession`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalstagecondition_ProcessSession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstagecondition_SyncErrors + +Many-To-One Relationship: [syncerror approvalstagecondition_SyncErrors](syncerror.md#BKMK_approvalstagecondition_SyncErrors) + +|Property|Value| +|---|---| +|ReferencingEntity|`syncerror`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalstagecondition_SyncErrors`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstageorder_stagecondition_approvalstagecondition + +Many-To-One Relationship: [approvalstageorder approvalstageorder_stagecondition_approvalstagecondition](approvalstageorder.md#BKMK_approvalstageorder_stagecondition_approvalstagecondition) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageorder`| +|ReferencingAttribute|`stagecondition`| +|ReferencedEntityNavigationPropertyName|`approvalstageorder_stagecondition_approvalstagecondition`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/approvalstageorder.md b/powerapps-docs/developer/data-platform/reference/entities/approvalstageorder.md new file mode 100644 index 0000000000..8e5ee4e519 --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/approvalstageorder.md @@ -0,0 +1,805 @@ +--- +title: "Approval Stage Order (approvalstageorder) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the Approval Stage Order (approvalstageorder) table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# Approval Stage Order (approvalstageorder) table/entity reference (Microsoft Dataverse) + +The order of the stages in multi-stage approvals. + +## Messages + +The following table lists the messages for the Approval Stage Order (approvalstageorder) table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Assign`
Event: True |`PATCH` /approvalstageorders(*approvalstageorderid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /approvalstageorders
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /approvalstageorders(*approvalstageorderid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `GrantAccess`
Event: True | || +| `IsValidStateTransition`
Event: False | || +| `ModifyAccess`
Event: True | || +| `Retrieve`
Event: True |`GET` /approvalstageorders(*approvalstageorderid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /approvalstageorders
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `RetrievePrincipalAccess`
Event: True | || +| `RetrieveSharedPrincipalsAndAccess`
Event: True | || +| `RevokeAccess`
Event: True | || +| `SetState`
Event: True |`PATCH` /approvalstageorders(*approvalstageorderid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /approvalstageorders(*approvalstageorderid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /approvalstageorders(*approvalstageorderid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + + +## Events + +The following table lists the events for the Approval Stage Order (approvalstageorder) table. +Events are messages that exist so that you can subscribe to them. Unless you added the event, you shouldn't invoke the message, only subscribe to it. + +|Name|Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `BulkRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `PurgeRetainedContent`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `Retain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `RollbackRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `ValidateRetentionConfig`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| + +## Properties + +The following table lists selected properties for the Approval Stage Order (approvalstageorder) table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **Approval Stage Order** | +| **DisplayCollectionName** | **Approval Stage Orders** | +| **SchemaName** | `approvalstageorder` | +| **CollectionSchemaName** | `approvalstageorders` | +| **EntitySetName** | `approvalstageorders`| +| **LogicalName** | `approvalstageorder` | +| **LogicalCollectionName** | `approvalstageorders` | +| **PrimaryIdAttribute** | `approvalstageorderid` | +| **PrimaryNameAttribute** |`name` | +| **TableType** | `Standard` | +| **OwnershipType** | `UserOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [Approval](#BKMK_Approval) +- [approvalstageorderId](#BKMK_approvalstageorderId) +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [Name](#BKMK_Name) +- [OrderNumber](#BKMK_OrderNumber) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [StageApproval](#BKMK_StageApproval) +- [StageCondition](#BKMK_StageCondition) +- [statecode](#BKMK_statecode) +- [statuscode](#BKMK_statuscode) +- [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [Type](#BKMK_Type) +- [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) + +### Approval + +|Property|Value| +|---|---| +|Description|**The linked approval**| +|DisplayName|**Approval**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`approval`| +|RequiredLevel|ApplicationRequired| +|Type|Lookup| +|Targets|msdyn_flow_approval| + +### approvalstageorderId + +|Property|Value| +|---|---| +|Description|**Unique identifier for entity instances**| +|DisplayName|**Approval Stage Order**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`approvalstageorderid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### Name + +|Property|Value| +|---|---| +|Description|**Name of the stage**| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`name`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|850| + +### OrderNumber + +|Property|Value| +|---|---| +|Description|**The order number of the stage**| +|DisplayName|**Order Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`ordernumber`| +|RequiredLevel|ApplicationRequired| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### StageApproval + +|Property|Value| +|---|---| +|Description|**The linked stage approval**| +|DisplayName|**Stage Approval**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`stageapproval`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|approvalstageapproval| + +### StageCondition + +|Property|Value| +|---|---| +|Description|**The linked condition**| +|DisplayName|**Stage Condition**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`stagecondition`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|approvalstagecondition| + +### statecode + +|Property|Value| +|---|---| +|Description|**Status of the Approval Stage Order**| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statecode`| +|RequiredLevel|SystemRequired| +|Type|State| +|DefaultFormValue|| +|GlobalChoiceName|`approvalstageorder_statecode`| + +#### statecode Choices/Options + +|Value|Details| +|---|---| +|0|Label: **Active**
DefaultStatus: 192350001
InvariantName: `Active`| +|1|Label: **Inactive**
DefaultStatus: 2
InvariantName: `Inactive`| + +### statuscode + +|Property|Value| +|---|---| +|Description|**Reason for the status of the Approval Stage Order**| +|DisplayName|**Status Reason**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Status| +|DefaultFormValue|| +|GlobalChoiceName|`approvalstageorder_statuscode`| + +#### statuscode Choices/Options + +|Value|Details| +|---|---| +|1|Label: **Active**
State:0
TransitionData: None| +|2|Label: **Inactive**
State:1
TransitionData: None| +|192350001|Label: **Initialized**
State:0
TransitionData: None| +|192350002|Label: **Completed**
State:1
TransitionData: None| +|192350003|Label: **Skipped**
State:1
TransitionData: None| + +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### Type + +|Property|Value| +|---|---| +|Description|**The type of the stage**| +|DisplayName|**Type**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`type`| +|RequiredLevel|ApplicationRequired| +|Type|Picklist| +|DefaultFormValue|-1| +|GlobalChoiceName|`approvalstageorder_type`| + +#### Type Choices/Options + +|Value|Label| +|---|---| +|192350000|**Approval**| +|192350001|**Condition**| + +### UTCConversionTimeZoneCode + +|Property|Value| +|---|---| +|Description|**Time zone code that was in use when the record was created.**| +|DisplayName|**UTC Conversion Time Zone Code**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`utcconversiontimezonecode`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OwnerIdName](#BKMK_OwnerIdName) +- [OwnerIdYomiName](#BKMK_OwnerIdYomiName) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) +- [OwningTeam](#BKMK_OwningTeam) +- [OwningUser](#BKMK_OwningUser) +- [VersionNumber](#BKMK_VersionNumber) + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### OwnerIdName + +|Property|Value| +|---|---| +|Description|**Name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwnerIdYomiName + +|Property|Value| +|---|---| +|Description|**Yomi name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridyominame`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|SystemRequired| +|Type|Lookup| +|Targets|businessunit| + +### OwningTeam + +|Property|Value| +|---|---| +|Description|**Unique identifier for the team that owns the record.**| +|DisplayName|**Owning Team**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningteam`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|team| + +### OwningUser + +|Property|Value| +|---|---| +|Description|**Unique identifier for the user that owns the record.**| +|DisplayName|**Owning User**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owninguser`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [approvalstageorder_approval_msdyn_flow_approval](#BKMK_approvalstageorder_approval_msdyn_flow_approval) +- [approvalstageorder_stageapproval_approvalstageapproval](#BKMK_approvalstageorder_stageapproval_approvalstageapproval) +- [approvalstageorder_stagecondition_approvalstagecondition](#BKMK_approvalstageorder_stagecondition_approvalstagecondition) +- [business_unit_approvalstageorder](#BKMK_business_unit_approvalstageorder) +- [lk_approvalstageorder_createdby](#BKMK_lk_approvalstageorder_createdby) +- [lk_approvalstageorder_createdonbehalfby](#BKMK_lk_approvalstageorder_createdonbehalfby) +- [lk_approvalstageorder_modifiedby](#BKMK_lk_approvalstageorder_modifiedby) +- [lk_approvalstageorder_modifiedonbehalfby](#BKMK_lk_approvalstageorder_modifiedonbehalfby) +- [owner_approvalstageorder](#BKMK_owner_approvalstageorder) +- [team_approvalstageorder](#BKMK_team_approvalstageorder) +- [user_approvalstageorder](#BKMK_user_approvalstageorder) + +### approvalstageorder_approval_msdyn_flow_approval + +One-To-Many Relationship: [msdyn_flow_approval approvalstageorder_approval_msdyn_flow_approval](msdyn_flow_approval.md#BKMK_approvalstageorder_approval_msdyn_flow_approval) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_flow_approval`| +|ReferencedAttribute|`msdyn_flow_approvalid`| +|ReferencingAttribute|`approval`| +|ReferencingEntityNavigationPropertyName|`approval`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Cascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstageorder_stageapproval_approvalstageapproval + +One-To-Many Relationship: [approvalstageapproval approvalstageorder_stageapproval_approvalstageapproval](approvalstageapproval.md#BKMK_approvalstageorder_stageapproval_approvalstageapproval) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageapproval`| +|ReferencedAttribute|`approvalstageapprovalid`| +|ReferencingAttribute|`stageapproval`| +|ReferencingEntityNavigationPropertyName|`stageapproval`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Cascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstageorder_stagecondition_approvalstagecondition + +One-To-Many Relationship: [approvalstagecondition approvalstageorder_stagecondition_approvalstagecondition](approvalstagecondition.md#BKMK_approvalstageorder_stagecondition_approvalstagecondition) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstagecondition`| +|ReferencedAttribute|`approvalstageconditionid`| +|ReferencingAttribute|`stagecondition`| +|ReferencingEntityNavigationPropertyName|`stagecondition`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Cascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### business_unit_approvalstageorder + +One-To-Many Relationship: [businessunit business_unit_approvalstageorder](businessunit.md#BKMK_business_unit_approvalstageorder) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessunit`| +|ReferencedAttribute|`businessunitid`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencingEntityNavigationPropertyName|`owningbusinessunit`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_approvalstageorder_createdby + +One-To-Many Relationship: [systemuser lk_approvalstageorder_createdby](systemuser.md#BKMK_lk_approvalstageorder_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_approvalstageorder_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_approvalstageorder_createdonbehalfby](systemuser.md#BKMK_lk_approvalstageorder_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_approvalstageorder_modifiedby + +One-To-Many Relationship: [systemuser lk_approvalstageorder_modifiedby](systemuser.md#BKMK_lk_approvalstageorder_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_approvalstageorder_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_approvalstageorder_modifiedonbehalfby](systemuser.md#BKMK_lk_approvalstageorder_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### owner_approvalstageorder + +One-To-Many Relationship: [owner owner_approvalstageorder](owner.md#BKMK_owner_approvalstageorder) + +|Property|Value| +|---|---| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### team_approvalstageorder + +One-To-Many Relationship: [team team_approvalstageorder](team.md#BKMK_team_approvalstageorder) + +|Property|Value| +|---|---| +|ReferencedEntity|`team`| +|ReferencedAttribute|`teamid`| +|ReferencingAttribute|`owningteam`| +|ReferencingEntityNavigationPropertyName|`owningteam`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### user_approvalstageorder + +One-To-Many Relationship: [systemuser user_approvalstageorder](systemuser.md#BKMK_user_approvalstageorder) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`owninguser`| +|ReferencingEntityNavigationPropertyName|`owninguser`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +- [approvalstageorder_AsyncOperations](#BKMK_approvalstageorder_AsyncOperations) +- [approvalstageorder_BulkDeleteFailures](#BKMK_approvalstageorder_BulkDeleteFailures) +- [approvalstageorder_DuplicateBaseRecord](#BKMK_approvalstageorder_DuplicateBaseRecord) +- [approvalstageorder_DuplicateMatchingRecord](#BKMK_approvalstageorder_DuplicateMatchingRecord) +- [approvalstageorder_MailboxTrackingFolders](#BKMK_approvalstageorder_MailboxTrackingFolders) +- [approvalstageorder_PrincipalObjectAttributeAccesses](#BKMK_approvalstageorder_PrincipalObjectAttributeAccesses) +- [approvalstageorder_ProcessSession](#BKMK_approvalstageorder_ProcessSession) +- [approvalstageorder_SyncErrors](#BKMK_approvalstageorder_SyncErrors) +- [msdyn_flow_approval_currentstage_approvalstageorder](#BKMK_msdyn_flow_approval_currentstage_approvalstageorder) + +### approvalstageorder_AsyncOperations + +Many-To-One Relationship: [asyncoperation approvalstageorder_AsyncOperations](asyncoperation.md#BKMK_approvalstageorder_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencingEntity|`asyncoperation`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalstageorder_AsyncOperations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstageorder_BulkDeleteFailures + +Many-To-One Relationship: [bulkdeletefailure approvalstageorder_BulkDeleteFailures](bulkdeletefailure.md#BKMK_approvalstageorder_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencingEntity|`bulkdeletefailure`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalstageorder_BulkDeleteFailures`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstageorder_DuplicateBaseRecord + +Many-To-One Relationship: [duplicaterecord approvalstageorder_DuplicateBaseRecord](duplicaterecord.md#BKMK_approvalstageorder_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`baserecordid`| +|ReferencedEntityNavigationPropertyName|`approvalstageorder_DuplicateBaseRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstageorder_DuplicateMatchingRecord + +Many-To-One Relationship: [duplicaterecord approvalstageorder_DuplicateMatchingRecord](duplicaterecord.md#BKMK_approvalstageorder_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencedEntityNavigationPropertyName|`approvalstageorder_DuplicateMatchingRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstageorder_MailboxTrackingFolders + +Many-To-One Relationship: [mailboxtrackingfolder approvalstageorder_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_approvalstageorder_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencingEntity|`mailboxtrackingfolder`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalstageorder_MailboxTrackingFolders`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstageorder_PrincipalObjectAttributeAccesses + +Many-To-One Relationship: [principalobjectattributeaccess approvalstageorder_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_approvalstageorder_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencingEntity|`principalobjectattributeaccess`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`approvalstageorder_PrincipalObjectAttributeAccesses`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstageorder_ProcessSession + +Many-To-One Relationship: [processsession approvalstageorder_ProcessSession](processsession.md#BKMK_approvalstageorder_ProcessSession) + +|Property|Value| +|---|---| +|ReferencingEntity|`processsession`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalstageorder_ProcessSession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstageorder_SyncErrors + +Many-To-One Relationship: [syncerror approvalstageorder_SyncErrors](syncerror.md#BKMK_approvalstageorder_SyncErrors) + +|Property|Value| +|---|---| +|ReferencingEntity|`syncerror`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`approvalstageorder_SyncErrors`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_flow_approval_currentstage_approvalstageorder + +Many-To-One Relationship: [msdyn_flow_approval msdyn_flow_approval_currentstage_approvalstageorder](msdyn_flow_approval.md#BKMK_msdyn_flow_approval_currentstage_approvalstageorder) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_flow_approval`| +|ReferencingAttribute|`currentstage`| +|ReferencedEntityNavigationPropertyName|`msdyn_flow_approval_currentstage_approvalstageorder`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/asyncoperation.md b/powerapps-docs/developer/data-platform/reference/entities/asyncoperation.md index c2455b1102..603a754cb9 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/asyncoperation.md +++ b/powerapps-docs/developer/data-platform/reference/entities/asyncoperation.md @@ -389,6 +389,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |103|**Cancel Async Operations (System)**| |104|**Process Table For RecycleBin**| |105|**Cascade Assign All Async Operation**| +|106|**Background Team Service Async Operation**| |187|**Async Restore Job**| |201|**Provision language for user**| |202|**Export Solution Async Operation**| @@ -419,6 +420,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |334|**Deletes related Elastic or SQL Table records when an Elastic Table record is deleted**| |335|**Catalog service asyc operation to poll for a solution checker request**| |336|**Catalog service asyc operation to submit a solution checker request**| +|337|**Solution service async operation to install solution after app updates**| |12801|**Cascade Grant or Revoke Access Version Tracking Async Operation**| |190690091|**AI Builder Training Events**| |190690092|**AI Builder Prediction Events**| @@ -559,7 +561,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |LogicalName|`regardingobjectid`| |RequiredLevel|None| |Type|Lookup| -|Targets|account, activityfileattachment, activitymimeattachment, activitypointer, adx_externalidentity, adx_invitation, adx_inviteredemption, adx_portalcomment, adx_setting, adx_webformsession, aicopilot, aiinsightcard, aiplugin, aipluginauth, aipluginconversationstarter, aipluginconversationstartermapping, aipluginexternalschema, aipluginexternalschemaproperty, aiplugingovernance, aiplugingovernanceext, aiplugininstance, aipluginoperation, aipluginoperationparameter, aipluginoperationresponsetemplate, aiplugintitle, aipluginusersetting, aiskillconfig, annotation, annualfiscalcalendar, appaction, appactionmigration, appactionrule, appelement, application, applicationuser, appmodulecomponentedge, appmodulecomponentnode, appointment, appsetting, appusersetting, archivecleanupinfo, archivecleanupoperation, attributeimageconfig, attributemap, attributemaskingrule, attributepicklistvalue, bot, botcomponent, botcomponentcollection, bulkarchiveconfig, bulkarchivefailuredetail, bulkarchiveoperation, bulkarchiveoperationdetail, businessunit, businessunitnewsarticle, calendar, canvasappextendedmetadata, card, cascadegrantrevokeaccessrecordstracker, cascadegrantrevokeaccessversiontracker, catalog, catalogassignment, certificatecredential, channelaccessprofile, channelaccessprofilerule, chat, comment, connection, connectioninstance, connectionreference, connectionrole, connector, contact, conversationtranscript, convertrule, copilotexamplequestion, copilotglossaryterm, copilotsynonyms, credential, customapi, customapirequestparameter, customapiresponseproperty, customeraddress, customerrelationship, datalakefolder, datalakefolderpermission, datalakeworkspace, datalakeworkspacepermission, dataprocessingconfiguration, delegatedauthorization, deleteditemreference, desktopflowbinary, desktopflowmodule, displaystring, dvfilesearch, dvfilesearchattribute, dvfilesearchentity, dvtablesearch, dvtablesearchattribute, dvtablesearchentity, email, emailserverprofile, enablearchivalrequest, entityanalyticsconfig, entityimageconfig, entityindex, entitymap, entityrecordfilter, environmentvariabledefinition, environmentvariablevalue, exportedexcel, exportsolutionupload, externalparty, externalpartyitem, fabricaiskill, fax, featurecontrolsetting, federatedknowledgeconfiguration, federatedknowledgeentityconfiguration, fixedmonthlyfiscalcalendar, flowcapacityassignment, flowcredentialapplication, flowevent, flowmachine, flowmachinegroup, flowmachineimage, flowmachineimageversion, flowmachinenetwork, flowsession, fxexpression, goal, goalrollupquery, governanceconfiguration, holidaywrapper, import, importdata, importfile, importlog, importmap, indexattributes, interactionforemail, internalcatalogassignment, isvconfig, kbarticle, kbarticlecomment, kbarticletemplate, keyvaultreference, knowledgearticle, knowledgebaserecord, letter, mailbox, mailmergetemplate, mainfewshot, makerfewshot, managedidentity, maskingrule, metadataforarchival, metric, mobileofflineprofileextension, monthlyfiscalcalendar, msdynce_botcontent, msdyn_aibdataset, msdyn_aibdatasetfile, msdyn_aibdatasetrecord, msdyn_aibdatasetscontainer, msdyn_aibfeedbackloop, msdyn_aibfile, msdyn_aibfileattacheddata, msdyn_aiconfiguration, msdyn_aievent, msdyn_aifptrainingdocument, msdyn_aimodel, msdyn_aiodimage, msdyn_aiodlabel, msdyn_aiodtrainingboundingbox, msdyn_aiodtrainingimage, msdyn_aitemplate, msdyn_analysiscomponent, msdyn_analysisjob, msdyn_analysisoverride, msdyn_analysisresult, msdyn_analysisresultdetail, msdyn_appinsightsmetadata, msdyn_copilotinteractions, msdyn_customcontrolextendedsettings, msdyn_dataflow, msdyn_dataflowconnectionreference, msdyn_dataflowrefreshhistory, msdyn_dataflowtemplate, msdyn_dataflow_datalakefolder, msdyn_dmsrequest, msdyn_dmsrequeststatus, msdyn_dmssyncrequest, msdyn_dmssyncstatus, msdyn_entitylinkchatconfiguration, msdyn_entityrefreshhistory, msdyn_favoriteknowledgearticle, msdyn_federatedarticle, msdyn_federatedarticleincident, msdyn_fileupload, msdyn_flow_actionapprovalmodel, msdyn_flow_approval, msdyn_flow_approvalrequest, msdyn_flow_approvalresponse, msdyn_flow_approvalstep, msdyn_flow_awaitallactionapprovalmodel, msdyn_flow_awaitallapprovalmodel, msdyn_flow_basicapprovalmodel, msdyn_flow_flowapproval, msdyn_formmapping, msdyn_function, msdyn_helppage, msdyn_insightsstorevirtualentity, msdyn_integratedsearchprovider, msdyn_kalanguagesetting, msdyn_kbattachment, msdyn_kmfederatedsearchconfig, msdyn_kmpersonalizationsetting, msdyn_knowledgearticleimage, msdyn_knowledgearticletemplate, msdyn_knowledgeassetconfiguration, msdyn_knowledgeconfiguration, msdyn_knowledgeinteractioninsight, msdyn_knowledgemanagementsetting, msdyn_knowledgepersonalfilter, msdyn_knowledgesearchfilter, msdyn_knowledgesearchinsight, msdyn_mobileapp, msdyn_modulerundetail, msdyn_pmanalysishistory, msdyn_pmbusinessruleautomationconfig, msdyn_pmcalendar, msdyn_pmcalendarversion, msdyn_pminferredtask, msdyn_pmprocessextendedmetadataversion, msdyn_pmprocesstemplate, msdyn_pmprocessusersettings, msdyn_pmprocessversion, msdyn_pmrecording, msdyn_pmsimulation, msdyn_pmtemplate, msdyn_pmview, msdyn_qna, msdyn_richtextfile, msdyn_salesforcestructuredobject, msdyn_salesforcestructuredqnaconfig, msdyn_schedule, msdyn_serviceconfiguration, msdyn_slakpi, msdyn_solutionhealthrule, msdyn_solutionhealthruleargument, msdyn_solutionhealthruleset, msdyn_tour, msdyn_virtualtablecolumncandidate, msdyn_workflowactionstatus, msgraphresourcetosubscription, mspcat_catalogsubmissionfiles, mspcat_packagestore, organization, organizationdatasyncfnostate, organizationdatasyncstate, organizationdatasyncsubscription, organizationdatasyncsubscriptionentity, organizationdatasyncsubscriptionfnotable, organizationsetting, package, packagehistory, pdfsetting, phonecall, plannerbusinessscenario, plannersyncaction, plugin, pluginpackage, position, post, postfollow, powerbidataset, powerbidatasetapdx, powerbimashupparameter, powerbireport, powerbireportapdx, powerfxrule, powerpagecomponent, powerpagesite, powerpagesitelanguage, powerpagesitepublished, powerpagesmanagedidentity, powerpagesscanreport, privilege, privilegecheckerlog, privilegecheckerrun, privilegesremovalsetting, processorregistration, processstageparameter, provisionlanguageforuser, quarterlyfiscalcalendar, queue, queueitem, reconciliationentityinfo, reconciliationentitystepinfo, reconciliationinfo, recordfilter, recurringappointmentmaster, recyclebinconfig, relationshipattribute, relationshiprole, relationshiprolemap, report, reportparameter, retaineddataexcel, retentioncleanupinfo, retentioncleanupoperation, retentionconfig, retentionfailuredetail, retentionoperation, retentionoperationdetail, retentionsuccessdetail, revokeinheritedaccessrecordstracker, role, roleeditorlayout, rollupfield, routingrule, routingruleitem, savedquery, searchattributesettings, searchcustomanalyzer, searchrelationshipsettings, semiannualfiscalcalendar, serviceplan, serviceplancustomcontrol, serviceplanmapping, settingdefinition, sharedlinksetting, sharedobject, sharedworkspace, sharedworkspacepool, sharepointdocumentlocation, sharepointmanagedidentity, sharepointsite, sideloadedaiplugin, signalregistration, similarityrule, sla, socialactivity, socialprofile, solutioncomponentattributeconfiguration, solutioncomponentbatchconfiguration, solutioncomponentconfiguration, solutioncomponentrelationshipconfiguration, stagedentity, stagedentityattribute, stagedmetadataasyncoperation, stagesolutionupload, subject, supportusertable, synapsedatabase, synapselinkexternaltablestate, synapselinkprofile, synapselinkprofileentity, synapselinkprofileentitystate, synapselinkschedule, systemform, systemuser, systemuserauthorizationchangetracker, task, tdsmetadata, team, teammobileofflineprofilemembership, template, territory, theme, traitregistration, transactioncurrency, userform, usermapping, usermobileofflineprofilemembership, userquery, userrating, viewasexamplequestion, virtualentitymetadata, workflowbinary, workqueue, workqueueitem| +|Targets|account, activityfileattachment, activitymimeattachment, activitypointer, adx_externalidentity, adx_invitation, adx_inviteredemption, adx_portalcomment, adx_setting, adx_webformsession, aicopilot, aiinsightcard, aiplugin, aipluginauth, aipluginconversationstarter, aipluginconversationstartermapping, aipluginexternalschema, aipluginexternalschemaproperty, aiplugingovernance, aiplugingovernanceext, aiplugininstance, aipluginoperation, aipluginoperationparameter, aipluginoperationresponsetemplate, aiplugintitle, aipluginusersetting, aiskillconfig, annotation, annualfiscalcalendar, appaction, appactionmigration, appactionrule, appelement, application, applicationuser, appmodulecomponentedge, appmodulecomponentnode, appointment, approvalprocess, approvalstageapproval, approvalstagecondition, approvalstageorder, appsetting, appusersetting, archivecleanupinfo, archivecleanupoperation, attributeimageconfig, attributemap, attributemaskingrule, attributepicklistvalue, bot, botcomponent, botcomponentcollection, bulkarchiveconfig, bulkarchivefailuredetail, bulkarchiveoperation, bulkarchiveoperationdetail, businessprocess, businessunit, businessunitnewsarticle, calendar, canvasappextendedmetadata, card, cascadegrantrevokeaccessrecordstracker, cascadegrantrevokeaccessversiontracker, catalog, catalogassignment, certificatecredential, channelaccessprofile, channelaccessprofilerule, chat, comment, connection, connectioninstance, connectionreference, connectionrole, connector, contact, conversationtranscript, convertrule, copilotexamplequestion, copilotglossaryterm, copilotsynonyms, credential, customapi, customapirequestparameter, customapiresponseproperty, customeraddress, customerrelationship, datalakefolder, datalakefolderpermission, datalakeworkspace, datalakeworkspacepermission, dataprocessingconfiguration, delegatedauthorization, deleteditemreference, desktopflowbinary, desktopflowmodule, displaystring, dvfilesearch, dvfilesearchattribute, dvfilesearchentity, dvtablesearch, dvtablesearchattribute, dvtablesearchentity, email, emailaddressconfiguration, emailserverprofile, enablearchivalrequest, entityanalyticsconfig, entityclusterconfig, entityimageconfig, entityindex, entitymap, entityrecordfilter, environmentvariabledefinition, environmentvariablevalue, exportedexcel, exportsolutionupload, externalparty, externalpartyitem, fabricaiskill, fax, featurecontrolsetting, federatedknowledgecitation, federatedknowledgeconfiguration, federatedknowledgeentityconfiguration, federatedknowledgemetadatarefresh, fixedmonthlyfiscalcalendar, flowcapacityassignment, flowcredentialapplication, flowevent, flowmachine, flowmachinegroup, flowmachineimage, flowmachineimageversion, flowmachinenetwork, flowsession, fxexpression, goal, goalrollupquery, governanceconfiguration, holidaywrapper, import, importdata, importfile, importlog, importmap, indexattributes, interactionforemail, internalcatalogassignment, isvconfig, kbarticle, kbarticlecomment, kbarticletemplate, keyvaultreference, knowledgearticle, knowledgebaserecord, letter, mailbox, mailmergetemplate, mainfewshot, makerfewshot, managedidentity, maskingrule, metadataforarchival, metric, mobileofflineprofileextension, monthlyfiscalcalendar, msdynce_botcontent, msdyn_aibdataset, msdyn_aibdatasetfile, msdyn_aibdatasetrecord, msdyn_aibdatasetscontainer, msdyn_aibfeedbackloop, msdyn_aibfile, msdyn_aibfileattacheddata, msdyn_aiconfiguration, msdyn_aidataprocessingevent, msdyn_aievaluationconfiguration, msdyn_aievaluationrun, msdyn_aievent, msdyn_aifptrainingdocument, msdyn_aimodel, msdyn_aimodelcatalog, msdyn_aiodimage, msdyn_aiodlabel, msdyn_aiodtrainingboundingbox, msdyn_aiodtrainingimage, msdyn_aitemplate, msdyn_aitestcase, msdyn_aitestcasedocument, msdyn_aitestcaseinput, msdyn_aitestrun, msdyn_aitestrunbatch, msdyn_analysiscomponent, msdyn_analysisjob, msdyn_analysisoverride, msdyn_analysisresult, msdyn_analysisresultdetail, msdyn_appinsightsmetadata, msdyn_copilotinteractions, msdyn_customcontrolextendedsettings, msdyn_dataflow, msdyn_dataflowconnectionreference, msdyn_dataflowrefreshhistory, msdyn_dataflowtemplate, msdyn_dataflow_datalakefolder, msdyn_dataworkspace, msdyn_dmsrequest, msdyn_dmsrequeststatus, msdyn_dmssyncrequest, msdyn_dmssyncstatus, msdyn_entitylinkchatconfiguration, msdyn_entityrefreshhistory, msdyn_favoriteknowledgearticle, msdyn_federatedarticle, msdyn_federatedarticleincident, msdyn_fileupload, msdyn_flow_actionapprovalmodel, msdyn_flow_approval, msdyn_flow_approvalrequest, msdyn_flow_approvalresponse, msdyn_flow_approvalstep, msdyn_flow_awaitallactionapprovalmodel, msdyn_flow_awaitallapprovalmodel, msdyn_flow_basicapprovalmodel, msdyn_flow_flowapproval, msdyn_formmapping, msdyn_function, msdyn_helppage, msdyn_insightsstorevirtualentity, msdyn_integratedsearchprovider, msdyn_kalanguagesetting, msdyn_kbattachment, msdyn_kmfederatedsearchconfig, msdyn_kmpersonalizationsetting, msdyn_knowledgearticleimage, msdyn_knowledgearticletemplate, msdyn_knowledgeassetconfiguration, msdyn_knowledgeconfiguration, msdyn_knowledgeinteractioninsight, msdyn_knowledgemanagementsetting, msdyn_knowledgepersonalfilter, msdyn_knowledgesearchfilter, msdyn_knowledgesearchinsight, msdyn_mobileapp, msdyn_modulerundetail, msdyn_plan, msdyn_planartifact, msdyn_planattachment, msdyn_pmanalysishistory, msdyn_pmbusinessruleautomationconfig, msdyn_pmcalendar, msdyn_pmcalendarversion, msdyn_pminferredtask, msdyn_pmprocessextendedmetadataversion, msdyn_pmprocesstemplate, msdyn_pmprocessusersettings, msdyn_pmprocessversion, msdyn_pmrecording, msdyn_pmsimulation, msdyn_pmtemplate, msdyn_pmview, msdyn_qna, msdyn_richtextfile, msdyn_salesforcestructuredobject, msdyn_salesforcestructuredqnaconfig, msdyn_schedule, msdyn_serviceconfiguration, msdyn_slakpi, msdyn_solutionhealthrule, msdyn_solutionhealthruleargument, msdyn_solutionhealthruleset, msdyn_tour, msdyn_virtualtablecolumncandidate, msdyn_workflowactionstatus, msgraphresourcetosubscription, mspcat_catalogsubmissionfiles, mspcat_packagestore, organization, organizationdatasyncfnostate, organizationdatasyncstate, organizationdatasyncsubscription, organizationdatasyncsubscriptionentity, organizationdatasyncsubscriptionfnotable, organizationsetting, package, packagehistory, pdfsetting, phonecall, plannerbusinessscenario, plannersyncaction, plugin, pluginpackage, position, post, postfollow, powerbidataset, powerbidatasetapdx, powerbimashupparameter, powerbireport, powerbireportapdx, powerfxrule, powerpagecomponent, powerpagesite, powerpagesitelanguage, powerpagesitepublished, powerpagesmanagedidentity, powerpagesscanreport, privilege, privilegecheckerlog, privilegecheckerrun, privilegesremovalsetting, processorregistration, processstageparameter, provisionlanguageforuser, quarterlyfiscalcalendar, queue, queueitem, reconciliationentityinfo, reconciliationentitystepinfo, reconciliationinfo, recordfilter, recurringappointmentmaster, recyclebinconfig, relationshipattribute, relationshiprole, relationshiprolemap, report, reportparameter, retaineddataexcel, retentioncleanupinfo, retentioncleanupoperation, retentionconfig, retentionfailuredetail, retentionoperation, retentionoperationdetail, retentionsuccessdetail, revokeinheritedaccessrecordstracker, role, roleeditorlayout, rollupfield, routingrule, routingruleitem, savedquery, savingrule, searchattributesettings, searchcustomanalyzer, searchrelationshipsettings, semiannualfiscalcalendar, serviceplan, serviceplancustomcontrol, serviceplanmapping, settingdefinition, sharedlinksetting, sharedobject, sharedworkspace, sharedworkspacepool, sharepointdocumentlocation, sharepointmanagedidentity, sharepointsite, sideloadedaiplugin, signalregistration, similarityrule, sla, socialactivity, socialprofile, solutioncomponentattributeconfiguration, solutioncomponentbatchconfiguration, solutioncomponentconfiguration, solutioncomponentrelationshipconfiguration, stagedentity, stagedentityattribute, stagedmetadataasyncoperation, stagesolutionupload, subject, supportusertable, synapsedatabase, synapselinkexternaltablestate, synapselinkprofile, synapselinkprofileentity, synapselinkprofileentitystate, synapselinkschedule, systemform, systemuser, systemuserauthorizationchangetracker, tag, taggedflowsession, taggedprocess, task, tdsmetadata, team, teammobileofflineprofilemembership, template, territory, theme, traitregistration, transactioncurrency, unstructuredfilesearchentity, unstructuredfilesearchrecord, userform, usermapping, usermobileofflineprofilemembership, userquery, userrating, viewasexamplequestion, virtualentitymetadata, workflowbinary, workflowmetadata, workqueue, workqueueitem| ### RegardingObjectTypeCode @@ -996,7 +998,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| @@ -1150,7 +1152,6 @@ These relationships are many-to-one. Listed by **SchemaName**. - [adx_setting_AsyncOperations](#BKMK_adx_setting_AsyncOperations) - [adx_webformsession_AsyncOperations](#BKMK_adx_webformsession_AsyncOperations) - [aicopilot_AsyncOperations](#BKMK_aicopilot_AsyncOperations) -- [aiinsightcard_AsyncOperations](#BKMK_aiinsightcard_AsyncOperations) - [aiplugin_AsyncOperations](#BKMK_aiplugin_AsyncOperations) - [aipluginauth_AsyncOperations](#BKMK_aipluginauth_AsyncOperations) - [aipluginconversationstarter_AsyncOperations](#BKMK_aipluginconversationstarter_AsyncOperations) @@ -1173,6 +1174,10 @@ These relationships are many-to-one. Listed by **SchemaName**. - [application_AsyncOperations](#BKMK_application_AsyncOperations) - [applicationuser_AsyncOperations](#BKMK_applicationuser_AsyncOperations) - [Appointment_AsyncOperations](#BKMK_Appointment_AsyncOperations) +- [approvalprocess_AsyncOperations](#BKMK_approvalprocess_AsyncOperations) +- [approvalstageapproval_AsyncOperations](#BKMK_approvalstageapproval_AsyncOperations) +- [approvalstagecondition_AsyncOperations](#BKMK_approvalstagecondition_AsyncOperations) +- [approvalstageorder_AsyncOperations](#BKMK_approvalstageorder_AsyncOperations) - [attributeimageconfig_AsyncOperations](#BKMK_attributeimageconfig_AsyncOperations) - [attributemaskingrule_AsyncOperations](#BKMK_attributemaskingrule_AsyncOperations) - [attributepicklistvalue_AsyncOperations](#BKMK_attributepicklistvalue_AsyncOperations) @@ -1180,6 +1185,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [botcomponent_AsyncOperations](#BKMK_botcomponent_AsyncOperations) - [botcomponentcollection_AsyncOperations](#BKMK_botcomponentcollection_AsyncOperations) - [business_unit_asyncoperation](#BKMK_business_unit_asyncoperation) +- [businessprocess_AsyncOperations](#BKMK_businessprocess_AsyncOperations) - [BusinessUnit_AsyncOperations](#BKMK_BusinessUnit_AsyncOperations) - [BusinessUnitNewsArticle_AsyncOperations](#BKMK_BusinessUnitNewsArticle_AsyncOperations) - [Calendar_AsyncOperations](#BKMK_Calendar_AsyncOperations) @@ -1219,8 +1225,10 @@ These relationships are many-to-one. Listed by **SchemaName**. - [dvtablesearchattribute_AsyncOperations](#BKMK_dvtablesearchattribute_AsyncOperations) - [dvtablesearchentity_AsyncOperations](#BKMK_dvtablesearchentity_AsyncOperations) - [Email_AsyncOperations](#BKMK_Email_AsyncOperations) +- [emailaddressconfiguration_AsyncOperations](#BKMK_emailaddressconfiguration_AsyncOperations) - [emailserverprofile_asyncoperations](#BKMK_emailserverprofile_asyncoperations) - [entityanalyticsconfig_AsyncOperations](#BKMK_entityanalyticsconfig_AsyncOperations) +- [entityclusterconfig_AsyncOperations](#BKMK_entityclusterconfig_AsyncOperations) - [entityimageconfig_AsyncOperations](#BKMK_entityimageconfig_AsyncOperations) - [entityindex_AsyncOperations](#BKMK_entityindex_AsyncOperations) - [entityrecordfilter_AsyncOperations](#BKMK_entityrecordfilter_AsyncOperations) @@ -1285,6 +1293,9 @@ These relationships are many-to-one. Listed by **SchemaName**. - [msdyn_aibfile_AsyncOperations](#BKMK_msdyn_aibfile_AsyncOperations) - [msdyn_aibfileattacheddata_AsyncOperations](#BKMK_msdyn_aibfileattacheddata_AsyncOperations) - [msdyn_aiconfiguration_AsyncOperations](#BKMK_msdyn_aiconfiguration_AsyncOperations) +- [msdyn_aidataprocessingevent_AsyncOperations](#BKMK_msdyn_aidataprocessingevent_AsyncOperations) +- [msdyn_aievaluationconfiguration_AsyncOperations](#BKMK_msdyn_aievaluationconfiguration_AsyncOperations) +- [msdyn_aievaluationrun_AsyncOperations](#BKMK_msdyn_aievaluationrun_AsyncOperations) - [msdyn_aievent_AsyncOperations](#BKMK_msdyn_aievent_AsyncOperations) - [msdyn_aifptrainingdocument_AsyncOperations](#BKMK_msdyn_aifptrainingdocument_AsyncOperations) - [msdyn_aimodel_AsyncOperations](#BKMK_msdyn_aimodel_AsyncOperations) @@ -1293,6 +1304,11 @@ These relationships are many-to-one. Listed by **SchemaName**. - [msdyn_aiodtrainingboundingbox_AsyncOperations](#BKMK_msdyn_aiodtrainingboundingbox_AsyncOperations) - [msdyn_aiodtrainingimage_AsyncOperations](#BKMK_msdyn_aiodtrainingimage_AsyncOperations) - [msdyn_aitemplate_AsyncOperations](#BKMK_msdyn_aitemplate_AsyncOperations) +- [msdyn_aitestcase_AsyncOperations](#BKMK_msdyn_aitestcase_AsyncOperations) +- [msdyn_aitestcasedocument_AsyncOperations](#BKMK_msdyn_aitestcasedocument_AsyncOperations) +- [msdyn_aitestcaseinput_AsyncOperations](#BKMK_msdyn_aitestcaseinput_AsyncOperations) +- [msdyn_aitestrun_AsyncOperations](#BKMK_msdyn_aitestrun_AsyncOperations) +- [msdyn_aitestrunbatch_AsyncOperations](#BKMK_msdyn_aitestrunbatch_AsyncOperations) - [msdyn_analysiscomponent_AsyncOperations](#BKMK_msdyn_analysiscomponent_AsyncOperations) - [msdyn_analysisjob_AsyncOperations](#BKMK_msdyn_analysisjob_AsyncOperations) - [msdyn_analysisoverride_AsyncOperations](#BKMK_msdyn_analysisoverride_AsyncOperations) @@ -1408,7 +1424,6 @@ These relationships are many-to-one. Listed by **SchemaName**. - [privilegecheckerlog_AsyncOperations](#BKMK_privilegecheckerlog_AsyncOperations) - [privilegecheckerrun_AsyncOperations](#BKMK_privilegecheckerrun_AsyncOperations) - [privilegesremovalsetting_AsyncOperations](#BKMK_privilegesremovalsetting_AsyncOperations) -- [processorregistration_AsyncOperations](#BKMK_processorregistration_AsyncOperations) - [processstageparameter_AsyncOperations](#BKMK_processstageparameter_AsyncOperations) - [provisionlanguageforuser_AsyncOperations](#BKMK_provisionlanguageforuser_AsyncOperations) - [QuarterlyFiscalCalendar_AsyncOperations](#BKMK_QuarterlyFiscalCalendar_AsyncOperations) @@ -1430,6 +1445,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [roleeditorlayout_AsyncOperations](#BKMK_roleeditorlayout_AsyncOperations) - [rollupfield_AsyncOperations](#BKMK_rollupfield_AsyncOperations) - [SavedQuery_AsyncOperations](#BKMK_SavedQuery_AsyncOperations) +- [savingrule_AsyncOperations](#BKMK_savingrule_AsyncOperations) - [SdkMessageProcessingStep_AsyncOperations](#BKMK_SdkMessageProcessingStep_AsyncOperations) - [searchattributesettings_AsyncOperations](#BKMK_searchattributesettings_AsyncOperations) - [searchcustomanalyzer_AsyncOperations](#BKMK_searchcustomanalyzer_AsyncOperations) @@ -1445,7 +1461,6 @@ These relationships are many-to-one. Listed by **SchemaName**. - [sharepointmanagedidentity_AsyncOperations](#BKMK_sharepointmanagedidentity_AsyncOperations) - [SharePointSite_AsyncOperations](#BKMK_SharePointSite_AsyncOperations) - [sideloadedaiplugin_AsyncOperations](#BKMK_sideloadedaiplugin_AsyncOperations) -- [signalregistration_AsyncOperations](#BKMK_signalregistration_AsyncOperations) - [similarityrule_AsyncOperations](#BKMK_similarityrule_AsyncOperations) - [slabase_AsyncOperations](#BKMK_slabase_AsyncOperations) - [SocialActivity_AsyncOperations](#BKMK_SocialActivity_AsyncOperations) @@ -1470,6 +1485,9 @@ These relationships are many-to-one. Listed by **SchemaName**. - [SystemForm_AsyncOperations](#BKMK_SystemForm_AsyncOperations) - [SystemUser_AsyncOperations](#BKMK_SystemUser_AsyncOperations) - [systemuserauthorizationchangetracker_AsyncOperations](#BKMK_systemuserauthorizationchangetracker_AsyncOperations) +- [tag_AsyncOperations](#BKMK_tag_AsyncOperations) +- [taggedflowsession_AsyncOperations](#BKMK_taggedflowsession_AsyncOperations) +- [taggedprocess_AsyncOperations](#BKMK_taggedprocess_AsyncOperations) - [Task_AsyncOperations](#BKMK_Task_AsyncOperations) - [team_asyncoperation](#BKMK_team_asyncoperation) - [Team_AsyncOperations](#BKMK_Team_AsyncOperations) @@ -1477,8 +1495,9 @@ These relationships are many-to-one. Listed by **SchemaName**. - [Template_AsyncOperations](#BKMK_Template_AsyncOperations) - [Territory_AsyncOperations](#BKMK_Territory_AsyncOperations) - [theme_AsyncOperations](#BKMK_theme_AsyncOperations) -- [traitregistration_AsyncOperations](#BKMK_traitregistration_AsyncOperations) - [TransactionCurrency_AsyncOperations](#BKMK_TransactionCurrency_AsyncOperations) +- [unstructuredfilesearchentity_AsyncOperations](#BKMK_unstructuredfilesearchentity_AsyncOperations) +- [unstructuredfilesearchrecord_AsyncOperations](#BKMK_unstructuredfilesearchrecord_AsyncOperations) - [UserForm_AsyncOperations](#BKMK_UserForm_AsyncOperations) - [usermapping_AsyncOperations](#BKMK_usermapping_AsyncOperations) - [usermobileofflineprofilemembership_AsyncOperations](#BKMK_usermobileofflineprofilemembership_AsyncOperations) @@ -1487,6 +1506,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [viewasexamplequestion_AsyncOperations](#BKMK_viewasexamplequestion_AsyncOperations) - [virtualentitymetadata_AsyncOperations](#BKMK_virtualentitymetadata_AsyncOperations) - [workflowbinary_AsyncOperations](#BKMK_workflowbinary_AsyncOperations) +- [workflowmetadata_AsyncOperations](#BKMK_workflowmetadata_AsyncOperations) - [workqueue_AsyncOperations](#BKMK_workqueue_AsyncOperations) - [workqueueitem_AsyncOperations](#BKMK_workqueueitem_AsyncOperations) @@ -1633,19 +1653,6 @@ One-To-Many Relationship: [aicopilot aicopilot_AsyncOperations](aicopilot.md#BKM |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### aiinsightcard_AsyncOperations - -One-To-Many Relationship: [aiinsightcard aiinsightcard_AsyncOperations](aiinsightcard.md#BKMK_aiinsightcard_AsyncOperations) - -|Property|Value| -|---|---| -|ReferencedEntity|`aiinsightcard`| -|ReferencedAttribute|`aiinsightcardid`| -|ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_aiinsightcard`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### aiplugin_AsyncOperations One-To-Many Relationship: [aiplugin aiplugin_AsyncOperations](aiplugin.md#BKMK_aiplugin_AsyncOperations) @@ -1932,6 +1939,58 @@ One-To-Many Relationship: [appointment Appointment_AsyncOperations](appointment. |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### approvalprocess_AsyncOperations + +One-To-Many Relationship: [approvalprocess approvalprocess_AsyncOperations](approvalprocess.md#BKMK_approvalprocess_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalprocess`| +|ReferencedAttribute|`approvalprocessid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstageapproval_AsyncOperations + +One-To-Many Relationship: [approvalstageapproval approvalstageapproval_AsyncOperations](approvalstageapproval.md#BKMK_approvalstageapproval_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageapproval`| +|ReferencedAttribute|`approvalstageapprovalid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalstageapproval`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstagecondition_AsyncOperations + +One-To-Many Relationship: [approvalstagecondition approvalstagecondition_AsyncOperations](approvalstagecondition.md#BKMK_approvalstagecondition_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstagecondition`| +|ReferencedAttribute|`approvalstageconditionid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalstagecondition`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstageorder_AsyncOperations + +One-To-Many Relationship: [approvalstageorder approvalstageorder_AsyncOperations](approvalstageorder.md#BKMK_approvalstageorder_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageorder`| +|ReferencedAttribute|`approvalstageorderid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalstageorder`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### attributeimageconfig_AsyncOperations One-To-Many Relationship: [attributeimageconfig attributeimageconfig_AsyncOperations](attributeimageconfig.md#BKMK_attributeimageconfig_AsyncOperations) @@ -2023,6 +2082,19 @@ One-To-Many Relationship: [businessunit business_unit_asyncoperation](businessun |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### businessprocess_AsyncOperations + +One-To-Many Relationship: [businessprocess businessprocess_AsyncOperations](businessprocess.md#BKMK_businessprocess_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessprocess`| +|ReferencedAttribute|`businessprocessid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_businessprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### BusinessUnit_AsyncOperations One-To-Many Relationship: [businessunit BusinessUnit_AsyncOperations](businessunit.md#BKMK_BusinessUnit_AsyncOperations) @@ -2530,6 +2602,19 @@ One-To-Many Relationship: [email Email_AsyncOperations](email.md#BKMK_Email_Asyn |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### emailaddressconfiguration_AsyncOperations + +One-To-Many Relationship: [emailaddressconfiguration emailaddressconfiguration_AsyncOperations](emailaddressconfiguration.md#BKMK_emailaddressconfiguration_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`emailaddressconfiguration`| +|ReferencedAttribute|`emailaddressconfigurationid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_emailaddressconfiguration`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### emailserverprofile_asyncoperations One-To-Many Relationship: [emailserverprofile emailserverprofile_asyncoperations](emailserverprofile.md#BKMK_emailserverprofile_asyncoperations) @@ -2556,6 +2641,19 @@ One-To-Many Relationship: [entityanalyticsconfig entityanalyticsconfig_AsyncOper |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### entityclusterconfig_AsyncOperations + +One-To-Many Relationship: [entityclusterconfig entityclusterconfig_AsyncOperations](entityclusterconfig.md#BKMK_entityclusterconfig_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`entityclusterconfig`| +|ReferencedAttribute|`entityclusterconfigid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_entityclusterconfig`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### entityimageconfig_AsyncOperations One-To-Many Relationship: [entityimageconfig entityimageconfig_AsyncOperations](entityimageconfig.md#BKMK_entityimageconfig_AsyncOperations) @@ -3388,6 +3486,45 @@ One-To-Many Relationship: [msdyn_aiconfiguration msdyn_aiconfiguration_AsyncOper |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### msdyn_aidataprocessingevent_AsyncOperations + +One-To-Many Relationship: [msdyn_aidataprocessingevent msdyn_aidataprocessingevent_AsyncOperations](msdyn_aidataprocessingevent.md#BKMK_msdyn_aidataprocessingevent_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aidataprocessingevent`| +|ReferencedAttribute|`msdyn_aidataprocessingeventid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aidataprocessingevent`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aievaluationconfiguration_AsyncOperations + +One-To-Many Relationship: [msdyn_aievaluationconfiguration msdyn_aievaluationconfiguration_AsyncOperations](msdyn_aievaluationconfiguration.md#BKMK_msdyn_aievaluationconfiguration_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aievaluationconfiguration`| +|ReferencedAttribute|`msdyn_aievaluationconfigurationid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aievaluationconfiguration`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aievaluationrun_AsyncOperations + +One-To-Many Relationship: [msdyn_aievaluationrun msdyn_aievaluationrun_AsyncOperations](msdyn_aievaluationrun.md#BKMK_msdyn_aievaluationrun_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aievaluationrun`| +|ReferencedAttribute|`msdyn_aievaluationrunid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aievaluationrun`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### msdyn_aievent_AsyncOperations One-To-Many Relationship: [msdyn_aievent msdyn_aievent_AsyncOperations](msdyn_aievent.md#BKMK_msdyn_aievent_AsyncOperations) @@ -3492,6 +3629,71 @@ One-To-Many Relationship: [msdyn_aitemplate msdyn_aitemplate_AsyncOperations](ms |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### msdyn_aitestcase_AsyncOperations + +One-To-Many Relationship: [msdyn_aitestcase msdyn_aitestcase_AsyncOperations](msdyn_aitestcase.md#BKMK_msdyn_aitestcase_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcase`| +|ReferencedAttribute|`msdyn_aitestcaseid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestcase`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestcasedocument_AsyncOperations + +One-To-Many Relationship: [msdyn_aitestcasedocument msdyn_aitestcasedocument_AsyncOperations](msdyn_aitestcasedocument.md#BKMK_msdyn_aitestcasedocument_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcasedocument`| +|ReferencedAttribute|`msdyn_aitestcasedocumentid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestcasedocument`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestcaseinput_AsyncOperations + +One-To-Many Relationship: [msdyn_aitestcaseinput msdyn_aitestcaseinput_AsyncOperations](msdyn_aitestcaseinput.md#BKMK_msdyn_aitestcaseinput_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcaseinput`| +|ReferencedAttribute|`msdyn_aitestcaseinputid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestcaseinput`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestrun_AsyncOperations + +One-To-Many Relationship: [msdyn_aitestrun msdyn_aitestrun_AsyncOperations](msdyn_aitestrun.md#BKMK_msdyn_aitestrun_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestrun`| +|ReferencedAttribute|`msdyn_aitestrunid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestrun`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestrunbatch_AsyncOperations + +One-To-Many Relationship: [msdyn_aitestrunbatch msdyn_aitestrunbatch_AsyncOperations](msdyn_aitestrunbatch.md#BKMK_msdyn_aitestrunbatch_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestrunbatch`| +|ReferencedAttribute|`msdyn_aitestrunbatchid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestrunbatch`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### msdyn_analysiscomponent_AsyncOperations One-To-Many Relationship: [msdyn_analysiscomponent msdyn_analysiscomponent_AsyncOperations](msdyn_analysiscomponent.md#BKMK_msdyn_analysiscomponent_AsyncOperations) @@ -4987,19 +5189,6 @@ One-To-Many Relationship: [privilegesremovalsetting privilegesremovalsetting_Asy |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### processorregistration_AsyncOperations - -One-To-Many Relationship: [processorregistration processorregistration_AsyncOperations](processorregistration.md#BKMK_processorregistration_AsyncOperations) - -|Property|Value| -|---|---| -|ReferencedEntity|`processorregistration`| -|ReferencedAttribute|`processorregistrationid`| -|ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_processorregistration`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### processstageparameter_AsyncOperations One-To-Many Relationship: [processstageparameter processstageparameter_AsyncOperations](processstageparameter.md#BKMK_processstageparameter_AsyncOperations) @@ -5273,6 +5462,19 @@ One-To-Many Relationship: [savedquery SavedQuery_AsyncOperations](savedquery.md# |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### savingrule_AsyncOperations + +One-To-Many Relationship: [savingrule savingrule_AsyncOperations](savingrule.md#BKMK_savingrule_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`savingrule`| +|ReferencedAttribute|`savingruleid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_savingrule`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### SdkMessageProcessingStep_AsyncOperations One-To-Many Relationship: [sdkmessageprocessingstep SdkMessageProcessingStep_AsyncOperations](sdkmessageprocessingstep.md#BKMK_SdkMessageProcessingStep_AsyncOperations) @@ -5468,19 +5670,6 @@ One-To-Many Relationship: [sideloadedaiplugin sideloadedaiplugin_AsyncOperations |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### signalregistration_AsyncOperations - -One-To-Many Relationship: [signalregistration signalregistration_AsyncOperations](signalregistration.md#BKMK_signalregistration_AsyncOperations) - -|Property|Value| -|---|---| -|ReferencedEntity|`signalregistration`| -|ReferencedAttribute|`signalregistrationid`| -|ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_signalregistration`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### similarityrule_AsyncOperations One-To-Many Relationship: [similarityrule similarityrule_AsyncOperations](similarityrule.md#BKMK_similarityrule_AsyncOperations) @@ -5793,6 +5982,45 @@ One-To-Many Relationship: [systemuserauthorizationchangetracker systemuserauthor |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### tag_AsyncOperations + +One-To-Many Relationship: [tag tag_AsyncOperations](tag.md#BKMK_tag_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`tag`| +|ReferencedAttribute|`tagid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_tag`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### taggedflowsession_AsyncOperations + +One-To-Many Relationship: [taggedflowsession taggedflowsession_AsyncOperations](taggedflowsession.md#BKMK_taggedflowsession_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`taggedflowsession`| +|ReferencedAttribute|`taggedflowsessionid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_taggedflowsession`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### taggedprocess_AsyncOperations + +One-To-Many Relationship: [taggedprocess taggedprocess_AsyncOperations](taggedprocess.md#BKMK_taggedprocess_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`taggedprocess`| +|ReferencedAttribute|`taggedprocessid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_taggedprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### Task_AsyncOperations One-To-Many Relationship: [task Task_AsyncOperations](task.md#BKMK_Task_AsyncOperations) @@ -5884,29 +6112,42 @@ One-To-Many Relationship: [theme theme_AsyncOperations](theme.md#BKMK_theme_Asyn |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### traitregistration_AsyncOperations +### TransactionCurrency_AsyncOperations -One-To-Many Relationship: [traitregistration traitregistration_AsyncOperations](traitregistration.md#BKMK_traitregistration_AsyncOperations) +One-To-Many Relationship: [transactioncurrency TransactionCurrency_AsyncOperations](transactioncurrency.md#BKMK_TransactionCurrency_AsyncOperations) |Property|Value| |---|---| -|ReferencedEntity|`traitregistration`| -|ReferencedAttribute|`traitregistrationid`| +|ReferencedEntity|`transactioncurrency`| +|ReferencedAttribute|`transactioncurrencyid`| |ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_traitregistration`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_transactioncurrency`| |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### TransactionCurrency_AsyncOperations +### unstructuredfilesearchentity_AsyncOperations -One-To-Many Relationship: [transactioncurrency TransactionCurrency_AsyncOperations](transactioncurrency.md#BKMK_TransactionCurrency_AsyncOperations) +One-To-Many Relationship: [unstructuredfilesearchentity unstructuredfilesearchentity_AsyncOperations](unstructuredfilesearchentity.md#BKMK_unstructuredfilesearchentity_AsyncOperations) |Property|Value| |---|---| -|ReferencedEntity|`transactioncurrency`| -|ReferencedAttribute|`transactioncurrencyid`| +|ReferencedEntity|`unstructuredfilesearchentity`| +|ReferencedAttribute|`unstructuredfilesearchentityid`| |ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_transactioncurrency`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_unstructuredfilesearchentity`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### unstructuredfilesearchrecord_AsyncOperations + +One-To-Many Relationship: [unstructuredfilesearchrecord unstructuredfilesearchrecord_AsyncOperations](unstructuredfilesearchrecord.md#BKMK_unstructuredfilesearchrecord_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`unstructuredfilesearchrecord`| +|ReferencedAttribute|`unstructuredfilesearchrecordid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_unstructuredfilesearchrecord`| |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| @@ -6014,6 +6255,19 @@ One-To-Many Relationship: [workflowbinary workflowbinary_AsyncOperations](workfl |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### workflowmetadata_AsyncOperations + +One-To-Many Relationship: [workflowmetadata workflowmetadata_AsyncOperations](workflowmetadata.md#BKMK_workflowmetadata_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencedEntity|`workflowmetadata`| +|ReferencedAttribute|`workflowmetadataid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_workflowmetadata`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### workqueue_AsyncOperations One-To-Many Relationship: [workqueue workqueue_AsyncOperations](workqueue.md#BKMK_workqueue_AsyncOperations) diff --git a/powerapps-docs/developer/data-platform/reference/entities/attribute.md b/powerapps-docs/developer/data-platform/reference/entities/attribute.md index 574babc38c..5cb896aedf 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/attribute.md +++ b/powerapps-docs/developer/data-platform/reference/entities/attribute.md @@ -311,6 +311,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [attribute_dvfilesearchattribute](#BKMK_attribute_dvfilesearchattribute) - [attribute_dvtablesearchattribute](#BKMK_attribute_dvtablesearchattribute) - [attribute_solutioncomponentattrconfig](#BKMK_attribute_solutioncomponentattrconfig) +- [emailaddressconfiguration_attribute_AttributeId](#BKMK_emailaddressconfiguration_attribute_AttributeId) - [referencedattribute_relationshipattribute](#BKMK_referencedattribute_relationshipattribute) - [referencingattribute_relationshipattribute](#BKMK_referencingattribute_relationshipattribute) @@ -350,6 +351,18 @@ Many-To-One Relationship: [solutioncomponentattributeconfiguration attribute_sol |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### emailaddressconfiguration_attribute_AttributeId + +Many-To-One Relationship: [emailaddressconfiguration emailaddressconfiguration_attribute_AttributeId](emailaddressconfiguration.md#BKMK_emailaddressconfiguration_attribute_AttributeId) + +|Property|Value| +|---|---| +|ReferencingEntity|`emailaddressconfiguration`| +|ReferencingAttribute|`attributeid`| +|ReferencedEntityNavigationPropertyName|`emailaddressconfiguration_attribute_AttributeId`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### referencedattribute_relationshipattribute Many-To-One Relationship: [relationshipattribute referencedattribute_relationshipattribute](relationshipattribute.md#BKMK_referencedattribute_relationshipattribute) diff --git a/powerapps-docs/developer/data-platform/reference/entities/attributepicklistvalue.md b/powerapps-docs/developer/data-platform/reference/entities/attributepicklistvalue.md index 70afa30cdd..b05fb0c7d0 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/attributepicklistvalue.md +++ b/powerapps-docs/developer/data-platform/reference/entities/attributepicklistvalue.md @@ -226,4 +226,4 @@ Many-To-One Relationship: [syncerror attributepicklistvalue_SyncErrors](syncerro [Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) [Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) - + diff --git a/powerapps-docs/developer/data-platform/reference/entities/bot.md b/powerapps-docs/developer/data-platform/reference/entities/bot.md index cbfed032a9..af6ca9f0be 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/bot.md +++ b/powerapps-docs/developer/data-platform/reference/entities/bot.md @@ -334,6 +334,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |1081|**Hindi**| |2052|**Chinese (Simplified)**| |2057|**English (United Kingdom)**| +|2070|**Portuguese (Portugal)**| |3081|**English (Australia)**| |3084|**French (Canada)**| |21514|**Spanish (United States)**| @@ -584,6 +585,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |1081|**Hindi**| |2052|**Chinese (Simplified)**| |2057|**English (United Kingdom)**| +|2070|**Portuguese (Portugal)**| |3081|**English (Australia)**| |3084|**French (Canada)**| |21514|**Spanish (United States)**| diff --git a/powerapps-docs/developer/data-platform/reference/entities/botcomponent.md b/powerapps-docs/developer/data-platform/reference/entities/botcomponent.md index ab3641ad66..1c6c3138c9 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/botcomponent.md +++ b/powerapps-docs/developer/data-platform/reference/entities/botcomponent.md @@ -187,6 +187,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |16|**Knowledge Source**| |17|**External Trigger**| |18|**Copilot Settings**| +|19|**Test Case**| ### Content @@ -343,6 +344,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |1081|**Hindi**| |2052|**Chinese (Simplified)**| |2057|**English (United Kingdom)**| +|2070|**Portuguese (Portugal)**| |3081|**English (Australia)**| |3084|**French (Canada)**| |21514|**Spanish (United States)**| diff --git a/powerapps-docs/developer/data-platform/reference/entities/bulkdeletefailure.md b/powerapps-docs/developer/data-platform/reference/entities/bulkdeletefailure.md index 259aa91743..56f74240d0 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/bulkdeletefailure.md +++ b/powerapps-docs/developer/data-platform/reference/entities/bulkdeletefailure.md @@ -201,7 +201,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |LogicalName|`regardingobjectid`| |RequiredLevel|None| |Type|Lookup| -|Targets|account, activityfileattachment, activitymimeattachment, activitypointer, adx_externalidentity, adx_invitation, adx_inviteredemption, adx_portalcomment, adx_setting, adx_webformsession, aicopilot, aiinsightcard, aiplugin, aipluginauth, aipluginconversationstarter, aipluginconversationstartermapping, aipluginexternalschema, aipluginexternalschemaproperty, aiplugingovernance, aiplugingovernanceext, aiplugininstance, aipluginoperation, aipluginoperationparameter, aipluginoperationresponsetemplate, aiplugintitle, aipluginusersetting, aiskillconfig, annotation, annualfiscalcalendar, appaction, appactionmigration, appactionrule, appelement, application, applicationuser, appmodulecomponentedge, appmodulecomponentnode, appointment, appsetting, appusersetting, archivecleanupinfo, archivecleanupoperation, attributeimageconfig, attributemap, attributemaskingrule, attributepicklistvalue, bot, botcomponent, botcomponentcollection, bulkarchiveconfig, bulkarchivefailuredetail, bulkarchiveoperation, bulkarchiveoperationdetail, businessunit, businessunitnewsarticle, calendar, canvasappextendedmetadata, card, cascadegrantrevokeaccessrecordstracker, cascadegrantrevokeaccessversiontracker, catalog, catalogassignment, certificatecredential, channelaccessprofile, channelaccessprofilerule, chat, comment, connectioninstance, connectionreference, connector, contact, conversationtranscript, copilotexamplequestion, copilotglossaryterm, copilotsynonyms, credential, customapi, customapirequestparameter, customapiresponseproperty, customeraddress, customerrelationship, datalakefolder, datalakefolderpermission, datalakeworkspace, datalakeworkspacepermission, dataprocessingconfiguration, delegatedauthorization, deleteditemreference, desktopflowbinary, desktopflowmodule, displaystring, dvfilesearch, dvfilesearchattribute, dvfilesearchentity, dvtablesearch, dvtablesearchattribute, dvtablesearchentity, email, emailserverprofile, enablearchivalrequest, entityanalyticsconfig, entityimageconfig, entityindex, entitymap, entityrecordfilter, environmentvariabledefinition, environmentvariablevalue, exportedexcel, exportsolutionupload, externalparty, externalpartyitem, fabricaiskill, fax, featurecontrolsetting, federatedknowledgeconfiguration, federatedknowledgeentityconfiguration, fixedmonthlyfiscalcalendar, flowcapacityassignment, flowcredentialapplication, flowevent, flowmachine, flowmachinegroup, flowmachineimage, flowmachineimageversion, flowmachinenetwork, flowsession, fxexpression, governanceconfiguration, holidaywrapper, import, importdata, importfile, importlog, importmap, indexattributes, internalcatalogassignment, isvconfig, kbarticle, kbarticlecomment, kbarticletemplate, keyvaultreference, knowledgearticle, knowledgebaserecord, letter, mainfewshot, makerfewshot, managedidentity, maskingrule, metadataforarchival, mobileofflineprofileextension, monthlyfiscalcalendar, msdynce_botcontent, msdyn_aibdataset, msdyn_aibdatasetfile, msdyn_aibdatasetrecord, msdyn_aibdatasetscontainer, msdyn_aibfeedbackloop, msdyn_aibfile, msdyn_aibfileattacheddata, msdyn_aiconfiguration, msdyn_aievent, msdyn_aifptrainingdocument, msdyn_aimodel, msdyn_aiodimage, msdyn_aiodlabel, msdyn_aiodtrainingboundingbox, msdyn_aiodtrainingimage, msdyn_aitemplate, msdyn_analysiscomponent, msdyn_analysisjob, msdyn_analysisoverride, msdyn_analysisresult, msdyn_analysisresultdetail, msdyn_appinsightsmetadata, msdyn_copilotinteractions, msdyn_customcontrolextendedsettings, msdyn_dataflow, msdyn_dataflowconnectionreference, msdyn_dataflowrefreshhistory, msdyn_dataflowtemplate, msdyn_dataflow_datalakefolder, msdyn_dmsrequest, msdyn_dmsrequeststatus, msdyn_dmssyncrequest, msdyn_dmssyncstatus, msdyn_entitylinkchatconfiguration, msdyn_entityrefreshhistory, msdyn_favoriteknowledgearticle, msdyn_federatedarticle, msdyn_federatedarticleincident, msdyn_fileupload, msdyn_flow_actionapprovalmodel, msdyn_flow_approval, msdyn_flow_approvalrequest, msdyn_flow_approvalresponse, msdyn_flow_approvalstep, msdyn_flow_awaitallactionapprovalmodel, msdyn_flow_awaitallapprovalmodel, msdyn_flow_basicapprovalmodel, msdyn_flow_flowapproval, msdyn_formmapping, msdyn_function, msdyn_helppage, msdyn_insightsstorevirtualentity, msdyn_integratedsearchprovider, msdyn_kalanguagesetting, msdyn_kbattachment, msdyn_kmfederatedsearchconfig, msdyn_kmpersonalizationsetting, msdyn_knowledgearticleimage, msdyn_knowledgearticletemplate, msdyn_knowledgeassetconfiguration, msdyn_knowledgeconfiguration, msdyn_knowledgeinteractioninsight, msdyn_knowledgemanagementsetting, msdyn_knowledgepersonalfilter, msdyn_knowledgesearchfilter, msdyn_knowledgesearchinsight, msdyn_mobileapp, msdyn_modulerundetail, msdyn_pmanalysishistory, msdyn_pmbusinessruleautomationconfig, msdyn_pmcalendar, msdyn_pmcalendarversion, msdyn_pminferredtask, msdyn_pmprocessextendedmetadataversion, msdyn_pmprocesstemplate, msdyn_pmprocessusersettings, msdyn_pmprocessversion, msdyn_pmrecording, msdyn_pmsimulation, msdyn_pmtemplate, msdyn_pmview, msdyn_qna, msdyn_richtextfile, msdyn_salesforcestructuredobject, msdyn_salesforcestructuredqnaconfig, msdyn_schedule, msdyn_serviceconfiguration, msdyn_slakpi, msdyn_solutionhealthrule, msdyn_solutionhealthruleargument, msdyn_solutionhealthruleset, msdyn_tour, msdyn_virtualtablecolumncandidate, msdyn_workflowactionstatus, msgraphresourcetosubscription, mspcat_catalogsubmissionfiles, mspcat_packagestore, organization, organizationdatasyncfnostate, organizationdatasyncstate, organizationdatasyncsubscription, organizationdatasyncsubscriptionentity, organizationdatasyncsubscriptionfnotable, organizationsetting, package, packagehistory, pdfsetting, phonecall, plannerbusinessscenario, plannersyncaction, plugin, pluginpackage, post, powerbidataset, powerbidatasetapdx, powerbimashupparameter, powerbireport, powerbireportapdx, powerfxrule, powerpagecomponent, powerpagesite, powerpagesitelanguage, powerpagesitepublished, powerpagesmanagedidentity, powerpagesscanreport, privilege, privilegecheckerlog, privilegecheckerrun, privilegesremovalsetting, processorregistration, processstageparameter, provisionlanguageforuser, quarterlyfiscalcalendar, queue, queueitem, reconciliationentityinfo, reconciliationentitystepinfo, reconciliationinfo, recordfilter, recurringappointmentmaster, recyclebinconfig, relationshipattribute, relationshiprole, relationshiprolemap, reportparameter, retaineddataexcel, retentioncleanupinfo, retentioncleanupoperation, retentionconfig, retentionfailuredetail, retentionoperation, retentionoperationdetail, retentionsuccessdetail, revokeinheritedaccessrecordstracker, role, roleeditorlayout, routingrule, routingruleitem, savedquery, searchattributesettings, searchcustomanalyzer, searchrelationshipsettings, semiannualfiscalcalendar, serviceplan, serviceplancustomcontrol, serviceplanmapping, settingdefinition, sharedlinksetting, sharedobject, sharedworkspace, sharedworkspacepool, sharepointmanagedidentity, sideloadedaiplugin, signalregistration, sla, socialactivity, solutioncomponentattributeconfiguration, solutioncomponentbatchconfiguration, solutioncomponentconfiguration, solutioncomponentrelationshipconfiguration, stagedentity, stagedentityattribute, stagedmetadataasyncoperation, stagesolutionupload, subject, supportusertable, synapsedatabase, synapselinkexternaltablestate, synapselinkprofile, synapselinkprofileentity, synapselinkprofileentitystate, synapselinkschedule, systemform, systemuser, systemuserauthorizationchangetracker, task, tdsmetadata, team, teammobileofflineprofilemembership, template, territory, theme, traitregistration, userform, usermapping, usermobileofflineprofilemembership, userquery, userrating, viewasexamplequestion, virtualentitymetadata, workflowbinary, workqueue, workqueueitem| +|Targets|account, activityfileattachment, activitymimeattachment, activitypointer, adx_externalidentity, adx_invitation, adx_inviteredemption, adx_portalcomment, adx_setting, adx_webformsession, aicopilot, aiinsightcard, aiplugin, aipluginauth, aipluginconversationstarter, aipluginconversationstartermapping, aipluginexternalschema, aipluginexternalschemaproperty, aiplugingovernance, aiplugingovernanceext, aiplugininstance, aipluginoperation, aipluginoperationparameter, aipluginoperationresponsetemplate, aiplugintitle, aipluginusersetting, aiskillconfig, annotation, annualfiscalcalendar, appaction, appactionmigration, appactionrule, appelement, application, applicationuser, appmodulecomponentedge, appmodulecomponentnode, appointment, approvalprocess, approvalstageapproval, approvalstagecondition, approvalstageorder, appsetting, appusersetting, archivecleanupinfo, archivecleanupoperation, attributeimageconfig, attributemap, attributemaskingrule, attributepicklistvalue, bot, botcomponent, botcomponentcollection, bulkarchiveconfig, bulkarchivefailuredetail, bulkarchiveoperation, bulkarchiveoperationdetail, businessprocess, businessunit, businessunitnewsarticle, calendar, canvasappextendedmetadata, card, cascadegrantrevokeaccessrecordstracker, cascadegrantrevokeaccessversiontracker, catalog, catalogassignment, certificatecredential, channelaccessprofile, channelaccessprofilerule, chat, comment, connectioninstance, connectionreference, connector, contact, conversationtranscript, copilotexamplequestion, copilotglossaryterm, copilotsynonyms, credential, customapi, customapirequestparameter, customapiresponseproperty, customeraddress, customerrelationship, datalakefolder, datalakefolderpermission, datalakeworkspace, datalakeworkspacepermission, dataprocessingconfiguration, delegatedauthorization, deleteditemreference, desktopflowbinary, desktopflowmodule, displaystring, dvfilesearch, dvfilesearchattribute, dvfilesearchentity, dvtablesearch, dvtablesearchattribute, dvtablesearchentity, email, emailaddressconfiguration, emailserverprofile, enablearchivalrequest, entityanalyticsconfig, entityclusterconfig, entityimageconfig, entityindex, entitymap, entityrecordfilter, environmentvariabledefinition, environmentvariablevalue, exportedexcel, exportsolutionupload, externalparty, externalpartyitem, fabricaiskill, fax, featurecontrolsetting, federatedknowledgecitation, federatedknowledgeconfiguration, federatedknowledgeentityconfiguration, federatedknowledgemetadatarefresh, fixedmonthlyfiscalcalendar, flowcapacityassignment, flowcredentialapplication, flowevent, flowmachine, flowmachinegroup, flowmachineimage, flowmachineimageversion, flowmachinenetwork, flowsession, fxexpression, governanceconfiguration, holidaywrapper, import, importdata, importfile, importlog, importmap, indexattributes, internalcatalogassignment, isvconfig, kbarticle, kbarticlecomment, kbarticletemplate, keyvaultreference, knowledgearticle, knowledgebaserecord, letter, mainfewshot, makerfewshot, managedidentity, maskingrule, metadataforarchival, mobileofflineprofileextension, monthlyfiscalcalendar, msdynce_botcontent, msdyn_aibdataset, msdyn_aibdatasetfile, msdyn_aibdatasetrecord, msdyn_aibdatasetscontainer, msdyn_aibfeedbackloop, msdyn_aibfile, msdyn_aibfileattacheddata, msdyn_aiconfiguration, msdyn_aidataprocessingevent, msdyn_aievaluationconfiguration, msdyn_aievaluationrun, msdyn_aievent, msdyn_aifptrainingdocument, msdyn_aimodel, msdyn_aimodelcatalog, msdyn_aiodimage, msdyn_aiodlabel, msdyn_aiodtrainingboundingbox, msdyn_aiodtrainingimage, msdyn_aitemplate, msdyn_aitestcase, msdyn_aitestcasedocument, msdyn_aitestcaseinput, msdyn_aitestrun, msdyn_aitestrunbatch, msdyn_analysiscomponent, msdyn_analysisjob, msdyn_analysisoverride, msdyn_analysisresult, msdyn_analysisresultdetail, msdyn_appinsightsmetadata, msdyn_copilotinteractions, msdyn_customcontrolextendedsettings, msdyn_dataflow, msdyn_dataflowconnectionreference, msdyn_dataflowrefreshhistory, msdyn_dataflowtemplate, msdyn_dataflow_datalakefolder, msdyn_dataworkspace, msdyn_dmsrequest, msdyn_dmsrequeststatus, msdyn_dmssyncrequest, msdyn_dmssyncstatus, msdyn_entitylinkchatconfiguration, msdyn_entityrefreshhistory, msdyn_favoriteknowledgearticle, msdyn_federatedarticle, msdyn_federatedarticleincident, msdyn_fileupload, msdyn_flow_actionapprovalmodel, msdyn_flow_approval, msdyn_flow_approvalrequest, msdyn_flow_approvalresponse, msdyn_flow_approvalstep, msdyn_flow_awaitallactionapprovalmodel, msdyn_flow_awaitallapprovalmodel, msdyn_flow_basicapprovalmodel, msdyn_flow_flowapproval, msdyn_formmapping, msdyn_function, msdyn_helppage, msdyn_insightsstorevirtualentity, msdyn_integratedsearchprovider, msdyn_kalanguagesetting, msdyn_kbattachment, msdyn_kmfederatedsearchconfig, msdyn_kmpersonalizationsetting, msdyn_knowledgearticleimage, msdyn_knowledgearticletemplate, msdyn_knowledgeassetconfiguration, msdyn_knowledgeconfiguration, msdyn_knowledgeinteractioninsight, msdyn_knowledgemanagementsetting, msdyn_knowledgepersonalfilter, msdyn_knowledgesearchfilter, msdyn_knowledgesearchinsight, msdyn_mobileapp, msdyn_modulerundetail, msdyn_plan, msdyn_planartifact, msdyn_planattachment, msdyn_pmanalysishistory, msdyn_pmbusinessruleautomationconfig, msdyn_pmcalendar, msdyn_pmcalendarversion, msdyn_pminferredtask, msdyn_pmprocessextendedmetadataversion, msdyn_pmprocesstemplate, msdyn_pmprocessusersettings, msdyn_pmprocessversion, msdyn_pmrecording, msdyn_pmsimulation, msdyn_pmtemplate, msdyn_pmview, msdyn_qna, msdyn_richtextfile, msdyn_salesforcestructuredobject, msdyn_salesforcestructuredqnaconfig, msdyn_schedule, msdyn_serviceconfiguration, msdyn_slakpi, msdyn_solutionhealthrule, msdyn_solutionhealthruleargument, msdyn_solutionhealthruleset, msdyn_tour, msdyn_virtualtablecolumncandidate, msdyn_workflowactionstatus, msgraphresourcetosubscription, mspcat_catalogsubmissionfiles, mspcat_packagestore, organization, organizationdatasyncfnostate, organizationdatasyncstate, organizationdatasyncsubscription, organizationdatasyncsubscriptionentity, organizationdatasyncsubscriptionfnotable, organizationsetting, package, packagehistory, pdfsetting, phonecall, plannerbusinessscenario, plannersyncaction, plugin, pluginpackage, post, powerbidataset, powerbidatasetapdx, powerbimashupparameter, powerbireport, powerbireportapdx, powerfxrule, powerpagecomponent, powerpagesite, powerpagesitelanguage, powerpagesitepublished, powerpagesmanagedidentity, powerpagesscanreport, privilege, privilegecheckerlog, privilegecheckerrun, privilegesremovalsetting, processorregistration, processstageparameter, provisionlanguageforuser, quarterlyfiscalcalendar, queue, queueitem, reconciliationentityinfo, reconciliationentitystepinfo, reconciliationinfo, recordfilter, recurringappointmentmaster, recyclebinconfig, relationshipattribute, relationshiprole, relationshiprolemap, reportparameter, retaineddataexcel, retentioncleanupinfo, retentioncleanupoperation, retentionconfig, retentionfailuredetail, retentionoperation, retentionoperationdetail, retentionsuccessdetail, revokeinheritedaccessrecordstracker, role, roleeditorlayout, routingrule, routingruleitem, savedquery, savingrule, searchattributesettings, searchcustomanalyzer, searchrelationshipsettings, semiannualfiscalcalendar, serviceplan, serviceplancustomcontrol, serviceplanmapping, settingdefinition, sharedlinksetting, sharedobject, sharedworkspace, sharedworkspacepool, sharepointmanagedidentity, sideloadedaiplugin, signalregistration, sla, socialactivity, solutioncomponentattributeconfiguration, solutioncomponentbatchconfiguration, solutioncomponentconfiguration, solutioncomponentrelationshipconfiguration, stagedentity, stagedentityattribute, stagedmetadataasyncoperation, stagesolutionupload, subject, supportusertable, synapsedatabase, synapselinkexternaltablestate, synapselinkprofile, synapselinkprofileentity, synapselinkprofileentitystate, synapselinkschedule, systemform, systemuser, systemuserauthorizationchangetracker, tag, taggedflowsession, taggedprocess, task, tdsmetadata, team, teammobileofflineprofilemembership, template, territory, theme, traitregistration, unstructuredfilesearchentity, unstructuredfilesearchrecord, userform, usermapping, usermobileofflineprofilemembership, userquery, userrating, viewasexamplequestion, virtualentitymetadata, workflowbinary, workflowmetadata, workqueue, workqueueitem| ### RegardingObjectTypeCode @@ -230,7 +230,6 @@ These relationships are many-to-one. Listed by **SchemaName**. - [adx_setting_BulkDeleteFailures](#BKMK_adx_setting_BulkDeleteFailures) - [adx_webformsession_BulkDeleteFailures](#BKMK_adx_webformsession_BulkDeleteFailures) - [aicopilot_BulkDeleteFailures](#BKMK_aicopilot_BulkDeleteFailures) -- [aiinsightcard_BulkDeleteFailures](#BKMK_aiinsightcard_BulkDeleteFailures) - [aiplugin_BulkDeleteFailures](#BKMK_aiplugin_BulkDeleteFailures) - [aipluginauth_BulkDeleteFailures](#BKMK_aipluginauth_BulkDeleteFailures) - [aipluginconversationstarter_BulkDeleteFailures](#BKMK_aipluginconversationstarter_BulkDeleteFailures) @@ -253,6 +252,10 @@ These relationships are many-to-one. Listed by **SchemaName**. - [application_BulkDeleteFailures](#BKMK_application_BulkDeleteFailures) - [applicationuser_BulkDeleteFailures](#BKMK_applicationuser_BulkDeleteFailures) - [Appointment_BulkDeleteFailures](#BKMK_Appointment_BulkDeleteFailures) +- [approvalprocess_BulkDeleteFailures](#BKMK_approvalprocess_BulkDeleteFailures) +- [approvalstageapproval_BulkDeleteFailures](#BKMK_approvalstageapproval_BulkDeleteFailures) +- [approvalstagecondition_BulkDeleteFailures](#BKMK_approvalstagecondition_BulkDeleteFailures) +- [approvalstageorder_BulkDeleteFailures](#BKMK_approvalstageorder_BulkDeleteFailures) - [attributeimageconfig_BulkDeleteFailures](#BKMK_attributeimageconfig_BulkDeleteFailures) - [attributemaskingrule_BulkDeleteFailures](#BKMK_attributemaskingrule_BulkDeleteFailures) - [attributepicklistvalue_BulkDeleteFailures](#BKMK_attributepicklistvalue_BulkDeleteFailures) @@ -260,6 +263,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [botcomponent_BulkDeleteFailures](#BKMK_botcomponent_BulkDeleteFailures) - [botcomponentcollection_BulkDeleteFailures](#BKMK_botcomponentcollection_BulkDeleteFailures) - [BulkDeleteOperation_BulkDeleteFailure](#BKMK_BulkDeleteOperation_BulkDeleteFailure) +- [businessprocess_BulkDeleteFailures](#BKMK_businessprocess_BulkDeleteFailures) - [BusinessUnit_BulkDeleteFailures](#BKMK_BusinessUnit_BulkDeleteFailures) - [BusinessUnitNewsArticle_BulkDeleteFailures](#BKMK_BusinessUnitNewsArticle_BulkDeleteFailures) - [Calendar_BulkDeleteFailures](#BKMK_Calendar_BulkDeleteFailures) @@ -297,8 +301,10 @@ These relationships are many-to-one. Listed by **SchemaName**. - [dvtablesearchattribute_BulkDeleteFailures](#BKMK_dvtablesearchattribute_BulkDeleteFailures) - [dvtablesearchentity_BulkDeleteFailures](#BKMK_dvtablesearchentity_BulkDeleteFailures) - [Email_BulkDeleteFailures](#BKMK_Email_BulkDeleteFailures) +- [emailaddressconfiguration_BulkDeleteFailures](#BKMK_emailaddressconfiguration_BulkDeleteFailures) - [emailserverprofile_bulkdeletefailures](#BKMK_emailserverprofile_bulkdeletefailures) - [entityanalyticsconfig_BulkDeleteFailures](#BKMK_entityanalyticsconfig_BulkDeleteFailures) +- [entityclusterconfig_BulkDeleteFailures](#BKMK_entityclusterconfig_BulkDeleteFailures) - [entityimageconfig_BulkDeleteFailures](#BKMK_entityimageconfig_BulkDeleteFailures) - [entityindex_BulkDeleteFailures](#BKMK_entityindex_BulkDeleteFailures) - [entityrecordfilter_BulkDeleteFailures](#BKMK_entityrecordfilter_BulkDeleteFailures) @@ -351,6 +357,9 @@ These relationships are many-to-one. Listed by **SchemaName**. - [msdyn_aibfile_BulkDeleteFailures](#BKMK_msdyn_aibfile_BulkDeleteFailures) - [msdyn_aibfileattacheddata_BulkDeleteFailures](#BKMK_msdyn_aibfileattacheddata_BulkDeleteFailures) - [msdyn_aiconfiguration_BulkDeleteFailures](#BKMK_msdyn_aiconfiguration_BulkDeleteFailures) +- [msdyn_aidataprocessingevent_BulkDeleteFailures](#BKMK_msdyn_aidataprocessingevent_BulkDeleteFailures) +- [msdyn_aievaluationconfiguration_BulkDeleteFailures](#BKMK_msdyn_aievaluationconfiguration_BulkDeleteFailures) +- [msdyn_aievaluationrun_BulkDeleteFailures](#BKMK_msdyn_aievaluationrun_BulkDeleteFailures) - [msdyn_aievent_BulkDeleteFailures](#BKMK_msdyn_aievent_BulkDeleteFailures) - [msdyn_aifptrainingdocument_BulkDeleteFailures](#BKMK_msdyn_aifptrainingdocument_BulkDeleteFailures) - [msdyn_aimodel_BulkDeleteFailures](#BKMK_msdyn_aimodel_BulkDeleteFailures) @@ -359,6 +368,11 @@ These relationships are many-to-one. Listed by **SchemaName**. - [msdyn_aiodtrainingboundingbox_BulkDeleteFailures](#BKMK_msdyn_aiodtrainingboundingbox_BulkDeleteFailures) - [msdyn_aiodtrainingimage_BulkDeleteFailures](#BKMK_msdyn_aiodtrainingimage_BulkDeleteFailures) - [msdyn_aitemplate_BulkDeleteFailures](#BKMK_msdyn_aitemplate_BulkDeleteFailures) +- [msdyn_aitestcase_BulkDeleteFailures](#BKMK_msdyn_aitestcase_BulkDeleteFailures) +- [msdyn_aitestcasedocument_BulkDeleteFailures](#BKMK_msdyn_aitestcasedocument_BulkDeleteFailures) +- [msdyn_aitestcaseinput_BulkDeleteFailures](#BKMK_msdyn_aitestcaseinput_BulkDeleteFailures) +- [msdyn_aitestrun_BulkDeleteFailures](#BKMK_msdyn_aitestrun_BulkDeleteFailures) +- [msdyn_aitestrunbatch_BulkDeleteFailures](#BKMK_msdyn_aitestrunbatch_BulkDeleteFailures) - [msdyn_analysiscomponent_BulkDeleteFailures](#BKMK_msdyn_analysiscomponent_BulkDeleteFailures) - [msdyn_analysisjob_BulkDeleteFailures](#BKMK_msdyn_analysisjob_BulkDeleteFailures) - [msdyn_analysisoverride_BulkDeleteFailures](#BKMK_msdyn_analysisoverride_BulkDeleteFailures) @@ -471,7 +485,6 @@ These relationships are many-to-one. Listed by **SchemaName**. - [privilegecheckerlog_BulkDeleteFailures](#BKMK_privilegecheckerlog_BulkDeleteFailures) - [privilegecheckerrun_BulkDeleteFailures](#BKMK_privilegecheckerrun_BulkDeleteFailures) - [privilegesremovalsetting_BulkDeleteFailures](#BKMK_privilegesremovalsetting_BulkDeleteFailures) -- [processorregistration_BulkDeleteFailures](#BKMK_processorregistration_BulkDeleteFailures) - [processstageparameter_BulkDeleteFailures](#BKMK_processstageparameter_BulkDeleteFailures) - [provisionlanguageforuser_BulkDeleteFailures](#BKMK_provisionlanguageforuser_BulkDeleteFailures) - [QuarterlyFiscalCalendar_BulkDeleteFailures](#BKMK_QuarterlyFiscalCalendar_BulkDeleteFailures) @@ -491,6 +504,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [Role_BulkDeleteFailures](#BKMK_Role_BulkDeleteFailures) - [roleeditorlayout_BulkDeleteFailures](#BKMK_roleeditorlayout_BulkDeleteFailures) - [SavedQuery_BulkDeleteFailures](#BKMK_SavedQuery_BulkDeleteFailures) +- [savingrule_BulkDeleteFailures](#BKMK_savingrule_BulkDeleteFailures) - [searchattributesettings_BulkDeleteFailures](#BKMK_searchattributesettings_BulkDeleteFailures) - [searchcustomanalyzer_BulkDeleteFailures](#BKMK_searchcustomanalyzer_BulkDeleteFailures) - [searchrelationshipsettings_BulkDeleteFailures](#BKMK_searchrelationshipsettings_BulkDeleteFailures) @@ -503,7 +517,6 @@ These relationships are many-to-one. Listed by **SchemaName**. - [sharedworkspacepool_BulkDeleteFailures](#BKMK_sharedworkspacepool_BulkDeleteFailures) - [sharepointmanagedidentity_BulkDeleteFailures](#BKMK_sharepointmanagedidentity_BulkDeleteFailures) - [sideloadedaiplugin_BulkDeleteFailures](#BKMK_sideloadedaiplugin_BulkDeleteFailures) -- [signalregistration_BulkDeleteFailures](#BKMK_signalregistration_BulkDeleteFailures) - [slabase_BulkDeleteFailures](#BKMK_slabase_BulkDeleteFailures) - [SocialActivity_BulkDeleteFailures](#BKMK_SocialActivity_BulkDeleteFailures) - [solutioncomponentattributeconfiguration_BulkDeleteFailures](#BKMK_solutioncomponentattributeconfiguration_BulkDeleteFailures) @@ -525,13 +538,17 @@ These relationships are many-to-one. Listed by **SchemaName**. - [SystemForm_BulkDeleteFailures](#BKMK_SystemForm_BulkDeleteFailures) - [SystemUser_BulkDeleteFailures](#BKMK_SystemUser_BulkDeleteFailures) - [systemuserauthorizationchangetracker_BulkDeleteFailures](#BKMK_systemuserauthorizationchangetracker_BulkDeleteFailures) +- [tag_BulkDeleteFailures](#BKMK_tag_BulkDeleteFailures) +- [taggedflowsession_BulkDeleteFailures](#BKMK_taggedflowsession_BulkDeleteFailures) +- [taggedprocess_BulkDeleteFailures](#BKMK_taggedprocess_BulkDeleteFailures) - [Task_BulkDeleteFailures](#BKMK_Task_BulkDeleteFailures) - [Team_BulkDeleteFailures](#BKMK_Team_BulkDeleteFailures) - [teammobileofflineprofilemembership_BulkDeleteFailures](#BKMK_teammobileofflineprofilemembership_BulkDeleteFailures) - [Template_BulkDeleteFailures](#BKMK_Template_BulkDeleteFailures) - [Territory_BulkDeleteFailures](#BKMK_Territory_BulkDeleteFailures) - [theme_BulkDeleteFailures](#BKMK_theme_BulkDeleteFailures) -- [traitregistration_BulkDeleteFailures](#BKMK_traitregistration_BulkDeleteFailures) +- [unstructuredfilesearchentity_BulkDeleteFailures](#BKMK_unstructuredfilesearchentity_BulkDeleteFailures) +- [unstructuredfilesearchrecord_BulkDeleteFailures](#BKMK_unstructuredfilesearchrecord_BulkDeleteFailures) - [UserForm_BulkDeleteFailures](#BKMK_UserForm_BulkDeleteFailures) - [usermapping_BulkDeleteFailures](#BKMK_usermapping_BulkDeleteFailures) - [usermobileofflineprofilemembership_BulkDeleteFailures](#BKMK_usermobileofflineprofilemembership_BulkDeleteFailures) @@ -540,6 +557,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [viewasexamplequestion_BulkDeleteFailures](#BKMK_viewasexamplequestion_BulkDeleteFailures) - [virtualentitymetadata_BulkDeleteFailures](#BKMK_virtualentitymetadata_BulkDeleteFailures) - [workflowbinary_BulkDeleteFailures](#BKMK_workflowbinary_BulkDeleteFailures) +- [workflowmetadata_BulkDeleteFailures](#BKMK_workflowmetadata_BulkDeleteFailures) - [workqueue_BulkDeleteFailures](#BKMK_workqueue_BulkDeleteFailures) - [workqueueitem_BulkDeleteFailures](#BKMK_workqueueitem_BulkDeleteFailures) @@ -686,19 +704,6 @@ One-To-Many Relationship: [aicopilot aicopilot_BulkDeleteFailures](aicopilot.md# |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### aiinsightcard_BulkDeleteFailures - -One-To-Many Relationship: [aiinsightcard aiinsightcard_BulkDeleteFailures](aiinsightcard.md#BKMK_aiinsightcard_BulkDeleteFailures) - -|Property|Value| -|---|---| -|ReferencedEntity|`aiinsightcard`| -|ReferencedAttribute|`aiinsightcardid`| -|ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_aiinsightcard`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### aiplugin_BulkDeleteFailures One-To-Many Relationship: [aiplugin aiplugin_BulkDeleteFailures](aiplugin.md#BKMK_aiplugin_BulkDeleteFailures) @@ -985,6 +990,58 @@ One-To-Many Relationship: [appointment Appointment_BulkDeleteFailures](appointme |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### approvalprocess_BulkDeleteFailures + +One-To-Many Relationship: [approvalprocess approvalprocess_BulkDeleteFailures](approvalprocess.md#BKMK_approvalprocess_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalprocess`| +|ReferencedAttribute|`approvalprocessid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstageapproval_BulkDeleteFailures + +One-To-Many Relationship: [approvalstageapproval approvalstageapproval_BulkDeleteFailures](approvalstageapproval.md#BKMK_approvalstageapproval_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageapproval`| +|ReferencedAttribute|`approvalstageapprovalid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalstageapproval`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstagecondition_BulkDeleteFailures + +One-To-Many Relationship: [approvalstagecondition approvalstagecondition_BulkDeleteFailures](approvalstagecondition.md#BKMK_approvalstagecondition_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstagecondition`| +|ReferencedAttribute|`approvalstageconditionid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalstagecondition`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstageorder_BulkDeleteFailures + +One-To-Many Relationship: [approvalstageorder approvalstageorder_BulkDeleteFailures](approvalstageorder.md#BKMK_approvalstageorder_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageorder`| +|ReferencedAttribute|`approvalstageorderid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalstageorder`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### attributeimageconfig_BulkDeleteFailures One-To-Many Relationship: [attributeimageconfig attributeimageconfig_BulkDeleteFailures](attributeimageconfig.md#BKMK_attributeimageconfig_BulkDeleteFailures) @@ -1076,6 +1133,19 @@ One-To-Many Relationship: [bulkdeleteoperation BulkDeleteOperation_BulkDeleteFai |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### businessprocess_BulkDeleteFailures + +One-To-Many Relationship: [businessprocess businessprocess_BulkDeleteFailures](businessprocess.md#BKMK_businessprocess_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessprocess`| +|ReferencedAttribute|`businessprocessid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_businessprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### BusinessUnit_BulkDeleteFailures One-To-Many Relationship: [businessunit BusinessUnit_BulkDeleteFailures](businessunit.md#BKMK_BusinessUnit_BulkDeleteFailures) @@ -1557,6 +1627,19 @@ One-To-Many Relationship: [email Email_BulkDeleteFailures](email.md#BKMK_Email_B |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### emailaddressconfiguration_BulkDeleteFailures + +One-To-Many Relationship: [emailaddressconfiguration emailaddressconfiguration_BulkDeleteFailures](emailaddressconfiguration.md#BKMK_emailaddressconfiguration_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`emailaddressconfiguration`| +|ReferencedAttribute|`emailaddressconfigurationid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_emailaddressconfiguration`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### emailserverprofile_bulkdeletefailures One-To-Many Relationship: [emailserverprofile emailserverprofile_bulkdeletefailures](emailserverprofile.md#BKMK_emailserverprofile_bulkdeletefailures) @@ -1583,6 +1666,19 @@ One-To-Many Relationship: [entityanalyticsconfig entityanalyticsconfig_BulkDelet |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### entityclusterconfig_BulkDeleteFailures + +One-To-Many Relationship: [entityclusterconfig entityclusterconfig_BulkDeleteFailures](entityclusterconfig.md#BKMK_entityclusterconfig_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`entityclusterconfig`| +|ReferencedAttribute|`entityclusterconfigid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_entityclusterconfig`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### entityimageconfig_BulkDeleteFailures One-To-Many Relationship: [entityimageconfig entityimageconfig_BulkDeleteFailures](entityimageconfig.md#BKMK_entityimageconfig_BulkDeleteFailures) @@ -2259,6 +2355,45 @@ One-To-Many Relationship: [msdyn_aiconfiguration msdyn_aiconfiguration_BulkDelet |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### msdyn_aidataprocessingevent_BulkDeleteFailures + +One-To-Many Relationship: [msdyn_aidataprocessingevent msdyn_aidataprocessingevent_BulkDeleteFailures](msdyn_aidataprocessingevent.md#BKMK_msdyn_aidataprocessingevent_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aidataprocessingevent`| +|ReferencedAttribute|`msdyn_aidataprocessingeventid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aidataprocessingevent`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aievaluationconfiguration_BulkDeleteFailures + +One-To-Many Relationship: [msdyn_aievaluationconfiguration msdyn_aievaluationconfiguration_BulkDeleteFailures](msdyn_aievaluationconfiguration.md#BKMK_msdyn_aievaluationconfiguration_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aievaluationconfiguration`| +|ReferencedAttribute|`msdyn_aievaluationconfigurationid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aievaluationconfiguration`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aievaluationrun_BulkDeleteFailures + +One-To-Many Relationship: [msdyn_aievaluationrun msdyn_aievaluationrun_BulkDeleteFailures](msdyn_aievaluationrun.md#BKMK_msdyn_aievaluationrun_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aievaluationrun`| +|ReferencedAttribute|`msdyn_aievaluationrunid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aievaluationrun`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### msdyn_aievent_BulkDeleteFailures One-To-Many Relationship: [msdyn_aievent msdyn_aievent_BulkDeleteFailures](msdyn_aievent.md#BKMK_msdyn_aievent_BulkDeleteFailures) @@ -2363,6 +2498,71 @@ One-To-Many Relationship: [msdyn_aitemplate msdyn_aitemplate_BulkDeleteFailures] |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### msdyn_aitestcase_BulkDeleteFailures + +One-To-Many Relationship: [msdyn_aitestcase msdyn_aitestcase_BulkDeleteFailures](msdyn_aitestcase.md#BKMK_msdyn_aitestcase_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcase`| +|ReferencedAttribute|`msdyn_aitestcaseid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestcase`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestcasedocument_BulkDeleteFailures + +One-To-Many Relationship: [msdyn_aitestcasedocument msdyn_aitestcasedocument_BulkDeleteFailures](msdyn_aitestcasedocument.md#BKMK_msdyn_aitestcasedocument_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcasedocument`| +|ReferencedAttribute|`msdyn_aitestcasedocumentid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestcasedocument`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestcaseinput_BulkDeleteFailures + +One-To-Many Relationship: [msdyn_aitestcaseinput msdyn_aitestcaseinput_BulkDeleteFailures](msdyn_aitestcaseinput.md#BKMK_msdyn_aitestcaseinput_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcaseinput`| +|ReferencedAttribute|`msdyn_aitestcaseinputid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestcaseinput`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestrun_BulkDeleteFailures + +One-To-Many Relationship: [msdyn_aitestrun msdyn_aitestrun_BulkDeleteFailures](msdyn_aitestrun.md#BKMK_msdyn_aitestrun_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestrun`| +|ReferencedAttribute|`msdyn_aitestrunid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestrun`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestrunbatch_BulkDeleteFailures + +One-To-Many Relationship: [msdyn_aitestrunbatch msdyn_aitestrunbatch_BulkDeleteFailures](msdyn_aitestrunbatch.md#BKMK_msdyn_aitestrunbatch_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestrunbatch`| +|ReferencedAttribute|`msdyn_aitestrunbatchid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestrunbatch`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### msdyn_analysiscomponent_BulkDeleteFailures One-To-Many Relationship: [msdyn_analysiscomponent msdyn_analysiscomponent_BulkDeleteFailures](msdyn_analysiscomponent.md#BKMK_msdyn_analysiscomponent_BulkDeleteFailures) @@ -3819,19 +4019,6 @@ One-To-Many Relationship: [privilegesremovalsetting privilegesremovalsetting_Bul |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### processorregistration_BulkDeleteFailures - -One-To-Many Relationship: [processorregistration processorregistration_BulkDeleteFailures](processorregistration.md#BKMK_processorregistration_BulkDeleteFailures) - -|Property|Value| -|---|---| -|ReferencedEntity|`processorregistration`| -|ReferencedAttribute|`processorregistrationid`| -|ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_processorregistration`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### processstageparameter_BulkDeleteFailures One-To-Many Relationship: [processstageparameter processstageparameter_BulkDeleteFailures](processstageparameter.md#BKMK_processstageparameter_BulkDeleteFailures) @@ -4079,6 +4266,19 @@ One-To-Many Relationship: [savedquery SavedQuery_BulkDeleteFailures](savedquery. |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### savingrule_BulkDeleteFailures + +One-To-Many Relationship: [savingrule savingrule_BulkDeleteFailures](savingrule.md#BKMK_savingrule_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`savingrule`| +|ReferencedAttribute|`savingruleid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_savingrule`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### searchattributesettings_BulkDeleteFailures One-To-Many Relationship: [searchattributesettings searchattributesettings_BulkDeleteFailures](searchattributesettings.md#BKMK_searchattributesettings_BulkDeleteFailures) @@ -4235,19 +4435,6 @@ One-To-Many Relationship: [sideloadedaiplugin sideloadedaiplugin_BulkDeleteFailu |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### signalregistration_BulkDeleteFailures - -One-To-Many Relationship: [signalregistration signalregistration_BulkDeleteFailures](signalregistration.md#BKMK_signalregistration_BulkDeleteFailures) - -|Property|Value| -|---|---| -|ReferencedEntity|`signalregistration`| -|ReferencedAttribute|`signalregistrationid`| -|ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_signalregistration`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### slabase_BulkDeleteFailures One-To-Many Relationship: [sla slabase_BulkDeleteFailures](sla.md#BKMK_slabase_BulkDeleteFailures) @@ -4521,6 +4708,45 @@ One-To-Many Relationship: [systemuserauthorizationchangetracker systemuserauthor |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### tag_BulkDeleteFailures + +One-To-Many Relationship: [tag tag_BulkDeleteFailures](tag.md#BKMK_tag_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`tag`| +|ReferencedAttribute|`tagid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_tag`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### taggedflowsession_BulkDeleteFailures + +One-To-Many Relationship: [taggedflowsession taggedflowsession_BulkDeleteFailures](taggedflowsession.md#BKMK_taggedflowsession_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`taggedflowsession`| +|ReferencedAttribute|`taggedflowsessionid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_taggedflowsession`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### taggedprocess_BulkDeleteFailures + +One-To-Many Relationship: [taggedprocess taggedprocess_BulkDeleteFailures](taggedprocess.md#BKMK_taggedprocess_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`taggedprocess`| +|ReferencedAttribute|`taggedprocessid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_taggedprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### Task_BulkDeleteFailures One-To-Many Relationship: [task Task_BulkDeleteFailures](task.md#BKMK_Task_BulkDeleteFailures) @@ -4599,16 +4825,29 @@ One-To-Many Relationship: [theme theme_BulkDeleteFailures](theme.md#BKMK_theme_B |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### traitregistration_BulkDeleteFailures +### unstructuredfilesearchentity_BulkDeleteFailures + +One-To-Many Relationship: [unstructuredfilesearchentity unstructuredfilesearchentity_BulkDeleteFailures](unstructuredfilesearchentity.md#BKMK_unstructuredfilesearchentity_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`unstructuredfilesearchentity`| +|ReferencedAttribute|`unstructuredfilesearchentityid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_unstructuredfilesearchentity`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### unstructuredfilesearchrecord_BulkDeleteFailures -One-To-Many Relationship: [traitregistration traitregistration_BulkDeleteFailures](traitregistration.md#BKMK_traitregistration_BulkDeleteFailures) +One-To-Many Relationship: [unstructuredfilesearchrecord unstructuredfilesearchrecord_BulkDeleteFailures](unstructuredfilesearchrecord.md#BKMK_unstructuredfilesearchrecord_BulkDeleteFailures) |Property|Value| |---|---| -|ReferencedEntity|`traitregistration`| -|ReferencedAttribute|`traitregistrationid`| +|ReferencedEntity|`unstructuredfilesearchrecord`| +|ReferencedAttribute|`unstructuredfilesearchrecordid`| |ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_traitregistration`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_unstructuredfilesearchrecord`| |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| @@ -4716,6 +4955,19 @@ One-To-Many Relationship: [workflowbinary workflowbinary_BulkDeleteFailures](wor |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### workflowmetadata_BulkDeleteFailures + +One-To-Many Relationship: [workflowmetadata workflowmetadata_BulkDeleteFailures](workflowmetadata.md#BKMK_workflowmetadata_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencedEntity|`workflowmetadata`| +|ReferencedAttribute|`workflowmetadataid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_workflowmetadata`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### workqueue_BulkDeleteFailures One-To-Many Relationship: [workqueue workqueue_BulkDeleteFailures](workqueue.md#BKMK_workqueue_BulkDeleteFailures) diff --git a/powerapps-docs/developer/data-platform/reference/entities/businessprocess.md b/powerapps-docs/developer/data-platform/reference/entities/businessprocess.md new file mode 100644 index 0000000000..5500da6c6c --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/businessprocess.md @@ -0,0 +1,886 @@ +--- +title: "Business Process (businessprocess) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the Business Process (businessprocess) table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# Business Process (businessprocess) table/entity reference (Microsoft Dataverse) + + + +## Messages + +The following table lists the messages for the Business Process (businessprocess) table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Assign`
Event: True |`PATCH` /businessprocesses(*businessprocessid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /businessprocesses
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /businessprocesses(*businessprocessid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `GetRunMap`
Event: False | |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `GrantAccess`
Event: True | || +| `IsValidStateTransition`
Event: False | || +| `ModifyAccess`
Event: True | || +| `Retrieve`
Event: True |`GET` /businessprocesses(*businessprocessid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /businessprocesses
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `RetrievePrincipalAccess`
Event: True | || +| `RetrieveSharedPrincipalsAndAccess`
Event: True | || +| `RevokeAccess`
Event: True | || +| `SetState`
Event: True |`PATCH` /businessprocesses(*businessprocessid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /businessprocesses(*businessprocessid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /businessprocesses(*businessprocessid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + +## Properties + +The following table lists selected properties for the Business Process (businessprocess) table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **Business Process** | +| **DisplayCollectionName** | **Business Processes** | +| **SchemaName** | `businessprocess` | +| **CollectionSchemaName** | `businessprocesses` | +| **EntitySetName** | `businessprocesses`| +| **LogicalName** | `businessprocess` | +| **LogicalCollectionName** | `businessprocesses` | +| **PrimaryIdAttribute** | `businessprocessid` | +| **PrimaryNameAttribute** |`name` | +| **TableType** | `Standard` | +| **OwnershipType** | `UserOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [businessprocessId](#BKMK_businessprocessId) +- [description](#BKMK_description) +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [IsCustomizable](#BKMK_IsCustomizable) +- [name](#BKMK_name) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [processmap](#BKMK_processmap) +- [processmapcreatedon](#BKMK_processmapcreatedon) +- [processmapstatus](#BKMK_processmapstatus) +- [processmapversion](#BKMK_processmapversion) +- [rootworkflowid](#BKMK_rootworkflowid) +- [statecode](#BKMK_statecode) +- [statuscode](#BKMK_statuscode) +- [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) + +### businessprocessId + +|Property|Value| +|---|---| +|Description|**Unique identifier for entity instances**| +|DisplayName|**Business Process**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`businessprocessid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### description + +|Property|Value| +|---|---| +|Description|**Description**| +|DisplayName|**Description**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`description`| +|RequiredLevel|None| +|Type|Memo| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|2000| + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### IsCustomizable + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Is Customizable**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`iscustomizable`| +|RequiredLevel|SystemRequired| +|Type|ManagedProperty| + +### name + +|Property|Value| +|---|---| +|Description|**The name of the custom entity.**| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`name`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### processmap + +|Property|Value| +|---|---| +|Description|**Json representing the process**| +|DisplayName|**Process Map**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`processmap`| +|RequiredLevel|None| +|Type|Memo| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1048576| + +### processmapcreatedon + +|Property|Value| +|---|---| +|Description|**Date on which the process map was computed**| +|DisplayName|**Process Map Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`processmapcreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Auto| +|SourceTypeMask|0| + +### processmapstatus + +|Property|Value| +|---|---| +|Description|**Status of the process map**| +|DisplayName|**Process Map Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`processmapstatus`| +|RequiredLevel|None| +|Type|Picklist| +|DefaultFormValue|100000000| +|GlobalChoiceName|`businessprocess_processmapstatus`| + +#### processmapstatus Choices/Options + +|Value|Label| +|---|---| +|100000000|**Unknown**| +|100000001|**Processing**| +|100000002|**Ready**| + +### processmapversion + +|Property|Value| +|---|---| +|Description|**Version used to compute the process map**| +|DisplayName|**Process Map Version**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`processmapversion`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|0| + +### rootworkflowid + +|Property|Value| +|---|---| +|Description|**Root workflow used for the process**| +|DisplayName|**Root Workflow**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`rootworkflowid`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|workflow| + +### statecode + +|Property|Value| +|---|---| +|Description|**Status of the Business Process**| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statecode`| +|RequiredLevel|SystemRequired| +|Type|State| +|DefaultFormValue|| +|GlobalChoiceName|`businessprocess_statecode`| + +#### statecode Choices/Options + +|Value|Details| +|---|---| +|0|Label: **Active**
DefaultStatus: 1
InvariantName: `Active`| +|1|Label: **Inactive**
DefaultStatus: 2
InvariantName: `Inactive`| + +### statuscode + +|Property|Value| +|---|---| +|Description|**Reason for the status of the Business Process**| +|DisplayName|**Status Reason**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Status| +|DefaultFormValue|| +|GlobalChoiceName|`businessprocess_statuscode`| + +#### statuscode Choices/Options + +|Value|Details| +|---|---| +|1|Label: **Active**
State:0
TransitionData: None| +|2|Label: **Inactive**
State:1
TransitionData: None| + +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### UTCConversionTimeZoneCode + +|Property|Value| +|---|---| +|Description|**Time zone code that was in use when the record was created.**| +|DisplayName|**UTC Conversion Time Zone Code**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`utcconversiontimezonecode`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [ComponentIdUnique](#BKMK_ComponentIdUnique) +- [ComponentState](#BKMK_ComponentState) +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [IsManaged](#BKMK_IsManaged) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OverwriteTime](#BKMK_OverwriteTime) +- [OwnerIdName](#BKMK_OwnerIdName) +- [OwnerIdYomiName](#BKMK_OwnerIdYomiName) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) +- [OwningTeam](#BKMK_OwningTeam) +- [OwningUser](#BKMK_OwningUser) +- [SolutionId](#BKMK_SolutionId) +- [SupportingSolutionId](#BKMK_SupportingSolutionId) +- [VersionNumber](#BKMK_VersionNumber) + +### ComponentIdUnique + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Row id unique**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentidunique`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### ComponentState + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Component State**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentstate`| +|RequiredLevel|SystemRequired| +|Type|Picklist| +|DefaultFormValue|| +|GlobalChoiceName|`componentstate`| + +#### ComponentState Choices/Options + +|Value|Label| +|---|---| +|0|**Published**| +|1|**Unpublished**| +|2|**Deleted**| +|3|**Deleted Unpublished**| + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### IsManaged + +|Property|Value| +|---|---| +|Description|**Indicates whether the solution component is part of a managed solution.**| +|DisplayName|**Is Managed**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`ismanaged`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`ismanaged`| +|DefaultValue|False| +|True Label|Managed| +|False Label|Unmanaged| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### OverwriteTime + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Record Overwrite Time**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overwritetime`| +|RequiredLevel|SystemRequired| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerIdName + +|Property|Value| +|---|---| +|Description|**Name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwnerIdYomiName + +|Property|Value| +|---|---| +|Description|**Yomi name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridyominame`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|SystemRequired| +|Type|Lookup| +|Targets|businessunit| + +### OwningTeam + +|Property|Value| +|---|---| +|Description|**Unique identifier for the team that owns the record.**| +|DisplayName|**Owning Team**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningteam`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|team| + +### OwningUser + +|Property|Value| +|---|---| +|Description|**Unique identifier for the user that owns the record.**| +|DisplayName|**Owning User**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owninguser`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### SolutionId + +|Property|Value| +|---|---| +|Description|**Unique identifier of the associated solution.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`solutionid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### SupportingSolutionId + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|False| +|LogicalName|`supportingsolutionid`| +|RequiredLevel|None| +|Type|Uniqueidentifier| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [business_unit_businessprocess](#BKMK_business_unit_businessprocess) +- [lk_businessprocess_createdby](#BKMK_lk_businessprocess_createdby) +- [lk_businessprocess_createdonbehalfby](#BKMK_lk_businessprocess_createdonbehalfby) +- [lk_businessprocess_modifiedby](#BKMK_lk_businessprocess_modifiedby) +- [lk_businessprocess_modifiedonbehalfby](#BKMK_lk_businessprocess_modifiedonbehalfby) +- [owner_businessprocess](#BKMK_owner_businessprocess) +- [team_businessprocess](#BKMK_team_businessprocess) +- [user_businessprocess](#BKMK_user_businessprocess) +- [workflow_businessprocess](#BKMK_workflow_businessprocess) + +### business_unit_businessprocess + +One-To-Many Relationship: [businessunit business_unit_businessprocess](businessunit.md#BKMK_business_unit_businessprocess) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessunit`| +|ReferencedAttribute|`businessunitid`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencingEntityNavigationPropertyName|`owningbusinessunit`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_businessprocess_createdby + +One-To-Many Relationship: [systemuser lk_businessprocess_createdby](systemuser.md#BKMK_lk_businessprocess_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_businessprocess_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_businessprocess_createdonbehalfby](systemuser.md#BKMK_lk_businessprocess_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_businessprocess_modifiedby + +One-To-Many Relationship: [systemuser lk_businessprocess_modifiedby](systemuser.md#BKMK_lk_businessprocess_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_businessprocess_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_businessprocess_modifiedonbehalfby](systemuser.md#BKMK_lk_businessprocess_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### owner_businessprocess + +One-To-Many Relationship: [owner owner_businessprocess](owner.md#BKMK_owner_businessprocess) + +|Property|Value| +|---|---| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### team_businessprocess + +One-To-Many Relationship: [team team_businessprocess](team.md#BKMK_team_businessprocess) + +|Property|Value| +|---|---| +|ReferencedEntity|`team`| +|ReferencedAttribute|`teamid`| +|ReferencingAttribute|`owningteam`| +|ReferencingEntityNavigationPropertyName|`owningteam`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### user_businessprocess + +One-To-Many Relationship: [systemuser user_businessprocess](systemuser.md#BKMK_user_businessprocess) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`owninguser`| +|ReferencingEntityNavigationPropertyName|`owninguser`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### workflow_businessprocess + +One-To-Many Relationship: [workflow workflow_businessprocess](workflow.md#BKMK_workflow_businessprocess) + +|Property|Value| +|---|---| +|ReferencedEntity|`workflow`| +|ReferencedAttribute|`workflowid`| +|ReferencingAttribute|`rootworkflowid`| +|ReferencingEntityNavigationPropertyName|`rootworkflowid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `Cascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `Cascade`
Unshare: `Cascade`| + + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +- [businessprocess_AsyncOperations](#BKMK_businessprocess_AsyncOperations) +- [businessprocess_BulkDeleteFailures](#BKMK_businessprocess_BulkDeleteFailures) +- [businessprocess_DuplicateBaseRecord](#BKMK_businessprocess_DuplicateBaseRecord) +- [businessprocess_DuplicateMatchingRecord](#BKMK_businessprocess_DuplicateMatchingRecord) +- [businessprocess_MailboxTrackingFolders](#BKMK_businessprocess_MailboxTrackingFolders) +- [businessprocess_PrincipalObjectAttributeAccesses](#BKMK_businessprocess_PrincipalObjectAttributeAccesses) +- [businessprocess_ProcessSession](#BKMK_businessprocess_ProcessSession) +- [businessprocess_SyncErrors](#BKMK_businessprocess_SyncErrors) + +### businessprocess_AsyncOperations + +Many-To-One Relationship: [asyncoperation businessprocess_AsyncOperations](asyncoperation.md#BKMK_businessprocess_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencingEntity|`asyncoperation`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`businessprocess_AsyncOperations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### businessprocess_BulkDeleteFailures + +Many-To-One Relationship: [bulkdeletefailure businessprocess_BulkDeleteFailures](bulkdeletefailure.md#BKMK_businessprocess_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencingEntity|`bulkdeletefailure`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`businessprocess_BulkDeleteFailures`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### businessprocess_DuplicateBaseRecord + +Many-To-One Relationship: [duplicaterecord businessprocess_DuplicateBaseRecord](duplicaterecord.md#BKMK_businessprocess_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`baserecordid`| +|ReferencedEntityNavigationPropertyName|`businessprocess_DuplicateBaseRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### businessprocess_DuplicateMatchingRecord + +Many-To-One Relationship: [duplicaterecord businessprocess_DuplicateMatchingRecord](duplicaterecord.md#BKMK_businessprocess_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencedEntityNavigationPropertyName|`businessprocess_DuplicateMatchingRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### businessprocess_MailboxTrackingFolders + +Many-To-One Relationship: [mailboxtrackingfolder businessprocess_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_businessprocess_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencingEntity|`mailboxtrackingfolder`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`businessprocess_MailboxTrackingFolders`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### businessprocess_PrincipalObjectAttributeAccesses + +Many-To-One Relationship: [principalobjectattributeaccess businessprocess_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_businessprocess_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencingEntity|`principalobjectattributeaccess`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`businessprocess_PrincipalObjectAttributeAccesses`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### businessprocess_ProcessSession + +Many-To-One Relationship: [processsession businessprocess_ProcessSession](processsession.md#BKMK_businessprocess_ProcessSession) + +|Property|Value| +|---|---| +|ReferencingEntity|`processsession`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`businessprocess_ProcessSession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### businessprocess_SyncErrors + +Many-To-One Relationship: [syncerror businessprocess_SyncErrors](syncerror.md#BKMK_businessprocess_SyncErrors) + +|Property|Value| +|---|---| +|ReferencingEntity|`syncerror`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`businessprocess_SyncErrors`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/businessunit.md b/powerapps-docs/developer/data-platform/reference/entities/businessunit.md index 512d32b433..0206a01edf 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/businessunit.md +++ b/powerapps-docs/developer/data-platform/reference/entities/businessunit.md @@ -1480,7 +1480,6 @@ These relationships are one-to-many. Listed by **SchemaName**. - [business_unit_activitypointer](#BKMK_business_unit_activitypointer) - [business_unit_adx_invitation](#BKMK_business_unit_adx_invitation) - [business_unit_adx_setting](#BKMK_business_unit_adx_setting) -- [business_unit_aiinsightcard](#BKMK_business_unit_aiinsightcard) - [business_unit_aiplugin](#BKMK_business_unit_aiplugin) - [business_unit_aipluginauth](#BKMK_business_unit_aipluginauth) - [business_unit_aipluginconversationstarter](#BKMK_business_unit_aipluginconversationstarter) @@ -1498,10 +1497,15 @@ These relationships are one-to-many. Listed by **SchemaName**. - [business_unit_applicationuser](#BKMK_business_unit_applicationuser) - [business_unit_appnotification](#BKMK_business_unit_appnotification) - [business_unit_appointment_activities](#BKMK_business_unit_appointment_activities) +- [business_unit_approvalprocess](#BKMK_business_unit_approvalprocess) +- [business_unit_approvalstageapproval](#BKMK_business_unit_approvalstageapproval) +- [business_unit_approvalstagecondition](#BKMK_business_unit_approvalstagecondition) +- [business_unit_approvalstageorder](#BKMK_business_unit_approvalstageorder) - [business_unit_asyncoperation](#BKMK_business_unit_asyncoperation) - [business_unit_bot](#BKMK_business_unit_bot) - [business_unit_botcomponent](#BKMK_business_unit_botcomponent) - [business_unit_botcomponentcollection](#BKMK_business_unit_botcomponentcollection) +- [business_unit_businessprocess](#BKMK_business_unit_businessprocess) - [business_unit_calendars](#BKMK_business_unit_calendars) - [business_unit_card](#BKMK_business_unit_card) - [business_unit_category](#BKMK_business_unit_category) @@ -1537,6 +1541,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [business_unit_federatedknowledgeconfiguration](#BKMK_business_unit_federatedknowledgeconfiguration) - [business_unit_federatedknowledgeentityconfiguration](#BKMK_business_unit_federatedknowledgeentityconfiguration) - [business_unit_feedback](#BKMK_business_unit_feedback) +- [business_unit_flowaggregation](#BKMK_business_unit_flowaggregation) - [business_unit_flowcapacityassignment](#BKMK_business_unit_flowcapacityassignment) - [business_unit_flowcredentialapplication](#BKMK_business_unit_flowcredentialapplication) - [business_unit_flowevent](#BKMK_business_unit_flowevent) @@ -1551,6 +1556,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [business_unit_goal](#BKMK_business_unit_goal) - [business_unit_goalrollupquery](#BKMK_business_unit_goalrollupquery) - [business_unit_governanceconfiguration](#BKMK_business_unit_governanceconfiguration) +- [business_unit_indexedtrait](#BKMK_business_unit_indexedtrait) - [business_unit_interactionforemail](#BKMK_business_unit_interactionforemail) - [business_unit_keyvaultreference](#BKMK_business_unit_keyvaultreference) - [business_unit_knowledgearticle](#BKMK_business_unit_knowledgearticle) @@ -1565,6 +1571,9 @@ These relationships are one-to-many. Listed by **SchemaName**. - [business_unit_msdyn_aibfeedbackloop](#BKMK_business_unit_msdyn_aibfeedbackloop) - [business_unit_msdyn_aibfile](#BKMK_business_unit_msdyn_aibfile) - [business_unit_msdyn_aibfileattacheddata](#BKMK_business_unit_msdyn_aibfileattacheddata) +- [business_unit_msdyn_aidataprocessingevent](#BKMK_business_unit_msdyn_aidataprocessingevent) +- [business_unit_msdyn_aievaluationconfiguration](#BKMK_business_unit_msdyn_aievaluationconfiguration) +- [business_unit_msdyn_aievaluationrun](#BKMK_business_unit_msdyn_aievaluationrun) - [business_unit_msdyn_aievent](#BKMK_business_unit_msdyn_aievent) - [business_unit_msdyn_aifptrainingdocument](#BKMK_business_unit_msdyn_aifptrainingdocument) - [business_unit_msdyn_aimodel](#BKMK_business_unit_msdyn_aimodel) @@ -1573,6 +1582,11 @@ These relationships are one-to-many. Listed by **SchemaName**. - [business_unit_msdyn_aiodtrainingboundingbox](#BKMK_business_unit_msdyn_aiodtrainingboundingbox) - [business_unit_msdyn_aiodtrainingimage](#BKMK_business_unit_msdyn_aiodtrainingimage) - [business_unit_msdyn_aitemplate](#BKMK_business_unit_msdyn_aitemplate) +- [business_unit_msdyn_aitestcase](#BKMK_business_unit_msdyn_aitestcase) +- [business_unit_msdyn_aitestcasedocument](#BKMK_business_unit_msdyn_aitestcasedocument) +- [business_unit_msdyn_aitestcaseinput](#BKMK_business_unit_msdyn_aitestcaseinput) +- [business_unit_msdyn_aitestrun](#BKMK_business_unit_msdyn_aitestrun) +- [business_unit_msdyn_aitestrunbatch](#BKMK_business_unit_msdyn_aitestrunbatch) - [business_unit_msdyn_analysiscomponent](#BKMK_business_unit_msdyn_analysiscomponent) - [business_unit_msdyn_analysisjob](#BKMK_business_unit_msdyn_analysisjob) - [business_unit_msdyn_analysisoverride](#BKMK_business_unit_msdyn_analysisoverride) @@ -1669,7 +1683,6 @@ These relationships are one-to-many. Listed by **SchemaName**. - [business_unit_powerpagessiteaifeedback](#BKMK_business_unit_powerpagessiteaifeedback) - [business_unit_principalentitybusinessunitmap](#BKMK_business_unit_principalentitybusinessunitmap) - [business_unit_privilegecheckerrun](#BKMK_business_unit_privilegecheckerrun) -- [business_unit_processorregistration](#BKMK_business_unit_processorregistration) - [business_unit_processstageparameter](#BKMK_business_unit_processstageparameter) - [business_unit_queues](#BKMK_business_unit_queues) - [business_unit_queues2](#BKMK_business_unit_queues2) @@ -1683,11 +1696,11 @@ These relationships are one-to-many. Listed by **SchemaName**. - [business_unit_retentionoperation](#BKMK_business_unit_retentionoperation) - [business_unit_retentionsuccessdetail](#BKMK_business_unit_retentionsuccessdetail) - [business_unit_roles](#BKMK_business_unit_roles) +- [business_unit_savingrule](#BKMK_business_unit_savingrule) - [business_unit_sharepointdocumentlocation](#BKMK_business_unit_sharepointdocumentlocation) - [business_unit_sharepointsites](#BKMK_business_unit_sharepointsites) - [business_unit_sideloadedaiplugin](#BKMK_business_unit_sideloadedaiplugin) - [business_unit_signal](#BKMK_business_unit_signal) -- [business_unit_signalregistration](#BKMK_business_unit_signalregistration) - [business_unit_slabase](#BKMK_business_unit_slabase) - [business_unit_slakpiinstance](#BKMK_business_unit_slakpiinstance) - [business_unit_socialactivity](#BKMK_business_unit_socialactivity) @@ -1696,11 +1709,15 @@ These relationships are one-to-many. Listed by **SchemaName**. - [business_unit_stagesolutionupload](#BKMK_business_unit_stagesolutionupload) - [business_unit_synapsedatabase](#BKMK_business_unit_synapsedatabase) - [business_unit_system_users](#BKMK_business_unit_system_users) +- [business_unit_tag](#BKMK_business_unit_tag) +- [business_unit_taggedflowsession](#BKMK_business_unit_taggedflowsession) +- [business_unit_taggedprocess](#BKMK_business_unit_taggedprocess) - [business_unit_task_activities](#BKMK_business_unit_task_activities) - [business_unit_teams](#BKMK_business_unit_teams) - [business_unit_templates](#BKMK_business_unit_templates) - [business_unit_trait](#BKMK_business_unit_trait) -- [business_unit_traitregistration](#BKMK_business_unit_traitregistration) +- [business_unit_unstructuredfilesearchentity](#BKMK_business_unit_unstructuredfilesearchentity) +- [business_unit_unstructuredfilesearchrecord](#BKMK_business_unit_unstructuredfilesearchrecord) - [business_unit_user_settings](#BKMK_business_unit_user_settings) - [business_unit_userform](#BKMK_business_unit_userform) - [business_unit_userquery](#BKMK_business_unit_userquery) @@ -1708,6 +1725,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [business_unit_workflow](#BKMK_business_unit_workflow) - [business_unit_workflowbinary](#BKMK_business_unit_workflowbinary) - [business_unit_workflowlogs](#BKMK_business_unit_workflowlogs) +- [business_unit_workflowmetadata](#BKMK_business_unit_workflowmetadata) - [business_unit_workqueue](#BKMK_business_unit_workqueue) - [business_unit_workqueueitem](#BKMK_business_unit_workqueueitem) - [BusinessUnit_AsyncOperations](#BKMK_BusinessUnit_AsyncOperations) @@ -1836,18 +1854,6 @@ Many-To-One Relationship: [adx_setting business_unit_adx_setting](adx_setting.md |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### business_unit_aiinsightcard - -Many-To-One Relationship: [aiinsightcard business_unit_aiinsightcard](aiinsightcard.md#BKMK_business_unit_aiinsightcard) - -|Property|Value| -|---|---| -|ReferencingEntity|`aiinsightcard`| -|ReferencingAttribute|`owningbusinessunit`| -|ReferencedEntityNavigationPropertyName|`business_unit_aiinsightcard`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - ### business_unit_aiplugin Many-To-One Relationship: [aiplugin business_unit_aiplugin](aiplugin.md#BKMK_business_unit_aiplugin) @@ -2052,6 +2058,54 @@ Many-To-One Relationship: [appointment business_unit_appointment_activities](app |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### business_unit_approvalprocess + +Many-To-One Relationship: [approvalprocess business_unit_approvalprocess](approvalprocess.md#BKMK_business_unit_approvalprocess) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalprocess`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_approvalprocess`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### business_unit_approvalstageapproval + +Many-To-One Relationship: [approvalstageapproval business_unit_approvalstageapproval](approvalstageapproval.md#BKMK_business_unit_approvalstageapproval) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageapproval`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_approvalstageapproval`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### business_unit_approvalstagecondition + +Many-To-One Relationship: [approvalstagecondition business_unit_approvalstagecondition](approvalstagecondition.md#BKMK_business_unit_approvalstagecondition) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstagecondition`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_approvalstagecondition`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### business_unit_approvalstageorder + +Many-To-One Relationship: [approvalstageorder business_unit_approvalstageorder](approvalstageorder.md#BKMK_business_unit_approvalstageorder) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageorder`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_approvalstageorder`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### business_unit_asyncoperation Many-To-One Relationship: [asyncoperation business_unit_asyncoperation](asyncoperation.md#BKMK_business_unit_asyncoperation) @@ -2100,6 +2154,18 @@ Many-To-One Relationship: [botcomponentcollection business_unit_botcomponentcoll |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### business_unit_businessprocess + +Many-To-One Relationship: [businessprocess business_unit_businessprocess](businessprocess.md#BKMK_business_unit_businessprocess) + +|Property|Value| +|---|---| +|ReferencingEntity|`businessprocess`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_businessprocess`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### business_unit_calendars Many-To-One Relationship: [calendar business_unit_calendars](calendar.md#BKMK_business_unit_calendars) @@ -2520,6 +2586,18 @@ Many-To-One Relationship: [feedback business_unit_feedback](feedback.md#BKMK_bus |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### business_unit_flowaggregation + +Many-To-One Relationship: [flowaggregation business_unit_flowaggregation](flowaggregation.md#BKMK_business_unit_flowaggregation) + +|Property|Value| +|---|---| +|ReferencingEntity|`flowaggregation`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_flowaggregation`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### business_unit_flowcapacityassignment Many-To-One Relationship: [flowcapacityassignment business_unit_flowcapacityassignment](flowcapacityassignment.md#BKMK_business_unit_flowcapacityassignment) @@ -2688,6 +2766,18 @@ Many-To-One Relationship: [governanceconfiguration business_unit_governanceconfi |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### business_unit_indexedtrait + +Many-To-One Relationship: [indexedtrait business_unit_indexedtrait](indexedtrait.md#BKMK_business_unit_indexedtrait) + +|Property|Value| +|---|---| +|ReferencingEntity|`indexedtrait`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_indexedtrait`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### business_unit_interactionforemail Many-To-One Relationship: [interactionforemail business_unit_interactionforemail](interactionforemail.md#BKMK_business_unit_interactionforemail) @@ -2856,6 +2946,42 @@ Many-To-One Relationship: [msdyn_aibfileattacheddata business_unit_msdyn_aibfile |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### business_unit_msdyn_aidataprocessingevent + +Many-To-One Relationship: [msdyn_aidataprocessingevent business_unit_msdyn_aidataprocessingevent](msdyn_aidataprocessingevent.md#BKMK_business_unit_msdyn_aidataprocessingevent) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aidataprocessingevent`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_msdyn_aidataprocessingevent`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### business_unit_msdyn_aievaluationconfiguration + +Many-To-One Relationship: [msdyn_aievaluationconfiguration business_unit_msdyn_aievaluationconfiguration](msdyn_aievaluationconfiguration.md#BKMK_business_unit_msdyn_aievaluationconfiguration) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aievaluationconfiguration`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_msdyn_aievaluationconfiguration`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### business_unit_msdyn_aievaluationrun + +Many-To-One Relationship: [msdyn_aievaluationrun business_unit_msdyn_aievaluationrun](msdyn_aievaluationrun.md#BKMK_business_unit_msdyn_aievaluationrun) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aievaluationrun`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_msdyn_aievaluationrun`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### business_unit_msdyn_aievent Many-To-One Relationship: [msdyn_aievent business_unit_msdyn_aievent](msdyn_aievent.md#BKMK_business_unit_msdyn_aievent) @@ -2952,6 +3078,66 @@ Many-To-One Relationship: [msdyn_aitemplate business_unit_msdyn_aitemplate](msdy |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### business_unit_msdyn_aitestcase + +Many-To-One Relationship: [msdyn_aitestcase business_unit_msdyn_aitestcase](msdyn_aitestcase.md#BKMK_business_unit_msdyn_aitestcase) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestcase`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_msdyn_aitestcase`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### business_unit_msdyn_aitestcasedocument + +Many-To-One Relationship: [msdyn_aitestcasedocument business_unit_msdyn_aitestcasedocument](msdyn_aitestcasedocument.md#BKMK_business_unit_msdyn_aitestcasedocument) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestcasedocument`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_msdyn_aitestcasedocument`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### business_unit_msdyn_aitestcaseinput + +Many-To-One Relationship: [msdyn_aitestcaseinput business_unit_msdyn_aitestcaseinput](msdyn_aitestcaseinput.md#BKMK_business_unit_msdyn_aitestcaseinput) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestcaseinput`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_msdyn_aitestcaseinput`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### business_unit_msdyn_aitestrun + +Many-To-One Relationship: [msdyn_aitestrun business_unit_msdyn_aitestrun](msdyn_aitestrun.md#BKMK_business_unit_msdyn_aitestrun) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestrun`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_msdyn_aitestrun`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### business_unit_msdyn_aitestrunbatch + +Many-To-One Relationship: [msdyn_aitestrunbatch business_unit_msdyn_aitestrunbatch](msdyn_aitestrunbatch.md#BKMK_business_unit_msdyn_aitestrunbatch) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestrunbatch`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_msdyn_aitestrunbatch`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### business_unit_msdyn_analysiscomponent Many-To-One Relationship: [msdyn_analysiscomponent business_unit_msdyn_analysiscomponent](msdyn_analysiscomponent.md#BKMK_business_unit_msdyn_analysiscomponent) @@ -4104,18 +4290,6 @@ Many-To-One Relationship: [privilegecheckerrun business_unit_privilegecheckerrun |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### business_unit_processorregistration - -Many-To-One Relationship: [processorregistration business_unit_processorregistration](processorregistration.md#BKMK_business_unit_processorregistration) - -|Property|Value| -|---|---| -|ReferencingEntity|`processorregistration`| -|ReferencingAttribute|`owningbusinessunit`| -|ReferencedEntityNavigationPropertyName|`business_unit_processorregistration`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - ### business_unit_processstageparameter Many-To-One Relationship: [processstageparameter business_unit_processstageparameter](processstageparameter.md#BKMK_business_unit_processstageparameter) @@ -4272,6 +4446,18 @@ Many-To-One Relationship: [role business_unit_roles](role.md#BKMK_business_unit_ |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### business_unit_savingrule + +Many-To-One Relationship: [savingrule business_unit_savingrule](savingrule.md#BKMK_business_unit_savingrule) + +|Property|Value| +|---|---| +|ReferencingEntity|`savingrule`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_savingrule`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### business_unit_sharepointdocumentlocation Many-To-One Relationship: [sharepointdocumentlocation business_unit_sharepointdocumentlocation](sharepointdocumentlocation.md#BKMK_business_unit_sharepointdocumentlocation) @@ -4320,18 +4506,6 @@ Many-To-One Relationship: [signal business_unit_signal](signal.md#BKMK_business_ |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### business_unit_signalregistration - -Many-To-One Relationship: [signalregistration business_unit_signalregistration](signalregistration.md#BKMK_business_unit_signalregistration) - -|Property|Value| -|---|---| -|ReferencingEntity|`signalregistration`| -|ReferencingAttribute|`owningbusinessunit`| -|ReferencedEntityNavigationPropertyName|`business_unit_signalregistration`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - ### business_unit_slabase Many-To-One Relationship: [sla business_unit_slabase](sla.md#BKMK_business_unit_slabase) @@ -4428,6 +4602,42 @@ Many-To-One Relationship: [systemuser business_unit_system_users](systemuser.md# |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### business_unit_tag + +Many-To-One Relationship: [tag business_unit_tag](tag.md#BKMK_business_unit_tag) + +|Property|Value| +|---|---| +|ReferencingEntity|`tag`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_tag`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### business_unit_taggedflowsession + +Many-To-One Relationship: [taggedflowsession business_unit_taggedflowsession](taggedflowsession.md#BKMK_business_unit_taggedflowsession) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedflowsession`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_taggedflowsession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### business_unit_taggedprocess + +Many-To-One Relationship: [taggedprocess business_unit_taggedprocess](taggedprocess.md#BKMK_business_unit_taggedprocess) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedprocess`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_taggedprocess`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### business_unit_task_activities Many-To-One Relationship: [task business_unit_task_activities](task.md#BKMK_business_unit_task_activities) @@ -4476,15 +4686,27 @@ Many-To-One Relationship: [trait business_unit_trait](trait.md#BKMK_business_uni |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### business_unit_traitregistration +### business_unit_unstructuredfilesearchentity + +Many-To-One Relationship: [unstructuredfilesearchentity business_unit_unstructuredfilesearchentity](unstructuredfilesearchentity.md#BKMK_business_unit_unstructuredfilesearchentity) + +|Property|Value| +|---|---| +|ReferencingEntity|`unstructuredfilesearchentity`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_unstructuredfilesearchentity`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### business_unit_unstructuredfilesearchrecord -Many-To-One Relationship: [traitregistration business_unit_traitregistration](traitregistration.md#BKMK_business_unit_traitregistration) +Many-To-One Relationship: [unstructuredfilesearchrecord business_unit_unstructuredfilesearchrecord](unstructuredfilesearchrecord.md#BKMK_business_unit_unstructuredfilesearchrecord) |Property|Value| |---|---| -|ReferencingEntity|`traitregistration`| +|ReferencingEntity|`unstructuredfilesearchrecord`| |ReferencingAttribute|`owningbusinessunit`| -|ReferencedEntityNavigationPropertyName|`business_unit_traitregistration`| +|ReferencedEntityNavigationPropertyName|`business_unit_unstructuredfilesearchrecord`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| @@ -4572,6 +4794,18 @@ Many-To-One Relationship: [workflowlog business_unit_workflowlogs](workflowlog.m |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### business_unit_workflowmetadata + +Many-To-One Relationship: [workflowmetadata business_unit_workflowmetadata](workflowmetadata.md#BKMK_business_unit_workflowmetadata) + +|Property|Value| +|---|---| +|ReferencingEntity|`workflowmetadata`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencedEntityNavigationPropertyName|`business_unit_workflowmetadata`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### business_unit_workqueue Many-To-One Relationship: [workqueue business_unit_workqueue](workqueue.md#BKMK_business_unit_workqueue) diff --git a/powerapps-docs/developer/data-platform/reference/entities/certificatecredential.md b/powerapps-docs/developer/data-platform/reference/entities/certificatecredential.md index 8631d1adb1..30636d2696 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/certificatecredential.md +++ b/powerapps-docs/developer/data-platform/reference/entities/certificatecredential.md @@ -433,7 +433,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| diff --git a/powerapps-docs/developer/data-platform/reference/entities/connection.md b/powerapps-docs/developer/data-platform/reference/entities/connection.md index c718aa5797..d165bcc912 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/connection.md +++ b/powerapps-docs/developer/data-platform/reference/entities/connection.md @@ -661,11 +661,11 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |9600|**Goal**| |9930|**Knowledge Base Record**| |9953|**Knowledge Article**| -|10331|**Invitation**| -|10332|**Invite Redemption**| -|10351|**Publishing State Transition Rule**| -|10353|**Shortcut**| -|10365|**Website**| +|10348|**Invitation**| +|10349|**Invite Redemption**| +|10368|**Publishing State Transition Rule**| +|10370|**Shortcut**| +|10382|**Website**| ### Record2ObjectTypeCode @@ -706,11 +706,11 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |9600|**Goal**| |9930|**Knowledge Base Record**| |9953|**Knowledge Article**| -|10331|**Invitation**| -|10332|**Invite Redemption**| -|10351|**Publishing State Transition Rule**| -|10353|**Shortcut**| -|10365|**Website**| +|10348|**Invitation**| +|10349|**Invite Redemption**| +|10368|**Publishing State Transition Rule**| +|10370|**Shortcut**| +|10382|**Website**| ### RelatedConnectionId diff --git a/powerapps-docs/developer/data-platform/reference/entities/connectionreference.md b/powerapps-docs/developer/data-platform/reference/entities/connectionreference.md index 3e983d4a2f..9cd6f01027 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/connectionreference.md +++ b/powerapps-docs/developer/data-platform/reference/entities/connectionreference.md @@ -63,6 +63,8 @@ The following table lists selected properties for the Connection Reference (conn These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. - [ConnectionId](#BKMK_ConnectionId) +- [ConnectionParametersConfig](#BKMK_ConnectionParametersConfig) +- [ConnectionParameterSetConfig](#BKMK_ConnectionParameterSetConfig) - [connectionreferencedisplayname](#BKMK_connectionreferencedisplayname) - [connectionreferenceId](#BKMK_connectionreferenceId) - [ConnectionReferenceLogicalName](#BKMK_ConnectionReferenceLogicalName) @@ -97,6 +99,40 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsLocalizable|False| |MaxLength|1000| +### ConnectionParametersConfig + +|Property|Value| +|---|---| +|Description|**Connection parameters that can be reused when creating connections in Microsoft Copilot Studio**| +|DisplayName|**Connection Parameters Config**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`connectionparametersconfig`| +|RequiredLevel|None| +|Type|Memo| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1048576| + +### ConnectionParameterSetConfig + +|Property|Value| +|---|---| +|Description|**The connection parameters set that can be reused when creating connections in Microsoft Copilot Studio**| +|DisplayName|**Connection Parameters Set Config**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`connectionparametersetconfig`| +|RequiredLevel|None| +|Type|Memo| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1048576| + ### connectionreferencedisplayname |Property|Value| diff --git a/powerapps-docs/developer/data-platform/reference/entities/conversationtranscript.md b/powerapps-docs/developer/data-platform/reference/entities/conversationtranscript.md index a70fe91c18..a87789419d 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/conversationtranscript.md +++ b/powerapps-docs/developer/data-platform/reference/entities/conversationtranscript.md @@ -83,7 +83,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| |Description|**Conversation Transcripts related to customer interactions with a Bot**| -|DisplayName|**bot_conversationtranscript**| +|DisplayName|**bot\_conversationtranscript**| |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`bot_conversationtranscriptid`| diff --git a/powerapps-docs/developer/data-platform/reference/entities/copilotexamplequestion.md b/powerapps-docs/developer/data-platform/reference/entities/copilotexamplequestion.md index cadc0105fc..9cb4d9b8c9 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/copilotexamplequestion.md +++ b/powerapps-docs/developer/data-platform/reference/entities/copilotexamplequestion.md @@ -194,7 +194,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**EntityScope that can be used to extract results. Format: [entityscopeA], [entityscopeB]**| +|Description|**EntityScope that can be used to extract results. Format: \[entityscopeA\], \[entityscopeB\]**| |DisplayName|**EntityScope**| |IsValidForForm|True| |IsValidForRead|True| @@ -211,7 +211,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**EntityScopeColumn within the EntityScope specified above.Format: [EntityScopeA].[EntityScopeColumnA1], [EntityScopeB].[EntityScopeColumnB2]**| +|Description|**EntityScopeColumn within the EntityScope specified above.Format: \[EntityScopeA\].\[EntityScopeColumnA1\], \[EntityScopeB\].\[EntityScopeColumnB2\]**| |DisplayName|**EntityScopeColumn**| |IsValidForForm|True| |IsValidForRead|True| @@ -264,7 +264,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Format|Text| |FormatName|Text| |ImeMode|Auto| -|IsLocalizable|False| +|IsLocalizable|True| |MaxLength|20000| ### knowledgetype diff --git a/powerapps-docs/developer/data-platform/reference/entities/datalakefolder.md b/powerapps-docs/developer/data-platform/reference/entities/datalakefolder.md index 7b533f0a96..05cdd822f6 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/datalakefolder.md +++ b/powerapps-docs/developer/data-platform/reference/entities/datalakefolder.md @@ -63,6 +63,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [AccessType](#BKMK_AccessType) - [CDMPath](#BKMK_CDMPath) +- [ComplianceLakeLocation](#BKMK_ComplianceLakeLocation) - [containerendpoint](#BKMK_containerendpoint) - [ContributorSecurityGroupId](#BKMK_ContributorSecurityGroupId) - [datalakefolder_UniqueName](#BKMK_datalakefolder_UniqueName) @@ -130,6 +131,23 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsLocalizable|False| |MaxLength|100| +### ComplianceLakeLocation + +|Property|Value| +|---|---| +|Description|**Azure location where the compliance lake should be created.**| +|DisplayName|**Compliance Lake Location**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`compliancelakelocation`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|200| + ### containerendpoint |Property|Value| diff --git a/powerapps-docs/developer/data-platform/reference/entities/duplicaterecord.md b/powerapps-docs/developer/data-platform/reference/entities/duplicaterecord.md index 73ff2bad34..1e5b5ea6e4 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/duplicaterecord.md +++ b/powerapps-docs/developer/data-platform/reference/entities/duplicaterecord.md @@ -98,7 +98,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |LogicalName|`baserecordid`| |RequiredLevel|None| |Type|Lookup| -|Targets|account, activityfileattachment, adx_invitation, adx_inviteredemption, aicopilot, aipluginauth, aipluginoperationparameter, aipluginoperationresponsetemplate, aiplugintitle, aipluginusersetting, applicationuser, appointment, archivecleanupinfo, archivecleanupoperation, bulkarchiveconfig, bulkarchivefailuredetail, bulkarchiveoperation, canvasappextendedmetadata, card, cascadegrantrevokeaccessrecordstracker, cascadegrantrevokeaccessversiontracker, catalogassignment, certificatecredential, channelaccessprofile, connectioninstance, connector, contact, conversationtranscript, credential, datalakefolder, datalakefolderpermission, datalakeworkspace, datalakeworkspacepermission, dataprocessingconfiguration, deleteditemreference, desktopflowmodule, email, emailserverprofile, enablearchivalrequest, entityrecordfilter, environmentvariabledefinition, environmentvariablevalue, exportedexcel, exportsolutionupload, fax, featurecontrolsetting, feedback, flowcredentialapplication, flowevent, flowmachinegroup, flowmachineimage, flowmachineimageversion, flowmachinenetwork, fxexpression, goal, goalrollupquery, governanceconfiguration, kbarticle, keyvaultreference, knowledgearticle, knowledgebaserecord, letter, managedidentity, maskingrule, msdyn_aibdataset, msdyn_aibdatasetfile, msdyn_aibdatasetrecord, msdyn_aibdatasetscontainer, msdyn_aibfeedbackloop, msdyn_aibfile, msdyn_aibfileattacheddata, msdyn_aievent, msdyn_aiodimage, msdyn_aiodlabel, msdyn_aiodtrainingboundingbox, msdyn_aiodtrainingimage, msdyn_analysiscomponent, msdyn_analysisjob, msdyn_analysisoverride, msdyn_analysisresult, msdyn_analysisresultdetail, msdyn_appinsightsmetadata, msdyn_copilotinteractions, msdyn_customcontrolextendedsettings, msdyn_dataflow, msdyn_dataflowconnectionreference, msdyn_dataflowrefreshhistory, msdyn_dataflow_datalakefolder, msdyn_dmsrequest, msdyn_dmsrequeststatus, msdyn_entitylinkchatconfiguration, msdyn_entityrefreshhistory, msdyn_favoriteknowledgearticle, msdyn_federatedarticle, msdyn_federatedarticleincident, msdyn_fileupload, msdyn_flow_actionapprovalmodel, msdyn_flow_approval, msdyn_flow_approvalrequest, msdyn_flow_approvalresponse, msdyn_flow_approvalstep, msdyn_flow_awaitallactionapprovalmodel, msdyn_flow_awaitallapprovalmodel, msdyn_flow_basicapprovalmodel, msdyn_flow_flowapproval, msdyn_formmapping, msdyn_function, msdyn_integratedsearchprovider, msdyn_kalanguagesetting, msdyn_kbattachment, msdyn_kmfederatedsearchconfig, msdyn_knowledgearticleimage, msdyn_knowledgearticletemplate, msdyn_knowledgeconfiguration, msdyn_knowledgeinteractioninsight, msdyn_knowledgemanagementsetting, msdyn_knowledgepersonalfilter, msdyn_knowledgesearchfilter, msdyn_knowledgesearchinsight, msdyn_mobileapp, msdyn_modulerundetail, msdyn_pmanalysishistory, msdyn_pmbusinessruleautomationconfig, msdyn_pmcalendar, msdyn_pmcalendarversion, msdyn_pminferredtask, msdyn_pmprocessextendedmetadataversion, msdyn_pmprocesstemplate, msdyn_pmprocessusersettings, msdyn_pmprocessversion, msdyn_pmrecording, msdyn_pmsimulation, msdyn_pmtemplate, msdyn_pmview, msdyn_qna, msdyn_schedule, msdyn_serviceconfiguration, msdyn_slakpi, msdyn_solutionhealthrule, msdyn_solutionhealthruleargument, msdyn_solutionhealthruleset, msdyn_virtualtablecolumncandidate, mspcat_catalogsubmissionfiles, mspcat_packagestore, organizationdatasyncfnostate, organizationdatasyncstate, organizationdatasyncsubscription, organizationdatasyncsubscriptionentity, organizationdatasyncsubscriptionfnotable, package, packagehistory, phonecall, powerbidataset, powerbidatasetapdx, powerbimashupparameter, powerbireport, powerbireportapdx, powerfxrule, powerpagesmanagedidentity, powerpagesscanreport, privilegesremovalsetting, publisher, queue, reconciliationinfo, recordfilter, recurringappointmentmaster, reportparameter, retaineddataexcel, retentioncleanupinfo, retentioncleanupoperation, retentionconfig, retentionfailuredetail, retentionoperation, retentionsuccessdetail, revokeinheritedaccessrecordstracker, roleeditorlayout, searchattributesettings, searchcustomanalyzer, searchrelationshipsettings, serviceplan, serviceplancustomcontrol, serviceplanmapping, sharedlinksetting, sharepointdocumentlocation, sharepointsite, socialactivity, socialprofile, solutioncomponentattributeconfiguration, solutioncomponentbatchconfiguration, solutioncomponentconfiguration, solutioncomponentrelationshipconfiguration, stagesolutionupload, supportusertable, synapsedatabase, synapselinkexternaltablestate, synapselinkprofile, synapselinkprofileentity, synapselinkprofileentitystate, synapselinkschedule, systemuser, task, tdsmetadata, team, transactioncurrency, userrating, workqueue, workqueueitem| +|Targets|account, activityfileattachment, adx_invitation, adx_inviteredemption, aicopilot, aipluginauth, aipluginoperationparameter, aipluginoperationresponsetemplate, aiplugintitle, aipluginusersetting, applicationuser, appointment, approvalprocess, approvalstageapproval, approvalstagecondition, approvalstageorder, archivecleanupinfo, archivecleanupoperation, bulkarchiveconfig, bulkarchivefailuredetail, bulkarchiveoperation, businessprocess, canvasappextendedmetadata, card, cascadegrantrevokeaccessrecordstracker, cascadegrantrevokeaccessversiontracker, catalogassignment, certificatecredential, channelaccessprofile, connectioninstance, connector, contact, conversationtranscript, credential, datalakefolder, datalakefolderpermission, datalakeworkspace, datalakeworkspacepermission, dataprocessingconfiguration, deleteditemreference, desktopflowmodule, email, emailserverprofile, enablearchivalrequest, entityrecordfilter, environmentvariabledefinition, environmentvariablevalue, exportedexcel, exportsolutionupload, fax, featurecontrolsetting, federatedknowledgecitation, federatedknowledgemetadatarefresh, feedback, flowcredentialapplication, flowevent, flowmachinegroup, flowmachineimage, flowmachineimageversion, flowmachinenetwork, fxexpression, goal, goalrollupquery, governanceconfiguration, kbarticle, keyvaultreference, knowledgearticle, knowledgebaserecord, letter, managedidentity, maskingrule, msdyn_aibdataset, msdyn_aibdatasetfile, msdyn_aibdatasetrecord, msdyn_aibdatasetscontainer, msdyn_aibfeedbackloop, msdyn_aibfile, msdyn_aibfileattacheddata, msdyn_aievent, msdyn_aimodelcatalog, msdyn_aiodimage, msdyn_aiodlabel, msdyn_aiodtrainingboundingbox, msdyn_aiodtrainingimage, msdyn_aitestrunbatch, msdyn_analysiscomponent, msdyn_analysisjob, msdyn_analysisoverride, msdyn_analysisresult, msdyn_analysisresultdetail, msdyn_appinsightsmetadata, msdyn_copilotinteractions, msdyn_customcontrolextendedsettings, msdyn_dataflow, msdyn_dataflowconnectionreference, msdyn_dataflowrefreshhistory, msdyn_dataflow_datalakefolder, msdyn_dmsrequest, msdyn_dmsrequeststatus, msdyn_entitylinkchatconfiguration, msdyn_entityrefreshhistory, msdyn_favoriteknowledgearticle, msdyn_federatedarticle, msdyn_federatedarticleincident, msdyn_fileupload, msdyn_flow_actionapprovalmodel, msdyn_flow_approval, msdyn_flow_approvalrequest, msdyn_flow_approvalresponse, msdyn_flow_approvalstep, msdyn_flow_awaitallactionapprovalmodel, msdyn_flow_awaitallapprovalmodel, msdyn_flow_basicapprovalmodel, msdyn_flow_flowapproval, msdyn_formmapping, msdyn_function, msdyn_integratedsearchprovider, msdyn_kalanguagesetting, msdyn_kbattachment, msdyn_kmfederatedsearchconfig, msdyn_knowledgearticleimage, msdyn_knowledgearticletemplate, msdyn_knowledgeconfiguration, msdyn_knowledgeinteractioninsight, msdyn_knowledgemanagementsetting, msdyn_knowledgepersonalfilter, msdyn_knowledgesearchfilter, msdyn_knowledgesearchinsight, msdyn_mobileapp, msdyn_modulerundetail, msdyn_pmanalysishistory, msdyn_pmbusinessruleautomationconfig, msdyn_pmcalendar, msdyn_pmcalendarversion, msdyn_pminferredtask, msdyn_pmprocessextendedmetadataversion, msdyn_pmprocesstemplate, msdyn_pmprocessusersettings, msdyn_pmprocessversion, msdyn_pmrecording, msdyn_pmsimulation, msdyn_pmtemplate, msdyn_pmview, msdyn_qna, msdyn_schedule, msdyn_serviceconfiguration, msdyn_slakpi, msdyn_solutionhealthrule, msdyn_solutionhealthruleargument, msdyn_solutionhealthruleset, msdyn_virtualtablecolumncandidate, mspcat_catalogsubmissionfiles, mspcat_packagestore, organizationdatasyncfnostate, organizationdatasyncstate, organizationdatasyncsubscription, organizationdatasyncsubscriptionentity, organizationdatasyncsubscriptionfnotable, package, packagehistory, phonecall, powerbidataset, powerbidatasetapdx, powerbimashupparameter, powerbireport, powerbireportapdx, powerfxrule, powerpagesmanagedidentity, powerpagesscanreport, privilegesremovalsetting, publisher, queue, reconciliationinfo, recordfilter, recurringappointmentmaster, reportparameter, retaineddataexcel, retentioncleanupinfo, retentioncleanupoperation, retentionconfig, retentionfailuredetail, retentionoperation, retentionsuccessdetail, revokeinheritedaccessrecordstracker, roleeditorlayout, savingrule, searchattributesettings, searchcustomanalyzer, searchrelationshipsettings, serviceplan, serviceplancustomcontrol, serviceplanmapping, sharedlinksetting, sharepointdocumentlocation, sharepointsite, socialactivity, socialprofile, solutioncomponentattributeconfiguration, solutioncomponentbatchconfiguration, solutioncomponentconfiguration, solutioncomponentrelationshipconfiguration, stagesolutionupload, supportusertable, synapsedatabase, synapselinkexternaltablestate, synapselinkprofile, synapselinkprofileentity, synapselinkprofileentitystate, synapselinkschedule, systemuser, task, tdsmetadata, team, transactioncurrency, unstructuredfilesearchentity, unstructuredfilesearchrecord, userrating, workflowmetadata, workqueue, workqueueitem| ### BaseRecordIdTypeCode @@ -140,7 +140,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |LogicalName|`duplicaterecordid`| |RequiredLevel|None| |Type|Lookup| -|Targets|account, activityfileattachment, adx_invitation, adx_inviteredemption, aicopilot, aipluginauth, aipluginoperationparameter, aipluginoperationresponsetemplate, aiplugintitle, aipluginusersetting, applicationuser, appointment, archivecleanupinfo, archivecleanupoperation, bulkarchiveconfig, bulkarchivefailuredetail, bulkarchiveoperation, canvasappextendedmetadata, card, cascadegrantrevokeaccessrecordstracker, cascadegrantrevokeaccessversiontracker, catalogassignment, certificatecredential, channelaccessprofile, connectioninstance, connector, contact, conversationtranscript, credential, datalakefolder, datalakefolderpermission, datalakeworkspace, datalakeworkspacepermission, dataprocessingconfiguration, deleteditemreference, desktopflowmodule, email, emailserverprofile, enablearchivalrequest, entityrecordfilter, environmentvariabledefinition, environmentvariablevalue, exportedexcel, exportsolutionupload, fax, featurecontrolsetting, feedback, flowcredentialapplication, flowevent, flowmachinegroup, flowmachineimage, flowmachineimageversion, flowmachinenetwork, fxexpression, goal, goalrollupquery, governanceconfiguration, kbarticle, keyvaultreference, knowledgearticle, knowledgebaserecord, letter, managedidentity, maskingrule, msdyn_aibdataset, msdyn_aibdatasetfile, msdyn_aibdatasetrecord, msdyn_aibdatasetscontainer, msdyn_aibfeedbackloop, msdyn_aibfile, msdyn_aibfileattacheddata, msdyn_aievent, msdyn_aiodimage, msdyn_aiodlabel, msdyn_aiodtrainingboundingbox, msdyn_aiodtrainingimage, msdyn_analysiscomponent, msdyn_analysisjob, msdyn_analysisoverride, msdyn_analysisresult, msdyn_analysisresultdetail, msdyn_appinsightsmetadata, msdyn_copilotinteractions, msdyn_customcontrolextendedsettings, msdyn_dataflow, msdyn_dataflowconnectionreference, msdyn_dataflowrefreshhistory, msdyn_dataflow_datalakefolder, msdyn_dmsrequest, msdyn_dmsrequeststatus, msdyn_entitylinkchatconfiguration, msdyn_entityrefreshhistory, msdyn_favoriteknowledgearticle, msdyn_federatedarticle, msdyn_federatedarticleincident, msdyn_fileupload, msdyn_flow_actionapprovalmodel, msdyn_flow_approval, msdyn_flow_approvalrequest, msdyn_flow_approvalresponse, msdyn_flow_approvalstep, msdyn_flow_awaitallactionapprovalmodel, msdyn_flow_awaitallapprovalmodel, msdyn_flow_basicapprovalmodel, msdyn_flow_flowapproval, msdyn_formmapping, msdyn_function, msdyn_integratedsearchprovider, msdyn_kalanguagesetting, msdyn_kbattachment, msdyn_kmfederatedsearchconfig, msdyn_knowledgearticleimage, msdyn_knowledgearticletemplate, msdyn_knowledgeconfiguration, msdyn_knowledgeinteractioninsight, msdyn_knowledgemanagementsetting, msdyn_knowledgepersonalfilter, msdyn_knowledgesearchfilter, msdyn_knowledgesearchinsight, msdyn_mobileapp, msdyn_modulerundetail, msdyn_pmanalysishistory, msdyn_pmbusinessruleautomationconfig, msdyn_pmcalendar, msdyn_pmcalendarversion, msdyn_pminferredtask, msdyn_pmprocessextendedmetadataversion, msdyn_pmprocesstemplate, msdyn_pmprocessusersettings, msdyn_pmprocessversion, msdyn_pmrecording, msdyn_pmsimulation, msdyn_pmtemplate, msdyn_pmview, msdyn_qna, msdyn_schedule, msdyn_serviceconfiguration, msdyn_slakpi, msdyn_solutionhealthrule, msdyn_solutionhealthruleargument, msdyn_solutionhealthruleset, msdyn_virtualtablecolumncandidate, mspcat_catalogsubmissionfiles, mspcat_packagestore, organizationdatasyncfnostate, organizationdatasyncstate, organizationdatasyncsubscription, organizationdatasyncsubscriptionentity, organizationdatasyncsubscriptionfnotable, package, packagehistory, phonecall, powerbidataset, powerbidatasetapdx, powerbimashupparameter, powerbireport, powerbireportapdx, powerfxrule, powerpagesmanagedidentity, powerpagesscanreport, privilegesremovalsetting, publisher, queue, reconciliationinfo, recordfilter, recurringappointmentmaster, reportparameter, retaineddataexcel, retentioncleanupinfo, retentioncleanupoperation, retentionconfig, retentionfailuredetail, retentionoperation, retentionsuccessdetail, revokeinheritedaccessrecordstracker, roleeditorlayout, searchattributesettings, searchcustomanalyzer, searchrelationshipsettings, serviceplan, serviceplancustomcontrol, serviceplanmapping, sharedlinksetting, sharepointdocumentlocation, sharepointsite, socialactivity, socialprofile, solutioncomponentattributeconfiguration, solutioncomponentbatchconfiguration, solutioncomponentconfiguration, solutioncomponentrelationshipconfiguration, stagesolutionupload, supportusertable, synapsedatabase, synapselinkexternaltablestate, synapselinkprofile, synapselinkprofileentity, synapselinkprofileentitystate, synapselinkschedule, systemuser, task, tdsmetadata, team, transactioncurrency, userrating, workqueue, workqueueitem| +|Targets|account, activityfileattachment, adx_invitation, adx_inviteredemption, aicopilot, aipluginauth, aipluginoperationparameter, aipluginoperationresponsetemplate, aiplugintitle, aipluginusersetting, applicationuser, appointment, approvalprocess, approvalstageapproval, approvalstagecondition, approvalstageorder, archivecleanupinfo, archivecleanupoperation, bulkarchiveconfig, bulkarchivefailuredetail, bulkarchiveoperation, businessprocess, canvasappextendedmetadata, card, cascadegrantrevokeaccessrecordstracker, cascadegrantrevokeaccessversiontracker, catalogassignment, certificatecredential, channelaccessprofile, connectioninstance, connector, contact, conversationtranscript, credential, datalakefolder, datalakefolderpermission, datalakeworkspace, datalakeworkspacepermission, dataprocessingconfiguration, deleteditemreference, desktopflowmodule, email, emailserverprofile, enablearchivalrequest, entityrecordfilter, environmentvariabledefinition, environmentvariablevalue, exportedexcel, exportsolutionupload, fax, featurecontrolsetting, federatedknowledgecitation, federatedknowledgemetadatarefresh, feedback, flowcredentialapplication, flowevent, flowmachinegroup, flowmachineimage, flowmachineimageversion, flowmachinenetwork, fxexpression, goal, goalrollupquery, governanceconfiguration, kbarticle, keyvaultreference, knowledgearticle, knowledgebaserecord, letter, managedidentity, maskingrule, msdyn_aibdataset, msdyn_aibdatasetfile, msdyn_aibdatasetrecord, msdyn_aibdatasetscontainer, msdyn_aibfeedbackloop, msdyn_aibfile, msdyn_aibfileattacheddata, msdyn_aievent, msdyn_aimodelcatalog, msdyn_aiodimage, msdyn_aiodlabel, msdyn_aiodtrainingboundingbox, msdyn_aiodtrainingimage, msdyn_aitestrunbatch, msdyn_analysiscomponent, msdyn_analysisjob, msdyn_analysisoverride, msdyn_analysisresult, msdyn_analysisresultdetail, msdyn_appinsightsmetadata, msdyn_copilotinteractions, msdyn_customcontrolextendedsettings, msdyn_dataflow, msdyn_dataflowconnectionreference, msdyn_dataflowrefreshhistory, msdyn_dataflow_datalakefolder, msdyn_dmsrequest, msdyn_dmsrequeststatus, msdyn_entitylinkchatconfiguration, msdyn_entityrefreshhistory, msdyn_favoriteknowledgearticle, msdyn_federatedarticle, msdyn_federatedarticleincident, msdyn_fileupload, msdyn_flow_actionapprovalmodel, msdyn_flow_approval, msdyn_flow_approvalrequest, msdyn_flow_approvalresponse, msdyn_flow_approvalstep, msdyn_flow_awaitallactionapprovalmodel, msdyn_flow_awaitallapprovalmodel, msdyn_flow_basicapprovalmodel, msdyn_flow_flowapproval, msdyn_formmapping, msdyn_function, msdyn_integratedsearchprovider, msdyn_kalanguagesetting, msdyn_kbattachment, msdyn_kmfederatedsearchconfig, msdyn_knowledgearticleimage, msdyn_knowledgearticletemplate, msdyn_knowledgeconfiguration, msdyn_knowledgeinteractioninsight, msdyn_knowledgemanagementsetting, msdyn_knowledgepersonalfilter, msdyn_knowledgesearchfilter, msdyn_knowledgesearchinsight, msdyn_mobileapp, msdyn_modulerundetail, msdyn_pmanalysishistory, msdyn_pmbusinessruleautomationconfig, msdyn_pmcalendar, msdyn_pmcalendarversion, msdyn_pminferredtask, msdyn_pmprocessextendedmetadataversion, msdyn_pmprocesstemplate, msdyn_pmprocessusersettings, msdyn_pmprocessversion, msdyn_pmrecording, msdyn_pmsimulation, msdyn_pmtemplate, msdyn_pmview, msdyn_qna, msdyn_schedule, msdyn_serviceconfiguration, msdyn_slakpi, msdyn_solutionhealthrule, msdyn_solutionhealthruleargument, msdyn_solutionhealthruleset, msdyn_virtualtablecolumncandidate, mspcat_catalogsubmissionfiles, mspcat_packagestore, organizationdatasyncfnostate, organizationdatasyncstate, organizationdatasyncsubscription, organizationdatasyncsubscriptionentity, organizationdatasyncsubscriptionfnotable, package, packagehistory, phonecall, powerbidataset, powerbidatasetapdx, powerbimashupparameter, powerbireport, powerbireportapdx, powerfxrule, powerpagesmanagedidentity, powerpagesscanreport, privilegesremovalsetting, publisher, queue, reconciliationinfo, recordfilter, recurringappointmentmaster, reportparameter, retaineddataexcel, retentioncleanupinfo, retentioncleanupoperation, retentionconfig, retentionfailuredetail, retentionoperation, retentionsuccessdetail, revokeinheritedaccessrecordstracker, roleeditorlayout, savingrule, searchattributesettings, searchcustomanalyzer, searchrelationshipsettings, serviceplan, serviceplancustomcontrol, serviceplanmapping, sharedlinksetting, sharepointdocumentlocation, sharepointsite, socialactivity, socialprofile, solutioncomponentattributeconfiguration, solutioncomponentbatchconfiguration, solutioncomponentconfiguration, solutioncomponentrelationshipconfiguration, stagesolutionupload, supportusertable, synapsedatabase, synapselinkexternaltablestate, synapselinkprofile, synapselinkprofileentity, synapselinkprofileentitystate, synapselinkschedule, systemuser, task, tdsmetadata, team, transactioncurrency, unstructuredfilesearchentity, unstructuredfilesearchrecord, userrating, workflowmetadata, workqueue, workqueueitem| ### DuplicateRecordIdTypeCode @@ -244,7 +244,17 @@ These relationships are many-to-one. Listed by **SchemaName**. - [applicationuser_DuplicateMatchingRecord](#BKMK_applicationuser_DuplicateMatchingRecord) - [Appointment_DuplicateBaseRecord](#BKMK_Appointment_DuplicateBaseRecord) - [Appointment_DuplicateMatchingRecord](#BKMK_Appointment_DuplicateMatchingRecord) +- [approvalprocess_DuplicateBaseRecord](#BKMK_approvalprocess_DuplicateBaseRecord) +- [approvalprocess_DuplicateMatchingRecord](#BKMK_approvalprocess_DuplicateMatchingRecord) +- [approvalstageapproval_DuplicateBaseRecord](#BKMK_approvalstageapproval_DuplicateBaseRecord) +- [approvalstageapproval_DuplicateMatchingRecord](#BKMK_approvalstageapproval_DuplicateMatchingRecord) +- [approvalstagecondition_DuplicateBaseRecord](#BKMK_approvalstagecondition_DuplicateBaseRecord) +- [approvalstagecondition_DuplicateMatchingRecord](#BKMK_approvalstagecondition_DuplicateMatchingRecord) +- [approvalstageorder_DuplicateBaseRecord](#BKMK_approvalstageorder_DuplicateBaseRecord) +- [approvalstageorder_DuplicateMatchingRecord](#BKMK_approvalstageorder_DuplicateMatchingRecord) - [AsyncOperation_DuplicateBaseRecord](#BKMK_AsyncOperation_DuplicateBaseRecord) +- [businessprocess_DuplicateBaseRecord](#BKMK_businessprocess_DuplicateBaseRecord) +- [businessprocess_DuplicateMatchingRecord](#BKMK_businessprocess_DuplicateMatchingRecord) - [card_DuplicateBaseRecord](#BKMK_card_DuplicateBaseRecord) - [card_DuplicateMatchingRecord](#BKMK_card_DuplicateMatchingRecord) - [catalogassignment_DuplicateBaseRecord](#BKMK_catalogassignment_DuplicateBaseRecord) @@ -352,6 +362,8 @@ These relationships are many-to-one. Listed by **SchemaName**. - [msdyn_aiodtrainingboundingbox_DuplicateMatchingRecord](#BKMK_msdyn_aiodtrainingboundingbox_DuplicateMatchingRecord) - [msdyn_aiodtrainingimage_DuplicateBaseRecord](#BKMK_msdyn_aiodtrainingimage_DuplicateBaseRecord) - [msdyn_aiodtrainingimage_DuplicateMatchingRecord](#BKMK_msdyn_aiodtrainingimage_DuplicateMatchingRecord) +- [msdyn_aitestrunbatch_DuplicateBaseRecord](#BKMK_msdyn_aitestrunbatch_DuplicateBaseRecord) +- [msdyn_aitestrunbatch_DuplicateMatchingRecord](#BKMK_msdyn_aitestrunbatch_DuplicateMatchingRecord) - [msdyn_analysiscomponent_DuplicateBaseRecord](#BKMK_msdyn_analysiscomponent_DuplicateBaseRecord) - [msdyn_analysiscomponent_DuplicateMatchingRecord](#BKMK_msdyn_analysiscomponent_DuplicateMatchingRecord) - [msdyn_analysisjob_DuplicateBaseRecord](#BKMK_msdyn_analysisjob_DuplicateBaseRecord) @@ -544,6 +556,8 @@ These relationships are many-to-one. Listed by **SchemaName**. - [retentionsuccessdetail_DuplicateMatchingRecord](#BKMK_retentionsuccessdetail_DuplicateMatchingRecord) - [roleeditorlayout_DuplicateBaseRecord](#BKMK_roleeditorlayout_DuplicateBaseRecord) - [roleeditorlayout_DuplicateMatchingRecord](#BKMK_roleeditorlayout_DuplicateMatchingRecord) +- [savingrule_DuplicateBaseRecord](#BKMK_savingrule_DuplicateBaseRecord) +- [savingrule_DuplicateMatchingRecord](#BKMK_savingrule_DuplicateMatchingRecord) - [searchattributesettings_DuplicateBaseRecord](#BKMK_searchattributesettings_DuplicateBaseRecord) - [searchattributesettings_DuplicateMatchingRecord](#BKMK_searchattributesettings_DuplicateMatchingRecord) - [searchcustomanalyzer_DuplicateBaseRecord](#BKMK_searchcustomanalyzer_DuplicateBaseRecord) @@ -596,8 +610,14 @@ These relationships are many-to-one. Listed by **SchemaName**. - [Team_DuplicateMatchingRecord](#BKMK_Team_DuplicateMatchingRecord) - [TransactionCurrency_DuplicateBaseRecord](#BKMK_TransactionCurrency_DuplicateBaseRecord) - [TransactionCurrency_DuplicateMatchingRecord](#BKMK_TransactionCurrency_DuplicateMatchingRecord) +- [unstructuredfilesearchentity_DuplicateBaseRecord](#BKMK_unstructuredfilesearchentity_DuplicateBaseRecord) +- [unstructuredfilesearchentity_DuplicateMatchingRecord](#BKMK_unstructuredfilesearchentity_DuplicateMatchingRecord) +- [unstructuredfilesearchrecord_DuplicateBaseRecord](#BKMK_unstructuredfilesearchrecord_DuplicateBaseRecord) +- [unstructuredfilesearchrecord_DuplicateMatchingRecord](#BKMK_unstructuredfilesearchrecord_DuplicateMatchingRecord) - [userrating_DuplicateBaseRecord](#BKMK_userrating_DuplicateBaseRecord) - [userrating_DuplicateMatchingRecord](#BKMK_userrating_DuplicateMatchingRecord) +- [workflowmetadata_DuplicateBaseRecord](#BKMK_workflowmetadata_DuplicateBaseRecord) +- [workflowmetadata_DuplicateMatchingRecord](#BKMK_workflowmetadata_DuplicateMatchingRecord) - [workqueue_DuplicateBaseRecord](#BKMK_workqueue_DuplicateBaseRecord) - [workqueue_DuplicateMatchingRecord](#BKMK_workqueue_DuplicateMatchingRecord) - [workqueueitem_DuplicateBaseRecord](#BKMK_workqueueitem_DuplicateBaseRecord) @@ -915,6 +935,110 @@ One-To-Many Relationship: [appointment Appointment_DuplicateMatchingRecord](appo |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### approvalprocess_DuplicateBaseRecord + +One-To-Many Relationship: [approvalprocess approvalprocess_DuplicateBaseRecord](approvalprocess.md#BKMK_approvalprocess_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalprocess`| +|ReferencedAttribute|`approvalprocessid`| +|ReferencingAttribute|`baserecordid`| +|ReferencingEntityNavigationPropertyName|`baserecordid_approvalprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalprocess_DuplicateMatchingRecord + +One-To-Many Relationship: [approvalprocess approvalprocess_DuplicateMatchingRecord](approvalprocess.md#BKMK_approvalprocess_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalprocess`| +|ReferencedAttribute|`approvalprocessid`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencingEntityNavigationPropertyName|`duplicaterecordid_approvalprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstageapproval_DuplicateBaseRecord + +One-To-Many Relationship: [approvalstageapproval approvalstageapproval_DuplicateBaseRecord](approvalstageapproval.md#BKMK_approvalstageapproval_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageapproval`| +|ReferencedAttribute|`approvalstageapprovalid`| +|ReferencingAttribute|`baserecordid`| +|ReferencingEntityNavigationPropertyName|`baserecordid_approvalstageapproval`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstageapproval_DuplicateMatchingRecord + +One-To-Many Relationship: [approvalstageapproval approvalstageapproval_DuplicateMatchingRecord](approvalstageapproval.md#BKMK_approvalstageapproval_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageapproval`| +|ReferencedAttribute|`approvalstageapprovalid`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencingEntityNavigationPropertyName|`duplicaterecordid_approvalstageapproval`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstagecondition_DuplicateBaseRecord + +One-To-Many Relationship: [approvalstagecondition approvalstagecondition_DuplicateBaseRecord](approvalstagecondition.md#BKMK_approvalstagecondition_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstagecondition`| +|ReferencedAttribute|`approvalstageconditionid`| +|ReferencingAttribute|`baserecordid`| +|ReferencingEntityNavigationPropertyName|`baserecordid_approvalstagecondition`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstagecondition_DuplicateMatchingRecord + +One-To-Many Relationship: [approvalstagecondition approvalstagecondition_DuplicateMatchingRecord](approvalstagecondition.md#BKMK_approvalstagecondition_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstagecondition`| +|ReferencedAttribute|`approvalstageconditionid`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencingEntityNavigationPropertyName|`duplicaterecordid_approvalstagecondition`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstageorder_DuplicateBaseRecord + +One-To-Many Relationship: [approvalstageorder approvalstageorder_DuplicateBaseRecord](approvalstageorder.md#BKMK_approvalstageorder_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageorder`| +|ReferencedAttribute|`approvalstageorderid`| +|ReferencingAttribute|`baserecordid`| +|ReferencingEntityNavigationPropertyName|`baserecordid_approvalstageorder`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstageorder_DuplicateMatchingRecord + +One-To-Many Relationship: [approvalstageorder approvalstageorder_DuplicateMatchingRecord](approvalstageorder.md#BKMK_approvalstageorder_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageorder`| +|ReferencedAttribute|`approvalstageorderid`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencingEntityNavigationPropertyName|`duplicaterecordid_approvalstageorder`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### AsyncOperation_DuplicateBaseRecord One-To-Many Relationship: [asyncoperation AsyncOperation_DuplicateBaseRecord](asyncoperation.md#BKMK_AsyncOperation_DuplicateBaseRecord) @@ -928,6 +1052,32 @@ One-To-Many Relationship: [asyncoperation AsyncOperation_DuplicateBaseRecord](as |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### businessprocess_DuplicateBaseRecord + +One-To-Many Relationship: [businessprocess businessprocess_DuplicateBaseRecord](businessprocess.md#BKMK_businessprocess_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessprocess`| +|ReferencedAttribute|`businessprocessid`| +|ReferencingAttribute|`baserecordid`| +|ReferencingEntityNavigationPropertyName|`baserecordid_businessprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### businessprocess_DuplicateMatchingRecord + +One-To-Many Relationship: [businessprocess businessprocess_DuplicateMatchingRecord](businessprocess.md#BKMK_businessprocess_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessprocess`| +|ReferencedAttribute|`businessprocessid`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencingEntityNavigationPropertyName|`duplicaterecordid_businessprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### card_DuplicateBaseRecord One-To-Many Relationship: [card card_DuplicateBaseRecord](card.md#BKMK_card_DuplicateBaseRecord) @@ -2319,6 +2469,32 @@ One-To-Many Relationship: [msdyn_aiodtrainingimage msdyn_aiodtrainingimage_Dupli |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### msdyn_aitestrunbatch_DuplicateBaseRecord + +One-To-Many Relationship: [msdyn_aitestrunbatch msdyn_aitestrunbatch_DuplicateBaseRecord](msdyn_aitestrunbatch.md#BKMK_msdyn_aitestrunbatch_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestrunbatch`| +|ReferencedAttribute|`msdyn_aitestrunbatchid`| +|ReferencingAttribute|`baserecordid`| +|ReferencingEntityNavigationPropertyName|`baserecordid_msdyn_aitestrunbatch`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestrunbatch_DuplicateMatchingRecord + +One-To-Many Relationship: [msdyn_aitestrunbatch msdyn_aitestrunbatch_DuplicateMatchingRecord](msdyn_aitestrunbatch.md#BKMK_msdyn_aitestrunbatch_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestrunbatch`| +|ReferencedAttribute|`msdyn_aitestrunbatchid`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencingEntityNavigationPropertyName|`duplicaterecordid_msdyn_aitestrunbatch`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### msdyn_analysiscomponent_DuplicateBaseRecord One-To-Many Relationship: [msdyn_analysiscomponent msdyn_analysiscomponent_DuplicateBaseRecord](msdyn_analysiscomponent.md#BKMK_msdyn_analysiscomponent_DuplicateBaseRecord) @@ -4815,6 +4991,32 @@ One-To-Many Relationship: [roleeditorlayout roleeditorlayout_DuplicateMatchingRe |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### savingrule_DuplicateBaseRecord + +One-To-Many Relationship: [savingrule savingrule_DuplicateBaseRecord](savingrule.md#BKMK_savingrule_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`savingrule`| +|ReferencedAttribute|`savingruleid`| +|ReferencingAttribute|`baserecordid`| +|ReferencingEntityNavigationPropertyName|`baserecordid_savingrule`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### savingrule_DuplicateMatchingRecord + +One-To-Many Relationship: [savingrule savingrule_DuplicateMatchingRecord](savingrule.md#BKMK_savingrule_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`savingrule`| +|ReferencedAttribute|`savingruleid`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencingEntityNavigationPropertyName|`duplicaterecordid_savingrule`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### searchattributesettings_DuplicateBaseRecord One-To-Many Relationship: [searchattributesettings searchattributesettings_DuplicateBaseRecord](searchattributesettings.md#BKMK_searchattributesettings_DuplicateBaseRecord) @@ -5491,6 +5693,58 @@ One-To-Many Relationship: [transactioncurrency TransactionCurrency_DuplicateMatc |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### unstructuredfilesearchentity_DuplicateBaseRecord + +One-To-Many Relationship: [unstructuredfilesearchentity unstructuredfilesearchentity_DuplicateBaseRecord](unstructuredfilesearchentity.md#BKMK_unstructuredfilesearchentity_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`unstructuredfilesearchentity`| +|ReferencedAttribute|`unstructuredfilesearchentityid`| +|ReferencingAttribute|`baserecordid`| +|ReferencingEntityNavigationPropertyName|`baserecordid_unstructuredfilesearchentity`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### unstructuredfilesearchentity_DuplicateMatchingRecord + +One-To-Many Relationship: [unstructuredfilesearchentity unstructuredfilesearchentity_DuplicateMatchingRecord](unstructuredfilesearchentity.md#BKMK_unstructuredfilesearchentity_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`unstructuredfilesearchentity`| +|ReferencedAttribute|`unstructuredfilesearchentityid`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencingEntityNavigationPropertyName|`duplicaterecordid_unstructuredfilesearchentity`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### unstructuredfilesearchrecord_DuplicateBaseRecord + +One-To-Many Relationship: [unstructuredfilesearchrecord unstructuredfilesearchrecord_DuplicateBaseRecord](unstructuredfilesearchrecord.md#BKMK_unstructuredfilesearchrecord_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`unstructuredfilesearchrecord`| +|ReferencedAttribute|`unstructuredfilesearchrecordid`| +|ReferencingAttribute|`baserecordid`| +|ReferencingEntityNavigationPropertyName|`baserecordid_unstructuredfilesearchrecord`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### unstructuredfilesearchrecord_DuplicateMatchingRecord + +One-To-Many Relationship: [unstructuredfilesearchrecord unstructuredfilesearchrecord_DuplicateMatchingRecord](unstructuredfilesearchrecord.md#BKMK_unstructuredfilesearchrecord_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`unstructuredfilesearchrecord`| +|ReferencedAttribute|`unstructuredfilesearchrecordid`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencingEntityNavigationPropertyName|`duplicaterecordid_unstructuredfilesearchrecord`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### userrating_DuplicateBaseRecord One-To-Many Relationship: [userrating userrating_DuplicateBaseRecord](userrating.md#BKMK_userrating_DuplicateBaseRecord) @@ -5517,6 +5771,32 @@ One-To-Many Relationship: [userrating userrating_DuplicateMatchingRecord](userra |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### workflowmetadata_DuplicateBaseRecord + +One-To-Many Relationship: [workflowmetadata workflowmetadata_DuplicateBaseRecord](workflowmetadata.md#BKMK_workflowmetadata_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`workflowmetadata`| +|ReferencedAttribute|`workflowmetadataid`| +|ReferencingAttribute|`baserecordid`| +|ReferencingEntityNavigationPropertyName|`baserecordid_workflowmetadata`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### workflowmetadata_DuplicateMatchingRecord + +One-To-Many Relationship: [workflowmetadata workflowmetadata_DuplicateMatchingRecord](workflowmetadata.md#BKMK_workflowmetadata_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`workflowmetadata`| +|ReferencedAttribute|`workflowmetadataid`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencingEntityNavigationPropertyName|`duplicaterecordid_workflowmetadata`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### workqueue_DuplicateBaseRecord One-To-Many Relationship: [workqueue workqueue_DuplicateBaseRecord](workqueue.md#BKMK_workqueue_DuplicateBaseRecord) diff --git a/powerapps-docs/developer/data-platform/reference/entities/duplicaterule.md b/powerapps-docs/developer/data-platform/reference/entities/duplicaterule.md index 0606f8b31d..442cb21bcb 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/duplicaterule.md +++ b/powerapps-docs/developer/data-platform/reference/entities/duplicaterule.md @@ -571,6 +571,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |4812|**Time Zone Localized Name**| |5000|**Recently Used**| |5004|**NL2SQ Registration Information**| +|5006|**Event Expander Breadcrumb**| |7000|**System Application Metadata**| |7001|**User Application Metadata**| |7100|**Solution**| @@ -776,268 +777,300 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |10083|**ApplicationUser**| |10086|**OData v4 Data Source**| |10087|**Workflow Binary**| -|10088|**Credential**| -|10089|**Desktop Flow Module**| -|10090|**Flow Capacity Assignment**| -|10091|**Flow Credential Application**| -|10092|**Flow Event**| -|10093|**Flow Machine**| -|10094|**Flow Machine Group**| -|10095|**Flow Machine Image**| -|10096|**Flow Machine Image Version**| -|10097|**Flow Machine Network**| -|10098|**ProcessStageParameter**| -|10099|**Work Queue**| -|10100|**Work Queue Item**| -|10101|**Desktop Flow Binary**| -|10102|**Flow Log**| -|10103|**Flow Run**| -|10104|**Action Approval Model**| -|10105|**Approval**| -|10106|**Approval Request**| -|10107|**Approval Response**| -|10108|**Approval Step**| -|10109|**Await All Action Approval Model**| -|10110|**Await All Approval Model**| -|10111|**Basic Approval Model Data**| -|10112|**Flow Approval**| -|10121|**Connection Reference**| -|10122|**DVFileSearch**| -|10123|**DVFileSearchAttribute**| -|10124|**DVFileSearchEntity**| -|10125|**DVTableSearch**| -|10126|**DVTableSearchAttribute**| -|10127|**DVTableSearchEntity**| -|10128|**AICopilot**| -|10129|**AIPluginAuth**| -|10130|**AI Plugin Conversation Starter**| -|10131|**AI Plugin Conversation Starter Mapping**| -|10132|**AI Plugin Governance**| -|10133|**AI Plugin Governance Extended**| -|10134|**AIPluginOperationResponseTemplate**| -|10135|**AIPluginTitle**| -|10136|**SideloadedAIPlugin**| -|10137|**AIPlugin**| -|10138|**AIPluginExternalSchema**| -|10139|**AIPluginExternalSchemaProperty**| -|10140|**AIPluginInstance**| -|10141|**AIPluginOperation**| -|10142|**AIPluginOperationParameter**| -|10143|**AIPluginUserSetting**| -|10145|**AI Event**| -|10146|**AI Builder Feedback Loop**| -|10147|**AI Form Processing Document**| -|10148|**AI Object Detection Image**| -|10149|**AI Object Detection Label**| -|10150|**AI Object Detection Bounding Box**| -|10151|**AI Object Detection Image Mapping**| -|10153|**AI Builder Dataset**| -|10154|**AI Builder Dataset File**| -|10155|**AI Builder Dataset Record**| -|10156|**AI Builder Datasets Container**| -|10157|**AI Builder File**| -|10158|**AI Builder File Attached Data**| -|10159|**Help Page**| -|10160|**Tour**| -|10161|**BotContent**| -|10162|**ConversationTranscript**| -|10163|**Copilot**| -|10164|**Copilot component**| -|10165|**Copilot component collection**| -|10176|**Comment**| -|10177|**Governance Configuration**| -|10178|**Fabric AISkill**| -|10179|**App Insights Metadata**| -|10180|**Dataflow Connection Reference**| -|10181|**Schedule**| -|10182|**Dataflow Template**| -|10183|**Dataflow DatalakeFolder**| -|10184|**Data Movement Service Request**| -|10185|**Data Movement Service Request Status**| -|10186|**DMS Sync Request**| -|10187|**DMS Sync Status**| -|10188|**Knowledge Asset Configuration**| -|10189|**Module Run Detail**| -|10190|**QnA**| -|10191|**Salesforce Structured Object**| -|10192|**Salesforce Structured QnA Config**| -|10193|**Workflow Action Status**| -|10194|**FederatedKnowledgeConfiguration**| -|10195|**FederatedKnowledgeEntityConfiguration**| -|10196|**Form Mapping**| -|10197|**Copilot Interactions**| -|10198|**PDF Setting**| -|10199|**Activity File Attachment**| -|10200|**Teams chat**| -|10201|**Service Configuration**| -|10202|**SLA KPI**| -|10203|**Integrated search provider**| -|10204|**Knowledge Management Setting**| -|10205|**Knowledge Federated Article**| -|10206|**Knowledge Federated Article Incident**| -|10207|**Search provider**| -|10208|**Knowledge Article Image**| -|10209|**Knowledge Configuration**| -|10210|**Knowledge Interaction Insight**| -|10211|**Knowledge Search Insight**| -|10212|**Favorite knowledge article**| -|10213|**Knowledge article language setting**| -|10214|**Knowledge Article Attachment**| -|10215|**Knowledge personalization**| -|10216|**Knowledge Article Template**| -|10217|**Knowledge search personal filter config**| -|10218|**Knowledge search filter**| -|10220|**SupportUserTable**| -|10221|**FxExpression**| -|10222|**Function**| -|10223|**Plug-in**| -|10224|**PowerfxRule**| -|10225|**Planner Business Scenario**| -|10226|**Planner Sync Action**| -|10227|**Ms Graph Resource To Subscription**| -|10228|**Virtual Entity Metadata**| -|10229|**Background Operation**| -|10230|**Report Parameter**| -|10231|**MobileOfflineProfileExtension**| -|10232|**MobileOfflineProfileItemFilter**| -|10233|**TeamMobileOfflineProfileMembership**| -|10234|**UserMobileOfflineProfileMembership**| -|10235|**OrganizationDataSyncSubscription**| -|10236|**OrganizationDataSyncSubscriptionEntity**| -|10237|**OrganizationDataSyncSubscriptionFnoTable**| -|10238|**OrganizationDataSyncFnoState**| -|10239|**OrganizationDataSyncState**| -|10240|**ArchiveCleanupInfo**| -|10241|**ArchiveCleanupOperation**| -|10242|**BulkArchiveConfig**| -|10243|**BulkArchiveFailureDetail**| -|10244|**BulkArchiveOperation**| -|10245|**BulkArchiveOperationDetail**| -|10246|**EnableArchivalRequest**| -|10247|**MetadataForArchival**| -|10248|**ReconciliationEntityInfo**| -|10249|**ReconciliationEntityStepInfo**| -|10250|**ReconciliationInfo**| -|10251|**RetentionCleanupInfo**| -|10252|**RetentionCleanupOperation**| -|10253|**RetentionConfig**| -|10254|**RetentionFailureDetail**| -|10255|**RetentionOperation**| -|10256|**RetentionOperationDetail**| -|10257|**RetentionSuccessDetail**| -|10258|**CertificateCredential**| -|10259|**Notification**| -|10260|**User Rating**| -|10261|**Mobile App**| -|10262|**Insights Store Data Source**| -|10263|**Insights Store Virtual Entity**| -|10264|**RoleEditorLayout**| -|10265|**Deleted Record Reference**| -|10266|**Restore Deleted Records Configuration**| -|10267|**App Action**| -|10268|**App Action Migration**| -|10269|**App Action Rule**| -|10272|**Card**| -|10273|**Card State Item**| -|10276|**Entity link chat configuration**| -|10277|**SharePoint Managed Identity**| -|10278|**AI Insight Card**| -|10279|**AI Skill Config**| -|10280|**Rich Text Attachment**| -|10281|**Custom Control Extended Setting**| -|10282|**Timeline Pin**| -|10283|**Virtual Connector Data Source**| -|10284|**Virtual Table Column Candidate**| -|10286|**PM Analysis History**| -|10287|**PM Business Rule Automation Config**| -|10288|**PM Calendar**| -|10289|**PM Calendar Version**| -|10290|**PM Inferred Task**| -|10291|**PM Process Extended Metadata Version**| -|10292|**PM Process Template**| -|10293|**PM Process User Settings**| -|10294|**PM Process Version**| -|10295|**PM Recording**| -|10296|**PM Simulation**| -|10297|**PM Template**| -|10298|**PM View**| -|10299|**Analysis Component**| -|10300|**Analysis Job**| -|10301|**Analysis Override**| -|10302|**Analysis Result**| -|10303|**Analysis Result Detail**| -|10304|**Solution Health Rule**| -|10305|**Solution Health Rule Argument**| -|10306|**Solution Health Rule Set**| -|10307|**Power BI Dataset**| -|10308|**powerbidatasetapdx**| -|10309|**Power BI Mashup Parameter**| -|10310|**Power BI Report**| -|10311|**powerbireportapdx**| -|10312|**File Upload**| -|10313|**MainFewShot**| -|10314|**MakerFewShot**| -|10315|**SearchAttributeSettings**| -|10316|**SearchCustomAnalyzer**| -|10317|**SearchRelationshipSettings**| -|10318|**SearchResultsCache**| -|10319|**Search Telemetry**| -|10320|**ViewAsExampleQuestion**| -|10321|**CopilotExampleQuestion**| -|10322|**CopilotGlossaryTerm**| -|10323|**CopilotSynonyms**| -|10324|**Site Component**| -|10325|**Site**| -|10326|**Site Language**| -|10327|**Power Pages Site Published**| -|10330|**External Identity**| -|10331|**Invitation**| -|10332|**Invite Redemption**| -|10333|**Portal Comment**| -|10334|**Setting**| -|10335|**Multistep Form Session**| -|10339|**Ad Placement**| -|10340|**Column Permission**| -|10341|**Column Permission Profile**| -|10342|**Content Snippet**| -|10343|**Basic Form**| -|10344|**Basic Form Metadata**| -|10345|**List**| -|10346|**Table Permission**| -|10347|**Page Template**| -|10348|**Poll Placement**| -|10349|**Power Pages Core Entity DS**| -|10350|**Publishing State**| -|10351|**Publishing State Transition Rule**| -|10352|**Redirect**| -|10353|**Shortcut**| -|10354|**Site Marker**| -|10355|**Site Setting**| -|10356|**Web File**| -|10357|**Multistep Form**| -|10358|**Multistep Form Metadata**| -|10359|**Form Step**| -|10360|**Web Link**| -|10361|**Web Link Set**| -|10362|**Web Page**| -|10363|**Web Page Access Control Rule**| -|10364|**Web Role**| -|10365|**Website**| -|10366|**Website Access**| -|10367|**Website Language**| -|10368|**Web Template**| -|10375|**Power Pages Scan Report**| -|10376|**Power Pages Log**| -|10377|**PowerPagesManagedIdentity**| -|10378|**Power Pages Site AI Feedback**| -|10383|**Catalog Submission Files**| -|10384|**Package Submission Store**| -|10385|**Processor Registration**| -|10386|**signal**| -|10387|**Signal Registration**| -|10388|**trait**| -|10389|**Trait Registration**| -|18085|**Event Expander Breadcrumb**| +|10088|**Business Process**| +|10089|**Credential**| +|10090|**Desktop Flow Module**| +|10091|**Flow Capacity Assignment**| +|10092|**Flow Credential Application**| +|10093|**Flow Event**| +|10094|**Flow Machine**| +|10095|**Flow Machine Group**| +|10096|**Flow Machine Image**| +|10097|**Flow Machine Image Version**| +|10098|**Flow Machine Network**| +|10099|**ProcessStageParameter**| +|10100|**Saving Rule**| +|10101|**Tag**| +|10102|**Tagged Flow Session**| +|10103|**Tagged Process**| +|10104|**Workflow Metadata**| +|10105|**Work Queue**| +|10106|**Work Queue Item**| +|10107|**Desktop Flow Binary**| +|10108|**Flow Aggregation**| +|10109|**Flow Log**| +|10110|**Flow Run**| +|10111|**Action Approval Model**| +|10112|**Approval**| +|10113|**Approval Request**| +|10114|**Approval Response**| +|10115|**Approval Step**| +|10116|**Await All Action Approval Model**| +|10117|**Await All Approval Model**| +|10118|**Basic Approval Model Data**| +|10119|**Flow Approval**| +|10128|**Connection Reference**| +|10129|**DVFileSearch**| +|10130|**DVFileSearchAttribute**| +|10131|**DVFileSearchEntity**| +|10132|**DVTableSearch**| +|10133|**DVTableSearchAttribute**| +|10134|**DVTableSearchEntity**| +|10135|**AICopilot**| +|10136|**AIPluginAuth**| +|10137|**AI Plugin Conversation Starter**| +|10138|**AI Plugin Conversation Starter Mapping**| +|10139|**AI Plugin Governance**| +|10140|**AI Plugin Governance Extended**| +|10141|**AIPluginOperationResponseTemplate**| +|10142|**AIPluginTitle**| +|10143|**SideloadedAIPlugin**| +|10144|**AIPlugin**| +|10145|**AIPluginExternalSchema**| +|10146|**AIPluginExternalSchemaProperty**| +|10147|**AIPluginInstance**| +|10148|**AIPluginOperation**| +|10149|**AIPluginOperationParameter**| +|10150|**AIPluginUserSetting**| +|10152|**Data Processing Event**| +|10153|**AI Event**| +|10154|**AI Model Catalog**| +|10155|**AI Builder Feedback Loop**| +|10156|**AI Form Processing Document**| +|10157|**AI Object Detection Image**| +|10158|**AI Object Detection Label**| +|10159|**AI Object Detection Bounding Box**| +|10160|**AI Object Detection Image Mapping**| +|10162|**AI Builder Dataset**| +|10163|**AI Builder Dataset File**| +|10164|**AI Builder Dataset Record**| +|10165|**AI Builder Datasets Container**| +|10166|**AI Builder File**| +|10167|**AI Builder File Attached Data**| +|10168|**Help Page**| +|10169|**Tour**| +|10170|**BotContent**| +|10171|**ConversationTranscript**| +|10172|**Copilot**| +|10173|**Copilot component**| +|10174|**Copilot component collection**| +|10185|**Comment**| +|10186|**Governance Configuration**| +|10187|**Fabric AISkill**| +|10188|**App Insights Metadata**| +|10189|**Dataflow Connection Reference**| +|10190|**Schedule**| +|10191|**Dataflow Template**| +|10192|**Dataflow DatalakeFolder**| +|10193|**Data Movement Service Request**| +|10194|**Data Movement Service Request Status**| +|10195|**DMS Sync Request**| +|10196|**DMS Sync Status**| +|10197|**Knowledge Asset Configuration**| +|10198|**Module Run Detail**| +|10199|**QnA**| +|10200|**Salesforce Structured Object**| +|10201|**Salesforce Structured QnA Config**| +|10202|**Workflow Action Status**| +|10203|**FederatedKnowledgeConfiguration**| +|10204|**FederatedKnowledgeEntityConfiguration**| +|10205|**Form Mapping**| +|10206|**Copilot Interactions**| +|10207|**PDF Setting**| +|10208|**Activity File Attachment**| +|10209|**Teams chat**| +|10210|**Service Configuration**| +|10211|**SLA KPI**| +|10212|**Integrated search provider**| +|10213|**Knowledge Management Setting**| +|10214|**Knowledge Federated Article**| +|10215|**Knowledge Federated Article Incident**| +|10216|**Search provider**| +|10217|**Knowledge Article Image**| +|10218|**Knowledge Configuration**| +|10219|**Knowledge Interaction Insight**| +|10220|**Knowledge Search Insight**| +|10221|**Favorite knowledge article**| +|10222|**Knowledge article language setting**| +|10223|**Knowledge Article Attachment**| +|10224|**Knowledge personalization**| +|10225|**Knowledge Article Template**| +|10226|**Knowledge search personal filter config**| +|10227|**Knowledge search filter**| +|10229|**Entity Cluster Configuration**| +|10230|**SupportUserTable**| +|10231|**FxExpression**| +|10232|**Function**| +|10233|**Plug-in**| +|10234|**PowerfxRule**| +|10235|**Planner Business Scenario**| +|10236|**Planner Sync Action**| +|10237|**Sensitivity Label**| +|10238|**Ms Graph Resource To Subscription**| +|10239|**Virtual Entity Metadata**| +|10240|**Background Operation**| +|10241|**Report Parameter**| +|10242|**MobileOfflineProfileExtension**| +|10243|**MobileOfflineProfileItemFilter**| +|10244|**TeamMobileOfflineProfileMembership**| +|10245|**UserMobileOfflineProfileMembership**| +|10246|**OrganizationDataSyncSubscription**| +|10247|**OrganizationDataSyncSubscriptionEntity**| +|10248|**OrganizationDataSyncSubscriptionFnoTable**| +|10249|**OrganizationDataSyncFnoState**| +|10250|**OrganizationDataSyncState**| +|10251|**ArchiveCleanupInfo**| +|10252|**ArchiveCleanupOperation**| +|10253|**BulkArchiveConfig**| +|10254|**BulkArchiveFailureDetail**| +|10255|**BulkArchiveOperation**| +|10256|**BulkArchiveOperationDetail**| +|10257|**EnableArchivalRequest**| +|10258|**MetadataForArchival**| +|10259|**ReconciliationEntityInfo**| +|10260|**ReconciliationEntityStepInfo**| +|10261|**ReconciliationInfo**| +|10262|**RetentionCleanupInfo**| +|10263|**RetentionCleanupOperation**| +|10264|**RetentionConfig**| +|10265|**RetentionFailureDetail**| +|10266|**RetentionOperation**| +|10267|**RetentionOperationDetail**| +|10268|**RetentionSuccessDetail**| +|10269|**CertificateCredential**| +|10270|**Notification**| +|10271|**User Rating**| +|10272|**Mobile App**| +|10273|**Insights Store Data Source**| +|10274|**Insights Store Virtual Entity**| +|10275|**RoleEditorLayout**| +|10276|**Deleted Record Reference**| +|10277|**Restore Deleted Records Configuration**| +|10278|**App Action**| +|10279|**App Action Migration**| +|10280|**App Action Rule**| +|10283|**Card**| +|10284|**Card State Item**| +|10287|**Entity link chat configuration**| +|10288|**SharePoint Managed Identity**| +|10289|**AI Insight Card**| +|10290|**AI Skill Config**| +|10291|**Data Workspace**| +|10292|**Plan**| +|10293|**Plan Artifact**| +|10294|**Plan Attachment**| +|10295|**Rich Text Attachment**| +|10296|**Custom Control Extended Setting**| +|10298|**Timeline Pin**| +|10299|**Virtual Connector Data Source**| +|10300|**Virtual Table Column Candidate**| +|10302|**PM Analysis History**| +|10303|**PM Business Rule Automation Config**| +|10304|**PM Calendar**| +|10305|**PM Calendar Version**| +|10306|**PM Inferred Task**| +|10307|**PM Process Extended Metadata Version**| +|10308|**PM Process Template**| +|10309|**PM Process User Settings**| +|10310|**PM Process Version**| +|10311|**PM Recording**| +|10312|**PM Simulation**| +|10313|**PM Template**| +|10314|**PM View**| +|10315|**Analysis Component**| +|10316|**Analysis Job**| +|10317|**Analysis Override**| +|10318|**Analysis Result**| +|10319|**Analysis Result Detail**| +|10320|**Solution Health Rule**| +|10321|**Solution Health Rule Argument**| +|10322|**Solution Health Rule Set**| +|10323|**Power BI Dataset**| +|10324|**powerbidatasetapdx**| +|10325|**Power BI Mashup Parameter**| +|10326|**Power BI Report**| +|10327|**powerbireportapdx**| +|10328|**File Upload**| +|10329|**MainFewShot**| +|10330|**MakerFewShot**| +|10331|**SearchAttributeSettings**| +|10332|**SearchCustomAnalyzer**| +|10333|**SearchRelationshipSettings**| +|10334|**SearchResultsCache**| +|10335|**Search Telemetry**| +|10336|**TextDataRecordsIndexingStatus**| +|10337|**ViewAsExampleQuestion**| +|10338|**CopilotExampleQuestion**| +|10339|**CopilotGlossaryTerm**| +|10340|**CopilotSynonyms**| +|10341|**Site Component**| +|10342|**Site**| +|10343|**Site Language**| +|10344|**Power Pages Site Published**| +|10347|**External Identity**| +|10348|**Invitation**| +|10349|**Invite Redemption**| +|10350|**Portal Comment**| +|10351|**Setting**| +|10352|**Multistep Form Session**| +|10356|**Ad Placement**| +|10357|**Column Permission**| +|10358|**Column Permission Profile**| +|10359|**Content Snippet**| +|10360|**Basic Form**| +|10361|**Basic Form Metadata**| +|10362|**List**| +|10363|**Table Permission**| +|10364|**Page Template**| +|10365|**Poll Placement**| +|10366|**Power Pages Core Entity DS**| +|10367|**Publishing State**| +|10368|**Publishing State Transition Rule**| +|10369|**Redirect**| +|10370|**Shortcut**| +|10371|**Site Marker**| +|10372|**Site Setting**| +|10373|**Web File**| +|10374|**Multistep Form**| +|10375|**Multistep Form Metadata**| +|10376|**Form Step**| +|10377|**Web Link**| +|10378|**Web Link Set**| +|10379|**Web Page**| +|10380|**Web Page Access Control Rule**| +|10381|**Web Role**| +|10382|**Website**| +|10383|**Website Access**| +|10384|**Website Language**| +|10385|**Web Template**| +|10392|**Power Pages Scan Report**| +|10393|**Power Pages Log**| +|10394|**PowerPagesManagedIdentity**| +|10395|**Power Pages Site AI Feedback**| +|10400|**Catalog Submission Files**| +|10401|**Package Submission Store**| +|10402|**processor registration**| +|10403|**signal**| +|10404|**signal registration**| +|10405|**trait**| +|10406|**trait registration**| +|10627|**FederatedKnowledgeCitation**| +|10628|**FederatedKnowledgeMetadataRefresh**| +|10629|**Email Address Configuration**| +|10630|**indexedtrait**| +|10645|**AI Evaluation Configuration**| +|10646|**AI Evaluation Run**| +|10647|**AI Test Case**| +|10648|**AI Test Case Document**| +|10649|**AI Test Case Input**| +|10650|**AI Test Run**| +|10651|**AI Test Run Batch**| +|10667|**Approval Process**| +|10668|**Approval Stage Approval**| +|10669|**Approval Stage Condition**| +|10670|**Approval Stage Order**| +|10671|**UnstructuredFileSearchEntity**| +|10672|**UnstructuredFileSearchRecord**| ### ComponentIdUnique @@ -1384,6 +1417,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |4812|**Time Zone Localized Name**| |5000|**Recently Used**| |5004|**NL2SQ Registration Information**| +|5006|**Event Expander Breadcrumb**| |7000|**System Application Metadata**| |7001|**User Application Metadata**| |7100|**Solution**| @@ -1589,268 +1623,300 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |10083|**ApplicationUser**| |10086|**OData v4 Data Source**| |10087|**Workflow Binary**| -|10088|**Credential**| -|10089|**Desktop Flow Module**| -|10090|**Flow Capacity Assignment**| -|10091|**Flow Credential Application**| -|10092|**Flow Event**| -|10093|**Flow Machine**| -|10094|**Flow Machine Group**| -|10095|**Flow Machine Image**| -|10096|**Flow Machine Image Version**| -|10097|**Flow Machine Network**| -|10098|**ProcessStageParameter**| -|10099|**Work Queue**| -|10100|**Work Queue Item**| -|10101|**Desktop Flow Binary**| -|10102|**Flow Log**| -|10103|**Flow Run**| -|10104|**Action Approval Model**| -|10105|**Approval**| -|10106|**Approval Request**| -|10107|**Approval Response**| -|10108|**Approval Step**| -|10109|**Await All Action Approval Model**| -|10110|**Await All Approval Model**| -|10111|**Basic Approval Model Data**| -|10112|**Flow Approval**| -|10121|**Connection Reference**| -|10122|**DVFileSearch**| -|10123|**DVFileSearchAttribute**| -|10124|**DVFileSearchEntity**| -|10125|**DVTableSearch**| -|10126|**DVTableSearchAttribute**| -|10127|**DVTableSearchEntity**| -|10128|**AICopilot**| -|10129|**AIPluginAuth**| -|10130|**AI Plugin Conversation Starter**| -|10131|**AI Plugin Conversation Starter Mapping**| -|10132|**AI Plugin Governance**| -|10133|**AI Plugin Governance Extended**| -|10134|**AIPluginOperationResponseTemplate**| -|10135|**AIPluginTitle**| -|10136|**SideloadedAIPlugin**| -|10137|**AIPlugin**| -|10138|**AIPluginExternalSchema**| -|10139|**AIPluginExternalSchemaProperty**| -|10140|**AIPluginInstance**| -|10141|**AIPluginOperation**| -|10142|**AIPluginOperationParameter**| -|10143|**AIPluginUserSetting**| -|10145|**AI Event**| -|10146|**AI Builder Feedback Loop**| -|10147|**AI Form Processing Document**| -|10148|**AI Object Detection Image**| -|10149|**AI Object Detection Label**| -|10150|**AI Object Detection Bounding Box**| -|10151|**AI Object Detection Image Mapping**| -|10153|**AI Builder Dataset**| -|10154|**AI Builder Dataset File**| -|10155|**AI Builder Dataset Record**| -|10156|**AI Builder Datasets Container**| -|10157|**AI Builder File**| -|10158|**AI Builder File Attached Data**| -|10159|**Help Page**| -|10160|**Tour**| -|10161|**BotContent**| -|10162|**ConversationTranscript**| -|10163|**Copilot**| -|10164|**Copilot component**| -|10165|**Copilot component collection**| -|10176|**Comment**| -|10177|**Governance Configuration**| -|10178|**Fabric AISkill**| -|10179|**App Insights Metadata**| -|10180|**Dataflow Connection Reference**| -|10181|**Schedule**| -|10182|**Dataflow Template**| -|10183|**Dataflow DatalakeFolder**| -|10184|**Data Movement Service Request**| -|10185|**Data Movement Service Request Status**| -|10186|**DMS Sync Request**| -|10187|**DMS Sync Status**| -|10188|**Knowledge Asset Configuration**| -|10189|**Module Run Detail**| -|10190|**QnA**| -|10191|**Salesforce Structured Object**| -|10192|**Salesforce Structured QnA Config**| -|10193|**Workflow Action Status**| -|10194|**FederatedKnowledgeConfiguration**| -|10195|**FederatedKnowledgeEntityConfiguration**| -|10196|**Form Mapping**| -|10197|**Copilot Interactions**| -|10198|**PDF Setting**| -|10199|**Activity File Attachment**| -|10200|**Teams chat**| -|10201|**Service Configuration**| -|10202|**SLA KPI**| -|10203|**Integrated search provider**| -|10204|**Knowledge Management Setting**| -|10205|**Knowledge Federated Article**| -|10206|**Knowledge Federated Article Incident**| -|10207|**Search provider**| -|10208|**Knowledge Article Image**| -|10209|**Knowledge Configuration**| -|10210|**Knowledge Interaction Insight**| -|10211|**Knowledge Search Insight**| -|10212|**Favorite knowledge article**| -|10213|**Knowledge article language setting**| -|10214|**Knowledge Article Attachment**| -|10215|**Knowledge personalization**| -|10216|**Knowledge Article Template**| -|10217|**Knowledge search personal filter config**| -|10218|**Knowledge search filter**| -|10220|**SupportUserTable**| -|10221|**FxExpression**| -|10222|**Function**| -|10223|**Plug-in**| -|10224|**PowerfxRule**| -|10225|**Planner Business Scenario**| -|10226|**Planner Sync Action**| -|10227|**Ms Graph Resource To Subscription**| -|10228|**Virtual Entity Metadata**| -|10229|**Background Operation**| -|10230|**Report Parameter**| -|10231|**MobileOfflineProfileExtension**| -|10232|**MobileOfflineProfileItemFilter**| -|10233|**TeamMobileOfflineProfileMembership**| -|10234|**UserMobileOfflineProfileMembership**| -|10235|**OrganizationDataSyncSubscription**| -|10236|**OrganizationDataSyncSubscriptionEntity**| -|10237|**OrganizationDataSyncSubscriptionFnoTable**| -|10238|**OrganizationDataSyncFnoState**| -|10239|**OrganizationDataSyncState**| -|10240|**ArchiveCleanupInfo**| -|10241|**ArchiveCleanupOperation**| -|10242|**BulkArchiveConfig**| -|10243|**BulkArchiveFailureDetail**| -|10244|**BulkArchiveOperation**| -|10245|**BulkArchiveOperationDetail**| -|10246|**EnableArchivalRequest**| -|10247|**MetadataForArchival**| -|10248|**ReconciliationEntityInfo**| -|10249|**ReconciliationEntityStepInfo**| -|10250|**ReconciliationInfo**| -|10251|**RetentionCleanupInfo**| -|10252|**RetentionCleanupOperation**| -|10253|**RetentionConfig**| -|10254|**RetentionFailureDetail**| -|10255|**RetentionOperation**| -|10256|**RetentionOperationDetail**| -|10257|**RetentionSuccessDetail**| -|10258|**CertificateCredential**| -|10259|**Notification**| -|10260|**User Rating**| -|10261|**Mobile App**| -|10262|**Insights Store Data Source**| -|10263|**Insights Store Virtual Entity**| -|10264|**RoleEditorLayout**| -|10265|**Deleted Record Reference**| -|10266|**Restore Deleted Records Configuration**| -|10267|**App Action**| -|10268|**App Action Migration**| -|10269|**App Action Rule**| -|10272|**Card**| -|10273|**Card State Item**| -|10276|**Entity link chat configuration**| -|10277|**SharePoint Managed Identity**| -|10278|**AI Insight Card**| -|10279|**AI Skill Config**| -|10280|**Rich Text Attachment**| -|10281|**Custom Control Extended Setting**| -|10282|**Timeline Pin**| -|10283|**Virtual Connector Data Source**| -|10284|**Virtual Table Column Candidate**| -|10286|**PM Analysis History**| -|10287|**PM Business Rule Automation Config**| -|10288|**PM Calendar**| -|10289|**PM Calendar Version**| -|10290|**PM Inferred Task**| -|10291|**PM Process Extended Metadata Version**| -|10292|**PM Process Template**| -|10293|**PM Process User Settings**| -|10294|**PM Process Version**| -|10295|**PM Recording**| -|10296|**PM Simulation**| -|10297|**PM Template**| -|10298|**PM View**| -|10299|**Analysis Component**| -|10300|**Analysis Job**| -|10301|**Analysis Override**| -|10302|**Analysis Result**| -|10303|**Analysis Result Detail**| -|10304|**Solution Health Rule**| -|10305|**Solution Health Rule Argument**| -|10306|**Solution Health Rule Set**| -|10307|**Power BI Dataset**| -|10308|**powerbidatasetapdx**| -|10309|**Power BI Mashup Parameter**| -|10310|**Power BI Report**| -|10311|**powerbireportapdx**| -|10312|**File Upload**| -|10313|**MainFewShot**| -|10314|**MakerFewShot**| -|10315|**SearchAttributeSettings**| -|10316|**SearchCustomAnalyzer**| -|10317|**SearchRelationshipSettings**| -|10318|**SearchResultsCache**| -|10319|**Search Telemetry**| -|10320|**ViewAsExampleQuestion**| -|10321|**CopilotExampleQuestion**| -|10322|**CopilotGlossaryTerm**| -|10323|**CopilotSynonyms**| -|10324|**Site Component**| -|10325|**Site**| -|10326|**Site Language**| -|10327|**Power Pages Site Published**| -|10330|**External Identity**| -|10331|**Invitation**| -|10332|**Invite Redemption**| -|10333|**Portal Comment**| -|10334|**Setting**| -|10335|**Multistep Form Session**| -|10339|**Ad Placement**| -|10340|**Column Permission**| -|10341|**Column Permission Profile**| -|10342|**Content Snippet**| -|10343|**Basic Form**| -|10344|**Basic Form Metadata**| -|10345|**List**| -|10346|**Table Permission**| -|10347|**Page Template**| -|10348|**Poll Placement**| -|10349|**Power Pages Core Entity DS**| -|10350|**Publishing State**| -|10351|**Publishing State Transition Rule**| -|10352|**Redirect**| -|10353|**Shortcut**| -|10354|**Site Marker**| -|10355|**Site Setting**| -|10356|**Web File**| -|10357|**Multistep Form**| -|10358|**Multistep Form Metadata**| -|10359|**Form Step**| -|10360|**Web Link**| -|10361|**Web Link Set**| -|10362|**Web Page**| -|10363|**Web Page Access Control Rule**| -|10364|**Web Role**| -|10365|**Website**| -|10366|**Website Access**| -|10367|**Website Language**| -|10368|**Web Template**| -|10375|**Power Pages Scan Report**| -|10376|**Power Pages Log**| -|10377|**PowerPagesManagedIdentity**| -|10378|**Power Pages Site AI Feedback**| -|10383|**Catalog Submission Files**| -|10384|**Package Submission Store**| -|10385|**Processor Registration**| -|10386|**signal**| -|10387|**Signal Registration**| -|10388|**trait**| -|10389|**Trait Registration**| -|18085|**Event Expander Breadcrumb**| +|10088|**Business Process**| +|10089|**Credential**| +|10090|**Desktop Flow Module**| +|10091|**Flow Capacity Assignment**| +|10092|**Flow Credential Application**| +|10093|**Flow Event**| +|10094|**Flow Machine**| +|10095|**Flow Machine Group**| +|10096|**Flow Machine Image**| +|10097|**Flow Machine Image Version**| +|10098|**Flow Machine Network**| +|10099|**ProcessStageParameter**| +|10100|**Saving Rule**| +|10101|**Tag**| +|10102|**Tagged Flow Session**| +|10103|**Tagged Process**| +|10104|**Workflow Metadata**| +|10105|**Work Queue**| +|10106|**Work Queue Item**| +|10107|**Desktop Flow Binary**| +|10108|**Flow Aggregation**| +|10109|**Flow Log**| +|10110|**Flow Run**| +|10111|**Action Approval Model**| +|10112|**Approval**| +|10113|**Approval Request**| +|10114|**Approval Response**| +|10115|**Approval Step**| +|10116|**Await All Action Approval Model**| +|10117|**Await All Approval Model**| +|10118|**Basic Approval Model Data**| +|10119|**Flow Approval**| +|10128|**Connection Reference**| +|10129|**DVFileSearch**| +|10130|**DVFileSearchAttribute**| +|10131|**DVFileSearchEntity**| +|10132|**DVTableSearch**| +|10133|**DVTableSearchAttribute**| +|10134|**DVTableSearchEntity**| +|10135|**AICopilot**| +|10136|**AIPluginAuth**| +|10137|**AI Plugin Conversation Starter**| +|10138|**AI Plugin Conversation Starter Mapping**| +|10139|**AI Plugin Governance**| +|10140|**AI Plugin Governance Extended**| +|10141|**AIPluginOperationResponseTemplate**| +|10142|**AIPluginTitle**| +|10143|**SideloadedAIPlugin**| +|10144|**AIPlugin**| +|10145|**AIPluginExternalSchema**| +|10146|**AIPluginExternalSchemaProperty**| +|10147|**AIPluginInstance**| +|10148|**AIPluginOperation**| +|10149|**AIPluginOperationParameter**| +|10150|**AIPluginUserSetting**| +|10152|**Data Processing Event**| +|10153|**AI Event**| +|10154|**AI Model Catalog**| +|10155|**AI Builder Feedback Loop**| +|10156|**AI Form Processing Document**| +|10157|**AI Object Detection Image**| +|10158|**AI Object Detection Label**| +|10159|**AI Object Detection Bounding Box**| +|10160|**AI Object Detection Image Mapping**| +|10162|**AI Builder Dataset**| +|10163|**AI Builder Dataset File**| +|10164|**AI Builder Dataset Record**| +|10165|**AI Builder Datasets Container**| +|10166|**AI Builder File**| +|10167|**AI Builder File Attached Data**| +|10168|**Help Page**| +|10169|**Tour**| +|10170|**BotContent**| +|10171|**ConversationTranscript**| +|10172|**Copilot**| +|10173|**Copilot component**| +|10174|**Copilot component collection**| +|10185|**Comment**| +|10186|**Governance Configuration**| +|10187|**Fabric AISkill**| +|10188|**App Insights Metadata**| +|10189|**Dataflow Connection Reference**| +|10190|**Schedule**| +|10191|**Dataflow Template**| +|10192|**Dataflow DatalakeFolder**| +|10193|**Data Movement Service Request**| +|10194|**Data Movement Service Request Status**| +|10195|**DMS Sync Request**| +|10196|**DMS Sync Status**| +|10197|**Knowledge Asset Configuration**| +|10198|**Module Run Detail**| +|10199|**QnA**| +|10200|**Salesforce Structured Object**| +|10201|**Salesforce Structured QnA Config**| +|10202|**Workflow Action Status**| +|10203|**FederatedKnowledgeConfiguration**| +|10204|**FederatedKnowledgeEntityConfiguration**| +|10205|**Form Mapping**| +|10206|**Copilot Interactions**| +|10207|**PDF Setting**| +|10208|**Activity File Attachment**| +|10209|**Teams chat**| +|10210|**Service Configuration**| +|10211|**SLA KPI**| +|10212|**Integrated search provider**| +|10213|**Knowledge Management Setting**| +|10214|**Knowledge Federated Article**| +|10215|**Knowledge Federated Article Incident**| +|10216|**Search provider**| +|10217|**Knowledge Article Image**| +|10218|**Knowledge Configuration**| +|10219|**Knowledge Interaction Insight**| +|10220|**Knowledge Search Insight**| +|10221|**Favorite knowledge article**| +|10222|**Knowledge article language setting**| +|10223|**Knowledge Article Attachment**| +|10224|**Knowledge personalization**| +|10225|**Knowledge Article Template**| +|10226|**Knowledge search personal filter config**| +|10227|**Knowledge search filter**| +|10229|**Entity Cluster Configuration**| +|10230|**SupportUserTable**| +|10231|**FxExpression**| +|10232|**Function**| +|10233|**Plug-in**| +|10234|**PowerfxRule**| +|10235|**Planner Business Scenario**| +|10236|**Planner Sync Action**| +|10237|**Sensitivity Label**| +|10238|**Ms Graph Resource To Subscription**| +|10239|**Virtual Entity Metadata**| +|10240|**Background Operation**| +|10241|**Report Parameter**| +|10242|**MobileOfflineProfileExtension**| +|10243|**MobileOfflineProfileItemFilter**| +|10244|**TeamMobileOfflineProfileMembership**| +|10245|**UserMobileOfflineProfileMembership**| +|10246|**OrganizationDataSyncSubscription**| +|10247|**OrganizationDataSyncSubscriptionEntity**| +|10248|**OrganizationDataSyncSubscriptionFnoTable**| +|10249|**OrganizationDataSyncFnoState**| +|10250|**OrganizationDataSyncState**| +|10251|**ArchiveCleanupInfo**| +|10252|**ArchiveCleanupOperation**| +|10253|**BulkArchiveConfig**| +|10254|**BulkArchiveFailureDetail**| +|10255|**BulkArchiveOperation**| +|10256|**BulkArchiveOperationDetail**| +|10257|**EnableArchivalRequest**| +|10258|**MetadataForArchival**| +|10259|**ReconciliationEntityInfo**| +|10260|**ReconciliationEntityStepInfo**| +|10261|**ReconciliationInfo**| +|10262|**RetentionCleanupInfo**| +|10263|**RetentionCleanupOperation**| +|10264|**RetentionConfig**| +|10265|**RetentionFailureDetail**| +|10266|**RetentionOperation**| +|10267|**RetentionOperationDetail**| +|10268|**RetentionSuccessDetail**| +|10269|**CertificateCredential**| +|10270|**Notification**| +|10271|**User Rating**| +|10272|**Mobile App**| +|10273|**Insights Store Data Source**| +|10274|**Insights Store Virtual Entity**| +|10275|**RoleEditorLayout**| +|10276|**Deleted Record Reference**| +|10277|**Restore Deleted Records Configuration**| +|10278|**App Action**| +|10279|**App Action Migration**| +|10280|**App Action Rule**| +|10283|**Card**| +|10284|**Card State Item**| +|10287|**Entity link chat configuration**| +|10288|**SharePoint Managed Identity**| +|10289|**AI Insight Card**| +|10290|**AI Skill Config**| +|10291|**Data Workspace**| +|10292|**Plan**| +|10293|**Plan Artifact**| +|10294|**Plan Attachment**| +|10295|**Rich Text Attachment**| +|10296|**Custom Control Extended Setting**| +|10298|**Timeline Pin**| +|10299|**Virtual Connector Data Source**| +|10300|**Virtual Table Column Candidate**| +|10302|**PM Analysis History**| +|10303|**PM Business Rule Automation Config**| +|10304|**PM Calendar**| +|10305|**PM Calendar Version**| +|10306|**PM Inferred Task**| +|10307|**PM Process Extended Metadata Version**| +|10308|**PM Process Template**| +|10309|**PM Process User Settings**| +|10310|**PM Process Version**| +|10311|**PM Recording**| +|10312|**PM Simulation**| +|10313|**PM Template**| +|10314|**PM View**| +|10315|**Analysis Component**| +|10316|**Analysis Job**| +|10317|**Analysis Override**| +|10318|**Analysis Result**| +|10319|**Analysis Result Detail**| +|10320|**Solution Health Rule**| +|10321|**Solution Health Rule Argument**| +|10322|**Solution Health Rule Set**| +|10323|**Power BI Dataset**| +|10324|**powerbidatasetapdx**| +|10325|**Power BI Mashup Parameter**| +|10326|**Power BI Report**| +|10327|**powerbireportapdx**| +|10328|**File Upload**| +|10329|**MainFewShot**| +|10330|**MakerFewShot**| +|10331|**SearchAttributeSettings**| +|10332|**SearchCustomAnalyzer**| +|10333|**SearchRelationshipSettings**| +|10334|**SearchResultsCache**| +|10335|**Search Telemetry**| +|10336|**TextDataRecordsIndexingStatus**| +|10337|**ViewAsExampleQuestion**| +|10338|**CopilotExampleQuestion**| +|10339|**CopilotGlossaryTerm**| +|10340|**CopilotSynonyms**| +|10341|**Site Component**| +|10342|**Site**| +|10343|**Site Language**| +|10344|**Power Pages Site Published**| +|10347|**External Identity**| +|10348|**Invitation**| +|10349|**Invite Redemption**| +|10350|**Portal Comment**| +|10351|**Setting**| +|10352|**Multistep Form Session**| +|10356|**Ad Placement**| +|10357|**Column Permission**| +|10358|**Column Permission Profile**| +|10359|**Content Snippet**| +|10360|**Basic Form**| +|10361|**Basic Form Metadata**| +|10362|**List**| +|10363|**Table Permission**| +|10364|**Page Template**| +|10365|**Poll Placement**| +|10366|**Power Pages Core Entity DS**| +|10367|**Publishing State**| +|10368|**Publishing State Transition Rule**| +|10369|**Redirect**| +|10370|**Shortcut**| +|10371|**Site Marker**| +|10372|**Site Setting**| +|10373|**Web File**| +|10374|**Multistep Form**| +|10375|**Multistep Form Metadata**| +|10376|**Form Step**| +|10377|**Web Link**| +|10378|**Web Link Set**| +|10379|**Web Page**| +|10380|**Web Page Access Control Rule**| +|10381|**Web Role**| +|10382|**Website**| +|10383|**Website Access**| +|10384|**Website Language**| +|10385|**Web Template**| +|10392|**Power Pages Scan Report**| +|10393|**Power Pages Log**| +|10394|**PowerPagesManagedIdentity**| +|10395|**Power Pages Site AI Feedback**| +|10400|**Catalog Submission Files**| +|10401|**Package Submission Store**| +|10402|**processor registration**| +|10403|**signal**| +|10404|**signal registration**| +|10405|**trait**| +|10406|**trait registration**| +|10627|**FederatedKnowledgeCitation**| +|10628|**FederatedKnowledgeMetadataRefresh**| +|10629|**Email Address Configuration**| +|10630|**indexedtrait**| +|10645|**AI Evaluation Configuration**| +|10646|**AI Evaluation Run**| +|10647|**AI Test Case**| +|10648|**AI Test Case Document**| +|10649|**AI Test Case Input**| +|10650|**AI Test Run**| +|10651|**AI Test Run Batch**| +|10667|**Approval Process**| +|10668|**Approval Stage Approval**| +|10669|**Approval Stage Condition**| +|10670|**Approval Stage Order**| +|10671|**UnstructuredFileSearchEntity**| +|10672|**UnstructuredFileSearchRecord**| ### ModifiedBy diff --git a/powerapps-docs/developer/data-platform/reference/entities/dvfilesearch.md b/powerapps-docs/developer/data-platform/reference/entities/dvfilesearch.md index 9af2314dae..55f98d7bf7 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/dvfilesearch.md +++ b/powerapps-docs/developer/data-platform/reference/entities/dvfilesearch.md @@ -62,6 +62,7 @@ The following table lists selected properties for the DVFileSearch table. These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. - [DVFileSearchId](#BKMK_DVFileSearchId) +- [DVTableSearch](#BKMK_DVTableSearch) - [ImportSequenceNumber](#BKMK_ImportSequenceNumber) - [IsCustomizable](#BKMK_IsCustomizable) - [Name](#BKMK_Name) @@ -85,6 +86,19 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |RequiredLevel|SystemRequired| |Type|Uniqueidentifier| +### DVTableSearch + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**DVTableSearch**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`dvtablesearch`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|dvtablesearch| + ### ImportSequenceNumber |Property|Value| @@ -534,6 +548,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali These relationships are many-to-one. Listed by **SchemaName**. - [business_unit_dvfilesearch](#BKMK_business_unit_dvfilesearch) +- [DVTableSearch_DVFileSearch](#BKMK_DVTableSearch_DVFileSearch) - [lk_dvfilesearch_createdby](#BKMK_lk_dvfilesearch_createdby) - [lk_dvfilesearch_createdonbehalfby](#BKMK_lk_dvfilesearch_createdonbehalfby) - [lk_dvfilesearch_modifiedby](#BKMK_lk_dvfilesearch_modifiedby) @@ -555,6 +570,19 @@ One-To-Many Relationship: [businessunit business_unit_dvfilesearch](businessunit |IsHierarchical|| |CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### DVTableSearch_DVFileSearch + +One-To-Many Relationship: [dvtablesearch DVTableSearch_DVFileSearch](dvtablesearch.md#BKMK_DVTableSearch_DVFileSearch) + +|Property|Value| +|---|---| +|ReferencedEntity|`dvtablesearch`| +|ReferencedAttribute|`dvtablesearchid`| +|ReferencingAttribute|`dvtablesearch`| +|ReferencingEntityNavigationPropertyName|`DVTableSearch`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `Cascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `Cascade`
Unshare: `Cascade`| + ### lk_dvfilesearch_createdby One-To-Many Relationship: [systemuser lk_dvfilesearch_createdby](systemuser.md#BKMK_lk_dvfilesearch_createdby) diff --git a/powerapps-docs/developer/data-platform/reference/entities/dvtablesearch.md b/powerapps-docs/developer/data-platform/reference/entities/dvtablesearch.md index 1f395fbc0d..fcc2e4bba4 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/dvtablesearch.md +++ b/powerapps-docs/developer/data-platform/reference/entities/dvtablesearch.md @@ -786,6 +786,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [CopilotGlossaryTerm_DVTableSearch](#BKMK_CopilotGlossaryTerm_DVTableSearch) - [dvtablesearch_AsyncOperations](#BKMK_dvtablesearch_AsyncOperations) - [dvtablesearch_BulkDeleteFailures](#BKMK_dvtablesearch_BulkDeleteFailures) +- [DVTableSearch_DVFileSearch](#BKMK_DVTableSearch_DVFileSearch) - [DVTableSearch_DVTableSearch_DVTableSearch](#BKMK_DVTableSearch_DVTableSearch_DVTableSearch) - [dvtablesearch_MailboxTrackingFolders](#BKMK_dvtablesearch_MailboxTrackingFolders) - [dvtablesearch_PrincipalObjectAttributeAccesses](#BKMK_dvtablesearch_PrincipalObjectAttributeAccesses) @@ -852,6 +853,18 @@ Many-To-One Relationship: [bulkdeletefailure dvtablesearch_BulkDeleteFailures](b |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### DVTableSearch_DVFileSearch + +Many-To-One Relationship: [dvfilesearch DVTableSearch_DVFileSearch](dvfilesearch.md#BKMK_DVTableSearch_DVFileSearch) + +|Property|Value| +|---|---| +|ReferencingEntity|`dvfilesearch`| +|ReferencingAttribute|`dvtablesearch`| +|ReferencedEntityNavigationPropertyName|`DVTableSearch_DVFileSearch`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### DVTableSearch_DVTableSearch_DVTableSearch Many-To-One Relationship: [dvtablesearchentity DVTableSearch_DVTableSearch_DVTableSearch](dvtablesearchentity.md#BKMK_DVTableSearch_DVTableSearch_DVTableSearch) diff --git a/powerapps-docs/developer/data-platform/reference/entities/dvtablesearchentity.md b/powerapps-docs/developer/data-platform/reference/entities/dvtablesearchentity.md index 100d9f5eb6..fc6c006305 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/dvtablesearchentity.md +++ b/powerapps-docs/developer/data-platform/reference/entities/dvtablesearchentity.md @@ -74,6 +74,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [statecode](#BKMK_statecode) - [statuscode](#BKMK_statuscode) - [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [unstructuredfilesearchentityId](#BKMK_unstructuredfilesearchentityId) - [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) ### DVTableSearch @@ -272,6 +273,19 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |MaxValue|2147483647| |MinValue|-1| +### unstructuredfilesearchentityId + +|Property|Value| +|---|---| +|Description|**Contains reference from DVTableSearch to UnstructuredFileSearchEntity**| +|DisplayName|| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`unstructuredfilesearchentityid`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|unstructuredfilesearchentity| + ### UTCConversionTimeZoneCode |Property|Value| @@ -582,6 +596,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [business_unit_dvtablesearchentity](#BKMK_business_unit_dvtablesearchentity) - [DVTableSearch_DVTableSearch_DVTableSearch](#BKMK_DVTableSearch_DVTableSearch_DVTableSearch) - [DVTableSearchEntity_Entity_Entity](#BKMK_DVTableSearchEntity_Entity_Entity) +- [dvtablesearchentity_unstructuredfilesearchentity_unstructuredfilesearchentityId](#BKMK_dvtablesearchentity_unstructuredfilesearchentity_unstructuredfilesearchentityId) - [lk_dvtablesearchentity_createdby](#BKMK_lk_dvtablesearchentity_createdby) - [lk_dvtablesearchentity_createdonbehalfby](#BKMK_lk_dvtablesearchentity_createdonbehalfby) - [lk_dvtablesearchentity_modifiedby](#BKMK_lk_dvtablesearchentity_modifiedby) @@ -629,6 +644,19 @@ One-To-Many Relationship: [entity DVTableSearchEntity_Entity_Entity](entity.md#B |IsHierarchical|| |CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### dvtablesearchentity_unstructuredfilesearchentity_unstructuredfilesearchentityId + +One-To-Many Relationship: [unstructuredfilesearchentity dvtablesearchentity_unstructuredfilesearchentity_unstructuredfilesearchentityId](unstructuredfilesearchentity.md#BKMK_dvtablesearchentity_unstructuredfilesearchentity_unstructuredfilesearchentityId) + +|Property|Value| +|---|---| +|ReferencedEntity|`unstructuredfilesearchentity`| +|ReferencedAttribute|`unstructuredfilesearchentityid`| +|ReferencingAttribute|`unstructuredfilesearchentityid`| +|ReferencingEntityNavigationPropertyName|`unstructuredfilesearchentityId`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### lk_dvtablesearchentity_createdby One-To-Many Relationship: [systemuser lk_dvtablesearchentity_createdby](systemuser.md#BKMK_lk_dvtablesearchentity_createdby) diff --git a/powerapps-docs/developer/data-platform/reference/entities/email.md b/powerapps-docs/developer/data-platform/reference/entities/email.md index 9150c4a053..468ce55518 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/email.md +++ b/powerapps-docs/developer/data-platform/reference/entities/email.md @@ -125,6 +125,8 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [ScheduledEnd](#BKMK_ScheduledEnd) - [ScheduledStart](#BKMK_ScheduledStart) - [Sender](#BKMK_Sender) +- [SensitivityLabelId](#BKMK_SensitivityLabelId) +- [SensitivityLabelInfo](#BKMK_SensitivityLabelInfo) - [SLAId](#BKMK_SLAId) - [SortDate](#BKMK_SortDate) - [StageId](#BKMK_StageId) @@ -1000,6 +1002,36 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsLocalizable|False| |MaxLength|250| +### SensitivityLabelId + +|Property|Value| +|---|---| +|Description|**The sensitivity label assigned to the Email.**| +|DisplayName|**Sensitivity Label**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`sensitivitylabelid`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|sensitivitylabel| + +### SensitivityLabelInfo + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Sensitivity Label Info**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`sensitivitylabelinfo`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1073741823| + ### SLAId |Property|Value| @@ -1294,6 +1326,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali - [OwningBusinessUnit](#BKMK_OwningBusinessUnit) - [OwningTeam](#BKMK_OwningTeam) - [OwningUser](#BKMK_OwningUser) +- [ParentSensitivityLabelId](#BKMK_ParentSensitivityLabelId) - [PostponeEmailProcessingUntil](#BKMK_PostponeEmailProcessingUntil) - [ReplyCount](#BKMK_ReplyCount) - [SafeDescription](#BKMK_SafeDescription) @@ -1752,6 +1785,18 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |Type|Lookup| |Targets|systemuser| +### ParentSensitivityLabelId + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Parent Sensitivity Label Id**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`parentsensitivitylabelid`| +|RequiredLevel|None| +|Type|Uniqueidentifier| + ### PostponeEmailProcessingUntil |Property|Value| @@ -1933,6 +1978,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [owner_emails](#BKMK_owner_emails) - [processstage_emails](#BKMK_processstage_emails) - [Queue_Email_EmailSender](#BKMK_Queue_Email_EmailSender) +- [sensitivitylabel_email_SensitivityLabelId](#BKMK_sensitivitylabel_email_SensitivityLabelId) - [sla_email](#BKMK_sla_email) - [SystemUser_Email_EmailSender](#BKMK_SystemUser_Email_EmailSender) - [team_email](#BKMK_team_email) @@ -2368,6 +2414,19 @@ One-To-Many Relationship: [queue Queue_Email_EmailSender](queue.md#BKMK_Queue_Em |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### sensitivitylabel_email_SensitivityLabelId + +One-To-Many Relationship: [sensitivitylabel sensitivitylabel_email_SensitivityLabelId](sensitivitylabel.md#BKMK_sensitivitylabel_email_SensitivityLabelId) + +|Property|Value| +|---|---| +|ReferencedEntity|`sensitivitylabel`| +|ReferencedAttribute|`sensitivitylabelid`| +|ReferencingAttribute|`sensitivitylabelid`| +|ReferencingEntityNavigationPropertyName|`SensitivityLabelId_Email`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### sla_email One-To-Many Relationship: [sla sla_email](sla.md#BKMK_sla_email) diff --git a/powerapps-docs/developer/data-platform/reference/entities/emailaddressconfiguration.md b/powerapps-docs/developer/data-platform/reference/entities/emailaddressconfiguration.md new file mode 100644 index 0000000000..6f7adcf0a3 --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/emailaddressconfiguration.md @@ -0,0 +1,674 @@ +--- +title: "Email Address Configuration (EmailAddressConfiguration) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the Email Address Configuration (EmailAddressConfiguration) table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# Email Address Configuration (EmailAddressConfiguration) table/entity reference (Microsoft Dataverse) + +Entity which stores configuration metadata for Email Address type fields + +## Messages + +The following table lists the messages for the Email Address Configuration (EmailAddressConfiguration) table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /emailaddressconfigurations
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /emailaddressconfigurations(*emailaddressconfigurationid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `IsValidStateTransition`
Event: False | || +| `Retrieve`
Event: True |`GET` /emailaddressconfigurations(*emailaddressconfigurationid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /emailaddressconfigurations
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `SetState`
Event: True |`PATCH` /emailaddressconfigurations(*emailaddressconfigurationid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /emailaddressconfigurations(*emailaddressconfigurationid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /emailaddressconfigurations(*emailaddressconfigurationid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + + +## Events + +The following table lists the events for the Email Address Configuration (EmailAddressConfiguration) table. +Events are messages that exist so that you can subscribe to them. Unless you added the event, you shouldn't invoke the message, only subscribe to it. + +|Name|Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `BulkRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `PurgeRetainedContent`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `Retain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `RollbackRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `ValidateRetentionConfig`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| + +## Properties + +The following table lists selected properties for the Email Address Configuration (EmailAddressConfiguration) table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **Email Address Configuration** | +| **DisplayCollectionName** | **Email Address Configurations** | +| **SchemaName** | `EmailAddressConfiguration` | +| **CollectionSchemaName** | `EmailAddressConfigurations` | +| **EntitySetName** | `emailaddressconfigurations`| +| **LogicalName** | `emailaddressconfiguration` | +| **LogicalCollectionName** | `emailaddressconfigurations` | +| **PrimaryIdAttribute** | `emailaddressconfigurationid` | +| **PrimaryNameAttribute** |`name` | +| **TableType** | `Standard` | +| **OwnershipType** | `OrganizationOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [AttributeId](#BKMK_AttributeId) +- [DoNotResolve](#BKMK_DoNotResolve) +- [EmailAddressConfigurationId](#BKMK_EmailAddressConfigurationId) +- [EntityId](#BKMK_EntityId) +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [IsCustomizable](#BKMK_IsCustomizable) +- [Name](#BKMK_Name) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [statecode](#BKMK_statecode) +- [statuscode](#BKMK_statuscode) +- [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) + +### AttributeId + +|Property|Value| +|---|---| +|Description|**Email Address Field Attribute Id**| +|DisplayName|**Attribute Id**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`attributeid`| +|RequiredLevel|ApplicationRequired| +|Type|Lookup| +|Targets|attribute| + +### DoNotResolve + +|Property|Value| +|---|---| +|Description|**Boolean flag to not resolve the email address field specified by attribute id**| +|DisplayName|**Do Not Resolve**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`donotresolve`| +|RequiredLevel|ApplicationRequired| +|Type|Boolean| +|GlobalChoiceName|`donotresolveemailaddress`| +|DefaultValue|False| +|True Label|True| +|False Label|False| + +### EmailAddressConfigurationId + +|Property|Value| +|---|---| +|Description|**Unique identifier for Email Address Configuration.**| +|DisplayName|**EmailAddressConfiguration**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`emailaddressconfigurationid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### EntityId + +|Property|Value| +|---|---| +|Description|**Entity id associated with the email address field**| +|DisplayName|**Entity Id**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`entityid`| +|RequiredLevel|ApplicationRequired| +|Type|Lookup| +|Targets|entity| + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### IsCustomizable + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Is Customizable**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`iscustomizable`| +|RequiredLevel|SystemRequired| +|Type|ManagedProperty| + +### Name + +|Property|Value| +|---|---| +|Description|**Name of the email address configuration**| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`name`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### statecode + +|Property|Value| +|---|---| +|Description|**Status of the Email Address Configuration**| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statecode`| +|RequiredLevel|SystemRequired| +|Type|State| +|DefaultFormValue|| +|GlobalChoiceName|`emailaddressconfiguration_statecode`| + +#### statecode Choices/Options + +|Value|Details| +|---|---| +|0|Label: **Active**
DefaultStatus: 1
InvariantName: `Active`| +|1|Label: **Inactive**
DefaultStatus: 2
InvariantName: `Inactive`| + +### statuscode + +|Property|Value| +|---|---| +|Description|**Reason for the status of the Email Address Configuration**| +|DisplayName|**Status Reason**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Status| +|DefaultFormValue|| +|GlobalChoiceName|`emailaddressconfiguration_statuscode`| + +#### statuscode Choices/Options + +|Value|Details| +|---|---| +|1|Label: **Active**
State:0
TransitionData: None| +|2|Label: **Inactive**
State:1
TransitionData: None| + +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### UTCConversionTimeZoneCode + +|Property|Value| +|---|---| +|Description|**Time zone code that was in use when the record was created.**| +|DisplayName|**UTC Conversion Time Zone Code**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`utcconversiontimezonecode`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [ComponentIdUnique](#BKMK_ComponentIdUnique) +- [ComponentState](#BKMK_ComponentState) +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [IsManaged](#BKMK_IsManaged) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OrganizationId](#BKMK_OrganizationId) +- [OverwriteTime](#BKMK_OverwriteTime) +- [SolutionId](#BKMK_SolutionId) +- [SupportingSolutionId](#BKMK_SupportingSolutionId) +- [VersionNumber](#BKMK_VersionNumber) + +### ComponentIdUnique + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Row id unique**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentidunique`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### ComponentState + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Component State**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentstate`| +|RequiredLevel|SystemRequired| +|Type|Picklist| +|DefaultFormValue|| +|GlobalChoiceName|`componentstate`| + +#### ComponentState Choices/Options + +|Value|Label| +|---|---| +|0|**Published**| +|1|**Unpublished**| +|2|**Deleted**| +|3|**Deleted Unpublished**| + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### IsManaged + +|Property|Value| +|---|---| +|Description|**Indicates whether the solution component is part of a managed solution.**| +|DisplayName|**Is Managed**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`ismanaged`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`ismanaged`| +|DefaultValue|False| +|True Label|Managed| +|False Label|Unmanaged| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### OrganizationId + +|Property|Value| +|---|---| +|Description|**Unique identifier for the organization**| +|DisplayName|**Organization Id**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`organizationid`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|organization| + +### OverwriteTime + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Record Overwrite Time**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overwritetime`| +|RequiredLevel|SystemRequired| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### SolutionId + +|Property|Value| +|---|---| +|Description|**Unique identifier of the associated solution.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`solutionid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### SupportingSolutionId + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|False| +|LogicalName|`supportingsolutionid`| +|RequiredLevel|None| +|Type|Uniqueidentifier| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [emailaddressconfiguration_attribute_AttributeId](#BKMK_emailaddressconfiguration_attribute_AttributeId) +- [emailaddressconfiguration_entity_EntityId](#BKMK_emailaddressconfiguration_entity_EntityId) +- [lk_emailaddressconfiguration_createdby](#BKMK_lk_emailaddressconfiguration_createdby) +- [lk_emailaddressconfiguration_createdonbehalfby](#BKMK_lk_emailaddressconfiguration_createdonbehalfby) +- [lk_emailaddressconfiguration_modifiedby](#BKMK_lk_emailaddressconfiguration_modifiedby) +- [lk_emailaddressconfiguration_modifiedonbehalfby](#BKMK_lk_emailaddressconfiguration_modifiedonbehalfby) +- [organization_emailaddressconfiguration](#BKMK_organization_emailaddressconfiguration) + +### emailaddressconfiguration_attribute_AttributeId + +One-To-Many Relationship: [attribute emailaddressconfiguration_attribute_AttributeId](attribute.md#BKMK_emailaddressconfiguration_attribute_AttributeId) + +|Property|Value| +|---|---| +|ReferencedEntity|`attribute`| +|ReferencedAttribute|`attributeid`| +|ReferencingAttribute|`attributeid`| +|ReferencingEntityNavigationPropertyName|`AttributeId_EmailAddressConfiguration`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### emailaddressconfiguration_entity_EntityId + +One-To-Many Relationship: [entity emailaddressconfiguration_entity_EntityId](entity.md#BKMK_emailaddressconfiguration_entity_EntityId) + +|Property|Value| +|---|---| +|ReferencedEntity|`entity`| +|ReferencedAttribute|`entityid`| +|ReferencingAttribute|`entityid`| +|ReferencingEntityNavigationPropertyName|`EntityId_EmailAddressConfiguration`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_emailaddressconfiguration_createdby + +One-To-Many Relationship: [systemuser lk_emailaddressconfiguration_createdby](systemuser.md#BKMK_lk_emailaddressconfiguration_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_emailaddressconfiguration_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_emailaddressconfiguration_createdonbehalfby](systemuser.md#BKMK_lk_emailaddressconfiguration_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_emailaddressconfiguration_modifiedby + +One-To-Many Relationship: [systemuser lk_emailaddressconfiguration_modifiedby](systemuser.md#BKMK_lk_emailaddressconfiguration_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_emailaddressconfiguration_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_emailaddressconfiguration_modifiedonbehalfby](systemuser.md#BKMK_lk_emailaddressconfiguration_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### organization_emailaddressconfiguration + +One-To-Many Relationship: [organization organization_emailaddressconfiguration](organization.md#BKMK_organization_emailaddressconfiguration) + +|Property|Value| +|---|---| +|ReferencedEntity|`organization`| +|ReferencedAttribute|`organizationid`| +|ReferencingAttribute|`organizationid`| +|ReferencingEntityNavigationPropertyName|`organizationid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +- [emailaddressconfiguration_AsyncOperations](#BKMK_emailaddressconfiguration_AsyncOperations) +- [emailaddressconfiguration_BulkDeleteFailures](#BKMK_emailaddressconfiguration_BulkDeleteFailures) +- [emailaddressconfiguration_MailboxTrackingFolders](#BKMK_emailaddressconfiguration_MailboxTrackingFolders) +- [emailaddressconfiguration_PrincipalObjectAttributeAccesses](#BKMK_emailaddressconfiguration_PrincipalObjectAttributeAccesses) +- [emailaddressconfiguration_SyncErrors](#BKMK_emailaddressconfiguration_SyncErrors) + +### emailaddressconfiguration_AsyncOperations + +Many-To-One Relationship: [asyncoperation emailaddressconfiguration_AsyncOperations](asyncoperation.md#BKMK_emailaddressconfiguration_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencingEntity|`asyncoperation`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`emailaddressconfiguration_AsyncOperations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### emailaddressconfiguration_BulkDeleteFailures + +Many-To-One Relationship: [bulkdeletefailure emailaddressconfiguration_BulkDeleteFailures](bulkdeletefailure.md#BKMK_emailaddressconfiguration_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencingEntity|`bulkdeletefailure`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`emailaddressconfiguration_BulkDeleteFailures`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### emailaddressconfiguration_MailboxTrackingFolders + +Many-To-One Relationship: [mailboxtrackingfolder emailaddressconfiguration_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_emailaddressconfiguration_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencingEntity|`mailboxtrackingfolder`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`emailaddressconfiguration_MailboxTrackingFolders`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### emailaddressconfiguration_PrincipalObjectAttributeAccesses + +Many-To-One Relationship: [principalobjectattributeaccess emailaddressconfiguration_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_emailaddressconfiguration_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencingEntity|`principalobjectattributeaccess`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`emailaddressconfiguration_PrincipalObjectAttributeAccesses`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### emailaddressconfiguration_SyncErrors + +Many-To-One Relationship: [syncerror emailaddressconfiguration_SyncErrors](syncerror.md#BKMK_emailaddressconfiguration_SyncErrors) + +|Property|Value| +|---|---| +|ReferencingEntity|`syncerror`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`emailaddressconfiguration_SyncErrors`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/emailserverprofile.md b/powerapps-docs/developer/data-platform/reference/entities/emailserverprofile.md index ad8c681756..45e88b1cfa 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/emailserverprofile.md +++ b/powerapps-docs/developer/data-platform/reference/entities/emailserverprofile.md @@ -58,6 +58,12 @@ The following table lists selected properties for the Email Server Profile (Emai These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. - [AadResourceId](#BKMK_AadResourceId) +- [ACSEmailServiceName](#BKMK_ACSEmailServiceName) +- [ACSEnabledForOutgoingEmail](#BKMK_ACSEnabledForOutgoingEmail) +- [ACSEndpointUrl](#BKMK_ACSEndpointUrl) +- [ACSManagedIdentityId](#BKMK_ACSManagedIdentityId) +- [ACSResourceGroupName](#BKMK_ACSResourceGroupName) +- [ACSSubscriptionId](#BKMK_ACSSubscriptionId) - [DefaultServerLocation](#BKMK_DefaultServerLocation) - [Description](#BKMK_Description) - [EmailServerProfileId](#BKMK_EmailServerProfileId) @@ -132,6 +138,98 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsLocalizable|False| |MaxLength|1024| +### ACSEmailServiceName + +|Property|Value| +|---|---| +|Description|**The name of the email service resource associated with the Azure Communication Service.**| +|DisplayName|**ACS Email Service Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`acsemailservicename`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|200| + +### ACSEnabledForOutgoingEmail + +|Property|Value| +|---|---| +|Description|**Determines if ACS integration should be enabled for outgoing email synchronization.**| +|DisplayName|**ACS Enabled for Outgoing Email**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`acsenabledforoutgoingemail`| +|RequiredLevel|None| +|Type|Boolean| +|GlobalChoiceName|`emailserverprofile_acsenabledforoutgoingemail`| +|DefaultValue|False| +|True Label|Yes| +|False Label|No| + +### ACSEndpointUrl + +|Property|Value| +|---|---| +|Description|**ACS Endpoint Url**| +|DisplayName|**ACS Endpoint Url**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`acsendpointurl`| +|RequiredLevel|None| +|Type|String| +|Format|Url| +|FormatName|Url| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|300| + +### ACSManagedIdentityId + +|Property|Value| +|---|---| +|Description|**Unique identifier for managed identity associated with emailserverprofile for ACS integration.**| +|DisplayName|**ACS Managed Identity**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`acsmanagedidentityid`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|managedidentity| + +### ACSResourceGroupName + +|Property|Value| +|---|---| +|Description|**The name of the resource group associated with the Email Communication Service. The name is case insensitive.**| +|DisplayName|**ACS Resource Group Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`acsresourcegroupname`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|200| + +### ACSSubscriptionId + +|Property|Value| +|---|---| +|Description|**The ID of the target Azure subscription associated with the Email Communication Service.**| +|DisplayName|**ACS SubscriptionId**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`acssubscriptionid`| +|RequiredLevel|None| +|Type|Uniqueidentifier| + ### DefaultServerLocation |Property|Value| @@ -926,7 +1024,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Value|Label| |---|---| -|0|**Public (+GCC) (https://login.microsoftonline.com)**| +|0|**Public (\+GCC) (https://login.microsoftonline.com)**| |1|**US Government (GCC High and DoD) (https://login.microsoftonline.us)**| |2|**China (21Vianet) (https://login.chinacloudapi.cn)**| |3|**Automatic (determined by Dynamics 365 cloud)**| @@ -1461,6 +1559,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [lk_emailserverprofile_createdonbehalfby](#BKMK_lk_emailserverprofile_createdonbehalfby) - [lk_emailserverprofile_modifiedby](#BKMK_lk_emailserverprofile_modifiedby) - [lk_emailserverprofile_modifiedonbehalfby](#BKMK_lk_emailserverprofile_modifiedonbehalfby) +- [managedidentity_emailserverprofile_acsmanagedidentityid](#BKMK_managedidentity_emailserverprofile_acsmanagedidentityid) - [managedidentity_emailserverprofile_managedidentityid](#BKMK_managedidentity_emailserverprofile_managedidentityid) - [organization_emailserverprofile](#BKMK_organization_emailserverprofile) - [owner_emailserverprofile](#BKMK_owner_emailserverprofile) @@ -1544,6 +1643,19 @@ One-To-Many Relationship: [systemuser lk_emailserverprofile_modifiedonbehalfby]( |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### managedidentity_emailserverprofile_acsmanagedidentityid + +One-To-Many Relationship: [managedidentity managedidentity_emailserverprofile_acsmanagedidentityid](managedidentity.md#BKMK_managedidentity_emailserverprofile_acsmanagedidentityid) + +|Property|Value| +|---|---| +|ReferencedEntity|`managedidentity`| +|ReferencedAttribute|`managedidentityid`| +|ReferencingAttribute|`acsmanagedidentityid`| +|ReferencingEntityNavigationPropertyName|`acsmanagedidentityid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### managedidentity_emailserverprofile_managedidentityid One-To-Many Relationship: [managedidentity managedidentity_emailserverprofile_managedidentityid](managedidentity.md#BKMK_managedidentity_emailserverprofile_managedidentityid) diff --git a/powerapps-docs/developer/data-platform/reference/entities/entity.md b/powerapps-docs/developer/data-platform/reference/entities/entity.md index aeeafcb8a7..3f084d5168 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/entity.md +++ b/powerapps-docs/developer/data-platform/reference/entities/entity.md @@ -445,7 +445,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [catalogassignment_entity](#BKMK_catalogassignment_entity) - [DVFileSearchEntity_Entity_Entity](#BKMK_DVFileSearchEntity_Entity_Entity) - [DVTableSearchEntity_Entity_Entity](#BKMK_DVTableSearchEntity_Entity_Entity) -- [entity_aiinsightcard_entityid](#BKMK_entity_aiinsightcard_entityid) +- [emailaddressconfiguration_entity_EntityId](#BKMK_emailaddressconfiguration_entity_EntityId) - [entity_appaction_ContextEntity](#BKMK_entity_appaction_ContextEntity) - [entity_appactionrule_ContextEntity](#BKMK_entity_appactionrule_ContextEntity) - [entity_entityanalyticsconfig](#BKMK_entity_entityanalyticsconfig) @@ -453,6 +453,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [entity_solutioncomponentbatchconfiguration_PrimaryEntity](#BKMK_entity_solutioncomponentbatchconfiguration_PrimaryEntity) - [entity_solutioncomponentbatchconfiguration_RelatedEntity](#BKMK_entity_solutioncomponentbatchconfiguration_RelatedEntity) - [entity_solutioncomponentconfiguration](#BKMK_entity_solutioncomponentconfiguration) +- [entityclusterconfig_extensionofrecordid](#BKMK_entityclusterconfig_extensionofrecordid) - [metadataforarchival_extensionofrecordid](#BKMK_metadataforarchival_extensionofrecordid) - [msdyn_entity_msdyn_entitylinkchatconfiguration](#BKMK_msdyn_entity_msdyn_entitylinkchatconfiguration) - [msdyn_insightsstorevirtualentity_extensionofrecordid](#BKMK_msdyn_insightsstorevirtualentity_extensionofrecordid) @@ -509,17 +510,17 @@ Many-To-One Relationship: [dvtablesearchentity DVTableSearchEntity_Entity_Entity |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### entity_aiinsightcard_entityid +### emailaddressconfiguration_entity_EntityId -Many-To-One Relationship: [aiinsightcard entity_aiinsightcard_entityid](aiinsightcard.md#BKMK_entity_aiinsightcard_entityid) +Many-To-One Relationship: [emailaddressconfiguration emailaddressconfiguration_entity_EntityId](emailaddressconfiguration.md#BKMK_emailaddressconfiguration_entity_EntityId) |Property|Value| |---|---| -|ReferencingEntity|`aiinsightcard`| +|ReferencingEntity|`emailaddressconfiguration`| |ReferencingAttribute|`entityid`| -|ReferencedEntityNavigationPropertyName|`entity_aiinsightcard_entityid`| +|ReferencedEntityNavigationPropertyName|`emailaddressconfiguration_entity_EntityId`| |IsCustomizable|`False`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| ### entity_appaction_ContextEntity @@ -605,6 +606,18 @@ Many-To-One Relationship: [solutioncomponentconfiguration entity_solutioncompone |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### entityclusterconfig_extensionofrecordid + +Many-To-One Relationship: [entityclusterconfig entityclusterconfig_extensionofrecordid](entityclusterconfig.md#BKMK_entityclusterconfig_extensionofrecordid) + +|Property|Value| +|---|---| +|ReferencingEntity|`entityclusterconfig`| +|ReferencingAttribute|`extensionofrecordid`| +|ReferencedEntityNavigationPropertyName|`entityclusterconfig_extensionofrecordid`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### metadataforarchival_extensionofrecordid Many-To-One Relationship: [metadataforarchival metadataforarchival_extensionofrecordid](metadataforarchival.md#BKMK_metadataforarchival_extensionofrecordid) diff --git a/powerapps-docs/developer/data-platform/reference/entities/entityanalyticsconfig.md b/powerapps-docs/developer/data-platform/reference/entities/entityanalyticsconfig.md index 3eeaf74e96..591e5e9bcb 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/entityanalyticsconfig.md +++ b/powerapps-docs/developer/data-platform/reference/entities/entityanalyticsconfig.md @@ -83,7 +83,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |LogicalName|`entitydatasource`| |RequiredLevel|SystemRequired| |Type|Picklist| -|DefaultFormValue|0| +|DefaultFormValue|1| |GlobalChoiceName|`entityanalyticsconfig_entitydatasourcee`| #### EntityDataSource Choices/Options diff --git a/powerapps-docs/developer/data-platform/reference/entities/entityclusterconfig.md b/powerapps-docs/developer/data-platform/reference/entities/entityclusterconfig.md new file mode 100644 index 0000000000..bce2e6c288 --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/entityclusterconfig.md @@ -0,0 +1,668 @@ +--- +title: "Entity Cluster Configuration (EntityClusterConfig) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the Entity Cluster Configuration (EntityClusterConfig) table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# Entity Cluster Configuration (EntityClusterConfig) table/entity reference (Microsoft Dataverse) + +Holds Entity Cluster configuration for entities + +## Messages + +The following table lists the messages for the Entity Cluster Configuration (EntityClusterConfig) table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /entityclusterconfigs
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /entityclusterconfigs(*entityclusterconfigid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `IsValidStateTransition`
Event: False | || +| `Retrieve`
Event: True |`GET` /entityclusterconfigs(*entityclusterconfigid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /entityclusterconfigs
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `SetState`
Event: True |`PATCH` /entityclusterconfigs(*entityclusterconfigid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /entityclusterconfigs(*entityclusterconfigid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /entityclusterconfigs(*entityclusterconfigid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + +## Properties + +The following table lists selected properties for the Entity Cluster Configuration (EntityClusterConfig) table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **Entity Cluster Configuration** | +| **DisplayCollectionName** | **Entity Cluster Configurations** | +| **SchemaName** | `EntityClusterConfig` | +| **CollectionSchemaName** | `EntityClusterConfigs` | +| **EntitySetName** | `entityclusterconfigs`| +| **LogicalName** | `entityclusterconfig` | +| **LogicalCollectionName** | `entityclusterconfigs` | +| **PrimaryIdAttribute** | `entityclusterconfigid` | +| **PrimaryNameAttribute** |`name` | +| **TableType** | `Standard` | +| **OwnershipType** | `OrganizationOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [ClusterMode](#BKMK_ClusterMode) +- [EntityClusterConfigId](#BKMK_EntityClusterConfigId) +- [ExtensionOfRecordId](#BKMK_ExtensionOfRecordId) +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [IsCustomizable](#BKMK_IsCustomizable) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [ShouldAutoReplicate](#BKMK_ShouldAutoReplicate) +- [statecode](#BKMK_statecode) +- [statuscode](#BKMK_statuscode) +- [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) + +### ClusterMode + +|Property|Value| +|---|---| +|Description|**Cluster Mode for the Table**| +|DisplayName|**ClusterMode**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`clustermode`| +|RequiredLevel|SystemRequired| +|Type|Picklist| +|DefaultFormValue|0| +|GlobalChoiceName|`entityclusterconfig_clustermode`| + +#### ClusterMode Choices/Options + +|Value|Label| +|---|---| +|0|**Partitioned**| +|1|**Replicated**| +|2|**Local**| + +### EntityClusterConfigId + +|Property|Value| +|---|---| +|Description|**Unique identifier for entity instances**| +|DisplayName|**Entity Cluster Configuration**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`entityclusterconfigid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### ExtensionOfRecordId + +|Property|Value| +|---|---| +|Description|**The metadata for Entity.**| +|DisplayName|**Metadata For Entity**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`extensionofrecordid`| +|RequiredLevel|SystemRequired| +|Type|Lookup| +|Targets|entity| + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### IsCustomizable + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Is Customizable**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`iscustomizable`| +|RequiredLevel|SystemRequired| +|Type|ManagedProperty| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ShouldAutoReplicate + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Specifies if the table should be auto replicated.**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`shouldautoreplicate`| +|RequiredLevel|None| +|Type|Boolean| +|GlobalChoiceName|`entitycclusterconfig_shouldautoreplicate`| +|DefaultValue|False| +|True Label|Yes| +|False Label|No| + +### statecode + +|Property|Value| +|---|---| +|Description|**Status of the Entity Cluster Configuration**| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statecode`| +|RequiredLevel|SystemRequired| +|Type|State| +|DefaultFormValue|| +|GlobalChoiceName|`entityclusterconfig_statecode`| + +#### statecode Choices/Options + +|Value|Details| +|---|---| +|0|Label: **Active**
DefaultStatus: 1
InvariantName: `Active`| +|1|Label: **Inactive**
DefaultStatus: 2
InvariantName: `Inactive`| + +### statuscode + +|Property|Value| +|---|---| +|Description|**Reason for the status of the Entity Cluster Configuration**| +|DisplayName|**Status Reason**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Status| +|DefaultFormValue|| +|GlobalChoiceName|`entityclusterconfig_statuscode`| + +#### statuscode Choices/Options + +|Value|Details| +|---|---| +|1|Label: **Active**
State:0
TransitionData: None| +|2|Label: **Inactive**
State:1
TransitionData: None| + +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### UTCConversionTimeZoneCode + +|Property|Value| +|---|---| +|Description|**Time zone code that was in use when the record was created.**| +|DisplayName|**UTC Conversion Time Zone Code**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`utcconversiontimezonecode`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [ComponentIdUnique](#BKMK_ComponentIdUnique) +- [ComponentState](#BKMK_ComponentState) +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [IsManaged](#BKMK_IsManaged) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [Name](#BKMK_Name) +- [OrganizationId](#BKMK_OrganizationId) +- [OverwriteTime](#BKMK_OverwriteTime) +- [SolutionId](#BKMK_SolutionId) +- [SupportingSolutionId](#BKMK_SupportingSolutionId) +- [VersionNumber](#BKMK_VersionNumber) + +### ComponentIdUnique + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Row id unique**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentidunique`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### ComponentState + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Component State**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentstate`| +|RequiredLevel|SystemRequired| +|Type|Picklist| +|DefaultFormValue|| +|GlobalChoiceName|`componentstate`| + +#### ComponentState Choices/Options + +|Value|Label| +|---|---| +|0|**Published**| +|1|**Unpublished**| +|2|**Deleted**| +|3|**Deleted Unpublished**| + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Shows the date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### IsManaged + +|Property|Value| +|---|---| +|Description|**Indicates whether the solution component is part of a managed solution.**| +|DisplayName|**Is Managed**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`ismanaged`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`ismanaged`| +|DefaultValue|False| +|True Label|Managed| +|False Label|Unmanaged| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### Name + +|Property|Value| +|---|---| +|Description|**The name of the settings.**| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`name`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OrganizationId + +|Property|Value| +|---|---| +|Description|**Unique identifier for the organization**| +|DisplayName|**Organization Id**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`organizationid`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|organization| + +### OverwriteTime + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Record Overwrite Time**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overwritetime`| +|RequiredLevel|SystemRequired| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### SolutionId + +|Property|Value| +|---|---| +|Description|**Unique identifier of the associated solution.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`solutionid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### SupportingSolutionId + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|False| +|LogicalName|`supportingsolutionid`| +|RequiredLevel|None| +|Type|Uniqueidentifier| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [entityclusterconfig_extensionofrecordid](#BKMK_entityclusterconfig_extensionofrecordid) +- [lk_entityclusterconfig_createdby](#BKMK_lk_entityclusterconfig_createdby) +- [lk_entityclusterconfig_createdonbehalfby](#BKMK_lk_entityclusterconfig_createdonbehalfby) +- [lk_entityclusterconfig_modifiedby](#BKMK_lk_entityclusterconfig_modifiedby) +- [lk_entityclusterconfig_modifiedonbehalfby](#BKMK_lk_entityclusterconfig_modifiedonbehalfby) +- [organization_entityclusterconfig](#BKMK_organization_entityclusterconfig) + +### entityclusterconfig_extensionofrecordid + +One-To-Many Relationship: [entity entityclusterconfig_extensionofrecordid](entity.md#BKMK_entityclusterconfig_extensionofrecordid) + +|Property|Value| +|---|---| +|ReferencedEntity|`entity`| +|ReferencedAttribute|`entityid`| +|ReferencingAttribute|`extensionofrecordid`| +|ReferencingEntityNavigationPropertyName|`extensionofrecordid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Cascade`
Assign: `Cascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `Cascade`
Unshare: `Cascade`| + +### lk_entityclusterconfig_createdby + +One-To-Many Relationship: [systemuser lk_entityclusterconfig_createdby](systemuser.md#BKMK_lk_entityclusterconfig_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_entityclusterconfig_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_entityclusterconfig_createdonbehalfby](systemuser.md#BKMK_lk_entityclusterconfig_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_entityclusterconfig_modifiedby + +One-To-Many Relationship: [systemuser lk_entityclusterconfig_modifiedby](systemuser.md#BKMK_lk_entityclusterconfig_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_entityclusterconfig_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_entityclusterconfig_modifiedonbehalfby](systemuser.md#BKMK_lk_entityclusterconfig_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### organization_entityclusterconfig + +One-To-Many Relationship: [organization organization_entityclusterconfig](organization.md#BKMK_organization_entityclusterconfig) + +|Property|Value| +|---|---| +|ReferencedEntity|`organization`| +|ReferencedAttribute|`organizationid`| +|ReferencingAttribute|`organizationid`| +|ReferencingEntityNavigationPropertyName|`organizationid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +- [entityclusterconfig_AsyncOperations](#BKMK_entityclusterconfig_AsyncOperations) +- [entityclusterconfig_BulkDeleteFailures](#BKMK_entityclusterconfig_BulkDeleteFailures) +- [entityclusterconfig_MailboxTrackingFolders](#BKMK_entityclusterconfig_MailboxTrackingFolders) +- [entityclusterconfig_PrincipalObjectAttributeAccesses](#BKMK_entityclusterconfig_PrincipalObjectAttributeAccesses) +- [entityclusterconfig_ProcessSession](#BKMK_entityclusterconfig_ProcessSession) +- [entityclusterconfig_SyncErrors](#BKMK_entityclusterconfig_SyncErrors) + +### entityclusterconfig_AsyncOperations + +Many-To-One Relationship: [asyncoperation entityclusterconfig_AsyncOperations](asyncoperation.md#BKMK_entityclusterconfig_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencingEntity|`asyncoperation`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`entityclusterconfig_AsyncOperations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### entityclusterconfig_BulkDeleteFailures + +Many-To-One Relationship: [bulkdeletefailure entityclusterconfig_BulkDeleteFailures](bulkdeletefailure.md#BKMK_entityclusterconfig_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencingEntity|`bulkdeletefailure`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`entityclusterconfig_BulkDeleteFailures`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### entityclusterconfig_MailboxTrackingFolders + +Many-To-One Relationship: [mailboxtrackingfolder entityclusterconfig_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_entityclusterconfig_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencingEntity|`mailboxtrackingfolder`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`entityclusterconfig_MailboxTrackingFolders`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### entityclusterconfig_PrincipalObjectAttributeAccesses + +Many-To-One Relationship: [principalobjectattributeaccess entityclusterconfig_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_entityclusterconfig_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencingEntity|`principalobjectattributeaccess`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`entityclusterconfig_PrincipalObjectAttributeAccesses`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### entityclusterconfig_ProcessSession + +Many-To-One Relationship: [processsession entityclusterconfig_ProcessSession](processsession.md#BKMK_entityclusterconfig_ProcessSession) + +|Property|Value| +|---|---| +|ReferencingEntity|`processsession`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`entityclusterconfig_ProcessSession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### entityclusterconfig_SyncErrors + +Many-To-One Relationship: [syncerror entityclusterconfig_SyncErrors](syncerror.md#BKMK_entityclusterconfig_SyncErrors) + +|Property|Value| +|---|---| +|ReferencingEntity|`syncerror`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`entityclusterconfig_SyncErrors`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/environmentvariabledefinition.md b/powerapps-docs/developer/data-platform/reference/entities/environmentvariabledefinition.md index cbd746d495..e8f62dccb1 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/environmentvariabledefinition.md +++ b/powerapps-docs/developer/data-platform/reference/entities/environmentvariabledefinition.md @@ -73,9 +73,11 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [EnvironmentVariableDefinitionId](#BKMK_EnvironmentVariableDefinitionId) - [Hint](#BKMK_Hint) - [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [InputControlConfig](#BKMK_InputControlConfig) - [IntroducedVersion](#BKMK_IntroducedVersion) - [IsCustomizable](#BKMK_IsCustomizable) - [IsRequired](#BKMK_IsRequired) +- [LearnMoreUrl](#BKMK_LearnMoreUrl) - [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) - [OwnerId](#BKMK_OwnerId) - [OwnerIdType](#BKMK_OwnerIdType) @@ -214,6 +216,23 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |MaxValue|2147483647| |MinValue|-2147483648| +### InputControlConfig + +|Property|Value| +|---|---| +|Description|**A JSON object describing the options for the input control that should be presented to the user for setting the current value of the Environment variable.**| +|DisplayName|**Input Control Config**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`inputcontrolconfig`| +|RequiredLevel|None| +|Type|Memo| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|10000| + ### IntroducedVersion |Property|Value| @@ -259,6 +278,23 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |True Label|Yes| |False Label|No| +### LearnMoreUrl + +|Property|Value| +|---|---| +|Description|**Clicking on this url will take the user to a webpage which further explains the environment variable being populated.**| +|DisplayName|**Learn More Url**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`learnmoreurl`| +|RequiredLevel|None| +|Type|String| +|Format|Url| +|FormatName|Url| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|2000| + ### OverriddenCreatedOn |Property|Value| @@ -926,6 +962,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [EnvironmentVariableDefinition_ReportParameter_EvironmentVariableDefinitionId](#BKMK_EnvironmentVariableDefinition_ReportParameter_EvironmentVariableDefinitionId) - [environmentvariabledefinition_SyncErrors](#BKMK_environmentvariabledefinition_SyncErrors) - [envvardefinition_powerbimashupparameter](#BKMK_envvardefinition_powerbimashupparameter) +- [mspp_environmentvariabledefinition_mspp_sitesetting_environmentvariable](#BKMK_mspp_environmentvariabledefinition_mspp_sitesetting_environmentvariable) ### envdefinition_envdefinition @@ -1167,6 +1204,18 @@ Many-To-One Relationship: [powerbimashupparameter envvardefinition_powerbimashup |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### mspp_environmentvariabledefinition_mspp_sitesetting_environmentvariable + +Many-To-One Relationship: [mspp_sitesetting mspp_environmentvariabledefinition_mspp_sitesetting_environmentvariable](mspp_sitesetting.md#BKMK_mspp_environmentvariabledefinition_mspp_sitesetting_environmentvariable) + +|Property|Value| +|---|---| +|ReferencingEntity|`mspp_sitesetting`| +|ReferencingAttribute|`mspp_environmentvariable`| +|ReferencedEntityNavigationPropertyName|`mspp_environmentvariabledefinition_mspp_sitesetting_environmentvariable`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ## Many-to-Many relationships diff --git a/powerapps-docs/developer/data-platform/reference/entities/exportedexcel.md b/powerapps-docs/developer/data-platform/reference/entities/exportedexcel.md index cde287e669..80b1b8f8c7 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/exportedexcel.md +++ b/powerapps-docs/developer/data-platform/reference/entities/exportedexcel.md @@ -493,7 +493,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| diff --git a/powerapps-docs/developer/data-platform/reference/entities/fileattachment.md b/powerapps-docs/developer/data-platform/reference/entities/fileattachment.md index b504a246d3..82555623a5 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/fileattachment.md +++ b/powerapps-docs/developer/data-platform/reference/entities/fileattachment.md @@ -109,7 +109,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |LogicalName|`objectid`| |RequiredLevel|None| |Type|Lookup| -|Targets|activityfileattachment, activitypointer, asyncoperation, botcomponent, canvasapp, cascadegrantrevokeaccessrecordstracker, deleteditemreference, desktopflowbinary, desktopflowmodule, email, exportedexcel, exportsolutionupload, flowsession, imagedescriptor, knowledgearticle, mailbox, msdyn_aibfeedbackloop, msdyn_aibfile, msdyn_aiconfiguration, msdyn_analysisjob, msdyn_fileupload, msdyn_integratedsearchprovider, msdyn_kbattachment, msdyn_knowledgearticleimage, msdyn_mobileapp, msdyn_pminferredtask, msdyn_richtextfile, mspcat_catalogsubmissionfiles, mspcat_packagestore, package, packagehistory, pluginpackage, powerbidataset, powerbireport, powerpagecomponent, powerpagesitepublished, powerpagesscanreport, report, retaineddataexcel, revokeinheritedaccessrecordstracker, ribbonclientmetadata, searchcustomanalyzer, solution, stagesolutionupload, webresource, workflowbinary, workflowlog| +|Targets|activityfileattachment, activitypointer, approvalprocess, asyncoperation, botcomponent, canvasapp, cascadegrantrevokeaccessrecordstracker, deleteditemreference, desktopflowbinary, desktopflowmodule, email, exportedexcel, exportsolutionupload, flowmachineimageversion, flowsession, imagedescriptor, knowledgearticle, mailbox, msdyn_aibfeedbackloop, msdyn_aibfile, msdyn_aiconfiguration, msdyn_aidataprocessingevent, msdyn_aitestcasedocument, msdyn_analysisjob, msdyn_dataworkspace, msdyn_fileupload, msdyn_integratedsearchprovider, msdyn_kbattachment, msdyn_knowledgearticleimage, msdyn_mobileapp, msdyn_plan, msdyn_planartifact, msdyn_planattachment, msdyn_pminferredtask, msdyn_richtextfile, mspcat_catalogsubmissionfiles, mspcat_packagestore, package, packagehistory, pluginpackage, powerbidataset, powerbireport, powerpagecomponent, powerpagesitepublished, powerpagesscanreport, report, retaineddataexcel, revokeinheritedaccessrecordstracker, ribbonclientmetadata, searchcustomanalyzer, solution, stagesolutionupload, unstructuredfilesearchrecord, webresource, workflowbinary, workflowlog, workflowmetadata| ### ObjectIdTypeCode @@ -301,6 +301,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [activityfileattachment_FileAttachments](#BKMK_activityfileattachment_FileAttachments) - [activitypointer_FileAttachments](#BKMK_activitypointer_FileAttachments) +- [approvalprocess_FileAttachments](#BKMK_approvalprocess_FileAttachments) - [asyncoperation_FileAttachments](#BKMK_asyncoperation_FileAttachments) - [botcomponent_FileAttachments](#BKMK_botcomponent_FileAttachments) - [canvasapp_FileAttachments](#BKMK_canvasapp_FileAttachments) @@ -310,12 +311,15 @@ These relationships are many-to-one. Listed by **SchemaName**. - [exportedexcel_FileAttachments](#BKMK_exportedexcel_FileAttachments) - [exportsolutionupload_FileAttachments](#BKMK_exportsolutionupload_FileAttachments) - [FileAttachment_Solution](#BKMK_FileAttachment_Solution) +- [flowmachineimageversion_FileAttachments](#BKMK_flowmachineimageversion_FileAttachments) - [flowsession_FileAttachments](#BKMK_flowsession_FileAttachments) - [knowledgearticle_FileAttachments](#BKMK_knowledgearticle_FileAttachments) - [mailbox_FileAttachments](#BKMK_mailbox_FileAttachments) - [msdyn_aibfeedbackloop_FileAttachments](#BKMK_msdyn_aibfeedbackloop_FileAttachments) - [msdyn_aibfile_FileAttachments](#BKMK_msdyn_aibfile_FileAttachments) - [msdyn_aiconfiguration_FileAttachments](#BKMK_msdyn_aiconfiguration_FileAttachments) +- [msdyn_aidataprocessingevent_FileAttachments](#BKMK_msdyn_aidataprocessingevent_FileAttachments) +- [msdyn_aitestcasedocument_FileAttachments](#BKMK_msdyn_aitestcasedocument_FileAttachments) - [msdyn_analysisjob_FileAttachments](#BKMK_msdyn_analysisjob_FileAttachments) - [msdyn_fileupload_FileAttachments](#BKMK_msdyn_fileupload_FileAttachments) - [msdyn_integratedsearchprovider_FileAttachments](#BKMK_msdyn_integratedsearchprovider_FileAttachments) @@ -338,9 +342,11 @@ These relationships are many-to-one. Listed by **SchemaName**. - [retaineddataexcel_FileAttachments](#BKMK_retaineddataexcel_FileAttachments) - [searchcustomanalyzer_FileAttachments](#BKMK_searchcustomanalyzer_FileAttachments) - [stagesolutionupload_FileAttachments](#BKMK_stagesolutionupload_FileAttachments) +- [unstructuredfilesearchrecord_FileAttachments](#BKMK_unstructuredfilesearchrecord_FileAttachments) - [webresource_FileAttachments](#BKMK_webresource_FileAttachments) - [workflowbinary_FileAttachments](#BKMK_workflowbinary_FileAttachments) - [workflowlog_FileAttachments](#BKMK_workflowlog_FileAttachments) +- [workflowmetadata_FileAttachments](#BKMK_workflowmetadata_FileAttachments) ### activityfileattachment_FileAttachments @@ -368,6 +374,19 @@ One-To-Many Relationship: [activitypointer activitypointer_FileAttachments](acti |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### approvalprocess_FileAttachments + +One-To-Many Relationship: [approvalprocess approvalprocess_FileAttachments](approvalprocess.md#BKMK_approvalprocess_FileAttachments) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalprocess`| +|ReferencedAttribute|`approvalprocessid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_approvalprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### asyncoperation_FileAttachments One-To-Many Relationship: [asyncoperation asyncoperation_FileAttachments](asyncoperation.md#BKMK_asyncoperation_FileAttachments) @@ -485,6 +504,19 @@ One-To-Many Relationship: [solution FileAttachment_Solution](solution.md#BKMK_Fi |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### flowmachineimageversion_FileAttachments + +One-To-Many Relationship: [flowmachineimageversion flowmachineimageversion_FileAttachments](flowmachineimageversion.md#BKMK_flowmachineimageversion_FileAttachments) + +|Property|Value| +|---|---| +|ReferencedEntity|`flowmachineimageversion`| +|ReferencedAttribute|`flowmachineimageversionid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_flowmachineimageversion`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### flowsession_FileAttachments One-To-Many Relationship: [flowsession flowsession_FileAttachments](flowsession.md#BKMK_flowsession_FileAttachments) @@ -563,6 +595,32 @@ One-To-Many Relationship: [msdyn_aiconfiguration msdyn_aiconfiguration_FileAttac |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### msdyn_aidataprocessingevent_FileAttachments + +One-To-Many Relationship: [msdyn_aidataprocessingevent msdyn_aidataprocessingevent_FileAttachments](msdyn_aidataprocessingevent.md#BKMK_msdyn_aidataprocessingevent_FileAttachments) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aidataprocessingevent`| +|ReferencedAttribute|`msdyn_aidataprocessingeventid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_msdyn_aidataprocessingevent`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestcasedocument_FileAttachments + +One-To-Many Relationship: [msdyn_aitestcasedocument msdyn_aitestcasedocument_FileAttachments](msdyn_aitestcasedocument.md#BKMK_msdyn_aitestcasedocument_FileAttachments) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcasedocument`| +|ReferencedAttribute|`msdyn_aitestcasedocumentid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_msdyn_aitestcasedocument`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### msdyn_analysisjob_FileAttachments One-To-Many Relationship: [msdyn_analysisjob msdyn_analysisjob_FileAttachments](msdyn_analysisjob.md#BKMK_msdyn_analysisjob_FileAttachments) @@ -849,6 +907,19 @@ One-To-Many Relationship: [stagesolutionupload stagesolutionupload_FileAttachmen |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### unstructuredfilesearchrecord_FileAttachments + +One-To-Many Relationship: [unstructuredfilesearchrecord unstructuredfilesearchrecord_FileAttachments](unstructuredfilesearchrecord.md#BKMK_unstructuredfilesearchrecord_FileAttachments) + +|Property|Value| +|---|---| +|ReferencedEntity|`unstructuredfilesearchrecord`| +|ReferencedAttribute|`unstructuredfilesearchrecordid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_unstructuredfilesearchrecord`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### webresource_FileAttachments One-To-Many Relationship: [webresource webresource_FileAttachments](webresource.md#BKMK_webresource_FileAttachments) @@ -888,6 +959,19 @@ One-To-Many Relationship: [workflowlog workflowlog_FileAttachments](workflowlog. |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### workflowmetadata_FileAttachments + +One-To-Many Relationship: [workflowmetadata workflowmetadata_FileAttachments](workflowmetadata.md#BKMK_workflowmetadata_FileAttachments) + +|Property|Value| +|---|---| +|ReferencedEntity|`workflowmetadata`| +|ReferencedAttribute|`workflowmetadataid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_workflowmetadata`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ## One-to-Many relationships @@ -895,6 +979,8 @@ These relationships are one-to-many. Listed by **SchemaName**. - [FileAttachment_activityfileattachment_FileContent](#BKMK_FileAttachment_activityfileattachment_FileContent) - [FileAttachment_ActivityPointer_DescriptionBlobId](#BKMK_FileAttachment_ActivityPointer_DescriptionBlobId) +- [FileAttachment_approvalprocess_Inputs](#BKMK_FileAttachment_approvalprocess_Inputs) +- [FileAttachment_approvalprocess_Stages](#BKMK_FileAttachment_approvalprocess_Stages) - [FileAttachment_AsyncOperation_DataBlobId](#BKMK_FileAttachment_AsyncOperation_DataBlobId) - [FileAttachment_botcomponent_FileData](#BKMK_FileAttachment_botcomponent_FileData) - [FileAttachment_CanvasApp_Assets](#BKMK_FileAttachment_CanvasApp_Assets) @@ -910,6 +996,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [FileAttachment_Email_DescriptionBlobId](#BKMK_FileAttachment_Email_DescriptionBlobId) - [FileAttachment_exportedexcel_ExcelContent](#BKMK_FileAttachment_exportedexcel_ExcelContent) - [FileAttachment_ExportSolutionUpload_SolutionFile](#BKMK_FileAttachment_ExportSolutionUpload_SolutionFile) +- [FileAttachment_flowmachineimageversion_generalizationlogs](#BKMK_FileAttachment_flowmachineimageversion_generalizationlogs) - [FileAttachment_FlowSession_AdditionalContext](#BKMK_FileAttachment_FlowSession_AdditionalContext) - [FileAttachment_FlowSession_Inputs](#BKMK_FileAttachment_FlowSession_Inputs) - [FileAttachment_FlowSession_Outputs](#BKMK_FileAttachment_FlowSession_Outputs) @@ -919,6 +1006,8 @@ These relationships are one-to-many. Listed by **SchemaName**. - [FileAttachment_msdyn_AIBFeedbackLoop_msdyn_PredictionResult](#BKMK_FileAttachment_msdyn_AIBFeedbackLoop_msdyn_PredictionResult) - [FileAttachment_msdyn_AIBFile_msdyn_File](#BKMK_FileAttachment_msdyn_AIBFile_msdyn_File) - [FileAttachment_msdyn_AIConfiguration_msdyn_Model](#BKMK_FileAttachment_msdyn_AIConfiguration_msdyn_Model) +- [FileAttachment_msdyn_AIDataProcessingEvent_msdyn_InputData](#BKMK_FileAttachment_msdyn_AIDataProcessingEvent_msdyn_InputData) +- [FileAttachment_msdyn_AITestCaseDocument_msdyn_InputFile](#BKMK_FileAttachment_msdyn_AITestCaseDocument_msdyn_InputFile) - [FileAttachment_msdyn_analysisjob_msdyn_AnalysisJobsReport](#BKMK_FileAttachment_msdyn_analysisjob_msdyn_AnalysisJobsReport) - [FileAttachment_msdyn_FileUpload_msdyn_ErrorLog](#BKMK_FileAttachment_msdyn_FileUpload_msdyn_ErrorLog) - [FileAttachment_msdyn_FileUpload_msdyn_FileContent](#BKMK_FileAttachment_msdyn_FileUpload_msdyn_FileContent) @@ -963,11 +1052,13 @@ These relationships are one-to-many. Listed by **SchemaName**. - [fileattachment_solution_fileid](#BKMK_fileattachment_solution_fileid) - [FileAttachment_StageSolutionUpload_SolutionFile](#BKMK_FileAttachment_StageSolutionUpload_SolutionFile) - [FileAttachment_SyncErrors](#BKMK_FileAttachment_SyncErrors) +- [FileAttachment_unstructuredfilesearchrecord_Filedata](#BKMK_FileAttachment_unstructuredfilesearchrecord_Filedata) - [FileAttachment_WebResource_ContentFileRef](#BKMK_FileAttachment_WebResource_ContentFileRef) - [FileAttachment_WebResource_ContentJsonFileRef](#BKMK_FileAttachment_WebResource_ContentJsonFileRef) - [FileAttachment_workflowbinary_Data](#BKMK_FileAttachment_workflowbinary_Data) - [FileAttachment_WorkflowLog_Inputs](#BKMK_FileAttachment_WorkflowLog_Inputs) - [FileAttachment_WorkflowLog_Outputs](#BKMK_FileAttachment_WorkflowLog_Outputs) +- [FileAttachment_WorkflowMetadata_FileValue](#BKMK_FileAttachment_WorkflowMetadata_FileValue) ### FileAttachment_activityfileattachment_FileContent @@ -993,6 +1084,30 @@ Many-To-One Relationship: [activitypointer FileAttachment_ActivityPointer_Descri |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### FileAttachment_approvalprocess_Inputs + +Many-To-One Relationship: [approvalprocess FileAttachment_approvalprocess_Inputs](approvalprocess.md#BKMK_FileAttachment_approvalprocess_Inputs) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalprocess`| +|ReferencingAttribute|`inputs`| +|ReferencedEntityNavigationPropertyName|`FileAttachment_approvalprocess_Inputs`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### FileAttachment_approvalprocess_Stages + +Many-To-One Relationship: [approvalprocess FileAttachment_approvalprocess_Stages](approvalprocess.md#BKMK_FileAttachment_approvalprocess_Stages) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalprocess`| +|ReferencingAttribute|`stages`| +|ReferencedEntityNavigationPropertyName|`FileAttachment_approvalprocess_Stages`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### FileAttachment_AsyncOperation_DataBlobId Many-To-One Relationship: [asyncoperation FileAttachment_AsyncOperation_DataBlobId](asyncoperation.md#BKMK_FileAttachment_AsyncOperation_DataBlobId) @@ -1173,6 +1288,18 @@ Many-To-One Relationship: [exportsolutionupload FileAttachment_ExportSolutionUpl |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### FileAttachment_flowmachineimageversion_generalizationlogs + +Many-To-One Relationship: [flowmachineimageversion FileAttachment_flowmachineimageversion_generalizationlogs](flowmachineimageversion.md#BKMK_FileAttachment_flowmachineimageversion_generalizationlogs) + +|Property|Value| +|---|---| +|ReferencingEntity|`flowmachineimageversion`| +|ReferencingAttribute|`generalizationlogs`| +|ReferencedEntityNavigationPropertyName|`FileAttachment_flowmachineimageversion_generalizationlogs`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### FileAttachment_FlowSession_AdditionalContext Many-To-One Relationship: [flowsession FileAttachment_FlowSession_AdditionalContext](flowsession.md#BKMK_FileAttachment_FlowSession_AdditionalContext) @@ -1281,6 +1408,30 @@ Many-To-One Relationship: [msdyn_aiconfiguration FileAttachment_msdyn_AIConfigur |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### FileAttachment_msdyn_AIDataProcessingEvent_msdyn_InputData + +Many-To-One Relationship: [msdyn_aidataprocessingevent FileAttachment_msdyn_AIDataProcessingEvent_msdyn_InputData](msdyn_aidataprocessingevent.md#BKMK_FileAttachment_msdyn_AIDataProcessingEvent_msdyn_InputData) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aidataprocessingevent`| +|ReferencingAttribute|`msdyn_inputdata`| +|ReferencedEntityNavigationPropertyName|`FileAttachment_msdyn_AIDataProcessingEvent_msdyn_InputData`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### FileAttachment_msdyn_AITestCaseDocument_msdyn_InputFile + +Many-To-One Relationship: [msdyn_aitestcasedocument FileAttachment_msdyn_AITestCaseDocument_msdyn_InputFile](msdyn_aitestcasedocument.md#BKMK_FileAttachment_msdyn_AITestCaseDocument_msdyn_InputFile) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestcasedocument`| +|ReferencingAttribute|`msdyn_inputfile`| +|ReferencedEntityNavigationPropertyName|`FileAttachment_msdyn_AITestCaseDocument_msdyn_InputFile`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### FileAttachment_msdyn_analysisjob_msdyn_AnalysisJobsReport Many-To-One Relationship: [msdyn_analysisjob FileAttachment_msdyn_analysisjob_msdyn_AnalysisJobsReport](msdyn_analysisjob.md#BKMK_FileAttachment_msdyn_analysisjob_msdyn_AnalysisJobsReport) @@ -1809,6 +1960,18 @@ Many-To-One Relationship: [syncerror FileAttachment_SyncErrors](syncerror.md#BKM |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### FileAttachment_unstructuredfilesearchrecord_Filedata + +Many-To-One Relationship: [unstructuredfilesearchrecord FileAttachment_unstructuredfilesearchrecord_Filedata](unstructuredfilesearchrecord.md#BKMK_FileAttachment_unstructuredfilesearchrecord_Filedata) + +|Property|Value| +|---|---| +|ReferencingEntity|`unstructuredfilesearchrecord`| +|ReferencingAttribute|`filedata`| +|ReferencedEntityNavigationPropertyName|`FileAttachment_unstructuredfilesearchrecord_Filedata`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### FileAttachment_WebResource_ContentFileRef Many-To-One Relationship: [webresource FileAttachment_WebResource_ContentFileRef](webresource.md#BKMK_FileAttachment_WebResource_ContentFileRef) @@ -1869,6 +2032,18 @@ Many-To-One Relationship: [workflowlog FileAttachment_WorkflowLog_Outputs](workf |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### FileAttachment_WorkflowMetadata_FileValue + +Many-To-One Relationship: [workflowmetadata FileAttachment_WorkflowMetadata_FileValue](workflowmetadata.md#BKMK_FileAttachment_WorkflowMetadata_FileValue) + +|Property|Value| +|---|---| +|ReferencingEntity|`workflowmetadata`| +|ReferencingAttribute|`filevalue`| +|ReferencedEntityNavigationPropertyName|`FileAttachment_WorkflowMetadata_FileValue`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### See also diff --git a/powerapps-docs/developer/data-platform/reference/entities/flowaggregation.md b/powerapps-docs/developer/data-platform/reference/entities/flowaggregation.md new file mode 100644 index 0000000000..3eb94a0f48 --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/flowaggregation.md @@ -0,0 +1,705 @@ +--- +title: "Flow Aggregation (flowaggregation) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the Flow Aggregation (flowaggregation) table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# Flow Aggregation (flowaggregation) table/entity reference (Microsoft Dataverse) + + + +## Messages + +The following table lists the messages for the Flow Aggregation (flowaggregation) table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Assign`
Event: True |`PATCH` /flowaggregations(*flowaggregationid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /flowaggregations
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /flowaggregations(*flowaggregationid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `DeleteMultiple`
Event: True | |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `Retrieve`
Event: True |`GET` /flowaggregations(*flowaggregationid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveEntityChanges`
Event: True | || +| `RetrieveMultiple`
Event: True |`GET` /flowaggregations
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `RetrievePrincipalAccess`
Event: True | || +| `Update`
Event: True |`PATCH` /flowaggregations(*flowaggregationid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: True |`PATCH` /flowaggregations(*flowaggregationid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: True | || + +## Properties + +The following table lists selected properties for the Flow Aggregation (flowaggregation) table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **Flow Aggregation** | +| **DisplayCollectionName** | **Flow Aggregations** | +| **SchemaName** | `flowaggregation` | +| **CollectionSchemaName** | `flowaggregations` | +| **EntitySetName** | `flowaggregations`| +| **LogicalName** | `flowaggregation` | +| **LogicalCollectionName** | `flowaggregations` | +| **PrimaryIdAttribute** | `flowaggregationid` | +| **PrimaryNameAttribute** |`name` | +| **TableType** | `Elastic` | +| **OwnershipType** | `UserOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [aggregationtype](#BKMK_aggregationtype) +- [aggregationvalue](#BKMK_aggregationvalue) +- [errorcode](#BKMK_errorcode) +- [flowaggregationId](#BKMK_flowaggregationId) +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [IsTopLevelRun](#BKMK_IsTopLevelRun) +- [Name](#BKMK_Name) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [PartitionId](#BKMK_PartitionId) +- [status](#BKMK_status) +- [timeend](#BKMK_timeend) +- [timestart](#BKMK_timestart) +- [triggertype](#BKMK_triggertype) +- [TTLInSeconds](#BKMK_TTLInSeconds) +- [value](#BKMK_value) +- [WorkflowCategory](#BKMK_WorkflowCategory) +- [workflowid](#BKMK_workflowid) + +### aggregationtype + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Aggregation Type**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`aggregationtype`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### aggregationvalue + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Aggregation value**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`aggregationvalue`| +|RequiredLevel|ApplicationRequired| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +### errorcode + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Error Code**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`errorcode`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### flowaggregationId + +|Property|Value| +|---|---| +|Description|**Unique identifier for entity instances**| +|DisplayName|**flowaggregation**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`flowaggregationid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### IsTopLevelRun + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Is Top Level Run**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`istoplevelrun`| +|RequiredLevel|None| +|Type|Boolean| +|GlobalChoiceName|`flowaggregation_istoplevelrun`| +|DefaultValue|False| +|True Label|Yes| +|False Label|No| + +### Name + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`name`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### PartitionId + +|Property|Value| +|---|---| +|Description|**Logical partition id. A logical partition consists of a set of records with same partition id.**| +|DisplayName|**Partition Id**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`partitionid`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### status + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`status`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### timeend + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Time End**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`timeend`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|True| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Auto| +|SourceTypeMask|0| + +### timestart + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Time Start**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`timestart`| +|RequiredLevel|ApplicationRequired| +|Type|DateTime| +|CanChangeDateTimeBehavior|True| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Auto| +|SourceTypeMask|0| + +### triggertype + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**TriggerType**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`triggertype`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### TTLInSeconds + +|Property|Value| +|---|---| +|Description|**Time to live in seconds.**| +|DisplayName|**Time to live**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ttlinseconds`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|1| + +### value + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Value**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`value`| +|RequiredLevel|ApplicationRequired| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +### WorkflowCategory + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**WorkflowCategory**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`workflowcategory`| +|RequiredLevel|None| +|Type|Picklist| +|DefaultFormValue|| +|GlobalChoiceName|`flowaggregation_workflowcategory`| + +#### WorkflowCategory Choices/Options + +|Value|Label| +|---|---| +|5|**ModernFlow**| +|6|**DesktopFlow**| +|7|**AiFlow**| + +### workflowid + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Workflow Id**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`workflowid`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|workflow| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OwnerIdName](#BKMK_OwnerIdName) +- [OwnerIdYomiName](#BKMK_OwnerIdYomiName) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) +- [OwningTeam](#BKMK_OwningTeam) +- [OwningUser](#BKMK_OwningUser) +- [VersionNumber](#BKMK_VersionNumber) + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### OwnerIdName + +|Property|Value| +|---|---| +|Description|**Name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwnerIdYomiName + +|Property|Value| +|---|---| +|Description|**Yomi name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridyominame`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|SystemRequired| +|Type|Lookup| +|Targets|businessunit| + +### OwningTeam + +|Property|Value| +|---|---| +|Description|**Unique identifier for the team that owns the record.**| +|DisplayName|**Owning Team**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningteam`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|team| + +### OwningUser + +|Property|Value| +|---|---| +|Description|**Unique identifier for the user that owns the record.**| +|DisplayName|**Owning User**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owninguser`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [business_unit_flowaggregation](#BKMK_business_unit_flowaggregation) +- [lk_flowaggregation_createdby](#BKMK_lk_flowaggregation_createdby) +- [lk_flowaggregation_createdonbehalfby](#BKMK_lk_flowaggregation_createdonbehalfby) +- [lk_flowaggregation_modifiedby](#BKMK_lk_flowaggregation_modifiedby) +- [lk_flowaggregation_modifiedonbehalfby](#BKMK_lk_flowaggregation_modifiedonbehalfby) +- [owner_flowaggregation](#BKMK_owner_flowaggregation) +- [team_flowaggregation](#BKMK_team_flowaggregation) +- [user_flowaggregation](#BKMK_user_flowaggregation) +- [workflow_flowaggregation_workflowid](#BKMK_workflow_flowaggregation_workflowid) + +### business_unit_flowaggregation + +One-To-Many Relationship: [businessunit business_unit_flowaggregation](businessunit.md#BKMK_business_unit_flowaggregation) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessunit`| +|ReferencedAttribute|`businessunitid`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencingEntityNavigationPropertyName|`owningbusinessunit`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_flowaggregation_createdby + +One-To-Many Relationship: [systemuser lk_flowaggregation_createdby](systemuser.md#BKMK_lk_flowaggregation_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_flowaggregation_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_flowaggregation_createdonbehalfby](systemuser.md#BKMK_lk_flowaggregation_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_flowaggregation_modifiedby + +One-To-Many Relationship: [systemuser lk_flowaggregation_modifiedby](systemuser.md#BKMK_lk_flowaggregation_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_flowaggregation_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_flowaggregation_modifiedonbehalfby](systemuser.md#BKMK_lk_flowaggregation_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### owner_flowaggregation + +One-To-Many Relationship: [owner owner_flowaggregation](owner.md#BKMK_owner_flowaggregation) + +|Property|Value| +|---|---| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### team_flowaggregation + +One-To-Many Relationship: [team team_flowaggregation](team.md#BKMK_team_flowaggregation) + +|Property|Value| +|---|---| +|ReferencedEntity|`team`| +|ReferencedAttribute|`teamid`| +|ReferencingAttribute|`owningteam`| +|ReferencingEntityNavigationPropertyName|`owningteam`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### user_flowaggregation + +One-To-Many Relationship: [systemuser user_flowaggregation](systemuser.md#BKMK_user_flowaggregation) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`owninguser`| +|ReferencingEntityNavigationPropertyName|`owninguser`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### workflow_flowaggregation_workflowid + +One-To-Many Relationship: [workflow workflow_flowaggregation_workflowid](workflow.md#BKMK_workflow_flowaggregation_workflowid) + +|Property|Value| +|---|---| +|ReferencedEntity|`workflow`| +|ReferencedAttribute|`workflowid`| +|ReferencingAttribute|`workflowid`| +|ReferencingEntityNavigationPropertyName|`workflowid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Cascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/flowcapacityassignment.md b/powerapps-docs/developer/data-platform/reference/entities/flowcapacityassignment.md index 312fe97777..a64ad3b6b9 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/flowcapacityassignment.md +++ b/powerapps-docs/developer/data-platform/reference/entities/flowcapacityassignment.md @@ -123,10 +123,10 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |---|---| |Description|**Number of missing add-ons to be compliant**| |DisplayName|**CapacityOverage**| -|IsValidForForm|True| +|IsValidForForm|False| |IsValidForRead|True| |LogicalName|`capacityoverage`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Integer| |MaxValue|2147483647| |MinValue|0| @@ -165,7 +165,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |LogicalName|`capacitytype`| |RequiredLevel|SystemRequired| |Type|Picklist| -|DefaultFormValue|| +|DefaultFormValue|-1| |GlobalChoiceName|`flowcapacityassignment_capacitytype`| #### CapacityType Choices/Options @@ -174,6 +174,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |---|---| |0|**PowerAutomateHostedRpa**| |1|**PowerAutomatePerProcess**| +|2|**PowerAutomateProcessMining**| ### Count @@ -285,7 +286,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |LogicalName|`regarding`| |RequiredLevel|SystemRequired| |Type|Lookup| -|Targets|flowmachine, flowmachinegroup, workflow| +|Targets|flowmachine, flowmachinegroup, msdyn_pminferredtask, workflow| ### regardingIdType @@ -567,6 +568,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [business_unit_flowcapacityassignment](#BKMK_business_unit_flowcapacityassignment) - [flowcapacityassignment_flowmachine](#BKMK_flowcapacityassignment_flowmachine) - [flowcapacityassignment_flowmachinegroup](#BKMK_flowcapacityassignment_flowmachinegroup) +- [flowcapacityassignment_msdyn_pminferredtask](#BKMK_flowcapacityassignment_msdyn_pminferredtask) - [flowcapacityassignment_workflow](#BKMK_flowcapacityassignment_workflow) - [lk_flowcapacityassignment_createdby](#BKMK_lk_flowcapacityassignment_createdby) - [lk_flowcapacityassignment_createdonbehalfby](#BKMK_lk_flowcapacityassignment_createdonbehalfby) @@ -615,6 +617,19 @@ One-To-Many Relationship: [flowmachinegroup flowcapacityassignment_flowmachinegr |IsHierarchical|| |CascadeConfiguration|Archive: `Cascade`
Assign: `Cascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `Cascade`
Unshare: `Cascade`| +### flowcapacityassignment_msdyn_pminferredtask + +One-To-Many Relationship: [msdyn_pminferredtask flowcapacityassignment_msdyn_pminferredtask](msdyn_pminferredtask.md#BKMK_flowcapacityassignment_msdyn_pminferredtask) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_pminferredtask`| +|ReferencedAttribute|`msdyn_pminferredtaskid`| +|ReferencingAttribute|`regarding`| +|ReferencingEntityNavigationPropertyName|`regarding_msdyn_pminferredtask`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Cascade`
Assign: `Cascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `Cascade`
Unshare: `Cascade`| + ### flowcapacityassignment_workflow One-To-Many Relationship: [workflow flowcapacityassignment_workflow](workflow.md#BKMK_flowcapacityassignment_workflow) diff --git a/powerapps-docs/developer/data-platform/reference/entities/flowlog.md b/powerapps-docs/developer/data-platform/reference/entities/flowlog.md index ee06a6f34b..4c4a134ab0 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/flowlog.md +++ b/powerapps-docs/developer/data-platform/reference/entities/flowlog.md @@ -360,6 +360,8 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |100000201|**WorkqueueProcessorLog**| |100000300|**DesktopFlowOrchestrationRepairSessionMismatchRequest**| |100000301|**DesktopFlowOrchestrationRepairSessionMismatchResponse**| +|100000310|**DesktopFlowOrchestrationRepairWindowsIdentityIncorrectRequest**| +|100000311|**DesktopFlowOrchestrationRepairWindowsIdentityIncorrectResponse**| ### workqueueid diff --git a/powerapps-docs/developer/data-platform/reference/entities/flowmachinegroup.md b/powerapps-docs/developer/data-platform/reference/entities/flowmachinegroup.md index 028543f962..7859c3bf03 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/flowmachinegroup.md +++ b/powerapps-docs/developer/data-platform/reference/entities/flowmachinegroup.md @@ -67,6 +67,7 @@ The following table lists selected properties for the Flow Machine Group (flowma These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. - [Description](#BKMK_Description) +- [DisconnectionPlannedOn](#BKMK_DisconnectionPlannedOn) - [DomainSetting](#BKMK_DomainSetting) - [FlowGroupType](#BKMK_FlowGroupType) - [flowmachineimage](#BKMK_flowmachineimage) @@ -77,6 +78,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [KeyCreationDate](#BKMK_KeyCreationDate) - [KeyExpiryGracePeriod](#BKMK_KeyExpiryGracePeriod) - [KeyValidityPeriod](#BKMK_KeyValidityPeriod) +- [LastRunDate](#BKMK_LastRunDate) - [ManagementType](#BKMK_ManagementType) - [MaxManagedMachineCount](#BKMK_MaxManagedMachineCount) - [name](#BKMK_name) @@ -116,6 +118,23 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsLocalizable|False| |MaxLength|2000| +### DisconnectionPlannedOn + +|Property|Value| +|---|---| +|Description|**If set, the date on which the machines of the group will be disconnected.**| +|DisplayName|**Disconnection planned on**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`disconnectionplannedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Auto| +|SourceTypeMask|0| + ### DomainSetting |Property|Value| @@ -274,6 +293,23 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |MaxValue|2628000| |MinValue|129600| +### LastRunDate + +|Property|Value| +|---|---| +|Description|**Last date at which a run has targeted the group.**| +|DisplayName|**Last run date**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`lastrundate`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Auto| +|SourceTypeMask|0| + ### ManagementType |Property|Value| diff --git a/powerapps-docs/developer/data-platform/reference/entities/flowmachineimage.md b/powerapps-docs/developer/data-platform/reference/entities/flowmachineimage.md index 5a0a730841..31aa6155ac 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/flowmachineimage.md +++ b/powerapps-docs/developer/data-platform/reference/entities/flowmachineimage.md @@ -88,7 +88,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |LogicalName|`deprecationdate`| |RequiredLevel|None| |Type|DateTime| -|CanChangeDateTimeBehavior|True| +|CanChangeDateTimeBehavior|False| |DateTimeBehavior|UserLocal| |Format|DateAndTime| |ImeMode|Auto| @@ -122,7 +122,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |LogicalName|`endofsupportdate`| |RequiredLevel|None| |Type|DateTime| -|CanChangeDateTimeBehavior|True| +|CanChangeDateTimeBehavior|False| |DateTimeBehavior|UserLocal| |Format|DateAndTime| |ImeMode|Auto| diff --git a/powerapps-docs/developer/data-platform/reference/entities/flowmachineimageversion.md b/powerapps-docs/developer/data-platform/reference/entities/flowmachineimageversion.md index f922d7961c..12ca9b3ac7 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/flowmachineimageversion.md +++ b/powerapps-docs/developer/data-platform/reference/entities/flowmachineimageversion.md @@ -376,6 +376,8 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali - [CreatedBy](#BKMK_CreatedBy) - [CreatedOn](#BKMK_CreatedOn) - [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [generalizationlogs](#BKMK_generalizationlogs) +- [generalizationlogs_Name](#BKMK_generalizationlogs_Name) - [IsManaged](#BKMK_IsManaged) - [ModifiedBy](#BKMK_ModifiedBy) - [ModifiedOn](#BKMK_ModifiedOn) @@ -468,6 +470,36 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |Type|Lookup| |Targets|systemuser| +### generalizationlogs + +|Property|Value| +|---|---| +|Description|**File containing logs of image generalization process to help debug provisioning errors.**| +|DisplayName|**Generalization logs**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`generalizationlogs`| +|RequiredLevel|None| +|Type|File| +|MaxSizeInKB|32768| + +### generalizationlogs_Name + +|Property|Value| +|---|---| +|Description|| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`generalizationlogs_name`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Disabled| +|IsLocalizable|False| +|MaxLength|200| + ### IsManaged |Property|Value| @@ -587,7 +619,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| @@ -660,6 +692,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali These relationships are many-to-one. Listed by **SchemaName**. - [business_unit_flowmachineimageversion](#BKMK_business_unit_flowmachineimageversion) +- [FileAttachment_flowmachineimageversion_generalizationlogs](#BKMK_FileAttachment_flowmachineimageversion_generalizationlogs) - [flowmachineimage_flowmachineimageversion](#BKMK_flowmachineimage_flowmachineimageversion) - [flowmachineimageversion_flowmachine](#BKMK_flowmachineimageversion_flowmachine) - [lk_flowmachineimageversion_createdby](#BKMK_lk_flowmachineimageversion_createdby) @@ -683,6 +716,19 @@ One-To-Many Relationship: [businessunit business_unit_flowmachineimageversion](b |IsHierarchical|| |CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### FileAttachment_flowmachineimageversion_generalizationlogs + +One-To-Many Relationship: [fileattachment FileAttachment_flowmachineimageversion_generalizationlogs](fileattachment.md#BKMK_FileAttachment_flowmachineimageversion_generalizationlogs) + +|Property|Value| +|---|---| +|ReferencedEntity|`fileattachment`| +|ReferencedAttribute|`fileattachmentid`| +|ReferencingAttribute|`generalizationlogs`| +|ReferencingEntityNavigationPropertyName|`generalizationlogs`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### flowmachineimage_flowmachineimageversion One-To-Many Relationship: [flowmachineimage flowmachineimage_flowmachineimageversion](flowmachineimage.md#BKMK_flowmachineimage_flowmachineimageversion) @@ -810,6 +856,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [flowmachineimageversion_BulkDeleteFailures](#BKMK_flowmachineimageversion_BulkDeleteFailures) - [flowmachineimageversion_DuplicateBaseRecord](#BKMK_flowmachineimageversion_DuplicateBaseRecord) - [flowmachineimageversion_DuplicateMatchingRecord](#BKMK_flowmachineimageversion_DuplicateMatchingRecord) +- [flowmachineimageversion_FileAttachments](#BKMK_flowmachineimageversion_FileAttachments) - [flowmachineimageversion_MailboxTrackingFolders](#BKMK_flowmachineimageversion_MailboxTrackingFolders) - [flowmachineimageversion_PrincipalObjectAttributeAccesses](#BKMK_flowmachineimageversion_PrincipalObjectAttributeAccesses) - [flowmachineimageversion_ProcessSession](#BKMK_flowmachineimageversion_ProcessSession) @@ -875,6 +922,18 @@ Many-To-One Relationship: [duplicaterecord flowmachineimageversion_DuplicateMatc |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### flowmachineimageversion_FileAttachments + +Many-To-One Relationship: [fileattachment flowmachineimageversion_FileAttachments](fileattachment.md#BKMK_flowmachineimageversion_FileAttachments) + +|Property|Value| +|---|---| +|ReferencingEntity|`fileattachment`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`flowmachineimageversion_FileAttachments`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### flowmachineimageversion_MailboxTrackingFolders Many-To-One Relationship: [mailboxtrackingfolder flowmachineimageversion_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_flowmachineimageversion_MailboxTrackingFolders) diff --git a/powerapps-docs/developer/data-platform/reference/entities/flowrun.md b/powerapps-docs/developer/data-platform/reference/entities/flowrun.md index 3b34dae71c..3a89eb151f 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/flowrun.md +++ b/powerapps-docs/developer/data-platform/reference/entities/flowrun.md @@ -57,6 +57,10 @@ The following table lists selected properties for the Flow Run (flowrun) table. These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. +- [CallingProductResourceId](#BKMK_CallingProductResourceId) +- [CallingProductRunId](#BKMK_CallingProductRunId) +- [CallingProductType](#BKMK_CallingProductType) +- [ConversationId](#BKMK_ConversationId) - [DurationInMs](#BKMK_DurationInMs) - [EndTime](#BKMK_EndTime) - [ErrorCode](#BKMK_ErrorCode) @@ -64,6 +68,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [flowrunId](#BKMK_flowrunId) - [ImportSequenceNumber](#BKMK_ImportSequenceNumber) - [IsPrimary](#BKMK_IsPrimary) +- [ModernFlowType](#BKMK_ModernFlowType) - [name](#BKMK_name) - [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) - [OwnerId](#BKMK_OwnerId) @@ -80,6 +85,74 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [Workflow](#BKMK_Workflow) - [WorkflowId](#BKMK_WorkflowId) +### CallingProductResourceId + +|Property|Value| +|---|---| +|Description|**The resource id of the caller**| +|DisplayName|**Calling product resource id**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`callingproductresourceid`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|255| + +### CallingProductRunId + +|Property|Value| +|---|---| +|Description|**The run id of the caller**| +|DisplayName|**Calling product run id**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`callingproductrunid`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|255| + +### CallingProductType + +|Property|Value| +|---|---| +|Description|**The type of the product that triggered the run**| +|DisplayName|**Calling product type**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`callingproducttype`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|255| + +### ConversationId + +|Property|Value| +|---|---| +|Description|**Copilot Studio Conversation id**| +|DisplayName|**Conversation id**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`conversationid`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|2048| + ### DurationInMs |Property|Value| @@ -192,6 +265,27 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |0|**false**| |1|**true**| +### ModernFlowType + +|Property|Value| +|---|---| +|Description|**Type of the Power Automate Cloud Flow.**| +|DisplayName|**Power Automate Cloud Flow Type**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modernflowtype`| +|RequiredLevel|None| +|Type|Picklist| +|DefaultFormValue|0| +|GlobalChoiceName|`flowrun_modernflowtype`| + +#### ModernFlowType Choices/Options + +|Value|Label| +|---|---| +|0|**PowerAutomateFlow**| +|1|**CopilotStudioFlow**| + ### name |Property|Value| diff --git a/powerapps-docs/developer/data-platform/reference/entities/flowsession.md b/powerapps-docs/developer/data-platform/reference/entities/flowsession.md index 07a79526bb..9acd4a1dec 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/flowsession.md +++ b/powerapps-docs/developer/data-platform/reference/entities/flowsession.md @@ -86,6 +86,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [OwnerId](#BKMK_OwnerId) - [OwnerIdType](#BKMK_OwnerIdType) - [ParentCloudFlowRunSequenceId](#BKMK_ParentCloudFlowRunSequenceId) +- [ParentDesktopFlowRunId](#BKMK_ParentDesktopFlowRunId) - [ParentWorkflowId](#BKMK_ParentWorkflowId) - [ProcessVersion](#BKMK_ProcessVersion) - [RegardingObjectId](#BKMK_RegardingObjectId) @@ -101,6 +102,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [StartedOn](#BKMK_StartedOn) - [statecode](#BKMK_statecode) - [statuscode](#BKMK_statuscode) +- [SubCategory](#BKMK_SubCategory) - [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) - [TriggerType](#BKMK_TriggerType) - [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) @@ -466,6 +468,19 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsLocalizable|False| |MaxLength|1000| +### ParentDesktopFlowRunId + +|Property|Value| +|---|---| +|Description|**The run id of the parent desktop flow run, only used when the Desktop Flow was run by a desktop flow.**| +|DisplayName|**Parent Desktop Flow Run Id**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`parentdesktopflowrunid`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|flowsession| + ### ParentWorkflowId |Property|Value| @@ -734,6 +749,27 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |13|Label: **Deleted**
State:1
TransitionData: None| |14|Label: **Terminated**
State:1
TransitionData: None| +### SubCategory + +|Property|Value| +|---|---| +|Description|**Sub-Category of the flow session.**| +|DisplayName|**Sub-Category**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`subcategory`| +|RequiredLevel|SystemRequired| +|Type|Picklist| +|DefaultFormValue|0| +|GlobalChoiceName|`flowsession_subcategory`| + +#### SubCategory Choices/Options + +|Value|Label| +|---|---| +|0|**Default**| +|1|**Test**| + ### TimeZoneRuleVersionNumber |Property|Value| @@ -1082,6 +1118,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [FileAttachment_FlowSession_Outputs](#BKMK_FileAttachment_FlowSession_Outputs) - [flowmachine_flowsession_MachineId](#BKMK_flowmachine_flowsession_MachineId) - [flowmachinegroup_flowsession_MachineGroupId](#BKMK_flowmachinegroup_flowsession_MachineGroupId) +- [flowsession_flowsession_parentdesktopflowrunid](#BKMK_flowsession_flowsession_parentdesktopflowrunid-many-to-one) - [lk_flowsession_createdby](#BKMK_lk_flowsession_createdby) - [lk_flowsession_createdonbehalfby](#BKMK_lk_flowsession_createdonbehalfby) - [lk_flowsession_modifiedby](#BKMK_lk_flowsession_modifiedby) @@ -1169,6 +1206,19 @@ One-To-Many Relationship: [flowmachinegroup flowmachinegroup_flowsession_Machine |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### flowsession_flowsession_parentdesktopflowrunid + +One-To-Many Relationship: [flowsession flowsession_flowsession_parentdesktopflowrunid](#BKMK_flowsession_flowsession_parentdesktopflowrunid-one-to-many) + +|Property|Value| +|---|---| +|ReferencedEntity|`flowsession`| +|ReferencedAttribute|`flowsessionid`| +|ReferencingAttribute|`parentdesktopflowrunid`| +|ReferencingEntityNavigationPropertyName|`parentdesktopflowrunid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### lk_flowsession_createdby One-To-Many Relationship: [systemuser lk_flowsession_createdby](systemuser.md#BKMK_lk_flowsession_createdby) @@ -1284,10 +1334,12 @@ These relationships are one-to-many. Listed by **SchemaName**. - [flowsession_FileAttachments](#BKMK_flowsession_FileAttachments) - [flowsession_flowlog_flowsessionid](#BKMK_flowsession_flowlog_flowsessionid) - [flowsession_flowlog_parentobjectid](#BKMK_flowsession_flowlog_parentobjectid) +- [flowsession_flowsession_parentdesktopflowrunid](#BKMK_flowsession_flowsession_parentdesktopflowrunid-one-to-many) - [flowsession_MailboxTrackingFolders](#BKMK_flowsession_MailboxTrackingFolders) - [flowsession_PrincipalObjectAttributeAccesses](#BKMK_flowsession_PrincipalObjectAttributeAccesses) - [flowsession_SyncErrors](#BKMK_flowsession_SyncErrors) - [flowsession_workflowbinary_FlowSessionId](#BKMK_flowsession_workflowbinary_FlowSessionId) +- [taggedflowsession_FlowSession_flowsession](#BKMK_taggedflowsession_FlowSession_flowsession) ### flowevent_flowsession @@ -1361,6 +1413,18 @@ Many-To-One Relationship: [flowlog flowsession_flowlog_parentobjectid](flowlog.m |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### flowsession_flowsession_parentdesktopflowrunid + +Many-To-One Relationship: [flowsession flowsession_flowsession_parentdesktopflowrunid](#BKMK_flowsession_flowsession_parentdesktopflowrunid-many-to-one) + +|Property|Value| +|---|---| +|ReferencingEntity|`flowsession`| +|ReferencingAttribute|`parentdesktopflowrunid`| +|ReferencedEntityNavigationPropertyName|`flowsession_flowsession_parentdesktopflowrunid`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### flowsession_MailboxTrackingFolders Many-To-One Relationship: [mailboxtrackingfolder flowsession_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_flowsession_MailboxTrackingFolders) @@ -1409,6 +1473,18 @@ Many-To-One Relationship: [workflowbinary flowsession_workflowbinary_FlowSession |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### taggedflowsession_FlowSession_flowsession + +Many-To-One Relationship: [taggedflowsession taggedflowsession_FlowSession_flowsession](taggedflowsession.md#BKMK_taggedflowsession_FlowSession_flowsession) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedflowsession`| +|ReferencingAttribute|`flowsession`| +|ReferencedEntityNavigationPropertyName|`taggedflowsession_FlowSession_flowsession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### See also diff --git a/powerapps-docs/developer/data-platform/reference/entities/governanceconfiguration.md b/powerapps-docs/developer/data-platform/reference/entities/governanceconfiguration.md index 5c4d182fe1..040d9d2976 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/governanceconfiguration.md +++ b/powerapps-docs/developer/data-platform/reference/entities/governanceconfiguration.md @@ -110,7 +110,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |FormatName|Text| |ImeMode|Auto| |IsLocalizable|False| -|MaxLength|20000| +|MaxLength|600000| ### Enabled diff --git a/powerapps-docs/developer/data-platform/reference/entities/importmap.md b/powerapps-docs/developer/data-platform/reference/entities/importmap.md index e20935d978..7e86dab06b 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/importmap.md +++ b/powerapps-docs/developer/data-platform/reference/entities/importmap.md @@ -901,6 +901,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |4812|**Time Zone Localized Name**| |5000|**Recently Used**| |5004|**NL2SQ Registration Information**| +|5006|**Event Expander Breadcrumb**| |7000|**System Application Metadata**| |7001|**User Application Metadata**| |7100|**Solution**| @@ -1106,268 +1107,300 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |10083|**ApplicationUser**| |10086|**OData v4 Data Source**| |10087|**Workflow Binary**| -|10088|**Credential**| -|10089|**Desktop Flow Module**| -|10090|**Flow Capacity Assignment**| -|10091|**Flow Credential Application**| -|10092|**Flow Event**| -|10093|**Flow Machine**| -|10094|**Flow Machine Group**| -|10095|**Flow Machine Image**| -|10096|**Flow Machine Image Version**| -|10097|**Flow Machine Network**| -|10098|**ProcessStageParameter**| -|10099|**Work Queue**| -|10100|**Work Queue Item**| -|10101|**Desktop Flow Binary**| -|10102|**Flow Log**| -|10103|**Flow Run**| -|10104|**Action Approval Model**| -|10105|**Approval**| -|10106|**Approval Request**| -|10107|**Approval Response**| -|10108|**Approval Step**| -|10109|**Await All Action Approval Model**| -|10110|**Await All Approval Model**| -|10111|**Basic Approval Model Data**| -|10112|**Flow Approval**| -|10121|**Connection Reference**| -|10122|**DVFileSearch**| -|10123|**DVFileSearchAttribute**| -|10124|**DVFileSearchEntity**| -|10125|**DVTableSearch**| -|10126|**DVTableSearchAttribute**| -|10127|**DVTableSearchEntity**| -|10128|**AICopilot**| -|10129|**AIPluginAuth**| -|10130|**AI Plugin Conversation Starter**| -|10131|**AI Plugin Conversation Starter Mapping**| -|10132|**AI Plugin Governance**| -|10133|**AI Plugin Governance Extended**| -|10134|**AIPluginOperationResponseTemplate**| -|10135|**AIPluginTitle**| -|10136|**SideloadedAIPlugin**| -|10137|**AIPlugin**| -|10138|**AIPluginExternalSchema**| -|10139|**AIPluginExternalSchemaProperty**| -|10140|**AIPluginInstance**| -|10141|**AIPluginOperation**| -|10142|**AIPluginOperationParameter**| -|10143|**AIPluginUserSetting**| -|10145|**AI Event**| -|10146|**AI Builder Feedback Loop**| -|10147|**AI Form Processing Document**| -|10148|**AI Object Detection Image**| -|10149|**AI Object Detection Label**| -|10150|**AI Object Detection Bounding Box**| -|10151|**AI Object Detection Image Mapping**| -|10153|**AI Builder Dataset**| -|10154|**AI Builder Dataset File**| -|10155|**AI Builder Dataset Record**| -|10156|**AI Builder Datasets Container**| -|10157|**AI Builder File**| -|10158|**AI Builder File Attached Data**| -|10159|**Help Page**| -|10160|**Tour**| -|10161|**BotContent**| -|10162|**ConversationTranscript**| -|10163|**Copilot**| -|10164|**Copilot component**| -|10165|**Copilot component collection**| -|10176|**Comment**| -|10177|**Governance Configuration**| -|10178|**Fabric AISkill**| -|10179|**App Insights Metadata**| -|10180|**Dataflow Connection Reference**| -|10181|**Schedule**| -|10182|**Dataflow Template**| -|10183|**Dataflow DatalakeFolder**| -|10184|**Data Movement Service Request**| -|10185|**Data Movement Service Request Status**| -|10186|**DMS Sync Request**| -|10187|**DMS Sync Status**| -|10188|**Knowledge Asset Configuration**| -|10189|**Module Run Detail**| -|10190|**QnA**| -|10191|**Salesforce Structured Object**| -|10192|**Salesforce Structured QnA Config**| -|10193|**Workflow Action Status**| -|10194|**FederatedKnowledgeConfiguration**| -|10195|**FederatedKnowledgeEntityConfiguration**| -|10196|**Form Mapping**| -|10197|**Copilot Interactions**| -|10198|**PDF Setting**| -|10199|**Activity File Attachment**| -|10200|**Teams chat**| -|10201|**Service Configuration**| -|10202|**SLA KPI**| -|10203|**Integrated search provider**| -|10204|**Knowledge Management Setting**| -|10205|**Knowledge Federated Article**| -|10206|**Knowledge Federated Article Incident**| -|10207|**Search provider**| -|10208|**Knowledge Article Image**| -|10209|**Knowledge Configuration**| -|10210|**Knowledge Interaction Insight**| -|10211|**Knowledge Search Insight**| -|10212|**Favorite knowledge article**| -|10213|**Knowledge article language setting**| -|10214|**Knowledge Article Attachment**| -|10215|**Knowledge personalization**| -|10216|**Knowledge Article Template**| -|10217|**Knowledge search personal filter config**| -|10218|**Knowledge search filter**| -|10220|**SupportUserTable**| -|10221|**FxExpression**| -|10222|**Function**| -|10223|**Plug-in**| -|10224|**PowerfxRule**| -|10225|**Planner Business Scenario**| -|10226|**Planner Sync Action**| -|10227|**Ms Graph Resource To Subscription**| -|10228|**Virtual Entity Metadata**| -|10229|**Background Operation**| -|10230|**Report Parameter**| -|10231|**MobileOfflineProfileExtension**| -|10232|**MobileOfflineProfileItemFilter**| -|10233|**TeamMobileOfflineProfileMembership**| -|10234|**UserMobileOfflineProfileMembership**| -|10235|**OrganizationDataSyncSubscription**| -|10236|**OrganizationDataSyncSubscriptionEntity**| -|10237|**OrganizationDataSyncSubscriptionFnoTable**| -|10238|**OrganizationDataSyncFnoState**| -|10239|**OrganizationDataSyncState**| -|10240|**ArchiveCleanupInfo**| -|10241|**ArchiveCleanupOperation**| -|10242|**BulkArchiveConfig**| -|10243|**BulkArchiveFailureDetail**| -|10244|**BulkArchiveOperation**| -|10245|**BulkArchiveOperationDetail**| -|10246|**EnableArchivalRequest**| -|10247|**MetadataForArchival**| -|10248|**ReconciliationEntityInfo**| -|10249|**ReconciliationEntityStepInfo**| -|10250|**ReconciliationInfo**| -|10251|**RetentionCleanupInfo**| -|10252|**RetentionCleanupOperation**| -|10253|**RetentionConfig**| -|10254|**RetentionFailureDetail**| -|10255|**RetentionOperation**| -|10256|**RetentionOperationDetail**| -|10257|**RetentionSuccessDetail**| -|10258|**CertificateCredential**| -|10259|**Notification**| -|10260|**User Rating**| -|10261|**Mobile App**| -|10262|**Insights Store Data Source**| -|10263|**Insights Store Virtual Entity**| -|10264|**RoleEditorLayout**| -|10265|**Deleted Record Reference**| -|10266|**Restore Deleted Records Configuration**| -|10267|**App Action**| -|10268|**App Action Migration**| -|10269|**App Action Rule**| -|10272|**Card**| -|10273|**Card State Item**| -|10276|**Entity link chat configuration**| -|10277|**SharePoint Managed Identity**| -|10278|**AI Insight Card**| -|10279|**AI Skill Config**| -|10280|**Rich Text Attachment**| -|10281|**Custom Control Extended Setting**| -|10282|**Timeline Pin**| -|10283|**Virtual Connector Data Source**| -|10284|**Virtual Table Column Candidate**| -|10286|**PM Analysis History**| -|10287|**PM Business Rule Automation Config**| -|10288|**PM Calendar**| -|10289|**PM Calendar Version**| -|10290|**PM Inferred Task**| -|10291|**PM Process Extended Metadata Version**| -|10292|**PM Process Template**| -|10293|**PM Process User Settings**| -|10294|**PM Process Version**| -|10295|**PM Recording**| -|10296|**PM Simulation**| -|10297|**PM Template**| -|10298|**PM View**| -|10299|**Analysis Component**| -|10300|**Analysis Job**| -|10301|**Analysis Override**| -|10302|**Analysis Result**| -|10303|**Analysis Result Detail**| -|10304|**Solution Health Rule**| -|10305|**Solution Health Rule Argument**| -|10306|**Solution Health Rule Set**| -|10307|**Power BI Dataset**| -|10308|**powerbidatasetapdx**| -|10309|**Power BI Mashup Parameter**| -|10310|**Power BI Report**| -|10311|**powerbireportapdx**| -|10312|**File Upload**| -|10313|**MainFewShot**| -|10314|**MakerFewShot**| -|10315|**SearchAttributeSettings**| -|10316|**SearchCustomAnalyzer**| -|10317|**SearchRelationshipSettings**| -|10318|**SearchResultsCache**| -|10319|**Search Telemetry**| -|10320|**ViewAsExampleQuestion**| -|10321|**CopilotExampleQuestion**| -|10322|**CopilotGlossaryTerm**| -|10323|**CopilotSynonyms**| -|10324|**Site Component**| -|10325|**Site**| -|10326|**Site Language**| -|10327|**Power Pages Site Published**| -|10330|**External Identity**| -|10331|**Invitation**| -|10332|**Invite Redemption**| -|10333|**Portal Comment**| -|10334|**Setting**| -|10335|**Multistep Form Session**| -|10339|**Ad Placement**| -|10340|**Column Permission**| -|10341|**Column Permission Profile**| -|10342|**Content Snippet**| -|10343|**Basic Form**| -|10344|**Basic Form Metadata**| -|10345|**List**| -|10346|**Table Permission**| -|10347|**Page Template**| -|10348|**Poll Placement**| -|10349|**Power Pages Core Entity DS**| -|10350|**Publishing State**| -|10351|**Publishing State Transition Rule**| -|10352|**Redirect**| -|10353|**Shortcut**| -|10354|**Site Marker**| -|10355|**Site Setting**| -|10356|**Web File**| -|10357|**Multistep Form**| -|10358|**Multistep Form Metadata**| -|10359|**Form Step**| -|10360|**Web Link**| -|10361|**Web Link Set**| -|10362|**Web Page**| -|10363|**Web Page Access Control Rule**| -|10364|**Web Role**| -|10365|**Website**| -|10366|**Website Access**| -|10367|**Website Language**| -|10368|**Web Template**| -|10375|**Power Pages Scan Report**| -|10376|**Power Pages Log**| -|10377|**PowerPagesManagedIdentity**| -|10378|**Power Pages Site AI Feedback**| -|10383|**Catalog Submission Files**| -|10384|**Package Submission Store**| -|10385|**Processor Registration**| -|10386|**signal**| -|10387|**Signal Registration**| -|10388|**trait**| -|10389|**Trait Registration**| -|18085|**Event Expander Breadcrumb**| +|10088|**Business Process**| +|10089|**Credential**| +|10090|**Desktop Flow Module**| +|10091|**Flow Capacity Assignment**| +|10092|**Flow Credential Application**| +|10093|**Flow Event**| +|10094|**Flow Machine**| +|10095|**Flow Machine Group**| +|10096|**Flow Machine Image**| +|10097|**Flow Machine Image Version**| +|10098|**Flow Machine Network**| +|10099|**ProcessStageParameter**| +|10100|**Saving Rule**| +|10101|**Tag**| +|10102|**Tagged Flow Session**| +|10103|**Tagged Process**| +|10104|**Workflow Metadata**| +|10105|**Work Queue**| +|10106|**Work Queue Item**| +|10107|**Desktop Flow Binary**| +|10108|**Flow Aggregation**| +|10109|**Flow Log**| +|10110|**Flow Run**| +|10111|**Action Approval Model**| +|10112|**Approval**| +|10113|**Approval Request**| +|10114|**Approval Response**| +|10115|**Approval Step**| +|10116|**Await All Action Approval Model**| +|10117|**Await All Approval Model**| +|10118|**Basic Approval Model Data**| +|10119|**Flow Approval**| +|10128|**Connection Reference**| +|10129|**DVFileSearch**| +|10130|**DVFileSearchAttribute**| +|10131|**DVFileSearchEntity**| +|10132|**DVTableSearch**| +|10133|**DVTableSearchAttribute**| +|10134|**DVTableSearchEntity**| +|10135|**AICopilot**| +|10136|**AIPluginAuth**| +|10137|**AI Plugin Conversation Starter**| +|10138|**AI Plugin Conversation Starter Mapping**| +|10139|**AI Plugin Governance**| +|10140|**AI Plugin Governance Extended**| +|10141|**AIPluginOperationResponseTemplate**| +|10142|**AIPluginTitle**| +|10143|**SideloadedAIPlugin**| +|10144|**AIPlugin**| +|10145|**AIPluginExternalSchema**| +|10146|**AIPluginExternalSchemaProperty**| +|10147|**AIPluginInstance**| +|10148|**AIPluginOperation**| +|10149|**AIPluginOperationParameter**| +|10150|**AIPluginUserSetting**| +|10152|**Data Processing Event**| +|10153|**AI Event**| +|10154|**AI Model Catalog**| +|10155|**AI Builder Feedback Loop**| +|10156|**AI Form Processing Document**| +|10157|**AI Object Detection Image**| +|10158|**AI Object Detection Label**| +|10159|**AI Object Detection Bounding Box**| +|10160|**AI Object Detection Image Mapping**| +|10162|**AI Builder Dataset**| +|10163|**AI Builder Dataset File**| +|10164|**AI Builder Dataset Record**| +|10165|**AI Builder Datasets Container**| +|10166|**AI Builder File**| +|10167|**AI Builder File Attached Data**| +|10168|**Help Page**| +|10169|**Tour**| +|10170|**BotContent**| +|10171|**ConversationTranscript**| +|10172|**Copilot**| +|10173|**Copilot component**| +|10174|**Copilot component collection**| +|10185|**Comment**| +|10186|**Governance Configuration**| +|10187|**Fabric AISkill**| +|10188|**App Insights Metadata**| +|10189|**Dataflow Connection Reference**| +|10190|**Schedule**| +|10191|**Dataflow Template**| +|10192|**Dataflow DatalakeFolder**| +|10193|**Data Movement Service Request**| +|10194|**Data Movement Service Request Status**| +|10195|**DMS Sync Request**| +|10196|**DMS Sync Status**| +|10197|**Knowledge Asset Configuration**| +|10198|**Module Run Detail**| +|10199|**QnA**| +|10200|**Salesforce Structured Object**| +|10201|**Salesforce Structured QnA Config**| +|10202|**Workflow Action Status**| +|10203|**FederatedKnowledgeConfiguration**| +|10204|**FederatedKnowledgeEntityConfiguration**| +|10205|**Form Mapping**| +|10206|**Copilot Interactions**| +|10207|**PDF Setting**| +|10208|**Activity File Attachment**| +|10209|**Teams chat**| +|10210|**Service Configuration**| +|10211|**SLA KPI**| +|10212|**Integrated search provider**| +|10213|**Knowledge Management Setting**| +|10214|**Knowledge Federated Article**| +|10215|**Knowledge Federated Article Incident**| +|10216|**Search provider**| +|10217|**Knowledge Article Image**| +|10218|**Knowledge Configuration**| +|10219|**Knowledge Interaction Insight**| +|10220|**Knowledge Search Insight**| +|10221|**Favorite knowledge article**| +|10222|**Knowledge article language setting**| +|10223|**Knowledge Article Attachment**| +|10224|**Knowledge personalization**| +|10225|**Knowledge Article Template**| +|10226|**Knowledge search personal filter config**| +|10227|**Knowledge search filter**| +|10229|**Entity Cluster Configuration**| +|10230|**SupportUserTable**| +|10231|**FxExpression**| +|10232|**Function**| +|10233|**Plug-in**| +|10234|**PowerfxRule**| +|10235|**Planner Business Scenario**| +|10236|**Planner Sync Action**| +|10237|**Sensitivity Label**| +|10238|**Ms Graph Resource To Subscription**| +|10239|**Virtual Entity Metadata**| +|10240|**Background Operation**| +|10241|**Report Parameter**| +|10242|**MobileOfflineProfileExtension**| +|10243|**MobileOfflineProfileItemFilter**| +|10244|**TeamMobileOfflineProfileMembership**| +|10245|**UserMobileOfflineProfileMembership**| +|10246|**OrganizationDataSyncSubscription**| +|10247|**OrganizationDataSyncSubscriptionEntity**| +|10248|**OrganizationDataSyncSubscriptionFnoTable**| +|10249|**OrganizationDataSyncFnoState**| +|10250|**OrganizationDataSyncState**| +|10251|**ArchiveCleanupInfo**| +|10252|**ArchiveCleanupOperation**| +|10253|**BulkArchiveConfig**| +|10254|**BulkArchiveFailureDetail**| +|10255|**BulkArchiveOperation**| +|10256|**BulkArchiveOperationDetail**| +|10257|**EnableArchivalRequest**| +|10258|**MetadataForArchival**| +|10259|**ReconciliationEntityInfo**| +|10260|**ReconciliationEntityStepInfo**| +|10261|**ReconciliationInfo**| +|10262|**RetentionCleanupInfo**| +|10263|**RetentionCleanupOperation**| +|10264|**RetentionConfig**| +|10265|**RetentionFailureDetail**| +|10266|**RetentionOperation**| +|10267|**RetentionOperationDetail**| +|10268|**RetentionSuccessDetail**| +|10269|**CertificateCredential**| +|10270|**Notification**| +|10271|**User Rating**| +|10272|**Mobile App**| +|10273|**Insights Store Data Source**| +|10274|**Insights Store Virtual Entity**| +|10275|**RoleEditorLayout**| +|10276|**Deleted Record Reference**| +|10277|**Restore Deleted Records Configuration**| +|10278|**App Action**| +|10279|**App Action Migration**| +|10280|**App Action Rule**| +|10283|**Card**| +|10284|**Card State Item**| +|10287|**Entity link chat configuration**| +|10288|**SharePoint Managed Identity**| +|10289|**AI Insight Card**| +|10290|**AI Skill Config**| +|10291|**Data Workspace**| +|10292|**Plan**| +|10293|**Plan Artifact**| +|10294|**Plan Attachment**| +|10295|**Rich Text Attachment**| +|10296|**Custom Control Extended Setting**| +|10298|**Timeline Pin**| +|10299|**Virtual Connector Data Source**| +|10300|**Virtual Table Column Candidate**| +|10302|**PM Analysis History**| +|10303|**PM Business Rule Automation Config**| +|10304|**PM Calendar**| +|10305|**PM Calendar Version**| +|10306|**PM Inferred Task**| +|10307|**PM Process Extended Metadata Version**| +|10308|**PM Process Template**| +|10309|**PM Process User Settings**| +|10310|**PM Process Version**| +|10311|**PM Recording**| +|10312|**PM Simulation**| +|10313|**PM Template**| +|10314|**PM View**| +|10315|**Analysis Component**| +|10316|**Analysis Job**| +|10317|**Analysis Override**| +|10318|**Analysis Result**| +|10319|**Analysis Result Detail**| +|10320|**Solution Health Rule**| +|10321|**Solution Health Rule Argument**| +|10322|**Solution Health Rule Set**| +|10323|**Power BI Dataset**| +|10324|**powerbidatasetapdx**| +|10325|**Power BI Mashup Parameter**| +|10326|**Power BI Report**| +|10327|**powerbireportapdx**| +|10328|**File Upload**| +|10329|**MainFewShot**| +|10330|**MakerFewShot**| +|10331|**SearchAttributeSettings**| +|10332|**SearchCustomAnalyzer**| +|10333|**SearchRelationshipSettings**| +|10334|**SearchResultsCache**| +|10335|**Search Telemetry**| +|10336|**TextDataRecordsIndexingStatus**| +|10337|**ViewAsExampleQuestion**| +|10338|**CopilotExampleQuestion**| +|10339|**CopilotGlossaryTerm**| +|10340|**CopilotSynonyms**| +|10341|**Site Component**| +|10342|**Site**| +|10343|**Site Language**| +|10344|**Power Pages Site Published**| +|10347|**External Identity**| +|10348|**Invitation**| +|10349|**Invite Redemption**| +|10350|**Portal Comment**| +|10351|**Setting**| +|10352|**Multistep Form Session**| +|10356|**Ad Placement**| +|10357|**Column Permission**| +|10358|**Column Permission Profile**| +|10359|**Content Snippet**| +|10360|**Basic Form**| +|10361|**Basic Form Metadata**| +|10362|**List**| +|10363|**Table Permission**| +|10364|**Page Template**| +|10365|**Poll Placement**| +|10366|**Power Pages Core Entity DS**| +|10367|**Publishing State**| +|10368|**Publishing State Transition Rule**| +|10369|**Redirect**| +|10370|**Shortcut**| +|10371|**Site Marker**| +|10372|**Site Setting**| +|10373|**Web File**| +|10374|**Multistep Form**| +|10375|**Multistep Form Metadata**| +|10376|**Form Step**| +|10377|**Web Link**| +|10378|**Web Link Set**| +|10379|**Web Page**| +|10380|**Web Page Access Control Rule**| +|10381|**Web Role**| +|10382|**Website**| +|10383|**Website Access**| +|10384|**Website Language**| +|10385|**Web Template**| +|10392|**Power Pages Scan Report**| +|10393|**Power Pages Log**| +|10394|**PowerPagesManagedIdentity**| +|10395|**Power Pages Site AI Feedback**| +|10400|**Catalog Submission Files**| +|10401|**Package Submission Store**| +|10402|**processor registration**| +|10403|**signal**| +|10404|**signal registration**| +|10405|**trait**| +|10406|**trait registration**| +|10627|**FederatedKnowledgeCitation**| +|10628|**FederatedKnowledgeMetadataRefresh**| +|10629|**Email Address Configuration**| +|10630|**indexedtrait**| +|10645|**AI Evaluation Configuration**| +|10646|**AI Evaluation Run**| +|10647|**AI Test Case**| +|10648|**AI Test Case Document**| +|10649|**AI Test Case Input**| +|10650|**AI Test Run**| +|10651|**AI Test Run Batch**| +|10667|**Approval Process**| +|10668|**Approval Stage Approval**| +|10669|**Approval Stage Condition**| +|10670|**Approval Stage Order**| +|10671|**UnstructuredFileSearchEntity**| +|10672|**UnstructuredFileSearchRecord**| ## Many-to-One relationships diff --git a/powerapps-docs/developer/data-platform/reference/entities/indexedtrait.md b/powerapps-docs/developer/data-platform/reference/entities/indexedtrait.md new file mode 100644 index 0000000000..c0e1111394 --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/indexedtrait.md @@ -0,0 +1,639 @@ +--- +title: "indexedtrait table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the indexedtrait table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# indexedtrait table/entity reference (Microsoft Dataverse) + + + +## Messages + +The following table lists the messages for the indexedtrait table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Assign`
Event: True |`PATCH` /indexedtraits(*indexedtraitid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /indexedtraits
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /indexedtraits(*indexedtraitid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `DeleteMultiple`
Event: True | |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `Retrieve`
Event: True |`GET` /indexedtraits(*indexedtraitid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveEntityChanges`
Event: True | || +| `RetrieveMultiple`
Event: True |`GET` /indexedtraits
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `RetrievePrincipalAccess`
Event: True | || +| `Update`
Event: True |`PATCH` /indexedtraits(*indexedtraitid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: True |`PATCH` /indexedtraits(*indexedtraitid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: True | || + + +## Events + +The following table lists the events for the indexedtrait table. +Events are messages that exist so that you can subscribe to them. Unless you added the event, you shouldn't invoke the message, only subscribe to it. + +|Name|Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `BulkRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `PurgeRetainedContent`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `Retain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `RollbackRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `ValidateRetentionConfig`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| + +## Properties + +The following table lists selected properties for the indexedtrait table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **indexedtrait** | +| **DisplayCollectionName** | **indexedtraits** | +| **SchemaName** | `indexedtrait` | +| **CollectionSchemaName** | `indexedtraits` | +| **EntitySetName** | `indexedtraits`| +| **LogicalName** | `indexedtrait` | +| **LogicalCollectionName** | `indexedtraits` | +| **PrimaryIdAttribute** | `indexedtraitid` | +| **PrimaryNameAttribute** |`name` | +| **TableType** | `Elastic` | +| **OwnershipType** | `UserOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [AlternativeKey](#BKMK_AlternativeKey) +- [DetailedContents](#BKMK_DetailedContents) +- [FilterCriteria](#BKMK_FilterCriteria) +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [indexedtraitId](#BKMK_indexedtraitId) +- [name](#BKMK_name) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [PartitionId](#BKMK_PartitionId) +- [Properties](#BKMK_Properties) +- [SearchContents](#BKMK_SearchContents) +- [TraitType](#BKMK_TraitType) +- [TTLInSeconds](#BKMK_TTLInSeconds) +- [UserId](#BKMK_UserId) + +### AlternativeKey + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**AlternativeKey**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`alternativekey`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|200| + +### DetailedContents + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**DetailedContents**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`detailedcontents`| +|RequiredLevel|None| +|Type|Memo| +|Format|Text| +|FormatName|Json| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1048576| + +### FilterCriteria + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**FilterCriteria**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`filtercriteria`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|200| + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### indexedtraitId + +|Property|Value| +|---|---| +|Description|**Unique identifier for entity instances**| +|DisplayName|**IndexedTraitId**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`indexedtraitid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### name + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`name`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### PartitionId + +|Property|Value| +|---|---| +|Description|**Logical partition id. A logical partition consists of a set of records with same partition id.**| +|DisplayName|**Partition Id**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`partitionid`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### Properties + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Properties**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`properties`| +|RequiredLevel|None| +|Type|Memo| +|Format|Text| +|FormatName|Json| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1048576| + +### SearchContents + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**SearchContents**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`searchcontents`| +|RequiredLevel|None| +|Type|Memo| +|Format|Text| +|FormatName|Json| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1048576| + +### TraitType + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**TraitType**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`traittype`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### TTLInSeconds + +|Property|Value| +|---|---| +|Description|**Time to live in seconds.**| +|DisplayName|**Time to live**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ttlinseconds`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|1| + +### UserId + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**UserId**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`userid`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OwnerIdName](#BKMK_OwnerIdName) +- [OwnerIdYomiName](#BKMK_OwnerIdYomiName) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) +- [OwningTeam](#BKMK_OwningTeam) +- [OwningUser](#BKMK_OwningUser) +- [VersionNumber](#BKMK_VersionNumber) + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### OwnerIdName + +|Property|Value| +|---|---| +|Description|**Name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwnerIdYomiName + +|Property|Value| +|---|---| +|Description|**Yomi name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridyominame`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|businessunit| + +### OwningTeam + +|Property|Value| +|---|---| +|Description|**Unique identifier for the team that owns the record.**| +|DisplayName|**Owning Team**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningteam`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|team| + +### OwningUser + +|Property|Value| +|---|---| +|Description|**Unique identifier for the user that owns the record.**| +|DisplayName|**Owning User**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owninguser`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [business_unit_indexedtrait](#BKMK_business_unit_indexedtrait) +- [lk_indexedtrait_createdby](#BKMK_lk_indexedtrait_createdby) +- [lk_indexedtrait_createdonbehalfby](#BKMK_lk_indexedtrait_createdonbehalfby) +- [lk_indexedtrait_modifiedby](#BKMK_lk_indexedtrait_modifiedby) +- [lk_indexedtrait_modifiedonbehalfby](#BKMK_lk_indexedtrait_modifiedonbehalfby) +- [owner_indexedtrait](#BKMK_owner_indexedtrait) +- [team_indexedtrait](#BKMK_team_indexedtrait) +- [user_indexedtrait](#BKMK_user_indexedtrait) + +### business_unit_indexedtrait + +One-To-Many Relationship: [businessunit business_unit_indexedtrait](businessunit.md#BKMK_business_unit_indexedtrait) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessunit`| +|ReferencedAttribute|`businessunitid`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencingEntityNavigationPropertyName|`owningbusinessunit`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_indexedtrait_createdby + +One-To-Many Relationship: [systemuser lk_indexedtrait_createdby](systemuser.md#BKMK_lk_indexedtrait_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_indexedtrait_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_indexedtrait_createdonbehalfby](systemuser.md#BKMK_lk_indexedtrait_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_indexedtrait_modifiedby + +One-To-Many Relationship: [systemuser lk_indexedtrait_modifiedby](systemuser.md#BKMK_lk_indexedtrait_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_indexedtrait_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_indexedtrait_modifiedonbehalfby](systemuser.md#BKMK_lk_indexedtrait_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### owner_indexedtrait + +One-To-Many Relationship: [owner owner_indexedtrait](owner.md#BKMK_owner_indexedtrait) + +|Property|Value| +|---|---| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### team_indexedtrait + +One-To-Many Relationship: [team team_indexedtrait](team.md#BKMK_team_indexedtrait) + +|Property|Value| +|---|---| +|ReferencedEntity|`team`| +|ReferencedAttribute|`teamid`| +|ReferencingAttribute|`owningteam`| +|ReferencingEntityNavigationPropertyName|`owningteam`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### user_indexedtrait + +One-To-Many Relationship: [systemuser user_indexedtrait](systemuser.md#BKMK_user_indexedtrait) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`owninguser`| +|ReferencingEntityNavigationPropertyName|`owninguser`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/keyvaultreference.md b/powerapps-docs/developer/data-platform/reference/entities/keyvaultreference.md index d5347f5ac8..b61b339305 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/keyvaultreference.md +++ b/powerapps-docs/developer/data-platform/reference/entities/keyvaultreference.md @@ -555,7 +555,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| diff --git a/powerapps-docs/developer/data-platform/reference/entities/knowledgearticle.md b/powerapps-docs/developer/data-platform/reference/entities/knowledgearticle.md index e5b743931c..3b749bfab6 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/knowledgearticle.md +++ b/powerapps-docs/developer/data-platform/reference/entities/knowledgearticle.md @@ -383,8 +383,8 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**field to indicate the agent review status of the article**| -|DisplayName|**Agent Review Status**| +|Description|**field to indicate the review status of the article**| +|DisplayName|**Representative Review**| |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`msdyn_agentreviewstatus`| @@ -398,7 +398,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Value|Label| |---|---| |100000000|**Not Reviewed**| -|100000001|**Reviewed By Agent**| +|100000001|**Reviewed**| ### msdyn_compliancestatecode diff --git a/powerapps-docs/developer/data-platform/reference/entities/mailbox.md b/powerapps-docs/developer/data-platform/reference/entities/mailbox.md index c1d020c9b3..5bff271797 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/mailbox.md +++ b/powerapps-docs/developer/data-platform/reference/entities/mailbox.md @@ -57,6 +57,9 @@ The following table lists selected properties for the Mailbox table. These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. +- [ACSEnabledForOutgoingEmail](#BKMK_ACSEnabledForOutgoingEmail) +- [ACSMailFromCreated](#BKMK_ACSMailFromCreated) +- [ACSOutgoingEmailStatus](#BKMK_ACSOutgoingEmailStatus) - [ACTDeliveryMethod](#BKMK_ACTDeliveryMethod) - [ACTStatus](#BKMK_ACTStatus) - [AllowEmailConnectorToUseCredentials](#BKMK_AllowEmailConnectorToUseCredentials) @@ -122,6 +125,60 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) - [VerboseLoggingEnabled](#BKMK_VerboseLoggingEnabled) +### ACSEnabledForOutgoingEmail + +|Property|Value| +|---|---| +|Description|**Determines if ACS integration should be enabled for outgoing email synchronization.**| +|DisplayName|**ACS Enabled for Outgoing Email**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`acsenabledforoutgoingemail`| +|RequiredLevel|None| +|Type|Boolean| +|GlobalChoiceName|`mailbox_acsenabledforoutgoingemail`| +|DefaultValue|False| +|True Label|Yes| +|False Label|No| + +### ACSMailFromCreated + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**ACS MailFrom Created**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`acsmailfromcreated`| +|RequiredLevel|None| +|Type|Boolean| +|GlobalChoiceName|`mailbox_acsmailfromcreated`| +|DefaultValue|False| +|True Label|Yes| +|False Label|No| + +### ACSOutgoingEmailStatus + +|Property|Value| +|---|---| +|Description|**The status of ACS outgoing email synchronization.**| +|DisplayName|**ACS Outgoing Email Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`acsoutgoingemailstatus`| +|RequiredLevel|None| +|Type|Picklist| +|DefaultFormValue|0| +|GlobalChoiceName|`mailbox_acsoutgoingemailstatus`| + +#### ACSOutgoingEmailStatus Choices/Options + +|Value|Label| +|---|---| +|0|**Not Run**| +|1|**Success**| +|2|**Failure**| + ### ACTDeliveryMethod |Property|Value| diff --git a/powerapps-docs/developer/data-platform/reference/entities/mailboxtrackingfolder.md b/powerapps-docs/developer/data-platform/reference/entities/mailboxtrackingfolder.md index 2e645a8319..7be2a1af8d 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/mailboxtrackingfolder.md +++ b/powerapps-docs/developer/data-platform/reference/entities/mailboxtrackingfolder.md @@ -155,7 +155,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |LogicalName|`regardingobjectid`| |RequiredLevel|None| |Type|Lookup| -|Targets|account, activityfileattachment, adx_externalidentity, adx_invitation, adx_inviteredemption, adx_portalcomment, adx_setting, adx_webformsession, aicopilot, aiinsightcard, aiplugin, aipluginauth, aipluginconversationstarter, aipluginconversationstartermapping, aipluginexternalschema, aipluginexternalschemaproperty, aiplugingovernance, aiplugingovernanceext, aiplugininstance, aipluginoperation, aipluginoperationparameter, aipluginoperationresponsetemplate, aiplugintitle, aipluginusersetting, aiskillconfig, appaction, appactionmigration, appactionrule, appelement, application, applicationuser, appmodulecomponentedge, appmodulecomponentnode, appsetting, appusersetting, archivecleanupinfo, archivecleanupoperation, asyncoperation, attributeimageconfig, attributemaskingrule, attributepicklistvalue, bot, botcomponent, botcomponentcollection, bulkarchiveconfig, bulkarchivefailuredetail, bulkarchiveoperation, bulkarchiveoperationdetail, canvasappextendedmetadata, card, cascadegrantrevokeaccessrecordstracker, cascadegrantrevokeaccessversiontracker, catalog, catalogassignment, certificatecredential, chat, comment, connectioninstance, connectionreference, connector, contact, conversationtranscript, copilotexamplequestion, copilotglossaryterm, copilotsynonyms, credential, customapi, customapirequestparameter, customapiresponseproperty, datalakefolder, datalakefolderpermission, datalakeworkspace, datalakeworkspacepermission, dataprocessingconfiguration, delegatedauthorization, deleteditemreference, desktopflowbinary, desktopflowmodule, dvfilesearch, dvfilesearchattribute, dvfilesearchentity, dvtablesearch, dvtablesearchattribute, dvtablesearchentity, enablearchivalrequest, entityanalyticsconfig, entityimageconfig, entityindex, entityrecordfilter, environmentvariabledefinition, environmentvariablevalue, exportedexcel, exportsolutionupload, fabricaiskill, featurecontrolsetting, federatedknowledgeconfiguration, federatedknowledgeentityconfiguration, flowcapacityassignment, flowcredentialapplication, flowevent, flowmachine, flowmachinegroup, flowmachineimage, flowmachineimageversion, flowmachinenetwork, flowsession, fxexpression, governanceconfiguration, holidaywrapper, indexattributes, internalcatalogassignment, keyvaultreference, mainfewshot, makerfewshot, managedidentity, maskingrule, metadataforarchival, mobileofflineprofileextension, msdynce_botcontent, msdyn_aibdataset, msdyn_aibdatasetfile, msdyn_aibdatasetrecord, msdyn_aibdatasetscontainer, msdyn_aibfeedbackloop, msdyn_aibfile, msdyn_aibfileattacheddata, msdyn_aiconfiguration, msdyn_aievent, msdyn_aifptrainingdocument, msdyn_aimodel, msdyn_aiodimage, msdyn_aiodlabel, msdyn_aiodtrainingboundingbox, msdyn_aiodtrainingimage, msdyn_aitemplate, msdyn_analysiscomponent, msdyn_analysisjob, msdyn_analysisoverride, msdyn_analysisresult, msdyn_analysisresultdetail, msdyn_appinsightsmetadata, msdyn_copilotinteractions, msdyn_customcontrolextendedsettings, msdyn_dataflow, msdyn_dataflowconnectionreference, msdyn_dataflowrefreshhistory, msdyn_dataflowtemplate, msdyn_dataflow_datalakefolder, msdyn_dmsrequest, msdyn_dmsrequeststatus, msdyn_dmssyncrequest, msdyn_dmssyncstatus, msdyn_entitylinkchatconfiguration, msdyn_entityrefreshhistory, msdyn_favoriteknowledgearticle, msdyn_federatedarticle, msdyn_federatedarticleincident, msdyn_fileupload, msdyn_flow_actionapprovalmodel, msdyn_flow_approval, msdyn_flow_approvalrequest, msdyn_flow_approvalresponse, msdyn_flow_approvalstep, msdyn_flow_awaitallactionapprovalmodel, msdyn_flow_awaitallapprovalmodel, msdyn_flow_basicapprovalmodel, msdyn_flow_flowapproval, msdyn_formmapping, msdyn_function, msdyn_helppage, msdyn_insightsstorevirtualentity, msdyn_integratedsearchprovider, msdyn_kalanguagesetting, msdyn_kbattachment, msdyn_kmfederatedsearchconfig, msdyn_kmpersonalizationsetting, msdyn_knowledgearticleimage, msdyn_knowledgearticletemplate, msdyn_knowledgeassetconfiguration, msdyn_knowledgeconfiguration, msdyn_knowledgeinteractioninsight, msdyn_knowledgemanagementsetting, msdyn_knowledgepersonalfilter, msdyn_knowledgesearchfilter, msdyn_knowledgesearchinsight, msdyn_mobileapp, msdyn_modulerundetail, msdyn_pmanalysishistory, msdyn_pmbusinessruleautomationconfig, msdyn_pmcalendar, msdyn_pmcalendarversion, msdyn_pminferredtask, msdyn_pmprocessextendedmetadataversion, msdyn_pmprocesstemplate, msdyn_pmprocessusersettings, msdyn_pmprocessversion, msdyn_pmrecording, msdyn_pmsimulation, msdyn_pmtemplate, msdyn_pmview, msdyn_qna, msdyn_richtextfile, msdyn_salesforcestructuredobject, msdyn_salesforcestructuredqnaconfig, msdyn_schedule, msdyn_serviceconfiguration, msdyn_slakpi, msdyn_solutionhealthrule, msdyn_solutionhealthruleargument, msdyn_solutionhealthruleset, msdyn_tour, msdyn_virtualtablecolumncandidate, msdyn_workflowactionstatus, msgraphresourcetosubscription, mspcat_catalogsubmissionfiles, mspcat_packagestore, organizationdatasyncfnostate, organizationdatasyncstate, organizationdatasyncsubscription, organizationdatasyncsubscriptionentity, organizationdatasyncsubscriptionfnotable, organizationsetting, package, packagehistory, pdfsetting, plannerbusinessscenario, plannersyncaction, plugin, pluginpackage, powerbidataset, powerbidatasetapdx, powerbimashupparameter, powerbireport, powerbireportapdx, powerfxrule, powerpagecomponent, powerpagesite, powerpagesitelanguage, powerpagesitepublished, powerpagesmanagedidentity, powerpagesscanreport, privilegecheckerlog, privilegecheckerrun, privilegesremovalsetting, processorregistration, processstageparameter, provisionlanguageforuser, reconciliationentityinfo, reconciliationentitystepinfo, reconciliationinfo, recordfilter, recyclebinconfig, relationshipattribute, reportparameter, retaineddataexcel, retentioncleanupinfo, retentioncleanupoperation, retentionconfig, retentionfailuredetail, retentionoperation, retentionoperationdetail, retentionsuccessdetail, revokeinheritedaccessrecordstracker, roleeditorlayout, searchattributesettings, searchcustomanalyzer, searchrelationshipsettings, serviceplan, serviceplancustomcontrol, serviceplanmapping, settingdefinition, sharedlinksetting, sharedobject, sharedworkspace, sharedworkspacepool, sharepointmanagedidentity, sideloadedaiplugin, signalregistration, solutioncomponentattributeconfiguration, solutioncomponentbatchconfiguration, solutioncomponentconfiguration, solutioncomponentrelationshipconfiguration, stagedentity, stagedentityattribute, stagedmetadataasyncoperation, stagesolutionupload, supportusertable, synapsedatabase, synapselinkexternaltablestate, synapselinkprofile, synapselinkprofileentity, synapselinkprofileentitystate, synapselinkschedule, systemuserauthorizationchangetracker, tdsmetadata, teammobileofflineprofilemembership, territory, traitregistration, usermobileofflineprofilemembership, userrating, viewasexamplequestion, virtualentitymetadata, workflowbinary, workqueue, workqueueitem| +|Targets|account, activityfileattachment, adx_externalidentity, adx_invitation, adx_inviteredemption, adx_portalcomment, adx_setting, adx_webformsession, aicopilot, aiinsightcard, aiplugin, aipluginauth, aipluginconversationstarter, aipluginconversationstartermapping, aipluginexternalschema, aipluginexternalschemaproperty, aiplugingovernance, aiplugingovernanceext, aiplugininstance, aipluginoperation, aipluginoperationparameter, aipluginoperationresponsetemplate, aiplugintitle, aipluginusersetting, aiskillconfig, appaction, appactionmigration, appactionrule, appelement, application, applicationuser, appmodulecomponentedge, appmodulecomponentnode, approvalprocess, approvalstageapproval, approvalstagecondition, approvalstageorder, appsetting, appusersetting, archivecleanupinfo, archivecleanupoperation, asyncoperation, attributeimageconfig, attributemaskingrule, attributepicklistvalue, bot, botcomponent, botcomponentcollection, bulkarchiveconfig, bulkarchivefailuredetail, bulkarchiveoperation, bulkarchiveoperationdetail, businessprocess, canvasappextendedmetadata, card, cascadegrantrevokeaccessrecordstracker, cascadegrantrevokeaccessversiontracker, catalog, catalogassignment, certificatecredential, chat, comment, connectioninstance, connectionreference, connector, contact, conversationtranscript, copilotexamplequestion, copilotglossaryterm, copilotsynonyms, credential, customapi, customapirequestparameter, customapiresponseproperty, datalakefolder, datalakefolderpermission, datalakeworkspace, datalakeworkspacepermission, dataprocessingconfiguration, delegatedauthorization, deleteditemreference, desktopflowbinary, desktopflowmodule, dvfilesearch, dvfilesearchattribute, dvfilesearchentity, dvtablesearch, dvtablesearchattribute, dvtablesearchentity, emailaddressconfiguration, enablearchivalrequest, entityanalyticsconfig, entityclusterconfig, entityimageconfig, entityindex, entityrecordfilter, environmentvariabledefinition, environmentvariablevalue, exportedexcel, exportsolutionupload, fabricaiskill, featurecontrolsetting, federatedknowledgecitation, federatedknowledgeconfiguration, federatedknowledgeentityconfiguration, federatedknowledgemetadatarefresh, flowcapacityassignment, flowcredentialapplication, flowevent, flowmachine, flowmachinegroup, flowmachineimage, flowmachineimageversion, flowmachinenetwork, flowsession, fxexpression, governanceconfiguration, holidaywrapper, indexattributes, internalcatalogassignment, keyvaultreference, mainfewshot, makerfewshot, managedidentity, maskingrule, metadataforarchival, mobileofflineprofileextension, msdynce_botcontent, msdyn_aibdataset, msdyn_aibdatasetfile, msdyn_aibdatasetrecord, msdyn_aibdatasetscontainer, msdyn_aibfeedbackloop, msdyn_aibfile, msdyn_aibfileattacheddata, msdyn_aiconfiguration, msdyn_aidataprocessingevent, msdyn_aievaluationconfiguration, msdyn_aievaluationrun, msdyn_aievent, msdyn_aifptrainingdocument, msdyn_aimodel, msdyn_aimodelcatalog, msdyn_aiodimage, msdyn_aiodlabel, msdyn_aiodtrainingboundingbox, msdyn_aiodtrainingimage, msdyn_aitemplate, msdyn_aitestcase, msdyn_aitestcasedocument, msdyn_aitestcaseinput, msdyn_aitestrun, msdyn_aitestrunbatch, msdyn_analysiscomponent, msdyn_analysisjob, msdyn_analysisoverride, msdyn_analysisresult, msdyn_analysisresultdetail, msdyn_appinsightsmetadata, msdyn_copilotinteractions, msdyn_customcontrolextendedsettings, msdyn_dataflow, msdyn_dataflowconnectionreference, msdyn_dataflowrefreshhistory, msdyn_dataflowtemplate, msdyn_dataflow_datalakefolder, msdyn_dataworkspace, msdyn_dmsrequest, msdyn_dmsrequeststatus, msdyn_dmssyncrequest, msdyn_dmssyncstatus, msdyn_entitylinkchatconfiguration, msdyn_entityrefreshhistory, msdyn_favoriteknowledgearticle, msdyn_federatedarticle, msdyn_federatedarticleincident, msdyn_fileupload, msdyn_flow_actionapprovalmodel, msdyn_flow_approval, msdyn_flow_approvalrequest, msdyn_flow_approvalresponse, msdyn_flow_approvalstep, msdyn_flow_awaitallactionapprovalmodel, msdyn_flow_awaitallapprovalmodel, msdyn_flow_basicapprovalmodel, msdyn_flow_flowapproval, msdyn_formmapping, msdyn_function, msdyn_helppage, msdyn_insightsstorevirtualentity, msdyn_integratedsearchprovider, msdyn_kalanguagesetting, msdyn_kbattachment, msdyn_kmfederatedsearchconfig, msdyn_kmpersonalizationsetting, msdyn_knowledgearticleimage, msdyn_knowledgearticletemplate, msdyn_knowledgeassetconfiguration, msdyn_knowledgeconfiguration, msdyn_knowledgeinteractioninsight, msdyn_knowledgemanagementsetting, msdyn_knowledgepersonalfilter, msdyn_knowledgesearchfilter, msdyn_knowledgesearchinsight, msdyn_mobileapp, msdyn_modulerundetail, msdyn_plan, msdyn_planartifact, msdyn_planattachment, msdyn_pmanalysishistory, msdyn_pmbusinessruleautomationconfig, msdyn_pmcalendar, msdyn_pmcalendarversion, msdyn_pminferredtask, msdyn_pmprocessextendedmetadataversion, msdyn_pmprocesstemplate, msdyn_pmprocessusersettings, msdyn_pmprocessversion, msdyn_pmrecording, msdyn_pmsimulation, msdyn_pmtemplate, msdyn_pmview, msdyn_qna, msdyn_richtextfile, msdyn_salesforcestructuredobject, msdyn_salesforcestructuredqnaconfig, msdyn_schedule, msdyn_serviceconfiguration, msdyn_slakpi, msdyn_solutionhealthrule, msdyn_solutionhealthruleargument, msdyn_solutionhealthruleset, msdyn_tour, msdyn_virtualtablecolumncandidate, msdyn_workflowactionstatus, msgraphresourcetosubscription, mspcat_catalogsubmissionfiles, mspcat_packagestore, organizationdatasyncfnostate, organizationdatasyncstate, organizationdatasyncsubscription, organizationdatasyncsubscriptionentity, organizationdatasyncsubscriptionfnotable, organizationsetting, package, packagehistory, pdfsetting, plannerbusinessscenario, plannersyncaction, plugin, pluginpackage, powerbidataset, powerbidatasetapdx, powerbimashupparameter, powerbireport, powerbireportapdx, powerfxrule, powerpagecomponent, powerpagesite, powerpagesitelanguage, powerpagesitepublished, powerpagesmanagedidentity, powerpagesscanreport, privilegecheckerlog, privilegecheckerrun, privilegesremovalsetting, processorregistration, processstageparameter, provisionlanguageforuser, reconciliationentityinfo, reconciliationentitystepinfo, reconciliationinfo, recordfilter, recyclebinconfig, relationshipattribute, reportparameter, retaineddataexcel, retentioncleanupinfo, retentioncleanupoperation, retentionconfig, retentionfailuredetail, retentionoperation, retentionoperationdetail, retentionsuccessdetail, revokeinheritedaccessrecordstracker, roleeditorlayout, savingrule, searchattributesettings, searchcustomanalyzer, searchrelationshipsettings, serviceplan, serviceplancustomcontrol, serviceplanmapping, settingdefinition, sharedlinksetting, sharedobject, sharedworkspace, sharedworkspacepool, sharepointmanagedidentity, sideloadedaiplugin, signalregistration, solutioncomponentattributeconfiguration, solutioncomponentbatchconfiguration, solutioncomponentconfiguration, solutioncomponentrelationshipconfiguration, stagedentity, stagedentityattribute, stagedmetadataasyncoperation, stagesolutionupload, supportusertable, synapsedatabase, synapselinkexternaltablestate, synapselinkprofile, synapselinkprofileentity, synapselinkprofileentitystate, synapselinkschedule, systemuserauthorizationchangetracker, tag, taggedflowsession, taggedprocess, tdsmetadata, teammobileofflineprofilemembership, territory, traitregistration, unstructuredfilesearchentity, unstructuredfilesearchrecord, usermobileofflineprofilemembership, userrating, viewasexamplequestion, virtualentitymetadata, workflowbinary, workflowmetadata, workqueue, workqueueitem| ### RegardingObjectTypeCode @@ -364,7 +364,6 @@ These relationships are many-to-one. Listed by **SchemaName**. - [adx_setting_MailboxTrackingFolders](#BKMK_adx_setting_MailboxTrackingFolders) - [adx_webformsession_MailboxTrackingFolders](#BKMK_adx_webformsession_MailboxTrackingFolders) - [aicopilot_MailboxTrackingFolders](#BKMK_aicopilot_MailboxTrackingFolders) -- [aiinsightcard_MailboxTrackingFolders](#BKMK_aiinsightcard_MailboxTrackingFolders) - [aiplugin_MailboxTrackingFolders](#BKMK_aiplugin_MailboxTrackingFolders) - [aipluginauth_MailboxTrackingFolders](#BKMK_aipluginauth_MailboxTrackingFolders) - [aipluginconversationstarter_MailboxTrackingFolders](#BKMK_aipluginconversationstarter_MailboxTrackingFolders) @@ -384,6 +383,10 @@ These relationships are many-to-one. Listed by **SchemaName**. - [appactionrule_MailboxTrackingFolders](#BKMK_appactionrule_MailboxTrackingFolders) - [application_MailboxTrackingFolders](#BKMK_application_MailboxTrackingFolders) - [applicationuser_MailboxTrackingFolders](#BKMK_applicationuser_MailboxTrackingFolders) +- [approvalprocess_MailboxTrackingFolders](#BKMK_approvalprocess_MailboxTrackingFolders) +- [approvalstageapproval_MailboxTrackingFolders](#BKMK_approvalstageapproval_MailboxTrackingFolders) +- [approvalstagecondition_MailboxTrackingFolders](#BKMK_approvalstagecondition_MailboxTrackingFolders) +- [approvalstageorder_MailboxTrackingFolders](#BKMK_approvalstageorder_MailboxTrackingFolders) - [AsyncOperation_MailboxTrackingFolder](#BKMK_AsyncOperation_MailboxTrackingFolder) - [attributeimageconfig_MailboxTrackingFolders](#BKMK_attributeimageconfig_MailboxTrackingFolders) - [attributemaskingrule_MailboxTrackingFolders](#BKMK_attributemaskingrule_MailboxTrackingFolders) @@ -391,6 +394,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [bot_MailboxTrackingFolders](#BKMK_bot_MailboxTrackingFolders) - [botcomponent_MailboxTrackingFolders](#BKMK_botcomponent_MailboxTrackingFolders) - [botcomponentcollection_MailboxTrackingFolders](#BKMK_botcomponentcollection_MailboxTrackingFolders) +- [businessprocess_MailboxTrackingFolders](#BKMK_businessprocess_MailboxTrackingFolders) - [businessunit_mailboxtrackingfolder](#BKMK_businessunit_mailboxtrackingfolder) - [card_MailboxTrackingFolders](#BKMK_card_MailboxTrackingFolders) - [catalog_MailboxTrackingFolders](#BKMK_catalog_MailboxTrackingFolders) @@ -423,7 +427,9 @@ These relationships are many-to-one. Listed by **SchemaName**. - [dvtablesearch_MailboxTrackingFolders](#BKMK_dvtablesearch_MailboxTrackingFolders) - [dvtablesearchattribute_MailboxTrackingFolders](#BKMK_dvtablesearchattribute_MailboxTrackingFolders) - [dvtablesearchentity_MailboxTrackingFolders](#BKMK_dvtablesearchentity_MailboxTrackingFolders) +- [emailaddressconfiguration_MailboxTrackingFolders](#BKMK_emailaddressconfiguration_MailboxTrackingFolders) - [entityanalyticsconfig_MailboxTrackingFolders](#BKMK_entityanalyticsconfig_MailboxTrackingFolders) +- [entityclusterconfig_MailboxTrackingFolders](#BKMK_entityclusterconfig_MailboxTrackingFolders) - [entityimageconfig_MailboxTrackingFolders](#BKMK_entityimageconfig_MailboxTrackingFolders) - [entityindex_MailboxTrackingFolders](#BKMK_entityindex_MailboxTrackingFolders) - [entityrecordfilter_MailboxTrackingFolders](#BKMK_entityrecordfilter_MailboxTrackingFolders) @@ -467,6 +473,9 @@ These relationships are many-to-one. Listed by **SchemaName**. - [msdyn_aibfile_MailboxTrackingFolders](#BKMK_msdyn_aibfile_MailboxTrackingFolders) - [msdyn_aibfileattacheddata_MailboxTrackingFolders](#BKMK_msdyn_aibfileattacheddata_MailboxTrackingFolders) - [msdyn_aiconfiguration_MailboxTrackingFolders](#BKMK_msdyn_aiconfiguration_MailboxTrackingFolders) +- [msdyn_aidataprocessingevent_MailboxTrackingFolders](#BKMK_msdyn_aidataprocessingevent_MailboxTrackingFolders) +- [msdyn_aievaluationconfiguration_MailboxTrackingFolders](#BKMK_msdyn_aievaluationconfiguration_MailboxTrackingFolders) +- [msdyn_aievaluationrun_MailboxTrackingFolders](#BKMK_msdyn_aievaluationrun_MailboxTrackingFolders) - [msdyn_aievent_MailboxTrackingFolders](#BKMK_msdyn_aievent_MailboxTrackingFolders) - [msdyn_aifptrainingdocument_MailboxTrackingFolders](#BKMK_msdyn_aifptrainingdocument_MailboxTrackingFolders) - [msdyn_aimodel_MailboxTrackingFolders](#BKMK_msdyn_aimodel_MailboxTrackingFolders) @@ -475,6 +484,11 @@ These relationships are many-to-one. Listed by **SchemaName**. - [msdyn_aiodtrainingboundingbox_MailboxTrackingFolders](#BKMK_msdyn_aiodtrainingboundingbox_MailboxTrackingFolders) - [msdyn_aiodtrainingimage_MailboxTrackingFolders](#BKMK_msdyn_aiodtrainingimage_MailboxTrackingFolders) - [msdyn_aitemplate_MailboxTrackingFolders](#BKMK_msdyn_aitemplate_MailboxTrackingFolders) +- [msdyn_aitestcase_MailboxTrackingFolders](#BKMK_msdyn_aitestcase_MailboxTrackingFolders) +- [msdyn_aitestcasedocument_MailboxTrackingFolders](#BKMK_msdyn_aitestcasedocument_MailboxTrackingFolders) +- [msdyn_aitestcaseinput_MailboxTrackingFolders](#BKMK_msdyn_aitestcaseinput_MailboxTrackingFolders) +- [msdyn_aitestrun_MailboxTrackingFolders](#BKMK_msdyn_aitestrun_MailboxTrackingFolders) +- [msdyn_aitestrunbatch_MailboxTrackingFolders](#BKMK_msdyn_aitestrunbatch_MailboxTrackingFolders) - [msdyn_analysiscomponent_MailboxTrackingFolders](#BKMK_msdyn_analysiscomponent_MailboxTrackingFolders) - [msdyn_analysisjob_MailboxTrackingFolders](#BKMK_msdyn_analysisjob_MailboxTrackingFolders) - [msdyn_analysisoverride_MailboxTrackingFolders](#BKMK_msdyn_analysisoverride_MailboxTrackingFolders) @@ -585,7 +599,6 @@ These relationships are many-to-one. Listed by **SchemaName**. - [privilegecheckerlog_MailboxTrackingFolders](#BKMK_privilegecheckerlog_MailboxTrackingFolders) - [privilegecheckerrun_MailboxTrackingFolders](#BKMK_privilegecheckerrun_MailboxTrackingFolders) - [privilegesremovalsetting_MailboxTrackingFolders](#BKMK_privilegesremovalsetting_MailboxTrackingFolders) -- [processorregistration_MailboxTrackingFolders](#BKMK_processorregistration_MailboxTrackingFolders) - [processstageparameter_MailboxTrackingFolders](#BKMK_processstageparameter_MailboxTrackingFolders) - [provisionlanguageforuser_MailboxTrackingFolders](#BKMK_provisionlanguageforuser_MailboxTrackingFolders) - [recordfilter_MailboxTrackingFolders](#BKMK_recordfilter_MailboxTrackingFolders) @@ -599,6 +612,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [retentionoperationdetail_MailboxTrackingFolders](#BKMK_retentionoperationdetail_MailboxTrackingFolders) - [retentionsuccessdetail_MailboxTrackingFolders](#BKMK_retentionsuccessdetail_MailboxTrackingFolders) - [roleeditorlayout_MailboxTrackingFolders](#BKMK_roleeditorlayout_MailboxTrackingFolders) +- [savingrule_MailboxTrackingFolders](#BKMK_savingrule_MailboxTrackingFolders) - [searchattributesettings_MailboxTrackingFolders](#BKMK_searchattributesettings_MailboxTrackingFolders) - [searchcustomanalyzer_MailboxTrackingFolders](#BKMK_searchcustomanalyzer_MailboxTrackingFolders) - [searchrelationshipsettings_MailboxTrackingFolders](#BKMK_searchrelationshipsettings_MailboxTrackingFolders) @@ -610,7 +624,6 @@ These relationships are many-to-one. Listed by **SchemaName**. - [sharedworkspacepool_MailboxTrackingFolders](#BKMK_sharedworkspacepool_MailboxTrackingFolders) - [sharepointmanagedidentity_MailboxTrackingFolders](#BKMK_sharepointmanagedidentity_MailboxTrackingFolders) - [sideloadedaiplugin_MailboxTrackingFolders](#BKMK_sideloadedaiplugin_MailboxTrackingFolders) -- [signalregistration_MailboxTrackingFolders](#BKMK_signalregistration_MailboxTrackingFolders) - [solutioncomponentattributeconfiguration_MailboxTrackingFolders](#BKMK_solutioncomponentattributeconfiguration_MailboxTrackingFolders) - [solutioncomponentbatchconfiguration_MailboxTrackingFolders](#BKMK_solutioncomponentbatchconfiguration_MailboxTrackingFolders) - [solutioncomponentconfiguration_MailboxTrackingFolders](#BKMK_solutioncomponentconfiguration_MailboxTrackingFolders) @@ -627,15 +640,20 @@ These relationships are many-to-one. Listed by **SchemaName**. - [synapselinkprofileentitystate_MailboxTrackingFolders](#BKMK_synapselinkprofileentitystate_MailboxTrackingFolders) - [synapselinkschedule_MailboxTrackingFolders](#BKMK_synapselinkschedule_MailboxTrackingFolders) - [systemuserauthorizationchangetracker_MailboxTrackingFolders](#BKMK_systemuserauthorizationchangetracker_MailboxTrackingFolders) +- [tag_MailboxTrackingFolders](#BKMK_tag_MailboxTrackingFolders) +- [taggedflowsession_MailboxTrackingFolders](#BKMK_taggedflowsession_MailboxTrackingFolders) +- [taggedprocess_MailboxTrackingFolders](#BKMK_taggedprocess_MailboxTrackingFolders) - [team_mailboxtrackingfolder](#BKMK_team_mailboxtrackingfolder) - [teammobileofflineprofilemembership_MailboxTrackingFolders](#BKMK_teammobileofflineprofilemembership_MailboxTrackingFolders) - [territory_MailboxTrackingFolders](#BKMK_territory_MailboxTrackingFolders) -- [traitregistration_MailboxTrackingFolders](#BKMK_traitregistration_MailboxTrackingFolders) +- [unstructuredfilesearchentity_MailboxTrackingFolders](#BKMK_unstructuredfilesearchentity_MailboxTrackingFolders) +- [unstructuredfilesearchrecord_MailboxTrackingFolders](#BKMK_unstructuredfilesearchrecord_MailboxTrackingFolders) - [usermobileofflineprofilemembership_MailboxTrackingFolders](#BKMK_usermobileofflineprofilemembership_MailboxTrackingFolders) - [userrating_MailboxTrackingFolders](#BKMK_userrating_MailboxTrackingFolders) - [viewasexamplequestion_MailboxTrackingFolders](#BKMK_viewasexamplequestion_MailboxTrackingFolders) - [virtualentitymetadata_MailboxTrackingFolders](#BKMK_virtualentitymetadata_MailboxTrackingFolders) - [workflowbinary_MailboxTrackingFolders](#BKMK_workflowbinary_MailboxTrackingFolders) +- [workflowmetadata_MailboxTrackingFolders](#BKMK_workflowmetadata_MailboxTrackingFolders) - [workqueue_MailboxTrackingFolders](#BKMK_workqueue_MailboxTrackingFolders) - [workqueueitem_MailboxTrackingFolders](#BKMK_workqueueitem_MailboxTrackingFolders) @@ -756,19 +774,6 @@ One-To-Many Relationship: [aicopilot aicopilot_MailboxTrackingFolders](aicopilot |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### aiinsightcard_MailboxTrackingFolders - -One-To-Many Relationship: [aiinsightcard aiinsightcard_MailboxTrackingFolders](aiinsightcard.md#BKMK_aiinsightcard_MailboxTrackingFolders) - -|Property|Value| -|---|---| -|ReferencedEntity|`aiinsightcard`| -|ReferencedAttribute|`aiinsightcardid`| -|ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_aiinsightcard`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### aiplugin_MailboxTrackingFolders One-To-Many Relationship: [aiplugin aiplugin_MailboxTrackingFolders](aiplugin.md#BKMK_aiplugin_MailboxTrackingFolders) @@ -1016,6 +1021,58 @@ One-To-Many Relationship: [applicationuser applicationuser_MailboxTrackingFolder |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### approvalprocess_MailboxTrackingFolders + +One-To-Many Relationship: [approvalprocess approvalprocess_MailboxTrackingFolders](approvalprocess.md#BKMK_approvalprocess_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalprocess`| +|ReferencedAttribute|`approvalprocessid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstageapproval_MailboxTrackingFolders + +One-To-Many Relationship: [approvalstageapproval approvalstageapproval_MailboxTrackingFolders](approvalstageapproval.md#BKMK_approvalstageapproval_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageapproval`| +|ReferencedAttribute|`approvalstageapprovalid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalstageapproval`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstagecondition_MailboxTrackingFolders + +One-To-Many Relationship: [approvalstagecondition approvalstagecondition_MailboxTrackingFolders](approvalstagecondition.md#BKMK_approvalstagecondition_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstagecondition`| +|ReferencedAttribute|`approvalstageconditionid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalstagecondition`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstageorder_MailboxTrackingFolders + +One-To-Many Relationship: [approvalstageorder approvalstageorder_MailboxTrackingFolders](approvalstageorder.md#BKMK_approvalstageorder_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageorder`| +|ReferencedAttribute|`approvalstageorderid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalstageorder`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### AsyncOperation_MailboxTrackingFolder One-To-Many Relationship: [asyncoperation AsyncOperation_MailboxTrackingFolder](asyncoperation.md#BKMK_AsyncOperation_MailboxTrackingFolder) @@ -1107,6 +1164,19 @@ One-To-Many Relationship: [botcomponentcollection botcomponentcollection_Mailbox |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### businessprocess_MailboxTrackingFolders + +One-To-Many Relationship: [businessprocess businessprocess_MailboxTrackingFolders](businessprocess.md#BKMK_businessprocess_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessprocess`| +|ReferencedAttribute|`businessprocessid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_businessprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### businessunit_mailboxtrackingfolder One-To-Many Relationship: [businessunit businessunit_mailboxtrackingfolder](businessunit.md#BKMK_businessunit_mailboxtrackingfolder) @@ -1523,6 +1593,19 @@ One-To-Many Relationship: [dvtablesearchentity dvtablesearchentity_MailboxTracki |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### emailaddressconfiguration_MailboxTrackingFolders + +One-To-Many Relationship: [emailaddressconfiguration emailaddressconfiguration_MailboxTrackingFolders](emailaddressconfiguration.md#BKMK_emailaddressconfiguration_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`emailaddressconfiguration`| +|ReferencedAttribute|`emailaddressconfigurationid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_emailaddressconfiguration`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### entityanalyticsconfig_MailboxTrackingFolders One-To-Many Relationship: [entityanalyticsconfig entityanalyticsconfig_MailboxTrackingFolders](entityanalyticsconfig.md#BKMK_entityanalyticsconfig_MailboxTrackingFolders) @@ -1536,6 +1619,19 @@ One-To-Many Relationship: [entityanalyticsconfig entityanalyticsconfig_MailboxTr |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### entityclusterconfig_MailboxTrackingFolders + +One-To-Many Relationship: [entityclusterconfig entityclusterconfig_MailboxTrackingFolders](entityclusterconfig.md#BKMK_entityclusterconfig_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`entityclusterconfig`| +|ReferencedAttribute|`entityclusterconfigid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_entityclusterconfig`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### entityimageconfig_MailboxTrackingFolders One-To-Many Relationship: [entityimageconfig entityimageconfig_MailboxTrackingFolders](entityimageconfig.md#BKMK_entityimageconfig_MailboxTrackingFolders) @@ -2095,6 +2191,45 @@ One-To-Many Relationship: [msdyn_aiconfiguration msdyn_aiconfiguration_MailboxTr |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### msdyn_aidataprocessingevent_MailboxTrackingFolders + +One-To-Many Relationship: [msdyn_aidataprocessingevent msdyn_aidataprocessingevent_MailboxTrackingFolders](msdyn_aidataprocessingevent.md#BKMK_msdyn_aidataprocessingevent_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aidataprocessingevent`| +|ReferencedAttribute|`msdyn_aidataprocessingeventid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aidataprocessingevent`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aievaluationconfiguration_MailboxTrackingFolders + +One-To-Many Relationship: [msdyn_aievaluationconfiguration msdyn_aievaluationconfiguration_MailboxTrackingFolders](msdyn_aievaluationconfiguration.md#BKMK_msdyn_aievaluationconfiguration_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aievaluationconfiguration`| +|ReferencedAttribute|`msdyn_aievaluationconfigurationid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aievaluationconfiguration`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aievaluationrun_MailboxTrackingFolders + +One-To-Many Relationship: [msdyn_aievaluationrun msdyn_aievaluationrun_MailboxTrackingFolders](msdyn_aievaluationrun.md#BKMK_msdyn_aievaluationrun_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aievaluationrun`| +|ReferencedAttribute|`msdyn_aievaluationrunid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aievaluationrun`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### msdyn_aievent_MailboxTrackingFolders One-To-Many Relationship: [msdyn_aievent msdyn_aievent_MailboxTrackingFolders](msdyn_aievent.md#BKMK_msdyn_aievent_MailboxTrackingFolders) @@ -2199,6 +2334,71 @@ One-To-Many Relationship: [msdyn_aitemplate msdyn_aitemplate_MailboxTrackingFold |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### msdyn_aitestcase_MailboxTrackingFolders + +One-To-Many Relationship: [msdyn_aitestcase msdyn_aitestcase_MailboxTrackingFolders](msdyn_aitestcase.md#BKMK_msdyn_aitestcase_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcase`| +|ReferencedAttribute|`msdyn_aitestcaseid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestcase`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestcasedocument_MailboxTrackingFolders + +One-To-Many Relationship: [msdyn_aitestcasedocument msdyn_aitestcasedocument_MailboxTrackingFolders](msdyn_aitestcasedocument.md#BKMK_msdyn_aitestcasedocument_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcasedocument`| +|ReferencedAttribute|`msdyn_aitestcasedocumentid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestcasedocument`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestcaseinput_MailboxTrackingFolders + +One-To-Many Relationship: [msdyn_aitestcaseinput msdyn_aitestcaseinput_MailboxTrackingFolders](msdyn_aitestcaseinput.md#BKMK_msdyn_aitestcaseinput_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcaseinput`| +|ReferencedAttribute|`msdyn_aitestcaseinputid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestcaseinput`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestrun_MailboxTrackingFolders + +One-To-Many Relationship: [msdyn_aitestrun msdyn_aitestrun_MailboxTrackingFolders](msdyn_aitestrun.md#BKMK_msdyn_aitestrun_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestrun`| +|ReferencedAttribute|`msdyn_aitestrunid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestrun`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestrunbatch_MailboxTrackingFolders + +One-To-Many Relationship: [msdyn_aitestrunbatch msdyn_aitestrunbatch_MailboxTrackingFolders](msdyn_aitestrunbatch.md#BKMK_msdyn_aitestrunbatch_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestrunbatch`| +|ReferencedAttribute|`msdyn_aitestrunbatchid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestrunbatch`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### msdyn_analysiscomponent_MailboxTrackingFolders One-To-Many Relationship: [msdyn_analysiscomponent msdyn_analysiscomponent_MailboxTrackingFolders](msdyn_analysiscomponent.md#BKMK_msdyn_analysiscomponent_MailboxTrackingFolders) @@ -3629,19 +3829,6 @@ One-To-Many Relationship: [privilegesremovalsetting privilegesremovalsetting_Mai |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### processorregistration_MailboxTrackingFolders - -One-To-Many Relationship: [processorregistration processorregistration_MailboxTrackingFolders](processorregistration.md#BKMK_processorregistration_MailboxTrackingFolders) - -|Property|Value| -|---|---| -|ReferencedEntity|`processorregistration`| -|ReferencedAttribute|`processorregistrationid`| -|ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_processorregistration`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### processstageparameter_MailboxTrackingFolders One-To-Many Relationship: [processstageparameter processstageparameter_MailboxTrackingFolders](processstageparameter.md#BKMK_processstageparameter_MailboxTrackingFolders) @@ -3811,6 +3998,19 @@ One-To-Many Relationship: [roleeditorlayout roleeditorlayout_MailboxTrackingFold |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### savingrule_MailboxTrackingFolders + +One-To-Many Relationship: [savingrule savingrule_MailboxTrackingFolders](savingrule.md#BKMK_savingrule_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`savingrule`| +|ReferencedAttribute|`savingruleid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_savingrule`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### searchattributesettings_MailboxTrackingFolders One-To-Many Relationship: [searchattributesettings searchattributesettings_MailboxTrackingFolders](searchattributesettings.md#BKMK_searchattributesettings_MailboxTrackingFolders) @@ -3954,19 +4154,6 @@ One-To-Many Relationship: [sideloadedaiplugin sideloadedaiplugin_MailboxTracking |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### signalregistration_MailboxTrackingFolders - -One-To-Many Relationship: [signalregistration signalregistration_MailboxTrackingFolders](signalregistration.md#BKMK_signalregistration_MailboxTrackingFolders) - -|Property|Value| -|---|---| -|ReferencedEntity|`signalregistration`| -|ReferencedAttribute|`signalregistrationid`| -|ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_signalregistration`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### solutioncomponentattributeconfiguration_MailboxTrackingFolders One-To-Many Relationship: [solutioncomponentattributeconfiguration solutioncomponentattributeconfiguration_MailboxTrackingFolders](solutioncomponentattributeconfiguration.md#BKMK_solutioncomponentattributeconfiguration_MailboxTrackingFolders) @@ -4175,6 +4362,45 @@ One-To-Many Relationship: [systemuserauthorizationchangetracker systemuserauthor |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### tag_MailboxTrackingFolders + +One-To-Many Relationship: [tag tag_MailboxTrackingFolders](tag.md#BKMK_tag_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`tag`| +|ReferencedAttribute|`tagid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_tag`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### taggedflowsession_MailboxTrackingFolders + +One-To-Many Relationship: [taggedflowsession taggedflowsession_MailboxTrackingFolders](taggedflowsession.md#BKMK_taggedflowsession_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`taggedflowsession`| +|ReferencedAttribute|`taggedflowsessionid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_taggedflowsession`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### taggedprocess_MailboxTrackingFolders + +One-To-Many Relationship: [taggedprocess taggedprocess_MailboxTrackingFolders](taggedprocess.md#BKMK_taggedprocess_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`taggedprocess`| +|ReferencedAttribute|`taggedprocessid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_taggedprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### team_mailboxtrackingfolder One-To-Many Relationship: [team team_mailboxtrackingfolder](team.md#BKMK_team_mailboxtrackingfolder) @@ -4214,16 +4440,29 @@ One-To-Many Relationship: [territory territory_MailboxTrackingFolders](territory |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### traitregistration_MailboxTrackingFolders +### unstructuredfilesearchentity_MailboxTrackingFolders + +One-To-Many Relationship: [unstructuredfilesearchentity unstructuredfilesearchentity_MailboxTrackingFolders](unstructuredfilesearchentity.md#BKMK_unstructuredfilesearchentity_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`unstructuredfilesearchentity`| +|ReferencedAttribute|`unstructuredfilesearchentityid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_unstructuredfilesearchentity`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### unstructuredfilesearchrecord_MailboxTrackingFolders -One-To-Many Relationship: [traitregistration traitregistration_MailboxTrackingFolders](traitregistration.md#BKMK_traitregistration_MailboxTrackingFolders) +One-To-Many Relationship: [unstructuredfilesearchrecord unstructuredfilesearchrecord_MailboxTrackingFolders](unstructuredfilesearchrecord.md#BKMK_unstructuredfilesearchrecord_MailboxTrackingFolders) |Property|Value| |---|---| -|ReferencedEntity|`traitregistration`| -|ReferencedAttribute|`traitregistrationid`| +|ReferencedEntity|`unstructuredfilesearchrecord`| +|ReferencedAttribute|`unstructuredfilesearchrecordid`| |ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_traitregistration`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_unstructuredfilesearchrecord`| |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| @@ -4292,6 +4531,19 @@ One-To-Many Relationship: [workflowbinary workflowbinary_MailboxTrackingFolders] |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### workflowmetadata_MailboxTrackingFolders + +One-To-Many Relationship: [workflowmetadata workflowmetadata_MailboxTrackingFolders](workflowmetadata.md#BKMK_workflowmetadata_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencedEntity|`workflowmetadata`| +|ReferencedAttribute|`workflowmetadataid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_workflowmetadata`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### workqueue_MailboxTrackingFolders One-To-Many Relationship: [workqueue workqueue_MailboxTrackingFolders](workqueue.md#BKMK_workqueue_MailboxTrackingFolders) diff --git a/powerapps-docs/developer/data-platform/reference/entities/makerfewshot.md b/powerapps-docs/developer/data-platform/reference/entities/makerfewshot.md index 251f0f1f16..0cff1868b2 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/makerfewshot.md +++ b/powerapps-docs/developer/data-platform/reference/entities/makerfewshot.md @@ -106,7 +106,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**EntityScope that can be used to extract results. Format: [entityscopeA], [entityscopeB]**| +|Description|**EntityScope that can be used to extract results. Format: \[entityscopeA\], \[entityscopeB\]**| |DisplayName|**EntityScope**| |IsValidForForm|True| |IsValidForRead|True| @@ -123,7 +123,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**EntityScopeColumn within the EntityScope specified above.Format: [EntityScopeA].[EntityScopeColumnA1], [EntityScopeB].[EntityScopeColumnB2]**| +|Description|**EntityScopeColumn within the EntityScope specified above.Format: \[EntityScopeA\].\[EntityScopeColumnA1\], \[EntityScopeB\].\[EntityScopeColumnB2\]**| |DisplayName|**EntityScopeColumn**| |IsValidForForm|True| |IsValidForRead|True| diff --git a/powerapps-docs/developer/data-platform/reference/entities/managedidentity.md b/powerapps-docs/developer/data-platform/reference/entities/managedidentity.md index 609038e8b7..d2a552060d 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/managedidentity.md +++ b/powerapps-docs/developer/data-platform/reference/entities/managedidentity.md @@ -78,6 +78,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [TenantId](#BKMK_TenantId) - [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) - [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) +- [Version](#BKMK_Version) ### ApplicationId @@ -345,6 +346,20 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |MaxValue|2147483647| |MinValue|-1| +### Version + +|Property|Value| +|---|---| +|Description|**Version indicating the format of the FIC subject.**| +|DisplayName|| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`version`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|0| + ## Read-only columns/attributes @@ -579,7 +594,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| @@ -788,6 +803,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [managedidentity_BulkDeleteFailures](#BKMK_managedidentity_BulkDeleteFailures) - [managedidentity_DuplicateBaseRecord](#BKMK_managedidentity_DuplicateBaseRecord) - [managedidentity_DuplicateMatchingRecord](#BKMK_managedidentity_DuplicateMatchingRecord) +- [managedidentity_emailserverprofile_acsmanagedidentityid](#BKMK_managedidentity_emailserverprofile_acsmanagedidentityid) - [managedidentity_emailserverprofile_managedidentityid](#BKMK_managedidentity_emailserverprofile_managedidentityid) - [managedidentity_KeyVaultReference](#BKMK_managedidentity_KeyVaultReference) - [managedidentity_MailboxTrackingFolders](#BKMK_managedidentity_MailboxTrackingFolders) @@ -795,6 +811,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [managedidentity_pluginpackage](#BKMK_managedidentity_pluginpackage) - [managedidentity_PrincipalObjectAttributeAccesses](#BKMK_managedidentity_PrincipalObjectAttributeAccesses) - [managedidentity_ProcessSession](#BKMK_managedidentity_ProcessSession) +- [managedidentity_ServiceEndpoint](#BKMK_managedidentity_ServiceEndpoint) - [ManagedIdentity_SharePointManagedIdentity_ManagedIdentityId](#BKMK_ManagedIdentity_SharePointManagedIdentity_ManagedIdentityId) - [managedidentity_SyncErrors](#BKMK_managedidentity_SyncErrors) - [PowerPagesManagedIdentity_ManagedIdentity_ManagedIdentity](#BKMK_PowerPagesManagedIdentity_ManagedIdentity_ManagedIdentity) @@ -859,6 +876,18 @@ Many-To-One Relationship: [duplicaterecord managedidentity_DuplicateMatchingReco |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### managedidentity_emailserverprofile_acsmanagedidentityid + +Many-To-One Relationship: [emailserverprofile managedidentity_emailserverprofile_acsmanagedidentityid](emailserverprofile.md#BKMK_managedidentity_emailserverprofile_acsmanagedidentityid) + +|Property|Value| +|---|---| +|ReferencingEntity|`emailserverprofile`| +|ReferencingAttribute|`acsmanagedidentityid`| +|ReferencedEntityNavigationPropertyName|`managedidentity_emailserverprofile_acsmanagedidentityid`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### managedidentity_emailserverprofile_managedidentityid Many-To-One Relationship: [emailserverprofile managedidentity_emailserverprofile_managedidentityid](emailserverprofile.md#BKMK_managedidentity_emailserverprofile_managedidentityid) @@ -943,6 +972,18 @@ Many-To-One Relationship: [processsession managedidentity_ProcessSession](proces |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### managedidentity_ServiceEndpoint + +Many-To-One Relationship: [serviceendpoint managedidentity_ServiceEndpoint](serviceendpoint.md#BKMK_managedidentity_ServiceEndpoint) + +|Property|Value| +|---|---| +|ReferencingEntity|`serviceendpoint`| +|ReferencingAttribute|`managedidentityid`| +|ReferencedEntityNavigationPropertyName|`managedidentity_ServiceEndpoint`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### ManagedIdentity_SharePointManagedIdentity_ManagedIdentityId Many-To-One Relationship: [sharepointmanagedidentity ManagedIdentity_SharePointManagedIdentity_ManagedIdentityId](sharepointmanagedidentity.md#BKMK_ManagedIdentity_SharePointManagedIdentity_ManagedIdentityId) diff --git a/powerapps-docs/developer/data-platform/reference/entities/maskingrule.md b/powerapps-docs/developer/data-platform/reference/entities/maskingrule.md index 4135ddc0c8..ef8f9f9820 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/maskingrule.md +++ b/powerapps-docs/developer/data-platform/reference/entities/maskingrule.md @@ -211,7 +211,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**Regular Expression in C#**| +|Description|**Regular Expression in C\#**| |DisplayName|**Regular Expression**| |IsValidForForm|True| |IsValidForRead|True| diff --git a/powerapps-docs/developer/data-platform/reference/entities/mobileofflineprofileitemfilter.md b/powerapps-docs/developer/data-platform/reference/entities/mobileofflineprofileitemfilter.md index 57a5072b57..6b9fc05d03 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/mobileofflineprofileitemfilter.md +++ b/powerapps-docs/developer/data-platform/reference/entities/mobileofflineprofileitemfilter.md @@ -235,14 +235,14 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Value|Label| |---|---| -|0|**CUD_IN**| -|1|**RELATED_CUD_IN**| -|2|**SHARED_IN**| -|3|**RELATED_SHARED_IN**| -|4|**CUD_OUT**| -|5|**FULL_SYNC**| -|6|**RELATED_ENTITIES**| -|7|**RELATED_INTERSECT_ENTITIES**| +|0|**CUD\_IN**| +|1|**RELATED\_CUD\_IN**| +|2|**SHARED\_IN**| +|3|**RELATED\_SHARED\_IN**| +|4|**CUD\_OUT**| +|5|**FULL\_SYNC**| +|6|**RELATED\_ENTITIES**| +|7|**RELATED\_INTERSECT\_ENTITIES**| ### type @@ -262,11 +262,11 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Value|Label| |---|---| -|0|**DELTA_IN**| -|1|**DELTA_OUT**| -|2|**FULL_SYNC**| -|3|**TOP_1**| -|4|**RELATED_ENTITIES**| +|0|**DELTA\_IN**| +|1|**DELTA\_OUT**| +|2|**FULL\_SYNC**| +|3|**TOP\_1**| +|4|**RELATED\_ENTITIES**| ## Read-only columns/attributes diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_aiconfiguration.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aiconfiguration.md index 1963ab8886..d19372b9fb 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_aiconfiguration.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aiconfiguration.md @@ -785,7 +785,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |Property|Value| |---|---| |Description|**This is a file type attribute to store Ai builder Model.**| -|DisplayName|**msdyn_Model**| +|DisplayName|**msdyn\_Model**| |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`msdyn_model`| @@ -1047,7 +1047,7 @@ One-To-Many Relationship: [msdyn_aimodel msdyn_aimodel_msdyn_aiconfiguration](ms |ReferencingAttribute|`msdyn_aimodelid`| |ReferencingEntityNavigationPropertyName|`msdyn_AIModelId`| |IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `Cascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| ### msdyn_createdfromconfiguration_msdyn_toconfiguration diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_aidataprocessingevent.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aidataprocessingevent.md new file mode 100644 index 0000000000..47a5f3c062 --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aidataprocessingevent.md @@ -0,0 +1,859 @@ +--- +title: "Data Processing Event (msdyn_AIDataProcessingEvent) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the Data Processing Event (msdyn_AIDataProcessingEvent) table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# Data Processing Event (msdyn_AIDataProcessingEvent) table/entity reference (Microsoft Dataverse) + +Events that are triggered by Data Processing. + +## Messages + +The following table lists the messages for the Data Processing Event (msdyn_AIDataProcessingEvent) table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Assign`
Event: True |`PATCH` /msdyn_aidataprocessingevents(*msdyn_aidataprocessingeventid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /msdyn_aidataprocessingevents
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /msdyn_aidataprocessingevents(*msdyn_aidataprocessingeventid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `GrantAccess`
Event: True | || +| `IsValidStateTransition`
Event: False | || +| `ModifyAccess`
Event: True | || +| `Retrieve`
Event: True |`GET` /msdyn_aidataprocessingevents(*msdyn_aidataprocessingeventid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /msdyn_aidataprocessingevents
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `RetrievePrincipalAccess`
Event: True | || +| `RetrieveSharedPrincipalsAndAccess`
Event: True | || +| `RevokeAccess`
Event: True | || +| `SetState`
Event: True |`PATCH` /msdyn_aidataprocessingevents(*msdyn_aidataprocessingeventid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /msdyn_aidataprocessingevents(*msdyn_aidataprocessingeventid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /msdyn_aidataprocessingevents(*msdyn_aidataprocessingeventid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + +## Properties + +The following table lists selected properties for the Data Processing Event (msdyn_AIDataProcessingEvent) table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **Data Processing Event** | +| **DisplayCollectionName** | **Data Processing Events** | +| **SchemaName** | `msdyn_AIDataProcessingEvent` | +| **CollectionSchemaName** | `msdyn_AIDataProcessingEvents` | +| **EntitySetName** | `msdyn_aidataprocessingevents`| +| **LogicalName** | `msdyn_aidataprocessingevent` | +| **LogicalCollectionName** | `msdyn_aidataprocessingevents` | +| **PrimaryIdAttribute** | `msdyn_aidataprocessingeventid` | +| **PrimaryNameAttribute** |`msdyn_name` | +| **TableType** | `Standard` | +| **OwnershipType** | `UserOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [msdyn_AIDataProcessingEventId](#BKMK_msdyn_AIDataProcessingEventId) +- [msdyn_CustomData](#BKMK_msdyn_CustomData) +- [msdyn_InputDataFormat](#BKMK_msdyn_InputDataFormat) +- [msdyn_Name](#BKMK_msdyn_Name) +- [msdyn_ProcessedData](#BKMK_msdyn_ProcessedData) +- [msdyn_ProcessingStatus](#BKMK_msdyn_ProcessingStatus) +- [msdyn_ProcessorName](#BKMK_msdyn_ProcessorName) +- [msdyn_ProcessorType](#BKMK_msdyn_ProcessorType) +- [msdyn_ReceivedDate](#BKMK_msdyn_ReceivedDate) +- [msdyn_UpdatedDate](#BKMK_msdyn_UpdatedDate) +- [msdyn_ValidationResult](#BKMK_msdyn_ValidationResult) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [statecode](#BKMK_statecode) +- [statuscode](#BKMK_statuscode) +- [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### msdyn_AIDataProcessingEventId + +|Property|Value| +|---|---| +|Description|**Unique identifier for entity instances**| +|DisplayName|**Data Processing Event**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`msdyn_aidataprocessingeventid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### msdyn_CustomData + +|Property|Value| +|---|---| +|Description|**Free area. Used for instructions to a reviewer, or JSON for cases where maker needs more customized info.**| +|DisplayName|**Custom Data**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_customdata`| +|RequiredLevel|None| +|Type|Memo| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|10000| + +### msdyn_InputDataFormat + +|Property|Value| +|---|---| +|Description|**Format of Input Data (JSON, XML, etc)**| +|DisplayName|**Input Data Format**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_inputdataformat`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### msdyn_Name + +|Property|Value| +|---|---| +|Description|**Name of data source (e.g. file name on Document Processing)**| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_name`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|850| + +### msdyn_ProcessedData + +|Property|Value| +|---|---| +|Description|**Output of AI models for this data. (e.g. Extracted data from Documents in Doc. Processing)**| +|DisplayName|**Processed Data**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_processeddata`| +|RequiredLevel|None| +|Type|Memo| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1048576| + +### msdyn_ProcessingStatus + +|Property|Value| +|---|---| +|Description|**Current processing status of data.**| +|DisplayName|**Processing Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_processingstatus`| +|RequiredLevel|ApplicationRequired| +|Type|Picklist| +|DefaultFormValue|375150000| +|GlobalChoiceName|`msdyn_aidataprocessingevent_msdyn_processingstatus`| + +#### msdyn_ProcessingStatus Choices/Options + +|Value|Label| +|---|---| +|375150000|**New**| +|375150001|**Processed**| +|375150002|**Processing Failed**| +|375150003|**Validated**| +|375150004|**Manual Review**| +|375150005|**Exported**| +|375150006|**Exporting Failed**| +|375150007|**Rejected**| + +### msdyn_ProcessorName + +|Property|Value| +|---|---| +|Description|**Agent or Model processing this data.**| +|DisplayName|**Processor Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_processorname`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### msdyn_ProcessorType + +|Property|Value| +|---|---| +|Description|**Type of processor (e.g. bot or workflow)**| +|DisplayName|**Processor Type**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_processortype`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### msdyn_ReceivedDate + +|Property|Value| +|---|---| +|Description|**Date input data was received.**| +|DisplayName|**Received Date**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_receiveddate`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|True| +|DateTimeBehavior|TimeZoneIndependent| +|Format|DateOnly| +|ImeMode|Auto| +|SourceTypeMask|0| + +### msdyn_UpdatedDate + +|Property|Value| +|---|---| +|Description|**Date the last update of Processing Status happened.**| +|DisplayName|**Updated Date**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_updateddate`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|True| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Auto| +|SourceTypeMask|0| + +### msdyn_ValidationResult + +|Property|Value| +|---|---| +|Description|**Result of validation process when this data is handled by an agent or AI model.**| +|DisplayName|**Validation Result**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_validationresult`| +|RequiredLevel|None| +|Type|Memo| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|2000| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### statecode + +|Property|Value| +|---|---| +|Description|**Status of the DataProcessingEvent**| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statecode`| +|RequiredLevel|SystemRequired| +|Type|State| +|DefaultFormValue|| +|GlobalChoiceName|`msdyn_aidataprocessingevent_statecode`| + +#### statecode Choices/Options + +|Value|Details| +|---|---| +|0|Label: **Active**
DefaultStatus: 1
InvariantName: `Active`| +|1|Label: **Inactive**
DefaultStatus: 2
InvariantName: `Inactive`| + +### statuscode + +|Property|Value| +|---|---| +|Description|**Reason for the status of the DataProcessingEvent**| +|DisplayName|**Status Reason**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Status| +|DefaultFormValue|| +|GlobalChoiceName|`msdyn_aidataprocessingevent_statuscode`| + +#### statuscode Choices/Options + +|Value|Details| +|---|---| +|1|Label: **Active**
State:0
TransitionData: None| +|2|Label: **Inactive**
State:1
TransitionData: None| + +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### UTCConversionTimeZoneCode + +|Property|Value| +|---|---| +|Description|**Time zone code that was in use when the record was created.**| +|DisplayName|**UTC Conversion Time Zone Code**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`utcconversiontimezonecode`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [msdyn_InputData](#BKMK_msdyn_InputData) +- [msdyn_InputData_Name](#BKMK_msdyn_InputData_Name) +- [OwnerIdName](#BKMK_OwnerIdName) +- [OwnerIdYomiName](#BKMK_OwnerIdYomiName) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) +- [OwningTeam](#BKMK_OwningTeam) +- [OwningUser](#BKMK_OwningUser) +- [VersionNumber](#BKMK_VersionNumber) + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### msdyn_InputData + +|Property|Value| +|---|---| +|Description|**Input data of the process (e.g. file content for Document Processing).**| +|DisplayName|**Input Data**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_inputdata`| +|RequiredLevel|None| +|Type|File| +|MaxSizeInKB|32768| + +### msdyn_InputData_Name + +|Property|Value| +|---|---| +|Description|| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`msdyn_inputdata_name`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Disabled| +|IsLocalizable|False| +|MaxLength|200| + +### OwnerIdName + +|Property|Value| +|---|---| +|Description|**Name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwnerIdYomiName + +|Property|Value| +|---|---| +|Description|**Yomi name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridyominame`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|SystemRequired| +|Type|Lookup| +|Targets|businessunit| + +### OwningTeam + +|Property|Value| +|---|---| +|Description|**Unique identifier for the team that owns the record.**| +|DisplayName|**Owning Team**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningteam`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|team| + +### OwningUser + +|Property|Value| +|---|---| +|Description|**Unique identifier for the user that owns the record.**| +|DisplayName|**Owning User**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owninguser`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [business_unit_msdyn_aidataprocessingevent](#BKMK_business_unit_msdyn_aidataprocessingevent) +- [FileAttachment_msdyn_AIDataProcessingEvent_msdyn_InputData](#BKMK_FileAttachment_msdyn_AIDataProcessingEvent_msdyn_InputData) +- [lk_msdyn_aidataprocessingevent_createdby](#BKMK_lk_msdyn_aidataprocessingevent_createdby) +- [lk_msdyn_aidataprocessingevent_createdonbehalfby](#BKMK_lk_msdyn_aidataprocessingevent_createdonbehalfby) +- [lk_msdyn_aidataprocessingevent_modifiedby](#BKMK_lk_msdyn_aidataprocessingevent_modifiedby) +- [lk_msdyn_aidataprocessingevent_modifiedonbehalfby](#BKMK_lk_msdyn_aidataprocessingevent_modifiedonbehalfby) +- [owner_msdyn_aidataprocessingevent](#BKMK_owner_msdyn_aidataprocessingevent) +- [team_msdyn_aidataprocessingevent](#BKMK_team_msdyn_aidataprocessingevent) +- [user_msdyn_aidataprocessingevent](#BKMK_user_msdyn_aidataprocessingevent) + +### business_unit_msdyn_aidataprocessingevent + +One-To-Many Relationship: [businessunit business_unit_msdyn_aidataprocessingevent](businessunit.md#BKMK_business_unit_msdyn_aidataprocessingevent) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessunit`| +|ReferencedAttribute|`businessunitid`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencingEntityNavigationPropertyName|`owningbusinessunit`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### FileAttachment_msdyn_AIDataProcessingEvent_msdyn_InputData + +One-To-Many Relationship: [fileattachment FileAttachment_msdyn_AIDataProcessingEvent_msdyn_InputData](fileattachment.md#BKMK_FileAttachment_msdyn_AIDataProcessingEvent_msdyn_InputData) + +|Property|Value| +|---|---| +|ReferencedEntity|`fileattachment`| +|ReferencedAttribute|`fileattachmentid`| +|ReferencingAttribute|`msdyn_inputdata`| +|ReferencingEntityNavigationPropertyName|`msdyn_inputdata`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aidataprocessingevent_createdby + +One-To-Many Relationship: [systemuser lk_msdyn_aidataprocessingevent_createdby](systemuser.md#BKMK_lk_msdyn_aidataprocessingevent_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aidataprocessingevent_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_msdyn_aidataprocessingevent_createdonbehalfby](systemuser.md#BKMK_lk_msdyn_aidataprocessingevent_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aidataprocessingevent_modifiedby + +One-To-Many Relationship: [systemuser lk_msdyn_aidataprocessingevent_modifiedby](systemuser.md#BKMK_lk_msdyn_aidataprocessingevent_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aidataprocessingevent_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_msdyn_aidataprocessingevent_modifiedonbehalfby](systemuser.md#BKMK_lk_msdyn_aidataprocessingevent_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### owner_msdyn_aidataprocessingevent + +One-To-Many Relationship: [owner owner_msdyn_aidataprocessingevent](owner.md#BKMK_owner_msdyn_aidataprocessingevent) + +|Property|Value| +|---|---| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### team_msdyn_aidataprocessingevent + +One-To-Many Relationship: [team team_msdyn_aidataprocessingevent](team.md#BKMK_team_msdyn_aidataprocessingevent) + +|Property|Value| +|---|---| +|ReferencedEntity|`team`| +|ReferencedAttribute|`teamid`| +|ReferencingAttribute|`owningteam`| +|ReferencingEntityNavigationPropertyName|`owningteam`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### user_msdyn_aidataprocessingevent + +One-To-Many Relationship: [systemuser user_msdyn_aidataprocessingevent](systemuser.md#BKMK_user_msdyn_aidataprocessingevent) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`owninguser`| +|ReferencingEntityNavigationPropertyName|`owninguser`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +- [msdyn_aidataprocessingevent_AsyncOperations](#BKMK_msdyn_aidataprocessingevent_AsyncOperations) +- [msdyn_aidataprocessingevent_BulkDeleteFailures](#BKMK_msdyn_aidataprocessingevent_BulkDeleteFailures) +- [msdyn_aidataprocessingevent_FileAttachments](#BKMK_msdyn_aidataprocessingevent_FileAttachments) +- [msdyn_aidataprocessingevent_MailboxTrackingFolders](#BKMK_msdyn_aidataprocessingevent_MailboxTrackingFolders) +- [msdyn_aidataprocessingevent_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aidataprocessingevent_PrincipalObjectAttributeAccesses) +- [msdyn_aidataprocessingevent_ProcessSession](#BKMK_msdyn_aidataprocessingevent_ProcessSession) +- [msdyn_aidataprocessingevent_SyncErrors](#BKMK_msdyn_aidataprocessingevent_SyncErrors) + +### msdyn_aidataprocessingevent_AsyncOperations + +Many-To-One Relationship: [asyncoperation msdyn_aidataprocessingevent_AsyncOperations](asyncoperation.md#BKMK_msdyn_aidataprocessingevent_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencingEntity|`asyncoperation`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aidataprocessingevent_AsyncOperations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aidataprocessingevent_BulkDeleteFailures + +Many-To-One Relationship: [bulkdeletefailure msdyn_aidataprocessingevent_BulkDeleteFailures](bulkdeletefailure.md#BKMK_msdyn_aidataprocessingevent_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencingEntity|`bulkdeletefailure`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aidataprocessingevent_BulkDeleteFailures`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aidataprocessingevent_FileAttachments + +Many-To-One Relationship: [fileattachment msdyn_aidataprocessingevent_FileAttachments](fileattachment.md#BKMK_msdyn_aidataprocessingevent_FileAttachments) + +|Property|Value| +|---|---| +|ReferencingEntity|`fileattachment`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aidataprocessingevent_FileAttachments`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aidataprocessingevent_MailboxTrackingFolders + +Many-To-One Relationship: [mailboxtrackingfolder msdyn_aidataprocessingevent_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_msdyn_aidataprocessingevent_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencingEntity|`mailboxtrackingfolder`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aidataprocessingevent_MailboxTrackingFolders`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aidataprocessingevent_PrincipalObjectAttributeAccesses + +Many-To-One Relationship: [principalobjectattributeaccess msdyn_aidataprocessingevent_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_msdyn_aidataprocessingevent_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencingEntity|`principalobjectattributeaccess`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aidataprocessingevent_PrincipalObjectAttributeAccesses`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aidataprocessingevent_ProcessSession + +Many-To-One Relationship: [processsession msdyn_aidataprocessingevent_ProcessSession](processsession.md#BKMK_msdyn_aidataprocessingevent_ProcessSession) + +|Property|Value| +|---|---| +|ReferencingEntity|`processsession`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aidataprocessingevent_ProcessSession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aidataprocessingevent_SyncErrors + +Many-To-One Relationship: [syncerror msdyn_aidataprocessingevent_SyncErrors](syncerror.md#BKMK_msdyn_aidataprocessingevent_SyncErrors) + +|Property|Value| +|---|---| +|ReferencingEntity|`syncerror`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aidataprocessingevent_SyncErrors`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_aievaluationconfiguration.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aievaluationconfiguration.md new file mode 100644 index 0000000000..f68a7a7321 --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aievaluationconfiguration.md @@ -0,0 +1,855 @@ +--- +title: "AI Evaluation Configuration (msdyn_AIEvaluationConfiguration) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the AI Evaluation Configuration (msdyn_AIEvaluationConfiguration) table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# AI Evaluation Configuration (msdyn_AIEvaluationConfiguration) table/entity reference (Microsoft Dataverse) + + + +## Messages + +The following table lists the messages for the AI Evaluation Configuration (msdyn_AIEvaluationConfiguration) table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Assign`
Event: True |`PATCH` /msdyn_aievaluationconfigurations(*msdyn_aievaluationconfigurationid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /msdyn_aievaluationconfigurations
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /msdyn_aievaluationconfigurations(*msdyn_aievaluationconfigurationid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `GrantAccess`
Event: True | || +| `IsValidStateTransition`
Event: False | || +| `ModifyAccess`
Event: True | || +| `Retrieve`
Event: True |`GET` /msdyn_aievaluationconfigurations(*msdyn_aievaluationconfigurationid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /msdyn_aievaluationconfigurations
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `RetrievePrincipalAccess`
Event: True | || +| `RetrieveSharedPrincipalsAndAccess`
Event: True | || +| `RevokeAccess`
Event: True | || +| `SetState`
Event: True |`PATCH` /msdyn_aievaluationconfigurations(*msdyn_aievaluationconfigurationid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /msdyn_aievaluationconfigurations(*msdyn_aievaluationconfigurationid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /msdyn_aievaluationconfigurations(*msdyn_aievaluationconfigurationid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + + +## Events + +The following table lists the events for the AI Evaluation Configuration (msdyn_AIEvaluationConfiguration) table. +Events are messages that exist so that you can subscribe to them. Unless you added the event, you shouldn't invoke the message, only subscribe to it. + +|Name|Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `BulkRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `PurgeRetainedContent`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `Retain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `RollbackRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `ValidateRetentionConfig`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| + +## Properties + +The following table lists selected properties for the AI Evaluation Configuration (msdyn_AIEvaluationConfiguration) table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **AI Evaluation Configuration** | +| **DisplayCollectionName** | **AI Evaluation Configuration** | +| **SchemaName** | `msdyn_AIEvaluationConfiguration` | +| **CollectionSchemaName** | `msdyn_AIEvaluationConfigurations` | +| **EntitySetName** | `msdyn_aievaluationconfigurations`| +| **LogicalName** | `msdyn_aievaluationconfiguration` | +| **LogicalCollectionName** | `msdyn_aievaluationconfigurations` | +| **PrimaryIdAttribute** | `msdyn_aievaluationconfigurationid` | +| **PrimaryNameAttribute** |`msdyn_name` | +| **TableType** | `Standard` | +| **OwnershipType** | `UserOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [IsCustomizable](#BKMK_IsCustomizable) +- [msdyn_AIEvaluationConfigurationId](#BKMK_msdyn_AIEvaluationConfigurationId) +- [msdyn_AIObjectId](#BKMK_msdyn_AIObjectId) +- [msdyn_AIObjectType](#BKMK_msdyn_AIObjectType) +- [msdyn_ConfigurationState](#BKMK_msdyn_ConfigurationState) +- [msdyn_Description](#BKMK_msdyn_Description) +- [msdyn_EvaluationCriteria](#BKMK_msdyn_EvaluationCriteria) +- [msdyn_Name](#BKMK_msdyn_Name) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [statecode](#BKMK_statecode) +- [statuscode](#BKMK_statuscode) +- [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### IsCustomizable + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Is Customizable**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`iscustomizable`| +|RequiredLevel|SystemRequired| +|Type|ManagedProperty| + +### msdyn_AIEvaluationConfigurationId + +|Property|Value| +|---|---| +|Description|**Unique identifier for entity instances**| +|DisplayName|**AIEvaluationConfiguration**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`msdyn_aievaluationconfigurationid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### msdyn_AIObjectId + +|Property|Value| +|---|---| +|Description|**Unique identifier for AIObject associated with AIEvaluationConfiguration.**| +|DisplayName|**AIObject**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_aiobjectid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### msdyn_AIObjectType + +|Property|Value| +|---|---| +|Description|**The Object type.**| +|DisplayName|**AIObjectType**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_aiobjecttype`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|200| + +### msdyn_ConfigurationState + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Evaluation configuration state**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_configurationstate`| +|RequiredLevel|ApplicationRequired| +|Type|Picklist| +|DefaultFormValue|-1| +|GlobalChoiceName|`msdyn_aievaluationconfiguration_msdyn_configurationstate`| + +#### msdyn_ConfigurationState Choices/Options + +|Value|Label| +|---|---| +|0|**Active**| +|1|**Inactive**| + +### msdyn_Description + +|Property|Value| +|---|---| +|Description|**The description of the evaluation configuration.**| +|DisplayName|**Description**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_description`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|400| + +### msdyn_EvaluationCriteria + +|Property|Value| +|---|---| +|Description|**Evaluation Criteria.**| +|DisplayName|**Evaluation Criteria**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_evaluationcriteria`| +|RequiredLevel|None| +|Type|Memo| +|Format|TextArea| +|FormatName|TextArea| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1048576| + +### msdyn_Name + +|Property|Value| +|---|---| +|Description|**The name of the AI evaluation configuration.**| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_name`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|200| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### statecode + +|Property|Value| +|---|---| +|Description|**Status of the AI Evaluation Configuration**| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statecode`| +|RequiredLevel|SystemRequired| +|Type|State| +|DefaultFormValue|| +|GlobalChoiceName|`msdyn_aievaluationconfiguration_statecode`| + +#### statecode Choices/Options + +|Value|Details| +|---|---| +|0|Label: **Active**
DefaultStatus: 1
InvariantName: `Active`| +|1|Label: **Inactive**
DefaultStatus: 2
InvariantName: `Inactive`| + +### statuscode + +|Property|Value| +|---|---| +|Description|**Reason for the status of the AI Evaluation Configuration**| +|DisplayName|**Status Reason**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Status| +|DefaultFormValue|| +|GlobalChoiceName|`msdyn_aievaluationconfiguration_statuscode`| + +#### statuscode Choices/Options + +|Value|Details| +|---|---| +|1|Label: **Active**
State:0
TransitionData: None| +|2|Label: **Inactive**
State:1
TransitionData: None| + +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### UTCConversionTimeZoneCode + +|Property|Value| +|---|---| +|Description|**Time zone code that was in use when the record was created.**| +|DisplayName|**UTC Conversion Time Zone Code**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`utcconversiontimezonecode`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [ComponentIdUnique](#BKMK_ComponentIdUnique) +- [ComponentState](#BKMK_ComponentState) +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [IsManaged](#BKMK_IsManaged) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OverwriteTime](#BKMK_OverwriteTime) +- [OwnerIdName](#BKMK_OwnerIdName) +- [OwnerIdYomiName](#BKMK_OwnerIdYomiName) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) +- [OwningTeam](#BKMK_OwningTeam) +- [OwningUser](#BKMK_OwningUser) +- [SolutionId](#BKMK_SolutionId) +- [SupportingSolutionId](#BKMK_SupportingSolutionId) +- [VersionNumber](#BKMK_VersionNumber) + +### ComponentIdUnique + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Row id unique**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentidunique`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### ComponentState + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Component State**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentstate`| +|RequiredLevel|SystemRequired| +|Type|Picklist| +|DefaultFormValue|| +|GlobalChoiceName|`componentstate`| + +#### ComponentState Choices/Options + +|Value|Label| +|---|---| +|0|**Published**| +|1|**Unpublished**| +|2|**Deleted**| +|3|**Deleted Unpublished**| + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### IsManaged + +|Property|Value| +|---|---| +|Description|**Indicates whether the solution component is part of a managed solution.**| +|DisplayName|**Is Managed**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`ismanaged`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`ismanaged`| +|DefaultValue|False| +|True Label|Managed| +|False Label|Unmanaged| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### OverwriteTime + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Record Overwrite Time**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overwritetime`| +|RequiredLevel|SystemRequired| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerIdName + +|Property|Value| +|---|---| +|Description|**Name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwnerIdYomiName + +|Property|Value| +|---|---| +|Description|**Yomi name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridyominame`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|businessunit| + +### OwningTeam + +|Property|Value| +|---|---| +|Description|**Unique identifier for the team that owns the record.**| +|DisplayName|**Owning Team**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningteam`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|team| + +### OwningUser + +|Property|Value| +|---|---| +|Description|**Unique identifier for the user that owns the record.**| +|DisplayName|**Owning User**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owninguser`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### SolutionId + +|Property|Value| +|---|---| +|Description|**Unique identifier of the associated solution.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`solutionid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### SupportingSolutionId + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|False| +|LogicalName|`supportingsolutionid`| +|RequiredLevel|None| +|Type|Uniqueidentifier| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [business_unit_msdyn_aievaluationconfiguration](#BKMK_business_unit_msdyn_aievaluationconfiguration) +- [lk_msdyn_aievaluationconfiguration_createdby](#BKMK_lk_msdyn_aievaluationconfiguration_createdby) +- [lk_msdyn_aievaluationconfiguration_createdonbehalfby](#BKMK_lk_msdyn_aievaluationconfiguration_createdonbehalfby) +- [lk_msdyn_aievaluationconfiguration_modifiedby](#BKMK_lk_msdyn_aievaluationconfiguration_modifiedby) +- [lk_msdyn_aievaluationconfiguration_modifiedonbehalfby](#BKMK_lk_msdyn_aievaluationconfiguration_modifiedonbehalfby) +- [owner_msdyn_aievaluationconfiguration](#BKMK_owner_msdyn_aievaluationconfiguration) +- [team_msdyn_aievaluationconfiguration](#BKMK_team_msdyn_aievaluationconfiguration) +- [user_msdyn_aievaluationconfiguration](#BKMK_user_msdyn_aievaluationconfiguration) + +### business_unit_msdyn_aievaluationconfiguration + +One-To-Many Relationship: [businessunit business_unit_msdyn_aievaluationconfiguration](businessunit.md#BKMK_business_unit_msdyn_aievaluationconfiguration) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessunit`| +|ReferencedAttribute|`businessunitid`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencingEntityNavigationPropertyName|`owningbusinessunit`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aievaluationconfiguration_createdby + +One-To-Many Relationship: [systemuser lk_msdyn_aievaluationconfiguration_createdby](systemuser.md#BKMK_lk_msdyn_aievaluationconfiguration_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aievaluationconfiguration_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_msdyn_aievaluationconfiguration_createdonbehalfby](systemuser.md#BKMK_lk_msdyn_aievaluationconfiguration_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aievaluationconfiguration_modifiedby + +One-To-Many Relationship: [systemuser lk_msdyn_aievaluationconfiguration_modifiedby](systemuser.md#BKMK_lk_msdyn_aievaluationconfiguration_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aievaluationconfiguration_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_msdyn_aievaluationconfiguration_modifiedonbehalfby](systemuser.md#BKMK_lk_msdyn_aievaluationconfiguration_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### owner_msdyn_aievaluationconfiguration + +One-To-Many Relationship: [owner owner_msdyn_aievaluationconfiguration](owner.md#BKMK_owner_msdyn_aievaluationconfiguration) + +|Property|Value| +|---|---| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### team_msdyn_aievaluationconfiguration + +One-To-Many Relationship: [team team_msdyn_aievaluationconfiguration](team.md#BKMK_team_msdyn_aievaluationconfiguration) + +|Property|Value| +|---|---| +|ReferencedEntity|`team`| +|ReferencedAttribute|`teamid`| +|ReferencingAttribute|`owningteam`| +|ReferencingEntityNavigationPropertyName|`owningteam`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### user_msdyn_aievaluationconfiguration + +One-To-Many Relationship: [systemuser user_msdyn_aievaluationconfiguration](systemuser.md#BKMK_user_msdyn_aievaluationconfiguration) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`owninguser`| +|ReferencingEntityNavigationPropertyName|`owninguser`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +- [msdyn_aievaluationconfiguration_AsyncOperations](#BKMK_msdyn_aievaluationconfiguration_AsyncOperations) +- [msdyn_aievaluationconfiguration_BulkDeleteFailures](#BKMK_msdyn_aievaluationconfiguration_BulkDeleteFailures) +- [msdyn_aievaluationconfiguration_MailboxTrackingFolders](#BKMK_msdyn_aievaluationconfiguration_MailboxTrackingFolders) +- [msdyn_aievaluationconfiguration_msdyn_aievaluationrun](#BKMK_msdyn_aievaluationconfiguration_msdyn_aievaluationrun) +- [msdyn_aievaluationconfiguration_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aievaluationconfiguration_PrincipalObjectAttributeAccesses) +- [msdyn_aievaluationconfiguration_ProcessSession](#BKMK_msdyn_aievaluationconfiguration_ProcessSession) +- [msdyn_aievaluationconfiguration_SyncErrors](#BKMK_msdyn_aievaluationconfiguration_SyncErrors) + +### msdyn_aievaluationconfiguration_AsyncOperations + +Many-To-One Relationship: [asyncoperation msdyn_aievaluationconfiguration_AsyncOperations](asyncoperation.md#BKMK_msdyn_aievaluationconfiguration_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencingEntity|`asyncoperation`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aievaluationconfiguration_AsyncOperations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aievaluationconfiguration_BulkDeleteFailures + +Many-To-One Relationship: [bulkdeletefailure msdyn_aievaluationconfiguration_BulkDeleteFailures](bulkdeletefailure.md#BKMK_msdyn_aievaluationconfiguration_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencingEntity|`bulkdeletefailure`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aievaluationconfiguration_BulkDeleteFailures`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aievaluationconfiguration_MailboxTrackingFolders + +Many-To-One Relationship: [mailboxtrackingfolder msdyn_aievaluationconfiguration_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_msdyn_aievaluationconfiguration_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencingEntity|`mailboxtrackingfolder`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aievaluationconfiguration_MailboxTrackingFolders`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aievaluationconfiguration_msdyn_aievaluationrun + +Many-To-One Relationship: [msdyn_aievaluationrun msdyn_aievaluationconfiguration_msdyn_aievaluationrun](msdyn_aievaluationrun.md#BKMK_msdyn_aievaluationconfiguration_msdyn_aievaluationrun) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aievaluationrun`| +|ReferencingAttribute|`msdyn_aievaluationconfigurationid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aievaluationconfiguration_msdyn_aievaluationrun`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aievaluationconfiguration_PrincipalObjectAttributeAccesses + +Many-To-One Relationship: [principalobjectattributeaccess msdyn_aievaluationconfiguration_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_msdyn_aievaluationconfiguration_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencingEntity|`principalobjectattributeaccess`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aievaluationconfiguration_PrincipalObjectAttributeAccesses`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aievaluationconfiguration_ProcessSession + +Many-To-One Relationship: [processsession msdyn_aievaluationconfiguration_ProcessSession](processsession.md#BKMK_msdyn_aievaluationconfiguration_ProcessSession) + +|Property|Value| +|---|---| +|ReferencingEntity|`processsession`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aievaluationconfiguration_ProcessSession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aievaluationconfiguration_SyncErrors + +Many-To-One Relationship: [syncerror msdyn_aievaluationconfiguration_SyncErrors](syncerror.md#BKMK_msdyn_aievaluationconfiguration_SyncErrors) + +|Property|Value| +|---|---| +|ReferencingEntity|`syncerror`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aievaluationconfiguration_SyncErrors`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_aievaluationrun.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aievaluationrun.md new file mode 100644 index 0000000000..c4ff655763 --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aievaluationrun.md @@ -0,0 +1,851 @@ +--- +title: "AI Evaluation Run (msdyn_AIEvaluationRun) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the AI Evaluation Run (msdyn_AIEvaluationRun) table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# AI Evaluation Run (msdyn_AIEvaluationRun) table/entity reference (Microsoft Dataverse) + + + +## Messages + +The following table lists the messages for the AI Evaluation Run (msdyn_AIEvaluationRun) table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Assign`
Event: True |`PATCH` /msdyn_aievaluationruns(*msdyn_aievaluationrunid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /msdyn_aievaluationruns
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /msdyn_aievaluationruns(*msdyn_aievaluationrunid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `GrantAccess`
Event: True | || +| `IsValidStateTransition`
Event: False | || +| `ModifyAccess`
Event: True | || +| `Retrieve`
Event: True |`GET` /msdyn_aievaluationruns(*msdyn_aievaluationrunid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /msdyn_aievaluationruns
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `RetrievePrincipalAccess`
Event: True | || +| `RetrieveSharedPrincipalsAndAccess`
Event: True | || +| `RevokeAccess`
Event: True | || +| `SetState`
Event: True |`PATCH` /msdyn_aievaluationruns(*msdyn_aievaluationrunid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /msdyn_aievaluationruns(*msdyn_aievaluationrunid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /msdyn_aievaluationruns(*msdyn_aievaluationrunid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + + +## Events + +The following table lists the events for the AI Evaluation Run (msdyn_AIEvaluationRun) table. +Events are messages that exist so that you can subscribe to them. Unless you added the event, you shouldn't invoke the message, only subscribe to it. + +|Name|Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `BulkRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `PurgeRetainedContent`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `Retain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `RollbackRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `ValidateRetentionConfig`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| + +## Properties + +The following table lists selected properties for the AI Evaluation Run (msdyn_AIEvaluationRun) table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **AI Evaluation Run** | +| **DisplayCollectionName** | **AI Evaluation Run** | +| **SchemaName** | `msdyn_AIEvaluationRun` | +| **CollectionSchemaName** | `msdyn_AIEvaluationRuns` | +| **EntitySetName** | `msdyn_aievaluationruns`| +| **LogicalName** | `msdyn_aievaluationrun` | +| **LogicalCollectionName** | `msdyn_aievaluationruns` | +| **PrimaryIdAttribute** | `msdyn_aievaluationrunid` | +| **PrimaryNameAttribute** |`msdyn_name` | +| **TableType** | `Standard` | +| **OwnershipType** | `UserOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [msdyn_AdditionalResponseMetadata](#BKMK_msdyn_AdditionalResponseMetadata) +- [msdyn_AIEvaluationConfigurationId](#BKMK_msdyn_AIEvaluationConfigurationId) +- [msdyn_AIEvaluationRunId](#BKMK_msdyn_AIEvaluationRunId) +- [msdyn_AIRunObjectId](#BKMK_msdyn_AIRunObjectId) +- [msdyn_AIRunObjectType](#BKMK_msdyn_AIRunObjectType) +- [msdyn_Comment](#BKMK_msdyn_Comment) +- [msdyn_CompletedOn](#BKMK_msdyn_CompletedOn) +- [msdyn_ErrorMessage](#BKMK_msdyn_ErrorMessage) +- [msdyn_EvaluationResult](#BKMK_msdyn_EvaluationResult) +- [msdyn_Name](#BKMK_msdyn_Name) +- [msdyn_RunDuration](#BKMK_msdyn_RunDuration) +- [msdyn_RunStatus](#BKMK_msdyn_RunStatus) +- [msdyn_StartedOn](#BKMK_msdyn_StartedOn) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [statecode](#BKMK_statecode) +- [statuscode](#BKMK_statuscode) +- [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### msdyn_AdditionalResponseMetadata + +|Property|Value| +|---|---| +|Description|**Addition Response Metadata.**| +|DisplayName|**Addition Response Metadata**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_additionalresponsemetadata`| +|RequiredLevel|None| +|Type|Memo| +|Format|TextArea| +|FormatName|TextArea| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1048576| + +### msdyn_AIEvaluationConfigurationId + +|Property|Value| +|---|---| +|Description|**Unique identifier for AIEvaluationConfiguration associated with AIEvaluationRun.**| +|DisplayName|**AIEvaluationConfiguration**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_aievaluationconfigurationid`| +|RequiredLevel|SystemRequired| +|Type|Lookup| +|Targets|msdyn_aievaluationconfiguration| + +### msdyn_AIEvaluationRunId + +|Property|Value| +|---|---| +|Description|**Unique identifier for entity instances**| +|DisplayName|**AIEvaluationRun**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`msdyn_aievaluationrunid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### msdyn_AIRunObjectId + +|Property|Value| +|---|---| +|Description|**Unique identifier for AIRunObject associated with AIEvaluationRun.**| +|DisplayName|**AIRunObject**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_airunobjectid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### msdyn_AIRunObjectType + +|Property|Value| +|---|---| +|Description|**The Run Object type.**| +|DisplayName|**AIRunObjectType**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_airunobjecttype`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|200| + +### msdyn_Comment + +|Property|Value| +|---|---| +|Description|**Comment**| +|DisplayName|**Comment**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_comment`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|400| + +### msdyn_CompletedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the evaluation run was completed.**| +|DisplayName|**Completed On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_completedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### msdyn_ErrorMessage + +|Property|Value| +|---|---| +|Description|**The error message of the evaluation run.**| +|DisplayName|**ErrorMessage**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_errormessage`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|2000| + +### msdyn_EvaluationResult + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Evaluation result**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_evaluationresult`| +|RequiredLevel|None| +|Type|Memo| +|Format|TextArea| +|FormatName|TextArea| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1048576| + +### msdyn_Name + +|Property|Value| +|---|---| +|Description|**The name of the AI test run.**| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_name`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|200| + +### msdyn_RunDuration + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Run Duration**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_runduration`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|0| + +### msdyn_RunStatus + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**EvaluationRun Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_runstatus`| +|RequiredLevel|None| +|Type|Picklist| +|DefaultFormValue|-1| +|GlobalChoiceName|`msdyn_aievaluationrun_msdyn_runstatus`| + +#### msdyn_RunStatus Choices/Options + +|Value|Label| +|---|---| +|0|**Created**| +|1|**InProgress**| +|2|**Paused**| +|3|**Blocked**| +|4|**Succeeded**| +|5|**Failed**| +|6|**Canceled**| + +### msdyn_StartedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the evaluation run was started.**| +|DisplayName|**Started On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_startedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### statecode + +|Property|Value| +|---|---| +|Description|**Status of the AI Evaluation Run**| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statecode`| +|RequiredLevel|SystemRequired| +|Type|State| +|DefaultFormValue|| +|GlobalChoiceName|`msdyn_aievaluationrun_statecode`| + +#### statecode Choices/Options + +|Value|Details| +|---|---| +|0|Label: **Active**
DefaultStatus: 1
InvariantName: `Active`| +|1|Label: **Inactive**
DefaultStatus: 2
InvariantName: `Inactive`| + +### statuscode + +|Property|Value| +|---|---| +|Description|**Reason for the status of the AI Evaluation Run**| +|DisplayName|**Status Reason**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Status| +|DefaultFormValue|| +|GlobalChoiceName|`msdyn_aievaluationrun_statuscode`| + +#### statuscode Choices/Options + +|Value|Details| +|---|---| +|1|Label: **Active**
State:0
TransitionData: None| +|2|Label: **Inactive**
State:1
TransitionData: None| + +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### UTCConversionTimeZoneCode + +|Property|Value| +|---|---| +|Description|**Time zone code that was in use when the record was created.**| +|DisplayName|**UTC Conversion Time Zone Code**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`utcconversiontimezonecode`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OwnerIdName](#BKMK_OwnerIdName) +- [OwnerIdYomiName](#BKMK_OwnerIdYomiName) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) +- [OwningTeam](#BKMK_OwningTeam) +- [OwningUser](#BKMK_OwningUser) +- [VersionNumber](#BKMK_VersionNumber) + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### OwnerIdName + +|Property|Value| +|---|---| +|Description|**Name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwnerIdYomiName + +|Property|Value| +|---|---| +|Description|**Yomi name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridyominame`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|businessunit| + +### OwningTeam + +|Property|Value| +|---|---| +|Description|**Unique identifier for the team that owns the record.**| +|DisplayName|**Owning Team**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningteam`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|team| + +### OwningUser + +|Property|Value| +|---|---| +|Description|**Unique identifier for the user that owns the record.**| +|DisplayName|**Owning User**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owninguser`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [business_unit_msdyn_aievaluationrun](#BKMK_business_unit_msdyn_aievaluationrun) +- [lk_msdyn_aievaluationrun_createdby](#BKMK_lk_msdyn_aievaluationrun_createdby) +- [lk_msdyn_aievaluationrun_createdonbehalfby](#BKMK_lk_msdyn_aievaluationrun_createdonbehalfby) +- [lk_msdyn_aievaluationrun_modifiedby](#BKMK_lk_msdyn_aievaluationrun_modifiedby) +- [lk_msdyn_aievaluationrun_modifiedonbehalfby](#BKMK_lk_msdyn_aievaluationrun_modifiedonbehalfby) +- [msdyn_aievaluationconfiguration_msdyn_aievaluationrun](#BKMK_msdyn_aievaluationconfiguration_msdyn_aievaluationrun) +- [owner_msdyn_aievaluationrun](#BKMK_owner_msdyn_aievaluationrun) +- [team_msdyn_aievaluationrun](#BKMK_team_msdyn_aievaluationrun) +- [user_msdyn_aievaluationrun](#BKMK_user_msdyn_aievaluationrun) + +### business_unit_msdyn_aievaluationrun + +One-To-Many Relationship: [businessunit business_unit_msdyn_aievaluationrun](businessunit.md#BKMK_business_unit_msdyn_aievaluationrun) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessunit`| +|ReferencedAttribute|`businessunitid`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencingEntityNavigationPropertyName|`owningbusinessunit`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aievaluationrun_createdby + +One-To-Many Relationship: [systemuser lk_msdyn_aievaluationrun_createdby](systemuser.md#BKMK_lk_msdyn_aievaluationrun_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aievaluationrun_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_msdyn_aievaluationrun_createdonbehalfby](systemuser.md#BKMK_lk_msdyn_aievaluationrun_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aievaluationrun_modifiedby + +One-To-Many Relationship: [systemuser lk_msdyn_aievaluationrun_modifiedby](systemuser.md#BKMK_lk_msdyn_aievaluationrun_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aievaluationrun_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_msdyn_aievaluationrun_modifiedonbehalfby](systemuser.md#BKMK_lk_msdyn_aievaluationrun_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aievaluationconfiguration_msdyn_aievaluationrun + +One-To-Many Relationship: [msdyn_aievaluationconfiguration msdyn_aievaluationconfiguration_msdyn_aievaluationrun](msdyn_aievaluationconfiguration.md#BKMK_msdyn_aievaluationconfiguration_msdyn_aievaluationrun) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aievaluationconfiguration`| +|ReferencedAttribute|`msdyn_aievaluationconfigurationid`| +|ReferencingAttribute|`msdyn_aievaluationconfigurationid`| +|ReferencingEntityNavigationPropertyName|`msdyn_AIEvaluationConfigurationId`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### owner_msdyn_aievaluationrun + +One-To-Many Relationship: [owner owner_msdyn_aievaluationrun](owner.md#BKMK_owner_msdyn_aievaluationrun) + +|Property|Value| +|---|---| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### team_msdyn_aievaluationrun + +One-To-Many Relationship: [team team_msdyn_aievaluationrun](team.md#BKMK_team_msdyn_aievaluationrun) + +|Property|Value| +|---|---| +|ReferencedEntity|`team`| +|ReferencedAttribute|`teamid`| +|ReferencingAttribute|`owningteam`| +|ReferencingEntityNavigationPropertyName|`owningteam`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### user_msdyn_aievaluationrun + +One-To-Many Relationship: [systemuser user_msdyn_aievaluationrun](systemuser.md#BKMK_user_msdyn_aievaluationrun) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`owninguser`| +|ReferencingEntityNavigationPropertyName|`owninguser`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +- [msdyn_aievaluationrun_AsyncOperations](#BKMK_msdyn_aievaluationrun_AsyncOperations) +- [msdyn_aievaluationrun_BulkDeleteFailures](#BKMK_msdyn_aievaluationrun_BulkDeleteFailures) +- [msdyn_aievaluationrun_MailboxTrackingFolders](#BKMK_msdyn_aievaluationrun_MailboxTrackingFolders) +- [msdyn_aievaluationrun_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aievaluationrun_PrincipalObjectAttributeAccesses) +- [msdyn_aievaluationrun_ProcessSession](#BKMK_msdyn_aievaluationrun_ProcessSession) +- [msdyn_aievaluationrun_SyncErrors](#BKMK_msdyn_aievaluationrun_SyncErrors) + +### msdyn_aievaluationrun_AsyncOperations + +Many-To-One Relationship: [asyncoperation msdyn_aievaluationrun_AsyncOperations](asyncoperation.md#BKMK_msdyn_aievaluationrun_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencingEntity|`asyncoperation`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aievaluationrun_AsyncOperations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aievaluationrun_BulkDeleteFailures + +Many-To-One Relationship: [bulkdeletefailure msdyn_aievaluationrun_BulkDeleteFailures](bulkdeletefailure.md#BKMK_msdyn_aievaluationrun_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencingEntity|`bulkdeletefailure`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aievaluationrun_BulkDeleteFailures`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aievaluationrun_MailboxTrackingFolders + +Many-To-One Relationship: [mailboxtrackingfolder msdyn_aievaluationrun_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_msdyn_aievaluationrun_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencingEntity|`mailboxtrackingfolder`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aievaluationrun_MailboxTrackingFolders`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aievaluationrun_PrincipalObjectAttributeAccesses + +Many-To-One Relationship: [principalobjectattributeaccess msdyn_aievaluationrun_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_msdyn_aievaluationrun_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencingEntity|`principalobjectattributeaccess`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aievaluationrun_PrincipalObjectAttributeAccesses`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aievaluationrun_ProcessSession + +Many-To-One Relationship: [processsession msdyn_aievaluationrun_ProcessSession](processsession.md#BKMK_msdyn_aievaluationrun_ProcessSession) + +|Property|Value| +|---|---| +|ReferencingEntity|`processsession`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aievaluationrun_ProcessSession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aievaluationrun_SyncErrors + +Many-To-One Relationship: [syncerror msdyn_aievaluationrun_SyncErrors](syncerror.md#BKMK_msdyn_aievaluationrun_SyncErrors) + +|Property|Value| +|---|---| +|ReferencingEntity|`syncerror`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aievaluationrun_SyncErrors`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_aievent.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aievent.md index bd849304ac..d098945add 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_aievent.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aievent.md @@ -71,6 +71,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [msdyn_CreditConsumed](#BKMK_msdyn_CreditConsumed) - [msdyn_DataInfo](#BKMK_msdyn_DataInfo) - [msdyn_DataType](#BKMK_msdyn_DataType) +- [msdyn_EventData](#BKMK_msdyn_EventData) - [msdyn_Name](#BKMK_msdyn_Name) - [msdyn_Output](#BKMK_msdyn_Output) - [msdyn_PartnerSource](#BKMK_msdyn_PartnerSource) @@ -196,6 +197,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |0|**PowerAutomation**| |1|**PowerApps**| |2|**API**| +|3|**MCS**| ### msdyn_CreditConsumed @@ -245,6 +247,23 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsLocalizable|False| |MaxLength|100| +### msdyn_EventData + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Event Data**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_eventdata`| +|RequiredLevel|None| +|Type|Memo| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1048576| + ### msdyn_Name |Property|Value| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_aimodel.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aimodel.md index d54c8453c6..184317e833 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_aimodel.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aimodel.md @@ -73,6 +73,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [IntroducedVersion](#BKMK_IntroducedVersion) - [IsCustomizable](#BKMK_IsCustomizable) - [msdyn_ActiveRunConfigurationId](#BKMK_msdyn_ActiveRunConfigurationId) +- [msdyn_AIModelCatalog](#BKMK_msdyn_AIModelCatalog) - [msdyn_AIModelId](#BKMK_msdyn_AIModelId) - [msdyn_ModelCreationContext](#BKMK_msdyn_ModelCreationContext) - [msdyn_Name](#BKMK_msdyn_Name) @@ -144,6 +145,19 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Type|Lookup| |Targets|| +### msdyn_AIModelCatalog + +|Property|Value| +|---|---| +|Description|**Lookup to AI Model Catalog**| +|DisplayName|**AI Model Catalog**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_aimodelcatalog`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|msdyn_aimodelcatalog| + ### msdyn_AIModelId |Property|Value| @@ -904,7 +918,7 @@ Many-To-One Relationship: [msdyn_aiconfiguration msdyn_aimodel_msdyn_aiconfigura |ReferencingEntity|`msdyn_aiconfiguration`| |ReferencingAttribute|`msdyn_aimodelid`| |ReferencedEntityNavigationPropertyName|`msdyn_aimodel_msdyn_aiconfiguration`| -|IsCustomizable|`False`| +|IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| ### msdyn_aimodel_msdyn_aievent diff --git a/powerapps-docs/developer/data-platform/reference/entities/aiinsightcard.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aitestcase.md similarity index 67% rename from powerapps-docs/developer/data-platform/reference/entities/aiinsightcard.md rename to powerapps-docs/developer/data-platform/reference/entities/msdyn_aitestcase.md index ad212bcc12..195dfe2b16 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/aiinsightcard.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aitestcase.md @@ -1,6 +1,6 @@ --- -title: "AI Insight Card (aiinsightcard) table/entity reference (Microsoft Dataverse)" -description: "Includes schema information and supported messages for the AI Insight Card (aiinsightcard) table/entity with Microsoft Dataverse." +title: "AI Test Case (msdyn_AITestCase) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the AI Test Case (msdyn_AITestCase) table/entity with Microsoft Dataverse." ms.topic: generated-reference author: phecke ms.author: pehecke @@ -8,41 +8,41 @@ search.audienceType: - developer --- -# AI Insight Card (aiinsightcard) table/entity reference (Microsoft Dataverse) +# AI Test Case (msdyn_AITestCase) table/entity reference (Microsoft Dataverse) ## Messages -The following table lists the messages for the AI Insight Card (aiinsightcard) table. +The following table lists the messages for the AI Test Case (msdyn_AITestCase) table. Messages represent operations that can be performed on the table. They may also be events. | Name
Is Event? |Web API Operation |SDK for .NET | | ---- | ----- |----- | -| `Assign`
Event: True |`PATCH` /aiinsightcards(*aiinsightcardid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Assign`
Event: True |`PATCH` /msdyn_aitestcases(*msdyn_aitestcaseid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || | `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| -| `Create`
Event: True |`POST` /aiinsightcards
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `Create`
Event: True |`POST` /msdyn_aitestcases
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| | `CreateMultiple`
Event: True | || -| `Delete`
Event: True |`DELETE` /aiinsightcards(*aiinsightcardid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Delete`
Event: True |`DELETE` /msdyn_aitestcases(*msdyn_aitestcaseid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| | `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| | `GrantAccess`
Event: True | || | `IsValidStateTransition`
Event: False | || | `ModifyAccess`
Event: True | || -| `Retrieve`
Event: True |`GET` /aiinsightcards(*aiinsightcardid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| -| `RetrieveMultiple`
Event: True |`GET` /aiinsightcards
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `Retrieve`
Event: True |`GET` /msdyn_aitestcases(*msdyn_aitestcaseid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /msdyn_aitestcases
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| | `RetrievePrincipalAccess`
Event: True | || | `RetrieveSharedPrincipalsAndAccess`
Event: True | || | `RevokeAccess`
Event: True | || -| `SetState`
Event: True |`PATCH` /aiinsightcards(*aiinsightcardid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || -| `Update`
Event: True |`PATCH` /aiinsightcards(*aiinsightcardid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `SetState`
Event: True |`PATCH` /msdyn_aitestcases(*msdyn_aitestcaseid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /msdyn_aitestcases(*msdyn_aitestcaseid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| | `UpdateMultiple`
Event: True | || -| `Upsert`
Event: False |`PATCH` /aiinsightcards(*aiinsightcardid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `Upsert`
Event: False |`PATCH` /msdyn_aitestcases(*msdyn_aitestcaseid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || | `UpsertMultiple`
Event: False | || ## Events -The following table lists the events for the AI Insight Card (aiinsightcard) table. +The following table lists the events for the AI Test Case (msdyn_AITestCase) table. Events are messages that exist so that you can subscribe to them. Unless you added the event, you shouldn't invoke the message, only subscribe to it. |Name|Web API Operation |SDK for .NET | @@ -55,19 +55,19 @@ Events are messages that exist so that you can subscribe to them. Unless you add ## Properties -The following table lists selected properties for the AI Insight Card (aiinsightcard) table. +The following table lists selected properties for the AI Test Case (msdyn_AITestCase) table. |Property|Value| | --- | --- | -| **DisplayName** | **AI Insight Card** | -| **DisplayCollectionName** | **AIInsightCards** | -| **SchemaName** | `aiinsightcard` | -| **CollectionSchemaName** | `aiinsightcards` | -| **EntitySetName** | `aiinsightcards`| -| **LogicalName** | `aiinsightcard` | -| **LogicalCollectionName** | `aiinsightcards` | -| **PrimaryIdAttribute** | `aiinsightcardid` | -| **PrimaryNameAttribute** |`name` | +| **DisplayName** | **AI Test Case** | +| **DisplayCollectionName** | **AI Test Case** | +| **SchemaName** | `msdyn_AITestCase` | +| **CollectionSchemaName** | `msdyn_AITestCases` | +| **EntitySetName** | `msdyn_aitestcases`| +| **LogicalName** | `msdyn_aitestcase` | +| **LogicalCollectionName** | `msdyn_aitestcases` | +| **PrimaryIdAttribute** | `msdyn_aitestcaseid` | +| **PrimaryNameAttribute** |`msdyn_name` | | **TableType** | `Standard` | | **OwnershipType** | `UserOwned` | @@ -75,132 +75,134 @@ The following table lists selected properties for the AI Insight Card (aiinsight These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. -- [aiinsightcardId](#BKMK_aiinsightcardId) -- [aiskillid](#BKMK_aiskillid) -- [controlconfig](#BKMK_controlconfig) -- [description](#BKMK_description) -- [entityid](#BKMK_entityid) - [ImportSequenceNumber](#BKMK_ImportSequenceNumber) - [IsCustomizable](#BKMK_IsCustomizable) -- [name](#BKMK_name) +- [msdyn_AIObjectId](#BKMK_msdyn_AIObjectId) +- [msdyn_AIObjectType](#BKMK_msdyn_AIObjectType) +- [msdyn_AITestCaseId](#BKMK_msdyn_AITestCaseId) +- [msdyn_Description](#BKMK_msdyn_Description) +- [msdyn_ExpectedOutput](#BKMK_msdyn_ExpectedOutput) +- [msdyn_Name](#BKMK_msdyn_Name) +- [msdyn_TestCaseState](#BKMK_msdyn_TestCaseState) - [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) - [OwnerId](#BKMK_OwnerId) - [OwnerIdType](#BKMK_OwnerIdType) - [statecode](#BKMK_statecode) - [statuscode](#BKMK_statuscode) -- [surface](#BKMK_surface) - [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) -- [UniqueName](#BKMK_UniqueName) - [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) -### aiinsightcardId +### ImportSequenceNumber |Property|Value| |---|---| -|Description|**Unique identifier for entity instances**| -|DisplayName|**AI Insight Card**| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| |IsValidForForm|False| |IsValidForRead|True| -|LogicalName|`aiinsightcardid`| -|RequiredLevel|SystemRequired| -|Type|Uniqueidentifier| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| -### aiskillid +### IsCustomizable |Property|Value| |---|---| -|Description|**The related AI Skill Config record**| -|DisplayName|**AI Skill Config**| -|IsValidForForm|True| +|Description|**For internal use only.**| +|DisplayName|**Is Customizable**| +|IsValidForForm|False| |IsValidForRead|True| -|LogicalName|`aiskillid`| +|LogicalName|`iscustomizable`| |RequiredLevel|SystemRequired| -|Type|Lookup| -|Targets|aiskillconfig| +|Type|ManagedProperty| -### controlconfig +### msdyn_AIObjectId |Property|Value| |---|---| -|Description|**The config JSON for the insight card**| -|DisplayName|**Control Config JSON**| +|Description|**Unique identifier for AIObject associated with AITestCase.**| +|DisplayName|**AIObject**| |IsValidForForm|True| |IsValidForRead|True| -|LogicalName|`controlconfig`| +|LogicalName|`msdyn_aiobjectid`| |RequiredLevel|SystemRequired| -|Type|Memo| -|Format|Text| -|FormatName|Text| -|ImeMode|Auto| -|IsLocalizable|False| -|MaxLength|1048576| +|Type|Uniqueidentifier| -### description +### msdyn_AIObjectType |Property|Value| |---|---| -|Description|**The description of the insight card**| -|DisplayName|**Description**| +|Description|**The Object type.**| +|DisplayName|**AIObjectType**| |IsValidForForm|True| |IsValidForRead|True| -|LogicalName|`description`| -|RequiredLevel|None| -|Type|Memo| +|LogicalName|`msdyn_aiobjecttype`| +|RequiredLevel|SystemRequired| +|Type|String| |Format|Text| |FormatName|Text| |ImeMode|Auto| |IsLocalizable|False| -|MaxLength|10000| +|MaxLength|200| -### entityid +### msdyn_AITestCaseId |Property|Value| |---|---| -|Description|| -|DisplayName|**Entity**| -|IsValidForForm|True| +|Description|**Unique identifier for entity instances**| +|DisplayName|**AITestCase**| +|IsValidForForm|False| |IsValidForRead|True| -|LogicalName|`entityid`| +|LogicalName|`msdyn_aitestcaseid`| |RequiredLevel|SystemRequired| -|Type|Lookup| -|Targets|entity| +|Type|Uniqueidentifier| -### ImportSequenceNumber +### msdyn_Description |Property|Value| |---|---| -|Description|**Sequence number of the import that created this record.**| -|DisplayName|**Import Sequence Number**| -|IsValidForForm|False| +|Description|**The description of the test case.**| +|DisplayName|**Description**| +|IsValidForForm|True| |IsValidForRead|True| -|LogicalName|`importsequencenumber`| +|LogicalName|`msdyn_description`| |RequiredLevel|None| -|Type|Integer| -|MaxValue|2147483647| -|MinValue|-2147483648| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|400| -### IsCustomizable +### msdyn_ExpectedOutput |Property|Value| |---|---| -|Description|**For internal use only.**| -|DisplayName|**Is Customizable**| -|IsValidForForm|False| +|Description|| +|DisplayName|**Expected output**| +|IsValidForForm|True| |IsValidForRead|True| -|LogicalName|`iscustomizable`| -|RequiredLevel|SystemRequired| -|Type|ManagedProperty| +|LogicalName|`msdyn_expectedoutput`| +|RequiredLevel|None| +|Type|Memo| +|Format|TextArea| +|FormatName|TextArea| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1048576| -### name +### msdyn_Name |Property|Value| |---|---| -|Description|**The name of the custom entity.**| +|Description|**The name of the AI test case.**| |DisplayName|**Name**| |IsValidForForm|True| |IsValidForRead|True| -|LogicalName|`name`| -|RequiredLevel|ApplicationRequired| +|LogicalName|`msdyn_name`| +|RequiredLevel|SystemRequired| |Type|String| |Format|Text| |FormatName|Text| @@ -208,6 +210,28 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsLocalizable|False| |MaxLength|200| +### msdyn_TestCaseState + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**TestCase State**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_testcasestate`| +|RequiredLevel|ApplicationRequired| +|Type|Picklist| +|DefaultFormValue|-1| +|GlobalChoiceName|`msdyn_aitestcase_msdyn_testcasestate`| + +#### msdyn_TestCaseState Choices/Options + +|Value|Label| +|---|---| +|0|**Active**| +|1|**Inactive**| +|2|**ActionRequired**| + ### OverriddenCreatedOn |Property|Value| @@ -254,7 +278,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**Status of the AI Insight Card**| +|Description|**Status of the AI Test Case**| |DisplayName|**Status**| |IsValidForForm|True| |IsValidForRead|True| @@ -262,7 +286,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |RequiredLevel|SystemRequired| |Type|State| |DefaultFormValue|| -|GlobalChoiceName|`aiinsightcard_statecode`| +|GlobalChoiceName|`msdyn_aitestcase_statecode`| #### statecode Choices/Options @@ -275,7 +299,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**Reason for the status of the AI Insight Card**| +|Description|**Reason for the status of the AI Test Case**| |DisplayName|**Status Reason**| |IsValidForForm|True| |IsValidForRead|True| @@ -283,7 +307,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |RequiredLevel|None| |Type|Status| |DefaultFormValue|| -|GlobalChoiceName|`aiinsightcard_statuscode`| +|GlobalChoiceName|`msdyn_aitestcase_statuscode`| #### statuscode Choices/Options @@ -292,27 +316,6 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |1|Label: **Active**
State:0
TransitionData: None| |2|Label: **Inactive**
State:1
TransitionData: None| -### surface - -|Property|Value| -|---|---| -|Description|| -|DisplayName|**Surface**| -|IsValidForForm|True| -|IsValidForRead|True| -|LogicalName|`surface`| -|RequiredLevel|SystemRequired| -|Type|MultiSelectPicklist| -|DefaultFormValue|-1| -|GlobalChoiceName|`aiinsightcard_surface`| - -#### surface Choices/Options - -|Value|Label| -|---|---| -|0|**Table**| -|1|**Record**| - ### TimeZoneRuleVersionNumber |Property|Value| @@ -327,23 +330,6 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |MaxValue|2147483647| |MinValue|-1| -### UniqueName - -|Property|Value| -|---|---| -|Description|**Unique Name for the entity.**| -|DisplayName|**Unique Name**| -|IsValidForForm|True| -|IsValidForRead|True| -|LogicalName|`uniquename`| -|RequiredLevel|SystemRequired| -|Type|String| -|Format|Text| -|FormatName|Text| -|ImeMode|Auto| -|IsLocalizable|False| -|MaxLength|128| - ### UTCConversionTimeZoneCode |Property|Value| @@ -579,7 +565,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| @@ -651,19 +637,18 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali These relationships are many-to-one. Listed by **SchemaName**. -- [business_unit_aiinsightcard](#BKMK_business_unit_aiinsightcard) -- [entity_aiinsightcard_entityid](#BKMK_entity_aiinsightcard_entityid) -- [lk_aiinsightcard_createdby](#BKMK_lk_aiinsightcard_createdby) -- [lk_aiinsightcard_createdonbehalfby](#BKMK_lk_aiinsightcard_createdonbehalfby) -- [lk_aiinsightcard_modifiedby](#BKMK_lk_aiinsightcard_modifiedby) -- [lk_aiinsightcard_modifiedonbehalfby](#BKMK_lk_aiinsightcard_modifiedonbehalfby) -- [owner_aiinsightcard](#BKMK_owner_aiinsightcard) -- [team_aiinsightcard](#BKMK_team_aiinsightcard) -- [user_aiinsightcard](#BKMK_user_aiinsightcard) +- [business_unit_msdyn_aitestcase](#BKMK_business_unit_msdyn_aitestcase) +- [lk_msdyn_aitestcase_createdby](#BKMK_lk_msdyn_aitestcase_createdby) +- [lk_msdyn_aitestcase_createdonbehalfby](#BKMK_lk_msdyn_aitestcase_createdonbehalfby) +- [lk_msdyn_aitestcase_modifiedby](#BKMK_lk_msdyn_aitestcase_modifiedby) +- [lk_msdyn_aitestcase_modifiedonbehalfby](#BKMK_lk_msdyn_aitestcase_modifiedonbehalfby) +- [owner_msdyn_aitestcase](#BKMK_owner_msdyn_aitestcase) +- [team_msdyn_aitestcase](#BKMK_team_msdyn_aitestcase) +- [user_msdyn_aitestcase](#BKMK_user_msdyn_aitestcase) -### business_unit_aiinsightcard +### business_unit_msdyn_aitestcase -One-To-Many Relationship: [businessunit business_unit_aiinsightcard](businessunit.md#BKMK_business_unit_aiinsightcard) +One-To-Many Relationship: [businessunit business_unit_msdyn_aitestcase](businessunit.md#BKMK_business_unit_msdyn_aitestcase) |Property|Value| |---|---| @@ -674,22 +659,9 @@ One-To-Many Relationship: [businessunit business_unit_aiinsightcard](businessuni |IsHierarchical|| |CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### entity_aiinsightcard_entityid +### lk_msdyn_aitestcase_createdby -One-To-Many Relationship: [entity entity_aiinsightcard_entityid](entity.md#BKMK_entity_aiinsightcard_entityid) - -|Property|Value| -|---|---| -|ReferencedEntity|`entity`| -|ReferencedAttribute|`entityid`| -|ReferencingAttribute|`entityid`| -|ReferencingEntityNavigationPropertyName|`entityid`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - -### lk_aiinsightcard_createdby - -One-To-Many Relationship: [systemuser lk_aiinsightcard_createdby](systemuser.md#BKMK_lk_aiinsightcard_createdby) +One-To-Many Relationship: [systemuser lk_msdyn_aitestcase_createdby](systemuser.md#BKMK_lk_msdyn_aitestcase_createdby) |Property|Value| |---|---| @@ -700,9 +672,9 @@ One-To-Many Relationship: [systemuser lk_aiinsightcard_createdby](systemuser.md# |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### lk_aiinsightcard_createdonbehalfby +### lk_msdyn_aitestcase_createdonbehalfby -One-To-Many Relationship: [systemuser lk_aiinsightcard_createdonbehalfby](systemuser.md#BKMK_lk_aiinsightcard_createdonbehalfby) +One-To-Many Relationship: [systemuser lk_msdyn_aitestcase_createdonbehalfby](systemuser.md#BKMK_lk_msdyn_aitestcase_createdonbehalfby) |Property|Value| |---|---| @@ -713,9 +685,9 @@ One-To-Many Relationship: [systemuser lk_aiinsightcard_createdonbehalfby](system |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### lk_aiinsightcard_modifiedby +### lk_msdyn_aitestcase_modifiedby -One-To-Many Relationship: [systemuser lk_aiinsightcard_modifiedby](systemuser.md#BKMK_lk_aiinsightcard_modifiedby) +One-To-Many Relationship: [systemuser lk_msdyn_aitestcase_modifiedby](systemuser.md#BKMK_lk_msdyn_aitestcase_modifiedby) |Property|Value| |---|---| @@ -726,9 +698,9 @@ One-To-Many Relationship: [systemuser lk_aiinsightcard_modifiedby](systemuser.md |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### lk_aiinsightcard_modifiedonbehalfby +### lk_msdyn_aitestcase_modifiedonbehalfby -One-To-Many Relationship: [systemuser lk_aiinsightcard_modifiedonbehalfby](systemuser.md#BKMK_lk_aiinsightcard_modifiedonbehalfby) +One-To-Many Relationship: [systemuser lk_msdyn_aitestcase_modifiedonbehalfby](systemuser.md#BKMK_lk_msdyn_aitestcase_modifiedonbehalfby) |Property|Value| |---|---| @@ -739,9 +711,9 @@ One-To-Many Relationship: [systemuser lk_aiinsightcard_modifiedonbehalfby](syste |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### owner_aiinsightcard +### owner_msdyn_aitestcase -One-To-Many Relationship: [owner owner_aiinsightcard](owner.md#BKMK_owner_aiinsightcard) +One-To-Many Relationship: [owner owner_msdyn_aitestcase](owner.md#BKMK_owner_msdyn_aitestcase) |Property|Value| |---|---| @@ -752,9 +724,9 @@ One-To-Many Relationship: [owner owner_aiinsightcard](owner.md#BKMK_owner_aiinsi |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### team_aiinsightcard +### team_msdyn_aitestcase -One-To-Many Relationship: [team team_aiinsightcard](team.md#BKMK_team_aiinsightcard) +One-To-Many Relationship: [team team_msdyn_aitestcase](team.md#BKMK_team_msdyn_aitestcase) |Property|Value| |---|---| @@ -765,9 +737,9 @@ One-To-Many Relationship: [team team_aiinsightcard](team.md#BKMK_team_aiinsightc |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### user_aiinsightcard +### user_msdyn_aitestcase -One-To-Many Relationship: [systemuser user_aiinsightcard](systemuser.md#BKMK_user_aiinsightcard) +One-To-Many Relationship: [systemuser user_msdyn_aitestcase](systemuser.md#BKMK_user_msdyn_aitestcase) |Property|Value| |---|---| @@ -783,82 +755,108 @@ One-To-Many Relationship: [systemuser user_aiinsightcard](systemuser.md#BKMK_use These relationships are one-to-many. Listed by **SchemaName**. -- [aiinsightcard_AsyncOperations](#BKMK_aiinsightcard_AsyncOperations) -- [aiinsightcard_BulkDeleteFailures](#BKMK_aiinsightcard_BulkDeleteFailures) -- [aiinsightcard_MailboxTrackingFolders](#BKMK_aiinsightcard_MailboxTrackingFolders) -- [aiinsightcard_PrincipalObjectAttributeAccesses](#BKMK_aiinsightcard_PrincipalObjectAttributeAccesses) -- [aiinsightcard_ProcessSession](#BKMK_aiinsightcard_ProcessSession) -- [aiinsightcard_SyncErrors](#BKMK_aiinsightcard_SyncErrors) +- [msdyn_aitestcase_AsyncOperations](#BKMK_msdyn_aitestcase_AsyncOperations) +- [msdyn_aitestcase_BulkDeleteFailures](#BKMK_msdyn_aitestcase_BulkDeleteFailures) +- [msdyn_aitestcase_MailboxTrackingFolders](#BKMK_msdyn_aitestcase_MailboxTrackingFolders) +- [msdyn_aitestcase_msdyn_aitestcaseinput](#BKMK_msdyn_aitestcase_msdyn_aitestcaseinput) +- [msdyn_aitestcase_msdyn_aitestrun](#BKMK_msdyn_aitestcase_msdyn_aitestrun) +- [msdyn_aitestcase_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aitestcase_PrincipalObjectAttributeAccesses) +- [msdyn_aitestcase_ProcessSession](#BKMK_msdyn_aitestcase_ProcessSession) +- [msdyn_aitestcase_SyncErrors](#BKMK_msdyn_aitestcase_SyncErrors) -### aiinsightcard_AsyncOperations +### msdyn_aitestcase_AsyncOperations -Many-To-One Relationship: [asyncoperation aiinsightcard_AsyncOperations](asyncoperation.md#BKMK_aiinsightcard_AsyncOperations) +Many-To-One Relationship: [asyncoperation msdyn_aitestcase_AsyncOperations](asyncoperation.md#BKMK_msdyn_aitestcase_AsyncOperations) |Property|Value| |---|---| |ReferencingEntity|`asyncoperation`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`aiinsightcard_AsyncOperations`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcase_AsyncOperations`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### aiinsightcard_BulkDeleteFailures +### msdyn_aitestcase_BulkDeleteFailures -Many-To-One Relationship: [bulkdeletefailure aiinsightcard_BulkDeleteFailures](bulkdeletefailure.md#BKMK_aiinsightcard_BulkDeleteFailures) +Many-To-One Relationship: [bulkdeletefailure msdyn_aitestcase_BulkDeleteFailures](bulkdeletefailure.md#BKMK_msdyn_aitestcase_BulkDeleteFailures) |Property|Value| |---|---| |ReferencingEntity|`bulkdeletefailure`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`aiinsightcard_BulkDeleteFailures`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcase_BulkDeleteFailures`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### aiinsightcard_MailboxTrackingFolders +### msdyn_aitestcase_MailboxTrackingFolders -Many-To-One Relationship: [mailboxtrackingfolder aiinsightcard_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_aiinsightcard_MailboxTrackingFolders) +Many-To-One Relationship: [mailboxtrackingfolder msdyn_aitestcase_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_msdyn_aitestcase_MailboxTrackingFolders) |Property|Value| |---|---| |ReferencingEntity|`mailboxtrackingfolder`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`aiinsightcard_MailboxTrackingFolders`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcase_MailboxTrackingFolders`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### aiinsightcard_PrincipalObjectAttributeAccesses +### msdyn_aitestcase_msdyn_aitestcaseinput + +Many-To-One Relationship: [msdyn_aitestcaseinput msdyn_aitestcase_msdyn_aitestcaseinput](msdyn_aitestcaseinput.md#BKMK_msdyn_aitestcase_msdyn_aitestcaseinput) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestcaseinput`| +|ReferencingAttribute|`msdyn_aitestcaseid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcase_msdyn_aitestcaseinput`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestcase_msdyn_aitestrun + +Many-To-One Relationship: [msdyn_aitestrun msdyn_aitestcase_msdyn_aitestrun](msdyn_aitestrun.md#BKMK_msdyn_aitestcase_msdyn_aitestrun) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestrun`| +|ReferencingAttribute|`msdyn_aitestcaseid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcase_msdyn_aitestrun`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestcase_PrincipalObjectAttributeAccesses -Many-To-One Relationship: [principalobjectattributeaccess aiinsightcard_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_aiinsightcard_PrincipalObjectAttributeAccesses) +Many-To-One Relationship: [principalobjectattributeaccess msdyn_aitestcase_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_msdyn_aitestcase_PrincipalObjectAttributeAccesses) |Property|Value| |---|---| |ReferencingEntity|`principalobjectattributeaccess`| |ReferencingAttribute|`objectid`| -|ReferencedEntityNavigationPropertyName|`aiinsightcard_PrincipalObjectAttributeAccesses`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcase_PrincipalObjectAttributeAccesses`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### aiinsightcard_ProcessSession +### msdyn_aitestcase_ProcessSession -Many-To-One Relationship: [processsession aiinsightcard_ProcessSession](processsession.md#BKMK_aiinsightcard_ProcessSession) +Many-To-One Relationship: [processsession msdyn_aitestcase_ProcessSession](processsession.md#BKMK_msdyn_aitestcase_ProcessSession) |Property|Value| |---|---| |ReferencingEntity|`processsession`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`aiinsightcard_ProcessSession`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcase_ProcessSession`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### aiinsightcard_SyncErrors +### msdyn_aitestcase_SyncErrors -Many-To-One Relationship: [syncerror aiinsightcard_SyncErrors](syncerror.md#BKMK_aiinsightcard_SyncErrors) +Many-To-One Relationship: [syncerror msdyn_aitestcase_SyncErrors](syncerror.md#BKMK_msdyn_aitestcase_SyncErrors) |Property|Value| |---|---| |ReferencingEntity|`syncerror`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`aiinsightcard_SyncErrors`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcase_SyncErrors`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_aitestcasedocument.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aitestcasedocument.md new file mode 100644 index 0000000000..5b4022112d --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aitestcasedocument.md @@ -0,0 +1,876 @@ +--- +title: "AI Test Case Document (msdyn_AITestCaseDocument) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the AI Test Case Document (msdyn_AITestCaseDocument) table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# AI Test Case Document (msdyn_AITestCaseDocument) table/entity reference (Microsoft Dataverse) + + + +## Messages + +The following table lists the messages for the AI Test Case Document (msdyn_AITestCaseDocument) table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Assign`
Event: True |`PATCH` /msdyn_aitestcasedocuments(*msdyn_aitestcasedocumentid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /msdyn_aitestcasedocuments
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /msdyn_aitestcasedocuments(*msdyn_aitestcasedocumentid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `GrantAccess`
Event: True | || +| `IsValidStateTransition`
Event: False | || +| `ModifyAccess`
Event: True | || +| `Retrieve`
Event: True |`GET` /msdyn_aitestcasedocuments(*msdyn_aitestcasedocumentid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /msdyn_aitestcasedocuments
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `RetrievePrincipalAccess`
Event: True | || +| `RetrieveSharedPrincipalsAndAccess`
Event: True | || +| `RevokeAccess`
Event: True | || +| `SetState`
Event: True |`PATCH` /msdyn_aitestcasedocuments(*msdyn_aitestcasedocumentid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /msdyn_aitestcasedocuments(*msdyn_aitestcasedocumentid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /msdyn_aitestcasedocuments(*msdyn_aitestcasedocumentid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + + +## Events + +The following table lists the events for the AI Test Case Document (msdyn_AITestCaseDocument) table. +Events are messages that exist so that you can subscribe to them. Unless you added the event, you shouldn't invoke the message, only subscribe to it. + +|Name|Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `BulkRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `PurgeRetainedContent`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `Retain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `RollbackRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `ValidateRetentionConfig`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| + +## Properties + +The following table lists selected properties for the AI Test Case Document (msdyn_AITestCaseDocument) table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **AI Test Case Document** | +| **DisplayCollectionName** | **AI Test Case Document** | +| **SchemaName** | `msdyn_AITestCaseDocument` | +| **CollectionSchemaName** | `msdyn_AITestCaseDocuments` | +| **EntitySetName** | `msdyn_aitestcasedocuments`| +| **LogicalName** | `msdyn_aitestcasedocument` | +| **LogicalCollectionName** | `msdyn_aitestcasedocuments` | +| **PrimaryIdAttribute** | `msdyn_aitestcasedocumentid` | +| **PrimaryNameAttribute** |`msdyn_name` | +| **TableType** | `Standard` | +| **OwnershipType** | `UserOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [IsCustomizable](#BKMK_IsCustomizable) +- [msdyn_AITestCaseDocumentId](#BKMK_msdyn_AITestCaseDocumentId) +- [msdyn_AITestCaseInputId](#BKMK_msdyn_AITestCaseInputId) +- [msdyn_Description](#BKMK_msdyn_Description) +- [msdyn_InputId](#BKMK_msdyn_InputId) +- [msdyn_Name](#BKMK_msdyn_Name) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [statecode](#BKMK_statecode) +- [statuscode](#BKMK_statuscode) +- [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### IsCustomizable + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Is Customizable**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`iscustomizable`| +|RequiredLevel|SystemRequired| +|Type|ManagedProperty| + +### msdyn_AITestCaseDocumentId + +|Property|Value| +|---|---| +|Description|**Unique identifier for entity instances**| +|DisplayName|**AITestCaseDocument**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`msdyn_aitestcasedocumentid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### msdyn_AITestCaseInputId + +|Property|Value| +|---|---| +|Description|**Unique identifier for AITestCaseInput associated with AITestCaseDocument.**| +|DisplayName|**AITestCaseInput**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_aitestcaseinputid`| +|RequiredLevel|SystemRequired| +|Type|Lookup| +|Targets|msdyn_aitestcaseinput| + +### msdyn_Description + +|Property|Value| +|---|---| +|Description|**The description of the test case document.**| +|DisplayName|**Description**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_description`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|400| + +### msdyn_InputId + +|Property|Value| +|---|---| +|Description|**The Input id.**| +|DisplayName|**InputId**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_inputid`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|200| + +### msdyn_Name + +|Property|Value| +|---|---| +|Description|**The name of the AI test case document.**| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_name`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### statecode + +|Property|Value| +|---|---| +|Description|**Status of the AI Test Case Document**| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statecode`| +|RequiredLevel|SystemRequired| +|Type|State| +|DefaultFormValue|| +|GlobalChoiceName|`msdyn_aitestcasedocument_statecode`| + +#### statecode Choices/Options + +|Value|Details| +|---|---| +|0|Label: **Active**
DefaultStatus: 1
InvariantName: `Active`| +|1|Label: **Inactive**
DefaultStatus: 2
InvariantName: `Inactive`| + +### statuscode + +|Property|Value| +|---|---| +|Description|**Reason for the status of the AI Test Case Document**| +|DisplayName|**Status Reason**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Status| +|DefaultFormValue|| +|GlobalChoiceName|`msdyn_aitestcasedocument_statuscode`| + +#### statuscode Choices/Options + +|Value|Details| +|---|---| +|1|Label: **Active**
State:0
TransitionData: None| +|2|Label: **Inactive**
State:1
TransitionData: None| + +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### UTCConversionTimeZoneCode + +|Property|Value| +|---|---| +|Description|**Time zone code that was in use when the record was created.**| +|DisplayName|**UTC Conversion Time Zone Code**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`utcconversiontimezonecode`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [ComponentIdUnique](#BKMK_ComponentIdUnique) +- [ComponentState](#BKMK_ComponentState) +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [IsManaged](#BKMK_IsManaged) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [msdyn_InputFile](#BKMK_msdyn_InputFile) +- [msdyn_InputFile_Name](#BKMK_msdyn_InputFile_Name) +- [OverwriteTime](#BKMK_OverwriteTime) +- [OwnerIdName](#BKMK_OwnerIdName) +- [OwnerIdYomiName](#BKMK_OwnerIdYomiName) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) +- [OwningTeam](#BKMK_OwningTeam) +- [OwningUser](#BKMK_OwningUser) +- [SolutionId](#BKMK_SolutionId) +- [SupportingSolutionId](#BKMK_SupportingSolutionId) +- [VersionNumber](#BKMK_VersionNumber) + +### ComponentIdUnique + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Row id unique**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentidunique`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### ComponentState + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Component State**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentstate`| +|RequiredLevel|SystemRequired| +|Type|Picklist| +|DefaultFormValue|| +|GlobalChoiceName|`componentstate`| + +#### ComponentState Choices/Options + +|Value|Label| +|---|---| +|0|**Published**| +|1|**Unpublished**| +|2|**Deleted**| +|3|**Deleted Unpublished**| + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### IsManaged + +|Property|Value| +|---|---| +|Description|**Indicates whether the solution component is part of a managed solution.**| +|DisplayName|**Is Managed**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`ismanaged`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`ismanaged`| +|DefaultValue|False| +|True Label|Managed| +|False Label|Unmanaged| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### msdyn_InputFile + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Input File**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_inputfile`| +|RequiredLevel|None| +|Type|File| +|MaxSizeInKB|32768| + +### msdyn_InputFile_Name + +|Property|Value| +|---|---| +|Description|| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`msdyn_inputfile_name`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Disabled| +|IsLocalizable|False| +|MaxLength|200| + +### OverwriteTime + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Record Overwrite Time**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overwritetime`| +|RequiredLevel|SystemRequired| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerIdName + +|Property|Value| +|---|---| +|Description|**Name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwnerIdYomiName + +|Property|Value| +|---|---| +|Description|**Yomi name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridyominame`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|businessunit| + +### OwningTeam + +|Property|Value| +|---|---| +|Description|**Unique identifier for the team that owns the record.**| +|DisplayName|**Owning Team**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningteam`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|team| + +### OwningUser + +|Property|Value| +|---|---| +|Description|**Unique identifier for the user that owns the record.**| +|DisplayName|**Owning User**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owninguser`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### SolutionId + +|Property|Value| +|---|---| +|Description|**Unique identifier of the associated solution.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`solutionid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### SupportingSolutionId + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|False| +|LogicalName|`supportingsolutionid`| +|RequiredLevel|None| +|Type|Uniqueidentifier| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [business_unit_msdyn_aitestcasedocument](#BKMK_business_unit_msdyn_aitestcasedocument) +- [FileAttachment_msdyn_AITestCaseDocument_msdyn_InputFile](#BKMK_FileAttachment_msdyn_AITestCaseDocument_msdyn_InputFile) +- [lk_msdyn_aitestcasedocument_createdby](#BKMK_lk_msdyn_aitestcasedocument_createdby) +- [lk_msdyn_aitestcasedocument_createdonbehalfby](#BKMK_lk_msdyn_aitestcasedocument_createdonbehalfby) +- [lk_msdyn_aitestcasedocument_modifiedby](#BKMK_lk_msdyn_aitestcasedocument_modifiedby) +- [lk_msdyn_aitestcasedocument_modifiedonbehalfby](#BKMK_lk_msdyn_aitestcasedocument_modifiedonbehalfby) +- [msdyn_aitestcaseinput_msdyn_aitestcasedocument](#BKMK_msdyn_aitestcaseinput_msdyn_aitestcasedocument) +- [owner_msdyn_aitestcasedocument](#BKMK_owner_msdyn_aitestcasedocument) +- [team_msdyn_aitestcasedocument](#BKMK_team_msdyn_aitestcasedocument) +- [user_msdyn_aitestcasedocument](#BKMK_user_msdyn_aitestcasedocument) + +### business_unit_msdyn_aitestcasedocument + +One-To-Many Relationship: [businessunit business_unit_msdyn_aitestcasedocument](businessunit.md#BKMK_business_unit_msdyn_aitestcasedocument) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessunit`| +|ReferencedAttribute|`businessunitid`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencingEntityNavigationPropertyName|`owningbusinessunit`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### FileAttachment_msdyn_AITestCaseDocument_msdyn_InputFile + +One-To-Many Relationship: [fileattachment FileAttachment_msdyn_AITestCaseDocument_msdyn_InputFile](fileattachment.md#BKMK_FileAttachment_msdyn_AITestCaseDocument_msdyn_InputFile) + +|Property|Value| +|---|---| +|ReferencedEntity|`fileattachment`| +|ReferencedAttribute|`fileattachmentid`| +|ReferencingAttribute|`msdyn_inputfile`| +|ReferencingEntityNavigationPropertyName|`msdyn_inputfile`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aitestcasedocument_createdby + +One-To-Many Relationship: [systemuser lk_msdyn_aitestcasedocument_createdby](systemuser.md#BKMK_lk_msdyn_aitestcasedocument_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aitestcasedocument_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_msdyn_aitestcasedocument_createdonbehalfby](systemuser.md#BKMK_lk_msdyn_aitestcasedocument_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aitestcasedocument_modifiedby + +One-To-Many Relationship: [systemuser lk_msdyn_aitestcasedocument_modifiedby](systemuser.md#BKMK_lk_msdyn_aitestcasedocument_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aitestcasedocument_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_msdyn_aitestcasedocument_modifiedonbehalfby](systemuser.md#BKMK_lk_msdyn_aitestcasedocument_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestcaseinput_msdyn_aitestcasedocument + +One-To-Many Relationship: [msdyn_aitestcaseinput msdyn_aitestcaseinput_msdyn_aitestcasedocument](msdyn_aitestcaseinput.md#BKMK_msdyn_aitestcaseinput_msdyn_aitestcasedocument) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcaseinput`| +|ReferencedAttribute|`msdyn_aitestcaseinputid`| +|ReferencingAttribute|`msdyn_aitestcaseinputid`| +|ReferencingEntityNavigationPropertyName|`msdyn_AITestCaseInputId`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Cascade`
Assign: `Cascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `Cascade`
Unshare: `Cascade`| + +### owner_msdyn_aitestcasedocument + +One-To-Many Relationship: [owner owner_msdyn_aitestcasedocument](owner.md#BKMK_owner_msdyn_aitestcasedocument) + +|Property|Value| +|---|---| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### team_msdyn_aitestcasedocument + +One-To-Many Relationship: [team team_msdyn_aitestcasedocument](team.md#BKMK_team_msdyn_aitestcasedocument) + +|Property|Value| +|---|---| +|ReferencedEntity|`team`| +|ReferencedAttribute|`teamid`| +|ReferencingAttribute|`owningteam`| +|ReferencingEntityNavigationPropertyName|`owningteam`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### user_msdyn_aitestcasedocument + +One-To-Many Relationship: [systemuser user_msdyn_aitestcasedocument](systemuser.md#BKMK_user_msdyn_aitestcasedocument) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`owninguser`| +|ReferencingEntityNavigationPropertyName|`owninguser`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +- [msdyn_aitestcasedocument_AsyncOperations](#BKMK_msdyn_aitestcasedocument_AsyncOperations) +- [msdyn_aitestcasedocument_BulkDeleteFailures](#BKMK_msdyn_aitestcasedocument_BulkDeleteFailures) +- [msdyn_aitestcasedocument_FileAttachments](#BKMK_msdyn_aitestcasedocument_FileAttachments) +- [msdyn_aitestcasedocument_MailboxTrackingFolders](#BKMK_msdyn_aitestcasedocument_MailboxTrackingFolders) +- [msdyn_aitestcasedocument_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aitestcasedocument_PrincipalObjectAttributeAccesses) +- [msdyn_aitestcasedocument_ProcessSession](#BKMK_msdyn_aitestcasedocument_ProcessSession) +- [msdyn_aitestcasedocument_SyncErrors](#BKMK_msdyn_aitestcasedocument_SyncErrors) + +### msdyn_aitestcasedocument_AsyncOperations + +Many-To-One Relationship: [asyncoperation msdyn_aitestcasedocument_AsyncOperations](asyncoperation.md#BKMK_msdyn_aitestcasedocument_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencingEntity|`asyncoperation`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcasedocument_AsyncOperations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestcasedocument_BulkDeleteFailures + +Many-To-One Relationship: [bulkdeletefailure msdyn_aitestcasedocument_BulkDeleteFailures](bulkdeletefailure.md#BKMK_msdyn_aitestcasedocument_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencingEntity|`bulkdeletefailure`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcasedocument_BulkDeleteFailures`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestcasedocument_FileAttachments + +Many-To-One Relationship: [fileattachment msdyn_aitestcasedocument_FileAttachments](fileattachment.md#BKMK_msdyn_aitestcasedocument_FileAttachments) + +|Property|Value| +|---|---| +|ReferencingEntity|`fileattachment`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcasedocument_FileAttachments`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestcasedocument_MailboxTrackingFolders + +Many-To-One Relationship: [mailboxtrackingfolder msdyn_aitestcasedocument_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_msdyn_aitestcasedocument_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencingEntity|`mailboxtrackingfolder`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcasedocument_MailboxTrackingFolders`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestcasedocument_PrincipalObjectAttributeAccesses + +Many-To-One Relationship: [principalobjectattributeaccess msdyn_aitestcasedocument_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_msdyn_aitestcasedocument_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencingEntity|`principalobjectattributeaccess`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcasedocument_PrincipalObjectAttributeAccesses`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestcasedocument_ProcessSession + +Many-To-One Relationship: [processsession msdyn_aitestcasedocument_ProcessSession](processsession.md#BKMK_msdyn_aitestcasedocument_ProcessSession) + +|Property|Value| +|---|---| +|ReferencingEntity|`processsession`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcasedocument_ProcessSession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestcasedocument_SyncErrors + +Many-To-One Relationship: [syncerror msdyn_aitestcasedocument_SyncErrors](syncerror.md#BKMK_msdyn_aitestcasedocument_SyncErrors) + +|Property|Value| +|---|---| +|ReferencingEntity|`syncerror`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcasedocument_SyncErrors`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/processorregistration.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aitestcaseinput.md similarity index 62% rename from powerapps-docs/developer/data-platform/reference/entities/processorregistration.md rename to powerapps-docs/developer/data-platform/reference/entities/msdyn_aitestcaseinput.md index 8414180656..2661878280 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/processorregistration.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aitestcaseinput.md @@ -1,6 +1,6 @@ --- -title: "Processor Registration (ProcessorRegistration) table/entity reference (Microsoft Dataverse)" -description: "Includes schema information and supported messages for the Processor Registration (ProcessorRegistration) table/entity with Microsoft Dataverse." +title: "AI Test Case Input (msdyn_AITestCaseInput) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the AI Test Case Input (msdyn_AITestCaseInput) table/entity with Microsoft Dataverse." ms.topic: generated-reference author: phecke ms.author: pehecke @@ -8,42 +8,41 @@ search.audienceType: - developer --- -# Processor Registration (ProcessorRegistration) table/entity reference (Microsoft Dataverse) +# AI Test Case Input (msdyn_AITestCaseInput) table/entity reference (Microsoft Dataverse) ## Messages -The following table lists the messages for the Processor Registration (ProcessorRegistration) table. +The following table lists the messages for the AI Test Case Input (msdyn_AITestCaseInput) table. Messages represent operations that can be performed on the table. They may also be events. | Name
Is Event? |Web API Operation |SDK for .NET | | ---- | ----- |----- | -| `Assign`
Event: True |`PATCH` /processorregistrations(*processorregistrationid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Assign`
Event: True |`PATCH` /msdyn_aitestcaseinputs(*msdyn_aitestcaseinputid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || | `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| -| `Create`
Event: True |`POST` /processorregistrations
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `Create`
Event: True |`POST` /msdyn_aitestcaseinputs
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| | `CreateMultiple`
Event: True | || -| `Delete`
Event: True |`DELETE` /processorregistrations(*processorregistrationid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Delete`
Event: True |`DELETE` /msdyn_aitestcaseinputs(*msdyn_aitestcaseinputid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| | `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| | `GrantAccess`
Event: True | || | `IsValidStateTransition`
Event: False | || | `ModifyAccess`
Event: True | || -| `Restore`
Event: True | |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| -| `Retrieve`
Event: True |`GET` /processorregistrations(*processorregistrationid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| -| `RetrieveMultiple`
Event: True |`GET` /processorregistrations
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `Retrieve`
Event: True |`GET` /msdyn_aitestcaseinputs(*msdyn_aitestcaseinputid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /msdyn_aitestcaseinputs
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| | `RetrievePrincipalAccess`
Event: True | || | `RetrieveSharedPrincipalsAndAccess`
Event: True | || | `RevokeAccess`
Event: True | || -| `SetState`
Event: True |`PATCH` /processorregistrations(*processorregistrationid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || -| `Update`
Event: True |`PATCH` /processorregistrations(*processorregistrationid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `SetState`
Event: True |`PATCH` /msdyn_aitestcaseinputs(*msdyn_aitestcaseinputid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /msdyn_aitestcaseinputs(*msdyn_aitestcaseinputid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| | `UpdateMultiple`
Event: True | || -| `Upsert`
Event: False |`PATCH` /processorregistrations(*processorregistrationid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `Upsert`
Event: False |`PATCH` /msdyn_aitestcaseinputs(*msdyn_aitestcaseinputid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || | `UpsertMultiple`
Event: False | || ## Events -The following table lists the events for the Processor Registration (ProcessorRegistration) table. +The following table lists the events for the AI Test Case Input (msdyn_AITestCaseInput) table. Events are messages that exist so that you can subscribe to them. Unless you added the event, you shouldn't invoke the message, only subscribe to it. |Name|Web API Operation |SDK for .NET | @@ -56,19 +55,19 @@ Events are messages that exist so that you can subscribe to them. Unless you add ## Properties -The following table lists selected properties for the Processor Registration (ProcessorRegistration) table. +The following table lists selected properties for the AI Test Case Input (msdyn_AITestCaseInput) table. |Property|Value| | --- | --- | -| **DisplayName** | **Processor Registration** | -| **DisplayCollectionName** | **Processor Registrations** | -| **SchemaName** | `ProcessorRegistration` | -| **CollectionSchemaName** | `ProcessorRegistrations` | -| **EntitySetName** | `processorregistrations`| -| **LogicalName** | `processorregistration` | -| **LogicalCollectionName** | `processorregistrations` | -| **PrimaryIdAttribute** | `processorregistrationid` | -| **PrimaryNameAttribute** |`processortype` | +| **DisplayName** | **AI Test Case Input** | +| **DisplayCollectionName** | **AI Test Case Input** | +| **SchemaName** | `msdyn_AITestCaseInput` | +| **CollectionSchemaName** | `msdyn_AITestCaseInputs` | +| **EntitySetName** | `msdyn_aitestcaseinputs`| +| **LogicalName** | `msdyn_aitestcaseinput` | +| **LogicalCollectionName** | `msdyn_aitestcaseinputs` | +| **PrimaryIdAttribute** | `msdyn_aitestcaseinputid` | +| **PrimaryNameAttribute** |`msdyn_name` | | **TableType** | `Standard` | | **OwnershipType** | `UserOwned` | @@ -77,18 +76,18 @@ The following table lists selected properties for the Processor Registration (Pr These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. - [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [IsCustomizable](#BKMK_IsCustomizable) +- [msdyn_AITestCaseId](#BKMK_msdyn_AITestCaseId) +- [msdyn_AITestCaseInputId](#BKMK_msdyn_AITestCaseInputId) +- [msdyn_Description](#BKMK_msdyn_Description) +- [msdyn_InputData](#BKMK_msdyn_InputData) +- [msdyn_Name](#BKMK_msdyn_Name) - [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) - [OwnerId](#BKMK_OwnerId) - [OwnerIdType](#BKMK_OwnerIdType) -- [ProcessDefinition](#BKMK_ProcessDefinition) -- [ProcessorRegistrationId](#BKMK_ProcessorRegistrationId) -- [ProcessorType](#BKMK_ProcessorType) -- [SignalName](#BKMK_SignalName) - [statecode](#BKMK_statecode) - [statuscode](#BKMK_statuscode) - [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) -- [TraitComponentKey](#BKMK_TraitComponentKey) -- [TraitName](#BKMK_TraitName) - [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) ### ImportSequenceNumber @@ -105,112 +104,141 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |MaxValue|2147483647| |MinValue|-2147483648| -### OverriddenCreatedOn +### IsCustomizable |Property|Value| |---|---| -|Description|**Date and time that the record was migrated.**| -|DisplayName|**Record Created On**| +|Description|**For internal use only.**| +|DisplayName|**Is Customizable**| |IsValidForForm|False| |IsValidForRead|True| -|LogicalName|`overriddencreatedon`| -|RequiredLevel|None| -|Type|DateTime| -|CanChangeDateTimeBehavior|False| -|DateTimeBehavior|UserLocal| -|Format|DateOnly| -|ImeMode|Inactive| -|SourceTypeMask|0| +|LogicalName|`iscustomizable`| +|RequiredLevel|SystemRequired| +|Type|ManagedProperty| -### OwnerId +### msdyn_AITestCaseId |Property|Value| |---|---| -|Description|**Owner Id**| -|DisplayName|**Owner**| +|Description|**Unique identifier for AITestCase associated with AITestCaseInput.**| +|DisplayName|**AITestCase**| |IsValidForForm|True| |IsValidForRead|True| -|LogicalName|`ownerid`| +|LogicalName|`msdyn_aitestcaseid`| |RequiredLevel|SystemRequired| -|Type|Owner| -|Targets|systemuser, team| +|Type|Lookup| +|Targets|msdyn_aitestcase| -### OwnerIdType +### msdyn_AITestCaseInputId |Property|Value| |---|---| -|Description|**Owner Id Type**| -|DisplayName|| +|Description|**Unique identifier for entity instances**| +|DisplayName|**AITestCaseInput**| |IsValidForForm|False| |IsValidForRead|True| -|LogicalName|`owneridtype`| +|LogicalName|`msdyn_aitestcaseinputid`| |RequiredLevel|SystemRequired| -|Type|EntityName| +|Type|Uniqueidentifier| -### ProcessDefinition +### msdyn_Description |Property|Value| |---|---| -|Description|| -|DisplayName|**Processor Definition**| +|Description|**The description of the test case input.**| +|DisplayName|**Description**| |IsValidForForm|True| |IsValidForRead|True| -|LogicalName|`processordefinition`| +|LogicalName|`msdyn_description`| |RequiredLevel|None| -|Type|Memo| +|Type|String| |Format|Text| |FormatName|Text| |ImeMode|Auto| |IsLocalizable|False| -|MaxLength|1048576| +|MaxLength|400| -### ProcessorRegistrationId +### msdyn_InputData |Property|Value| |---|---| -|Description|**Unique identifier for entity instances**| -|DisplayName|**Processor Registration ID**| -|IsValidForForm|False| +|Description|**Input Data for the test case.**| +|DisplayName|**Input Data**| +|IsValidForForm|True| |IsValidForRead|True| -|LogicalName|`processorregistrationid`| +|LogicalName|`msdyn_inputdata`| |RequiredLevel|SystemRequired| -|Type|Uniqueidentifier| +|Type|Memo| +|Format|TextArea| +|FormatName|TextArea| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1048576| -### ProcessorType +### msdyn_Name |Property|Value| |---|---| -|Description|| -|DisplayName|**Processor Type**| +|Description|**The name of the AI test case input.**| +|DisplayName|**Name**| |IsValidForForm|True| |IsValidForRead|True| -|LogicalName|`processortype`| -|RequiredLevel|ApplicationRequired| +|LogicalName|`msdyn_name`| +|RequiredLevel|None| |Type|String| |Format|Text| |FormatName|Text| |ImeMode|Auto| |IsLocalizable|False| -|MaxLength|100| +|MaxLength|200| -### SignalName +### OverriddenCreatedOn |Property|Value| |---|---| -|Description|| -|DisplayName|**Signal Name**| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| |IsValidForForm|True| |IsValidForRead|True| -|LogicalName|`signalname`| -|RequiredLevel|ApplicationRequired| -|Type|Lookup| -|Targets|signalregistration| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| ### statecode |Property|Value| |---|---| -|Description|**Status of the Processor Registration**| +|Description|**Status of the AI Test Case Input**| |DisplayName|**Status**| |IsValidForForm|True| |IsValidForRead|True| @@ -218,7 +246,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |RequiredLevel|SystemRequired| |Type|State| |DefaultFormValue|| -|GlobalChoiceName|`processorregistration_statecode`| +|GlobalChoiceName|`msdyn_aitestcaseinput_statecode`| #### statecode Choices/Options @@ -231,7 +259,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**Reason for the status of the Processor Registration**| +|Description|**Reason for the status of the AI Test Case Input**| |DisplayName|**Status Reason**| |IsValidForForm|True| |IsValidForRead|True| @@ -239,7 +267,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |RequiredLevel|None| |Type|Status| |DefaultFormValue|| -|GlobalChoiceName|`processorregistration_statuscode`| +|GlobalChoiceName|`msdyn_aitestcaseinput_statuscode`| #### statuscode Choices/Options @@ -262,36 +290,6 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |MaxValue|2147483647| |MinValue|-1| -### TraitComponentKey - -|Property|Value| -|---|---| -|Description|| -|DisplayName|**Trait Component Key**| -|IsValidForForm|True| -|IsValidForRead|True| -|LogicalName|`traitcomponentkey`| -|RequiredLevel|None| -|Type|Memo| -|Format|Text| -|FormatName|Text| -|ImeMode|Auto| -|IsLocalizable|False| -|MaxLength|1048576| - -### TraitName - -|Property|Value| -|---|---| -|Description|| -|DisplayName|**Trait Name**| -|IsValidForForm|True| -|IsValidForRead|True| -|LogicalName|`traitname`| -|RequiredLevel|ApplicationRequired| -|Type|Lookup| -|Targets|traitregistration| - ### UTCConversionTimeZoneCode |Property|Value| @@ -311,19 +309,60 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. +- [ComponentIdUnique](#BKMK_ComponentIdUnique) +- [ComponentState](#BKMK_ComponentState) - [CreatedBy](#BKMK_CreatedBy) - [CreatedOn](#BKMK_CreatedOn) - [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [IsManaged](#BKMK_IsManaged) - [ModifiedBy](#BKMK_ModifiedBy) - [ModifiedOn](#BKMK_ModifiedOn) - [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OverwriteTime](#BKMK_OverwriteTime) - [OwnerIdName](#BKMK_OwnerIdName) - [OwnerIdYomiName](#BKMK_OwnerIdYomiName) - [OwningBusinessUnit](#BKMK_OwningBusinessUnit) - [OwningTeam](#BKMK_OwningTeam) - [OwningUser](#BKMK_OwningUser) +- [SolutionId](#BKMK_SolutionId) +- [SupportingSolutionId](#BKMK_SupportingSolutionId) - [VersionNumber](#BKMK_VersionNumber) +### ComponentIdUnique + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Row id unique**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentidunique`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### ComponentState + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Component State**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentstate`| +|RequiredLevel|SystemRequired| +|Type|Picklist| +|DefaultFormValue|| +|GlobalChoiceName|`componentstate`| + +#### ComponentState Choices/Options + +|Value|Label| +|---|---| +|0|**Published**| +|1|**Unpublished**| +|2|**Deleted**| +|3|**Deleted Unpublished**| + ### CreatedBy |Property|Value| @@ -367,6 +406,22 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |Type|Lookup| |Targets|systemuser| +### IsManaged + +|Property|Value| +|---|---| +|Description|**Indicates whether the solution component is part of a managed solution.**| +|DisplayName|**Is Managed**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`ismanaged`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`ismanaged`| +|DefaultValue|False| +|True Label|Managed| +|False Label|Unmanaged| + ### ModifiedBy |Property|Value| @@ -410,6 +465,23 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |Type|Lookup| |Targets|systemuser| +### OverwriteTime + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Record Overwrite Time**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overwritetime`| +|RequiredLevel|SystemRequired| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + ### OwnerIdName |Property|Value| @@ -453,7 +525,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| @@ -483,6 +555,30 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |Type|Lookup| |Targets|systemuser| +### SolutionId + +|Property|Value| +|---|---| +|Description|**Unique identifier of the associated solution.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`solutionid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### SupportingSolutionId + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|False| +|LogicalName|`supportingsolutionid`| +|RequiredLevel|None| +|Type|Uniqueidentifier| + ### VersionNumber |Property|Value| @@ -501,20 +597,19 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali These relationships are many-to-one. Listed by **SchemaName**. -- [business_unit_processorregistration](#BKMK_business_unit_processorregistration) -- [lk_processorregistration_createdby](#BKMK_lk_processorregistration_createdby) -- [lk_processorregistration_createdonbehalfby](#BKMK_lk_processorregistration_createdonbehalfby) -- [lk_processorregistration_modifiedby](#BKMK_lk_processorregistration_modifiedby) -- [lk_processorregistration_modifiedonbehalfby](#BKMK_lk_processorregistration_modifiedonbehalfby) -- [owner_processorregistration](#BKMK_owner_processorregistration) -- [processorregistration_signalregistration_signalname](#BKMK_processorregistration_signalregistration_signalname) -- [processorregistration_traitregistration_traitname](#BKMK_processorregistration_traitregistration_traitname) -- [team_processorregistration](#BKMK_team_processorregistration) -- [user_processorregistration](#BKMK_user_processorregistration) +- [business_unit_msdyn_aitestcaseinput](#BKMK_business_unit_msdyn_aitestcaseinput) +- [lk_msdyn_aitestcaseinput_createdby](#BKMK_lk_msdyn_aitestcaseinput_createdby) +- [lk_msdyn_aitestcaseinput_createdonbehalfby](#BKMK_lk_msdyn_aitestcaseinput_createdonbehalfby) +- [lk_msdyn_aitestcaseinput_modifiedby](#BKMK_lk_msdyn_aitestcaseinput_modifiedby) +- [lk_msdyn_aitestcaseinput_modifiedonbehalfby](#BKMK_lk_msdyn_aitestcaseinput_modifiedonbehalfby) +- [msdyn_aitestcase_msdyn_aitestcaseinput](#BKMK_msdyn_aitestcase_msdyn_aitestcaseinput) +- [owner_msdyn_aitestcaseinput](#BKMK_owner_msdyn_aitestcaseinput) +- [team_msdyn_aitestcaseinput](#BKMK_team_msdyn_aitestcaseinput) +- [user_msdyn_aitestcaseinput](#BKMK_user_msdyn_aitestcaseinput) -### business_unit_processorregistration +### business_unit_msdyn_aitestcaseinput -One-To-Many Relationship: [businessunit business_unit_processorregistration](businessunit.md#BKMK_business_unit_processorregistration) +One-To-Many Relationship: [businessunit business_unit_msdyn_aitestcaseinput](businessunit.md#BKMK_business_unit_msdyn_aitestcaseinput) |Property|Value| |---|---| @@ -525,9 +620,9 @@ One-To-Many Relationship: [businessunit business_unit_processorregistration](bus |IsHierarchical|| |CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### lk_processorregistration_createdby +### lk_msdyn_aitestcaseinput_createdby -One-To-Many Relationship: [systemuser lk_processorregistration_createdby](systemuser.md#BKMK_lk_processorregistration_createdby) +One-To-Many Relationship: [systemuser lk_msdyn_aitestcaseinput_createdby](systemuser.md#BKMK_lk_msdyn_aitestcaseinput_createdby) |Property|Value| |---|---| @@ -538,9 +633,9 @@ One-To-Many Relationship: [systemuser lk_processorregistration_createdby](system |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### lk_processorregistration_createdonbehalfby +### lk_msdyn_aitestcaseinput_createdonbehalfby -One-To-Many Relationship: [systemuser lk_processorregistration_createdonbehalfby](systemuser.md#BKMK_lk_processorregistration_createdonbehalfby) +One-To-Many Relationship: [systemuser lk_msdyn_aitestcaseinput_createdonbehalfby](systemuser.md#BKMK_lk_msdyn_aitestcaseinput_createdonbehalfby) |Property|Value| |---|---| @@ -551,9 +646,9 @@ One-To-Many Relationship: [systemuser lk_processorregistration_createdonbehalfby |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### lk_processorregistration_modifiedby +### lk_msdyn_aitestcaseinput_modifiedby -One-To-Many Relationship: [systemuser lk_processorregistration_modifiedby](systemuser.md#BKMK_lk_processorregistration_modifiedby) +One-To-Many Relationship: [systemuser lk_msdyn_aitestcaseinput_modifiedby](systemuser.md#BKMK_lk_msdyn_aitestcaseinput_modifiedby) |Property|Value| |---|---| @@ -564,9 +659,9 @@ One-To-Many Relationship: [systemuser lk_processorregistration_modifiedby](syste |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### lk_processorregistration_modifiedonbehalfby +### lk_msdyn_aitestcaseinput_modifiedonbehalfby -One-To-Many Relationship: [systemuser lk_processorregistration_modifiedonbehalfby](systemuser.md#BKMK_lk_processorregistration_modifiedonbehalfby) +One-To-Many Relationship: [systemuser lk_msdyn_aitestcaseinput_modifiedonbehalfby](systemuser.md#BKMK_lk_msdyn_aitestcaseinput_modifiedonbehalfby) |Property|Value| |---|---| @@ -577,48 +672,35 @@ One-To-Many Relationship: [systemuser lk_processorregistration_modifiedonbehalfb |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### owner_processorregistration - -One-To-Many Relationship: [owner owner_processorregistration](owner.md#BKMK_owner_processorregistration) - -|Property|Value| -|---|---| -|ReferencedEntity|`owner`| -|ReferencedAttribute|`ownerid`| -|ReferencingAttribute|`ownerid`| -|ReferencingEntityNavigationPropertyName|`ownerid`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - -### processorregistration_signalregistration_signalname +### msdyn_aitestcase_msdyn_aitestcaseinput -One-To-Many Relationship: [signalregistration processorregistration_signalregistration_signalname](signalregistration.md#BKMK_processorregistration_signalregistration_signalname) +One-To-Many Relationship: [msdyn_aitestcase msdyn_aitestcase_msdyn_aitestcaseinput](msdyn_aitestcase.md#BKMK_msdyn_aitestcase_msdyn_aitestcaseinput) |Property|Value| |---|---| -|ReferencedEntity|`signalregistration`| -|ReferencedAttribute|`signalregistrationid`| -|ReferencingAttribute|`signalname`| -|ReferencingEntityNavigationPropertyName|`signalname`| +|ReferencedEntity|`msdyn_aitestcase`| +|ReferencedAttribute|`msdyn_aitestcaseid`| +|ReferencingAttribute|`msdyn_aitestcaseid`| +|ReferencingEntityNavigationPropertyName|`msdyn_AITestCaseId`| |IsHierarchical|| -|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +|CascadeConfiguration|Archive: `Cascade`
Assign: `Cascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `Cascade`
Unshare: `Cascade`| -### processorregistration_traitregistration_traitname +### owner_msdyn_aitestcaseinput -One-To-Many Relationship: [traitregistration processorregistration_traitregistration_traitname](traitregistration.md#BKMK_processorregistration_traitregistration_traitname) +One-To-Many Relationship: [owner owner_msdyn_aitestcaseinput](owner.md#BKMK_owner_msdyn_aitestcaseinput) |Property|Value| |---|---| -|ReferencedEntity|`traitregistration`| -|ReferencedAttribute|`traitregistrationid`| -|ReferencingAttribute|`traitname`| -|ReferencingEntityNavigationPropertyName|`traitname`| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| |IsHierarchical|| -|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### team_processorregistration +### team_msdyn_aitestcaseinput -One-To-Many Relationship: [team team_processorregistration](team.md#BKMK_team_processorregistration) +One-To-Many Relationship: [team team_msdyn_aitestcaseinput](team.md#BKMK_team_msdyn_aitestcaseinput) |Property|Value| |---|---| @@ -629,9 +711,9 @@ One-To-Many Relationship: [team team_processorregistration](team.md#BKMK_team_pr |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### user_processorregistration +### user_msdyn_aitestcaseinput -One-To-Many Relationship: [systemuser user_processorregistration](systemuser.md#BKMK_user_processorregistration) +One-To-Many Relationship: [systemuser user_msdyn_aitestcaseinput](systemuser.md#BKMK_user_msdyn_aitestcaseinput) |Property|Value| |---|---| @@ -647,82 +729,95 @@ One-To-Many Relationship: [systemuser user_processorregistration](systemuser.md# These relationships are one-to-many. Listed by **SchemaName**. -- [processorregistration_AsyncOperations](#BKMK_processorregistration_AsyncOperations) -- [processorregistration_BulkDeleteFailures](#BKMK_processorregistration_BulkDeleteFailures) -- [processorregistration_MailboxTrackingFolders](#BKMK_processorregistration_MailboxTrackingFolders) -- [processorregistration_PrincipalObjectAttributeAccesses](#BKMK_processorregistration_PrincipalObjectAttributeAccesses) -- [processorregistration_ProcessSession](#BKMK_processorregistration_ProcessSession) -- [processorregistration_SyncErrors](#BKMK_processorregistration_SyncErrors) +- [msdyn_aitestcaseinput_AsyncOperations](#BKMK_msdyn_aitestcaseinput_AsyncOperations) +- [msdyn_aitestcaseinput_BulkDeleteFailures](#BKMK_msdyn_aitestcaseinput_BulkDeleteFailures) +- [msdyn_aitestcaseinput_MailboxTrackingFolders](#BKMK_msdyn_aitestcaseinput_MailboxTrackingFolders) +- [msdyn_aitestcaseinput_msdyn_aitestcasedocument](#BKMK_msdyn_aitestcaseinput_msdyn_aitestcasedocument) +- [msdyn_aitestcaseinput_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aitestcaseinput_PrincipalObjectAttributeAccesses) +- [msdyn_aitestcaseinput_ProcessSession](#BKMK_msdyn_aitestcaseinput_ProcessSession) +- [msdyn_aitestcaseinput_SyncErrors](#BKMK_msdyn_aitestcaseinput_SyncErrors) -### processorregistration_AsyncOperations +### msdyn_aitestcaseinput_AsyncOperations -Many-To-One Relationship: [asyncoperation processorregistration_AsyncOperations](asyncoperation.md#BKMK_processorregistration_AsyncOperations) +Many-To-One Relationship: [asyncoperation msdyn_aitestcaseinput_AsyncOperations](asyncoperation.md#BKMK_msdyn_aitestcaseinput_AsyncOperations) |Property|Value| |---|---| |ReferencingEntity|`asyncoperation`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`processorregistration_AsyncOperations`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcaseinput_AsyncOperations`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### processorregistration_BulkDeleteFailures +### msdyn_aitestcaseinput_BulkDeleteFailures -Many-To-One Relationship: [bulkdeletefailure processorregistration_BulkDeleteFailures](bulkdeletefailure.md#BKMK_processorregistration_BulkDeleteFailures) +Many-To-One Relationship: [bulkdeletefailure msdyn_aitestcaseinput_BulkDeleteFailures](bulkdeletefailure.md#BKMK_msdyn_aitestcaseinput_BulkDeleteFailures) |Property|Value| |---|---| |ReferencingEntity|`bulkdeletefailure`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`processorregistration_BulkDeleteFailures`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcaseinput_BulkDeleteFailures`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### processorregistration_MailboxTrackingFolders +### msdyn_aitestcaseinput_MailboxTrackingFolders -Many-To-One Relationship: [mailboxtrackingfolder processorregistration_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_processorregistration_MailboxTrackingFolders) +Many-To-One Relationship: [mailboxtrackingfolder msdyn_aitestcaseinput_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_msdyn_aitestcaseinput_MailboxTrackingFolders) |Property|Value| |---|---| |ReferencingEntity|`mailboxtrackingfolder`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`processorregistration_MailboxTrackingFolders`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcaseinput_MailboxTrackingFolders`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### processorregistration_PrincipalObjectAttributeAccesses +### msdyn_aitestcaseinput_msdyn_aitestcasedocument + +Many-To-One Relationship: [msdyn_aitestcasedocument msdyn_aitestcaseinput_msdyn_aitestcasedocument](msdyn_aitestcasedocument.md#BKMK_msdyn_aitestcaseinput_msdyn_aitestcasedocument) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestcasedocument`| +|ReferencingAttribute|`msdyn_aitestcaseinputid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcaseinput_msdyn_aitestcasedocument`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestcaseinput_PrincipalObjectAttributeAccesses -Many-To-One Relationship: [principalobjectattributeaccess processorregistration_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_processorregistration_PrincipalObjectAttributeAccesses) +Many-To-One Relationship: [principalobjectattributeaccess msdyn_aitestcaseinput_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_msdyn_aitestcaseinput_PrincipalObjectAttributeAccesses) |Property|Value| |---|---| |ReferencingEntity|`principalobjectattributeaccess`| |ReferencingAttribute|`objectid`| -|ReferencedEntityNavigationPropertyName|`processorregistration_PrincipalObjectAttributeAccesses`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcaseinput_PrincipalObjectAttributeAccesses`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### processorregistration_ProcessSession +### msdyn_aitestcaseinput_ProcessSession -Many-To-One Relationship: [processsession processorregistration_ProcessSession](processsession.md#BKMK_processorregistration_ProcessSession) +Many-To-One Relationship: [processsession msdyn_aitestcaseinput_ProcessSession](processsession.md#BKMK_msdyn_aitestcaseinput_ProcessSession) |Property|Value| |---|---| |ReferencingEntity|`processsession`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`processorregistration_ProcessSession`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcaseinput_ProcessSession`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### processorregistration_SyncErrors +### msdyn_aitestcaseinput_SyncErrors -Many-To-One Relationship: [syncerror processorregistration_SyncErrors](syncerror.md#BKMK_processorregistration_SyncErrors) +Many-To-One Relationship: [syncerror msdyn_aitestcaseinput_SyncErrors](syncerror.md#BKMK_msdyn_aitestcaseinput_SyncErrors) |Property|Value| |---|---| |ReferencingEntity|`syncerror`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`processorregistration_SyncErrors`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestcaseinput_SyncErrors`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_aitestrun.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aitestrun.md new file mode 100644 index 0000000000..16b668749a --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aitestrun.md @@ -0,0 +1,914 @@ +--- +title: "AI Test Run (msdyn_AITestRun) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the AI Test Run (msdyn_AITestRun) table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# AI Test Run (msdyn_AITestRun) table/entity reference (Microsoft Dataverse) + + + +## Messages + +The following table lists the messages for the AI Test Run (msdyn_AITestRun) table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Assign`
Event: True |`PATCH` /msdyn_aitestruns(*msdyn_aitestrunid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /msdyn_aitestruns
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /msdyn_aitestruns(*msdyn_aitestrunid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `GrantAccess`
Event: True | || +| `IsValidStateTransition`
Event: False | || +| `ModifyAccess`
Event: True | || +| `Retrieve`
Event: True |`GET` /msdyn_aitestruns(*msdyn_aitestrunid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /msdyn_aitestruns
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `RetrievePrincipalAccess`
Event: True | || +| `RetrieveSharedPrincipalsAndAccess`
Event: True | || +| `RevokeAccess`
Event: True | || +| `SetState`
Event: True |`PATCH` /msdyn_aitestruns(*msdyn_aitestrunid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /msdyn_aitestruns(*msdyn_aitestrunid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /msdyn_aitestruns(*msdyn_aitestrunid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + + +## Events + +The following table lists the events for the AI Test Run (msdyn_AITestRun) table. +Events are messages that exist so that you can subscribe to them. Unless you added the event, you shouldn't invoke the message, only subscribe to it. + +|Name|Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `BulkRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `PurgeRetainedContent`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `Retain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `RollbackRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `ValidateRetentionConfig`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| + +## Properties + +The following table lists selected properties for the AI Test Run (msdyn_AITestRun) table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **AI Test Run** | +| **DisplayCollectionName** | **AI Test Run** | +| **SchemaName** | `msdyn_AITestRun` | +| **CollectionSchemaName** | `msdyn_AITestRuns` | +| **EntitySetName** | `msdyn_aitestruns`| +| **LogicalName** | `msdyn_aitestrun` | +| **LogicalCollectionName** | `msdyn_aitestruns` | +| **PrimaryIdAttribute** | `msdyn_aitestrunid` | +| **PrimaryNameAttribute** |`msdyn_name` | +| **TableType** | `Standard` | +| **OwnershipType** | `UserOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [msdyn_AccuracyScore](#BKMK_msdyn_AccuracyScore) +- [msdyn_ActualOutput](#BKMK_msdyn_ActualOutput) +- [msdyn_AdditionalResponseMetadata](#BKMK_msdyn_AdditionalResponseMetadata) +- [msdyn_AITestCaseId](#BKMK_msdyn_AITestCaseId) +- [msdyn_AITestRunBatchId](#BKMK_msdyn_AITestRunBatchId) +- [msdyn_AITestRunId](#BKMK_msdyn_AITestRunId) +- [msdyn_Comment](#BKMK_msdyn_Comment) +- [msdyn_CompletedOn](#BKMK_msdyn_CompletedOn) +- [msdyn_ConfigurationId](#BKMK_msdyn_ConfigurationId) +- [msdyn_ErrorMessage](#BKMK_msdyn_ErrorMessage) +- [msdyn_ExpectedOutput](#BKMK_msdyn_ExpectedOutput) +- [msdyn_Name](#BKMK_msdyn_Name) +- [msdyn_RunDuration](#BKMK_msdyn_RunDuration) +- [msdyn_StartedOn](#BKMK_msdyn_StartedOn) +- [msdyn_TestRunSetting](#BKMK_msdyn_TestRunSetting) +- [msdyn_TestRunStatus](#BKMK_msdyn_TestRunStatus) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [statecode](#BKMK_statecode) +- [statuscode](#BKMK_statuscode) +- [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### msdyn_AccuracyScore + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Accuracy score**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_accuracyscore`| +|RequiredLevel|None| +|Type|Double| +|ImeMode|Auto| +|MaxValue|100| +|MinValue|0| +|Precision|2| + +### msdyn_ActualOutput + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Actual output**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_actualoutput`| +|RequiredLevel|None| +|Type|Memo| +|Format|TextArea| +|FormatName|TextArea| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1048576| + +### msdyn_AdditionalResponseMetadata + +|Property|Value| +|---|---| +|Description|**Addition Response Metadata.**| +|DisplayName|**Addition Response Metadata**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_additionalresponsemetadata`| +|RequiredLevel|None| +|Type|Memo| +|Format|TextArea| +|FormatName|TextArea| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1048576| + +### msdyn_AITestCaseId + +|Property|Value| +|---|---| +|Description|**Unique identifier for AITestCase associated with AITestRun.**| +|DisplayName|**AITestCase**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_aitestcaseid`| +|RequiredLevel|SystemRequired| +|Type|Lookup| +|Targets|msdyn_aitestcase| + +### msdyn_AITestRunBatchId + +|Property|Value| +|---|---| +|Description|**Unique identifier for AITestRunBatch associated with AITestRun.**| +|DisplayName|**AITestRunBatch**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_aitestrunbatchid`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|msdyn_aitestrunbatch| + +### msdyn_AITestRunId + +|Property|Value| +|---|---| +|Description|**Unique identifier for entity instances**| +|DisplayName|**AITestRun**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`msdyn_aitestrunid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### msdyn_Comment + +|Property|Value| +|---|---| +|Description|**Comment**| +|DisplayName|**Comment**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_comment`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|400| + +### msdyn_CompletedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the test run was completed.**| +|DisplayName|**Completed On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_completedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### msdyn_ConfigurationId + +|Property|Value| +|---|---| +|Description|**Configuration id.**| +|DisplayName|**Configuration id**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_configurationid`| +|RequiredLevel|None| +|Type|Uniqueidentifier| + +### msdyn_ErrorMessage + +|Property|Value| +|---|---| +|Description|**The error message of the test run.**| +|DisplayName|**ErrorMessage**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_errormessage`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|2000| + +### msdyn_ExpectedOutput + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Expected output**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_expectedoutput`| +|RequiredLevel|None| +|Type|Memo| +|Format|TextArea| +|FormatName|TextArea| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1048576| + +### msdyn_Name + +|Property|Value| +|---|---| +|Description|**The name of the AI test run.**| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_name`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|200| + +### msdyn_RunDuration + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Run Duration**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_runduration`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|0| + +### msdyn_StartedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the test run was started.**| +|DisplayName|**Started On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_startedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### msdyn_TestRunSetting + +|Property|Value| +|---|---| +|Description|**Test Run Setting.**| +|DisplayName|**Test Run Setting**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_testrunsetting`| +|RequiredLevel|None| +|Type|Memo| +|Format|TextArea| +|FormatName|TextArea| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1048576| + +### msdyn_TestRunStatus + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**TestRun Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_testrunstatus`| +|RequiredLevel|None| +|Type|Picklist| +|DefaultFormValue|-1| +|GlobalChoiceName|`msdyn_aitestrun_msdyn_testrunstatus`| + +#### msdyn_TestRunStatus Choices/Options + +|Value|Label| +|---|---| +|0|**Created**| +|1|**InProgress**| +|2|**Paused**| +|3|**Blocked**| +|4|**Succeeded**| +|5|**Failed**| +|6|**Canceled**| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### statecode + +|Property|Value| +|---|---| +|Description|**Status of the AI Test Run**| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statecode`| +|RequiredLevel|SystemRequired| +|Type|State| +|DefaultFormValue|| +|GlobalChoiceName|`msdyn_aitestrun_statecode`| + +#### statecode Choices/Options + +|Value|Details| +|---|---| +|0|Label: **Active**
DefaultStatus: 1
InvariantName: `Active`| +|1|Label: **Inactive**
DefaultStatus: 2
InvariantName: `Inactive`| + +### statuscode + +|Property|Value| +|---|---| +|Description|**Reason for the status of the AI Test Run**| +|DisplayName|**Status Reason**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Status| +|DefaultFormValue|| +|GlobalChoiceName|`msdyn_aitestrun_statuscode`| + +#### statuscode Choices/Options + +|Value|Details| +|---|---| +|1|Label: **Active**
State:0
TransitionData: None| +|2|Label: **Inactive**
State:1
TransitionData: None| + +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### UTCConversionTimeZoneCode + +|Property|Value| +|---|---| +|Description|**Time zone code that was in use when the record was created.**| +|DisplayName|**UTC Conversion Time Zone Code**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`utcconversiontimezonecode`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OwnerIdName](#BKMK_OwnerIdName) +- [OwnerIdYomiName](#BKMK_OwnerIdYomiName) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) +- [OwningTeam](#BKMK_OwningTeam) +- [OwningUser](#BKMK_OwningUser) +- [VersionNumber](#BKMK_VersionNumber) + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### OwnerIdName + +|Property|Value| +|---|---| +|Description|**Name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwnerIdYomiName + +|Property|Value| +|---|---| +|Description|**Yomi name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridyominame`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|businessunit| + +### OwningTeam + +|Property|Value| +|---|---| +|Description|**Unique identifier for the team that owns the record.**| +|DisplayName|**Owning Team**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningteam`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|team| + +### OwningUser + +|Property|Value| +|---|---| +|Description|**Unique identifier for the user that owns the record.**| +|DisplayName|**Owning User**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owninguser`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [business_unit_msdyn_aitestrun](#BKMK_business_unit_msdyn_aitestrun) +- [lk_msdyn_aitestrun_createdby](#BKMK_lk_msdyn_aitestrun_createdby) +- [lk_msdyn_aitestrun_createdonbehalfby](#BKMK_lk_msdyn_aitestrun_createdonbehalfby) +- [lk_msdyn_aitestrun_modifiedby](#BKMK_lk_msdyn_aitestrun_modifiedby) +- [lk_msdyn_aitestrun_modifiedonbehalfby](#BKMK_lk_msdyn_aitestrun_modifiedonbehalfby) +- [msdyn_aitestcase_msdyn_aitestrun](#BKMK_msdyn_aitestcase_msdyn_aitestrun) +- [msdyn_aitestrunbatch_msdyn_aitestrun](#BKMK_msdyn_aitestrunbatch_msdyn_aitestrun) +- [owner_msdyn_aitestrun](#BKMK_owner_msdyn_aitestrun) +- [team_msdyn_aitestrun](#BKMK_team_msdyn_aitestrun) +- [user_msdyn_aitestrun](#BKMK_user_msdyn_aitestrun) + +### business_unit_msdyn_aitestrun + +One-To-Many Relationship: [businessunit business_unit_msdyn_aitestrun](businessunit.md#BKMK_business_unit_msdyn_aitestrun) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessunit`| +|ReferencedAttribute|`businessunitid`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencingEntityNavigationPropertyName|`owningbusinessunit`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aitestrun_createdby + +One-To-Many Relationship: [systemuser lk_msdyn_aitestrun_createdby](systemuser.md#BKMK_lk_msdyn_aitestrun_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aitestrun_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_msdyn_aitestrun_createdonbehalfby](systemuser.md#BKMK_lk_msdyn_aitestrun_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aitestrun_modifiedby + +One-To-Many Relationship: [systemuser lk_msdyn_aitestrun_modifiedby](systemuser.md#BKMK_lk_msdyn_aitestrun_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aitestrun_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_msdyn_aitestrun_modifiedonbehalfby](systemuser.md#BKMK_lk_msdyn_aitestrun_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestcase_msdyn_aitestrun + +One-To-Many Relationship: [msdyn_aitestcase msdyn_aitestcase_msdyn_aitestrun](msdyn_aitestcase.md#BKMK_msdyn_aitestcase_msdyn_aitestrun) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcase`| +|ReferencedAttribute|`msdyn_aitestcaseid`| +|ReferencingAttribute|`msdyn_aitestcaseid`| +|ReferencingEntityNavigationPropertyName|`msdyn_AITestCaseId`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestrunbatch_msdyn_aitestrun + +One-To-Many Relationship: [msdyn_aitestrunbatch msdyn_aitestrunbatch_msdyn_aitestrun](msdyn_aitestrunbatch.md#BKMK_msdyn_aitestrunbatch_msdyn_aitestrun) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestrunbatch`| +|ReferencedAttribute|`msdyn_aitestrunbatchid`| +|ReferencingAttribute|`msdyn_aitestrunbatchid`| +|ReferencingEntityNavigationPropertyName|`msdyn_AITestRunBatchId`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### owner_msdyn_aitestrun + +One-To-Many Relationship: [owner owner_msdyn_aitestrun](owner.md#BKMK_owner_msdyn_aitestrun) + +|Property|Value| +|---|---| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### team_msdyn_aitestrun + +One-To-Many Relationship: [team team_msdyn_aitestrun](team.md#BKMK_team_msdyn_aitestrun) + +|Property|Value| +|---|---| +|ReferencedEntity|`team`| +|ReferencedAttribute|`teamid`| +|ReferencingAttribute|`owningteam`| +|ReferencingEntityNavigationPropertyName|`owningteam`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### user_msdyn_aitestrun + +One-To-Many Relationship: [systemuser user_msdyn_aitestrun](systemuser.md#BKMK_user_msdyn_aitestrun) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`owninguser`| +|ReferencingEntityNavigationPropertyName|`owninguser`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +- [msdyn_aitestrun_AsyncOperations](#BKMK_msdyn_aitestrun_AsyncOperations) +- [msdyn_aitestrun_BulkDeleteFailures](#BKMK_msdyn_aitestrun_BulkDeleteFailures) +- [msdyn_aitestrun_MailboxTrackingFolders](#BKMK_msdyn_aitestrun_MailboxTrackingFolders) +- [msdyn_aitestrun_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aitestrun_PrincipalObjectAttributeAccesses) +- [msdyn_aitestrun_ProcessSession](#BKMK_msdyn_aitestrun_ProcessSession) +- [msdyn_aitestrun_SyncErrors](#BKMK_msdyn_aitestrun_SyncErrors) + +### msdyn_aitestrun_AsyncOperations + +Many-To-One Relationship: [asyncoperation msdyn_aitestrun_AsyncOperations](asyncoperation.md#BKMK_msdyn_aitestrun_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencingEntity|`asyncoperation`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestrun_AsyncOperations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestrun_BulkDeleteFailures + +Many-To-One Relationship: [bulkdeletefailure msdyn_aitestrun_BulkDeleteFailures](bulkdeletefailure.md#BKMK_msdyn_aitestrun_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencingEntity|`bulkdeletefailure`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestrun_BulkDeleteFailures`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestrun_MailboxTrackingFolders + +Many-To-One Relationship: [mailboxtrackingfolder msdyn_aitestrun_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_msdyn_aitestrun_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencingEntity|`mailboxtrackingfolder`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestrun_MailboxTrackingFolders`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestrun_PrincipalObjectAttributeAccesses + +Many-To-One Relationship: [principalobjectattributeaccess msdyn_aitestrun_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_msdyn_aitestrun_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencingEntity|`principalobjectattributeaccess`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestrun_PrincipalObjectAttributeAccesses`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestrun_ProcessSession + +Many-To-One Relationship: [processsession msdyn_aitestrun_ProcessSession](processsession.md#BKMK_msdyn_aitestrun_ProcessSession) + +|Property|Value| +|---|---| +|ReferencingEntity|`processsession`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestrun_ProcessSession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestrun_SyncErrors + +Many-To-One Relationship: [syncerror msdyn_aitestrun_SyncErrors](syncerror.md#BKMK_msdyn_aitestrun_SyncErrors) + +|Property|Value| +|---|---| +|ReferencingEntity|`syncerror`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestrun_SyncErrors`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_aitestrunbatch.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aitestrunbatch.md new file mode 100644 index 0000000000..6b82d31e05 --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_aitestrunbatch.md @@ -0,0 +1,843 @@ +--- +title: "AI Test Run Batch (msdyn_AITestRunBatch) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the AI Test Run Batch (msdyn_AITestRunBatch) table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# AI Test Run Batch (msdyn_AITestRunBatch) table/entity reference (Microsoft Dataverse) + + + +## Messages + +The following table lists the messages for the AI Test Run Batch (msdyn_AITestRunBatch) table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Assign`
Event: True |`PATCH` /msdyn_aitestrunbatches(*msdyn_aitestrunbatchid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /msdyn_aitestrunbatches
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /msdyn_aitestrunbatches(*msdyn_aitestrunbatchid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `GrantAccess`
Event: True | || +| `IsValidStateTransition`
Event: False | || +| `ModifyAccess`
Event: True | || +| `Retrieve`
Event: True |`GET` /msdyn_aitestrunbatches(*msdyn_aitestrunbatchid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /msdyn_aitestrunbatches
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `RetrievePrincipalAccess`
Event: True | || +| `RetrieveSharedPrincipalsAndAccess`
Event: True | || +| `RevokeAccess`
Event: True | || +| `SetState`
Event: True |`PATCH` /msdyn_aitestrunbatches(*msdyn_aitestrunbatchid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /msdyn_aitestrunbatches(*msdyn_aitestrunbatchid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /msdyn_aitestrunbatches(*msdyn_aitestrunbatchid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + + +## Events + +The following table lists the events for the AI Test Run Batch (msdyn_AITestRunBatch) table. +Events are messages that exist so that you can subscribe to them. Unless you added the event, you shouldn't invoke the message, only subscribe to it. + +|Name|Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `BulkRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `PurgeRetainedContent`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `Retain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `RollbackRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `ValidateRetentionConfig`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| + +## Properties + +The following table lists selected properties for the AI Test Run Batch (msdyn_AITestRunBatch) table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **AI Test Run Batch** | +| **DisplayCollectionName** | **AI Test Run Batch** | +| **SchemaName** | `msdyn_AITestRunBatch` | +| **CollectionSchemaName** | `msdyn_AITestRunBatchs` | +| **EntitySetName** | `msdyn_aitestrunbatches`| +| **LogicalName** | `msdyn_aitestrunbatch` | +| **LogicalCollectionName** | `msdyn_aitestrunbatchs` | +| **PrimaryIdAttribute** | `msdyn_aitestrunbatchid` | +| **PrimaryNameAttribute** |`msdyn_name` | +| **TableType** | `Standard` | +| **OwnershipType** | `UserOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [msdyn_AccuracyScore](#BKMK_msdyn_AccuracyScore) +- [msdyn_AIObjectId](#BKMK_msdyn_AIObjectId) +- [msdyn_AIObjectType](#BKMK_msdyn_AIObjectType) +- [msdyn_AITestRunBatchId](#BKMK_msdyn_AITestRunBatchId) +- [msdyn_BatchRunStatus](#BKMK_msdyn_BatchRunStatus) +- [msdyn_CompletedOn](#BKMK_msdyn_CompletedOn) +- [msdyn_Description](#BKMK_msdyn_Description) +- [msdyn_ErrorMessage](#BKMK_msdyn_ErrorMessage) +- [msdyn_Name](#BKMK_msdyn_Name) +- [msdyn_RunDuration](#BKMK_msdyn_RunDuration) +- [msdyn_StartedOn](#BKMK_msdyn_StartedOn) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [statecode](#BKMK_statecode) +- [statuscode](#BKMK_statuscode) +- [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### msdyn_AccuracyScore + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Accuracy score**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_accuracyscore`| +|RequiredLevel|None| +|Type|Double| +|ImeMode|Auto| +|MaxValue|100| +|MinValue|0| +|Precision|2| + +### msdyn_AIObjectId + +|Property|Value| +|---|---| +|Description|**Unique identifier for AIObject associated with AITestCase.**| +|DisplayName|**AIObject**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_aiobjectid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### msdyn_AIObjectType + +|Property|Value| +|---|---| +|Description|**The Object type.**| +|DisplayName|**AIObjectType**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_aiobjecttype`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|200| + +### msdyn_AITestRunBatchId + +|Property|Value| +|---|---| +|Description|**Unique identifier for entity instances**| +|DisplayName|**AITestRunBatch**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`msdyn_aitestrunbatchid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### msdyn_BatchRunStatus + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Batch Run Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_batchrunstatus`| +|RequiredLevel|None| +|Type|Picklist| +|DefaultFormValue|-1| +|GlobalChoiceName|`msdyn_aitestrunbatch_msdyn_batchrunstatus`| + +#### msdyn_BatchRunStatus Choices/Options + +|Value|Label| +|---|---| +|0|**Created**| +|1|**InProgress**| +|2|**Paused**| +|3|**Blocked**| +|4|**Succeeded**| +|5|**Failed**| +|6|**Canceled**| + +### msdyn_CompletedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the batch run was completed.**| +|DisplayName|**Completed On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_completedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### msdyn_Description + +|Property|Value| +|---|---| +|Description|**The description of the test run batch.**| +|DisplayName|**Description**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_description`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|400| + +### msdyn_ErrorMessage + +|Property|Value| +|---|---| +|Description|**The error message of the batch run.**| +|DisplayName|**ErrorMessage**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_errormessage`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|2000| + +### msdyn_Name + +|Property|Value| +|---|---| +|Description|**The name of the AI test run batch.**| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_name`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|200| + +### msdyn_RunDuration + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Run Duration**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_runduration`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|0| + +### msdyn_StartedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the batch run was started.**| +|DisplayName|**Started On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_startedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### statecode + +|Property|Value| +|---|---| +|Description|**Status of the AI Test Run Batch**| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statecode`| +|RequiredLevel|SystemRequired| +|Type|State| +|DefaultFormValue|| +|GlobalChoiceName|`msdyn_aitestrunbatch_statecode`| + +#### statecode Choices/Options + +|Value|Details| +|---|---| +|0|Label: **Active**
DefaultStatus: 1
InvariantName: `Active`| +|1|Label: **Inactive**
DefaultStatus: 2
InvariantName: `Inactive`| + +### statuscode + +|Property|Value| +|---|---| +|Description|**Reason for the status of the AI Test Run Batch**| +|DisplayName|**Status Reason**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Status| +|DefaultFormValue|| +|GlobalChoiceName|`msdyn_aitestrunbatch_statuscode`| + +#### statuscode Choices/Options + +|Value|Details| +|---|---| +|1|Label: **Active**
State:0
TransitionData: None| +|2|Label: **Inactive**
State:1
TransitionData: None| + +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### UTCConversionTimeZoneCode + +|Property|Value| +|---|---| +|Description|**Time zone code that was in use when the record was created.**| +|DisplayName|**UTC Conversion Time Zone Code**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`utcconversiontimezonecode`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OwnerIdName](#BKMK_OwnerIdName) +- [OwnerIdYomiName](#BKMK_OwnerIdYomiName) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) +- [OwningTeam](#BKMK_OwningTeam) +- [OwningUser](#BKMK_OwningUser) +- [VersionNumber](#BKMK_VersionNumber) + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### OwnerIdName + +|Property|Value| +|---|---| +|Description|**Name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwnerIdYomiName + +|Property|Value| +|---|---| +|Description|**Yomi name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridyominame`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|businessunit| + +### OwningTeam + +|Property|Value| +|---|---| +|Description|**Unique identifier for the team that owns the record.**| +|DisplayName|**Owning Team**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningteam`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|team| + +### OwningUser + +|Property|Value| +|---|---| +|Description|**Unique identifier for the user that owns the record.**| +|DisplayName|**Owning User**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owninguser`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [business_unit_msdyn_aitestrunbatch](#BKMK_business_unit_msdyn_aitestrunbatch) +- [lk_msdyn_aitestrunbatch_createdby](#BKMK_lk_msdyn_aitestrunbatch_createdby) +- [lk_msdyn_aitestrunbatch_createdonbehalfby](#BKMK_lk_msdyn_aitestrunbatch_createdonbehalfby) +- [lk_msdyn_aitestrunbatch_modifiedby](#BKMK_lk_msdyn_aitestrunbatch_modifiedby) +- [lk_msdyn_aitestrunbatch_modifiedonbehalfby](#BKMK_lk_msdyn_aitestrunbatch_modifiedonbehalfby) +- [owner_msdyn_aitestrunbatch](#BKMK_owner_msdyn_aitestrunbatch) +- [team_msdyn_aitestrunbatch](#BKMK_team_msdyn_aitestrunbatch) +- [user_msdyn_aitestrunbatch](#BKMK_user_msdyn_aitestrunbatch) + +### business_unit_msdyn_aitestrunbatch + +One-To-Many Relationship: [businessunit business_unit_msdyn_aitestrunbatch](businessunit.md#BKMK_business_unit_msdyn_aitestrunbatch) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessunit`| +|ReferencedAttribute|`businessunitid`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencingEntityNavigationPropertyName|`owningbusinessunit`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aitestrunbatch_createdby + +One-To-Many Relationship: [systemuser lk_msdyn_aitestrunbatch_createdby](systemuser.md#BKMK_lk_msdyn_aitestrunbatch_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aitestrunbatch_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_msdyn_aitestrunbatch_createdonbehalfby](systemuser.md#BKMK_lk_msdyn_aitestrunbatch_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aitestrunbatch_modifiedby + +One-To-Many Relationship: [systemuser lk_msdyn_aitestrunbatch_modifiedby](systemuser.md#BKMK_lk_msdyn_aitestrunbatch_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_msdyn_aitestrunbatch_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_msdyn_aitestrunbatch_modifiedonbehalfby](systemuser.md#BKMK_lk_msdyn_aitestrunbatch_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### owner_msdyn_aitestrunbatch + +One-To-Many Relationship: [owner owner_msdyn_aitestrunbatch](owner.md#BKMK_owner_msdyn_aitestrunbatch) + +|Property|Value| +|---|---| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### team_msdyn_aitestrunbatch + +One-To-Many Relationship: [team team_msdyn_aitestrunbatch](team.md#BKMK_team_msdyn_aitestrunbatch) + +|Property|Value| +|---|---| +|ReferencedEntity|`team`| +|ReferencedAttribute|`teamid`| +|ReferencingAttribute|`owningteam`| +|ReferencingEntityNavigationPropertyName|`owningteam`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### user_msdyn_aitestrunbatch + +One-To-Many Relationship: [systemuser user_msdyn_aitestrunbatch](systemuser.md#BKMK_user_msdyn_aitestrunbatch) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`owninguser`| +|ReferencingEntityNavigationPropertyName|`owninguser`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +- [msdyn_aitestrunbatch_AsyncOperations](#BKMK_msdyn_aitestrunbatch_AsyncOperations) +- [msdyn_aitestrunbatch_BulkDeleteFailures](#BKMK_msdyn_aitestrunbatch_BulkDeleteFailures) +- [msdyn_aitestrunbatch_DuplicateBaseRecord](#BKMK_msdyn_aitestrunbatch_DuplicateBaseRecord) +- [msdyn_aitestrunbatch_DuplicateMatchingRecord](#BKMK_msdyn_aitestrunbatch_DuplicateMatchingRecord) +- [msdyn_aitestrunbatch_MailboxTrackingFolders](#BKMK_msdyn_aitestrunbatch_MailboxTrackingFolders) +- [msdyn_aitestrunbatch_msdyn_aitestrun](#BKMK_msdyn_aitestrunbatch_msdyn_aitestrun) +- [msdyn_aitestrunbatch_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aitestrunbatch_PrincipalObjectAttributeAccesses) +- [msdyn_aitestrunbatch_ProcessSession](#BKMK_msdyn_aitestrunbatch_ProcessSession) +- [msdyn_aitestrunbatch_SyncErrors](#BKMK_msdyn_aitestrunbatch_SyncErrors) + +### msdyn_aitestrunbatch_AsyncOperations + +Many-To-One Relationship: [asyncoperation msdyn_aitestrunbatch_AsyncOperations](asyncoperation.md#BKMK_msdyn_aitestrunbatch_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencingEntity|`asyncoperation`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestrunbatch_AsyncOperations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestrunbatch_BulkDeleteFailures + +Many-To-One Relationship: [bulkdeletefailure msdyn_aitestrunbatch_BulkDeleteFailures](bulkdeletefailure.md#BKMK_msdyn_aitestrunbatch_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencingEntity|`bulkdeletefailure`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestrunbatch_BulkDeleteFailures`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestrunbatch_DuplicateBaseRecord + +Many-To-One Relationship: [duplicaterecord msdyn_aitestrunbatch_DuplicateBaseRecord](duplicaterecord.md#BKMK_msdyn_aitestrunbatch_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`baserecordid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestrunbatch_DuplicateBaseRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestrunbatch_DuplicateMatchingRecord + +Many-To-One Relationship: [duplicaterecord msdyn_aitestrunbatch_DuplicateMatchingRecord](duplicaterecord.md#BKMK_msdyn_aitestrunbatch_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestrunbatch_DuplicateMatchingRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestrunbatch_MailboxTrackingFolders + +Many-To-One Relationship: [mailboxtrackingfolder msdyn_aitestrunbatch_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_msdyn_aitestrunbatch_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencingEntity|`mailboxtrackingfolder`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestrunbatch_MailboxTrackingFolders`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestrunbatch_msdyn_aitestrun + +Many-To-One Relationship: [msdyn_aitestrun msdyn_aitestrunbatch_msdyn_aitestrun](msdyn_aitestrun.md#BKMK_msdyn_aitestrunbatch_msdyn_aitestrun) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestrun`| +|ReferencingAttribute|`msdyn_aitestrunbatchid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestrunbatch_msdyn_aitestrun`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestrunbatch_PrincipalObjectAttributeAccesses + +Many-To-One Relationship: [principalobjectattributeaccess msdyn_aitestrunbatch_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_msdyn_aitestrunbatch_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencingEntity|`principalobjectattributeaccess`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestrunbatch_PrincipalObjectAttributeAccesses`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestrunbatch_ProcessSession + +Many-To-One Relationship: [processsession msdyn_aitestrunbatch_ProcessSession](processsession.md#BKMK_msdyn_aitestrunbatch_ProcessSession) + +|Property|Value| +|---|---| +|ReferencingEntity|`processsession`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestrunbatch_ProcessSession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### msdyn_aitestrunbatch_SyncErrors + +Many-To-One Relationship: [syncerror msdyn_aitestrunbatch_SyncErrors](syncerror.md#BKMK_msdyn_aitestrunbatch_SyncErrors) + +|Property|Value| +|---|---| +|ReferencingEntity|`syncerror`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`msdyn_aitestrunbatch_SyncErrors`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_analysisjob.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_analysisjob.md index 4290108e41..4586af82cc 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_analysisjob.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_analysisjob.md @@ -818,7 +818,7 @@ One-To-Many Relationship: [fileattachment FileAttachment_msdyn_analysisjob_msdyn |ReferencingAttribute|`msdyn_analysisjobsreport`| |ReferencingEntityNavigationPropertyName|`msdyn_analysisjobsreport`| |IsHierarchical|| -|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| ### lk_msdyn_analysisjob_createdby diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_copilotinteractions.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_copilotinteractions.md index e4256aa5ca..9d1c581ae8 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_copilotinteractions.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_copilotinteractions.md @@ -482,7 +482,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_dmsrequest.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_dmsrequest.md index 41439ecc13..4dfbfaed0a 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_dmsrequest.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_dmsrequest.md @@ -372,7 +372,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**Status of the msdyn_dmsrequest**| +|Description|**Status of the msdyn\_dmsrequest**| |DisplayName|**Status**| |IsValidForForm|True| |IsValidForRead|True| @@ -393,7 +393,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**Reason for the status of the msdyn_dmsrequest**| +|Description|**Reason for the status of the msdyn\_dmsrequest**| |DisplayName|**Status Reason**| |IsValidForForm|True| |IsValidForRead|True| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_dmsrequeststatus.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_dmsrequeststatus.md index c8cfe429ed..968cbd9668 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_dmsrequeststatus.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_dmsrequeststatus.md @@ -192,7 +192,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| |Description|| -|DisplayName|**msdyn_lookupfield_uploadrequest**| +|DisplayName|**msdyn\_lookupfield\_uploadrequest**| |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`msdyn_lookupfield_uploadrequest`| @@ -314,7 +314,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**Status of the msdyn_dmsrequeststatus**| +|Description|**Status of the msdyn\_dmsrequeststatus**| |DisplayName|**Status**| |IsValidForForm|True| |IsValidForRead|True| @@ -335,7 +335,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**Reason for the status of the msdyn_dmsrequeststatus**| +|Description|**Reason for the status of the msdyn\_dmsrequeststatus**| |DisplayName|**Status Reason**| |IsValidForForm|True| |IsValidForRead|True| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_flow_approval.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_flow_approval.md index d9af210802..f3528cda93 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_flow_approval.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_flow_approval.md @@ -61,6 +61,7 @@ The following table lists selected properties for the Approval (msdyn_flow_appro These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. +- [CurrentStage](#BKMK_CurrentStage) - [ImportSequenceNumber](#BKMK_ImportSequenceNumber) - [msdyn_flow_approval_additionalfields](#BKMK_msdyn_flow_approval_additionalfields) - [msdyn_flow_approval_allowreassign](#BKMK_msdyn_flow_approval_allowreassign) @@ -96,11 +97,25 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) - [OwnerId](#BKMK_OwnerId) - [OwnerIdType](#BKMK_OwnerIdType) +- [ProcessId](#BKMK_ProcessId) - [statecode](#BKMK_statecode) - [statuscode](#BKMK_statuscode) - [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) - [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) +### CurrentStage + +|Property|Value| +|---|---| +|Description|**The link to the current stage of the multi stage approvals**| +|DisplayName|**Current Stage**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`currentstage`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|approvalstageorder| + ### ImportSequenceNumber |Property|Value| @@ -686,6 +701,23 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |RequiredLevel|SystemRequired| |Type|EntityName| +### ProcessId + +|Property|Value| +|---|---| +|Description|**The id of the approval process from which the approval is created**| +|DisplayName|**Process Id**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`processid`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + ### statecode |Property|Value| @@ -961,6 +993,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [lk_msdyn_flow_approval_createdonbehalfby](#BKMK_lk_msdyn_flow_approval_createdonbehalfby) - [lk_msdyn_flow_approval_modifiedby](#BKMK_lk_msdyn_flow_approval_modifiedby) - [lk_msdyn_flow_approval_modifiedonbehalfby](#BKMK_lk_msdyn_flow_approval_modifiedonbehalfby) +- [msdyn_flow_approval_currentstage_approvalstageorder](#BKMK_msdyn_flow_approval_currentstage_approvalstageorder) - [msdyn_flow_basicapprovalmodelrelationship_approval](#BKMK_msdyn_flow_basicapprovalmodelrelationship_approval) - [owner_msdyn_flow_approval](#BKMK_owner_msdyn_flow_approval) - [team_msdyn_flow_approval](#BKMK_team_msdyn_flow_approval) @@ -1031,6 +1064,19 @@ One-To-Many Relationship: [systemuser lk_msdyn_flow_approval_modifiedonbehalfby] |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### msdyn_flow_approval_currentstage_approvalstageorder + +One-To-Many Relationship: [approvalstageorder msdyn_flow_approval_currentstage_approvalstageorder](approvalstageorder.md#BKMK_msdyn_flow_approval_currentstage_approvalstageorder) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageorder`| +|ReferencedAttribute|`approvalstageorderid`| +|ReferencingAttribute|`currentstage`| +|ReferencingEntityNavigationPropertyName|`currentstage`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### msdyn_flow_basicapprovalmodelrelationship_approval One-To-Many Relationship: [msdyn_flow_basicapprovalmodel msdyn_flow_basicapprovalmodelrelationship_approval](msdyn_flow_basicapprovalmodel.md#BKMK_msdyn_flow_basicapprovalmodelrelationship_approval) @@ -1088,6 +1134,9 @@ One-To-Many Relationship: [systemuser user_msdyn_flow_approval](systemuser.md#BK These relationships are one-to-many. Listed by **SchemaName**. +- [approvalstageapproval_approval_msdyn_flow_approval](#BKMK_approvalstageapproval_approval_msdyn_flow_approval) +- [approvalstagecondition_approval_msdyn_flow_approval](#BKMK_approvalstagecondition_approval_msdyn_flow_approval) +- [approvalstageorder_approval_msdyn_flow_approval](#BKMK_approvalstageorder_approval_msdyn_flow_approval) - [msdyn_flow_approval_Annotations](#BKMK_msdyn_flow_approval_Annotations) - [msdyn_flow_approval_AsyncOperations](#BKMK_msdyn_flow_approval_AsyncOperations) - [msdyn_flow_approval_BulkDeleteFailures](#BKMK_msdyn_flow_approval_BulkDeleteFailures) @@ -1102,6 +1151,42 @@ These relationships are one-to-many. Listed by **SchemaName**. - [msdyn_flow_approvalrelationship_approvalsteps](#BKMK_msdyn_flow_approvalrelationship_approvalsteps) - [msdyn_flow_approvalrelationship_flowapprovals](#BKMK_msdyn_flow_approvalrelationship_flowapprovals) +### approvalstageapproval_approval_msdyn_flow_approval + +Many-To-One Relationship: [approvalstageapproval approvalstageapproval_approval_msdyn_flow_approval](approvalstageapproval.md#BKMK_approvalstageapproval_approval_msdyn_flow_approval) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageapproval`| +|ReferencingAttribute|`approval`| +|ReferencedEntityNavigationPropertyName|`approvalstageapproval_approval_msdyn_flow_approval`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstagecondition_approval_msdyn_flow_approval + +Many-To-One Relationship: [approvalstagecondition approvalstagecondition_approval_msdyn_flow_approval](approvalstagecondition.md#BKMK_approvalstagecondition_approval_msdyn_flow_approval) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstagecondition`| +|ReferencingAttribute|`approval`| +|ReferencedEntityNavigationPropertyName|`approvalstagecondition_approval_msdyn_flow_approval`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### approvalstageorder_approval_msdyn_flow_approval + +Many-To-One Relationship: [approvalstageorder approvalstageorder_approval_msdyn_flow_approval](approvalstageorder.md#BKMK_approvalstageorder_approval_msdyn_flow_approval) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageorder`| +|ReferencingAttribute|`approval`| +|ReferencedEntityNavigationPropertyName|`approvalstageorder_approval_msdyn_flow_approval`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### msdyn_flow_approval_Annotations Many-To-One Relationship: [annotation msdyn_flow_approval_Annotations](annotation.md#BKMK_msdyn_flow_approval_Annotations) diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_flow_approvalrequest.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_flow_approvalrequest.md index 111d4453d0..718855347c 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_flow_approvalrequest.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_flow_approvalrequest.md @@ -85,6 +85,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) - [OwnerId](#BKMK_OwnerId) - [OwnerIdType](#BKMK_OwnerIdType) +- [StageNumber](#BKMK_StageNumber) - [statecode](#BKMK_statecode) - [statuscode](#BKMK_statuscode) - [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) @@ -476,6 +477,20 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |RequiredLevel|SystemRequired| |Type|EntityName| +### StageNumber + +|Property|Value| +|---|---| +|Description|**The stage number to which this approval request belongs.**| +|DisplayName|**Stage Number**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`stagenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + ### statecode |Property|Value| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_flow_approvalresponse.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_flow_approvalresponse.md index bd6275c065..15f4c5a77c 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_flow_approvalresponse.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_flow_approvalresponse.md @@ -77,6 +77,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) - [OwnerId](#BKMK_OwnerId) - [OwnerIdType](#BKMK_OwnerIdType) +- [StageNumber](#BKMK_StageNumber) - [statecode](#BKMK_statecode) - [statuscode](#BKMK_statuscode) - [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) @@ -335,6 +336,20 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |RequiredLevel|SystemRequired| |Type|EntityName| +### StageNumber + +|Property|Value| +|---|---| +|Description|**The stage number to which this approval response belongs.**| +|DisplayName|**Stage Number**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`stagenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + ### statecode |Property|Value| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_kalanguagesetting.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_kalanguagesetting.md index dae0d75d99..9fdcf44768 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_kalanguagesetting.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_kalanguagesetting.md @@ -140,7 +140,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| |Description|**The name of the custom entity.**| -|DisplayName|**msdyn_name**| +|DisplayName|**msdyn\_name**| |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`msdyn_name`| @@ -427,7 +427,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_kmpersonalizationsetting.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_kmpersonalizationsetting.md index f584f13e65..9b09a126e2 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_kmpersonalizationsetting.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_kmpersonalizationsetting.md @@ -102,7 +102,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| |Description|**Unique identifier for entity instances**| -|DisplayName|**msdyn_kmpersonalizationsettingid**| +|DisplayName|**msdyn\_kmpersonalizationsettingid**| |IsValidForForm|False| |IsValidForRead|True| |LogicalName|`msdyn_kmpersonalizationsettingid`| @@ -131,7 +131,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| |Description|**The name of the custom entity.**| -|DisplayName|**msdyn_name**| +|DisplayName|**msdyn\_name**| |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`msdyn_name`| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgearticleimage.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgearticleimage.md index a82b8198a4..7a1d08f204 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgearticleimage.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgearticleimage.md @@ -122,7 +122,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| |Description|**Parent entity record ID**| -|DisplayName|**msdyn_ParentEntityRecordID**| +|DisplayName|**msdyn\_ParentEntityRecordID**| |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`msdyn_parententityrecordid`| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgeassetconfiguration.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgeassetconfiguration.md index b404ca83fa..73480a9a98 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgeassetconfiguration.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgeassetconfiguration.md @@ -547,7 +547,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgeinteractioninsight.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgeinteractioninsight.md index 4ce7e7f017..fcbe214819 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgeinteractioninsight.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgeinteractioninsight.md @@ -496,7 +496,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgemanagementsetting.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgemanagementsetting.md index d36820e0af..7855166ea4 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgemanagementsetting.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgemanagementsetting.md @@ -111,7 +111,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| |Description|| -|DisplayName|**msdyn_actionlist**| +|DisplayName|**msdyn\_actionlist**| |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`msdyn_actionlist`| @@ -134,7 +134,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| |Description|| -|DisplayName|**msdyn_autosuggestionfield**| +|DisplayName|**msdyn\_autosuggestionfield**| |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`msdyn_autosuggestionfield`| @@ -151,7 +151,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| |Description|| -|DisplayName|**msdyn_defaultemailrecipient**| +|DisplayName|**msdyn\_defaultemailrecipient**| |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`msdyn_defaultemailrecipient`| @@ -168,7 +168,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| |Description|**Logical Name of the Entity for which Knowledge Management is being enabled.**| -|DisplayName|**msdyn_entityname**| +|DisplayName|**msdyn\_entityname**| |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`msdyn_entityname`| @@ -185,7 +185,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| |Description|| -|DisplayName|**msdyn_isautosuggestionsenabled**| +|DisplayName|**msdyn\_isautosuggestionsenabled**| |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`msdyn_isautosuggestionsenabled`| @@ -213,7 +213,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| |Description|| -|DisplayName|**msdyn_showcontextualactions**| +|DisplayName|**msdyn\_showcontextualactions**| |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`msdyn_showcontextualactions`| @@ -229,7 +229,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| |Description|| -|DisplayName|**msdyn_status**| +|DisplayName|**msdyn\_status**| |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`msdyn_status`| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgepersonalfilter.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgepersonalfilter.md index 8547cccedd..8437d850ac 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgepersonalfilter.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgepersonalfilter.md @@ -445,7 +445,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgesearchfilter.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgesearchfilter.md index caa9b5cea5..8d078deb3b 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgesearchfilter.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgesearchfilter.md @@ -600,7 +600,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgesearchinsight.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgesearchinsight.md index 9020a4058f..91cff9113f 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgesearchinsight.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_knowledgesearchinsight.md @@ -620,7 +620,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_mobileapp.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_mobileapp.md index 093e24f551..07bca6116e 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_mobileapp.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_mobileapp.md @@ -85,6 +85,8 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [msdyn_appCenterAppIdAab](#BKMK_msdyn_appCenterAppIdAab) - [msdyn_appCenterAppIdApk](#BKMK_msdyn_appCenterAppIdApk) - [msdyn_appCenterAppIdIpa](#BKMK_msdyn_appCenterAppIdIpa) +- [msdyn_azureBlobStorageAccountName](#BKMK_msdyn_azureBlobStorageAccountName) +- [msdyn_azureBlobStorageContainerName](#BKMK_msdyn_azureBlobStorageContainerName) - [msdyn_branch](#BKMK_msdyn_branch) - [msdyn_buildDetails](#BKMK_msdyn_buildDetails) - [msdyn_bundleIdentifier](#BKMK_msdyn_bundleIdentifier) @@ -97,6 +99,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [msdyn_IOSAppCenterAPIToken](#BKMK_msdyn_IOSAppCenterAPIToken) - [msdyn_IOSAppCenterAPITokenSaved](#BKMK_msdyn_IOSAppCenterAPITokenSaved) - [msdyn_iosEnterpriseSigningEnabled](#BKMK_msdyn_iosEnterpriseSigningEnabled) +- [msdyn_isAppSigningEnabled](#BKMK_msdyn_isAppSigningEnabled) - [msdyn_keyVaultUri](#BKMK_msdyn_keyVaultUri) - [msdyn_mobileappId](#BKMK_msdyn_mobileappId) - [msdyn_orgName](#BKMK_msdyn_orgName) @@ -108,6 +111,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [msdyn_secondaryApps](#BKMK_msdyn_secondaryApps) - [msdyn_secondaryPublishedAppNames](#BKMK_msdyn_secondaryPublishedAppNames) - [msdyn_statusBarContentColorMode](#BKMK_msdyn_statusBarContentColorMode) +- [msdyn_storageTypeForUpload](#BKMK_msdyn_storageTypeForUpload) - [msdyn_UniqueName](#BKMK_msdyn_UniqueName) - [name](#BKMK_name) - [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) @@ -280,6 +284,40 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsLocalizable|False| |MaxLength|100| +### msdyn_azureBlobStorageAccountName + +|Property|Value| +|---|---| +|Description|**Account Name of the Azure Blob Storage where the builds will be uploaded.**| +|DisplayName|**Azure Blob Storage Account Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_azureblobstorageaccountname`| +|RequiredLevel|None| +|Type|Memo| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|5000| + +### msdyn_azureBlobStorageContainerName + +|Property|Value| +|---|---| +|Description|**Container Name of the Azure Blob Storage where the builds will be uploaded.**| +|DisplayName|**Azure Blob Storage Container Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_azureblobstoragecontainername`| +|RequiredLevel|None| +|Type|Memo| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|5000| + ### msdyn_branch |Property|Value| @@ -484,6 +522,23 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsLocalizable|False| |MaxLength|5000| +### msdyn_isAppSigningEnabled + +|Property|Value| +|---|---| +|Description|**Is App Signing Enabled.**| +|DisplayName|**Is App Signing Enabled**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_isappsigningenabled`| +|RequiredLevel|None| +|Type|Memo| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|5000| + ### msdyn_keyVaultUri |Property|Value| @@ -662,6 +717,23 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsLocalizable|False| |MaxLength|1048576| +### msdyn_storageTypeForUpload + +|Property|Value| +|---|---| +|Description|**Storage type where the builds will be uploaded.**| +|DisplayName|**Storage Type For Upload**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_storagetypeforupload`| +|RequiredLevel|None| +|Type|Memo| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|5000| + ### msdyn_UniqueName |Property|Value| @@ -763,7 +835,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**Reason for the status of the msdyn_mobileapp**| +|Description|**Reason for the status of the msdyn\_mobileapp**| |DisplayName|**Status Reason**| |IsValidForForm|True| |IsValidForRead|True| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_pminferredtask.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_pminferredtask.md index bac30d4851..5ca6887f53 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_pminferredtask.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_pminferredtask.md @@ -429,6 +429,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |---|---| |0|**Recording**| |1|**DataLake**| +|2|**ObjectCentric**| ### OverriddenCreatedOn @@ -1008,6 +1009,7 @@ One-To-Many Relationship: [systemuser user_msdyn_pminferredtask](systemuser.md#B These relationships are one-to-many. Listed by **SchemaName**. +- [flowcapacityassignment_msdyn_pminferredtask](#BKMK_flowcapacityassignment_msdyn_pminferredtask) - [msdyn_msdyn_pminferredtask_msdyn_pmanalysishistory_parenttask](#BKMK_msdyn_msdyn_pminferredtask_msdyn_pmanalysishistory_parenttask) - [msdyn_msdyn_pminferredtask_msdyn_pmbusinessruleautomationconfig_PMInferredTaskId](#BKMK_msdyn_msdyn_pminferredtask_msdyn_pmbusinessruleautomationconfig_PMInferredTaskId) - [msdyn_msdyn_pminferredtask_msdyn_pmprocesstemplate_pmnferredtaskid](#BKMK_msdyn_msdyn_pminferredtask_msdyn_pmprocesstemplate_pmnferredtaskid) @@ -1025,6 +1027,18 @@ These relationships are one-to-many. Listed by **SchemaName**. - [msdyn_pminferredtask_SyncErrors](#BKMK_msdyn_pminferredtask_SyncErrors) - [msdyn_pmsimulation_pminferredtaskid_msdyn_pminferredtask](#BKMK_msdyn_pmsimulation_pminferredtaskid_msdyn_pminferredtask) +### flowcapacityassignment_msdyn_pminferredtask + +Many-To-One Relationship: [flowcapacityassignment flowcapacityassignment_msdyn_pminferredtask](flowcapacityassignment.md#BKMK_flowcapacityassignment_msdyn_pminferredtask) + +|Property|Value| +|---|---| +|ReferencingEntity|`flowcapacityassignment`| +|ReferencingAttribute|`regarding`| +|ReferencedEntityNavigationPropertyName|`flowcapacityassignment_msdyn_pminferredtask`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### msdyn_msdyn_pminferredtask_msdyn_pmanalysishistory_parenttask Many-To-One Relationship: [msdyn_pmanalysishistory msdyn_msdyn_pminferredtask_msdyn_pmanalysishistory_parenttask](msdyn_pmanalysishistory.md#BKMK_msdyn_msdyn_pminferredtask_msdyn_pmanalysishistory_parenttask) diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_pmsimulation.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_pmsimulation.md index 2e2533112d..75490d2aa2 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_pmsimulation.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_pmsimulation.md @@ -28,7 +28,6 @@ Messages represent operations that can be performed on the table. They may also | `GrantAccess`
Event: True | || | `IsValidStateTransition`
Event: False | || | `ModifyAccess`
Event: True | || -| `Restore`
Event: True | |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| | `Retrieve`
Event: True |`GET` /msdyn_pmsimulations(*msdyn_pmsimulationid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| | `RetrieveMultiple`
Event: True |`GET` /msdyn_pmsimulations
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| | `RetrievePrincipalAccess`
Event: True | || @@ -77,6 +76,7 @@ The following table lists selected properties for the PM Simulation (msdyn_pmsim These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. - [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [IsCustomizable](#BKMK_IsCustomizable) - [msdyn_description](#BKMK_msdyn_description) - [msdyn_end](#BKMK_msdyn_end) - [msdyn_generatelog](#BKMK_msdyn_generatelog) @@ -112,6 +112,18 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |MaxValue|2147483647| |MinValue|-2147483648| +### IsCustomizable + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Is Customizable**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`iscustomizable`| +|RequiredLevel|SystemRequired| +|Type|ManagedProperty| + ### msdyn_description |Property|Value| @@ -441,19 +453,60 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. +- [ComponentIdUnique](#BKMK_ComponentIdUnique) +- [ComponentState](#BKMK_ComponentState) - [CreatedBy](#BKMK_CreatedBy) - [CreatedOn](#BKMK_CreatedOn) - [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [IsManaged](#BKMK_IsManaged) - [ModifiedBy](#BKMK_ModifiedBy) - [ModifiedOn](#BKMK_ModifiedOn) - [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OverwriteTime](#BKMK_OverwriteTime) - [OwnerIdName](#BKMK_OwnerIdName) - [OwnerIdYomiName](#BKMK_OwnerIdYomiName) - [OwningBusinessUnit](#BKMK_OwningBusinessUnit) - [OwningTeam](#BKMK_OwningTeam) - [OwningUser](#BKMK_OwningUser) +- [SolutionId](#BKMK_SolutionId) +- [SupportingSolutionId](#BKMK_SupportingSolutionId) - [VersionNumber](#BKMK_VersionNumber) +### ComponentIdUnique + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Row id unique**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentidunique`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### ComponentState + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Component State**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentstate`| +|RequiredLevel|SystemRequired| +|Type|Picklist| +|DefaultFormValue|| +|GlobalChoiceName|`componentstate`| + +#### ComponentState Choices/Options + +|Value|Label| +|---|---| +|0|**Published**| +|1|**Unpublished**| +|2|**Deleted**| +|3|**Deleted Unpublished**| + ### CreatedBy |Property|Value| @@ -497,6 +550,22 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |Type|Lookup| |Targets|systemuser| +### IsManaged + +|Property|Value| +|---|---| +|Description|**Indicates whether the solution component is part of a managed solution.**| +|DisplayName|**Is Managed**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`ismanaged`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`ismanaged`| +|DefaultValue|False| +|True Label|Managed| +|False Label|Unmanaged| + ### ModifiedBy |Property|Value| @@ -540,6 +609,23 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |Type|Lookup| |Targets|systemuser| +### OverwriteTime + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Record Overwrite Time**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overwritetime`| +|RequiredLevel|SystemRequired| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + ### OwnerIdName |Property|Value| @@ -613,6 +699,30 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |Type|Lookup| |Targets|systemuser| +### SolutionId + +|Property|Value| +|---|---| +|Description|**Unique identifier of the associated solution.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`solutionid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### SupportingSolutionId + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|False| +|LogicalName|`supportingsolutionid`| +|RequiredLevel|None| +|Type|Uniqueidentifier| + ### VersionNumber |Property|Value| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_qna.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_qna.md index a3284733b8..cea0bea3ad 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_qna.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_qna.md @@ -527,7 +527,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| @@ -804,4 +804,4 @@ Many-To-One Relationship: [syncerror msdyn_qna_SyncErrors](syncerror.md#BKMK_msd [Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) [Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) - + diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_solutionhistory.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_solutionhistory.md index 92b61e8d63..0f3dbbedb2 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_solutionhistory.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_solutionhistory.md @@ -67,6 +67,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [msdyn_publishername](#BKMK_msdyn_publishername) - [msdyn_result](#BKMK_msdyn_result) - [msdyn_retrycount](#BKMK_msdyn_retrycount) +- [msdyn_solutionhistorydescription](#BKMK_msdyn_solutionhistorydescription) - [msdyn_solutionhistoryId](#BKMK_msdyn_solutionhistoryId) - [msdyn_solutionid](#BKMK_msdyn_solutionid) - [msdyn_solutionversion](#BKMK_msdyn_solutionversion) @@ -383,6 +384,23 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |MaxValue|2147483647| |MinValue|0| +### msdyn_solutionhistorydescription + +|Property|Value| +|---|---| +|Description|**Comments associated with solution installation**| +|DisplayName|**Description**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`msdyn_solutionhistorydescription`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1073741823| + ### msdyn_solutionhistoryId |Property|Value| diff --git a/powerapps-docs/developer/data-platform/reference/entities/msdyn_workflowactionstatus.md b/powerapps-docs/developer/data-platform/reference/entities/msdyn_workflowactionstatus.md index d48d37726f..c03cbd618f 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/msdyn_workflowactionstatus.md +++ b/powerapps-docs/developer/data-platform/reference/entities/msdyn_workflowactionstatus.md @@ -249,7 +249,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**Status of the msdyn_workflowactionstatus**| +|Description|**Status of the msdyn\_workflowactionstatus**| |DisplayName|**Status**| |IsValidForForm|True| |IsValidForRead|True| @@ -270,7 +270,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**Reason for the status of the msdyn_workflowactionstatus**| +|Description|**Reason for the status of the msdyn\_workflowactionstatus**| |DisplayName|**Status Reason**| |IsValidForForm|True| |IsValidForRead|True| diff --git a/powerapps-docs/developer/data-platform/reference/entities/mspp_entityform.md b/powerapps-docs/developer/data-platform/reference/entities/mspp_entityform.md index a62cc42922..a49c43a070 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/mspp_entityform.md +++ b/powerapps-docs/developer/data-platform/reference/entities/mspp_entityform.md @@ -223,7 +223,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**The accept attribute specifies the MIME types of files that the server accepts through file upload. To specify more than one value, separate the values with a comma (e.g. audio/*,video/*,image/*).**| +|Description|**The accept attribute specifies the MIME types of files that the server accepts through file upload. To specify more than one value, separate the values with a comma (e.g. audio/\*,video/\*,image/\*).**| |DisplayName|**Attach File MIME Type Accept**| |IsValidForForm|True| |IsValidForRead|True| diff --git a/powerapps-docs/developer/data-platform/reference/entities/mspp_sitesetting.md b/powerapps-docs/developer/data-platform/reference/entities/mspp_sitesetting.md index 6eb61022d7..92b4fc2639 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/mspp_sitesetting.md +++ b/powerapps-docs/developer/data-platform/reference/entities/mspp_sitesetting.md @@ -71,10 +71,13 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [mspp_createdby](#BKMK_mspp_createdby) - [mspp_createdon](#BKMK_mspp_createdon) - [mspp_description](#BKMK_mspp_description) +- [mspp_environmentvariable](#BKMK_mspp_environmentvariable) +- [mspp_envvar_schema](#BKMK_mspp_envvar_schema) - [mspp_modifiedby](#BKMK_mspp_modifiedby) - [mspp_modifiedon](#BKMK_mspp_modifiedon) - [mspp_name](#BKMK_mspp_name) - [mspp_sitesettingId](#BKMK_mspp_sitesettingId) +- [mspp_source](#BKMK_mspp_source) - [mspp_value](#BKMK_mspp_value) - [mspp_websiteid](#BKMK_mspp_websiteid) - [statecode](#BKMK_statecode) @@ -127,6 +130,36 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsLocalizable|False| |MaxLength|4096| +### mspp_environmentvariable + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Environment Variable**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`mspp_environmentvariable`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|environmentvariabledefinition| + +### mspp_envvar_schema + +|Property|Value| +|---|---| +|Description|**Environment Variable Schema Name**| +|DisplayName|**Environment Variable Schema Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`mspp_envvar_schema`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|4000| + ### mspp_modifiedby |Property|Value| @@ -186,6 +219,27 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |RequiredLevel|SystemRequired| |Type|Uniqueidentifier| +### mspp_source + +|Property|Value| +|---|---| +|Description|**Source from value is taken**| +|DisplayName|**Source**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`mspp_source`| +|RequiredLevel|None| +|Type|Picklist| +|DefaultFormValue|0| +|GlobalChoiceName|`mspp_mspp_sitesetting_mspp_source`| + +#### mspp_source Choices/Options + +|Value|Label| +|---|---| +|0|**Table**| +|1|**Environment Variable**| + ### mspp_value |Property|Value| @@ -263,10 +317,24 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali These relationships are many-to-one. Listed by **SchemaName**. +- [mspp_environmentvariabledefinition_mspp_sitesetting_environmentvariable](#BKMK_mspp_environmentvariabledefinition_mspp_sitesetting_environmentvariable) - [mspp_systemuser_mspp_sitesetting_createdby](#BKMK_mspp_systemuser_mspp_sitesetting_createdby) - [mspp_systemuser_mspp_sitesetting_modifiedby](#BKMK_mspp_systemuser_mspp_sitesetting_modifiedby) - [mspp_website_sitesetting](#BKMK_mspp_website_sitesetting) +### mspp_environmentvariabledefinition_mspp_sitesetting_environmentvariable + +One-To-Many Relationship: [environmentvariabledefinition mspp_environmentvariabledefinition_mspp_sitesetting_environmentvariable](environmentvariabledefinition.md#BKMK_mspp_environmentvariabledefinition_mspp_sitesetting_environmentvariable) + +|Property|Value| +|---|---| +|ReferencedEntity|`environmentvariabledefinition`| +|ReferencedAttribute|`environmentvariabledefinitionid`| +|ReferencingAttribute|`mspp_environmentvariable`| +|ReferencingEntityNavigationPropertyName|`EnvironmentValue`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### mspp_systemuser_mspp_sitesetting_createdby One-To-Many Relationship: [systemuser mspp_systemuser_mspp_sitesetting_createdby](systemuser.md#BKMK_mspp_systemuser_mspp_sitesetting_createdby) diff --git a/powerapps-docs/developer/data-platform/reference/entities/mspp_webformstep.md b/powerapps-docs/developer/data-platform/reference/entities/mspp_webformstep.md index 37dc36e320..a67646e420 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/mspp_webformstep.md +++ b/powerapps-docs/developer/data-platform/reference/entities/mspp_webformstep.md @@ -201,7 +201,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**The accept attribute specifies the MIME types of files that the server accepts through file upload. To specify more than one value, separate the values with a comma (e.g. audio/*,video/*,image/*).**| +|Description|**The accept attribute specifies the MIME types of files that the server accepts through file upload. To specify more than one value, separate the values with a comma (e.g. audio/\*,video/\*,image/\*).**| |DisplayName|**Accept**| |IsValidForForm|True| |IsValidForRead|True| diff --git a/powerapps-docs/developer/data-platform/reference/entities/mspp_websitelanguage.md b/powerapps-docs/developer/data-platform/reference/entities/mspp_websitelanguage.md index 9f1159b508..6b24d3ea8c 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/mspp_websitelanguage.md +++ b/powerapps-docs/developer/data-platform/reference/entities/mspp_websitelanguage.md @@ -283,7 +283,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**This attribute is used only in Power Pages Management App, and only for UI purpose. It's value is mapped to mspp_systemlanguage.**| +|Description|**This attribute is used only in Power Pages Management App, and only for UI purpose. It's value is mapped to mspp\_systemlanguage.**| |DisplayName|**Power Pages Language**| |IsValidForForm|True| |IsValidForRead|True| diff --git a/powerapps-docs/developer/data-platform/reference/entities/nlsqregistration.md b/powerapps-docs/developer/data-platform/reference/entities/nlsqregistration.md index 829a95f76e..38c50eddd0 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/nlsqregistration.md +++ b/powerapps-docs/developer/data-platform/reference/entities/nlsqregistration.md @@ -87,6 +87,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [OwnerIdType](#BKMK_OwnerIdType) - [PartitionId](#BKMK_PartitionId) - [RegistrationStatus](#BKMK_RegistrationStatus) +- [Skill](#BKMK_Skill) - [TTLInSeconds](#BKMK_TTLInSeconds) ### AllowedEntityList @@ -350,6 +351,19 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |2|**InProgress**| |3|**Failed**| +### Skill + +|Property|Value| +|---|---| +|Description|**(Optional) the skill associated with the registration**| +|DisplayName|**Skill**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`skill`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|| + ### TTLInSeconds |Property|Value| @@ -511,7 +525,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| diff --git a/powerapps-docs/developer/data-platform/reference/entities/organization.md b/powerapps-docs/developer/data-platform/reference/entities/organization.md index 1094700e39..713318b90f 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/organization.md +++ b/powerapps-docs/developer/data-platform/reference/entities/organization.md @@ -92,6 +92,8 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [AppointmentRichEditorExperience](#BKMK_AppointmentRichEditorExperience) - [AppointmentWithTeamsMeeting](#BKMK_AppointmentWithTeamsMeeting) - [AppointmentWithTeamsMeetingV2](#BKMK_AppointmentWithTeamsMeetingV2) +- [AreAutomationCenterPreviewFeaturesEnabled](#BKMK_AreAutomationCenterPreviewFeaturesEnabled) +- [AreProcessInsightsPreviewFeaturesEnabled](#BKMK_AreProcessInsightsPreviewFeaturesEnabled) - [AuditRetentionPeriod](#BKMK_AuditRetentionPeriod) - [AuditRetentionPeriodV2](#BKMK_AuditRetentionPeriodV2) - [AuditSettings](#BKMK_AuditSettings) @@ -156,6 +158,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [DelegatedAdminUserId](#BKMK_DelegatedAdminUserId) - [DesktopFlowQueueLogsTtlInMinutes](#BKMK_DesktopFlowQueueLogsTtlInMinutes) - [DesktopFlowRunActionLogsStatus](#BKMK_DesktopFlowRunActionLogsStatus) +- [DesktopFlowRunActionLogVerbosity](#BKMK_DesktopFlowRunActionLogVerbosity) - [DesktopFlowRunActionLogVersion](#BKMK_DesktopFlowRunActionLogVersion) - [DisableSocialCare](#BKMK_DisableSocialCare) - [DisableSystemLabelsCacheSharing](#BKMK_DisableSystemLabelsCacheSharing) @@ -167,6 +170,9 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [EnableAsyncMergeAPIForUCI](#BKMK_EnableAsyncMergeAPIForUCI) - [EnableBingMapsIntegration](#BKMK_EnableBingMapsIntegration) - [EnableCanvasAppsInSolutionsByDefault](#BKMK_EnableCanvasAppsInSolutionsByDefault) +- [EnableCopilotStudioCrossGeoShareDataWithVivaInsights](#BKMK_EnableCopilotStudioCrossGeoShareDataWithVivaInsights) +- [EnableCopilotStudioShareDataWithVI](#BKMK_EnableCopilotStudioShareDataWithVI) +- [EnableCopilotStudioShareDataWithVivaInsights](#BKMK_EnableCopilotStudioShareDataWithVivaInsights) - [EnableEnvironmentSettingsApp](#BKMK_EnableEnvironmentSettingsApp) - [EnableFlowsInSolutionByDefault](#BKMK_EnableFlowsInSolutionByDefault) - [EnableFlowsInSolutionByDefaultGracePeriod](#BKMK_EnableFlowsInSolutionByDefaultGracePeriod) @@ -286,6 +292,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [IsMobileClientOnDemandSyncEnabled](#BKMK_IsMobileClientOnDemandSyncEnabled) - [IsMobileOfflineEnabled](#BKMK_IsMobileOfflineEnabled) - [IsModelDrivenAppsInMSTeamsEnabled](#BKMK_IsModelDrivenAppsInMSTeamsEnabled) +- [IsMoneySavingsAllowed](#BKMK_IsMoneySavingsAllowed) - [IsMSTeamsCollaborationEnabled](#BKMK_IsMSTeamsCollaborationEnabled) - [IsMSTeamsEnabled](#BKMK_IsMSTeamsEnabled) - [IsMSTeamsSettingChangedByUser](#BKMK_IsMSTeamsSettingChangedByUser) @@ -425,6 +432,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [RiErrorStatus](#BKMK_RiErrorStatus) - [SameSiteModeForSessionCookie](#BKMK_SameSiteModeForSessionCookie) - [SampleDataImportId](#BKMK_SampleDataImportId) +- [SavingEventsTTLInMinutes](#BKMK_SavingEventsTTLInMinutes) - [SchemaNamePrefix](#BKMK_SchemaNamePrefix) - [SendBulkEmailInUCI](#BKMK_SendBulkEmailInUCI) - [ServeStaticResourcesFromAzureCDN](#BKMK_ServeStaticResourcesFromAzureCDN) @@ -1221,6 +1229,38 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |True Label|Yes| |False Label|No| +### AreAutomationCenterPreviewFeaturesEnabled + +|Property|Value| +|---|---| +|Description|**Indicates whether Power Automate Automation Center preview features will be available for all users in this organization.**| +|DisplayName|**Enable Power Automate Automation Center preview features for all users in this organization.**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`areautomationcenterpreviewfeaturesenabled`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`organization_featureenabled`| +|DefaultValue|True| +|True Label|Yes| +|False Label|No| + +### AreProcessInsightsPreviewFeaturesEnabled + +|Property|Value| +|---|---| +|Description|**Indicates whether Process Insights Preview features are enabled in this organization.**| +|DisplayName|**Enable Process Insights Preview features for this organization**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`areprocessinsightspreviewfeaturesenabled`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`organization_featureenabled`| +|DefaultValue|True| +|True Label|Yes| +|False Label|No| + ### AuditRetentionPeriod |Property|Value| @@ -2241,6 +2281,30 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |1|**OnFailure**| |2|**Disabled**| +### DesktopFlowRunActionLogVerbosity + +|Property|Value| +|---|---| +|Description|**What verbosity level the Power Automate Desktop Flow Run Action Logs allow.**| +|DisplayName|**Desktop Flow Run Action Log Verbosity**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`desktopflowrunactionlogverbosity`| +|RequiredLevel|SystemRequired| +|Type|Picklist| +|DefaultFormValue|0| +|GlobalChoiceName|`organization_desktopflowrunactionlogverbosity`| + +#### DesktopFlowRunActionLogVerbosity Choices/Options + +|Value|Label| +|---|---| +|0|**Full**| +|1|**Debug**| +|2|**Custom**| +|3|**Warning**| +|4|**Error**| + ### DesktopFlowRunActionLogVersion |Property|Value| @@ -2431,6 +2495,54 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |True Label|Yes| |False Label|No| +### EnableCopilotStudioCrossGeoShareDataWithVivaInsights + +|Property|Value| +|---|---| +|Description|**Enable this feature to allow cross-geo boundary sharing of aggregated analytics data if your preferred data location for Viva Insights is different than the location of your environment**| +|DisplayName|**Allow cross-geo boundary sharing of aggregated analytics data if your preferred data location for Viva Insights is different than the location of your environment**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`enablecopilotstudiocrossgeosharedatawithvivainsights`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`organization_featureenabled`| +|DefaultValue|False| +|True Label|Yes| +|False Label|No| + +### EnableCopilotStudioShareDataWithVI + +|Property|Value| +|---|---| +|Description|**(Deprecated) Enable this feature to allow Copilot Studio to share aggregated analytics data for custom agents with Viva Insights for an individual environment**| +|DisplayName|**(Deprecated) Allow Copilot Studio to share aggregated analytics data for custom agents with Viva Insights**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`enablecopilotstudiosharedatawithvi`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`organization_featureenabled`| +|DefaultValue|False| +|True Label|Yes| +|False Label|No| + +### EnableCopilotStudioShareDataWithVivaInsights + +|Property|Value| +|---|---| +|Description|**Enable this feature to allow Copilot Studio to share aggregated analytics data for custom agents with Viva Insights for an individual environment**| +|DisplayName|**Allow Copilot Studio to share aggregated analytics data for custom agents with Viva Insights**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`enablecopilotstudiosharedatawithvivainsights`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`organization_featureenabled`| +|DefaultValue|True| +|True Label|Yes| +|False Label|No| + ### EnableEnvironmentSettingsApp |Property|Value| @@ -2884,12 +2996,12 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Value|Label| |---|---| -|1|**Quarter {0}**| -|2|**Q{0}**| -|3|**P{0}**| -|4|**Month {0}**| -|5|**M{0}**| -|6|**Semester {0}**| +|1|**Quarter \{0\}**| +|2|**Q\{0\}**| +|3|**P\{0\}**| +|4|**Month \{0\}**| +|5|**M\{0\}**| +|6|**Semester \{0\}**| |7|**Month Name**| ### FiscalPeriodType @@ -3964,7 +4076,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**Indicates whether Windows Vanilla Image will be readly available for Desktop Flow users in this organization.**| +|Description|**Indicates whether Windows Vanilla Image will be available for Desktop Flow users in this organization.**| |DisplayName|**Enable Sharing the Windows Vanilla Image with every Desktop Flow user in this organization.**| |IsValidForForm|False| |IsValidForRead|True| @@ -4360,6 +4472,22 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |True Label|Yes| |False Label|No| +### IsMoneySavingsAllowed + +|Property|Value| +|---|---| +|Description|**Indicates whether the maker can create Power Automate money based saving rules.**| +|DisplayName|**Enable the ability to makers to create Power Automate money savings rule**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`ismoneysavingsallowed`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`organization_featureenabled`| +|DefaultValue|True| +|True Label|Yes| +|False Label|No| + ### IsMSTeamsCollaborationEnabled |Property|Value| @@ -6562,6 +6690,20 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |RequiredLevel|None| |Type|Uniqueidentifier| +### SavingEventsTTLInMinutes + +|Property|Value| +|---|---| +|Description|**Default time to live in minutes for new Power Automate savings events records in flow aggregation.**| +|DisplayName|**The TTL in minutes for new Power Automate savings events records in flow aggregation.**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`savingeventsttlinminutes`| +|RequiredLevel|SystemRequired| +|Type|Integer| +|MaxValue|52560000| +|MinValue|0| + ### SchemaNamePrefix |Property|Value| @@ -8339,8 +8481,10 @@ These relationships are one-to-many. Listed by **SchemaName**. - [organization_datalakeworkspacepermission](#BKMK_organization_datalakeworkspacepermission) - [organization_dataprocessingconfiguration](#BKMK_organization_dataprocessingconfiguration) - [organization_delegatedauthorization](#BKMK_organization_delegatedauthorization) +- [organization_emailaddressconfiguration](#BKMK_organization_emailaddressconfiguration) - [organization_emailserverprofile](#BKMK_organization_emailserverprofile) - [organization_entityanalyticsconfig](#BKMK_organization_entityanalyticsconfig) +- [organization_entityclusterconfig](#BKMK_organization_entityclusterconfig) - [organization_entitydataprovider](#BKMK_organization_entitydataprovider) - [organization_entityrecordfilter](#BKMK_organization_entityrecordfilter) - [organization_expiredprocess](#BKMK_organization_expiredprocess) @@ -8908,6 +9052,18 @@ Many-To-One Relationship: [delegatedauthorization organization_delegatedauthoriz |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### organization_emailaddressconfiguration + +Many-To-One Relationship: [emailaddressconfiguration organization_emailaddressconfiguration](emailaddressconfiguration.md#BKMK_organization_emailaddressconfiguration) + +|Property|Value| +|---|---| +|ReferencingEntity|`emailaddressconfiguration`| +|ReferencingAttribute|`organizationid`| +|ReferencedEntityNavigationPropertyName|`organization_emailaddressconfiguration`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### organization_emailserverprofile Many-To-One Relationship: [emailserverprofile organization_emailserverprofile](emailserverprofile.md#BKMK_organization_emailserverprofile) @@ -8932,6 +9088,18 @@ Many-To-One Relationship: [entityanalyticsconfig organization_entityanalyticscon |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### organization_entityclusterconfig + +Many-To-One Relationship: [entityclusterconfig organization_entityclusterconfig](entityclusterconfig.md#BKMK_organization_entityclusterconfig) + +|Property|Value| +|---|---| +|ReferencingEntity|`entityclusterconfig`| +|ReferencingAttribute|`organizationid`| +|ReferencedEntityNavigationPropertyName|`organization_entityclusterconfig`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### organization_entitydataprovider Many-To-One Relationship: [entitydataprovider organization_entitydataprovider](entitydataprovider.md#BKMK_organization_entitydataprovider) diff --git a/powerapps-docs/developer/data-platform/reference/entities/organizationdatasyncsubscription.md b/powerapps-docs/developer/data-platform/reference/entities/organizationdatasyncsubscription.md index 0786b44074..af442723f3 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/organizationdatasyncsubscription.md +++ b/powerapps-docs/developer/data-platform/reference/entities/organizationdatasyncsubscription.md @@ -524,7 +524,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |FormatName|Text| |ImeMode|Auto| |IsLocalizable|False| -|MaxLength|50000| +|MaxLength|300000| ### SubscriptionFnoTables @@ -541,7 +541,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |FormatName|Text| |ImeMode|Auto| |IsLocalizable|False| -|MaxLength|50000| +|MaxLength|300000| ### TimeZoneRuleVersionNumber @@ -572,7 +572,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |FormatName|Text| |ImeMode|Auto| |IsLocalizable|False| -|MaxLength|20000| +|MaxLength|300000| ### UnsubscribedFnoTables @@ -589,7 +589,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |FormatName|Text| |ImeMode|Auto| |IsLocalizable|False| -|MaxLength|20000| +|MaxLength|300000| ### UTCConversionTimeZoneCode diff --git a/powerapps-docs/developer/data-platform/reference/entities/owner.md b/powerapps-docs/developer/data-platform/reference/entities/owner.md index fca1f5e3d9..0b1e226e10 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/owner.md +++ b/powerapps-docs/developer/data-platform/reference/entities/owner.md @@ -140,7 +140,6 @@ These relationships are one-to-many. Listed by **SchemaName**. - [owner_activitypointers](#BKMK_owner_activitypointers) - [owner_adx_invitation](#BKMK_owner_adx_invitation) - [owner_adx_setting](#BKMK_owner_adx_setting) -- [owner_aiinsightcard](#BKMK_owner_aiinsightcard) - [owner_aiplugin](#BKMK_owner_aiplugin) - [owner_aipluginauth](#BKMK_owner_aipluginauth) - [owner_aipluginconversationstarter](#BKMK_owner_aipluginconversationstarter) @@ -157,10 +156,15 @@ These relationships are one-to-many. Listed by **SchemaName**. - [owner_annotations](#BKMK_owner_annotations) - [owner_appnotification](#BKMK_owner_appnotification) - [owner_appointments](#BKMK_owner_appointments) +- [owner_approvalprocess](#BKMK_owner_approvalprocess) +- [owner_approvalstageapproval](#BKMK_owner_approvalstageapproval) +- [owner_approvalstagecondition](#BKMK_owner_approvalstagecondition) +- [owner_approvalstageorder](#BKMK_owner_approvalstageorder) - [owner_asyncoperations](#BKMK_owner_asyncoperations) - [owner_bot](#BKMK_owner_bot) - [owner_botcomponent](#BKMK_owner_botcomponent) - [owner_botcomponentcollection](#BKMK_owner_botcomponentcollection) +- [owner_businessprocess](#BKMK_owner_businessprocess) - [owner_callbackregistration](#BKMK_owner_callbackregistration) - [owner_canvasapp](#BKMK_owner_canvasapp) - [owner_card](#BKMK_owner_card) @@ -198,6 +202,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [owner_federatedknowledgeconfiguration](#BKMK_owner_federatedknowledgeconfiguration) - [owner_federatedknowledgeentityconfiguration](#BKMK_owner_federatedknowledgeentityconfiguration) - [owner_feedback](#BKMK_owner_feedback) +- [owner_flowaggregation](#BKMK_owner_flowaggregation) - [owner_flowcapacityassignment](#BKMK_owner_flowcapacityassignment) - [owner_flowcredentialapplication](#BKMK_owner_flowcredentialapplication) - [owner_flowevent](#BKMK_owner_flowevent) @@ -217,6 +222,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [owner_importlogs](#BKMK_owner_importlogs) - [owner_importmaps](#BKMK_owner_importmaps) - [owner_imports](#BKMK_owner_imports) +- [owner_indexedtrait](#BKMK_owner_indexedtrait) - [owner_interactionforemail](#BKMK_owner_interactionforemail) - [owner_keyvaultreference](#BKMK_owner_keyvaultreference) - [owner_knowledgearticle](#BKMK_owner_knowledgearticle) @@ -232,6 +238,9 @@ These relationships are one-to-many. Listed by **SchemaName**. - [owner_msdyn_aibfeedbackloop](#BKMK_owner_msdyn_aibfeedbackloop) - [owner_msdyn_aibfile](#BKMK_owner_msdyn_aibfile) - [owner_msdyn_aibfileattacheddata](#BKMK_owner_msdyn_aibfileattacheddata) +- [owner_msdyn_aidataprocessingevent](#BKMK_owner_msdyn_aidataprocessingevent) +- [owner_msdyn_aievaluationconfiguration](#BKMK_owner_msdyn_aievaluationconfiguration) +- [owner_msdyn_aievaluationrun](#BKMK_owner_msdyn_aievaluationrun) - [owner_msdyn_aievent](#BKMK_owner_msdyn_aievent) - [owner_msdyn_aifptrainingdocument](#BKMK_owner_msdyn_aifptrainingdocument) - [owner_msdyn_aimodel](#BKMK_owner_msdyn_aimodel) @@ -240,6 +249,11 @@ These relationships are one-to-many. Listed by **SchemaName**. - [owner_msdyn_aiodtrainingboundingbox](#BKMK_owner_msdyn_aiodtrainingboundingbox) - [owner_msdyn_aiodtrainingimage](#BKMK_owner_msdyn_aiodtrainingimage) - [owner_msdyn_aitemplate](#BKMK_owner_msdyn_aitemplate) +- [owner_msdyn_aitestcase](#BKMK_owner_msdyn_aitestcase) +- [owner_msdyn_aitestcasedocument](#BKMK_owner_msdyn_aitestcasedocument) +- [owner_msdyn_aitestcaseinput](#BKMK_owner_msdyn_aitestcaseinput) +- [owner_msdyn_aitestrun](#BKMK_owner_msdyn_aitestrun) +- [owner_msdyn_aitestrunbatch](#BKMK_owner_msdyn_aitestrunbatch) - [owner_msdyn_analysiscomponent](#BKMK_owner_msdyn_analysiscomponent) - [owner_msdyn_analysisjob](#BKMK_owner_msdyn_analysisjob) - [owner_msdyn_analysisoverride](#BKMK_owner_msdyn_analysisoverride) @@ -334,7 +348,6 @@ These relationships are one-to-many. Listed by **SchemaName**. - [owner_powerpagessiteaifeedback](#BKMK_owner_powerpagessiteaifeedback) - [owner_principalentitybusinessunitmap](#BKMK_owner_principalentitybusinessunitmap) - [owner_privilegecheckerrun](#BKMK_owner_privilegecheckerrun) -- [owner_processorregistration](#BKMK_owner_processorregistration) - [owner_processsessions](#BKMK_owner_processsessions) - [owner_processstageparameter](#BKMK_owner_processstageparameter) - [owner_queues](#BKMK_owner_queues) @@ -347,11 +360,11 @@ These relationships are one-to-many. Listed by **SchemaName**. - [owner_retentionfailuredetail](#BKMK_owner_retentionfailuredetail) - [owner_retentionoperation](#BKMK_owner_retentionoperation) - [owner_retentionsuccessdetail](#BKMK_owner_retentionsuccessdetail) +- [owner_savingrule](#BKMK_owner_savingrule) - [owner_sharepointdocumentlocation](#BKMK_owner_sharepointdocumentlocation) - [owner_sharepointsite](#BKMK_owner_sharepointsite) - [owner_sideloadedaiplugin](#BKMK_owner_sideloadedaiplugin) - [owner_signal](#BKMK_owner_signal) -- [owner_signalregistration](#BKMK_owner_signalregistration) - [owner_slas](#BKMK_owner_slas) - [owner_socialactivities](#BKMK_owner_socialactivities) - [owner_SocialProfile](#BKMK_owner_SocialProfile) @@ -359,14 +372,19 @@ These relationships are one-to-many. Listed by **SchemaName**. - [owner_stagesolutionupload](#BKMK_owner_stagesolutionupload) - [owner_synapsedatabase](#BKMK_owner_synapsedatabase) - [owner_SyncError](#BKMK_owner_SyncError) +- [owner_tag](#BKMK_owner_tag) +- [owner_taggedflowsession](#BKMK_owner_taggedflowsession) +- [owner_taggedprocess](#BKMK_owner_taggedprocess) - [owner_tasks](#BKMK_owner_tasks) - [owner_templates](#BKMK_owner_templates) - [owner_trait](#BKMK_owner_trait) -- [owner_traitregistration](#BKMK_owner_traitregistration) +- [owner_unstructuredfilesearchentity](#BKMK_owner_unstructuredfilesearchentity) +- [owner_unstructuredfilesearchrecord](#BKMK_owner_unstructuredfilesearchrecord) - [owner_userform](#BKMK_owner_userform) - [owner_userquerys](#BKMK_owner_userquerys) - [owner_userqueryvisualizations](#BKMK_owner_userqueryvisualizations) - [owner_workflowbinary](#BKMK_owner_workflowbinary) +- [owner_workflowmetadata](#BKMK_owner_workflowmetadata) - [owner_workflows](#BKMK_owner_workflows) - [owner_workqueue](#BKMK_owner_workqueue) - [owner_workqueueitem](#BKMK_owner_workqueueitem) @@ -492,18 +510,6 @@ Many-To-One Relationship: [adx_setting owner_adx_setting](adx_setting.md#BKMK_ow |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### owner_aiinsightcard - -Many-To-One Relationship: [aiinsightcard owner_aiinsightcard](aiinsightcard.md#BKMK_owner_aiinsightcard) - -|Property|Value| -|---|---| -|ReferencingEntity|`aiinsightcard`| -|ReferencingAttribute|`ownerid`| -|ReferencedEntityNavigationPropertyName|`owner_aiinsightcard`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - ### owner_aiplugin Many-To-One Relationship: [aiplugin owner_aiplugin](aiplugin.md#BKMK_owner_aiplugin) @@ -696,6 +702,54 @@ Many-To-One Relationship: [appointment owner_appointments](appointment.md#BKMK_o |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### owner_approvalprocess + +Many-To-One Relationship: [approvalprocess owner_approvalprocess](approvalprocess.md#BKMK_owner_approvalprocess) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalprocess`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_approvalprocess`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### owner_approvalstageapproval + +Many-To-One Relationship: [approvalstageapproval owner_approvalstageapproval](approvalstageapproval.md#BKMK_owner_approvalstageapproval) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageapproval`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_approvalstageapproval`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### owner_approvalstagecondition + +Many-To-One Relationship: [approvalstagecondition owner_approvalstagecondition](approvalstagecondition.md#BKMK_owner_approvalstagecondition) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstagecondition`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_approvalstagecondition`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### owner_approvalstageorder + +Many-To-One Relationship: [approvalstageorder owner_approvalstageorder](approvalstageorder.md#BKMK_owner_approvalstageorder) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageorder`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_approvalstageorder`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### owner_asyncoperations Many-To-One Relationship: [asyncoperation owner_asyncoperations](asyncoperation.md#BKMK_owner_asyncoperations) @@ -744,6 +798,18 @@ Many-To-One Relationship: [botcomponentcollection owner_botcomponentcollection]( |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### owner_businessprocess + +Many-To-One Relationship: [businessprocess owner_businessprocess](businessprocess.md#BKMK_owner_businessprocess) + +|Property|Value| +|---|---| +|ReferencingEntity|`businessprocess`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_businessprocess`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### owner_callbackregistration Many-To-One Relationship: [callbackregistration owner_callbackregistration](callbackregistration.md#BKMK_owner_callbackregistration) @@ -1188,6 +1254,18 @@ Many-To-One Relationship: [feedback owner_feedback](feedback.md#BKMK_owner_feedb |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### owner_flowaggregation + +Many-To-One Relationship: [flowaggregation owner_flowaggregation](flowaggregation.md#BKMK_owner_flowaggregation) + +|Property|Value| +|---|---| +|ReferencingEntity|`flowaggregation`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_flowaggregation`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### owner_flowcapacityassignment Many-To-One Relationship: [flowcapacityassignment owner_flowcapacityassignment](flowcapacityassignment.md#BKMK_owner_flowcapacityassignment) @@ -1416,6 +1494,18 @@ Many-To-One Relationship: [import owner_imports](import.md#BKMK_owner_imports) |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### owner_indexedtrait + +Many-To-One Relationship: [indexedtrait owner_indexedtrait](indexedtrait.md#BKMK_owner_indexedtrait) + +|Property|Value| +|---|---| +|ReferencingEntity|`indexedtrait`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_indexedtrait`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### owner_interactionforemail Many-To-One Relationship: [interactionforemail owner_interactionforemail](interactionforemail.md#BKMK_owner_interactionforemail) @@ -1596,6 +1686,42 @@ Many-To-One Relationship: [msdyn_aibfileattacheddata owner_msdyn_aibfileattached |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### owner_msdyn_aidataprocessingevent + +Many-To-One Relationship: [msdyn_aidataprocessingevent owner_msdyn_aidataprocessingevent](msdyn_aidataprocessingevent.md#BKMK_owner_msdyn_aidataprocessingevent) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aidataprocessingevent`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_msdyn_aidataprocessingevent`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### owner_msdyn_aievaluationconfiguration + +Many-To-One Relationship: [msdyn_aievaluationconfiguration owner_msdyn_aievaluationconfiguration](msdyn_aievaluationconfiguration.md#BKMK_owner_msdyn_aievaluationconfiguration) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aievaluationconfiguration`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_msdyn_aievaluationconfiguration`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### owner_msdyn_aievaluationrun + +Many-To-One Relationship: [msdyn_aievaluationrun owner_msdyn_aievaluationrun](msdyn_aievaluationrun.md#BKMK_owner_msdyn_aievaluationrun) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aievaluationrun`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_msdyn_aievaluationrun`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### owner_msdyn_aievent Many-To-One Relationship: [msdyn_aievent owner_msdyn_aievent](msdyn_aievent.md#BKMK_owner_msdyn_aievent) @@ -1692,6 +1818,66 @@ Many-To-One Relationship: [msdyn_aitemplate owner_msdyn_aitemplate](msdyn_aitemp |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### owner_msdyn_aitestcase + +Many-To-One Relationship: [msdyn_aitestcase owner_msdyn_aitestcase](msdyn_aitestcase.md#BKMK_owner_msdyn_aitestcase) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestcase`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_msdyn_aitestcase`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### owner_msdyn_aitestcasedocument + +Many-To-One Relationship: [msdyn_aitestcasedocument owner_msdyn_aitestcasedocument](msdyn_aitestcasedocument.md#BKMK_owner_msdyn_aitestcasedocument) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestcasedocument`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_msdyn_aitestcasedocument`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### owner_msdyn_aitestcaseinput + +Many-To-One Relationship: [msdyn_aitestcaseinput owner_msdyn_aitestcaseinput](msdyn_aitestcaseinput.md#BKMK_owner_msdyn_aitestcaseinput) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestcaseinput`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_msdyn_aitestcaseinput`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### owner_msdyn_aitestrun + +Many-To-One Relationship: [msdyn_aitestrun owner_msdyn_aitestrun](msdyn_aitestrun.md#BKMK_owner_msdyn_aitestrun) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestrun`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_msdyn_aitestrun`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### owner_msdyn_aitestrunbatch + +Many-To-One Relationship: [msdyn_aitestrunbatch owner_msdyn_aitestrunbatch](msdyn_aitestrunbatch.md#BKMK_owner_msdyn_aitestrunbatch) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestrunbatch`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_msdyn_aitestrunbatch`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### owner_msdyn_analysiscomponent Many-To-One Relationship: [msdyn_analysiscomponent owner_msdyn_analysiscomponent](msdyn_analysiscomponent.md#BKMK_owner_msdyn_analysiscomponent) @@ -2820,18 +3006,6 @@ Many-To-One Relationship: [privilegecheckerrun owner_privilegecheckerrun](privil |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### owner_processorregistration - -Many-To-One Relationship: [processorregistration owner_processorregistration](processorregistration.md#BKMK_owner_processorregistration) - -|Property|Value| -|---|---| -|ReferencingEntity|`processorregistration`| -|ReferencingAttribute|`ownerid`| -|ReferencedEntityNavigationPropertyName|`owner_processorregistration`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - ### owner_processsessions Many-To-One Relationship: [processsession owner_processsessions](processsession.md#BKMK_owner_processsessions) @@ -2976,6 +3150,18 @@ Many-To-One Relationship: [retentionsuccessdetail owner_retentionsuccessdetail]( |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### owner_savingrule + +Many-To-One Relationship: [savingrule owner_savingrule](savingrule.md#BKMK_owner_savingrule) + +|Property|Value| +|---|---| +|ReferencingEntity|`savingrule`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_savingrule`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### owner_sharepointdocumentlocation Many-To-One Relationship: [sharepointdocumentlocation owner_sharepointdocumentlocation](sharepointdocumentlocation.md#BKMK_owner_sharepointdocumentlocation) @@ -3024,18 +3210,6 @@ Many-To-One Relationship: [signal owner_signal](signal.md#BKMK_owner_signal) |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### owner_signalregistration - -Many-To-One Relationship: [signalregistration owner_signalregistration](signalregistration.md#BKMK_owner_signalregistration) - -|Property|Value| -|---|---| -|ReferencingEntity|`signalregistration`| -|ReferencingAttribute|`ownerid`| -|ReferencedEntityNavigationPropertyName|`owner_signalregistration`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - ### owner_slas Many-To-One Relationship: [sla owner_slas](sla.md#BKMK_owner_slas) @@ -3120,6 +3294,42 @@ Many-To-One Relationship: [syncerror owner_SyncError](syncerror.md#BKMK_owner_Sy |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### owner_tag + +Many-To-One Relationship: [tag owner_tag](tag.md#BKMK_owner_tag) + +|Property|Value| +|---|---| +|ReferencingEntity|`tag`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_tag`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### owner_taggedflowsession + +Many-To-One Relationship: [taggedflowsession owner_taggedflowsession](taggedflowsession.md#BKMK_owner_taggedflowsession) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedflowsession`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_taggedflowsession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### owner_taggedprocess + +Many-To-One Relationship: [taggedprocess owner_taggedprocess](taggedprocess.md#BKMK_owner_taggedprocess) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedprocess`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_taggedprocess`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### owner_tasks Many-To-One Relationship: [task owner_tasks](task.md#BKMK_owner_tasks) @@ -3156,15 +3366,27 @@ Many-To-One Relationship: [trait owner_trait](trait.md#BKMK_owner_trait) |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### owner_traitregistration +### owner_unstructuredfilesearchentity + +Many-To-One Relationship: [unstructuredfilesearchentity owner_unstructuredfilesearchentity](unstructuredfilesearchentity.md#BKMK_owner_unstructuredfilesearchentity) + +|Property|Value| +|---|---| +|ReferencingEntity|`unstructuredfilesearchentity`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_unstructuredfilesearchentity`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### owner_unstructuredfilesearchrecord -Many-To-One Relationship: [traitregistration owner_traitregistration](traitregistration.md#BKMK_owner_traitregistration) +Many-To-One Relationship: [unstructuredfilesearchrecord owner_unstructuredfilesearchrecord](unstructuredfilesearchrecord.md#BKMK_owner_unstructuredfilesearchrecord) |Property|Value| |---|---| -|ReferencingEntity|`traitregistration`| +|ReferencingEntity|`unstructuredfilesearchrecord`| |ReferencingAttribute|`ownerid`| -|ReferencedEntityNavigationPropertyName|`owner_traitregistration`| +|ReferencedEntityNavigationPropertyName|`owner_unstructuredfilesearchrecord`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| @@ -3216,6 +3438,18 @@ Many-To-One Relationship: [workflowbinary owner_workflowbinary](workflowbinary.m |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### owner_workflowmetadata + +Many-To-One Relationship: [workflowmetadata owner_workflowmetadata](workflowmetadata.md#BKMK_owner_workflowmetadata) + +|Property|Value| +|---|---| +|ReferencingEntity|`workflowmetadata`| +|ReferencingAttribute|`ownerid`| +|ReferencedEntityNavigationPropertyName|`owner_workflowmetadata`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### owner_workflows Many-To-One Relationship: [workflow owner_workflows](workflow.md#BKMK_owner_workflows) diff --git a/powerapps-docs/developer/data-platform/reference/entities/plannerbusinessscenario.md b/powerapps-docs/developer/data-platform/reference/entities/plannerbusinessscenario.md index a21d723bbf..cfb261c0ca 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/plannerbusinessscenario.md +++ b/powerapps-docs/developer/data-platform/reference/entities/plannerbusinessscenario.md @@ -353,7 +353,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| diff --git a/powerapps-docs/developer/data-platform/reference/entities/plannersyncaction.md b/powerapps-docs/developer/data-platform/reference/entities/plannersyncaction.md index b5da10a9dc..9708843563 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/plannersyncaction.md +++ b/powerapps-docs/developer/data-platform/reference/entities/plannersyncaction.md @@ -547,7 +547,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| diff --git a/powerapps-docs/developer/data-platform/reference/entities/plugin.md b/powerapps-docs/developer/data-platform/reference/entities/plugin.md index 81cfd00068..527b21b172 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/plugin.md +++ b/powerapps-docs/developer/data-platform/reference/entities/plugin.md @@ -135,7 +135,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Value|Label| |---|---| |100000000|**PoweFx**| -|100000001|**C#**| +|100000001|**C\#**| ### name diff --git a/powerapps-docs/developer/data-platform/reference/entities/powerpagecomponent.md b/powerapps-docs/developer/data-platform/reference/entities/powerpagecomponent.md index 533115a236..f487fb217a 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/powerpagecomponent.md +++ b/powerapps-docs/developer/data-platform/reference/entities/powerpagecomponent.md @@ -1019,7 +1019,7 @@ See [contact powerpagecomponent_mspp_webrole_contact Many-To-Many Relationship]( |SchemaName|`powerpagecomponent_mspp_webrole_contact`| |IntersectAttribute|`powerpagecomponentid`| |NavigationPropertyName|`powerpagecomponent_mspp_webrole_contact`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order: 103100
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 103100
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| ### powerpagecomponent_powerpagecomponent diff --git a/powerapps-docs/developer/data-platform/reference/entities/powerpagesmanagedidentity.md b/powerapps-docs/developer/data-platform/reference/entities/powerpagesmanagedidentity.md index 719eefe75c..ad8f669f99 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/powerpagesmanagedidentity.md +++ b/powerapps-docs/developer/data-platform/reference/entities/powerpagesmanagedidentity.md @@ -620,8 +620,8 @@ Many-To-One Relationship: [certificatecredential ComponentId_CertificateCredenti |ReferencingEntity|`certificatecredential`| |ReferencingAttribute|`componentid`| |ReferencedEntityNavigationPropertyName|`ComponentId_CertificateCredential_PowerPagesManagedIdentity`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10001
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| ### powerpagesmanagedidentity_AsyncOperations diff --git a/powerapps-docs/developer/data-platform/reference/entities/principalobjectattributeaccess.md b/powerapps-docs/developer/data-platform/reference/entities/principalobjectattributeaccess.md index 3246298683..745997c050 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/principalobjectattributeaccess.md +++ b/powerapps-docs/developer/data-platform/reference/entities/principalobjectattributeaccess.md @@ -81,7 +81,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |LogicalName|`objectid`| |RequiredLevel|SystemRequired| |Type|Lookup| -|Targets|account, activityfileattachment, adx_externalidentity, adx_invitation, adx_inviteredemption, adx_portalcomment, adx_setting, adx_webformsession, aicopilot, aiinsightcard, aiplugin, aipluginauth, aipluginconversationstarter, aipluginconversationstartermapping, aipluginexternalschema, aipluginexternalschemaproperty, aiplugingovernance, aiplugingovernanceext, aiplugininstance, aipluginoperation, aipluginoperationparameter, aipluginoperationresponsetemplate, aiplugintitle, aipluginusersetting, aiskillconfig, appaction, appactionmigration, appactionrule, appelement, application, applicationuser, appmodulecomponentedge, appmodulecomponentnode, appointment, appsetting, appusersetting, archivecleanupinfo, archivecleanupoperation, attributeimageconfig, attributemaskingrule, attributepicklistvalue, bot, botcomponent, botcomponentcollection, bulkarchiveconfig, bulkarchivefailuredetail, bulkarchiveoperation, bulkarchiveoperationdetail, businessunit, canvasappextendedmetadata, card, cascadegrantrevokeaccessrecordstracker, cascadegrantrevokeaccessversiontracker, catalog, catalogassignment, certificatecredential, channelaccessprofile, chat, comment, connection, connectioninstance, connectionreference, connector, contact, conversationtranscript, copilotexamplequestion, copilotglossaryterm, copilotsynonyms, credential, customapi, customapirequestparameter, customapiresponseproperty, customeraddress, datalakefolder, datalakefolderpermission, datalakeworkspace, datalakeworkspacepermission, dataprocessingconfiguration, delegatedauthorization, deleteditemreference, desktopflowbinary, desktopflowmodule, dvfilesearch, dvfilesearchattribute, dvfilesearchentity, dvtablesearch, dvtablesearchattribute, dvtablesearchentity, email, enablearchivalrequest, entityanalyticsconfig, entityimageconfig, entityindex, entityrecordfilter, environmentvariabledefinition, environmentvariablevalue, exportedexcel, exportsolutionupload, fabricaiskill, fax, featurecontrolsetting, federatedknowledgeconfiguration, federatedknowledgeentityconfiguration, feedback, flowcapacityassignment, flowcredentialapplication, flowevent, flowmachine, flowmachinegroup, flowmachineimage, flowmachineimageversion, flowmachinenetwork, flowsession, fxexpression, goal, governanceconfiguration, holidaywrapper, indexattributes, internalcatalogassignment, kbarticle, keyvaultreference, knowledgearticle, knowledgearticleviews, knowledgebaserecord, letter, mailmergetemplate, mainfewshot, makerfewshot, managedidentity, maskingrule, metadataforarchival, mobileofflineprofileextension, msdynce_botcontent, msdyn_aibdataset, msdyn_aibdatasetfile, msdyn_aibdatasetrecord, msdyn_aibdatasetscontainer, msdyn_aibfeedbackloop, msdyn_aibfile, msdyn_aibfileattacheddata, msdyn_aiconfiguration, msdyn_aievent, msdyn_aifptrainingdocument, msdyn_aimodel, msdyn_aiodimage, msdyn_aiodlabel, msdyn_aiodtrainingboundingbox, msdyn_aiodtrainingimage, msdyn_aitemplate, msdyn_analysiscomponent, msdyn_analysisjob, msdyn_analysisoverride, msdyn_analysisresult, msdyn_analysisresultdetail, msdyn_appinsightsmetadata, msdyn_copilotinteractions, msdyn_customcontrolextendedsettings, msdyn_dataflow, msdyn_dataflowconnectionreference, msdyn_dataflowrefreshhistory, msdyn_dataflowtemplate, msdyn_dataflow_datalakefolder, msdyn_dmsrequest, msdyn_dmsrequeststatus, msdyn_dmssyncrequest, msdyn_dmssyncstatus, msdyn_entitylinkchatconfiguration, msdyn_entityrefreshhistory, msdyn_favoriteknowledgearticle, msdyn_federatedarticle, msdyn_federatedarticleincident, msdyn_fileupload, msdyn_flow_actionapprovalmodel, msdyn_flow_approval, msdyn_flow_approvalrequest, msdyn_flow_approvalresponse, msdyn_flow_approvalstep, msdyn_flow_awaitallactionapprovalmodel, msdyn_flow_awaitallapprovalmodel, msdyn_flow_basicapprovalmodel, msdyn_flow_flowapproval, msdyn_formmapping, msdyn_function, msdyn_helppage, msdyn_insightsstorevirtualentity, msdyn_integratedsearchprovider, msdyn_kalanguagesetting, msdyn_kbattachment, msdyn_kmfederatedsearchconfig, msdyn_kmpersonalizationsetting, msdyn_knowledgearticleimage, msdyn_knowledgearticletemplate, msdyn_knowledgeassetconfiguration, msdyn_knowledgeconfiguration, msdyn_knowledgeinteractioninsight, msdyn_knowledgemanagementsetting, msdyn_knowledgepersonalfilter, msdyn_knowledgesearchfilter, msdyn_knowledgesearchinsight, msdyn_mobileapp, msdyn_modulerundetail, msdyn_pmanalysishistory, msdyn_pmbusinessruleautomationconfig, msdyn_pmcalendar, msdyn_pmcalendarversion, msdyn_pminferredtask, msdyn_pmprocessextendedmetadataversion, msdyn_pmprocesstemplate, msdyn_pmprocessusersettings, msdyn_pmprocessversion, msdyn_pmrecording, msdyn_pmsimulation, msdyn_pmtemplate, msdyn_pmview, msdyn_qna, msdyn_richtextfile, msdyn_salesforcestructuredobject, msdyn_salesforcestructuredqnaconfig, msdyn_schedule, msdyn_serviceconfiguration, msdyn_slakpi, msdyn_solutionhealthrule, msdyn_solutionhealthruleargument, msdyn_solutionhealthruleset, msdyn_tour, msdyn_virtualtablecolumncandidate, msdyn_workflowactionstatus, msgraphresourcetosubscription, mspcat_catalogsubmissionfiles, mspcat_packagestore, organizationdatasyncfnostate, organizationdatasyncstate, organizationdatasyncsubscription, organizationdatasyncsubscriptionentity, organizationdatasyncsubscriptionfnotable, organizationsetting, package, packagehistory, pdfsetting, phonecall, plannerbusinessscenario, plannersyncaction, plugin, pluginpackage, position, powerbidataset, powerbidatasetapdx, powerbimashupparameter, powerbireport, powerbireportapdx, powerfxrule, powerpagecomponent, powerpagesite, powerpagesitelanguage, powerpagesitepublished, powerpagesmanagedidentity, powerpagesscanreport, privilegecheckerlog, privilegecheckerrun, privilegesremovalsetting, processorregistration, processstageparameter, provisionlanguageforuser, queue, queueitem, reconciliationentityinfo, reconciliationentitystepinfo, reconciliationinfo, recordfilter, recurringappointmentmaster, recyclebinconfig, relationshipattribute, reportcategory, reportparameter, retaineddataexcel, retentioncleanupinfo, retentioncleanupoperation, retentionconfig, retentionfailuredetail, retentionoperation, retentionoperationdetail, retentionsuccessdetail, revokeinheritedaccessrecordstracker, roleeditorlayout, searchattributesettings, searchcustomanalyzer, searchrelationshipsettings, serviceplan, serviceplancustomcontrol, serviceplanmapping, settingdefinition, sharedlinksetting, sharedobject, sharedworkspace, sharedworkspacepool, sharepointdocumentlocation, sharepointmanagedidentity, sharepointsite, sideloadedaiplugin, signalregistration, socialactivity, socialprofile, solutioncomponentattributeconfiguration, solutioncomponentbatchconfiguration, solutioncomponentconfiguration, solutioncomponentrelationshipconfiguration, stagedentity, stagedentityattribute, stagedmetadataasyncoperation, stagesolutionupload, supportusertable, synapsedatabase, synapselinkexternaltablestate, synapselinkprofile, synapselinkprofileentity, synapselinkprofileentitystate, synapselinkschedule, systemuser, systemuserauthorizationchangetracker, task, tdsmetadata, team, teammobileofflineprofilemembership, territory, traitregistration, usermobileofflineprofilemembership, userrating, viewasexamplequestion, virtualentitymetadata, workflowbinary, workqueue, workqueueitem| +|Targets|account, activityfileattachment, adx_externalidentity, adx_invitation, adx_inviteredemption, adx_portalcomment, adx_setting, adx_webformsession, aicopilot, aiinsightcard, aiplugin, aipluginauth, aipluginconversationstarter, aipluginconversationstartermapping, aipluginexternalschema, aipluginexternalschemaproperty, aiplugingovernance, aiplugingovernanceext, aiplugininstance, aipluginoperation, aipluginoperationparameter, aipluginoperationresponsetemplate, aiplugintitle, aipluginusersetting, aiskillconfig, appaction, appactionmigration, appactionrule, appelement, application, applicationuser, appmodulecomponentedge, appmodulecomponentnode, appointment, approvalprocess, approvalstageapproval, approvalstagecondition, approvalstageorder, appsetting, appusersetting, archivecleanupinfo, archivecleanupoperation, attributeimageconfig, attributemaskingrule, attributepicklistvalue, bot, botcomponent, botcomponentcollection, bulkarchiveconfig, bulkarchivefailuredetail, bulkarchiveoperation, bulkarchiveoperationdetail, businessprocess, businessunit, canvasappextendedmetadata, card, cascadegrantrevokeaccessrecordstracker, cascadegrantrevokeaccessversiontracker, catalog, catalogassignment, certificatecredential, channelaccessprofile, chat, comment, connection, connectioninstance, connectionreference, connector, contact, conversationtranscript, copilotexamplequestion, copilotglossaryterm, copilotsynonyms, credential, customapi, customapirequestparameter, customapiresponseproperty, customeraddress, datalakefolder, datalakefolderpermission, datalakeworkspace, datalakeworkspacepermission, dataprocessingconfiguration, delegatedauthorization, deleteditemreference, desktopflowbinary, desktopflowmodule, dvfilesearch, dvfilesearchattribute, dvfilesearchentity, dvtablesearch, dvtablesearchattribute, dvtablesearchentity, email, emailaddressconfiguration, enablearchivalrequest, entityanalyticsconfig, entityclusterconfig, entityimageconfig, entityindex, entityrecordfilter, environmentvariabledefinition, environmentvariablevalue, exportedexcel, exportsolutionupload, fabricaiskill, fax, featurecontrolsetting, federatedknowledgecitation, federatedknowledgeconfiguration, federatedknowledgeentityconfiguration, federatedknowledgemetadatarefresh, feedback, flowcapacityassignment, flowcredentialapplication, flowevent, flowmachine, flowmachinegroup, flowmachineimage, flowmachineimageversion, flowmachinenetwork, flowsession, fxexpression, goal, governanceconfiguration, holidaywrapper, indexattributes, internalcatalogassignment, kbarticle, keyvaultreference, knowledgearticle, knowledgearticleviews, knowledgebaserecord, letter, mailmergetemplate, mainfewshot, makerfewshot, managedidentity, maskingrule, metadataforarchival, mobileofflineprofileextension, msdynce_botcontent, msdyn_aibdataset, msdyn_aibdatasetfile, msdyn_aibdatasetrecord, msdyn_aibdatasetscontainer, msdyn_aibfeedbackloop, msdyn_aibfile, msdyn_aibfileattacheddata, msdyn_aiconfiguration, msdyn_aidataprocessingevent, msdyn_aievaluationconfiguration, msdyn_aievaluationrun, msdyn_aievent, msdyn_aifptrainingdocument, msdyn_aimodel, msdyn_aimodelcatalog, msdyn_aiodimage, msdyn_aiodlabel, msdyn_aiodtrainingboundingbox, msdyn_aiodtrainingimage, msdyn_aitemplate, msdyn_aitestcase, msdyn_aitestcasedocument, msdyn_aitestcaseinput, msdyn_aitestrun, msdyn_aitestrunbatch, msdyn_analysiscomponent, msdyn_analysisjob, msdyn_analysisoverride, msdyn_analysisresult, msdyn_analysisresultdetail, msdyn_appinsightsmetadata, msdyn_copilotinteractions, msdyn_customcontrolextendedsettings, msdyn_dataflow, msdyn_dataflowconnectionreference, msdyn_dataflowrefreshhistory, msdyn_dataflowtemplate, msdyn_dataflow_datalakefolder, msdyn_dataworkspace, msdyn_dmsrequest, msdyn_dmsrequeststatus, msdyn_dmssyncrequest, msdyn_dmssyncstatus, msdyn_entitylinkchatconfiguration, msdyn_entityrefreshhistory, msdyn_favoriteknowledgearticle, msdyn_federatedarticle, msdyn_federatedarticleincident, msdyn_fileupload, msdyn_flow_actionapprovalmodel, msdyn_flow_approval, msdyn_flow_approvalrequest, msdyn_flow_approvalresponse, msdyn_flow_approvalstep, msdyn_flow_awaitallactionapprovalmodel, msdyn_flow_awaitallapprovalmodel, msdyn_flow_basicapprovalmodel, msdyn_flow_flowapproval, msdyn_formmapping, msdyn_function, msdyn_helppage, msdyn_insightsstorevirtualentity, msdyn_integratedsearchprovider, msdyn_kalanguagesetting, msdyn_kbattachment, msdyn_kmfederatedsearchconfig, msdyn_kmpersonalizationsetting, msdyn_knowledgearticleimage, msdyn_knowledgearticletemplate, msdyn_knowledgeassetconfiguration, msdyn_knowledgeconfiguration, msdyn_knowledgeinteractioninsight, msdyn_knowledgemanagementsetting, msdyn_knowledgepersonalfilter, msdyn_knowledgesearchfilter, msdyn_knowledgesearchinsight, msdyn_mobileapp, msdyn_modulerundetail, msdyn_plan, msdyn_planartifact, msdyn_planattachment, msdyn_pmanalysishistory, msdyn_pmbusinessruleautomationconfig, msdyn_pmcalendar, msdyn_pmcalendarversion, msdyn_pminferredtask, msdyn_pmprocessextendedmetadataversion, msdyn_pmprocesstemplate, msdyn_pmprocessusersettings, msdyn_pmprocessversion, msdyn_pmrecording, msdyn_pmsimulation, msdyn_pmtemplate, msdyn_pmview, msdyn_qna, msdyn_richtextfile, msdyn_salesforcestructuredobject, msdyn_salesforcestructuredqnaconfig, msdyn_schedule, msdyn_serviceconfiguration, msdyn_slakpi, msdyn_solutionhealthrule, msdyn_solutionhealthruleargument, msdyn_solutionhealthruleset, msdyn_tour, msdyn_virtualtablecolumncandidate, msdyn_workflowactionstatus, msgraphresourcetosubscription, mspcat_catalogsubmissionfiles, mspcat_packagestore, organizationdatasyncfnostate, organizationdatasyncstate, organizationdatasyncsubscription, organizationdatasyncsubscriptionentity, organizationdatasyncsubscriptionfnotable, organizationsetting, package, packagehistory, pdfsetting, phonecall, plannerbusinessscenario, plannersyncaction, plugin, pluginpackage, position, powerbidataset, powerbidatasetapdx, powerbimashupparameter, powerbireport, powerbireportapdx, powerfxrule, powerpagecomponent, powerpagesite, powerpagesitelanguage, powerpagesitepublished, powerpagesmanagedidentity, powerpagesscanreport, privilegecheckerlog, privilegecheckerrun, privilegesremovalsetting, processorregistration, processstageparameter, provisionlanguageforuser, queue, queueitem, reconciliationentityinfo, reconciliationentitystepinfo, reconciliationinfo, recordfilter, recurringappointmentmaster, recyclebinconfig, relationshipattribute, reportcategory, reportparameter, retaineddataexcel, retentioncleanupinfo, retentioncleanupoperation, retentionconfig, retentionfailuredetail, retentionoperation, retentionoperationdetail, retentionsuccessdetail, revokeinheritedaccessrecordstracker, roleeditorlayout, savingrule, searchattributesettings, searchcustomanalyzer, searchrelationshipsettings, serviceplan, serviceplancustomcontrol, serviceplanmapping, settingdefinition, sharedlinksetting, sharedobject, sharedworkspace, sharedworkspacepool, sharepointdocumentlocation, sharepointmanagedidentity, sharepointsite, sideloadedaiplugin, signalregistration, socialactivity, socialprofile, solutioncomponentattributeconfiguration, solutioncomponentbatchconfiguration, solutioncomponentconfiguration, solutioncomponentrelationshipconfiguration, stagedentity, stagedentityattribute, stagedmetadataasyncoperation, stagesolutionupload, supportusertable, synapsedatabase, synapselinkexternaltablestate, synapselinkprofile, synapselinkprofileentity, synapselinkprofileentitystate, synapselinkschedule, systemuser, systemuserauthorizationchangetracker, tag, taggedflowsession, taggedprocess, task, tdsmetadata, team, teammobileofflineprofilemembership, territory, traitregistration, unstructuredfilesearchentity, unstructuredfilesearchrecord, usermobileofflineprofilemembership, userrating, viewasexamplequestion, virtualentitymetadata, workflowbinary, workflowmetadata, workqueue, workqueueitem| ### ObjectTypeCode @@ -212,7 +212,6 @@ These relationships are many-to-one. Listed by **SchemaName**. - [adx_setting_PrincipalObjectAttributeAccesses](#BKMK_adx_setting_PrincipalObjectAttributeAccesses) - [adx_webformsession_PrincipalObjectAttributeAccesses](#BKMK_adx_webformsession_PrincipalObjectAttributeAccesses) - [aicopilot_PrincipalObjectAttributeAccesses](#BKMK_aicopilot_PrincipalObjectAttributeAccesses) -- [aiinsightcard_PrincipalObjectAttributeAccesses](#BKMK_aiinsightcard_PrincipalObjectAttributeAccesses) - [aiplugin_PrincipalObjectAttributeAccesses](#BKMK_aiplugin_PrincipalObjectAttributeAccesses) - [aipluginauth_PrincipalObjectAttributeAccesses](#BKMK_aipluginauth_PrincipalObjectAttributeAccesses) - [aipluginconversationstarter_PrincipalObjectAttributeAccesses](#BKMK_aipluginconversationstarter_PrincipalObjectAttributeAccesses) @@ -233,12 +232,17 @@ These relationships are many-to-one. Listed by **SchemaName**. - [application_PrincipalObjectAttributeAccesses](#BKMK_application_PrincipalObjectAttributeAccesses) - [applicationuser_PrincipalObjectAttributeAccesses](#BKMK_applicationuser_PrincipalObjectAttributeAccesses) - [appointment_principalobjectattributeaccess](#BKMK_appointment_principalobjectattributeaccess) +- [approvalprocess_PrincipalObjectAttributeAccesses](#BKMK_approvalprocess_PrincipalObjectAttributeAccesses) +- [approvalstageapproval_PrincipalObjectAttributeAccesses](#BKMK_approvalstageapproval_PrincipalObjectAttributeAccesses) +- [approvalstagecondition_PrincipalObjectAttributeAccesses](#BKMK_approvalstagecondition_PrincipalObjectAttributeAccesses) +- [approvalstageorder_PrincipalObjectAttributeAccesses](#BKMK_approvalstageorder_PrincipalObjectAttributeAccesses) - [attributeimageconfig_PrincipalObjectAttributeAccesses](#BKMK_attributeimageconfig_PrincipalObjectAttributeAccesses) - [attributemaskingrule_PrincipalObjectAttributeAccesses](#BKMK_attributemaskingrule_PrincipalObjectAttributeAccesses) - [attributepicklistvalue_PrincipalObjectAttributeAccesses](#BKMK_attributepicklistvalue_PrincipalObjectAttributeAccesses) - [bot_PrincipalObjectAttributeAccesses](#BKMK_bot_PrincipalObjectAttributeAccesses) - [botcomponent_PrincipalObjectAttributeAccesses](#BKMK_botcomponent_PrincipalObjectAttributeAccesses) - [botcomponentcollection_PrincipalObjectAttributeAccesses](#BKMK_botcomponentcollection_PrincipalObjectAttributeAccesses) +- [businessprocess_PrincipalObjectAttributeAccesses](#BKMK_businessprocess_PrincipalObjectAttributeAccesses) - [businessunit_principalobjectattributeaccess](#BKMK_businessunit_principalobjectattributeaccess) - [card_PrincipalObjectAttributeAccesses](#BKMK_card_PrincipalObjectAttributeAccesses) - [catalog_PrincipalObjectAttributeAccesses](#BKMK_catalog_PrincipalObjectAttributeAccesses) @@ -274,7 +278,9 @@ These relationships are many-to-one. Listed by **SchemaName**. - [dvtablesearchattribute_PrincipalObjectAttributeAccesses](#BKMK_dvtablesearchattribute_PrincipalObjectAttributeAccesses) - [dvtablesearchentity_PrincipalObjectAttributeAccesses](#BKMK_dvtablesearchentity_PrincipalObjectAttributeAccesses) - [email_principalobjectattributeaccess](#BKMK_email_principalobjectattributeaccess) +- [emailaddressconfiguration_PrincipalObjectAttributeAccesses](#BKMK_emailaddressconfiguration_PrincipalObjectAttributeAccesses) - [entityanalyticsconfig_PrincipalObjectAttributeAccesses](#BKMK_entityanalyticsconfig_PrincipalObjectAttributeAccesses) +- [entityclusterconfig_PrincipalObjectAttributeAccesses](#BKMK_entityclusterconfig_PrincipalObjectAttributeAccesses) - [entityimageconfig_PrincipalObjectAttributeAccesses](#BKMK_entityimageconfig_PrincipalObjectAttributeAccesses) - [entityindex_PrincipalObjectAttributeAccesses](#BKMK_entityindex_PrincipalObjectAttributeAccesses) - [entityrecordfilter_PrincipalObjectAttributeAccesses](#BKMK_entityrecordfilter_PrincipalObjectAttributeAccesses) @@ -323,6 +329,9 @@ These relationships are many-to-one. Listed by **SchemaName**. - [msdyn_aibfile_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aibfile_PrincipalObjectAttributeAccesses) - [msdyn_aibfileattacheddata_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aibfileattacheddata_PrincipalObjectAttributeAccesses) - [msdyn_aiconfiguration_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aiconfiguration_PrincipalObjectAttributeAccesses) +- [msdyn_aidataprocessingevent_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aidataprocessingevent_PrincipalObjectAttributeAccesses) +- [msdyn_aievaluationconfiguration_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aievaluationconfiguration_PrincipalObjectAttributeAccesses) +- [msdyn_aievaluationrun_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aievaluationrun_PrincipalObjectAttributeAccesses) - [msdyn_aievent_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aievent_PrincipalObjectAttributeAccesses) - [msdyn_aifptrainingdocument_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aifptrainingdocument_PrincipalObjectAttributeAccesses) - [msdyn_aimodel_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aimodel_PrincipalObjectAttributeAccesses) @@ -331,6 +340,11 @@ These relationships are many-to-one. Listed by **SchemaName**. - [msdyn_aiodtrainingboundingbox_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aiodtrainingboundingbox_PrincipalObjectAttributeAccesses) - [msdyn_aiodtrainingimage_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aiodtrainingimage_PrincipalObjectAttributeAccesses) - [msdyn_aitemplate_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aitemplate_PrincipalObjectAttributeAccesses) +- [msdyn_aitestcase_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aitestcase_PrincipalObjectAttributeAccesses) +- [msdyn_aitestcasedocument_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aitestcasedocument_PrincipalObjectAttributeAccesses) +- [msdyn_aitestcaseinput_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aitestcaseinput_PrincipalObjectAttributeAccesses) +- [msdyn_aitestrun_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aitestrun_PrincipalObjectAttributeAccesses) +- [msdyn_aitestrunbatch_PrincipalObjectAttributeAccesses](#BKMK_msdyn_aitestrunbatch_PrincipalObjectAttributeAccesses) - [msdyn_analysiscomponent_PrincipalObjectAttributeAccesses](#BKMK_msdyn_analysiscomponent_PrincipalObjectAttributeAccesses) - [msdyn_analysisjob_PrincipalObjectAttributeAccesses](#BKMK_msdyn_analysisjob_PrincipalObjectAttributeAccesses) - [msdyn_analysisoverride_PrincipalObjectAttributeAccesses](#BKMK_msdyn_analysisoverride_PrincipalObjectAttributeAccesses) @@ -441,7 +455,6 @@ These relationships are many-to-one. Listed by **SchemaName**. - [privilegecheckerlog_PrincipalObjectAttributeAccesses](#BKMK_privilegecheckerlog_PrincipalObjectAttributeAccesses) - [privilegecheckerrun_PrincipalObjectAttributeAccesses](#BKMK_privilegecheckerrun_PrincipalObjectAttributeAccesses) - [privilegesremovalsetting_PrincipalObjectAttributeAccesses](#BKMK_privilegesremovalsetting_PrincipalObjectAttributeAccesses) -- [processorregistration_PrincipalObjectAttributeAccesses](#BKMK_processorregistration_PrincipalObjectAttributeAccesses) - [processstageparameter_PrincipalObjectAttributeAccesses](#BKMK_processstageparameter_PrincipalObjectAttributeAccesses) - [provisionlanguageforuser_PrincipalObjectAttributeAccesses](#BKMK_provisionlanguageforuser_PrincipalObjectAttributeAccesses) - [queue_principalobjectattributeaccess](#BKMK_queue_principalobjectattributeaccess) @@ -459,6 +472,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [retentionoperationdetail_PrincipalObjectAttributeAccesses](#BKMK_retentionoperationdetail_PrincipalObjectAttributeAccesses) - [retentionsuccessdetail_PrincipalObjectAttributeAccesses](#BKMK_retentionsuccessdetail_PrincipalObjectAttributeAccesses) - [roleeditorlayout_PrincipalObjectAttributeAccesses](#BKMK_roleeditorlayout_PrincipalObjectAttributeAccesses) +- [savingrule_PrincipalObjectAttributeAccesses](#BKMK_savingrule_PrincipalObjectAttributeAccesses) - [searchattributesettings_PrincipalObjectAttributeAccesses](#BKMK_searchattributesettings_PrincipalObjectAttributeAccesses) - [searchcustomanalyzer_PrincipalObjectAttributeAccesses](#BKMK_searchcustomanalyzer_PrincipalObjectAttributeAccesses) - [searchrelationshipsettings_PrincipalObjectAttributeAccesses](#BKMK_searchrelationshipsettings_PrincipalObjectAttributeAccesses) @@ -472,7 +486,6 @@ These relationships are many-to-one. Listed by **SchemaName**. - [sharepointmanagedidentity_PrincipalObjectAttributeAccesses](#BKMK_sharepointmanagedidentity_PrincipalObjectAttributeAccesses) - [sharepointsite_principalobjectattributeaccess](#BKMK_sharepointsite_principalobjectattributeaccess) - [sideloadedaiplugin_PrincipalObjectAttributeAccesses](#BKMK_sideloadedaiplugin_PrincipalObjectAttributeAccesses) -- [signalregistration_PrincipalObjectAttributeAccesses](#BKMK_signalregistration_PrincipalObjectAttributeAccesses) - [socialactivity_principalobjectattributeaccess](#BKMK_socialactivity_principalobjectattributeaccess) - [socialprofile_principalobjectattributeaccess](#BKMK_socialprofile_principalobjectattributeaccess) - [solutioncomponentattributeconfiguration_PrincipalObjectAttributeAccesses](#BKMK_solutioncomponentattributeconfiguration_PrincipalObjectAttributeAccesses) @@ -493,17 +506,22 @@ These relationships are many-to-one. Listed by **SchemaName**. - [systemuser_principalobjectattributeaccess](#BKMK_systemuser_principalobjectattributeaccess) - [systemuser_principalobjectattributeaccess_principalid](#BKMK_systemuser_principalobjectattributeaccess_principalid) - [systemuserauthorizationchangetracker_PrincipalObjectAttributeAccesses](#BKMK_systemuserauthorizationchangetracker_PrincipalObjectAttributeAccesses) +- [tag_PrincipalObjectAttributeAccesses](#BKMK_tag_PrincipalObjectAttributeAccesses) +- [taggedflowsession_PrincipalObjectAttributeAccesses](#BKMK_taggedflowsession_PrincipalObjectAttributeAccesses) +- [taggedprocess_PrincipalObjectAttributeAccesses](#BKMK_taggedprocess_PrincipalObjectAttributeAccesses) - [task_principalobjectattributeaccess](#BKMK_task_principalobjectattributeaccess) - [team_principalobjectattributeaccess](#BKMK_team_principalobjectattributeaccess) - [team_principalobjectattributeaccess_principalid](#BKMK_team_principalobjectattributeaccess_principalid) - [teammobileofflineprofilemembership_PrincipalObjectAttributeAccesses](#BKMK_teammobileofflineprofilemembership_PrincipalObjectAttributeAccesses) - [territory_principalobjectattributeaccess](#BKMK_territory_principalobjectattributeaccess) -- [traitregistration_PrincipalObjectAttributeAccesses](#BKMK_traitregistration_PrincipalObjectAttributeAccesses) +- [unstructuredfilesearchentity_PrincipalObjectAttributeAccesses](#BKMK_unstructuredfilesearchentity_PrincipalObjectAttributeAccesses) +- [unstructuredfilesearchrecord_PrincipalObjectAttributeAccesses](#BKMK_unstructuredfilesearchrecord_PrincipalObjectAttributeAccesses) - [usermobileofflineprofilemembership_PrincipalObjectAttributeAccesses](#BKMK_usermobileofflineprofilemembership_PrincipalObjectAttributeAccesses) - [userrating_PrincipalObjectAttributeAccesses](#BKMK_userrating_PrincipalObjectAttributeAccesses) - [viewasexamplequestion_PrincipalObjectAttributeAccesses](#BKMK_viewasexamplequestion_PrincipalObjectAttributeAccesses) - [virtualentitymetadata_PrincipalObjectAttributeAccesses](#BKMK_virtualentitymetadata_PrincipalObjectAttributeAccesses) - [workflowbinary_PrincipalObjectAttributeAccesses](#BKMK_workflowbinary_PrincipalObjectAttributeAccesses) +- [workflowmetadata_PrincipalObjectAttributeAccesses](#BKMK_workflowmetadata_PrincipalObjectAttributeAccesses) - [workqueue_PrincipalObjectAttributeAccesses](#BKMK_workqueue_PrincipalObjectAttributeAccesses) - [workqueueitem_PrincipalObjectAttributeAccesses](#BKMK_workqueueitem_PrincipalObjectAttributeAccesses) @@ -624,19 +642,6 @@ One-To-Many Relationship: [aicopilot aicopilot_PrincipalObjectAttributeAccesses] |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### aiinsightcard_PrincipalObjectAttributeAccesses - -One-To-Many Relationship: [aiinsightcard aiinsightcard_PrincipalObjectAttributeAccesses](aiinsightcard.md#BKMK_aiinsightcard_PrincipalObjectAttributeAccesses) - -|Property|Value| -|---|---| -|ReferencedEntity|`aiinsightcard`| -|ReferencedAttribute|`aiinsightcardid`| -|ReferencingAttribute|`objectid`| -|ReferencingEntityNavigationPropertyName|`objectid_aiinsightcard`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### aiplugin_PrincipalObjectAttributeAccesses One-To-Many Relationship: [aiplugin aiplugin_PrincipalObjectAttributeAccesses](aiplugin.md#BKMK_aiplugin_PrincipalObjectAttributeAccesses) @@ -897,6 +902,58 @@ One-To-Many Relationship: [appointment appointment_principalobjectattributeacces |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### approvalprocess_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [approvalprocess approvalprocess_PrincipalObjectAttributeAccesses](approvalprocess.md#BKMK_approvalprocess_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalprocess`| +|ReferencedAttribute|`approvalprocessid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_approvalprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstageapproval_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [approvalstageapproval approvalstageapproval_PrincipalObjectAttributeAccesses](approvalstageapproval.md#BKMK_approvalstageapproval_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageapproval`| +|ReferencedAttribute|`approvalstageapprovalid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_approvalstageapproval`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstagecondition_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [approvalstagecondition approvalstagecondition_PrincipalObjectAttributeAccesses](approvalstagecondition.md#BKMK_approvalstagecondition_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstagecondition`| +|ReferencedAttribute|`approvalstageconditionid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_approvalstagecondition`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstageorder_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [approvalstageorder approvalstageorder_PrincipalObjectAttributeAccesses](approvalstageorder.md#BKMK_approvalstageorder_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageorder`| +|ReferencedAttribute|`approvalstageorderid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_approvalstageorder`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### attributeimageconfig_PrincipalObjectAttributeAccesses One-To-Many Relationship: [attributeimageconfig attributeimageconfig_PrincipalObjectAttributeAccesses](attributeimageconfig.md#BKMK_attributeimageconfig_PrincipalObjectAttributeAccesses) @@ -975,6 +1032,19 @@ One-To-Many Relationship: [botcomponentcollection botcomponentcollection_Princip |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### businessprocess_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [businessprocess businessprocess_PrincipalObjectAttributeAccesses](businessprocess.md#BKMK_businessprocess_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessprocess`| +|ReferencedAttribute|`businessprocessid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_businessprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### businessunit_principalobjectattributeaccess One-To-Many Relationship: [businessunit businessunit_principalobjectattributeaccess](businessunit.md#BKMK_businessunit_principalobjectattributeaccess) @@ -1430,6 +1500,19 @@ One-To-Many Relationship: [email email_principalobjectattributeaccess](email.md# |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### emailaddressconfiguration_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [emailaddressconfiguration emailaddressconfiguration_PrincipalObjectAttributeAccesses](emailaddressconfiguration.md#BKMK_emailaddressconfiguration_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`emailaddressconfiguration`| +|ReferencedAttribute|`emailaddressconfigurationid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_emailaddressconfiguration`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### entityanalyticsconfig_PrincipalObjectAttributeAccesses One-To-Many Relationship: [entityanalyticsconfig entityanalyticsconfig_PrincipalObjectAttributeAccesses](entityanalyticsconfig.md#BKMK_entityanalyticsconfig_PrincipalObjectAttributeAccesses) @@ -1443,6 +1526,19 @@ One-To-Many Relationship: [entityanalyticsconfig entityanalyticsconfig_Principal |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### entityclusterconfig_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [entityclusterconfig entityclusterconfig_PrincipalObjectAttributeAccesses](entityclusterconfig.md#BKMK_entityclusterconfig_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`entityclusterconfig`| +|ReferencedAttribute|`entityclusterconfigid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_entityclusterconfig`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### entityimageconfig_PrincipalObjectAttributeAccesses One-To-Many Relationship: [entityimageconfig entityimageconfig_PrincipalObjectAttributeAccesses](entityimageconfig.md#BKMK_entityimageconfig_PrincipalObjectAttributeAccesses) @@ -2067,6 +2163,45 @@ One-To-Many Relationship: [msdyn_aiconfiguration msdyn_aiconfiguration_Principal |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### msdyn_aidataprocessingevent_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [msdyn_aidataprocessingevent msdyn_aidataprocessingevent_PrincipalObjectAttributeAccesses](msdyn_aidataprocessingevent.md#BKMK_msdyn_aidataprocessingevent_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aidataprocessingevent`| +|ReferencedAttribute|`msdyn_aidataprocessingeventid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_msdyn_aidataprocessingevent`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aievaluationconfiguration_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [msdyn_aievaluationconfiguration msdyn_aievaluationconfiguration_PrincipalObjectAttributeAccesses](msdyn_aievaluationconfiguration.md#BKMK_msdyn_aievaluationconfiguration_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aievaluationconfiguration`| +|ReferencedAttribute|`msdyn_aievaluationconfigurationid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_msdyn_aievaluationconfiguration`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aievaluationrun_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [msdyn_aievaluationrun msdyn_aievaluationrun_PrincipalObjectAttributeAccesses](msdyn_aievaluationrun.md#BKMK_msdyn_aievaluationrun_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aievaluationrun`| +|ReferencedAttribute|`msdyn_aievaluationrunid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_msdyn_aievaluationrun`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### msdyn_aievent_PrincipalObjectAttributeAccesses One-To-Many Relationship: [msdyn_aievent msdyn_aievent_PrincipalObjectAttributeAccesses](msdyn_aievent.md#BKMK_msdyn_aievent_PrincipalObjectAttributeAccesses) @@ -2171,6 +2306,71 @@ One-To-Many Relationship: [msdyn_aitemplate msdyn_aitemplate_PrincipalObjectAttr |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### msdyn_aitestcase_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [msdyn_aitestcase msdyn_aitestcase_PrincipalObjectAttributeAccesses](msdyn_aitestcase.md#BKMK_msdyn_aitestcase_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcase`| +|ReferencedAttribute|`msdyn_aitestcaseid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_msdyn_aitestcase`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestcasedocument_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [msdyn_aitestcasedocument msdyn_aitestcasedocument_PrincipalObjectAttributeAccesses](msdyn_aitestcasedocument.md#BKMK_msdyn_aitestcasedocument_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcasedocument`| +|ReferencedAttribute|`msdyn_aitestcasedocumentid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_msdyn_aitestcasedocument`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestcaseinput_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [msdyn_aitestcaseinput msdyn_aitestcaseinput_PrincipalObjectAttributeAccesses](msdyn_aitestcaseinput.md#BKMK_msdyn_aitestcaseinput_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcaseinput`| +|ReferencedAttribute|`msdyn_aitestcaseinputid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_msdyn_aitestcaseinput`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestrun_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [msdyn_aitestrun msdyn_aitestrun_PrincipalObjectAttributeAccesses](msdyn_aitestrun.md#BKMK_msdyn_aitestrun_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestrun`| +|ReferencedAttribute|`msdyn_aitestrunid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_msdyn_aitestrun`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestrunbatch_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [msdyn_aitestrunbatch msdyn_aitestrunbatch_PrincipalObjectAttributeAccesses](msdyn_aitestrunbatch.md#BKMK_msdyn_aitestrunbatch_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestrunbatch`| +|ReferencedAttribute|`msdyn_aitestrunbatchid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_msdyn_aitestrunbatch`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### msdyn_analysiscomponent_PrincipalObjectAttributeAccesses One-To-Many Relationship: [msdyn_analysiscomponent msdyn_analysiscomponent_PrincipalObjectAttributeAccesses](msdyn_analysiscomponent.md#BKMK_msdyn_analysiscomponent_PrincipalObjectAttributeAccesses) @@ -3601,19 +3801,6 @@ One-To-Many Relationship: [privilegesremovalsetting privilegesremovalsetting_Pri |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### processorregistration_PrincipalObjectAttributeAccesses - -One-To-Many Relationship: [processorregistration processorregistration_PrincipalObjectAttributeAccesses](processorregistration.md#BKMK_processorregistration_PrincipalObjectAttributeAccesses) - -|Property|Value| -|---|---| -|ReferencedEntity|`processorregistration`| -|ReferencedAttribute|`processorregistrationid`| -|ReferencingAttribute|`objectid`| -|ReferencingEntityNavigationPropertyName|`objectid_processorregistration`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### processstageparameter_PrincipalObjectAttributeAccesses One-To-Many Relationship: [processstageparameter processstageparameter_PrincipalObjectAttributeAccesses](processstageparameter.md#BKMK_processstageparameter_PrincipalObjectAttributeAccesses) @@ -3835,6 +4022,19 @@ One-To-Many Relationship: [roleeditorlayout roleeditorlayout_PrincipalObjectAttr |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### savingrule_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [savingrule savingrule_PrincipalObjectAttributeAccesses](savingrule.md#BKMK_savingrule_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`savingrule`| +|ReferencedAttribute|`savingruleid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_savingrule`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### searchattributesettings_PrincipalObjectAttributeAccesses One-To-Many Relationship: [searchattributesettings searchattributesettings_PrincipalObjectAttributeAccesses](searchattributesettings.md#BKMK_searchattributesettings_PrincipalObjectAttributeAccesses) @@ -4004,19 +4204,6 @@ One-To-Many Relationship: [sideloadedaiplugin sideloadedaiplugin_PrincipalObject |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### signalregistration_PrincipalObjectAttributeAccesses - -One-To-Many Relationship: [signalregistration signalregistration_PrincipalObjectAttributeAccesses](signalregistration.md#BKMK_signalregistration_PrincipalObjectAttributeAccesses) - -|Property|Value| -|---|---| -|ReferencedEntity|`signalregistration`| -|ReferencedAttribute|`signalregistrationid`| -|ReferencingAttribute|`objectid`| -|ReferencingEntityNavigationPropertyName|`objectid_signalregistration`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### socialactivity_principalobjectattributeaccess One-To-Many Relationship: [socialactivity socialactivity_principalobjectattributeaccess](socialactivity.md#BKMK_socialactivity_principalobjectattributeaccess) @@ -4277,6 +4464,45 @@ One-To-Many Relationship: [systemuserauthorizationchangetracker systemuserauthor |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### tag_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [tag tag_PrincipalObjectAttributeAccesses](tag.md#BKMK_tag_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`tag`| +|ReferencedAttribute|`tagid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_tag`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### taggedflowsession_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [taggedflowsession taggedflowsession_PrincipalObjectAttributeAccesses](taggedflowsession.md#BKMK_taggedflowsession_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`taggedflowsession`| +|ReferencedAttribute|`taggedflowsessionid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_taggedflowsession`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### taggedprocess_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [taggedprocess taggedprocess_PrincipalObjectAttributeAccesses](taggedprocess.md#BKMK_taggedprocess_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`taggedprocess`| +|ReferencedAttribute|`taggedprocessid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_taggedprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### task_principalobjectattributeaccess One-To-Many Relationship: [task task_principalobjectattributeaccess](task.md#BKMK_task_principalobjectattributeaccess) @@ -4342,16 +4568,29 @@ One-To-Many Relationship: [territory territory_principalobjectattributeaccess](t |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### traitregistration_PrincipalObjectAttributeAccesses +### unstructuredfilesearchentity_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [unstructuredfilesearchentity unstructuredfilesearchentity_PrincipalObjectAttributeAccesses](unstructuredfilesearchentity.md#BKMK_unstructuredfilesearchentity_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`unstructuredfilesearchentity`| +|ReferencedAttribute|`unstructuredfilesearchentityid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_unstructuredfilesearchentity`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### unstructuredfilesearchrecord_PrincipalObjectAttributeAccesses -One-To-Many Relationship: [traitregistration traitregistration_PrincipalObjectAttributeAccesses](traitregistration.md#BKMK_traitregistration_PrincipalObjectAttributeAccesses) +One-To-Many Relationship: [unstructuredfilesearchrecord unstructuredfilesearchrecord_PrincipalObjectAttributeAccesses](unstructuredfilesearchrecord.md#BKMK_unstructuredfilesearchrecord_PrincipalObjectAttributeAccesses) |Property|Value| |---|---| -|ReferencedEntity|`traitregistration`| -|ReferencedAttribute|`traitregistrationid`| +|ReferencedEntity|`unstructuredfilesearchrecord`| +|ReferencedAttribute|`unstructuredfilesearchrecordid`| |ReferencingAttribute|`objectid`| -|ReferencingEntityNavigationPropertyName|`objectid_traitregistration`| +|ReferencingEntityNavigationPropertyName|`objectid_unstructuredfilesearchrecord`| |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| @@ -4420,6 +4659,19 @@ One-To-Many Relationship: [workflowbinary workflowbinary_PrincipalObjectAttribut |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### workflowmetadata_PrincipalObjectAttributeAccesses + +One-To-Many Relationship: [workflowmetadata workflowmetadata_PrincipalObjectAttributeAccesses](workflowmetadata.md#BKMK_workflowmetadata_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencedEntity|`workflowmetadata`| +|ReferencedAttribute|`workflowmetadataid`| +|ReferencingAttribute|`objectid`| +|ReferencingEntityNavigationPropertyName|`objectid_workflowmetadata`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### workqueue_PrincipalObjectAttributeAccesses One-To-Many Relationship: [workqueue workqueue_PrincipalObjectAttributeAccesses](workqueue.md#BKMK_workqueue_PrincipalObjectAttributeAccesses) diff --git a/powerapps-docs/developer/data-platform/reference/entities/privilegecheckerlog.md b/powerapps-docs/developer/data-platform/reference/entities/privilegecheckerlog.md index 975ba767bf..ed3333ffac 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/privilegecheckerlog.md +++ b/powerapps-docs/developer/data-platform/reference/entities/privilegecheckerlog.md @@ -81,6 +81,9 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali - [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) - [Name](#BKMK_Name) - [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) - [PrivilegeCheckerLogId](#BKMK_PrivilegeCheckerLogId) - [PrivilegeDepth](#BKMK_PrivilegeDepth) - [Request](#BKMK_Request) @@ -285,6 +288,44 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |ImeMode|Inactive| |SourceTypeMask|0| +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|**Owner Id Type**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|businessunit| + ### PrivilegeCheckerLogId |Property|Value| diff --git a/powerapps-docs/developer/data-platform/reference/entities/processsession.md b/powerapps-docs/developer/data-platform/reference/entities/processsession.md index e8704a1f91..3763f43420 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/processsession.md +++ b/powerapps-docs/developer/data-platform/reference/entities/processsession.md @@ -344,7 +344,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |LogicalName|`regardingobjectid`| |RequiredLevel|None| |Type|Lookup| -|Targets|account, activityfileattachment, adx_externalidentity, adx_invitation, adx_inviteredemption, adx_portalcomment, adx_setting, adx_webformsession, aicopilot, aiinsightcard, aiplugin, aipluginauth, aipluginconversationstarter, aipluginconversationstartermapping, aipluginexternalschema, aipluginexternalschemaproperty, aiplugingovernance, aiplugingovernanceext, aiplugininstance, aipluginoperation, aipluginoperationparameter, aipluginoperationresponsetemplate, aiplugintitle, aipluginusersetting, aiskillconfig, annotation, appaction, appactionmigration, appactionrule, appelement, application, applicationuser, appmodulecomponentedge, appmodulecomponentnode, appointment, appsetting, appusersetting, archivecleanupinfo, archivecleanupoperation, attributemaskingrule, bot, botcomponent, botcomponentcollection, bulkarchiveconfig, bulkarchivefailuredetail, bulkarchiveoperation, bulkarchiveoperationdetail, businessunit, businessunitnewsarticle, canvasappextendedmetadata, card, cascadegrantrevokeaccessrecordstracker, cascadegrantrevokeaccessversiontracker, catalog, catalogassignment, certificatecredential, channelaccessprofile, channelaccessprofilerule, chat, comment, connection, connectioninstance, connectionreference, connectionrole, connector, contact, conversationtranscript, convertrule, copilotexamplequestion, copilotglossaryterm, copilotsynonyms, credential, customapi, customapirequestparameter, customapiresponseproperty, customeraddress, customerrelationship, datalakefolder, datalakefolderpermission, datalakeworkspace, datalakeworkspacepermission, dataprocessingconfiguration, delegatedauthorization, deleteditemreference, desktopflowbinary, desktopflowmodule, dvfilesearch, dvfilesearchattribute, dvfilesearchentity, dvtablesearch, dvtablesearchattribute, dvtablesearchentity, email, enablearchivalrequest, entityrecordfilter, environmentvariabledefinition, environmentvariablevalue, expiredprocess, exportedexcel, exportsolutionupload, externalparty, externalpartyitem, fabricaiskill, fax, featurecontrolsetting, federatedknowledgeconfiguration, federatedknowledgeentityconfiguration, flowcapacityassignment, flowcredentialapplication, flowevent, flowmachine, flowmachinegroup, flowmachineimage, flowmachineimageversion, flowmachinenetwork, fxexpression, goal, goalrollupquery, governanceconfiguration, holidaywrapper, internalcatalogassignment, kbarticle, kbarticlecomment, kbarticletemplate, keyvaultreference, knowledgearticle, knowledgebaserecord, letter, mailbox, mailmergetemplate, mainfewshot, makerfewshot, managedidentity, maskingrule, metadataforarchival, metric, mobileofflineprofileextension, msdynce_botcontent, msdyn_aibdataset, msdyn_aibdatasetfile, msdyn_aibdatasetrecord, msdyn_aibdatasetscontainer, msdyn_aibfeedbackloop, msdyn_aibfile, msdyn_aibfileattacheddata, msdyn_aiconfiguration, msdyn_aievent, msdyn_aifptrainingdocument, msdyn_aimodel, msdyn_aiodimage, msdyn_aiodlabel, msdyn_aiodtrainingboundingbox, msdyn_aiodtrainingimage, msdyn_aitemplate, msdyn_analysiscomponent, msdyn_analysisjob, msdyn_analysisoverride, msdyn_analysisresult, msdyn_analysisresultdetail, msdyn_appinsightsmetadata, msdyn_copilotinteractions, msdyn_customcontrolextendedsettings, msdyn_dataflow, msdyn_dataflowconnectionreference, msdyn_dataflowrefreshhistory, msdyn_dataflowtemplate, msdyn_dataflow_datalakefolder, msdyn_dmsrequest, msdyn_dmsrequeststatus, msdyn_dmssyncrequest, msdyn_dmssyncstatus, msdyn_entitylinkchatconfiguration, msdyn_entityrefreshhistory, msdyn_favoriteknowledgearticle, msdyn_federatedarticle, msdyn_federatedarticleincident, msdyn_fileupload, msdyn_flow_actionapprovalmodel, msdyn_flow_approval, msdyn_flow_approvalrequest, msdyn_flow_approvalresponse, msdyn_flow_approvalstep, msdyn_flow_awaitallactionapprovalmodel, msdyn_flow_awaitallapprovalmodel, msdyn_flow_basicapprovalmodel, msdyn_flow_flowapproval, msdyn_formmapping, msdyn_function, msdyn_helppage, msdyn_insightsstorevirtualentity, msdyn_integratedsearchprovider, msdyn_kalanguagesetting, msdyn_kbattachment, msdyn_kmfederatedsearchconfig, msdyn_kmpersonalizationsetting, msdyn_knowledgearticleimage, msdyn_knowledgearticletemplate, msdyn_knowledgeassetconfiguration, msdyn_knowledgeconfiguration, msdyn_knowledgeinteractioninsight, msdyn_knowledgemanagementsetting, msdyn_knowledgepersonalfilter, msdyn_knowledgesearchfilter, msdyn_knowledgesearchinsight, msdyn_mobileapp, msdyn_modulerundetail, msdyn_pmanalysishistory, msdyn_pmbusinessruleautomationconfig, msdyn_pmcalendar, msdyn_pmcalendarversion, msdyn_pminferredtask, msdyn_pmprocessextendedmetadataversion, msdyn_pmprocesstemplate, msdyn_pmprocessusersettings, msdyn_pmprocessversion, msdyn_pmrecording, msdyn_pmsimulation, msdyn_pmtemplate, msdyn_pmview, msdyn_qna, msdyn_richtextfile, msdyn_salesforcestructuredobject, msdyn_salesforcestructuredqnaconfig, msdyn_schedule, msdyn_serviceconfiguration, msdyn_slakpi, msdyn_solutionhealthrule, msdyn_solutionhealthruleargument, msdyn_solutionhealthruleset, msdyn_tour, msdyn_virtualtablecolumncandidate, msdyn_workflowactionstatus, msgraphresourcetosubscription, mspcat_catalogsubmissionfiles, mspcat_packagestore, newprocess, organizationdatasyncfnostate, organizationdatasyncstate, organizationdatasyncsubscription, organizationdatasyncsubscriptionentity, organizationdatasyncsubscriptionfnotable, organizationsetting, package, packagehistory, pdfsetting, phonecall, plannerbusinessscenario, plannersyncaction, plugin, position, powerbidataset, powerbidatasetapdx, powerbimashupparameter, powerbireport, powerbireportapdx, powerfxrule, powerpagecomponent, powerpagesite, powerpagesitelanguage, powerpagesitepublished, powerpagesmanagedidentity, powerpagesscanreport, privilegecheckerlog, privilegecheckerrun, privilegesremovalsetting, processorregistration, processstageparameter, provisionlanguageforuser, queue, queueitem, reconciliationentityinfo, reconciliationentitystepinfo, reconciliationinfo, recordfilter, recurringappointmentmaster, recyclebinconfig, relationshiprole, report, reportparameter, retaineddataexcel, retentioncleanupinfo, retentioncleanupoperation, retentionconfig, retentionfailuredetail, retentionoperation, retentionoperationdetail, retentionsuccessdetail, revokeinheritedaccessrecordstracker, roleeditorlayout, rollupfield, routingrule, routingruleitem, searchattributesettings, searchcustomanalyzer, searchrelationshipsettings, serviceplan, serviceplancustomcontrol, serviceplanmapping, settingdefinition, sharedlinksetting, sharedobject, sharedworkspace, sharedworkspacepool, sharepointdocumentlocation, sharepointmanagedidentity, sharepointsite, sideloadedaiplugin, signalregistration, sla, socialactivity, socialprofile, solutioncomponentattributeconfiguration, solutioncomponentbatchconfiguration, solutioncomponentconfiguration, solutioncomponentrelationshipconfiguration, stagedentity, stagedentityattribute, stagedmetadataasyncoperation, stagesolutionupload, subject, supportusertable, synapsedatabase, synapselinkexternaltablestate, synapselinkprofile, synapselinkprofileentity, synapselinkprofileentitystate, synapselinkschedule, systemuser, systemuserauthorizationchangetracker, task, tdsmetadata, team, teammobileofflineprofilemembership, template, territory, theme, traitregistration, transactioncurrency, translationprocess, usermapping, usermobileofflineprofilemembership, userrating, viewasexamplequestion, virtualentitymetadata, workflowbinary, workqueue, workqueueitem| +|Targets|account, activityfileattachment, adx_externalidentity, adx_invitation, adx_inviteredemption, adx_portalcomment, adx_setting, adx_webformsession, aicopilot, aiinsightcard, aiplugin, aipluginauth, aipluginconversationstarter, aipluginconversationstartermapping, aipluginexternalschema, aipluginexternalschemaproperty, aiplugingovernance, aiplugingovernanceext, aiplugininstance, aipluginoperation, aipluginoperationparameter, aipluginoperationresponsetemplate, aiplugintitle, aipluginusersetting, aiskillconfig, annotation, appaction, appactionmigration, appactionrule, appelement, application, applicationuser, appmodulecomponentedge, appmodulecomponentnode, appointment, approvalprocess, approvalstageapproval, approvalstagecondition, approvalstageorder, appsetting, appusersetting, archivecleanupinfo, archivecleanupoperation, attributemaskingrule, bot, botcomponent, botcomponentcollection, bulkarchiveconfig, bulkarchivefailuredetail, bulkarchiveoperation, bulkarchiveoperationdetail, businessprocess, businessunit, businessunitnewsarticle, canvasappextendedmetadata, card, cascadegrantrevokeaccessrecordstracker, cascadegrantrevokeaccessversiontracker, catalog, catalogassignment, certificatecredential, channelaccessprofile, channelaccessprofilerule, chat, comment, connection, connectioninstance, connectionreference, connectionrole, connector, contact, conversationtranscript, convertrule, copilotexamplequestion, copilotglossaryterm, copilotsynonyms, credential, customapi, customapirequestparameter, customapiresponseproperty, customeraddress, customerrelationship, datalakefolder, datalakefolderpermission, datalakeworkspace, datalakeworkspacepermission, dataprocessingconfiguration, delegatedauthorization, deleteditemreference, desktopflowbinary, desktopflowmodule, dvfilesearch, dvfilesearchattribute, dvfilesearchentity, dvtablesearch, dvtablesearchattribute, dvtablesearchentity, email, enablearchivalrequest, entityclusterconfig, entityrecordfilter, environmentvariabledefinition, environmentvariablevalue, expiredprocess, exportedexcel, exportsolutionupload, externalparty, externalpartyitem, fabricaiskill, fax, featurecontrolsetting, federatedknowledgecitation, federatedknowledgeconfiguration, federatedknowledgeentityconfiguration, federatedknowledgemetadatarefresh, flowcapacityassignment, flowcredentialapplication, flowevent, flowmachine, flowmachinegroup, flowmachineimage, flowmachineimageversion, flowmachinenetwork, fxexpression, goal, goalrollupquery, governanceconfiguration, holidaywrapper, internalcatalogassignment, kbarticle, kbarticlecomment, kbarticletemplate, keyvaultreference, knowledgearticle, knowledgebaserecord, letter, mailbox, mailmergetemplate, mainfewshot, makerfewshot, managedidentity, maskingrule, metadataforarchival, metric, mobileofflineprofileextension, msdynce_botcontent, msdyn_aibdataset, msdyn_aibdatasetfile, msdyn_aibdatasetrecord, msdyn_aibdatasetscontainer, msdyn_aibfeedbackloop, msdyn_aibfile, msdyn_aibfileattacheddata, msdyn_aiconfiguration, msdyn_aidataprocessingevent, msdyn_aievaluationconfiguration, msdyn_aievaluationrun, msdyn_aievent, msdyn_aifptrainingdocument, msdyn_aimodel, msdyn_aimodelcatalog, msdyn_aiodimage, msdyn_aiodlabel, msdyn_aiodtrainingboundingbox, msdyn_aiodtrainingimage, msdyn_aitemplate, msdyn_aitestcase, msdyn_aitestcasedocument, msdyn_aitestcaseinput, msdyn_aitestrun, msdyn_aitestrunbatch, msdyn_analysiscomponent, msdyn_analysisjob, msdyn_analysisoverride, msdyn_analysisresult, msdyn_analysisresultdetail, msdyn_appinsightsmetadata, msdyn_copilotinteractions, msdyn_customcontrolextendedsettings, msdyn_dataflow, msdyn_dataflowconnectionreference, msdyn_dataflowrefreshhistory, msdyn_dataflowtemplate, msdyn_dataflow_datalakefolder, msdyn_dataworkspace, msdyn_dmsrequest, msdyn_dmsrequeststatus, msdyn_dmssyncrequest, msdyn_dmssyncstatus, msdyn_entitylinkchatconfiguration, msdyn_entityrefreshhistory, msdyn_favoriteknowledgearticle, msdyn_federatedarticle, msdyn_federatedarticleincident, msdyn_fileupload, msdyn_flow_actionapprovalmodel, msdyn_flow_approval, msdyn_flow_approvalrequest, msdyn_flow_approvalresponse, msdyn_flow_approvalstep, msdyn_flow_awaitallactionapprovalmodel, msdyn_flow_awaitallapprovalmodel, msdyn_flow_basicapprovalmodel, msdyn_flow_flowapproval, msdyn_formmapping, msdyn_function, msdyn_helppage, msdyn_insightsstorevirtualentity, msdyn_integratedsearchprovider, msdyn_kalanguagesetting, msdyn_kbattachment, msdyn_kmfederatedsearchconfig, msdyn_kmpersonalizationsetting, msdyn_knowledgearticleimage, msdyn_knowledgearticletemplate, msdyn_knowledgeassetconfiguration, msdyn_knowledgeconfiguration, msdyn_knowledgeinteractioninsight, msdyn_knowledgemanagementsetting, msdyn_knowledgepersonalfilter, msdyn_knowledgesearchfilter, msdyn_knowledgesearchinsight, msdyn_mobileapp, msdyn_modulerundetail, msdyn_plan, msdyn_planartifact, msdyn_planattachment, msdyn_pmanalysishistory, msdyn_pmbusinessruleautomationconfig, msdyn_pmcalendar, msdyn_pmcalendarversion, msdyn_pminferredtask, msdyn_pmprocessextendedmetadataversion, msdyn_pmprocesstemplate, msdyn_pmprocessusersettings, msdyn_pmprocessversion, msdyn_pmrecording, msdyn_pmsimulation, msdyn_pmtemplate, msdyn_pmview, msdyn_qna, msdyn_richtextfile, msdyn_salesforcestructuredobject, msdyn_salesforcestructuredqnaconfig, msdyn_schedule, msdyn_serviceconfiguration, msdyn_slakpi, msdyn_solutionhealthrule, msdyn_solutionhealthruleargument, msdyn_solutionhealthruleset, msdyn_tour, msdyn_virtualtablecolumncandidate, msdyn_workflowactionstatus, msgraphresourcetosubscription, mspcat_catalogsubmissionfiles, mspcat_packagestore, newprocess, organizationdatasyncfnostate, organizationdatasyncstate, organizationdatasyncsubscription, organizationdatasyncsubscriptionentity, organizationdatasyncsubscriptionfnotable, organizationsetting, package, packagehistory, pdfsetting, phonecall, plannerbusinessscenario, plannersyncaction, plugin, position, powerbidataset, powerbidatasetapdx, powerbimashupparameter, powerbireport, powerbireportapdx, powerfxrule, powerpagecomponent, powerpagesite, powerpagesitelanguage, powerpagesitepublished, powerpagesmanagedidentity, powerpagesscanreport, privilegecheckerlog, privilegecheckerrun, privilegesremovalsetting, processorregistration, processstageparameter, provisionlanguageforuser, queue, queueitem, reconciliationentityinfo, reconciliationentitystepinfo, reconciliationinfo, recordfilter, recurringappointmentmaster, recyclebinconfig, relationshiprole, report, reportparameter, retaineddataexcel, retentioncleanupinfo, retentioncleanupoperation, retentionconfig, retentionfailuredetail, retentionoperation, retentionoperationdetail, retentionsuccessdetail, revokeinheritedaccessrecordstracker, roleeditorlayout, rollupfield, routingrule, routingruleitem, savingrule, searchattributesettings, searchcustomanalyzer, searchrelationshipsettings, serviceplan, serviceplancustomcontrol, serviceplanmapping, settingdefinition, sharedlinksetting, sharedobject, sharedworkspace, sharedworkspacepool, sharepointdocumentlocation, sharepointmanagedidentity, sharepointsite, sideloadedaiplugin, signalregistration, sla, socialactivity, socialprofile, solutioncomponentattributeconfiguration, solutioncomponentbatchconfiguration, solutioncomponentconfiguration, solutioncomponentrelationshipconfiguration, stagedentity, stagedentityattribute, stagedmetadataasyncoperation, stagesolutionupload, subject, supportusertable, synapsedatabase, synapselinkexternaltablestate, synapselinkprofile, synapselinkprofileentity, synapselinkprofileentitystate, synapselinkschedule, systemuser, systemuserauthorizationchangetracker, tag, taggedflowsession, taggedprocess, task, tdsmetadata, team, teammobileofflineprofilemembership, template, territory, theme, traitregistration, transactioncurrency, translationprocess, unstructuredfilesearchentity, unstructuredfilesearchrecord, usermapping, usermobileofflineprofilemembership, userrating, viewasexamplequestion, virtualentitymetadata, workflowbinary, workflowmetadata, workqueue, workqueueitem| ### RegardingObjectTypeCode @@ -705,7 +705,6 @@ These relationships are many-to-one. Listed by **SchemaName**. - [adx_setting_ProcessSession](#BKMK_adx_setting_ProcessSession) - [adx_webformsession_ProcessSession](#BKMK_adx_webformsession_ProcessSession) - [aicopilot_ProcessSession](#BKMK_aicopilot_ProcessSession) -- [aiinsightcard_ProcessSession](#BKMK_aiinsightcard_ProcessSession) - [aiplugin_ProcessSession](#BKMK_aiplugin_ProcessSession) - [aipluginauth_ProcessSession](#BKMK_aipluginauth_ProcessSession) - [aipluginconversationstarter_ProcessSession](#BKMK_aipluginconversationstarter_ProcessSession) @@ -727,10 +726,15 @@ These relationships are many-to-one. Listed by **SchemaName**. - [application_ProcessSession](#BKMK_application_ProcessSession) - [applicationuser_ProcessSession](#BKMK_applicationuser_ProcessSession) - [Appointment_ProcessSessions](#BKMK_Appointment_ProcessSessions) +- [approvalprocess_ProcessSession](#BKMK_approvalprocess_ProcessSession) +- [approvalstageapproval_ProcessSession](#BKMK_approvalstageapproval_ProcessSession) +- [approvalstagecondition_ProcessSession](#BKMK_approvalstagecondition_ProcessSession) +- [approvalstageorder_ProcessSession](#BKMK_approvalstageorder_ProcessSession) - [attributemaskingrule_ProcessSession](#BKMK_attributemaskingrule_ProcessSession) - [bot_ProcessSession](#BKMK_bot_ProcessSession) - [botcomponent_ProcessSession](#BKMK_botcomponent_ProcessSession) - [botcomponentcollection_ProcessSession](#BKMK_botcomponentcollection_ProcessSession) +- [businessprocess_ProcessSession](#BKMK_businessprocess_ProcessSession) - [BusinessUnit_ProcessSessions](#BKMK_BusinessUnit_ProcessSessions) - [BusinessUnitNewsArticle_ProcessSessions](#BKMK_BusinessUnitNewsArticle_ProcessSessions) - [card_ProcessSession](#BKMK_card_ProcessSession) @@ -768,6 +772,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [dvtablesearchattribute_ProcessSession](#BKMK_dvtablesearchattribute_ProcessSession) - [dvtablesearchentity_ProcessSession](#BKMK_dvtablesearchentity_ProcessSession) - [Email_ProcessSessions](#BKMK_Email_ProcessSessions) +- [entityclusterconfig_ProcessSession](#BKMK_entityclusterconfig_ProcessSession) - [entityrecordfilter_ProcessSession](#BKMK_entityrecordfilter_ProcessSession) - [environmentvariabledefinition_ProcessSession](#BKMK_environmentvariabledefinition_ProcessSession) - [environmentvariablevalue_ProcessSession](#BKMK_environmentvariablevalue_ProcessSession) @@ -827,6 +832,9 @@ These relationships are many-to-one. Listed by **SchemaName**. - [msdyn_aibfile_ProcessSession](#BKMK_msdyn_aibfile_ProcessSession) - [msdyn_aibfileattacheddata_ProcessSession](#BKMK_msdyn_aibfileattacheddata_ProcessSession) - [msdyn_aiconfiguration_ProcessSession](#BKMK_msdyn_aiconfiguration_ProcessSession) +- [msdyn_aidataprocessingevent_ProcessSession](#BKMK_msdyn_aidataprocessingevent_ProcessSession) +- [msdyn_aievaluationconfiguration_ProcessSession](#BKMK_msdyn_aievaluationconfiguration_ProcessSession) +- [msdyn_aievaluationrun_ProcessSession](#BKMK_msdyn_aievaluationrun_ProcessSession) - [msdyn_aievent_ProcessSession](#BKMK_msdyn_aievent_ProcessSession) - [msdyn_aifptrainingdocument_ProcessSession](#BKMK_msdyn_aifptrainingdocument_ProcessSession) - [msdyn_aimodel_ProcessSession](#BKMK_msdyn_aimodel_ProcessSession) @@ -835,6 +843,11 @@ These relationships are many-to-one. Listed by **SchemaName**. - [msdyn_aiodtrainingboundingbox_ProcessSession](#BKMK_msdyn_aiodtrainingboundingbox_ProcessSession) - [msdyn_aiodtrainingimage_ProcessSession](#BKMK_msdyn_aiodtrainingimage_ProcessSession) - [msdyn_aitemplate_ProcessSession](#BKMK_msdyn_aitemplate_ProcessSession) +- [msdyn_aitestcase_ProcessSession](#BKMK_msdyn_aitestcase_ProcessSession) +- [msdyn_aitestcasedocument_ProcessSession](#BKMK_msdyn_aitestcasedocument_ProcessSession) +- [msdyn_aitestcaseinput_ProcessSession](#BKMK_msdyn_aitestcaseinput_ProcessSession) +- [msdyn_aitestrun_ProcessSession](#BKMK_msdyn_aitestrun_ProcessSession) +- [msdyn_aitestrunbatch_ProcessSession](#BKMK_msdyn_aitestrunbatch_ProcessSession) - [msdyn_analysiscomponent_ProcessSession](#BKMK_msdyn_analysiscomponent_ProcessSession) - [msdyn_analysisjob_ProcessSession](#BKMK_msdyn_analysisjob_ProcessSession) - [msdyn_analysisoverride_ProcessSession](#BKMK_msdyn_analysisoverride_ProcessSession) @@ -947,7 +960,6 @@ These relationships are many-to-one. Listed by **SchemaName**. - [privilegecheckerlog_ProcessSession](#BKMK_privilegecheckerlog_ProcessSession) - [privilegecheckerrun_ProcessSession](#BKMK_privilegecheckerrun_ProcessSession) - [privilegesremovalsetting_ProcessSession](#BKMK_privilegesremovalsetting_ProcessSession) -- [processorregistration_ProcessSession](#BKMK_processorregistration_ProcessSession) - [processstageparameter_ProcessSession](#BKMK_processstageparameter_ProcessSession) - [provisionlanguageforuser_ProcessSession](#BKMK_provisionlanguageforuser_ProcessSession) - [Queue_ProcessSessions](#BKMK_Queue_ProcessSessions) @@ -965,6 +977,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [retentionsuccessdetail_ProcessSession](#BKMK_retentionsuccessdetail_ProcessSession) - [roleeditorlayout_ProcessSession](#BKMK_roleeditorlayout_ProcessSession) - [rollupfield_ProcessSessions](#BKMK_rollupfield_ProcessSessions) +- [savingrule_ProcessSession](#BKMK_savingrule_ProcessSession) - [searchattributesettings_ProcessSession](#BKMK_searchattributesettings_ProcessSession) - [searchcustomanalyzer_ProcessSession](#BKMK_searchcustomanalyzer_ProcessSession) - [searchrelationshipsettings_ProcessSession](#BKMK_searchrelationshipsettings_ProcessSession) @@ -978,7 +991,6 @@ These relationships are many-to-one. Listed by **SchemaName**. - [sharepointmanagedidentity_ProcessSession](#BKMK_sharepointmanagedidentity_ProcessSession) - [SharePointSite_ProcessSessions](#BKMK_SharePointSite_ProcessSessions) - [sideloadedaiplugin_ProcessSession](#BKMK_sideloadedaiplugin_ProcessSession) -- [signalregistration_ProcessSession](#BKMK_signalregistration_ProcessSession) - [slabase_ProcessSessions](#BKMK_slabase_ProcessSessions) - [SocialActivity_ProcessSessions](#BKMK_SocialActivity_ProcessSessions) - [SocialProfile_ProcessSessions](#BKMK_SocialProfile_ProcessSessions) @@ -1000,6 +1012,9 @@ These relationships are many-to-one. Listed by **SchemaName**. - [synapselinkschedule_ProcessSession](#BKMK_synapselinkschedule_ProcessSession) - [SystemUser_ProcessSessions](#BKMK_SystemUser_ProcessSessions) - [systemuserauthorizationchangetracker_ProcessSession](#BKMK_systemuserauthorizationchangetracker_ProcessSession) +- [tag_ProcessSession](#BKMK_tag_ProcessSession) +- [taggedflowsession_ProcessSession](#BKMK_taggedflowsession_ProcessSession) +- [taggedprocess_ProcessSession](#BKMK_taggedprocess_ProcessSession) - [Task_ProcessSessions](#BKMK_Task_ProcessSessions) - [team_processsession](#BKMK_team_processsession) - [Team_ProcessSessions](#BKMK_Team_ProcessSessions) @@ -1007,15 +1022,17 @@ These relationships are many-to-one. Listed by **SchemaName**. - [Template_ProcessSessions](#BKMK_Template_ProcessSessions) - [Territory_ProcessSessions](#BKMK_Territory_ProcessSessions) - [theme_ProcessSession](#BKMK_theme_ProcessSession) -- [traitregistration_ProcessSession](#BKMK_traitregistration_ProcessSession) - [TransactionCurrency_ProcessSessions](#BKMK_TransactionCurrency_ProcessSessions) - [TranslationProcess_ProcessSessions](#BKMK_TranslationProcess_ProcessSessions) +- [unstructuredfilesearchentity_ProcessSession](#BKMK_unstructuredfilesearchentity_ProcessSession) +- [unstructuredfilesearchrecord_ProcessSession](#BKMK_unstructuredfilesearchrecord_ProcessSession) - [usermapping_ProcessSession](#BKMK_usermapping_ProcessSession) - [usermobileofflineprofilemembership_ProcessSession](#BKMK_usermobileofflineprofilemembership_ProcessSession) - [userrating_ProcessSession](#BKMK_userrating_ProcessSession) - [viewasexamplequestion_ProcessSession](#BKMK_viewasexamplequestion_ProcessSession) - [virtualentitymetadata_ProcessSession](#BKMK_virtualentitymetadata_ProcessSession) - [workflowbinary_ProcessSession](#BKMK_workflowbinary_ProcessSession) +- [workflowmetadata_ProcessSession](#BKMK_workflowmetadata_ProcessSession) - [workqueue_ProcessSession](#BKMK_workqueue_ProcessSession) - [workqueueitem_ProcessSession](#BKMK_workqueueitem_ProcessSession) @@ -1136,19 +1153,6 @@ One-To-Many Relationship: [aicopilot aicopilot_ProcessSession](aicopilot.md#BKMK |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### aiinsightcard_ProcessSession - -One-To-Many Relationship: [aiinsightcard aiinsightcard_ProcessSession](aiinsightcard.md#BKMK_aiinsightcard_ProcessSession) - -|Property|Value| -|---|---| -|ReferencedEntity|`aiinsightcard`| -|ReferencedAttribute|`aiinsightcardid`| -|ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_aiinsightcard`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### aiplugin_ProcessSession One-To-Many Relationship: [aiplugin aiplugin_ProcessSession](aiplugin.md#BKMK_aiplugin_ProcessSession) @@ -1422,6 +1426,58 @@ One-To-Many Relationship: [appointment Appointment_ProcessSessions](appointment. |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### approvalprocess_ProcessSession + +One-To-Many Relationship: [approvalprocess approvalprocess_ProcessSession](approvalprocess.md#BKMK_approvalprocess_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalprocess`| +|ReferencedAttribute|`approvalprocessid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstageapproval_ProcessSession + +One-To-Many Relationship: [approvalstageapproval approvalstageapproval_ProcessSession](approvalstageapproval.md#BKMK_approvalstageapproval_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageapproval`| +|ReferencedAttribute|`approvalstageapprovalid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalstageapproval`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstagecondition_ProcessSession + +One-To-Many Relationship: [approvalstagecondition approvalstagecondition_ProcessSession](approvalstagecondition.md#BKMK_approvalstagecondition_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstagecondition`| +|ReferencedAttribute|`approvalstageconditionid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalstagecondition`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstageorder_ProcessSession + +One-To-Many Relationship: [approvalstageorder approvalstageorder_ProcessSession](approvalstageorder.md#BKMK_approvalstageorder_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageorder`| +|ReferencedAttribute|`approvalstageorderid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalstageorder`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### attributemaskingrule_ProcessSession One-To-Many Relationship: [attributemaskingrule attributemaskingrule_ProcessSession](attributemaskingrule.md#BKMK_attributemaskingrule_ProcessSession) @@ -1474,6 +1530,19 @@ One-To-Many Relationship: [botcomponentcollection botcomponentcollection_Process |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### businessprocess_ProcessSession + +One-To-Many Relationship: [businessprocess businessprocess_ProcessSession](businessprocess.md#BKMK_businessprocess_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessprocess`| +|ReferencedAttribute|`businessprocessid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_businessprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### BusinessUnit_ProcessSessions One-To-Many Relationship: [businessunit BusinessUnit_ProcessSessions](businessunit.md#BKMK_BusinessUnit_ProcessSessions) @@ -1955,6 +2024,19 @@ One-To-Many Relationship: [email Email_ProcessSessions](email.md#BKMK_Email_Proc |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### entityclusterconfig_ProcessSession + +One-To-Many Relationship: [entityclusterconfig entityclusterconfig_ProcessSession](entityclusterconfig.md#BKMK_entityclusterconfig_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`entityclusterconfig`| +|ReferencedAttribute|`entityclusterconfigid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_entityclusterconfig`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### entityrecordfilter_ProcessSession One-To-Many Relationship: [entityrecordfilter entityrecordfilter_ProcessSession](entityrecordfilter.md#BKMK_entityrecordfilter_ProcessSession) @@ -2722,6 +2804,45 @@ One-To-Many Relationship: [msdyn_aiconfiguration msdyn_aiconfiguration_ProcessSe |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### msdyn_aidataprocessingevent_ProcessSession + +One-To-Many Relationship: [msdyn_aidataprocessingevent msdyn_aidataprocessingevent_ProcessSession](msdyn_aidataprocessingevent.md#BKMK_msdyn_aidataprocessingevent_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aidataprocessingevent`| +|ReferencedAttribute|`msdyn_aidataprocessingeventid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aidataprocessingevent`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aievaluationconfiguration_ProcessSession + +One-To-Many Relationship: [msdyn_aievaluationconfiguration msdyn_aievaluationconfiguration_ProcessSession](msdyn_aievaluationconfiguration.md#BKMK_msdyn_aievaluationconfiguration_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aievaluationconfiguration`| +|ReferencedAttribute|`msdyn_aievaluationconfigurationid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aievaluationconfiguration`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aievaluationrun_ProcessSession + +One-To-Many Relationship: [msdyn_aievaluationrun msdyn_aievaluationrun_ProcessSession](msdyn_aievaluationrun.md#BKMK_msdyn_aievaluationrun_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aievaluationrun`| +|ReferencedAttribute|`msdyn_aievaluationrunid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aievaluationrun`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### msdyn_aievent_ProcessSession One-To-Many Relationship: [msdyn_aievent msdyn_aievent_ProcessSession](msdyn_aievent.md#BKMK_msdyn_aievent_ProcessSession) @@ -2826,6 +2947,71 @@ One-To-Many Relationship: [msdyn_aitemplate msdyn_aitemplate_ProcessSession](msd |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### msdyn_aitestcase_ProcessSession + +One-To-Many Relationship: [msdyn_aitestcase msdyn_aitestcase_ProcessSession](msdyn_aitestcase.md#BKMK_msdyn_aitestcase_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcase`| +|ReferencedAttribute|`msdyn_aitestcaseid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestcase`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestcasedocument_ProcessSession + +One-To-Many Relationship: [msdyn_aitestcasedocument msdyn_aitestcasedocument_ProcessSession](msdyn_aitestcasedocument.md#BKMK_msdyn_aitestcasedocument_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcasedocument`| +|ReferencedAttribute|`msdyn_aitestcasedocumentid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestcasedocument`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestcaseinput_ProcessSession + +One-To-Many Relationship: [msdyn_aitestcaseinput msdyn_aitestcaseinput_ProcessSession](msdyn_aitestcaseinput.md#BKMK_msdyn_aitestcaseinput_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcaseinput`| +|ReferencedAttribute|`msdyn_aitestcaseinputid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestcaseinput`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestrun_ProcessSession + +One-To-Many Relationship: [msdyn_aitestrun msdyn_aitestrun_ProcessSession](msdyn_aitestrun.md#BKMK_msdyn_aitestrun_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestrun`| +|ReferencedAttribute|`msdyn_aitestrunid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestrun`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestrunbatch_ProcessSession + +One-To-Many Relationship: [msdyn_aitestrunbatch msdyn_aitestrunbatch_ProcessSession](msdyn_aitestrunbatch.md#BKMK_msdyn_aitestrunbatch_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestrunbatch`| +|ReferencedAttribute|`msdyn_aitestrunbatchid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestrunbatch`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### msdyn_analysiscomponent_ProcessSession One-To-Many Relationship: [msdyn_analysiscomponent msdyn_analysiscomponent_ProcessSession](msdyn_analysiscomponent.md#BKMK_msdyn_analysiscomponent_ProcessSession) @@ -4282,19 +4468,6 @@ One-To-Many Relationship: [privilegesremovalsetting privilegesremovalsetting_Pro |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### processorregistration_ProcessSession - -One-To-Many Relationship: [processorregistration processorregistration_ProcessSession](processorregistration.md#BKMK_processorregistration_ProcessSession) - -|Property|Value| -|---|---| -|ReferencedEntity|`processorregistration`| -|ReferencedAttribute|`processorregistrationid`| -|ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_processorregistration`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### processstageparameter_ProcessSession One-To-Many Relationship: [processstageparameter processstageparameter_ProcessSession](processstageparameter.md#BKMK_processstageparameter_ProcessSession) @@ -4516,6 +4689,19 @@ One-To-Many Relationship: [rollupfield rollupfield_ProcessSessions](rollupfield. |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### savingrule_ProcessSession + +One-To-Many Relationship: [savingrule savingrule_ProcessSession](savingrule.md#BKMK_savingrule_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`savingrule`| +|ReferencedAttribute|`savingruleid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_savingrule`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### searchattributesettings_ProcessSession One-To-Many Relationship: [searchattributesettings searchattributesettings_ProcessSession](searchattributesettings.md#BKMK_searchattributesettings_ProcessSession) @@ -4685,19 +4871,6 @@ One-To-Many Relationship: [sideloadedaiplugin sideloadedaiplugin_ProcessSession] |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### signalregistration_ProcessSession - -One-To-Many Relationship: [signalregistration signalregistration_ProcessSession](signalregistration.md#BKMK_signalregistration_ProcessSession) - -|Property|Value| -|---|---| -|ReferencedEntity|`signalregistration`| -|ReferencedAttribute|`signalregistrationid`| -|ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_signalregistration`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### slabase_ProcessSessions One-To-Many Relationship: [sla slabase_ProcessSessions](sla.md#BKMK_slabase_ProcessSessions) @@ -4971,6 +5144,45 @@ One-To-Many Relationship: [systemuserauthorizationchangetracker systemuserauthor |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### tag_ProcessSession + +One-To-Many Relationship: [tag tag_ProcessSession](tag.md#BKMK_tag_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`tag`| +|ReferencedAttribute|`tagid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_tag`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### taggedflowsession_ProcessSession + +One-To-Many Relationship: [taggedflowsession taggedflowsession_ProcessSession](taggedflowsession.md#BKMK_taggedflowsession_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`taggedflowsession`| +|ReferencedAttribute|`taggedflowsessionid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_taggedflowsession`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### taggedprocess_ProcessSession + +One-To-Many Relationship: [taggedprocess taggedprocess_ProcessSession](taggedprocess.md#BKMK_taggedprocess_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`taggedprocess`| +|ReferencedAttribute|`taggedprocessid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_taggedprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### Task_ProcessSessions One-To-Many Relationship: [task Task_ProcessSessions](task.md#BKMK_Task_ProcessSessions) @@ -5062,19 +5274,6 @@ One-To-Many Relationship: [theme theme_ProcessSession](theme.md#BKMK_theme_Proce |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### traitregistration_ProcessSession - -One-To-Many Relationship: [traitregistration traitregistration_ProcessSession](traitregistration.md#BKMK_traitregistration_ProcessSession) - -|Property|Value| -|---|---| -|ReferencedEntity|`traitregistration`| -|ReferencedAttribute|`traitregistrationid`| -|ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_traitregistration`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### TransactionCurrency_ProcessSessions One-To-Many Relationship: [transactioncurrency TransactionCurrency_ProcessSessions](transactioncurrency.md#BKMK_TransactionCurrency_ProcessSessions) @@ -5101,6 +5300,32 @@ One-To-Many Relationship: [translationprocess TranslationProcess_ProcessSessions |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### unstructuredfilesearchentity_ProcessSession + +One-To-Many Relationship: [unstructuredfilesearchentity unstructuredfilesearchentity_ProcessSession](unstructuredfilesearchentity.md#BKMK_unstructuredfilesearchentity_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`unstructuredfilesearchentity`| +|ReferencedAttribute|`unstructuredfilesearchentityid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_unstructuredfilesearchentity`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### unstructuredfilesearchrecord_ProcessSession + +One-To-Many Relationship: [unstructuredfilesearchrecord unstructuredfilesearchrecord_ProcessSession](unstructuredfilesearchrecord.md#BKMK_unstructuredfilesearchrecord_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`unstructuredfilesearchrecord`| +|ReferencedAttribute|`unstructuredfilesearchrecordid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_unstructuredfilesearchrecord`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### usermapping_ProcessSession One-To-Many Relationship: [usermapping usermapping_ProcessSession](usermapping.md#BKMK_usermapping_ProcessSession) @@ -5179,6 +5404,19 @@ One-To-Many Relationship: [workflowbinary workflowbinary_ProcessSession](workflo |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### workflowmetadata_ProcessSession + +One-To-Many Relationship: [workflowmetadata workflowmetadata_ProcessSession](workflowmetadata.md#BKMK_workflowmetadata_ProcessSession) + +|Property|Value| +|---|---| +|ReferencedEntity|`workflowmetadata`| +|ReferencedAttribute|`workflowmetadataid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_workflowmetadata`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### workqueue_ProcessSession One-To-Many Relationship: [workqueue workqueue_ProcessSession](workqueue.md#BKMK_workqueue_ProcessSession) diff --git a/powerapps-docs/developer/data-platform/reference/entities/queueitem.md b/powerapps-docs/developer/data-platform/reference/entities/queueitem.md index 6b62f602f2..16e028669c 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/queueitem.md +++ b/powerapps-docs/developer/data-platform/reference/entities/queueitem.md @@ -528,10 +528,10 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |4216|**Social Activity**| |4251|**Recurring Appointment**| |9953|**Knowledge Article**| -|10200|**Teams chat**| -|10216|**Knowledge Article Template**| -|10332|**Invite Redemption**| -|10333|**Portal Comment**| +|10209|**Teams chat**| +|10225|**Knowledge Article Template**| +|10349|**Invite Redemption**| +|10350|**Portal Comment**| ### OrganizationId diff --git a/powerapps-docs/developer/data-platform/reference/entities/recentlyused.md b/powerapps-docs/developer/data-platform/reference/entities/recentlyused.md index a3fb46afd6..fa6a87c545 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/recentlyused.md +++ b/powerapps-docs/developer/data-platform/reference/entities/recentlyused.md @@ -559,7 +559,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| diff --git a/powerapps-docs/developer/data-platform/reference/entities/recurringappointmentmaster.md b/powerapps-docs/developer/data-platform/reference/entities/recurringappointmentmaster.md index 01d50e4d62..bc14cc6158 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/recurringappointmentmaster.md +++ b/powerapps-docs/developer/data-platform/reference/entities/recurringappointmentmaster.md @@ -651,7 +651,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**Unique identifier of the Microsoft Office Outlook recurring appointment series owner that correlates to the PR_OWNER_APPT_ID MAPI property.**| +|Description|**Unique identifier of the Microsoft Office Outlook recurring appointment series owner that correlates to the PR\_OWNER\_APPT\_ID MAPI property.**| |DisplayName|**Outlook Recurring Appointment Master Owner**| |IsValidForForm|False| |IsValidForRead|True| diff --git a/powerapps-docs/developer/data-platform/reference/entities/relationshipattribute.md b/powerapps-docs/developer/data-platform/reference/entities/relationshipattribute.md index 08df9f3a5b..c3cb4d4d32 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/relationshipattribute.md +++ b/powerapps-docs/developer/data-platform/reference/entities/relationshipattribute.md @@ -145,6 +145,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali - [OverwriteTime](#BKMK_OverwriteTime) - [SolutionId](#BKMK_SolutionId) - [SupportingSolutionId](#BKMK_SupportingSolutionId) +- [versionnumber](#BKMK_versionnumber) ### ComponentIdUnique @@ -251,6 +252,20 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |RequiredLevel|None| |Type|Uniqueidentifier| +### versionnumber + +|Property|Value| +|---|---| +|Description|**Version number of Image descriptor.**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + ## Many-to-One relationships These relationships are many-to-one. Listed by **SchemaName**. diff --git a/powerapps-docs/developer/data-platform/reference/entities/retaineddataexcel.md b/powerapps-docs/developer/data-platform/reference/entities/retaineddataexcel.md index cef61cd41d..2b8cb9f155 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/retaineddataexcel.md +++ b/powerapps-docs/developer/data-platform/reference/entities/retaineddataexcel.md @@ -493,7 +493,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| diff --git a/powerapps-docs/developer/data-platform/reference/entities/retentionsuccessdetail.md b/powerapps-docs/developer/data-platform/reference/entities/retentionsuccessdetail.md index 7b2ad19453..58dc04ab23 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/retentionsuccessdetail.md +++ b/powerapps-docs/developer/data-platform/reference/entities/retentionsuccessdetail.md @@ -405,7 +405,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |Property|Value| |---|---| |Description|| -|DisplayName|**msft_DataState**| +|DisplayName|**msft\_DataState**| |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`msft_datastate`| diff --git a/powerapps-docs/developer/data-platform/reference/entities/role.md b/powerapps-docs/developer/data-platform/reference/entities/role.md index ab91bb3c4a..2cbd94e0e5 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/role.md +++ b/powerapps-docs/developer/data-platform/reference/entities/role.md @@ -263,11 +263,13 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. +- [ApplicationId](#BKMK_ApplicationId) - [ComponentState](#BKMK_ComponentState) - [CreatedBy](#BKMK_CreatedBy) - [CreatedOn](#BKMK_CreatedOn) - [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) - [IsManaged](#BKMK_IsManaged) +- [IsSystemGenerated](#BKMK_IsSystemGenerated) - [ModifiedBy](#BKMK_ModifiedBy) - [ModifiedOn](#BKMK_ModifiedOn) - [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) @@ -282,6 +284,18 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali - [SupportingSolutionId](#BKMK_SupportingSolutionId) - [VersionNumber](#BKMK_VersionNumber) +### ApplicationId + +|Property|Value| +|---|---| +|Description|**Application Id of user who created the role**| +|DisplayName|**Application Id**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`applicationid`| +|RequiredLevel|None| +|Type|Uniqueidentifier| + ### ComponentState |Property|Value| @@ -364,6 +378,22 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |True Label|Managed| |False Label|Unmanaged| +### IsSystemGenerated + +|Property|Value| +|---|---| +|Description|**Is this role generated by the system**| +|DisplayName|**Is System Generated**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`issytemgenerated`| +|RequiredLevel|ApplicationRequired| +|Type|Boolean| +|GlobalChoiceName|`role_issytemgenerated`| +|DefaultValue|False| +|True Label|Yes| +|False Label|No| + ### ModifiedBy |Property|Value| diff --git a/powerapps-docs/developer/data-platform/reference/entities/savingrule.md b/powerapps-docs/developer/data-platform/reference/entities/savingrule.md new file mode 100644 index 0000000000..67a1f0c74a --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/savingrule.md @@ -0,0 +1,875 @@ +--- +title: "Saving Rule (savingrule) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the Saving Rule (savingrule) table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# Saving Rule (savingrule) table/entity reference (Microsoft Dataverse) + + + +## Messages + +The following table lists the messages for the Saving Rule (savingrule) table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Assign`
Event: True |`PATCH` /savingrules(*savingruleid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /savingrules
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /savingrules(*savingruleid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `GrantAccess`
Event: True | || +| `IsValidStateTransition`
Event: False | || +| `ModifyAccess`
Event: True | || +| `Retrieve`
Event: True |`GET` /savingrules(*savingruleid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /savingrules
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `RetrievePrincipalAccess`
Event: True | || +| `RetrieveSharedPrincipalsAndAccess`
Event: True | || +| `RevokeAccess`
Event: True | || +| `SetState`
Event: True |`PATCH` /savingrules(*savingruleid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /savingrules(*savingruleid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /savingrules(*savingruleid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + +## Properties + +The following table lists selected properties for the Saving Rule (savingrule) table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **Saving Rule** | +| **DisplayCollectionName** | **Saving Rules** | +| **SchemaName** | `savingrule` | +| **CollectionSchemaName** | `savingrules` | +| **EntitySetName** | `savingrules`| +| **LogicalName** | `savingrule` | +| **LogicalCollectionName** | `savingrules` | +| **PrimaryIdAttribute** | `savingruleid` | +| **PrimaryNameAttribute** |`name` | +| **TableType** | `Standard` | +| **OwnershipType** | `UserOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [endedon](#BKMK_endedon) +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [IsCustomizable](#BKMK_IsCustomizable) +- [Name](#BKMK_Name) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [ruledata](#BKMK_ruledata) +- [savingruleId](#BKMK_savingruleId) +- [startedon](#BKMK_startedon) +- [statecode](#BKMK_statecode) +- [statuscode](#BKMK_statuscode) +- [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) +- [workflowid](#BKMK_workflowid) +- [workqueueid](#BKMK_workqueueid) + +### endedon + +|Property|Value| +|---|---| +|Description|**The date the rule ended**| +|DisplayName|**Ended On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`endedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Auto| +|SourceTypeMask|0| + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### IsCustomizable + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Is Customizable**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`iscustomizable`| +|RequiredLevel|SystemRequired| +|Type|ManagedProperty| + +### Name + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`name`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|850| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### ruledata + +|Property|Value| +|---|---| +|Description|**The details of the rule**| +|DisplayName|**RuleData**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ruledata`| +|RequiredLevel|ApplicationRequired| +|Type|Memo| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|2000| + +### savingruleId + +|Property|Value| +|---|---| +|Description|**Unique identifier for entity instances**| +|DisplayName|**SavingRule**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`savingruleid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### startedon + +|Property|Value| +|---|---| +|Description|**The start date of the rule**| +|DisplayName|**Started On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`startedon`| +|RequiredLevel|ApplicationRequired| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Auto| +|SourceTypeMask|0| + +### statecode + +|Property|Value| +|---|---| +|Description|**Status of the SavingRule**| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statecode`| +|RequiredLevel|SystemRequired| +|Type|State| +|DefaultFormValue|| +|GlobalChoiceName|`savingrule_statecode`| + +#### statecode Choices/Options + +|Value|Details| +|---|---| +|0|Label: **Active**
DefaultStatus: 1
InvariantName: `Active`| +|1|Label: **Inactive**
DefaultStatus: 2
InvariantName: `Inactive`| + +### statuscode + +|Property|Value| +|---|---| +|Description|**Reason for the status of the SavingRule**| +|DisplayName|**Status Reason**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Status| +|DefaultFormValue|| +|GlobalChoiceName|`savingrule_statuscode`| + +#### statuscode Choices/Options + +|Value|Details| +|---|---| +|1|Label: **Active**
State:0
TransitionData: None| +|2|Label: **Inactive**
State:1
TransitionData: None| + +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### UTCConversionTimeZoneCode + +|Property|Value| +|---|---| +|Description|**Time zone code that was in use when the record was created.**| +|DisplayName|**UTC Conversion Time Zone Code**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`utcconversiontimezonecode`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### workflowid + +|Property|Value| +|---|---| +|Description|**the workflow the rule is linked**| +|DisplayName|**Workflow**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`workflowid`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|workflow| + +### workqueueid + +|Property|Value| +|---|---| +|Description|**the workqueue this rule is linked**| +|DisplayName|**Workqueue**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`workqueueid`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|workqueue| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [ComponentIdUnique](#BKMK_ComponentIdUnique) +- [ComponentState](#BKMK_ComponentState) +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [IsManaged](#BKMK_IsManaged) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OverwriteTime](#BKMK_OverwriteTime) +- [OwnerIdName](#BKMK_OwnerIdName) +- [OwnerIdYomiName](#BKMK_OwnerIdYomiName) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) +- [OwningTeam](#BKMK_OwningTeam) +- [OwningUser](#BKMK_OwningUser) +- [SolutionId](#BKMK_SolutionId) +- [SupportingSolutionId](#BKMK_SupportingSolutionId) +- [VersionNumber](#BKMK_VersionNumber) + +### ComponentIdUnique + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Row id unique**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentidunique`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### ComponentState + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Component State**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentstate`| +|RequiredLevel|SystemRequired| +|Type|Picklist| +|DefaultFormValue|| +|GlobalChoiceName|`componentstate`| + +#### ComponentState Choices/Options + +|Value|Label| +|---|---| +|0|**Published**| +|1|**Unpublished**| +|2|**Deleted**| +|3|**Deleted Unpublished**| + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### IsManaged + +|Property|Value| +|---|---| +|Description|**Indicates whether the solution component is part of a managed solution.**| +|DisplayName|**Is Managed**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`ismanaged`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`ismanaged`| +|DefaultValue|False| +|True Label|Managed| +|False Label|Unmanaged| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### OverwriteTime + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Record Overwrite Time**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overwritetime`| +|RequiredLevel|SystemRequired| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerIdName + +|Property|Value| +|---|---| +|Description|**Name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwnerIdYomiName + +|Property|Value| +|---|---| +|Description|**Yomi name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridyominame`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|SystemRequired| +|Type|Lookup| +|Targets|businessunit| + +### OwningTeam + +|Property|Value| +|---|---| +|Description|**Unique identifier for the team that owns the record.**| +|DisplayName|**Owning Team**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningteam`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|team| + +### OwningUser + +|Property|Value| +|---|---| +|Description|**Unique identifier for the user that owns the record.**| +|DisplayName|**Owning User**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owninguser`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### SolutionId + +|Property|Value| +|---|---| +|Description|**Unique identifier of the associated solution.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`solutionid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### SupportingSolutionId + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|False| +|LogicalName|`supportingsolutionid`| +|RequiredLevel|None| +|Type|Uniqueidentifier| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [business_unit_savingrule](#BKMK_business_unit_savingrule) +- [lk_savingrule_createdby](#BKMK_lk_savingrule_createdby) +- [lk_savingrule_createdonbehalfby](#BKMK_lk_savingrule_createdonbehalfby) +- [lk_savingrule_modifiedby](#BKMK_lk_savingrule_modifiedby) +- [lk_savingrule_modifiedonbehalfby](#BKMK_lk_savingrule_modifiedonbehalfby) +- [owner_savingrule](#BKMK_owner_savingrule) +- [savingrule_workflow](#BKMK_savingrule_workflow) +- [savingrule_workqueue](#BKMK_savingrule_workqueue) +- [team_savingrule](#BKMK_team_savingrule) +- [user_savingrule](#BKMK_user_savingrule) + +### business_unit_savingrule + +One-To-Many Relationship: [businessunit business_unit_savingrule](businessunit.md#BKMK_business_unit_savingrule) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessunit`| +|ReferencedAttribute|`businessunitid`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencingEntityNavigationPropertyName|`owningbusinessunit`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_savingrule_createdby + +One-To-Many Relationship: [systemuser lk_savingrule_createdby](systemuser.md#BKMK_lk_savingrule_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_savingrule_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_savingrule_createdonbehalfby](systemuser.md#BKMK_lk_savingrule_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_savingrule_modifiedby + +One-To-Many Relationship: [systemuser lk_savingrule_modifiedby](systemuser.md#BKMK_lk_savingrule_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_savingrule_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_savingrule_modifiedonbehalfby](systemuser.md#BKMK_lk_savingrule_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### owner_savingrule + +One-To-Many Relationship: [owner owner_savingrule](owner.md#BKMK_owner_savingrule) + +|Property|Value| +|---|---| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### savingrule_workflow + +One-To-Many Relationship: [workflow savingrule_workflow](workflow.md#BKMK_savingrule_workflow) + +|Property|Value| +|---|---| +|ReferencedEntity|`workflow`| +|ReferencedAttribute|`workflowid`| +|ReferencingAttribute|`workflowid`| +|ReferencingEntityNavigationPropertyName|`workflowid_Workflow`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Cascade`
Assign: `Cascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `Cascade`
Unshare: `Cascade`| + +### savingrule_workqueue + +One-To-Many Relationship: [workqueue savingrule_workqueue](workqueue.md#BKMK_savingrule_workqueue) + +|Property|Value| +|---|---| +|ReferencedEntity|`workqueue`| +|ReferencedAttribute|`workqueueid`| +|ReferencingAttribute|`workqueueid`| +|ReferencingEntityNavigationPropertyName|`workqueueid_workqueue`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Cascade`
Assign: `Cascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `Cascade`
Unshare: `Cascade`| + +### team_savingrule + +One-To-Many Relationship: [team team_savingrule](team.md#BKMK_team_savingrule) + +|Property|Value| +|---|---| +|ReferencedEntity|`team`| +|ReferencedAttribute|`teamid`| +|ReferencingAttribute|`owningteam`| +|ReferencingEntityNavigationPropertyName|`owningteam`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### user_savingrule + +One-To-Many Relationship: [systemuser user_savingrule](systemuser.md#BKMK_user_savingrule) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`owninguser`| +|ReferencingEntityNavigationPropertyName|`owninguser`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +- [savingrule_AsyncOperations](#BKMK_savingrule_AsyncOperations) +- [savingrule_BulkDeleteFailures](#BKMK_savingrule_BulkDeleteFailures) +- [savingrule_DuplicateBaseRecord](#BKMK_savingrule_DuplicateBaseRecord) +- [savingrule_DuplicateMatchingRecord](#BKMK_savingrule_DuplicateMatchingRecord) +- [savingrule_MailboxTrackingFolders](#BKMK_savingrule_MailboxTrackingFolders) +- [savingrule_PrincipalObjectAttributeAccesses](#BKMK_savingrule_PrincipalObjectAttributeAccesses) +- [savingrule_ProcessSession](#BKMK_savingrule_ProcessSession) +- [savingrule_SyncErrors](#BKMK_savingrule_SyncErrors) + +### savingrule_AsyncOperations + +Many-To-One Relationship: [asyncoperation savingrule_AsyncOperations](asyncoperation.md#BKMK_savingrule_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencingEntity|`asyncoperation`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`savingrule_AsyncOperations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### savingrule_BulkDeleteFailures + +Many-To-One Relationship: [bulkdeletefailure savingrule_BulkDeleteFailures](bulkdeletefailure.md#BKMK_savingrule_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencingEntity|`bulkdeletefailure`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`savingrule_BulkDeleteFailures`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### savingrule_DuplicateBaseRecord + +Many-To-One Relationship: [duplicaterecord savingrule_DuplicateBaseRecord](duplicaterecord.md#BKMK_savingrule_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`baserecordid`| +|ReferencedEntityNavigationPropertyName|`savingrule_DuplicateBaseRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### savingrule_DuplicateMatchingRecord + +Many-To-One Relationship: [duplicaterecord savingrule_DuplicateMatchingRecord](duplicaterecord.md#BKMK_savingrule_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencedEntityNavigationPropertyName|`savingrule_DuplicateMatchingRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### savingrule_MailboxTrackingFolders + +Many-To-One Relationship: [mailboxtrackingfolder savingrule_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_savingrule_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencingEntity|`mailboxtrackingfolder`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`savingrule_MailboxTrackingFolders`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### savingrule_PrincipalObjectAttributeAccesses + +Many-To-One Relationship: [principalobjectattributeaccess savingrule_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_savingrule_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencingEntity|`principalobjectattributeaccess`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`savingrule_PrincipalObjectAttributeAccesses`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### savingrule_ProcessSession + +Many-To-One Relationship: [processsession savingrule_ProcessSession](processsession.md#BKMK_savingrule_ProcessSession) + +|Property|Value| +|---|---| +|ReferencingEntity|`processsession`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`savingrule_ProcessSession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### savingrule_SyncErrors + +Many-To-One Relationship: [syncerror savingrule_SyncErrors](syncerror.md#BKMK_savingrule_SyncErrors) + +|Property|Value| +|---|---| +|ReferencingEntity|`syncerror`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`savingrule_SyncErrors`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/sensitivitylabel.md b/powerapps-docs/developer/data-platform/reference/entities/sensitivitylabel.md new file mode 100644 index 0000000000..d6761578cb --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/sensitivitylabel.md @@ -0,0 +1,281 @@ +--- +title: "Sensitivity Label (sensitivitylabel) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the Sensitivity Label (sensitivitylabel) table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# Sensitivity Label (sensitivitylabel) table/entity reference (Microsoft Dataverse) + +Virtual entity that represents Sensitivity Labels + +## Messages + +The following table lists the messages for the Sensitivity Label (sensitivitylabel) table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /sensitivitylabels
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /sensitivitylabels(*sensitivitylabelid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `Retrieve`
Event: True |`GET` /sensitivitylabels(*sensitivitylabelid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveEntityChanges`
Event: True | || +| `RetrieveMultiple`
Event: True |`GET` /sensitivitylabels
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `Update`
Event: True |`PATCH` /sensitivitylabels(*sensitivitylabelid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /sensitivitylabels(*sensitivitylabelid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + +## Properties + +The following table lists selected properties for the Sensitivity Label (sensitivitylabel) table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **Sensitivity Label** | +| **DisplayCollectionName** | **Sensitivity Labels** | +| **SchemaName** | `sensitivitylabel` | +| **CollectionSchemaName** | `sensitivitylabels` | +| **EntitySetName** | `sensitivitylabels`| +| **LogicalName** | `sensitivitylabel` | +| **LogicalCollectionName** | `sensitivitylabels` | +| **PrimaryIdAttribute** | `sensitivitylabelid` | +| **PrimaryNameAttribute** |`name` | +| **TableType** | `Virtual` | +| **OwnershipType** | `OrganizationOwned` | + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [ApplicableTo](#BKMK_ApplicableTo) +- [Color](#BKMK_Color) +- [Description](#BKMK_Description) +- [DisplayName](#BKMK_DisplayName) +- [IsDefault](#BKMK_IsDefault) +- [IsEnabled](#BKMK_IsEnabled) +- [LabelActions](#BKMK_LabelActions) +- [Name](#BKMK_Name) +- [ParentSensitivityLabelId](#BKMK_ParentSensitivityLabelId) +- [Priority](#BKMK_Priority) +- [sensitivitylabelId](#BKMK_sensitivitylabelId) +- [Tooltip](#BKMK_Tooltip) + +### ApplicableTo + +|Property|Value| +|---|---| +|Description|**The formats that the sensitivity label is applicable to.**| +|DisplayName|**Applicable To**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`applicableto`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1000| + +### Color + +|Property|Value| +|---|---| +|Description|**The color of the sensitivity label.**| +|DisplayName|**Color**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`color`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### Description + +|Property|Value| +|---|---| +|Description|**The description of the sensitivity label.**| +|DisplayName|**Description**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`description`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1000| + +### DisplayName + +|Property|Value| +|---|---| +|Description|**The display name of the sensitivity label.**| +|DisplayName|**DisplayName**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`displayname`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### IsDefault + +|Property|Value| +|---|---| +|Description|**Indicates if the sensitivity label is the default.**| +|DisplayName|**Is Default**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`isdefault`| +|RequiredLevel|None| +|Type|Boolean| +|GlobalChoiceName|`_sensitivitylabel_isdefault`| +|DefaultValue|False| +|True Label|| +|False Label|| + +### IsEnabled + +|Property|Value| +|---|---| +|Description|**Indicates if the sensitivity label is enabled.**| +|DisplayName|**Is Enabled**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`isenabled`| +|RequiredLevel|None| +|Type|Boolean| +|GlobalChoiceName|`_sensitivitylabel_isenabled`| +|DefaultValue|False| +|True Label|| +|False Label|| + +### LabelActions + +|Property|Value| +|---|---| +|Description|**The label actions of the sensitivity label.**| +|DisplayName|**Label Actions**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`labelactions`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1073741823| + +### Name + +|Property|Value| +|---|---| +|Description|**The name of the sensitivity label.**| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`name`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### ParentSensitivityLabelId + +|Property|Value| +|---|---| +|Description|**Unique identifier of a parent sensitivity label.**| +|DisplayName|**Parent Sensitivity Label Id**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`parentsensitivitylabelid`| +|RequiredLevel|None| +|Type|Uniqueidentifier| + +### Priority + +|Property|Value| +|---|---| +|Description|**The priority of the sensitivity label.**| +|DisplayName|**Priority**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`priority`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|0| + +### sensitivitylabelId + +|Property|Value| +|---|---| +|Description|**Unique identifier of a Sensitivity Label.**| +|DisplayName|**Sensitivity Label Id**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`sensitivitylabelid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### Tooltip + +|Property|Value| +|---|---| +|Description|**The tooltip of the sensitivity label.**| +|DisplayName|**Tooltip**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`tooltip`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1000| + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +### sensitivitylabel_email_SensitivityLabelId + +Many-To-One Relationship: [email sensitivitylabel_email_SensitivityLabelId](email.md#BKMK_sensitivitylabel_email_SensitivityLabelId) + +|Property|Value| +|---|---| +|ReferencingEntity|`email`| +|ReferencingAttribute|`sensitivitylabelid`| +|ReferencedEntityNavigationPropertyName|`sensitivitylabel_email_SensitivityLabelId`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/serviceendpoint.md b/powerapps-docs/developer/data-platform/reference/entities/serviceendpoint.md index 8baf48243d..ce8e9f5adc 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/serviceendpoint.md +++ b/powerapps-docs/developer/data-platform/reference/entities/serviceendpoint.md @@ -172,6 +172,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |8|**Webhook**| |9|**Event Grid**| |10|**Managed Data Lake**| +|11|**Container Storage**| ### Description @@ -243,7 +244,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |LogicalName|`managedidentityid`| |RequiredLevel|None| |Type|Lookup| -|Targets|| +|Targets|managedidentity| ### MessageCharset @@ -265,6 +266,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |---|---| |0|**Default**| |1|**UTF8**| +|2|**Windows1252**| ### MessageFormat @@ -802,6 +804,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [keyvaultreference_ServiceEndpoint](#BKMK_keyvaultreference_ServiceEndpoint) - [lk_serviceendpointbase_createdonbehalfby](#BKMK_lk_serviceendpointbase_createdonbehalfby) - [lk_serviceendpointbase_modifiedonbehalfby](#BKMK_lk_serviceendpointbase_modifiedonbehalfby) +- [managedidentity_ServiceEndpoint](#BKMK_managedidentity_ServiceEndpoint) - [modifiedby_serviceendpoint](#BKMK_modifiedby_serviceendpoint) - [organization_serviceendpoint](#BKMK_organization_serviceendpoint) @@ -857,6 +860,19 @@ One-To-Many Relationship: [systemuser lk_serviceendpointbase_modifiedonbehalfby] |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### managedidentity_ServiceEndpoint + +One-To-Many Relationship: [managedidentity managedidentity_ServiceEndpoint](managedidentity.md#BKMK_managedidentity_ServiceEndpoint) + +|Property|Value| +|---|---| +|ReferencedEntity|`managedidentity`| +|ReferencedAttribute|`managedidentityid`| +|ReferencingAttribute|`managedidentityid`| +|ReferencingEntityNavigationPropertyName|`managedidentityid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### modifiedby_serviceendpoint One-To-Many Relationship: [systemuser modifiedby_serviceendpoint](systemuser.md#BKMK_modifiedby_serviceendpoint) diff --git a/powerapps-docs/developer/data-platform/reference/entities/sharepointmanagedidentity.md b/powerapps-docs/developer/data-platform/reference/entities/sharepointmanagedidentity.md index 40f8b05a55..9619cc4dc2 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/sharepointmanagedidentity.md +++ b/powerapps-docs/developer/data-platform/reference/entities/sharepointmanagedidentity.md @@ -657,4 +657,4 @@ Many-To-One Relationship: [syncerror sharepointmanagedidentity_SyncErrors](synce [Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) [Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) - + diff --git a/powerapps-docs/developer/data-platform/reference/entities/signal.md b/powerapps-docs/developer/data-platform/reference/entities/signal.md index 992c23201a..79d2d509e8 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/signal.md +++ b/powerapps-docs/developer/data-platform/reference/entities/signal.md @@ -433,7 +433,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| diff --git a/powerapps-docs/developer/data-platform/reference/entities/similarityrule.md b/powerapps-docs/developer/data-platform/reference/entities/similarityrule.md index b4e808210f..c36865fc76 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/similarityrule.md +++ b/powerapps-docs/developer/data-platform/reference/entities/similarityrule.md @@ -625,6 +625,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |4812|**Time Zone Localized Name**| |5000|**Recently Used**| |5004|**NL2SQ Registration Information**| +|5006|**Event Expander Breadcrumb**| |7000|**System Application Metadata**| |7001|**User Application Metadata**| |7100|**Solution**| @@ -830,268 +831,300 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |10083|**ApplicationUser**| |10086|**OData v4 Data Source**| |10087|**Workflow Binary**| -|10088|**Credential**| -|10089|**Desktop Flow Module**| -|10090|**Flow Capacity Assignment**| -|10091|**Flow Credential Application**| -|10092|**Flow Event**| -|10093|**Flow Machine**| -|10094|**Flow Machine Group**| -|10095|**Flow Machine Image**| -|10096|**Flow Machine Image Version**| -|10097|**Flow Machine Network**| -|10098|**ProcessStageParameter**| -|10099|**Work Queue**| -|10100|**Work Queue Item**| -|10101|**Desktop Flow Binary**| -|10102|**Flow Log**| -|10103|**Flow Run**| -|10104|**Action Approval Model**| -|10105|**Approval**| -|10106|**Approval Request**| -|10107|**Approval Response**| -|10108|**Approval Step**| -|10109|**Await All Action Approval Model**| -|10110|**Await All Approval Model**| -|10111|**Basic Approval Model Data**| -|10112|**Flow Approval**| -|10121|**Connection Reference**| -|10122|**DVFileSearch**| -|10123|**DVFileSearchAttribute**| -|10124|**DVFileSearchEntity**| -|10125|**DVTableSearch**| -|10126|**DVTableSearchAttribute**| -|10127|**DVTableSearchEntity**| -|10128|**AICopilot**| -|10129|**AIPluginAuth**| -|10130|**AI Plugin Conversation Starter**| -|10131|**AI Plugin Conversation Starter Mapping**| -|10132|**AI Plugin Governance**| -|10133|**AI Plugin Governance Extended**| -|10134|**AIPluginOperationResponseTemplate**| -|10135|**AIPluginTitle**| -|10136|**SideloadedAIPlugin**| -|10137|**AIPlugin**| -|10138|**AIPluginExternalSchema**| -|10139|**AIPluginExternalSchemaProperty**| -|10140|**AIPluginInstance**| -|10141|**AIPluginOperation**| -|10142|**AIPluginOperationParameter**| -|10143|**AIPluginUserSetting**| -|10145|**AI Event**| -|10146|**AI Builder Feedback Loop**| -|10147|**AI Form Processing Document**| -|10148|**AI Object Detection Image**| -|10149|**AI Object Detection Label**| -|10150|**AI Object Detection Bounding Box**| -|10151|**AI Object Detection Image Mapping**| -|10153|**AI Builder Dataset**| -|10154|**AI Builder Dataset File**| -|10155|**AI Builder Dataset Record**| -|10156|**AI Builder Datasets Container**| -|10157|**AI Builder File**| -|10158|**AI Builder File Attached Data**| -|10159|**Help Page**| -|10160|**Tour**| -|10161|**BotContent**| -|10162|**ConversationTranscript**| -|10163|**Copilot**| -|10164|**Copilot component**| -|10165|**Copilot component collection**| -|10176|**Comment**| -|10177|**Governance Configuration**| -|10178|**Fabric AISkill**| -|10179|**App Insights Metadata**| -|10180|**Dataflow Connection Reference**| -|10181|**Schedule**| -|10182|**Dataflow Template**| -|10183|**Dataflow DatalakeFolder**| -|10184|**Data Movement Service Request**| -|10185|**Data Movement Service Request Status**| -|10186|**DMS Sync Request**| -|10187|**DMS Sync Status**| -|10188|**Knowledge Asset Configuration**| -|10189|**Module Run Detail**| -|10190|**QnA**| -|10191|**Salesforce Structured Object**| -|10192|**Salesforce Structured QnA Config**| -|10193|**Workflow Action Status**| -|10194|**FederatedKnowledgeConfiguration**| -|10195|**FederatedKnowledgeEntityConfiguration**| -|10196|**Form Mapping**| -|10197|**Copilot Interactions**| -|10198|**PDF Setting**| -|10199|**Activity File Attachment**| -|10200|**Teams chat**| -|10201|**Service Configuration**| -|10202|**SLA KPI**| -|10203|**Integrated search provider**| -|10204|**Knowledge Management Setting**| -|10205|**Knowledge Federated Article**| -|10206|**Knowledge Federated Article Incident**| -|10207|**Search provider**| -|10208|**Knowledge Article Image**| -|10209|**Knowledge Configuration**| -|10210|**Knowledge Interaction Insight**| -|10211|**Knowledge Search Insight**| -|10212|**Favorite knowledge article**| -|10213|**Knowledge article language setting**| -|10214|**Knowledge Article Attachment**| -|10215|**Knowledge personalization**| -|10216|**Knowledge Article Template**| -|10217|**Knowledge search personal filter config**| -|10218|**Knowledge search filter**| -|10220|**SupportUserTable**| -|10221|**FxExpression**| -|10222|**Function**| -|10223|**Plug-in**| -|10224|**PowerfxRule**| -|10225|**Planner Business Scenario**| -|10226|**Planner Sync Action**| -|10227|**Ms Graph Resource To Subscription**| -|10228|**Virtual Entity Metadata**| -|10229|**Background Operation**| -|10230|**Report Parameter**| -|10231|**MobileOfflineProfileExtension**| -|10232|**MobileOfflineProfileItemFilter**| -|10233|**TeamMobileOfflineProfileMembership**| -|10234|**UserMobileOfflineProfileMembership**| -|10235|**OrganizationDataSyncSubscription**| -|10236|**OrganizationDataSyncSubscriptionEntity**| -|10237|**OrganizationDataSyncSubscriptionFnoTable**| -|10238|**OrganizationDataSyncFnoState**| -|10239|**OrganizationDataSyncState**| -|10240|**ArchiveCleanupInfo**| -|10241|**ArchiveCleanupOperation**| -|10242|**BulkArchiveConfig**| -|10243|**BulkArchiveFailureDetail**| -|10244|**BulkArchiveOperation**| -|10245|**BulkArchiveOperationDetail**| -|10246|**EnableArchivalRequest**| -|10247|**MetadataForArchival**| -|10248|**ReconciliationEntityInfo**| -|10249|**ReconciliationEntityStepInfo**| -|10250|**ReconciliationInfo**| -|10251|**RetentionCleanupInfo**| -|10252|**RetentionCleanupOperation**| -|10253|**RetentionConfig**| -|10254|**RetentionFailureDetail**| -|10255|**RetentionOperation**| -|10256|**RetentionOperationDetail**| -|10257|**RetentionSuccessDetail**| -|10258|**CertificateCredential**| -|10259|**Notification**| -|10260|**User Rating**| -|10261|**Mobile App**| -|10262|**Insights Store Data Source**| -|10263|**Insights Store Virtual Entity**| -|10264|**RoleEditorLayout**| -|10265|**Deleted Record Reference**| -|10266|**Restore Deleted Records Configuration**| -|10267|**App Action**| -|10268|**App Action Migration**| -|10269|**App Action Rule**| -|10272|**Card**| -|10273|**Card State Item**| -|10276|**Entity link chat configuration**| -|10277|**SharePoint Managed Identity**| -|10278|**AI Insight Card**| -|10279|**AI Skill Config**| -|10280|**Rich Text Attachment**| -|10281|**Custom Control Extended Setting**| -|10282|**Timeline Pin**| -|10283|**Virtual Connector Data Source**| -|10284|**Virtual Table Column Candidate**| -|10286|**PM Analysis History**| -|10287|**PM Business Rule Automation Config**| -|10288|**PM Calendar**| -|10289|**PM Calendar Version**| -|10290|**PM Inferred Task**| -|10291|**PM Process Extended Metadata Version**| -|10292|**PM Process Template**| -|10293|**PM Process User Settings**| -|10294|**PM Process Version**| -|10295|**PM Recording**| -|10296|**PM Simulation**| -|10297|**PM Template**| -|10298|**PM View**| -|10299|**Analysis Component**| -|10300|**Analysis Job**| -|10301|**Analysis Override**| -|10302|**Analysis Result**| -|10303|**Analysis Result Detail**| -|10304|**Solution Health Rule**| -|10305|**Solution Health Rule Argument**| -|10306|**Solution Health Rule Set**| -|10307|**Power BI Dataset**| -|10308|**powerbidatasetapdx**| -|10309|**Power BI Mashup Parameter**| -|10310|**Power BI Report**| -|10311|**powerbireportapdx**| -|10312|**File Upload**| -|10313|**MainFewShot**| -|10314|**MakerFewShot**| -|10315|**SearchAttributeSettings**| -|10316|**SearchCustomAnalyzer**| -|10317|**SearchRelationshipSettings**| -|10318|**SearchResultsCache**| -|10319|**Search Telemetry**| -|10320|**ViewAsExampleQuestion**| -|10321|**CopilotExampleQuestion**| -|10322|**CopilotGlossaryTerm**| -|10323|**CopilotSynonyms**| -|10324|**Site Component**| -|10325|**Site**| -|10326|**Site Language**| -|10327|**Power Pages Site Published**| -|10330|**External Identity**| -|10331|**Invitation**| -|10332|**Invite Redemption**| -|10333|**Portal Comment**| -|10334|**Setting**| -|10335|**Multistep Form Session**| -|10339|**Ad Placement**| -|10340|**Column Permission**| -|10341|**Column Permission Profile**| -|10342|**Content Snippet**| -|10343|**Basic Form**| -|10344|**Basic Form Metadata**| -|10345|**List**| -|10346|**Table Permission**| -|10347|**Page Template**| -|10348|**Poll Placement**| -|10349|**Power Pages Core Entity DS**| -|10350|**Publishing State**| -|10351|**Publishing State Transition Rule**| -|10352|**Redirect**| -|10353|**Shortcut**| -|10354|**Site Marker**| -|10355|**Site Setting**| -|10356|**Web File**| -|10357|**Multistep Form**| -|10358|**Multistep Form Metadata**| -|10359|**Form Step**| -|10360|**Web Link**| -|10361|**Web Link Set**| -|10362|**Web Page**| -|10363|**Web Page Access Control Rule**| -|10364|**Web Role**| -|10365|**Website**| -|10366|**Website Access**| -|10367|**Website Language**| -|10368|**Web Template**| -|10375|**Power Pages Scan Report**| -|10376|**Power Pages Log**| -|10377|**PowerPagesManagedIdentity**| -|10378|**Power Pages Site AI Feedback**| -|10383|**Catalog Submission Files**| -|10384|**Package Submission Store**| -|10385|**Processor Registration**| -|10386|**signal**| -|10387|**Signal Registration**| -|10388|**trait**| -|10389|**Trait Registration**| -|18085|**Event Expander Breadcrumb**| +|10088|**Business Process**| +|10089|**Credential**| +|10090|**Desktop Flow Module**| +|10091|**Flow Capacity Assignment**| +|10092|**Flow Credential Application**| +|10093|**Flow Event**| +|10094|**Flow Machine**| +|10095|**Flow Machine Group**| +|10096|**Flow Machine Image**| +|10097|**Flow Machine Image Version**| +|10098|**Flow Machine Network**| +|10099|**ProcessStageParameter**| +|10100|**Saving Rule**| +|10101|**Tag**| +|10102|**Tagged Flow Session**| +|10103|**Tagged Process**| +|10104|**Workflow Metadata**| +|10105|**Work Queue**| +|10106|**Work Queue Item**| +|10107|**Desktop Flow Binary**| +|10108|**Flow Aggregation**| +|10109|**Flow Log**| +|10110|**Flow Run**| +|10111|**Action Approval Model**| +|10112|**Approval**| +|10113|**Approval Request**| +|10114|**Approval Response**| +|10115|**Approval Step**| +|10116|**Await All Action Approval Model**| +|10117|**Await All Approval Model**| +|10118|**Basic Approval Model Data**| +|10119|**Flow Approval**| +|10128|**Connection Reference**| +|10129|**DVFileSearch**| +|10130|**DVFileSearchAttribute**| +|10131|**DVFileSearchEntity**| +|10132|**DVTableSearch**| +|10133|**DVTableSearchAttribute**| +|10134|**DVTableSearchEntity**| +|10135|**AICopilot**| +|10136|**AIPluginAuth**| +|10137|**AI Plugin Conversation Starter**| +|10138|**AI Plugin Conversation Starter Mapping**| +|10139|**AI Plugin Governance**| +|10140|**AI Plugin Governance Extended**| +|10141|**AIPluginOperationResponseTemplate**| +|10142|**AIPluginTitle**| +|10143|**SideloadedAIPlugin**| +|10144|**AIPlugin**| +|10145|**AIPluginExternalSchema**| +|10146|**AIPluginExternalSchemaProperty**| +|10147|**AIPluginInstance**| +|10148|**AIPluginOperation**| +|10149|**AIPluginOperationParameter**| +|10150|**AIPluginUserSetting**| +|10152|**Data Processing Event**| +|10153|**AI Event**| +|10154|**AI Model Catalog**| +|10155|**AI Builder Feedback Loop**| +|10156|**AI Form Processing Document**| +|10157|**AI Object Detection Image**| +|10158|**AI Object Detection Label**| +|10159|**AI Object Detection Bounding Box**| +|10160|**AI Object Detection Image Mapping**| +|10162|**AI Builder Dataset**| +|10163|**AI Builder Dataset File**| +|10164|**AI Builder Dataset Record**| +|10165|**AI Builder Datasets Container**| +|10166|**AI Builder File**| +|10167|**AI Builder File Attached Data**| +|10168|**Help Page**| +|10169|**Tour**| +|10170|**BotContent**| +|10171|**ConversationTranscript**| +|10172|**Copilot**| +|10173|**Copilot component**| +|10174|**Copilot component collection**| +|10185|**Comment**| +|10186|**Governance Configuration**| +|10187|**Fabric AISkill**| +|10188|**App Insights Metadata**| +|10189|**Dataflow Connection Reference**| +|10190|**Schedule**| +|10191|**Dataflow Template**| +|10192|**Dataflow DatalakeFolder**| +|10193|**Data Movement Service Request**| +|10194|**Data Movement Service Request Status**| +|10195|**DMS Sync Request**| +|10196|**DMS Sync Status**| +|10197|**Knowledge Asset Configuration**| +|10198|**Module Run Detail**| +|10199|**QnA**| +|10200|**Salesforce Structured Object**| +|10201|**Salesforce Structured QnA Config**| +|10202|**Workflow Action Status**| +|10203|**FederatedKnowledgeConfiguration**| +|10204|**FederatedKnowledgeEntityConfiguration**| +|10205|**Form Mapping**| +|10206|**Copilot Interactions**| +|10207|**PDF Setting**| +|10208|**Activity File Attachment**| +|10209|**Teams chat**| +|10210|**Service Configuration**| +|10211|**SLA KPI**| +|10212|**Integrated search provider**| +|10213|**Knowledge Management Setting**| +|10214|**Knowledge Federated Article**| +|10215|**Knowledge Federated Article Incident**| +|10216|**Search provider**| +|10217|**Knowledge Article Image**| +|10218|**Knowledge Configuration**| +|10219|**Knowledge Interaction Insight**| +|10220|**Knowledge Search Insight**| +|10221|**Favorite knowledge article**| +|10222|**Knowledge article language setting**| +|10223|**Knowledge Article Attachment**| +|10224|**Knowledge personalization**| +|10225|**Knowledge Article Template**| +|10226|**Knowledge search personal filter config**| +|10227|**Knowledge search filter**| +|10229|**Entity Cluster Configuration**| +|10230|**SupportUserTable**| +|10231|**FxExpression**| +|10232|**Function**| +|10233|**Plug-in**| +|10234|**PowerfxRule**| +|10235|**Planner Business Scenario**| +|10236|**Planner Sync Action**| +|10237|**Sensitivity Label**| +|10238|**Ms Graph Resource To Subscription**| +|10239|**Virtual Entity Metadata**| +|10240|**Background Operation**| +|10241|**Report Parameter**| +|10242|**MobileOfflineProfileExtension**| +|10243|**MobileOfflineProfileItemFilter**| +|10244|**TeamMobileOfflineProfileMembership**| +|10245|**UserMobileOfflineProfileMembership**| +|10246|**OrganizationDataSyncSubscription**| +|10247|**OrganizationDataSyncSubscriptionEntity**| +|10248|**OrganizationDataSyncSubscriptionFnoTable**| +|10249|**OrganizationDataSyncFnoState**| +|10250|**OrganizationDataSyncState**| +|10251|**ArchiveCleanupInfo**| +|10252|**ArchiveCleanupOperation**| +|10253|**BulkArchiveConfig**| +|10254|**BulkArchiveFailureDetail**| +|10255|**BulkArchiveOperation**| +|10256|**BulkArchiveOperationDetail**| +|10257|**EnableArchivalRequest**| +|10258|**MetadataForArchival**| +|10259|**ReconciliationEntityInfo**| +|10260|**ReconciliationEntityStepInfo**| +|10261|**ReconciliationInfo**| +|10262|**RetentionCleanupInfo**| +|10263|**RetentionCleanupOperation**| +|10264|**RetentionConfig**| +|10265|**RetentionFailureDetail**| +|10266|**RetentionOperation**| +|10267|**RetentionOperationDetail**| +|10268|**RetentionSuccessDetail**| +|10269|**CertificateCredential**| +|10270|**Notification**| +|10271|**User Rating**| +|10272|**Mobile App**| +|10273|**Insights Store Data Source**| +|10274|**Insights Store Virtual Entity**| +|10275|**RoleEditorLayout**| +|10276|**Deleted Record Reference**| +|10277|**Restore Deleted Records Configuration**| +|10278|**App Action**| +|10279|**App Action Migration**| +|10280|**App Action Rule**| +|10283|**Card**| +|10284|**Card State Item**| +|10287|**Entity link chat configuration**| +|10288|**SharePoint Managed Identity**| +|10289|**AI Insight Card**| +|10290|**AI Skill Config**| +|10291|**Data Workspace**| +|10292|**Plan**| +|10293|**Plan Artifact**| +|10294|**Plan Attachment**| +|10295|**Rich Text Attachment**| +|10296|**Custom Control Extended Setting**| +|10298|**Timeline Pin**| +|10299|**Virtual Connector Data Source**| +|10300|**Virtual Table Column Candidate**| +|10302|**PM Analysis History**| +|10303|**PM Business Rule Automation Config**| +|10304|**PM Calendar**| +|10305|**PM Calendar Version**| +|10306|**PM Inferred Task**| +|10307|**PM Process Extended Metadata Version**| +|10308|**PM Process Template**| +|10309|**PM Process User Settings**| +|10310|**PM Process Version**| +|10311|**PM Recording**| +|10312|**PM Simulation**| +|10313|**PM Template**| +|10314|**PM View**| +|10315|**Analysis Component**| +|10316|**Analysis Job**| +|10317|**Analysis Override**| +|10318|**Analysis Result**| +|10319|**Analysis Result Detail**| +|10320|**Solution Health Rule**| +|10321|**Solution Health Rule Argument**| +|10322|**Solution Health Rule Set**| +|10323|**Power BI Dataset**| +|10324|**powerbidatasetapdx**| +|10325|**Power BI Mashup Parameter**| +|10326|**Power BI Report**| +|10327|**powerbireportapdx**| +|10328|**File Upload**| +|10329|**MainFewShot**| +|10330|**MakerFewShot**| +|10331|**SearchAttributeSettings**| +|10332|**SearchCustomAnalyzer**| +|10333|**SearchRelationshipSettings**| +|10334|**SearchResultsCache**| +|10335|**Search Telemetry**| +|10336|**TextDataRecordsIndexingStatus**| +|10337|**ViewAsExampleQuestion**| +|10338|**CopilotExampleQuestion**| +|10339|**CopilotGlossaryTerm**| +|10340|**CopilotSynonyms**| +|10341|**Site Component**| +|10342|**Site**| +|10343|**Site Language**| +|10344|**Power Pages Site Published**| +|10347|**External Identity**| +|10348|**Invitation**| +|10349|**Invite Redemption**| +|10350|**Portal Comment**| +|10351|**Setting**| +|10352|**Multistep Form Session**| +|10356|**Ad Placement**| +|10357|**Column Permission**| +|10358|**Column Permission Profile**| +|10359|**Content Snippet**| +|10360|**Basic Form**| +|10361|**Basic Form Metadata**| +|10362|**List**| +|10363|**Table Permission**| +|10364|**Page Template**| +|10365|**Poll Placement**| +|10366|**Power Pages Core Entity DS**| +|10367|**Publishing State**| +|10368|**Publishing State Transition Rule**| +|10369|**Redirect**| +|10370|**Shortcut**| +|10371|**Site Marker**| +|10372|**Site Setting**| +|10373|**Web File**| +|10374|**Multistep Form**| +|10375|**Multistep Form Metadata**| +|10376|**Form Step**| +|10377|**Web Link**| +|10378|**Web Link Set**| +|10379|**Web Page**| +|10380|**Web Page Access Control Rule**| +|10381|**Web Role**| +|10382|**Website**| +|10383|**Website Access**| +|10384|**Website Language**| +|10385|**Web Template**| +|10392|**Power Pages Scan Report**| +|10393|**Power Pages Log**| +|10394|**PowerPagesManagedIdentity**| +|10395|**Power Pages Site AI Feedback**| +|10400|**Catalog Submission Files**| +|10401|**Package Submission Store**| +|10402|**processor registration**| +|10403|**signal**| +|10404|**signal registration**| +|10405|**trait**| +|10406|**trait registration**| +|10627|**FederatedKnowledgeCitation**| +|10628|**FederatedKnowledgeMetadataRefresh**| +|10629|**Email Address Configuration**| +|10630|**indexedtrait**| +|10645|**AI Evaluation Configuration**| +|10646|**AI Evaluation Run**| +|10647|**AI Test Case**| +|10648|**AI Test Case Document**| +|10649|**AI Test Case Input**| +|10650|**AI Test Run**| +|10651|**AI Test Run Batch**| +|10667|**Approval Process**| +|10668|**Approval Stage Approval**| +|10669|**Approval Stage Condition**| +|10670|**Approval Stage Order**| +|10671|**UnstructuredFileSearchEntity**| +|10672|**UnstructuredFileSearchRecord**| ### ComponentState @@ -1413,6 +1446,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |4812|**Time Zone Localized Name**| |5000|**Recently Used**| |5004|**NL2SQ Registration Information**| +|5006|**Event Expander Breadcrumb**| |7000|**System Application Metadata**| |7001|**User Application Metadata**| |7100|**Solution**| @@ -1618,268 +1652,300 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |10083|**ApplicationUser**| |10086|**OData v4 Data Source**| |10087|**Workflow Binary**| -|10088|**Credential**| -|10089|**Desktop Flow Module**| -|10090|**Flow Capacity Assignment**| -|10091|**Flow Credential Application**| -|10092|**Flow Event**| -|10093|**Flow Machine**| -|10094|**Flow Machine Group**| -|10095|**Flow Machine Image**| -|10096|**Flow Machine Image Version**| -|10097|**Flow Machine Network**| -|10098|**ProcessStageParameter**| -|10099|**Work Queue**| -|10100|**Work Queue Item**| -|10101|**Desktop Flow Binary**| -|10102|**Flow Log**| -|10103|**Flow Run**| -|10104|**Action Approval Model**| -|10105|**Approval**| -|10106|**Approval Request**| -|10107|**Approval Response**| -|10108|**Approval Step**| -|10109|**Await All Action Approval Model**| -|10110|**Await All Approval Model**| -|10111|**Basic Approval Model Data**| -|10112|**Flow Approval**| -|10121|**Connection Reference**| -|10122|**DVFileSearch**| -|10123|**DVFileSearchAttribute**| -|10124|**DVFileSearchEntity**| -|10125|**DVTableSearch**| -|10126|**DVTableSearchAttribute**| -|10127|**DVTableSearchEntity**| -|10128|**AICopilot**| -|10129|**AIPluginAuth**| -|10130|**AI Plugin Conversation Starter**| -|10131|**AI Plugin Conversation Starter Mapping**| -|10132|**AI Plugin Governance**| -|10133|**AI Plugin Governance Extended**| -|10134|**AIPluginOperationResponseTemplate**| -|10135|**AIPluginTitle**| -|10136|**SideloadedAIPlugin**| -|10137|**AIPlugin**| -|10138|**AIPluginExternalSchema**| -|10139|**AIPluginExternalSchemaProperty**| -|10140|**AIPluginInstance**| -|10141|**AIPluginOperation**| -|10142|**AIPluginOperationParameter**| -|10143|**AIPluginUserSetting**| -|10145|**AI Event**| -|10146|**AI Builder Feedback Loop**| -|10147|**AI Form Processing Document**| -|10148|**AI Object Detection Image**| -|10149|**AI Object Detection Label**| -|10150|**AI Object Detection Bounding Box**| -|10151|**AI Object Detection Image Mapping**| -|10153|**AI Builder Dataset**| -|10154|**AI Builder Dataset File**| -|10155|**AI Builder Dataset Record**| -|10156|**AI Builder Datasets Container**| -|10157|**AI Builder File**| -|10158|**AI Builder File Attached Data**| -|10159|**Help Page**| -|10160|**Tour**| -|10161|**BotContent**| -|10162|**ConversationTranscript**| -|10163|**Copilot**| -|10164|**Copilot component**| -|10165|**Copilot component collection**| -|10176|**Comment**| -|10177|**Governance Configuration**| -|10178|**Fabric AISkill**| -|10179|**App Insights Metadata**| -|10180|**Dataflow Connection Reference**| -|10181|**Schedule**| -|10182|**Dataflow Template**| -|10183|**Dataflow DatalakeFolder**| -|10184|**Data Movement Service Request**| -|10185|**Data Movement Service Request Status**| -|10186|**DMS Sync Request**| -|10187|**DMS Sync Status**| -|10188|**Knowledge Asset Configuration**| -|10189|**Module Run Detail**| -|10190|**QnA**| -|10191|**Salesforce Structured Object**| -|10192|**Salesforce Structured QnA Config**| -|10193|**Workflow Action Status**| -|10194|**FederatedKnowledgeConfiguration**| -|10195|**FederatedKnowledgeEntityConfiguration**| -|10196|**Form Mapping**| -|10197|**Copilot Interactions**| -|10198|**PDF Setting**| -|10199|**Activity File Attachment**| -|10200|**Teams chat**| -|10201|**Service Configuration**| -|10202|**SLA KPI**| -|10203|**Integrated search provider**| -|10204|**Knowledge Management Setting**| -|10205|**Knowledge Federated Article**| -|10206|**Knowledge Federated Article Incident**| -|10207|**Search provider**| -|10208|**Knowledge Article Image**| -|10209|**Knowledge Configuration**| -|10210|**Knowledge Interaction Insight**| -|10211|**Knowledge Search Insight**| -|10212|**Favorite knowledge article**| -|10213|**Knowledge article language setting**| -|10214|**Knowledge Article Attachment**| -|10215|**Knowledge personalization**| -|10216|**Knowledge Article Template**| -|10217|**Knowledge search personal filter config**| -|10218|**Knowledge search filter**| -|10220|**SupportUserTable**| -|10221|**FxExpression**| -|10222|**Function**| -|10223|**Plug-in**| -|10224|**PowerfxRule**| -|10225|**Planner Business Scenario**| -|10226|**Planner Sync Action**| -|10227|**Ms Graph Resource To Subscription**| -|10228|**Virtual Entity Metadata**| -|10229|**Background Operation**| -|10230|**Report Parameter**| -|10231|**MobileOfflineProfileExtension**| -|10232|**MobileOfflineProfileItemFilter**| -|10233|**TeamMobileOfflineProfileMembership**| -|10234|**UserMobileOfflineProfileMembership**| -|10235|**OrganizationDataSyncSubscription**| -|10236|**OrganizationDataSyncSubscriptionEntity**| -|10237|**OrganizationDataSyncSubscriptionFnoTable**| -|10238|**OrganizationDataSyncFnoState**| -|10239|**OrganizationDataSyncState**| -|10240|**ArchiveCleanupInfo**| -|10241|**ArchiveCleanupOperation**| -|10242|**BulkArchiveConfig**| -|10243|**BulkArchiveFailureDetail**| -|10244|**BulkArchiveOperation**| -|10245|**BulkArchiveOperationDetail**| -|10246|**EnableArchivalRequest**| -|10247|**MetadataForArchival**| -|10248|**ReconciliationEntityInfo**| -|10249|**ReconciliationEntityStepInfo**| -|10250|**ReconciliationInfo**| -|10251|**RetentionCleanupInfo**| -|10252|**RetentionCleanupOperation**| -|10253|**RetentionConfig**| -|10254|**RetentionFailureDetail**| -|10255|**RetentionOperation**| -|10256|**RetentionOperationDetail**| -|10257|**RetentionSuccessDetail**| -|10258|**CertificateCredential**| -|10259|**Notification**| -|10260|**User Rating**| -|10261|**Mobile App**| -|10262|**Insights Store Data Source**| -|10263|**Insights Store Virtual Entity**| -|10264|**RoleEditorLayout**| -|10265|**Deleted Record Reference**| -|10266|**Restore Deleted Records Configuration**| -|10267|**App Action**| -|10268|**App Action Migration**| -|10269|**App Action Rule**| -|10272|**Card**| -|10273|**Card State Item**| -|10276|**Entity link chat configuration**| -|10277|**SharePoint Managed Identity**| -|10278|**AI Insight Card**| -|10279|**AI Skill Config**| -|10280|**Rich Text Attachment**| -|10281|**Custom Control Extended Setting**| -|10282|**Timeline Pin**| -|10283|**Virtual Connector Data Source**| -|10284|**Virtual Table Column Candidate**| -|10286|**PM Analysis History**| -|10287|**PM Business Rule Automation Config**| -|10288|**PM Calendar**| -|10289|**PM Calendar Version**| -|10290|**PM Inferred Task**| -|10291|**PM Process Extended Metadata Version**| -|10292|**PM Process Template**| -|10293|**PM Process User Settings**| -|10294|**PM Process Version**| -|10295|**PM Recording**| -|10296|**PM Simulation**| -|10297|**PM Template**| -|10298|**PM View**| -|10299|**Analysis Component**| -|10300|**Analysis Job**| -|10301|**Analysis Override**| -|10302|**Analysis Result**| -|10303|**Analysis Result Detail**| -|10304|**Solution Health Rule**| -|10305|**Solution Health Rule Argument**| -|10306|**Solution Health Rule Set**| -|10307|**Power BI Dataset**| -|10308|**powerbidatasetapdx**| -|10309|**Power BI Mashup Parameter**| -|10310|**Power BI Report**| -|10311|**powerbireportapdx**| -|10312|**File Upload**| -|10313|**MainFewShot**| -|10314|**MakerFewShot**| -|10315|**SearchAttributeSettings**| -|10316|**SearchCustomAnalyzer**| -|10317|**SearchRelationshipSettings**| -|10318|**SearchResultsCache**| -|10319|**Search Telemetry**| -|10320|**ViewAsExampleQuestion**| -|10321|**CopilotExampleQuestion**| -|10322|**CopilotGlossaryTerm**| -|10323|**CopilotSynonyms**| -|10324|**Site Component**| -|10325|**Site**| -|10326|**Site Language**| -|10327|**Power Pages Site Published**| -|10330|**External Identity**| -|10331|**Invitation**| -|10332|**Invite Redemption**| -|10333|**Portal Comment**| -|10334|**Setting**| -|10335|**Multistep Form Session**| -|10339|**Ad Placement**| -|10340|**Column Permission**| -|10341|**Column Permission Profile**| -|10342|**Content Snippet**| -|10343|**Basic Form**| -|10344|**Basic Form Metadata**| -|10345|**List**| -|10346|**Table Permission**| -|10347|**Page Template**| -|10348|**Poll Placement**| -|10349|**Power Pages Core Entity DS**| -|10350|**Publishing State**| -|10351|**Publishing State Transition Rule**| -|10352|**Redirect**| -|10353|**Shortcut**| -|10354|**Site Marker**| -|10355|**Site Setting**| -|10356|**Web File**| -|10357|**Multistep Form**| -|10358|**Multistep Form Metadata**| -|10359|**Form Step**| -|10360|**Web Link**| -|10361|**Web Link Set**| -|10362|**Web Page**| -|10363|**Web Page Access Control Rule**| -|10364|**Web Role**| -|10365|**Website**| -|10366|**Website Access**| -|10367|**Website Language**| -|10368|**Web Template**| -|10375|**Power Pages Scan Report**| -|10376|**Power Pages Log**| -|10377|**PowerPagesManagedIdentity**| -|10378|**Power Pages Site AI Feedback**| -|10383|**Catalog Submission Files**| -|10384|**Package Submission Store**| -|10385|**Processor Registration**| -|10386|**signal**| -|10387|**Signal Registration**| -|10388|**trait**| -|10389|**Trait Registration**| -|18085|**Event Expander Breadcrumb**| +|10088|**Business Process**| +|10089|**Credential**| +|10090|**Desktop Flow Module**| +|10091|**Flow Capacity Assignment**| +|10092|**Flow Credential Application**| +|10093|**Flow Event**| +|10094|**Flow Machine**| +|10095|**Flow Machine Group**| +|10096|**Flow Machine Image**| +|10097|**Flow Machine Image Version**| +|10098|**Flow Machine Network**| +|10099|**ProcessStageParameter**| +|10100|**Saving Rule**| +|10101|**Tag**| +|10102|**Tagged Flow Session**| +|10103|**Tagged Process**| +|10104|**Workflow Metadata**| +|10105|**Work Queue**| +|10106|**Work Queue Item**| +|10107|**Desktop Flow Binary**| +|10108|**Flow Aggregation**| +|10109|**Flow Log**| +|10110|**Flow Run**| +|10111|**Action Approval Model**| +|10112|**Approval**| +|10113|**Approval Request**| +|10114|**Approval Response**| +|10115|**Approval Step**| +|10116|**Await All Action Approval Model**| +|10117|**Await All Approval Model**| +|10118|**Basic Approval Model Data**| +|10119|**Flow Approval**| +|10128|**Connection Reference**| +|10129|**DVFileSearch**| +|10130|**DVFileSearchAttribute**| +|10131|**DVFileSearchEntity**| +|10132|**DVTableSearch**| +|10133|**DVTableSearchAttribute**| +|10134|**DVTableSearchEntity**| +|10135|**AICopilot**| +|10136|**AIPluginAuth**| +|10137|**AI Plugin Conversation Starter**| +|10138|**AI Plugin Conversation Starter Mapping**| +|10139|**AI Plugin Governance**| +|10140|**AI Plugin Governance Extended**| +|10141|**AIPluginOperationResponseTemplate**| +|10142|**AIPluginTitle**| +|10143|**SideloadedAIPlugin**| +|10144|**AIPlugin**| +|10145|**AIPluginExternalSchema**| +|10146|**AIPluginExternalSchemaProperty**| +|10147|**AIPluginInstance**| +|10148|**AIPluginOperation**| +|10149|**AIPluginOperationParameter**| +|10150|**AIPluginUserSetting**| +|10152|**Data Processing Event**| +|10153|**AI Event**| +|10154|**AI Model Catalog**| +|10155|**AI Builder Feedback Loop**| +|10156|**AI Form Processing Document**| +|10157|**AI Object Detection Image**| +|10158|**AI Object Detection Label**| +|10159|**AI Object Detection Bounding Box**| +|10160|**AI Object Detection Image Mapping**| +|10162|**AI Builder Dataset**| +|10163|**AI Builder Dataset File**| +|10164|**AI Builder Dataset Record**| +|10165|**AI Builder Datasets Container**| +|10166|**AI Builder File**| +|10167|**AI Builder File Attached Data**| +|10168|**Help Page**| +|10169|**Tour**| +|10170|**BotContent**| +|10171|**ConversationTranscript**| +|10172|**Copilot**| +|10173|**Copilot component**| +|10174|**Copilot component collection**| +|10185|**Comment**| +|10186|**Governance Configuration**| +|10187|**Fabric AISkill**| +|10188|**App Insights Metadata**| +|10189|**Dataflow Connection Reference**| +|10190|**Schedule**| +|10191|**Dataflow Template**| +|10192|**Dataflow DatalakeFolder**| +|10193|**Data Movement Service Request**| +|10194|**Data Movement Service Request Status**| +|10195|**DMS Sync Request**| +|10196|**DMS Sync Status**| +|10197|**Knowledge Asset Configuration**| +|10198|**Module Run Detail**| +|10199|**QnA**| +|10200|**Salesforce Structured Object**| +|10201|**Salesforce Structured QnA Config**| +|10202|**Workflow Action Status**| +|10203|**FederatedKnowledgeConfiguration**| +|10204|**FederatedKnowledgeEntityConfiguration**| +|10205|**Form Mapping**| +|10206|**Copilot Interactions**| +|10207|**PDF Setting**| +|10208|**Activity File Attachment**| +|10209|**Teams chat**| +|10210|**Service Configuration**| +|10211|**SLA KPI**| +|10212|**Integrated search provider**| +|10213|**Knowledge Management Setting**| +|10214|**Knowledge Federated Article**| +|10215|**Knowledge Federated Article Incident**| +|10216|**Search provider**| +|10217|**Knowledge Article Image**| +|10218|**Knowledge Configuration**| +|10219|**Knowledge Interaction Insight**| +|10220|**Knowledge Search Insight**| +|10221|**Favorite knowledge article**| +|10222|**Knowledge article language setting**| +|10223|**Knowledge Article Attachment**| +|10224|**Knowledge personalization**| +|10225|**Knowledge Article Template**| +|10226|**Knowledge search personal filter config**| +|10227|**Knowledge search filter**| +|10229|**Entity Cluster Configuration**| +|10230|**SupportUserTable**| +|10231|**FxExpression**| +|10232|**Function**| +|10233|**Plug-in**| +|10234|**PowerfxRule**| +|10235|**Planner Business Scenario**| +|10236|**Planner Sync Action**| +|10237|**Sensitivity Label**| +|10238|**Ms Graph Resource To Subscription**| +|10239|**Virtual Entity Metadata**| +|10240|**Background Operation**| +|10241|**Report Parameter**| +|10242|**MobileOfflineProfileExtension**| +|10243|**MobileOfflineProfileItemFilter**| +|10244|**TeamMobileOfflineProfileMembership**| +|10245|**UserMobileOfflineProfileMembership**| +|10246|**OrganizationDataSyncSubscription**| +|10247|**OrganizationDataSyncSubscriptionEntity**| +|10248|**OrganizationDataSyncSubscriptionFnoTable**| +|10249|**OrganizationDataSyncFnoState**| +|10250|**OrganizationDataSyncState**| +|10251|**ArchiveCleanupInfo**| +|10252|**ArchiveCleanupOperation**| +|10253|**BulkArchiveConfig**| +|10254|**BulkArchiveFailureDetail**| +|10255|**BulkArchiveOperation**| +|10256|**BulkArchiveOperationDetail**| +|10257|**EnableArchivalRequest**| +|10258|**MetadataForArchival**| +|10259|**ReconciliationEntityInfo**| +|10260|**ReconciliationEntityStepInfo**| +|10261|**ReconciliationInfo**| +|10262|**RetentionCleanupInfo**| +|10263|**RetentionCleanupOperation**| +|10264|**RetentionConfig**| +|10265|**RetentionFailureDetail**| +|10266|**RetentionOperation**| +|10267|**RetentionOperationDetail**| +|10268|**RetentionSuccessDetail**| +|10269|**CertificateCredential**| +|10270|**Notification**| +|10271|**User Rating**| +|10272|**Mobile App**| +|10273|**Insights Store Data Source**| +|10274|**Insights Store Virtual Entity**| +|10275|**RoleEditorLayout**| +|10276|**Deleted Record Reference**| +|10277|**Restore Deleted Records Configuration**| +|10278|**App Action**| +|10279|**App Action Migration**| +|10280|**App Action Rule**| +|10283|**Card**| +|10284|**Card State Item**| +|10287|**Entity link chat configuration**| +|10288|**SharePoint Managed Identity**| +|10289|**AI Insight Card**| +|10290|**AI Skill Config**| +|10291|**Data Workspace**| +|10292|**Plan**| +|10293|**Plan Artifact**| +|10294|**Plan Attachment**| +|10295|**Rich Text Attachment**| +|10296|**Custom Control Extended Setting**| +|10298|**Timeline Pin**| +|10299|**Virtual Connector Data Source**| +|10300|**Virtual Table Column Candidate**| +|10302|**PM Analysis History**| +|10303|**PM Business Rule Automation Config**| +|10304|**PM Calendar**| +|10305|**PM Calendar Version**| +|10306|**PM Inferred Task**| +|10307|**PM Process Extended Metadata Version**| +|10308|**PM Process Template**| +|10309|**PM Process User Settings**| +|10310|**PM Process Version**| +|10311|**PM Recording**| +|10312|**PM Simulation**| +|10313|**PM Template**| +|10314|**PM View**| +|10315|**Analysis Component**| +|10316|**Analysis Job**| +|10317|**Analysis Override**| +|10318|**Analysis Result**| +|10319|**Analysis Result Detail**| +|10320|**Solution Health Rule**| +|10321|**Solution Health Rule Argument**| +|10322|**Solution Health Rule Set**| +|10323|**Power BI Dataset**| +|10324|**powerbidatasetapdx**| +|10325|**Power BI Mashup Parameter**| +|10326|**Power BI Report**| +|10327|**powerbireportapdx**| +|10328|**File Upload**| +|10329|**MainFewShot**| +|10330|**MakerFewShot**| +|10331|**SearchAttributeSettings**| +|10332|**SearchCustomAnalyzer**| +|10333|**SearchRelationshipSettings**| +|10334|**SearchResultsCache**| +|10335|**Search Telemetry**| +|10336|**TextDataRecordsIndexingStatus**| +|10337|**ViewAsExampleQuestion**| +|10338|**CopilotExampleQuestion**| +|10339|**CopilotGlossaryTerm**| +|10340|**CopilotSynonyms**| +|10341|**Site Component**| +|10342|**Site**| +|10343|**Site Language**| +|10344|**Power Pages Site Published**| +|10347|**External Identity**| +|10348|**Invitation**| +|10349|**Invite Redemption**| +|10350|**Portal Comment**| +|10351|**Setting**| +|10352|**Multistep Form Session**| +|10356|**Ad Placement**| +|10357|**Column Permission**| +|10358|**Column Permission Profile**| +|10359|**Content Snippet**| +|10360|**Basic Form**| +|10361|**Basic Form Metadata**| +|10362|**List**| +|10363|**Table Permission**| +|10364|**Page Template**| +|10365|**Poll Placement**| +|10366|**Power Pages Core Entity DS**| +|10367|**Publishing State**| +|10368|**Publishing State Transition Rule**| +|10369|**Redirect**| +|10370|**Shortcut**| +|10371|**Site Marker**| +|10372|**Site Setting**| +|10373|**Web File**| +|10374|**Multistep Form**| +|10375|**Multistep Form Metadata**| +|10376|**Form Step**| +|10377|**Web Link**| +|10378|**Web Link Set**| +|10379|**Web Page**| +|10380|**Web Page Access Control Rule**| +|10381|**Web Role**| +|10382|**Website**| +|10383|**Website Access**| +|10384|**Website Language**| +|10385|**Web Template**| +|10392|**Power Pages Scan Report**| +|10393|**Power Pages Log**| +|10394|**PowerPagesManagedIdentity**| +|10395|**Power Pages Site AI Feedback**| +|10400|**Catalog Submission Files**| +|10401|**Package Submission Store**| +|10402|**processor registration**| +|10403|**signal**| +|10404|**signal registration**| +|10405|**trait**| +|10406|**trait registration**| +|10627|**FederatedKnowledgeCitation**| +|10628|**FederatedKnowledgeMetadataRefresh**| +|10629|**Email Address Configuration**| +|10630|**indexedtrait**| +|10645|**AI Evaluation Configuration**| +|10646|**AI Evaluation Run**| +|10647|**AI Test Case**| +|10648|**AI Test Case Document**| +|10649|**AI Test Case Input**| +|10650|**AI Test Run**| +|10651|**AI Test Run Batch**| +|10667|**Approval Process**| +|10668|**Approval Stage Approval**| +|10669|**Approval Stage Condition**| +|10670|**Approval Stage Order**| +|10671|**UnstructuredFileSearchEntity**| +|10672|**UnstructuredFileSearchRecord**| ### ModifiedOn diff --git a/powerapps-docs/developer/data-platform/reference/entities/sla.md b/powerapps-docs/developer/data-platform/reference/entities/sla.md index e5f9673693..a02c568811 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/sla.md +++ b/powerapps-docs/developer/data-platform/reference/entities/sla.md @@ -799,6 +799,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |4812|**Time Zone Localized Name**| |5000|**Recently Used**| |5004|**NL2SQ Registration Information**| +|5006|**Event Expander Breadcrumb**| |7000|**System Application Metadata**| |7001|**User Application Metadata**| |7100|**Solution**| @@ -1004,268 +1005,300 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |10083|**ApplicationUser**| |10086|**OData v4 Data Source**| |10087|**Workflow Binary**| -|10088|**Credential**| -|10089|**Desktop Flow Module**| -|10090|**Flow Capacity Assignment**| -|10091|**Flow Credential Application**| -|10092|**Flow Event**| -|10093|**Flow Machine**| -|10094|**Flow Machine Group**| -|10095|**Flow Machine Image**| -|10096|**Flow Machine Image Version**| -|10097|**Flow Machine Network**| -|10098|**ProcessStageParameter**| -|10099|**Work Queue**| -|10100|**Work Queue Item**| -|10101|**Desktop Flow Binary**| -|10102|**Flow Log**| -|10103|**Flow Run**| -|10104|**Action Approval Model**| -|10105|**Approval**| -|10106|**Approval Request**| -|10107|**Approval Response**| -|10108|**Approval Step**| -|10109|**Await All Action Approval Model**| -|10110|**Await All Approval Model**| -|10111|**Basic Approval Model Data**| -|10112|**Flow Approval**| -|10121|**Connection Reference**| -|10122|**DVFileSearch**| -|10123|**DVFileSearchAttribute**| -|10124|**DVFileSearchEntity**| -|10125|**DVTableSearch**| -|10126|**DVTableSearchAttribute**| -|10127|**DVTableSearchEntity**| -|10128|**AICopilot**| -|10129|**AIPluginAuth**| -|10130|**AI Plugin Conversation Starter**| -|10131|**AI Plugin Conversation Starter Mapping**| -|10132|**AI Plugin Governance**| -|10133|**AI Plugin Governance Extended**| -|10134|**AIPluginOperationResponseTemplate**| -|10135|**AIPluginTitle**| -|10136|**SideloadedAIPlugin**| -|10137|**AIPlugin**| -|10138|**AIPluginExternalSchema**| -|10139|**AIPluginExternalSchemaProperty**| -|10140|**AIPluginInstance**| -|10141|**AIPluginOperation**| -|10142|**AIPluginOperationParameter**| -|10143|**AIPluginUserSetting**| -|10145|**AI Event**| -|10146|**AI Builder Feedback Loop**| -|10147|**AI Form Processing Document**| -|10148|**AI Object Detection Image**| -|10149|**AI Object Detection Label**| -|10150|**AI Object Detection Bounding Box**| -|10151|**AI Object Detection Image Mapping**| -|10153|**AI Builder Dataset**| -|10154|**AI Builder Dataset File**| -|10155|**AI Builder Dataset Record**| -|10156|**AI Builder Datasets Container**| -|10157|**AI Builder File**| -|10158|**AI Builder File Attached Data**| -|10159|**Help Page**| -|10160|**Tour**| -|10161|**BotContent**| -|10162|**ConversationTranscript**| -|10163|**Copilot**| -|10164|**Copilot component**| -|10165|**Copilot component collection**| -|10176|**Comment**| -|10177|**Governance Configuration**| -|10178|**Fabric AISkill**| -|10179|**App Insights Metadata**| -|10180|**Dataflow Connection Reference**| -|10181|**Schedule**| -|10182|**Dataflow Template**| -|10183|**Dataflow DatalakeFolder**| -|10184|**Data Movement Service Request**| -|10185|**Data Movement Service Request Status**| -|10186|**DMS Sync Request**| -|10187|**DMS Sync Status**| -|10188|**Knowledge Asset Configuration**| -|10189|**Module Run Detail**| -|10190|**QnA**| -|10191|**Salesforce Structured Object**| -|10192|**Salesforce Structured QnA Config**| -|10193|**Workflow Action Status**| -|10194|**FederatedKnowledgeConfiguration**| -|10195|**FederatedKnowledgeEntityConfiguration**| -|10196|**Form Mapping**| -|10197|**Copilot Interactions**| -|10198|**PDF Setting**| -|10199|**Activity File Attachment**| -|10200|**Teams chat**| -|10201|**Service Configuration**| -|10202|**SLA KPI**| -|10203|**Integrated search provider**| -|10204|**Knowledge Management Setting**| -|10205|**Knowledge Federated Article**| -|10206|**Knowledge Federated Article Incident**| -|10207|**Search provider**| -|10208|**Knowledge Article Image**| -|10209|**Knowledge Configuration**| -|10210|**Knowledge Interaction Insight**| -|10211|**Knowledge Search Insight**| -|10212|**Favorite knowledge article**| -|10213|**Knowledge article language setting**| -|10214|**Knowledge Article Attachment**| -|10215|**Knowledge personalization**| -|10216|**Knowledge Article Template**| -|10217|**Knowledge search personal filter config**| -|10218|**Knowledge search filter**| -|10220|**SupportUserTable**| -|10221|**FxExpression**| -|10222|**Function**| -|10223|**Plug-in**| -|10224|**PowerfxRule**| -|10225|**Planner Business Scenario**| -|10226|**Planner Sync Action**| -|10227|**Ms Graph Resource To Subscription**| -|10228|**Virtual Entity Metadata**| -|10229|**Background Operation**| -|10230|**Report Parameter**| -|10231|**MobileOfflineProfileExtension**| -|10232|**MobileOfflineProfileItemFilter**| -|10233|**TeamMobileOfflineProfileMembership**| -|10234|**UserMobileOfflineProfileMembership**| -|10235|**OrganizationDataSyncSubscription**| -|10236|**OrganizationDataSyncSubscriptionEntity**| -|10237|**OrganizationDataSyncSubscriptionFnoTable**| -|10238|**OrganizationDataSyncFnoState**| -|10239|**OrganizationDataSyncState**| -|10240|**ArchiveCleanupInfo**| -|10241|**ArchiveCleanupOperation**| -|10242|**BulkArchiveConfig**| -|10243|**BulkArchiveFailureDetail**| -|10244|**BulkArchiveOperation**| -|10245|**BulkArchiveOperationDetail**| -|10246|**EnableArchivalRequest**| -|10247|**MetadataForArchival**| -|10248|**ReconciliationEntityInfo**| -|10249|**ReconciliationEntityStepInfo**| -|10250|**ReconciliationInfo**| -|10251|**RetentionCleanupInfo**| -|10252|**RetentionCleanupOperation**| -|10253|**RetentionConfig**| -|10254|**RetentionFailureDetail**| -|10255|**RetentionOperation**| -|10256|**RetentionOperationDetail**| -|10257|**RetentionSuccessDetail**| -|10258|**CertificateCredential**| -|10259|**Notification**| -|10260|**User Rating**| -|10261|**Mobile App**| -|10262|**Insights Store Data Source**| -|10263|**Insights Store Virtual Entity**| -|10264|**RoleEditorLayout**| -|10265|**Deleted Record Reference**| -|10266|**Restore Deleted Records Configuration**| -|10267|**App Action**| -|10268|**App Action Migration**| -|10269|**App Action Rule**| -|10272|**Card**| -|10273|**Card State Item**| -|10276|**Entity link chat configuration**| -|10277|**SharePoint Managed Identity**| -|10278|**AI Insight Card**| -|10279|**AI Skill Config**| -|10280|**Rich Text Attachment**| -|10281|**Custom Control Extended Setting**| -|10282|**Timeline Pin**| -|10283|**Virtual Connector Data Source**| -|10284|**Virtual Table Column Candidate**| -|10286|**PM Analysis History**| -|10287|**PM Business Rule Automation Config**| -|10288|**PM Calendar**| -|10289|**PM Calendar Version**| -|10290|**PM Inferred Task**| -|10291|**PM Process Extended Metadata Version**| -|10292|**PM Process Template**| -|10293|**PM Process User Settings**| -|10294|**PM Process Version**| -|10295|**PM Recording**| -|10296|**PM Simulation**| -|10297|**PM Template**| -|10298|**PM View**| -|10299|**Analysis Component**| -|10300|**Analysis Job**| -|10301|**Analysis Override**| -|10302|**Analysis Result**| -|10303|**Analysis Result Detail**| -|10304|**Solution Health Rule**| -|10305|**Solution Health Rule Argument**| -|10306|**Solution Health Rule Set**| -|10307|**Power BI Dataset**| -|10308|**powerbidatasetapdx**| -|10309|**Power BI Mashup Parameter**| -|10310|**Power BI Report**| -|10311|**powerbireportapdx**| -|10312|**File Upload**| -|10313|**MainFewShot**| -|10314|**MakerFewShot**| -|10315|**SearchAttributeSettings**| -|10316|**SearchCustomAnalyzer**| -|10317|**SearchRelationshipSettings**| -|10318|**SearchResultsCache**| -|10319|**Search Telemetry**| -|10320|**ViewAsExampleQuestion**| -|10321|**CopilotExampleQuestion**| -|10322|**CopilotGlossaryTerm**| -|10323|**CopilotSynonyms**| -|10324|**Site Component**| -|10325|**Site**| -|10326|**Site Language**| -|10327|**Power Pages Site Published**| -|10330|**External Identity**| -|10331|**Invitation**| -|10332|**Invite Redemption**| -|10333|**Portal Comment**| -|10334|**Setting**| -|10335|**Multistep Form Session**| -|10339|**Ad Placement**| -|10340|**Column Permission**| -|10341|**Column Permission Profile**| -|10342|**Content Snippet**| -|10343|**Basic Form**| -|10344|**Basic Form Metadata**| -|10345|**List**| -|10346|**Table Permission**| -|10347|**Page Template**| -|10348|**Poll Placement**| -|10349|**Power Pages Core Entity DS**| -|10350|**Publishing State**| -|10351|**Publishing State Transition Rule**| -|10352|**Redirect**| -|10353|**Shortcut**| -|10354|**Site Marker**| -|10355|**Site Setting**| -|10356|**Web File**| -|10357|**Multistep Form**| -|10358|**Multistep Form Metadata**| -|10359|**Form Step**| -|10360|**Web Link**| -|10361|**Web Link Set**| -|10362|**Web Page**| -|10363|**Web Page Access Control Rule**| -|10364|**Web Role**| -|10365|**Website**| -|10366|**Website Access**| -|10367|**Website Language**| -|10368|**Web Template**| -|10375|**Power Pages Scan Report**| -|10376|**Power Pages Log**| -|10377|**PowerPagesManagedIdentity**| -|10378|**Power Pages Site AI Feedback**| -|10383|**Catalog Submission Files**| -|10384|**Package Submission Store**| -|10385|**Processor Registration**| -|10386|**signal**| -|10387|**Signal Registration**| -|10388|**trait**| -|10389|**Trait Registration**| -|18085|**Event Expander Breadcrumb**| +|10088|**Business Process**| +|10089|**Credential**| +|10090|**Desktop Flow Module**| +|10091|**Flow Capacity Assignment**| +|10092|**Flow Credential Application**| +|10093|**Flow Event**| +|10094|**Flow Machine**| +|10095|**Flow Machine Group**| +|10096|**Flow Machine Image**| +|10097|**Flow Machine Image Version**| +|10098|**Flow Machine Network**| +|10099|**ProcessStageParameter**| +|10100|**Saving Rule**| +|10101|**Tag**| +|10102|**Tagged Flow Session**| +|10103|**Tagged Process**| +|10104|**Workflow Metadata**| +|10105|**Work Queue**| +|10106|**Work Queue Item**| +|10107|**Desktop Flow Binary**| +|10108|**Flow Aggregation**| +|10109|**Flow Log**| +|10110|**Flow Run**| +|10111|**Action Approval Model**| +|10112|**Approval**| +|10113|**Approval Request**| +|10114|**Approval Response**| +|10115|**Approval Step**| +|10116|**Await All Action Approval Model**| +|10117|**Await All Approval Model**| +|10118|**Basic Approval Model Data**| +|10119|**Flow Approval**| +|10128|**Connection Reference**| +|10129|**DVFileSearch**| +|10130|**DVFileSearchAttribute**| +|10131|**DVFileSearchEntity**| +|10132|**DVTableSearch**| +|10133|**DVTableSearchAttribute**| +|10134|**DVTableSearchEntity**| +|10135|**AICopilot**| +|10136|**AIPluginAuth**| +|10137|**AI Plugin Conversation Starter**| +|10138|**AI Plugin Conversation Starter Mapping**| +|10139|**AI Plugin Governance**| +|10140|**AI Plugin Governance Extended**| +|10141|**AIPluginOperationResponseTemplate**| +|10142|**AIPluginTitle**| +|10143|**SideloadedAIPlugin**| +|10144|**AIPlugin**| +|10145|**AIPluginExternalSchema**| +|10146|**AIPluginExternalSchemaProperty**| +|10147|**AIPluginInstance**| +|10148|**AIPluginOperation**| +|10149|**AIPluginOperationParameter**| +|10150|**AIPluginUserSetting**| +|10152|**Data Processing Event**| +|10153|**AI Event**| +|10154|**AI Model Catalog**| +|10155|**AI Builder Feedback Loop**| +|10156|**AI Form Processing Document**| +|10157|**AI Object Detection Image**| +|10158|**AI Object Detection Label**| +|10159|**AI Object Detection Bounding Box**| +|10160|**AI Object Detection Image Mapping**| +|10162|**AI Builder Dataset**| +|10163|**AI Builder Dataset File**| +|10164|**AI Builder Dataset Record**| +|10165|**AI Builder Datasets Container**| +|10166|**AI Builder File**| +|10167|**AI Builder File Attached Data**| +|10168|**Help Page**| +|10169|**Tour**| +|10170|**BotContent**| +|10171|**ConversationTranscript**| +|10172|**Copilot**| +|10173|**Copilot component**| +|10174|**Copilot component collection**| +|10185|**Comment**| +|10186|**Governance Configuration**| +|10187|**Fabric AISkill**| +|10188|**App Insights Metadata**| +|10189|**Dataflow Connection Reference**| +|10190|**Schedule**| +|10191|**Dataflow Template**| +|10192|**Dataflow DatalakeFolder**| +|10193|**Data Movement Service Request**| +|10194|**Data Movement Service Request Status**| +|10195|**DMS Sync Request**| +|10196|**DMS Sync Status**| +|10197|**Knowledge Asset Configuration**| +|10198|**Module Run Detail**| +|10199|**QnA**| +|10200|**Salesforce Structured Object**| +|10201|**Salesforce Structured QnA Config**| +|10202|**Workflow Action Status**| +|10203|**FederatedKnowledgeConfiguration**| +|10204|**FederatedKnowledgeEntityConfiguration**| +|10205|**Form Mapping**| +|10206|**Copilot Interactions**| +|10207|**PDF Setting**| +|10208|**Activity File Attachment**| +|10209|**Teams chat**| +|10210|**Service Configuration**| +|10211|**SLA KPI**| +|10212|**Integrated search provider**| +|10213|**Knowledge Management Setting**| +|10214|**Knowledge Federated Article**| +|10215|**Knowledge Federated Article Incident**| +|10216|**Search provider**| +|10217|**Knowledge Article Image**| +|10218|**Knowledge Configuration**| +|10219|**Knowledge Interaction Insight**| +|10220|**Knowledge Search Insight**| +|10221|**Favorite knowledge article**| +|10222|**Knowledge article language setting**| +|10223|**Knowledge Article Attachment**| +|10224|**Knowledge personalization**| +|10225|**Knowledge Article Template**| +|10226|**Knowledge search personal filter config**| +|10227|**Knowledge search filter**| +|10229|**Entity Cluster Configuration**| +|10230|**SupportUserTable**| +|10231|**FxExpression**| +|10232|**Function**| +|10233|**Plug-in**| +|10234|**PowerfxRule**| +|10235|**Planner Business Scenario**| +|10236|**Planner Sync Action**| +|10237|**Sensitivity Label**| +|10238|**Ms Graph Resource To Subscription**| +|10239|**Virtual Entity Metadata**| +|10240|**Background Operation**| +|10241|**Report Parameter**| +|10242|**MobileOfflineProfileExtension**| +|10243|**MobileOfflineProfileItemFilter**| +|10244|**TeamMobileOfflineProfileMembership**| +|10245|**UserMobileOfflineProfileMembership**| +|10246|**OrganizationDataSyncSubscription**| +|10247|**OrganizationDataSyncSubscriptionEntity**| +|10248|**OrganizationDataSyncSubscriptionFnoTable**| +|10249|**OrganizationDataSyncFnoState**| +|10250|**OrganizationDataSyncState**| +|10251|**ArchiveCleanupInfo**| +|10252|**ArchiveCleanupOperation**| +|10253|**BulkArchiveConfig**| +|10254|**BulkArchiveFailureDetail**| +|10255|**BulkArchiveOperation**| +|10256|**BulkArchiveOperationDetail**| +|10257|**EnableArchivalRequest**| +|10258|**MetadataForArchival**| +|10259|**ReconciliationEntityInfo**| +|10260|**ReconciliationEntityStepInfo**| +|10261|**ReconciliationInfo**| +|10262|**RetentionCleanupInfo**| +|10263|**RetentionCleanupOperation**| +|10264|**RetentionConfig**| +|10265|**RetentionFailureDetail**| +|10266|**RetentionOperation**| +|10267|**RetentionOperationDetail**| +|10268|**RetentionSuccessDetail**| +|10269|**CertificateCredential**| +|10270|**Notification**| +|10271|**User Rating**| +|10272|**Mobile App**| +|10273|**Insights Store Data Source**| +|10274|**Insights Store Virtual Entity**| +|10275|**RoleEditorLayout**| +|10276|**Deleted Record Reference**| +|10277|**Restore Deleted Records Configuration**| +|10278|**App Action**| +|10279|**App Action Migration**| +|10280|**App Action Rule**| +|10283|**Card**| +|10284|**Card State Item**| +|10287|**Entity link chat configuration**| +|10288|**SharePoint Managed Identity**| +|10289|**AI Insight Card**| +|10290|**AI Skill Config**| +|10291|**Data Workspace**| +|10292|**Plan**| +|10293|**Plan Artifact**| +|10294|**Plan Attachment**| +|10295|**Rich Text Attachment**| +|10296|**Custom Control Extended Setting**| +|10298|**Timeline Pin**| +|10299|**Virtual Connector Data Source**| +|10300|**Virtual Table Column Candidate**| +|10302|**PM Analysis History**| +|10303|**PM Business Rule Automation Config**| +|10304|**PM Calendar**| +|10305|**PM Calendar Version**| +|10306|**PM Inferred Task**| +|10307|**PM Process Extended Metadata Version**| +|10308|**PM Process Template**| +|10309|**PM Process User Settings**| +|10310|**PM Process Version**| +|10311|**PM Recording**| +|10312|**PM Simulation**| +|10313|**PM Template**| +|10314|**PM View**| +|10315|**Analysis Component**| +|10316|**Analysis Job**| +|10317|**Analysis Override**| +|10318|**Analysis Result**| +|10319|**Analysis Result Detail**| +|10320|**Solution Health Rule**| +|10321|**Solution Health Rule Argument**| +|10322|**Solution Health Rule Set**| +|10323|**Power BI Dataset**| +|10324|**powerbidatasetapdx**| +|10325|**Power BI Mashup Parameter**| +|10326|**Power BI Report**| +|10327|**powerbireportapdx**| +|10328|**File Upload**| +|10329|**MainFewShot**| +|10330|**MakerFewShot**| +|10331|**SearchAttributeSettings**| +|10332|**SearchCustomAnalyzer**| +|10333|**SearchRelationshipSettings**| +|10334|**SearchResultsCache**| +|10335|**Search Telemetry**| +|10336|**TextDataRecordsIndexingStatus**| +|10337|**ViewAsExampleQuestion**| +|10338|**CopilotExampleQuestion**| +|10339|**CopilotGlossaryTerm**| +|10340|**CopilotSynonyms**| +|10341|**Site Component**| +|10342|**Site**| +|10343|**Site Language**| +|10344|**Power Pages Site Published**| +|10347|**External Identity**| +|10348|**Invitation**| +|10349|**Invite Redemption**| +|10350|**Portal Comment**| +|10351|**Setting**| +|10352|**Multistep Form Session**| +|10356|**Ad Placement**| +|10357|**Column Permission**| +|10358|**Column Permission Profile**| +|10359|**Content Snippet**| +|10360|**Basic Form**| +|10361|**Basic Form Metadata**| +|10362|**List**| +|10363|**Table Permission**| +|10364|**Page Template**| +|10365|**Poll Placement**| +|10366|**Power Pages Core Entity DS**| +|10367|**Publishing State**| +|10368|**Publishing State Transition Rule**| +|10369|**Redirect**| +|10370|**Shortcut**| +|10371|**Site Marker**| +|10372|**Site Setting**| +|10373|**Web File**| +|10374|**Multistep Form**| +|10375|**Multistep Form Metadata**| +|10376|**Form Step**| +|10377|**Web Link**| +|10378|**Web Link Set**| +|10379|**Web Page**| +|10380|**Web Page Access Control Rule**| +|10381|**Web Role**| +|10382|**Website**| +|10383|**Website Access**| +|10384|**Website Language**| +|10385|**Web Template**| +|10392|**Power Pages Scan Report**| +|10393|**Power Pages Log**| +|10394|**PowerPagesManagedIdentity**| +|10395|**Power Pages Site AI Feedback**| +|10400|**Catalog Submission Files**| +|10401|**Package Submission Store**| +|10402|**processor registration**| +|10403|**signal**| +|10404|**signal registration**| +|10405|**trait**| +|10406|**trait registration**| +|10627|**FederatedKnowledgeCitation**| +|10628|**FederatedKnowledgeMetadataRefresh**| +|10629|**Email Address Configuration**| +|10630|**indexedtrait**| +|10645|**AI Evaluation Configuration**| +|10646|**AI Evaluation Run**| +|10647|**AI Test Case**| +|10648|**AI Test Case Document**| +|10649|**AI Test Case Input**| +|10650|**AI Test Run**| +|10651|**AI Test Run Batch**| +|10667|**Approval Process**| +|10668|**Approval Stage Approval**| +|10669|**Approval Stage Condition**| +|10670|**Approval Stage Order**| +|10671|**UnstructuredFileSearchEntity**| +|10672|**UnstructuredFileSearchRecord**| ### OverwriteTime diff --git a/powerapps-docs/developer/data-platform/reference/entities/solutioncomponentattributeconfiguration.md b/powerapps-docs/developer/data-platform/reference/entities/solutioncomponentattributeconfiguration.md index c4a81bdc24..ab9115af09 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/solutioncomponentattributeconfiguration.md +++ b/powerapps-docs/developer/data-platform/reference/entities/solutioncomponentattributeconfiguration.md @@ -61,6 +61,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [EncodingFormat](#BKMK_EncodingFormat) - [FileExtension](#BKMK_FileExtension) - [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [InvokeSubstitutionForAttribute](#BKMK_InvokeSubstitutionForAttribute) - [IsCustomizable](#BKMK_IsCustomizable) - [IsEnabledForDependencyExtraction](#BKMK_IsEnabledForDependencyExtraction) - [IsExportDisabled](#BKMK_IsExportDisabled) @@ -183,6 +184,22 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |MaxValue|2147483647| |MinValue|-2147483648| +### InvokeSubstitutionForAttribute + +|Property|Value| +|---|---| +|Description|**Boolean that indicates if invoke substitution API will be used on attribute on template mode import**| +|DisplayName|**Invoke substitution API on attribute**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`invokesubstitutionforattribute`| +|RequiredLevel|None| +|Type|Boolean| +|GlobalChoiceName|`_solutioncomponentattributeconfiguration_invokesubstitutionforattribute`| +|DefaultValue|False| +|True Label|| +|False Label|| + ### IsCustomizable |Property|Value| diff --git a/powerapps-docs/developer/data-platform/reference/entities/solutionhistorydata.md b/powerapps-docs/developer/data-platform/reference/entities/solutionhistorydata.md index df0e5f9585..0e273b1c2c 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/solutionhistorydata.md +++ b/powerapps-docs/developer/data-platform/reference/entities/solutionhistorydata.md @@ -44,6 +44,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [ActivityId](#BKMK_ActivityId) - [CorrelationId](#BKMK_CorrelationId) +- [Description](#BKMK_Description) - [EndTime](#BKMK_EndTime) - [ErrorCode](#BKMK_ErrorCode) - [ExceptionMessage](#BKMK_ExceptionMessage) @@ -89,6 +90,23 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |RequiredLevel|None| |Type|Uniqueidentifier| +### Description + +|Property|Value| +|---|---| +|Description|**Comments associated with solution installation**| +|DisplayName|**Description**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`description`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1073741823| + ### EndTime |Property|Value| diff --git a/powerapps-docs/developer/data-platform/reference/entities/sourcecontrolbranchconfiguration.md b/powerapps-docs/developer/data-platform/reference/entities/sourcecontrolbranchconfiguration.md index 3ed59e3687..272f57b21c 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/sourcecontrolbranchconfiguration.md +++ b/powerapps-docs/developer/data-platform/reference/entities/sourcecontrolbranchconfiguration.md @@ -66,6 +66,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [SourceControlBranchConfigurationId](#BKMK_SourceControlBranchConfigurationId) - [SourceControlConfigurationId](#BKMK_SourceControlConfigurationId) - [SourceControlConfigurationIdPId](#BKMK_SourceControlConfigurationIdPId) +- [StatusCode](#BKMK_StatusCode) - [TTLInSeconds](#BKMK_TTLInSeconds) - [UpstreamBranchName](#BKMK_UpstreamBranchName) - [UpstreamBranchSyncedCommitId](#BKMK_UpstreamBranchSyncedCommitId) @@ -246,6 +247,29 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsLocalizable|False| |MaxLength|100| +### StatusCode + +|Property|Value| +|---|---| +|Description|**Describes solution git connection status.**| +|DisplayName|**StatusCode**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Picklist| +|DefaultFormValue|0| +|GlobalChoiceName|`sourcecontrolbranchbonfiguration_statuscode`| + +#### StatusCode Choices/Options + +|Value|Label| +|---|---| +|0|**Connected**| +|1|**Disconnect**| +|2|**DisconnectInprogress**| +|3|**DisconnectFailed**| + ### TTLInSeconds |Property|Value| diff --git a/powerapps-docs/developer/data-platform/reference/entities/sourcecontrolcomponent.md b/powerapps-docs/developer/data-platform/reference/entities/sourcecontrolcomponent.md index 151181b6da..2d3fe398ac 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/sourcecontrolcomponent.md +++ b/powerapps-docs/developer/data-platform/reference/entities/sourcecontrolcomponent.md @@ -82,7 +82,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`action`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Picklist| |DefaultFormValue|0| |GlobalChoiceName|`sourcecontrolcomponent_action`| @@ -196,7 +196,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`iscommitted`| -|RequiredLevel|SystemRequired| +|RequiredLevel|ApplicationRequired| |Type|Boolean| |GlobalChoiceName|`sourcecontrolcomponent_iscommitted`| |DefaultValue|False| @@ -263,7 +263,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`solutioncomponentstate`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Picklist| |DefaultFormValue|0| |GlobalChoiceName|`sourcecontrolcomponent_solutioncomponentstate`| @@ -341,7 +341,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`useraction`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Picklist| |DefaultFormValue|0| |GlobalChoiceName|`sourcecontrolcomponent_useraction`| diff --git a/powerapps-docs/developer/data-platform/reference/entities/stagedsourcecontrolcomponent.md b/powerapps-docs/developer/data-platform/reference/entities/stagedsourcecontrolcomponent.md index 1595f0babb..fa6eb3a802 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/stagedsourcecontrolcomponent.md +++ b/powerapps-docs/developer/data-platform/reference/entities/stagedsourcecontrolcomponent.md @@ -86,7 +86,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`componentoperationtype`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Picklist| |DefaultFormValue|0| |GlobalChoiceName|`stagedsourcecontrolcomponent_componentoperationtype`| diff --git a/powerapps-docs/developer/data-platform/reference/entities/synapselinkexternaltablestate.md b/powerapps-docs/developer/data-platform/reference/entities/synapselinkexternaltablestate.md index 0969574294..1bdf2acbe8 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/synapselinkexternaltablestate.md +++ b/powerapps-docs/developer/data-platform/reference/entities/synapselinkexternaltablestate.md @@ -63,6 +63,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [LastSyncState](#BKMK_LastSyncState) - [MaxRecordVersion](#BKMK_MaxRecordVersion) - [MetadataVersion](#BKMK_MetadataVersion) +- [MinSyncedDataVersion](#BKMK_MinSyncedDataVersion) - [name](#BKMK_name) - [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) - [RecordCount](#BKMK_RecordCount) @@ -217,6 +218,20 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |IsLocalizable|False| |MaxLength|32| +### MinSyncedDataVersion + +|Property|Value| +|---|---| +|Description|**Last Synced Minimum Data Version**| +|DisplayName|**MinSyncVersion**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`minsynceddataversion`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + ### name |Property|Value| diff --git a/powerapps-docs/developer/data-platform/reference/entities/synapselinkprofileentitystate.md b/powerapps-docs/developer/data-platform/reference/entities/synapselinkprofileentitystate.md index f08638029e..18cbb65be1 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/synapselinkprofileentitystate.md +++ b/powerapps-docs/developer/data-platform/reference/entities/synapselinkprofileentitystate.md @@ -73,6 +73,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [LastSyncedMetadataTime](#BKMK_LastSyncedMetadataTime) - [LastSyncedMetadataVersion](#BKMK_LastSyncedMetadataVersion) - [MetadataState](#BKMK_MetadataState) +- [MinSyncedDataVersion](#BKMK_MinSyncedDataVersion) - [name](#BKMK_name) - [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) - [profile](#BKMK_profile) @@ -148,7 +149,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |FormatName|Text| |ImeMode|Auto| |IsLocalizable|False| -|MaxLength|64| +|MaxLength|128| ### EntitySource @@ -407,6 +408,20 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |8|**Created**| |16|**Failure**| +### MinSyncedDataVersion + +|Property|Value| +|---|---| +|Description|**Last Synced Minimum Data Version**| +|DisplayName|**MinSyncVersion**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`minsynceddataversion`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + ### name |Property|Value| diff --git a/powerapps-docs/developer/data-platform/reference/entities/syncerror.md b/powerapps-docs/developer/data-platform/reference/entities/syncerror.md index 28915820f1..0aab5ce2fa 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/syncerror.md +++ b/powerapps-docs/developer/data-platform/reference/entities/syncerror.md @@ -266,7 +266,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |LogicalName|`regardingobjectid`| |RequiredLevel|None| |Type|Lookup| -|Targets|account, activityfileattachment, activitymimeattachment, activityparty, adx_externalidentity, adx_invitation, adx_inviteredemption, adx_portalcomment, adx_setting, adx_webformsession, aicopilot, aiinsightcard, aiplugin, aipluginauth, aipluginconversationstarter, aipluginconversationstartermapping, aipluginexternalschema, aipluginexternalschemaproperty, aiplugingovernance, aiplugingovernanceext, aiplugininstance, aipluginoperation, aipluginoperationparameter, aipluginoperationresponsetemplate, aiplugintitle, aipluginusersetting, aiskillconfig, annotation, appaction, appactionmigration, appactionrule, appelement, application, applicationuser, appmodulecomponentedge, appmodulecomponentnode, appointment, appsetting, appusersetting, archivecleanupinfo, archivecleanupoperation, attachment, attributeimageconfig, attributemaskingrule, attributepicklistvalue, bot, botcomponent, botcomponentcollection, bulkarchiveconfig, bulkarchivefailuredetail, bulkarchiveoperation, bulkarchiveoperationdetail, businessdatalocalizedlabel, businessunit, canvasappextendedmetadata, card, cascadegrantrevokeaccessrecordstracker, cascadegrantrevokeaccessversiontracker, catalog, catalogassignment, category, certificatecredential, channelaccessprofile, channelaccessprofilerule, channelaccessprofileruleitem, chat, comment, connection, connectioninstance, connectionreference, connectionrole, connector, contact, conversationtranscript, copilotexamplequestion, copilotglossaryterm, copilotsynonyms, credential, customapi, customapirequestparameter, customapiresponseproperty, customeraddress, datalakefolder, datalakefolderpermission, datalakeworkspace, datalakeworkspacepermission, dataprocessingconfiguration, delegatedauthorization, deleteditemreference, desktopflowbinary, desktopflowmodule, duplicaterule, duplicaterulecondition, dvfilesearch, dvfilesearchattribute, dvfilesearchentity, dvtablesearch, dvtablesearchattribute, dvtablesearchentity, email, emailserverprofile, enablearchivalrequest, entityanalyticsconfig, entityimageconfig, entityindex, entityrecordfilter, environmentvariabledefinition, environmentvariablevalue, expiredprocess, exportedexcel, exportsolutionupload, externalparty, externalpartyitem, fabricaiskill, fax, featurecontrolsetting, federatedknowledgeconfiguration, federatedknowledgeentityconfiguration, feedback, fieldpermission, fieldsecurityprofile, fileattachment, flowcapacityassignment, flowcredentialapplication, flowevent, flowmachine, flowmachinegroup, flowmachineimage, flowmachineimageversion, flowmachinenetwork, flowsession, fxexpression, goal, goalrollupquery, governanceconfiguration, holidaywrapper, importmap, indexattributes, internaladdress, internalcatalogassignment, kbarticle, kbarticletemplate, keyvaultreference, knowledgearticle, knowledgearticleviews, knowledgebaserecord, letter, mailbox, mailmergetemplate, mainfewshot, makerfewshot, managedidentity, maskingrule, metadataforarchival, metric, mobileofflineprofileextension, msdynce_botcontent, msdyn_aibdataset, msdyn_aibdatasetfile, msdyn_aibdatasetrecord, msdyn_aibdatasetscontainer, msdyn_aibfeedbackloop, msdyn_aibfile, msdyn_aibfileattacheddata, msdyn_aiconfiguration, msdyn_aievent, msdyn_aifptrainingdocument, msdyn_aimodel, msdyn_aiodimage, msdyn_aiodlabel, msdyn_aiodtrainingboundingbox, msdyn_aiodtrainingimage, msdyn_aitemplate, msdyn_analysiscomponent, msdyn_analysisjob, msdyn_analysisoverride, msdyn_analysisresult, msdyn_analysisresultdetail, msdyn_appinsightsmetadata, msdyn_copilotinteractions, msdyn_customcontrolextendedsettings, msdyn_dataflow, msdyn_dataflowconnectionreference, msdyn_dataflowrefreshhistory, msdyn_dataflowtemplate, msdyn_dataflow_datalakefolder, msdyn_dmsrequest, msdyn_dmsrequeststatus, msdyn_dmssyncrequest, msdyn_dmssyncstatus, msdyn_entitylinkchatconfiguration, msdyn_entityrefreshhistory, msdyn_favoriteknowledgearticle, msdyn_federatedarticle, msdyn_federatedarticleincident, msdyn_fileupload, msdyn_flow_actionapprovalmodel, msdyn_flow_approval, msdyn_flow_approvalrequest, msdyn_flow_approvalresponse, msdyn_flow_approvalstep, msdyn_flow_awaitallactionapprovalmodel, msdyn_flow_awaitallapprovalmodel, msdyn_flow_basicapprovalmodel, msdyn_flow_flowapproval, msdyn_formmapping, msdyn_function, msdyn_helppage, msdyn_insightsstorevirtualentity, msdyn_integratedsearchprovider, msdyn_kalanguagesetting, msdyn_kbattachment, msdyn_kmfederatedsearchconfig, msdyn_kmpersonalizationsetting, msdyn_knowledgearticleimage, msdyn_knowledgearticletemplate, msdyn_knowledgeassetconfiguration, msdyn_knowledgeconfiguration, msdyn_knowledgeinteractioninsight, msdyn_knowledgemanagementsetting, msdyn_knowledgepersonalfilter, msdyn_knowledgesearchfilter, msdyn_knowledgesearchinsight, msdyn_mobileapp, msdyn_modulerundetail, msdyn_pmanalysishistory, msdyn_pmbusinessruleautomationconfig, msdyn_pmcalendar, msdyn_pmcalendarversion, msdyn_pminferredtask, msdyn_pmprocessextendedmetadataversion, msdyn_pmprocesstemplate, msdyn_pmprocessusersettings, msdyn_pmprocessversion, msdyn_pmrecording, msdyn_pmsimulation, msdyn_pmtemplate, msdyn_pmview, msdyn_qna, msdyn_richtextfile, msdyn_salesforcestructuredobject, msdyn_salesforcestructuredqnaconfig, msdyn_schedule, msdyn_serviceconfiguration, msdyn_slakpi, msdyn_solutionhealthrule, msdyn_solutionhealthruleargument, msdyn_solutionhealthruleset, msdyn_tour, msdyn_virtualtablecolumncandidate, msdyn_workflowactionstatus, msgraphresourcetosubscription, mspcat_catalogsubmissionfiles, mspcat_packagestore, newprocess, offlinecommanddefinition, organization, organizationdatasyncfnostate, organizationdatasyncstate, organizationdatasyncsubscription, organizationdatasyncsubscriptionentity, organizationdatasyncsubscriptionfnotable, organizationsetting, package, packagehistory, pdfsetting, phonecall, plannerbusinessscenario, plannersyncaction, plugin, pluginpackage, position, postfollow, powerbidataset, powerbidatasetapdx, powerbimashupparameter, powerbireport, powerbireportapdx, powerfxrule, powerpagecomponent, powerpagesite, powerpagesitelanguage, powerpagesitepublished, powerpagesmanagedidentity, powerpagesscanreport, privilegecheckerlog, privilegecheckerrun, privilegesremovalsetting, processorregistration, processsession, processstage, processstageparameter, processtrigger, provisionlanguageforuser, publisher, queue, queueitem, reconciliationentityinfo, reconciliationentitystepinfo, reconciliationinfo, recordfilter, recurringappointmentmaster, recyclebinconfig, relationshipattribute, report, reportcategory, reportparameter, retaineddataexcel, retentioncleanupinfo, retentioncleanupoperation, retentionconfig, retentionfailuredetail, retentionoperation, retentionoperationdetail, retentionsuccessdetail, revokeinheritedaccessrecordstracker, role, roleeditorlayout, rollupfield, savedquery, savedqueryvisualization, searchattributesettings, searchcustomanalyzer, searchrelationshipsettings, serviceplan, serviceplanmapping, settingdefinition, sharedlinksetting, sharedobject, sharedworkspace, sharedworkspacepool, sharepointdocumentlocation, sharepointmanagedidentity, sharepointsite, sideloadedaiplugin, signalregistration, sla, slaitem, slakpiinstance, socialactivity, socialprofile, solution, solutioncomponentattributeconfiguration, solutioncomponentbatchconfiguration, solutioncomponentconfiguration, solutioncomponentrelationshipconfiguration, stagedentity, stagedentityattribute, stagedmetadataasyncoperation, stagesolutionupload, subject, supportusertable, synapsedatabase, synapselinkexternaltablestate, synapselinkprofile, synapselinkprofileentity, synapselinkprofileentitystate, synapselinkschedule, syncerror, systemuser, systemuserauthorizationchangetracker, task, tdsmetadata, team, teammobileofflineprofilemembership, teamtemplate, template, territory, traitregistration, transactioncurrency, translationprocess, usermobileofflineprofilemembership, userquery, userqueryvisualization, userrating, viewasexamplequestion, virtualentitymetadata, workflow, workflowbinary, workqueue, workqueueitem| +|Targets|account, activityfileattachment, activitymimeattachment, activityparty, adx_externalidentity, adx_invitation, adx_inviteredemption, adx_portalcomment, adx_setting, adx_webformsession, aicopilot, aiinsightcard, aiplugin, aipluginauth, aipluginconversationstarter, aipluginconversationstartermapping, aipluginexternalschema, aipluginexternalschemaproperty, aiplugingovernance, aiplugingovernanceext, aiplugininstance, aipluginoperation, aipluginoperationparameter, aipluginoperationresponsetemplate, aiplugintitle, aipluginusersetting, aiskillconfig, annotation, appaction, appactionmigration, appactionrule, appelement, application, applicationuser, appmodulecomponentedge, appmodulecomponentnode, appointment, approvalprocess, approvalstageapproval, approvalstagecondition, approvalstageorder, appsetting, appusersetting, archivecleanupinfo, archivecleanupoperation, attachment, attributeimageconfig, attributemaskingrule, attributepicklistvalue, bot, botcomponent, botcomponentcollection, bulkarchiveconfig, bulkarchivefailuredetail, bulkarchiveoperation, bulkarchiveoperationdetail, businessdatalocalizedlabel, businessprocess, businessunit, canvasappextendedmetadata, card, cascadegrantrevokeaccessrecordstracker, cascadegrantrevokeaccessversiontracker, catalog, catalogassignment, category, certificatecredential, channelaccessprofile, channelaccessprofilerule, channelaccessprofileruleitem, chat, comment, connection, connectioninstance, connectionreference, connectionrole, connector, contact, conversationtranscript, copilotexamplequestion, copilotglossaryterm, copilotsynonyms, credential, customapi, customapirequestparameter, customapiresponseproperty, customeraddress, datalakefolder, datalakefolderpermission, datalakeworkspace, datalakeworkspacepermission, dataprocessingconfiguration, delegatedauthorization, deleteditemreference, desktopflowbinary, desktopflowmodule, duplicaterule, duplicaterulecondition, dvfilesearch, dvfilesearchattribute, dvfilesearchentity, dvtablesearch, dvtablesearchattribute, dvtablesearchentity, email, emailaddressconfiguration, emailserverprofile, enablearchivalrequest, entityanalyticsconfig, entityclusterconfig, entityimageconfig, entityindex, entityrecordfilter, environmentvariabledefinition, environmentvariablevalue, expiredprocess, exportedexcel, exportsolutionupload, externalparty, externalpartyitem, fabricaiskill, fax, featurecontrolsetting, federatedknowledgecitation, federatedknowledgeconfiguration, federatedknowledgeentityconfiguration, federatedknowledgemetadatarefresh, feedback, fieldpermission, fieldsecurityprofile, fileattachment, flowcapacityassignment, flowcredentialapplication, flowevent, flowmachine, flowmachinegroup, flowmachineimage, flowmachineimageversion, flowmachinenetwork, flowsession, fxexpression, goal, goalrollupquery, governanceconfiguration, holidaywrapper, importmap, indexattributes, internaladdress, internalcatalogassignment, kbarticle, kbarticletemplate, keyvaultreference, knowledgearticle, knowledgearticleviews, knowledgebaserecord, letter, mailbox, mailmergetemplate, mainfewshot, makerfewshot, managedidentity, maskingrule, metadataforarchival, metric, mobileofflineprofileextension, msdynce_botcontent, msdyn_aibdataset, msdyn_aibdatasetfile, msdyn_aibdatasetrecord, msdyn_aibdatasetscontainer, msdyn_aibfeedbackloop, msdyn_aibfile, msdyn_aibfileattacheddata, msdyn_aiconfiguration, msdyn_aidataprocessingevent, msdyn_aievaluationconfiguration, msdyn_aievaluationrun, msdyn_aievent, msdyn_aifptrainingdocument, msdyn_aimodel, msdyn_aimodelcatalog, msdyn_aiodimage, msdyn_aiodlabel, msdyn_aiodtrainingboundingbox, msdyn_aiodtrainingimage, msdyn_aitemplate, msdyn_aitestcase, msdyn_aitestcasedocument, msdyn_aitestcaseinput, msdyn_aitestrun, msdyn_aitestrunbatch, msdyn_analysiscomponent, msdyn_analysisjob, msdyn_analysisoverride, msdyn_analysisresult, msdyn_analysisresultdetail, msdyn_appinsightsmetadata, msdyn_copilotinteractions, msdyn_customcontrolextendedsettings, msdyn_dataflow, msdyn_dataflowconnectionreference, msdyn_dataflowrefreshhistory, msdyn_dataflowtemplate, msdyn_dataflow_datalakefolder, msdyn_dataworkspace, msdyn_dmsrequest, msdyn_dmsrequeststatus, msdyn_dmssyncrequest, msdyn_dmssyncstatus, msdyn_entitylinkchatconfiguration, msdyn_entityrefreshhistory, msdyn_favoriteknowledgearticle, msdyn_federatedarticle, msdyn_federatedarticleincident, msdyn_fileupload, msdyn_flow_actionapprovalmodel, msdyn_flow_approval, msdyn_flow_approvalrequest, msdyn_flow_approvalresponse, msdyn_flow_approvalstep, msdyn_flow_awaitallactionapprovalmodel, msdyn_flow_awaitallapprovalmodel, msdyn_flow_basicapprovalmodel, msdyn_flow_flowapproval, msdyn_formmapping, msdyn_function, msdyn_helppage, msdyn_insightsstorevirtualentity, msdyn_integratedsearchprovider, msdyn_kalanguagesetting, msdyn_kbattachment, msdyn_kmfederatedsearchconfig, msdyn_kmpersonalizationsetting, msdyn_knowledgearticleimage, msdyn_knowledgearticletemplate, msdyn_knowledgeassetconfiguration, msdyn_knowledgeconfiguration, msdyn_knowledgeinteractioninsight, msdyn_knowledgemanagementsetting, msdyn_knowledgepersonalfilter, msdyn_knowledgesearchfilter, msdyn_knowledgesearchinsight, msdyn_mobileapp, msdyn_modulerundetail, msdyn_plan, msdyn_planartifact, msdyn_planattachment, msdyn_pmanalysishistory, msdyn_pmbusinessruleautomationconfig, msdyn_pmcalendar, msdyn_pmcalendarversion, msdyn_pminferredtask, msdyn_pmprocessextendedmetadataversion, msdyn_pmprocesstemplate, msdyn_pmprocessusersettings, msdyn_pmprocessversion, msdyn_pmrecording, msdyn_pmsimulation, msdyn_pmtemplate, msdyn_pmview, msdyn_qna, msdyn_richtextfile, msdyn_salesforcestructuredobject, msdyn_salesforcestructuredqnaconfig, msdyn_schedule, msdyn_serviceconfiguration, msdyn_slakpi, msdyn_solutionhealthrule, msdyn_solutionhealthruleargument, msdyn_solutionhealthruleset, msdyn_tour, msdyn_virtualtablecolumncandidate, msdyn_workflowactionstatus, msgraphresourcetosubscription, mspcat_catalogsubmissionfiles, mspcat_packagestore, newprocess, offlinecommanddefinition, organization, organizationdatasyncfnostate, organizationdatasyncstate, organizationdatasyncsubscription, organizationdatasyncsubscriptionentity, organizationdatasyncsubscriptionfnotable, organizationsetting, package, packagehistory, pdfsetting, phonecall, plannerbusinessscenario, plannersyncaction, plugin, pluginpackage, position, postfollow, powerbidataset, powerbidatasetapdx, powerbimashupparameter, powerbireport, powerbireportapdx, powerfxrule, powerpagecomponent, powerpagesite, powerpagesitelanguage, powerpagesitepublished, powerpagesmanagedidentity, powerpagesscanreport, privilegecheckerlog, privilegecheckerrun, privilegesremovalsetting, processorregistration, processsession, processstage, processstageparameter, processtrigger, provisionlanguageforuser, publisher, queue, queueitem, reconciliationentityinfo, reconciliationentitystepinfo, reconciliationinfo, recordfilter, recurringappointmentmaster, recyclebinconfig, relationshipattribute, report, reportcategory, reportparameter, retaineddataexcel, retentioncleanupinfo, retentioncleanupoperation, retentionconfig, retentionfailuredetail, retentionoperation, retentionoperationdetail, retentionsuccessdetail, revokeinheritedaccessrecordstracker, role, roleeditorlayout, rollupfield, savedquery, savedqueryvisualization, savingrule, searchattributesettings, searchcustomanalyzer, searchrelationshipsettings, serviceplan, serviceplanmapping, settingdefinition, sharedlinksetting, sharedobject, sharedworkspace, sharedworkspacepool, sharepointdocumentlocation, sharepointmanagedidentity, sharepointsite, sideloadedaiplugin, signalregistration, sla, slaitem, slakpiinstance, socialactivity, socialprofile, solution, solutioncomponentattributeconfiguration, solutioncomponentbatchconfiguration, solutioncomponentconfiguration, solutioncomponentrelationshipconfiguration, stagedentity, stagedentityattribute, stagedmetadataasyncoperation, stagesolutionupload, subject, supportusertable, synapsedatabase, synapselinkexternaltablestate, synapselinkprofile, synapselinkprofileentity, synapselinkprofileentitystate, synapselinkschedule, syncerror, systemuser, systemuserauthorizationchangetracker, tag, taggedflowsession, taggedprocess, task, tdsmetadata, team, teammobileofflineprofilemembership, teamtemplate, template, territory, traitregistration, transactioncurrency, translationprocess, unstructuredfilesearchentity, unstructuredfilesearchrecord, usermobileofflineprofilemembership, userquery, userqueryvisualization, userrating, viewasexamplequestion, virtualentitymetadata, workflow, workflowbinary, workflowmetadata, workqueue, workqueueitem| ### RegardingObjectTypeCode @@ -557,7 +557,6 @@ These relationships are many-to-one. Listed by **SchemaName**. - [adx_setting_SyncErrors](#BKMK_adx_setting_SyncErrors) - [adx_webformsession_SyncErrors](#BKMK_adx_webformsession_SyncErrors) - [aicopilot_SyncErrors](#BKMK_aicopilot_SyncErrors) -- [aiinsightcard_SyncErrors](#BKMK_aiinsightcard_SyncErrors) - [aiplugin_SyncErrors](#BKMK_aiplugin_SyncErrors) - [aipluginauth_SyncErrors](#BKMK_aipluginauth_SyncErrors) - [aipluginconversationstarter_SyncErrors](#BKMK_aipluginconversationstarter_SyncErrors) @@ -579,6 +578,10 @@ These relationships are many-to-one. Listed by **SchemaName**. - [application_SyncErrors](#BKMK_application_SyncErrors) - [applicationuser_SyncErrors](#BKMK_applicationuser_SyncErrors) - [Appointment_SyncErrors](#BKMK_Appointment_SyncErrors) +- [approvalprocess_SyncErrors](#BKMK_approvalprocess_SyncErrors) +- [approvalstageapproval_SyncErrors](#BKMK_approvalstageapproval_SyncErrors) +- [approvalstagecondition_SyncErrors](#BKMK_approvalstagecondition_SyncErrors) +- [approvalstageorder_SyncErrors](#BKMK_approvalstageorder_SyncErrors) - [Attachment_SyncErrors](#BKMK_Attachment_SyncErrors) - [attributeimageconfig_SyncErrors](#BKMK_attributeimageconfig_SyncErrors) - [attributemaskingrule_SyncErrors](#BKMK_attributemaskingrule_SyncErrors) @@ -586,6 +589,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [bot_SyncErrors](#BKMK_bot_SyncErrors) - [botcomponent_SyncErrors](#BKMK_botcomponent_SyncErrors) - [botcomponentcollection_SyncErrors](#BKMK_botcomponentcollection_SyncErrors) +- [businessprocess_SyncErrors](#BKMK_businessprocess_SyncErrors) - [BusinessUnit_SyncError](#BKMK_BusinessUnit_SyncError) - [BusinessUnit_SyncErrors](#BKMK_BusinessUnit_SyncErrors) - [card_SyncErrors](#BKMK_card_SyncErrors) @@ -626,8 +630,10 @@ These relationships are many-to-one. Listed by **SchemaName**. - [dvtablesearchattribute_SyncErrors](#BKMK_dvtablesearchattribute_SyncErrors) - [dvtablesearchentity_SyncErrors](#BKMK_dvtablesearchentity_SyncErrors) - [Email_SyncErrors](#BKMK_Email_SyncErrors) +- [emailaddressconfiguration_SyncErrors](#BKMK_emailaddressconfiguration_SyncErrors) - [EmailServerProfile_SyncErrors](#BKMK_EmailServerProfile_SyncErrors) - [entityanalyticsconfig_SyncErrors](#BKMK_entityanalyticsconfig_SyncErrors) +- [entityclusterconfig_SyncErrors](#BKMK_entityclusterconfig_SyncErrors) - [entityimageconfig_SyncErrors](#BKMK_entityimageconfig_SyncErrors) - [entityindex_SyncErrors](#BKMK_entityindex_SyncErrors) - [entityrecordfilter_SyncErrors](#BKMK_entityrecordfilter_SyncErrors) @@ -688,6 +694,9 @@ These relationships are many-to-one. Listed by **SchemaName**. - [msdyn_aibfile_SyncErrors](#BKMK_msdyn_aibfile_SyncErrors) - [msdyn_aibfileattacheddata_SyncErrors](#BKMK_msdyn_aibfileattacheddata_SyncErrors) - [msdyn_aiconfiguration_SyncErrors](#BKMK_msdyn_aiconfiguration_SyncErrors) +- [msdyn_aidataprocessingevent_SyncErrors](#BKMK_msdyn_aidataprocessingevent_SyncErrors) +- [msdyn_aievaluationconfiguration_SyncErrors](#BKMK_msdyn_aievaluationconfiguration_SyncErrors) +- [msdyn_aievaluationrun_SyncErrors](#BKMK_msdyn_aievaluationrun_SyncErrors) - [msdyn_aievent_SyncErrors](#BKMK_msdyn_aievent_SyncErrors) - [msdyn_aifptrainingdocument_SyncErrors](#BKMK_msdyn_aifptrainingdocument_SyncErrors) - [msdyn_aimodel_SyncErrors](#BKMK_msdyn_aimodel_SyncErrors) @@ -696,6 +705,11 @@ These relationships are many-to-one. Listed by **SchemaName**. - [msdyn_aiodtrainingboundingbox_SyncErrors](#BKMK_msdyn_aiodtrainingboundingbox_SyncErrors) - [msdyn_aiodtrainingimage_SyncErrors](#BKMK_msdyn_aiodtrainingimage_SyncErrors) - [msdyn_aitemplate_SyncErrors](#BKMK_msdyn_aitemplate_SyncErrors) +- [msdyn_aitestcase_SyncErrors](#BKMK_msdyn_aitestcase_SyncErrors) +- [msdyn_aitestcasedocument_SyncErrors](#BKMK_msdyn_aitestcasedocument_SyncErrors) +- [msdyn_aitestcaseinput_SyncErrors](#BKMK_msdyn_aitestcaseinput_SyncErrors) +- [msdyn_aitestrun_SyncErrors](#BKMK_msdyn_aitestrun_SyncErrors) +- [msdyn_aitestrunbatch_SyncErrors](#BKMK_msdyn_aitestrunbatch_SyncErrors) - [msdyn_analysiscomponent_SyncErrors](#BKMK_msdyn_analysiscomponent_SyncErrors) - [msdyn_analysisjob_SyncErrors](#BKMK_msdyn_analysisjob_SyncErrors) - [msdyn_analysisoverride_SyncErrors](#BKMK_msdyn_analysisoverride_SyncErrors) @@ -810,7 +824,6 @@ These relationships are many-to-one. Listed by **SchemaName**. - [privilegecheckerlog_SyncErrors](#BKMK_privilegecheckerlog_SyncErrors) - [privilegecheckerrun_SyncErrors](#BKMK_privilegecheckerrun_SyncErrors) - [privilegesremovalsetting_SyncErrors](#BKMK_privilegesremovalsetting_SyncErrors) -- [processorregistration_SyncErrors](#BKMK_processorregistration_SyncErrors) - [ProcessSession_SyncErrors](#BKMK_ProcessSession_SyncErrors) - [ProcessStage_SyncErrors](#BKMK_ProcessStage_SyncErrors) - [processstageparameter_SyncErrors](#BKMK_processstageparameter_SyncErrors) @@ -837,6 +850,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [RollupField_SyncErrors](#BKMK_RollupField_SyncErrors) - [SavedQuery_SyncErrors](#BKMK_SavedQuery_SyncErrors) - [SavedQueryVisualization_SyncErrors](#BKMK_SavedQueryVisualization_SyncErrors) +- [savingrule_SyncErrors](#BKMK_savingrule_SyncErrors) - [searchattributesettings_SyncErrors](#BKMK_searchattributesettings_SyncErrors) - [searchcustomanalyzer_SyncErrors](#BKMK_searchcustomanalyzer_SyncErrors) - [searchrelationshipsettings_SyncErrors](#BKMK_searchrelationshipsettings_SyncErrors) @@ -850,7 +864,6 @@ These relationships are many-to-one. Listed by **SchemaName**. - [sharepointmanagedidentity_SyncErrors](#BKMK_sharepointmanagedidentity_SyncErrors) - [SharePointSite_SyncErrors](#BKMK_SharePointSite_SyncErrors) - [sideloadedaiplugin_SyncErrors](#BKMK_sideloadedaiplugin_SyncErrors) -- [signalregistration_SyncErrors](#BKMK_signalregistration_SyncErrors) - [SLA_SyncErrors](#BKMK_SLA_SyncErrors) - [SLAItem_SyncErrors](#BKMK_SLAItem_SyncErrors) - [SLAKPIInstance_SyncErrors](#BKMK_SLAKPIInstance_SyncErrors) @@ -877,6 +890,9 @@ These relationships are many-to-one. Listed by **SchemaName**. - [SystemUser_SyncError](#BKMK_SystemUser_SyncError) - [SystemUser_SyncErrors](#BKMK_SystemUser_SyncErrors) - [systemuserauthorizationchangetracker_SyncErrors](#BKMK_systemuserauthorizationchangetracker_SyncErrors) +- [tag_SyncErrors](#BKMK_tag_SyncErrors) +- [taggedflowsession_SyncErrors](#BKMK_taggedflowsession_SyncErrors) +- [taggedprocess_SyncErrors](#BKMK_taggedprocess_SyncErrors) - [Task_SyncErrors](#BKMK_Task_SyncErrors) - [team_SyncError](#BKMK_team_SyncError) - [Team_SyncErrors](#BKMK_Team_SyncErrors) @@ -884,9 +900,10 @@ These relationships are many-to-one. Listed by **SchemaName**. - [TeamTemplate_SyncErrors](#BKMK_TeamTemplate_SyncErrors) - [Template_SyncErrors](#BKMK_Template_SyncErrors) - [Territory_SyncErrors](#BKMK_Territory_SyncErrors) -- [traitregistration_SyncErrors](#BKMK_traitregistration_SyncErrors) - [TransactionCurrency_SyncErrors](#BKMK_TransactionCurrency_SyncErrors) - [TranslationProcess_SyncErrors](#BKMK_TranslationProcess_SyncErrors) +- [unstructuredfilesearchentity_SyncErrors](#BKMK_unstructuredfilesearchentity_SyncErrors) +- [unstructuredfilesearchrecord_SyncErrors](#BKMK_unstructuredfilesearchrecord_SyncErrors) - [usermobileofflineprofilemembership_SyncErrors](#BKMK_usermobileofflineprofilemembership_SyncErrors) - [UserQuery_SyncErrors](#BKMK_UserQuery_SyncErrors) - [UserQueryVisualization_SyncErrors](#BKMK_UserQueryVisualization_SyncErrors) @@ -895,6 +912,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [virtualentitymetadata_SyncErrors](#BKMK_virtualentitymetadata_SyncErrors) - [Workflow_SyncErrors](#BKMK_Workflow_SyncErrors) - [workflowbinary_SyncErrors](#BKMK_workflowbinary_SyncErrors) +- [workflowmetadata_SyncErrors](#BKMK_workflowmetadata_SyncErrors) - [workqueue_SyncErrors](#BKMK_workqueue_SyncErrors) - [workqueueitem_SyncErrors](#BKMK_workqueueitem_SyncErrors) @@ -1041,19 +1059,6 @@ One-To-Many Relationship: [aicopilot aicopilot_SyncErrors](aicopilot.md#BKMK_aic |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### aiinsightcard_SyncErrors - -One-To-Many Relationship: [aiinsightcard aiinsightcard_SyncErrors](aiinsightcard.md#BKMK_aiinsightcard_SyncErrors) - -|Property|Value| -|---|---| -|ReferencedEntity|`aiinsightcard`| -|ReferencedAttribute|`aiinsightcardid`| -|ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_aiinsightcard`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### aiplugin_SyncErrors One-To-Many Relationship: [aiplugin aiplugin_SyncErrors](aiplugin.md#BKMK_aiplugin_SyncErrors) @@ -1327,6 +1332,58 @@ One-To-Many Relationship: [appointment Appointment_SyncErrors](appointment.md#BK |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `Cascade`
Delete: `Cascade`
Merge: `Cascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `Cascade`
Unshare: `Cascade`| +### approvalprocess_SyncErrors + +One-To-Many Relationship: [approvalprocess approvalprocess_SyncErrors](approvalprocess.md#BKMK_approvalprocess_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalprocess`| +|ReferencedAttribute|`approvalprocessid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstageapproval_SyncErrors + +One-To-Many Relationship: [approvalstageapproval approvalstageapproval_SyncErrors](approvalstageapproval.md#BKMK_approvalstageapproval_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageapproval`| +|ReferencedAttribute|`approvalstageapprovalid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalstageapproval`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstagecondition_SyncErrors + +One-To-Many Relationship: [approvalstagecondition approvalstagecondition_SyncErrors](approvalstagecondition.md#BKMK_approvalstagecondition_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstagecondition`| +|ReferencedAttribute|`approvalstageconditionid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalstagecondition`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### approvalstageorder_SyncErrors + +One-To-Many Relationship: [approvalstageorder approvalstageorder_SyncErrors](approvalstageorder.md#BKMK_approvalstageorder_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`approvalstageorder`| +|ReferencedAttribute|`approvalstageorderid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_approvalstageorder`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### Attachment_SyncErrors One-To-Many Relationship: [attachment Attachment_SyncErrors](attachment.md#BKMK_Attachment_SyncErrors) @@ -1418,6 +1475,19 @@ One-To-Many Relationship: [botcomponentcollection botcomponentcollection_SyncErr |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### businessprocess_SyncErrors + +One-To-Many Relationship: [businessprocess businessprocess_SyncErrors](businessprocess.md#BKMK_businessprocess_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessprocess`| +|ReferencedAttribute|`businessprocessid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_businessprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### BusinessUnit_SyncError One-To-Many Relationship: [businessunit BusinessUnit_SyncError](businessunit.md#BKMK_BusinessUnit_SyncError) @@ -1938,6 +2008,19 @@ One-To-Many Relationship: [email Email_SyncErrors](email.md#BKMK_Email_SyncError |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `Cascade`
Delete: `Cascade`
Merge: `Cascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `Cascade`
Unshare: `Cascade`| +### emailaddressconfiguration_SyncErrors + +One-To-Many Relationship: [emailaddressconfiguration emailaddressconfiguration_SyncErrors](emailaddressconfiguration.md#BKMK_emailaddressconfiguration_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`emailaddressconfiguration`| +|ReferencedAttribute|`emailaddressconfigurationid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_emailaddressconfiguration`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### EmailServerProfile_SyncErrors One-To-Many Relationship: [emailserverprofile EmailServerProfile_SyncErrors](emailserverprofile.md#BKMK_EmailServerProfile_SyncErrors) @@ -1964,6 +2047,19 @@ One-To-Many Relationship: [entityanalyticsconfig entityanalyticsconfig_SyncError |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### entityclusterconfig_SyncErrors + +One-To-Many Relationship: [entityclusterconfig entityclusterconfig_SyncErrors](entityclusterconfig.md#BKMK_entityclusterconfig_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`entityclusterconfig`| +|ReferencedAttribute|`entityclusterconfigid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_entityclusterconfig`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### entityimageconfig_SyncErrors One-To-Many Relationship: [entityimageconfig entityimageconfig_SyncErrors](entityimageconfig.md#BKMK_entityimageconfig_SyncErrors) @@ -2744,6 +2840,45 @@ One-To-Many Relationship: [msdyn_aiconfiguration msdyn_aiconfiguration_SyncError |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### msdyn_aidataprocessingevent_SyncErrors + +One-To-Many Relationship: [msdyn_aidataprocessingevent msdyn_aidataprocessingevent_SyncErrors](msdyn_aidataprocessingevent.md#BKMK_msdyn_aidataprocessingevent_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aidataprocessingevent`| +|ReferencedAttribute|`msdyn_aidataprocessingeventid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aidataprocessingevent`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aievaluationconfiguration_SyncErrors + +One-To-Many Relationship: [msdyn_aievaluationconfiguration msdyn_aievaluationconfiguration_SyncErrors](msdyn_aievaluationconfiguration.md#BKMK_msdyn_aievaluationconfiguration_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aievaluationconfiguration`| +|ReferencedAttribute|`msdyn_aievaluationconfigurationid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aievaluationconfiguration`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aievaluationrun_SyncErrors + +One-To-Many Relationship: [msdyn_aievaluationrun msdyn_aievaluationrun_SyncErrors](msdyn_aievaluationrun.md#BKMK_msdyn_aievaluationrun_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aievaluationrun`| +|ReferencedAttribute|`msdyn_aievaluationrunid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aievaluationrun`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### msdyn_aievent_SyncErrors One-To-Many Relationship: [msdyn_aievent msdyn_aievent_SyncErrors](msdyn_aievent.md#BKMK_msdyn_aievent_SyncErrors) @@ -2848,6 +2983,71 @@ One-To-Many Relationship: [msdyn_aitemplate msdyn_aitemplate_SyncErrors](msdyn_a |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### msdyn_aitestcase_SyncErrors + +One-To-Many Relationship: [msdyn_aitestcase msdyn_aitestcase_SyncErrors](msdyn_aitestcase.md#BKMK_msdyn_aitestcase_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcase`| +|ReferencedAttribute|`msdyn_aitestcaseid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestcase`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestcasedocument_SyncErrors + +One-To-Many Relationship: [msdyn_aitestcasedocument msdyn_aitestcasedocument_SyncErrors](msdyn_aitestcasedocument.md#BKMK_msdyn_aitestcasedocument_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcasedocument`| +|ReferencedAttribute|`msdyn_aitestcasedocumentid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestcasedocument`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestcaseinput_SyncErrors + +One-To-Many Relationship: [msdyn_aitestcaseinput msdyn_aitestcaseinput_SyncErrors](msdyn_aitestcaseinput.md#BKMK_msdyn_aitestcaseinput_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestcaseinput`| +|ReferencedAttribute|`msdyn_aitestcaseinputid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestcaseinput`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestrun_SyncErrors + +One-To-Many Relationship: [msdyn_aitestrun msdyn_aitestrun_SyncErrors](msdyn_aitestrun.md#BKMK_msdyn_aitestrun_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestrun`| +|ReferencedAttribute|`msdyn_aitestrunid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestrun`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### msdyn_aitestrunbatch_SyncErrors + +One-To-Many Relationship: [msdyn_aitestrunbatch msdyn_aitestrunbatch_SyncErrors](msdyn_aitestrunbatch.md#BKMK_msdyn_aitestrunbatch_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`msdyn_aitestrunbatch`| +|ReferencedAttribute|`msdyn_aitestrunbatchid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_msdyn_aitestrunbatch`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### msdyn_analysiscomponent_SyncErrors One-To-Many Relationship: [msdyn_analysiscomponent msdyn_analysiscomponent_SyncErrors](msdyn_analysiscomponent.md#BKMK_msdyn_analysiscomponent_SyncErrors) @@ -4330,19 +4530,6 @@ One-To-Many Relationship: [privilegesremovalsetting privilegesremovalsetting_Syn |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### processorregistration_SyncErrors - -One-To-Many Relationship: [processorregistration processorregistration_SyncErrors](processorregistration.md#BKMK_processorregistration_SyncErrors) - -|Property|Value| -|---|---| -|ReferencedEntity|`processorregistration`| -|ReferencedAttribute|`processorregistrationid`| -|ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_processorregistration`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### ProcessSession_SyncErrors One-To-Many Relationship: [processsession ProcessSession_SyncErrors](processsession.md#BKMK_ProcessSession_SyncErrors) @@ -4681,6 +4868,19 @@ One-To-Many Relationship: [savedqueryvisualization SavedQueryVisualization_SyncE |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `Cascade`
Delete: `Cascade`
Merge: `Cascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `Cascade`
Unshare: `Cascade`| +### savingrule_SyncErrors + +One-To-Many Relationship: [savingrule savingrule_SyncErrors](savingrule.md#BKMK_savingrule_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`savingrule`| +|ReferencedAttribute|`savingruleid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_savingrule`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### searchattributesettings_SyncErrors One-To-Many Relationship: [searchattributesettings searchattributesettings_SyncErrors](searchattributesettings.md#BKMK_searchattributesettings_SyncErrors) @@ -4850,19 +5050,6 @@ One-To-Many Relationship: [sideloadedaiplugin sideloadedaiplugin_SyncErrors](sid |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### signalregistration_SyncErrors - -One-To-Many Relationship: [signalregistration signalregistration_SyncErrors](signalregistration.md#BKMK_signalregistration_SyncErrors) - -|Property|Value| -|---|---| -|ReferencedEntity|`signalregistration`| -|ReferencedAttribute|`signalregistrationid`| -|ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_signalregistration`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### SLA_SyncErrors One-To-Many Relationship: [sla SLA_SyncErrors](sla.md#BKMK_SLA_SyncErrors) @@ -5201,6 +5388,45 @@ One-To-Many Relationship: [systemuserauthorizationchangetracker systemuserauthor |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### tag_SyncErrors + +One-To-Many Relationship: [tag tag_SyncErrors](tag.md#BKMK_tag_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`tag`| +|ReferencedAttribute|`tagid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_tag`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### taggedflowsession_SyncErrors + +One-To-Many Relationship: [taggedflowsession taggedflowsession_SyncErrors](taggedflowsession.md#BKMK_taggedflowsession_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`taggedflowsession`| +|ReferencedAttribute|`taggedflowsessionid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_taggedflowsession`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### taggedprocess_SyncErrors + +One-To-Many Relationship: [taggedprocess taggedprocess_SyncErrors](taggedprocess.md#BKMK_taggedprocess_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`taggedprocess`| +|ReferencedAttribute|`taggedprocessid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_taggedprocess`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### Task_SyncErrors One-To-Many Relationship: [task Task_SyncErrors](task.md#BKMK_Task_SyncErrors) @@ -5292,19 +5518,6 @@ One-To-Many Relationship: [territory Territory_SyncErrors](territory.md#BKMK_Ter |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `Cascade`
Delete: `Cascade`
Merge: `Cascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `Cascade`
Unshare: `Cascade`| -### traitregistration_SyncErrors - -One-To-Many Relationship: [traitregistration traitregistration_SyncErrors](traitregistration.md#BKMK_traitregistration_SyncErrors) - -|Property|Value| -|---|---| -|ReferencedEntity|`traitregistration`| -|ReferencedAttribute|`traitregistrationid`| -|ReferencingAttribute|`regardingobjectid`| -|ReferencingEntityNavigationPropertyName|`regardingobjectid_traitregistration`| -|IsHierarchical|| -|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| - ### TransactionCurrency_SyncErrors One-To-Many Relationship: [transactioncurrency TransactionCurrency_SyncErrors](transactioncurrency.md#BKMK_TransactionCurrency_SyncErrors) @@ -5331,6 +5544,32 @@ One-To-Many Relationship: [translationprocess TranslationProcess_SyncErrors](tra |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `Cascade`
Delete: `Cascade`
Merge: `Cascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `Cascade`
Unshare: `Cascade`| +### unstructuredfilesearchentity_SyncErrors + +One-To-Many Relationship: [unstructuredfilesearchentity unstructuredfilesearchentity_SyncErrors](unstructuredfilesearchentity.md#BKMK_unstructuredfilesearchentity_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`unstructuredfilesearchentity`| +|ReferencedAttribute|`unstructuredfilesearchentityid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_unstructuredfilesearchentity`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### unstructuredfilesearchrecord_SyncErrors + +One-To-Many Relationship: [unstructuredfilesearchrecord unstructuredfilesearchrecord_SyncErrors](unstructuredfilesearchrecord.md#BKMK_unstructuredfilesearchrecord_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`unstructuredfilesearchrecord`| +|ReferencedAttribute|`unstructuredfilesearchrecordid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_unstructuredfilesearchrecord`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### usermobileofflineprofilemembership_SyncErrors One-To-Many Relationship: [usermobileofflineprofilemembership usermobileofflineprofilemembership_SyncErrors](usermobileofflineprofilemembership.md#BKMK_usermobileofflineprofilemembership_SyncErrors) @@ -5435,6 +5674,19 @@ One-To-Many Relationship: [workflowbinary workflowbinary_SyncErrors](workflowbin |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### workflowmetadata_SyncErrors + +One-To-Many Relationship: [workflowmetadata workflowmetadata_SyncErrors](workflowmetadata.md#BKMK_workflowmetadata_SyncErrors) + +|Property|Value| +|---|---| +|ReferencedEntity|`workflowmetadata`| +|ReferencedAttribute|`workflowmetadataid`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencingEntityNavigationPropertyName|`regardingobjectid_workflowmetadata`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### workqueue_SyncErrors One-To-Many Relationship: [workqueue workqueue_SyncErrors](workqueue.md#BKMK_workqueue_SyncErrors) diff --git a/powerapps-docs/developer/data-platform/reference/entities/systemuser.md b/powerapps-docs/developer/data-platform/reference/entities/systemuser.md index 465ac89ea1..77b7d0c2bd 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/systemuser.md +++ b/powerapps-docs/developer/data-platform/reference/entities/systemuser.md @@ -121,6 +121,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [IncomingEmailDeliveryMethod](#BKMK_IncomingEmailDeliveryMethod) - [InternalEMailAddress](#BKMK_InternalEMailAddress) - [InviteStatusCode](#BKMK_InviteStatusCode) +- [IsAllowedByIpFirewall](#BKMK_IsAllowedByIpFirewall) - [IsDisabled](#BKMK_IsDisabled) - [IsIntegrationUser](#BKMK_IsIntegrationUser) - [IsLicensed](#BKMK_IsLicensed) @@ -150,6 +151,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [SharePointEmailAddress](#BKMK_SharePointEmailAddress) - [Skills](#BKMK_Skills) - [StageId](#BKMK_StageId) +- [SystemManagedUserType](#BKMK_SystemManagedUserType) - [SystemUserId](#BKMK_SystemUserId) - [TerritoryId](#BKMK_TerritoryId) - [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) @@ -1209,6 +1211,22 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |5|**Invitation Rejected**| |6|**Invitation Revoked**| +### IsAllowedByIpFirewall + +|Property|Value| +|---|---| +|Description|**Bypasses the selected user from IP firewall restriction**| +|DisplayName|**To bypass IP firewall restriction on the user**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`isallowedbyipfirewall`| +|RequiredLevel|None| +|Type|Boolean| +|GlobalChoiceName|`systemuser_isallowedbyipfirewall`| +|DefaultValue|False| +|True Label|Yes| +|False Label|No| + ### IsDisabled |Property|Value| @@ -1683,6 +1701,27 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |RequiredLevel|None| |Type|Uniqueidentifier| +### SystemManagedUserType + +|Property|Value| +|---|---| +|Description|**The type of user**| +|DisplayName|**System Managed User Type**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`systemmanagedusertype`| +|RequiredLevel|ApplicationRequired| +|Type|Picklist| +|DefaultFormValue|0| +|GlobalChoiceName|`systemuser_systemmanagedusertype`| + +#### SystemManagedUserType Choices/Options + +|Value|Label| +|---|---| +|0|**Entra User**| +|1|**C2 User**| + ### SystemUserId |Property|Value| @@ -2712,10 +2751,6 @@ These relationships are one-to-many. Listed by **SchemaName**. - [lk_aicopilot_createdonbehalfby](#BKMK_lk_aicopilot_createdonbehalfby) - [lk_aicopilot_modifiedby](#BKMK_lk_aicopilot_modifiedby) - [lk_aicopilot_modifiedonbehalfby](#BKMK_lk_aicopilot_modifiedonbehalfby) -- [lk_aiinsightcard_createdby](#BKMK_lk_aiinsightcard_createdby) -- [lk_aiinsightcard_createdonbehalfby](#BKMK_lk_aiinsightcard_createdonbehalfby) -- [lk_aiinsightcard_modifiedby](#BKMK_lk_aiinsightcard_modifiedby) -- [lk_aiinsightcard_modifiedonbehalfby](#BKMK_lk_aiinsightcard_modifiedonbehalfby) - [lk_aiplugin_createdby](#BKMK_lk_aiplugin_createdby) - [lk_aiplugin_createdonbehalfby](#BKMK_lk_aiplugin_createdonbehalfby) - [lk_aiplugin_modifiedby](#BKMK_lk_aiplugin_modifiedby) @@ -2825,6 +2860,22 @@ These relationships are one-to-many. Listed by **SchemaName**. - [lk_appointment_createdonbehalfby](#BKMK_lk_appointment_createdonbehalfby) - [lk_appointment_modifiedby](#BKMK_lk_appointment_modifiedby) - [lk_appointment_modifiedonbehalfby](#BKMK_lk_appointment_modifiedonbehalfby) +- [lk_approvalprocess_createdby](#BKMK_lk_approvalprocess_createdby) +- [lk_approvalprocess_createdonbehalfby](#BKMK_lk_approvalprocess_createdonbehalfby) +- [lk_approvalprocess_modifiedby](#BKMK_lk_approvalprocess_modifiedby) +- [lk_approvalprocess_modifiedonbehalfby](#BKMK_lk_approvalprocess_modifiedonbehalfby) +- [lk_approvalstageapproval_createdby](#BKMK_lk_approvalstageapproval_createdby) +- [lk_approvalstageapproval_createdonbehalfby](#BKMK_lk_approvalstageapproval_createdonbehalfby) +- [lk_approvalstageapproval_modifiedby](#BKMK_lk_approvalstageapproval_modifiedby) +- [lk_approvalstageapproval_modifiedonbehalfby](#BKMK_lk_approvalstageapproval_modifiedonbehalfby) +- [lk_approvalstagecondition_createdby](#BKMK_lk_approvalstagecondition_createdby) +- [lk_approvalstagecondition_createdonbehalfby](#BKMK_lk_approvalstagecondition_createdonbehalfby) +- [lk_approvalstagecondition_modifiedby](#BKMK_lk_approvalstagecondition_modifiedby) +- [lk_approvalstagecondition_modifiedonbehalfby](#BKMK_lk_approvalstagecondition_modifiedonbehalfby) +- [lk_approvalstageorder_createdby](#BKMK_lk_approvalstageorder_createdby) +- [lk_approvalstageorder_createdonbehalfby](#BKMK_lk_approvalstageorder_createdonbehalfby) +- [lk_approvalstageorder_modifiedby](#BKMK_lk_approvalstageorder_modifiedby) +- [lk_approvalstageorder_modifiedonbehalfby](#BKMK_lk_approvalstageorder_modifiedonbehalfby) - [lk_asyncoperation_createdby](#BKMK_lk_asyncoperation_createdby) - [lk_asyncoperation_createdonbehalfby](#BKMK_lk_asyncoperation_createdonbehalfby) - [lk_asyncoperation_modifiedby](#BKMK_lk_asyncoperation_modifiedby) @@ -2851,6 +2902,10 @@ These relationships are one-to-many. Listed by **SchemaName**. - [lk_bulkdeleteoperation_modifiedonbehalfby](#BKMK_lk_bulkdeleteoperation_modifiedonbehalfby) - [lk_bulkdeleteoperationbase_createdby](#BKMK_lk_bulkdeleteoperationbase_createdby) - [lk_bulkdeleteoperationbase_modifiedby](#BKMK_lk_bulkdeleteoperationbase_modifiedby) +- [lk_businessprocess_createdby](#BKMK_lk_businessprocess_createdby) +- [lk_businessprocess_createdonbehalfby](#BKMK_lk_businessprocess_createdonbehalfby) +- [lk_businessprocess_modifiedby](#BKMK_lk_businessprocess_modifiedby) +- [lk_businessprocess_modifiedonbehalfby](#BKMK_lk_businessprocess_modifiedonbehalfby) - [lk_businessunit_createdonbehalfby](#BKMK_lk_businessunit_createdonbehalfby) - [lk_businessunit_modifiedonbehalfby](#BKMK_lk_businessunit_modifiedonbehalfby) - [lk_businessunitbase_createdby](#BKMK_lk_businessunitbase_createdby) @@ -3049,10 +3104,18 @@ These relationships are one-to-many. Listed by **SchemaName**. - [lk_email_createdonbehalfby](#BKMK_lk_email_createdonbehalfby) - [lk_email_modifiedby](#BKMK_lk_email_modifiedby) - [lk_email_modifiedonbehalfby](#BKMK_lk_email_modifiedonbehalfby) +- [lk_emailaddressconfiguration_createdby](#BKMK_lk_emailaddressconfiguration_createdby) +- [lk_emailaddressconfiguration_createdonbehalfby](#BKMK_lk_emailaddressconfiguration_createdonbehalfby) +- [lk_emailaddressconfiguration_modifiedby](#BKMK_lk_emailaddressconfiguration_modifiedby) +- [lk_emailaddressconfiguration_modifiedonbehalfby](#BKMK_lk_emailaddressconfiguration_modifiedonbehalfby) - [lk_emailserverprofile_createdby](#BKMK_lk_emailserverprofile_createdby) - [lk_emailserverprofile_createdonbehalfby](#BKMK_lk_emailserverprofile_createdonbehalfby) - [lk_emailserverprofile_modifiedby](#BKMK_lk_emailserverprofile_modifiedby) - [lk_emailserverprofile_modifiedonbehalfby](#BKMK_lk_emailserverprofile_modifiedonbehalfby) +- [lk_entityclusterconfig_createdby](#BKMK_lk_entityclusterconfig_createdby) +- [lk_entityclusterconfig_createdonbehalfby](#BKMK_lk_entityclusterconfig_createdonbehalfby) +- [lk_entityclusterconfig_modifiedby](#BKMK_lk_entityclusterconfig_modifiedby) +- [lk_entityclusterconfig_modifiedonbehalfby](#BKMK_lk_entityclusterconfig_modifiedonbehalfby) - [lk_entityrecordfilter_createdby](#BKMK_lk_entityrecordfilter_createdby) - [lk_entityrecordfilter_createdonbehalfby](#BKMK_lk_entityrecordfilter_createdonbehalfby) - [lk_entityrecordfilter_modifiedby](#BKMK_lk_entityrecordfilter_modifiedby) @@ -3115,6 +3178,10 @@ These relationships are one-to-many. Listed by **SchemaName**. - [lk_fixedmonthlyfiscalcalendar_modifiedby](#BKMK_lk_fixedmonthlyfiscalcalendar_modifiedby) - [lk_fixedmonthlyfiscalcalendar_modifiedonbehalfby](#BKMK_lk_fixedmonthlyfiscalcalendar_modifiedonbehalfby) - [lk_fixedmonthlyfiscalcalendar_salespersonid](#BKMK_lk_fixedmonthlyfiscalcalendar_salespersonid) +- [lk_flowaggregation_createdby](#BKMK_lk_flowaggregation_createdby) +- [lk_flowaggregation_createdonbehalfby](#BKMK_lk_flowaggregation_createdonbehalfby) +- [lk_flowaggregation_modifiedby](#BKMK_lk_flowaggregation_modifiedby) +- [lk_flowaggregation_modifiedonbehalfby](#BKMK_lk_flowaggregation_modifiedonbehalfby) - [lk_flowcapacityassignment_createdby](#BKMK_lk_flowcapacityassignment_createdby) - [lk_flowcapacityassignment_createdonbehalfby](#BKMK_lk_flowcapacityassignment_createdonbehalfby) - [lk_flowcapacityassignment_modifiedby](#BKMK_lk_flowcapacityassignment_modifiedby) @@ -3203,6 +3270,10 @@ These relationships are one-to-many. Listed by **SchemaName**. - [lk_importmap_modifiedonbehalfby](#BKMK_lk_importmap_modifiedonbehalfby) - [lk_importmapbase_createdby](#BKMK_lk_importmapbase_createdby) - [lk_importmapbase_modifiedby](#BKMK_lk_importmapbase_modifiedby) +- [lk_indexedtrait_createdby](#BKMK_lk_indexedtrait_createdby) +- [lk_indexedtrait_createdonbehalfby](#BKMK_lk_indexedtrait_createdonbehalfby) +- [lk_indexedtrait_modifiedby](#BKMK_lk_indexedtrait_modifiedby) +- [lk_indexedtrait_modifiedonbehalfby](#BKMK_lk_indexedtrait_modifiedonbehalfby) - [lk_interactionforemail_createdby](#BKMK_lk_interactionforemail_createdby) - [lk_interactionforemail_createdonbehalfby](#BKMK_lk_interactionforemail_createdonbehalfby) - [lk_interactionforemail_modifiedby](#BKMK_lk_interactionforemail_modifiedby) @@ -3328,6 +3399,18 @@ These relationships are one-to-many. Listed by **SchemaName**. - [lk_msdyn_aiconfiguration_createdonbehalfby](#BKMK_lk_msdyn_aiconfiguration_createdonbehalfby) - [lk_msdyn_aiconfiguration_modifiedby](#BKMK_lk_msdyn_aiconfiguration_modifiedby) - [lk_msdyn_aiconfiguration_modifiedonbehalfby](#BKMK_lk_msdyn_aiconfiguration_modifiedonbehalfby) +- [lk_msdyn_aidataprocessingevent_createdby](#BKMK_lk_msdyn_aidataprocessingevent_createdby) +- [lk_msdyn_aidataprocessingevent_createdonbehalfby](#BKMK_lk_msdyn_aidataprocessingevent_createdonbehalfby) +- [lk_msdyn_aidataprocessingevent_modifiedby](#BKMK_lk_msdyn_aidataprocessingevent_modifiedby) +- [lk_msdyn_aidataprocessingevent_modifiedonbehalfby](#BKMK_lk_msdyn_aidataprocessingevent_modifiedonbehalfby) +- [lk_msdyn_aievaluationconfiguration_createdby](#BKMK_lk_msdyn_aievaluationconfiguration_createdby) +- [lk_msdyn_aievaluationconfiguration_createdonbehalfby](#BKMK_lk_msdyn_aievaluationconfiguration_createdonbehalfby) +- [lk_msdyn_aievaluationconfiguration_modifiedby](#BKMK_lk_msdyn_aievaluationconfiguration_modifiedby) +- [lk_msdyn_aievaluationconfiguration_modifiedonbehalfby](#BKMK_lk_msdyn_aievaluationconfiguration_modifiedonbehalfby) +- [lk_msdyn_aievaluationrun_createdby](#BKMK_lk_msdyn_aievaluationrun_createdby) +- [lk_msdyn_aievaluationrun_createdonbehalfby](#BKMK_lk_msdyn_aievaluationrun_createdonbehalfby) +- [lk_msdyn_aievaluationrun_modifiedby](#BKMK_lk_msdyn_aievaluationrun_modifiedby) +- [lk_msdyn_aievaluationrun_modifiedonbehalfby](#BKMK_lk_msdyn_aievaluationrun_modifiedonbehalfby) - [lk_msdyn_aievent_createdby](#BKMK_lk_msdyn_aievent_createdby) - [lk_msdyn_aievent_createdonbehalfby](#BKMK_lk_msdyn_aievent_createdonbehalfby) - [lk_msdyn_aievent_modifiedby](#BKMK_lk_msdyn_aievent_modifiedby) @@ -3360,6 +3443,26 @@ These relationships are one-to-many. Listed by **SchemaName**. - [lk_msdyn_aitemplate_createdonbehalfby](#BKMK_lk_msdyn_aitemplate_createdonbehalfby) - [lk_msdyn_aitemplate_modifiedby](#BKMK_lk_msdyn_aitemplate_modifiedby) - [lk_msdyn_aitemplate_modifiedonbehalfby](#BKMK_lk_msdyn_aitemplate_modifiedonbehalfby) +- [lk_msdyn_aitestcase_createdby](#BKMK_lk_msdyn_aitestcase_createdby) +- [lk_msdyn_aitestcase_createdonbehalfby](#BKMK_lk_msdyn_aitestcase_createdonbehalfby) +- [lk_msdyn_aitestcase_modifiedby](#BKMK_lk_msdyn_aitestcase_modifiedby) +- [lk_msdyn_aitestcase_modifiedonbehalfby](#BKMK_lk_msdyn_aitestcase_modifiedonbehalfby) +- [lk_msdyn_aitestcasedocument_createdby](#BKMK_lk_msdyn_aitestcasedocument_createdby) +- [lk_msdyn_aitestcasedocument_createdonbehalfby](#BKMK_lk_msdyn_aitestcasedocument_createdonbehalfby) +- [lk_msdyn_aitestcasedocument_modifiedby](#BKMK_lk_msdyn_aitestcasedocument_modifiedby) +- [lk_msdyn_aitestcasedocument_modifiedonbehalfby](#BKMK_lk_msdyn_aitestcasedocument_modifiedonbehalfby) +- [lk_msdyn_aitestcaseinput_createdby](#BKMK_lk_msdyn_aitestcaseinput_createdby) +- [lk_msdyn_aitestcaseinput_createdonbehalfby](#BKMK_lk_msdyn_aitestcaseinput_createdonbehalfby) +- [lk_msdyn_aitestcaseinput_modifiedby](#BKMK_lk_msdyn_aitestcaseinput_modifiedby) +- [lk_msdyn_aitestcaseinput_modifiedonbehalfby](#BKMK_lk_msdyn_aitestcaseinput_modifiedonbehalfby) +- [lk_msdyn_aitestrun_createdby](#BKMK_lk_msdyn_aitestrun_createdby) +- [lk_msdyn_aitestrun_createdonbehalfby](#BKMK_lk_msdyn_aitestrun_createdonbehalfby) +- [lk_msdyn_aitestrun_modifiedby](#BKMK_lk_msdyn_aitestrun_modifiedby) +- [lk_msdyn_aitestrun_modifiedonbehalfby](#BKMK_lk_msdyn_aitestrun_modifiedonbehalfby) +- [lk_msdyn_aitestrunbatch_createdby](#BKMK_lk_msdyn_aitestrunbatch_createdby) +- [lk_msdyn_aitestrunbatch_createdonbehalfby](#BKMK_lk_msdyn_aitestrunbatch_createdonbehalfby) +- [lk_msdyn_aitestrunbatch_modifiedby](#BKMK_lk_msdyn_aitestrunbatch_modifiedby) +- [lk_msdyn_aitestrunbatch_modifiedonbehalfby](#BKMK_lk_msdyn_aitestrunbatch_modifiedonbehalfby) - [lk_msdyn_analysiscomponent_createdby](#BKMK_lk_msdyn_analysiscomponent_createdby) - [lk_msdyn_analysiscomponent_createdonbehalfby](#BKMK_lk_msdyn_analysiscomponent_createdonbehalfby) - [lk_msdyn_analysiscomponent_modifiedby](#BKMK_lk_msdyn_analysiscomponent_modifiedby) @@ -3847,10 +3950,6 @@ These relationships are one-to-many. Listed by **SchemaName**. - [lk_privilegesremovalsetting_createdonbehalfby](#BKMK_lk_privilegesremovalsetting_createdonbehalfby) - [lk_privilegesremovalsetting_modifiedby](#BKMK_lk_privilegesremovalsetting_modifiedby) - [lk_privilegesremovalsetting_modifiedonbehalfby](#BKMK_lk_privilegesremovalsetting_modifiedonbehalfby) -- [lk_processorregistration_createdby](#BKMK_lk_processorregistration_createdby) -- [lk_processorregistration_createdonbehalfby](#BKMK_lk_processorregistration_createdonbehalfby) -- [lk_processorregistration_modifiedby](#BKMK_lk_processorregistration_modifiedby) -- [lk_processorregistration_modifiedonbehalfby](#BKMK_lk_processorregistration_modifiedonbehalfby) - [lk_processsession_canceledby](#BKMK_lk_processsession_canceledby) - [lk_processsession_completedby](#BKMK_lk_processsession_completedby) - [lk_processsession_createdby](#BKMK_lk_processsession_createdby) @@ -3965,6 +4064,10 @@ These relationships are one-to-many. Listed by **SchemaName**. - [lk_savedqueryvisualizationbase_createdonbehalfby](#BKMK_lk_savedqueryvisualizationbase_createdonbehalfby) - [lk_savedqueryvisualizationbase_modifiedby](#BKMK_lk_savedqueryvisualizationbase_modifiedby) - [lk_savedqueryvisualizationbase_modifiedonbehalfby](#BKMK_lk_savedqueryvisualizationbase_modifiedonbehalfby) +- [lk_savingrule_createdby](#BKMK_lk_savingrule_createdby) +- [lk_savingrule_createdonbehalfby](#BKMK_lk_savingrule_createdonbehalfby) +- [lk_savingrule_modifiedby](#BKMK_lk_savingrule_modifiedby) +- [lk_savingrule_modifiedonbehalfby](#BKMK_lk_savingrule_modifiedonbehalfby) - [lk_sdkmessage_createdonbehalfby](#BKMK_lk_sdkmessage_createdonbehalfby) - [lk_sdkmessage_modifiedonbehalfby](#BKMK_lk_sdkmessage_modifiedonbehalfby) - [lk_sdkmessagefilter_createdonbehalfby](#BKMK_lk_sdkmessagefilter_createdonbehalfby) @@ -4046,10 +4149,6 @@ These relationships are one-to-many. Listed by **SchemaName**. - [lk_signal_createdonbehalfby](#BKMK_lk_signal_createdonbehalfby) - [lk_signal_modifiedby](#BKMK_lk_signal_modifiedby) - [lk_signal_modifiedonbehalfby](#BKMK_lk_signal_modifiedonbehalfby) -- [lk_signalregistration_createdby](#BKMK_lk_signalregistration_createdby) -- [lk_signalregistration_createdonbehalfby](#BKMK_lk_signalregistration_createdonbehalfby) -- [lk_signalregistration_modifiedby](#BKMK_lk_signalregistration_modifiedby) -- [lk_signalregistration_modifiedonbehalfby](#BKMK_lk_signalregistration_modifiedonbehalfby) - [lk_similarityrule_createdonbehalfby](#BKMK_lk_similarityrule_createdonbehalfby) - [lk_similarityrule_modifiedonbehalfby](#BKMK_lk_similarityrule_modifiedonbehalfby) - [lk_SiteMap_createdby](#BKMK_lk_SiteMap_createdby) @@ -4172,6 +4271,18 @@ These relationships are one-to-many. Listed by **SchemaName**. - [lk_systemuser_modifiedonbehalfby](#BKMK_lk_systemuser_modifiedonbehalfby-one-to-many) - [lk_systemuserbase_createdby](#BKMK_lk_systemuserbase_createdby-one-to-many) - [lk_systemuserbase_modifiedby](#BKMK_lk_systemuserbase_modifiedby-one-to-many) +- [lk_tag_createdby](#BKMK_lk_tag_createdby) +- [lk_tag_createdonbehalfby](#BKMK_lk_tag_createdonbehalfby) +- [lk_tag_modifiedby](#BKMK_lk_tag_modifiedby) +- [lk_tag_modifiedonbehalfby](#BKMK_lk_tag_modifiedonbehalfby) +- [lk_taggedflowsession_createdby](#BKMK_lk_taggedflowsession_createdby) +- [lk_taggedflowsession_createdonbehalfby](#BKMK_lk_taggedflowsession_createdonbehalfby) +- [lk_taggedflowsession_modifiedby](#BKMK_lk_taggedflowsession_modifiedby) +- [lk_taggedflowsession_modifiedonbehalfby](#BKMK_lk_taggedflowsession_modifiedonbehalfby) +- [lk_taggedprocess_createdby](#BKMK_lk_taggedprocess_createdby) +- [lk_taggedprocess_createdonbehalfby](#BKMK_lk_taggedprocess_createdonbehalfby) +- [lk_taggedprocess_modifiedby](#BKMK_lk_taggedprocess_modifiedby) +- [lk_taggedprocess_modifiedonbehalfby](#BKMK_lk_taggedprocess_modifiedonbehalfby) - [lk_task_createdby](#BKMK_lk_task_createdby) - [lk_task_createdonbehalfby](#BKMK_lk_task_createdonbehalfby) - [lk_task_modifiedby](#BKMK_lk_task_modifiedby) @@ -4197,6 +4308,10 @@ These relationships are one-to-many. Listed by **SchemaName**. - [lk_territory_modifiedonbehalfby](#BKMK_lk_territory_modifiedonbehalfby) - [lk_territorybase_createdby](#BKMK_lk_territorybase_createdby) - [lk_territorybase_modifiedby](#BKMK_lk_territorybase_modifiedby) +- [lk_textdatarecordsindexingstatus_createdby](#BKMK_lk_textdatarecordsindexingstatus_createdby) +- [lk_textdatarecordsindexingstatus_createdonbehalfby](#BKMK_lk_textdatarecordsindexingstatus_createdonbehalfby) +- [lk_textdatarecordsindexingstatus_modifiedby](#BKMK_lk_textdatarecordsindexingstatus_modifiedby) +- [lk_textdatarecordsindexingstatus_modifiedonbehalfby](#BKMK_lk_textdatarecordsindexingstatus_modifiedonbehalfby) - [lk_theme_createdby](#BKMK_lk_theme_createdby) - [lk_theme_createdonbehalfby](#BKMK_lk_theme_createdonbehalfby) - [lk_theme_modifiedby](#BKMK_lk_theme_modifiedby) @@ -4221,10 +4336,6 @@ These relationships are one-to-many. Listed by **SchemaName**. - [lk_trait_createdonbehalfby](#BKMK_lk_trait_createdonbehalfby) - [lk_trait_modifiedby](#BKMK_lk_trait_modifiedby) - [lk_trait_modifiedonbehalfby](#BKMK_lk_trait_modifiedonbehalfby) -- [lk_traitregistration_createdby](#BKMK_lk_traitregistration_createdby) -- [lk_traitregistration_createdonbehalfby](#BKMK_lk_traitregistration_createdonbehalfby) -- [lk_traitregistration_modifiedby](#BKMK_lk_traitregistration_modifiedby) -- [lk_traitregistration_modifiedonbehalfby](#BKMK_lk_traitregistration_modifiedonbehalfby) - [lk_transactioncurrency_createdonbehalfby](#BKMK_lk_transactioncurrency_createdonbehalfby) - [lk_transactioncurrency_modifiedonbehalfby](#BKMK_lk_transactioncurrency_modifiedonbehalfby) - [lk_transactioncurrencybase_createdby](#BKMK_lk_transactioncurrencybase_createdby) @@ -4241,6 +4352,14 @@ These relationships are one-to-many. Listed by **SchemaName**. - [lk_translationprocess_createdonbehalfby](#BKMK_lk_translationprocess_createdonbehalfby) - [lk_translationprocess_modifiedby](#BKMK_lk_translationprocess_modifiedby) - [lk_translationprocess_modifiedonbehalfby](#BKMK_lk_translationprocess_modifiedonbehalfby) +- [lk_unstructuredfilesearchentity_createdby](#BKMK_lk_unstructuredfilesearchentity_createdby) +- [lk_unstructuredfilesearchentity_createdonbehalfby](#BKMK_lk_unstructuredfilesearchentity_createdonbehalfby) +- [lk_unstructuredfilesearchentity_modifiedby](#BKMK_lk_unstructuredfilesearchentity_modifiedby) +- [lk_unstructuredfilesearchentity_modifiedonbehalfby](#BKMK_lk_unstructuredfilesearchentity_modifiedonbehalfby) +- [lk_unstructuredfilesearchrecord_createdby](#BKMK_lk_unstructuredfilesearchrecord_createdby) +- [lk_unstructuredfilesearchrecord_createdonbehalfby](#BKMK_lk_unstructuredfilesearchrecord_createdonbehalfby) +- [lk_unstructuredfilesearchrecord_modifiedby](#BKMK_lk_unstructuredfilesearchrecord_modifiedby) +- [lk_unstructuredfilesearchrecord_modifiedonbehalfby](#BKMK_lk_unstructuredfilesearchrecord_modifiedonbehalfby) - [lk_userform_createdby](#BKMK_lk_userform_createdby) - [lk_userform_modifiedby](#BKMK_lk_userform_modifiedby) - [lk_userformbase_createdonbehalfby](#BKMK_lk_userformbase_createdonbehalfby) @@ -4291,6 +4410,10 @@ These relationships are one-to-many. Listed by **SchemaName**. - [lk_workflowlog_createdonbehalfby](#BKMK_lk_workflowlog_createdonbehalfby) - [lk_workflowlog_modifiedby](#BKMK_lk_workflowlog_modifiedby) - [lk_workflowlog_modifiedonbehalfby](#BKMK_lk_workflowlog_modifiedonbehalfby) +- [lk_workflowmetadata_createdby](#BKMK_lk_workflowmetadata_createdby) +- [lk_workflowmetadata_createdonbehalfby](#BKMK_lk_workflowmetadata_createdonbehalfby) +- [lk_workflowmetadata_modifiedby](#BKMK_lk_workflowmetadata_modifiedby) +- [lk_workflowmetadata_modifiedonbehalfby](#BKMK_lk_workflowmetadata_modifiedonbehalfby) - [lk_workqueue_createdby](#BKMK_lk_workqueue_createdby) - [lk_workqueue_createdonbehalfby](#BKMK_lk_workqueue_createdonbehalfby) - [lk_workqueue_modifiedby](#BKMK_lk_workqueue_modifiedby) @@ -4414,7 +4537,6 @@ These relationships are one-to-many. Listed by **SchemaName**. - [user_activityfileattachment](#BKMK_user_activityfileattachment) - [user_adx_invitation](#BKMK_user_adx_invitation) - [user_adx_setting](#BKMK_user_adx_setting) -- [user_aiinsightcard](#BKMK_user_aiinsightcard) - [user_aiplugin](#BKMK_user_aiplugin) - [user_aipluginauth](#BKMK_user_aipluginauth) - [user_aipluginconversationstarter](#BKMK_user_aipluginconversationstarter) @@ -4430,9 +4552,14 @@ These relationships are one-to-many. Listed by **SchemaName**. - [user_aipluginusersetting](#BKMK_user_aipluginusersetting) - [user_appnotification](#BKMK_user_appnotification) - [user_appointment](#BKMK_user_appointment) +- [user_approvalprocess](#BKMK_user_approvalprocess) +- [user_approvalstageapproval](#BKMK_user_approvalstageapproval) +- [user_approvalstagecondition](#BKMK_user_approvalstagecondition) +- [user_approvalstageorder](#BKMK_user_approvalstageorder) - [user_bot](#BKMK_user_bot) - [user_botcomponent](#BKMK_user_botcomponent) - [user_botcomponentcollection](#BKMK_user_botcomponentcollection) +- [user_businessprocess](#BKMK_user_businessprocess) - [user_card](#BKMK_user_card) - [user_certificatecredential](#BKMK_user_certificatecredential) - [user_componentversion](#BKMK_user_componentversion) @@ -4463,6 +4590,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [user_featurecontrolsetting](#BKMK_user_featurecontrolsetting) - [user_federatedknowledgeconfiguration](#BKMK_user_federatedknowledgeconfiguration) - [user_federatedknowledgeentityconfiguration](#BKMK_user_federatedknowledgeentityconfiguration) +- [user_flowaggregation](#BKMK_user_flowaggregation) - [user_flowcapacityassignment](#BKMK_user_flowcapacityassignment) - [user_flowcredentialapplication](#BKMK_user_flowcredentialapplication) - [user_flowevent](#BKMK_user_flowevent) @@ -4477,6 +4605,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [user_goal](#BKMK_user_goal) - [user_goal_goalowner](#BKMK_user_goal_goalowner) - [user_governanceconfiguration](#BKMK_user_governanceconfiguration) +- [user_indexedtrait](#BKMK_user_indexedtrait) - [user_interactionforemail](#BKMK_user_interactionforemail) - [user_keyvaultreference](#BKMK_user_keyvaultreference) - [user_knowledgearticle](#BKMK_user_knowledgearticle) @@ -4490,6 +4619,9 @@ These relationships are one-to-many. Listed by **SchemaName**. - [user_msdyn_aibfeedbackloop](#BKMK_user_msdyn_aibfeedbackloop) - [user_msdyn_aibfile](#BKMK_user_msdyn_aibfile) - [user_msdyn_aibfileattacheddata](#BKMK_user_msdyn_aibfileattacheddata) +- [user_msdyn_aidataprocessingevent](#BKMK_user_msdyn_aidataprocessingevent) +- [user_msdyn_aievaluationconfiguration](#BKMK_user_msdyn_aievaluationconfiguration) +- [user_msdyn_aievaluationrun](#BKMK_user_msdyn_aievaluationrun) - [user_msdyn_aievent](#BKMK_user_msdyn_aievent) - [user_msdyn_aifptrainingdocument](#BKMK_user_msdyn_aifptrainingdocument) - [user_msdyn_aimodel](#BKMK_user_msdyn_aimodel) @@ -4498,6 +4630,11 @@ These relationships are one-to-many. Listed by **SchemaName**. - [user_msdyn_aiodtrainingboundingbox](#BKMK_user_msdyn_aiodtrainingboundingbox) - [user_msdyn_aiodtrainingimage](#BKMK_user_msdyn_aiodtrainingimage) - [user_msdyn_aitemplate](#BKMK_user_msdyn_aitemplate) +- [user_msdyn_aitestcase](#BKMK_user_msdyn_aitestcase) +- [user_msdyn_aitestcasedocument](#BKMK_user_msdyn_aitestcasedocument) +- [user_msdyn_aitestcaseinput](#BKMK_user_msdyn_aitestcaseinput) +- [user_msdyn_aitestrun](#BKMK_user_msdyn_aitestrun) +- [user_msdyn_aitestrunbatch](#BKMK_user_msdyn_aitestrunbatch) - [user_msdyn_analysiscomponent](#BKMK_user_msdyn_analysiscomponent) - [user_msdyn_analysisjob](#BKMK_user_msdyn_analysisjob) - [user_msdyn_analysisoverride](#BKMK_user_msdyn_analysisoverride) @@ -4591,7 +4728,6 @@ These relationships are one-to-many. Listed by **SchemaName**. - [user_powerpagesscanreport](#BKMK_user_powerpagesscanreport) - [user_powerpagessiteaifeedback](#BKMK_user_powerpagessiteaifeedback) - [user_privilegecheckerrun](#BKMK_user_privilegecheckerrun) -- [user_processorregistration](#BKMK_user_processorregistration) - [user_processstageparameter](#BKMK_user_processstageparameter) - [user_recentlyused](#BKMK_user_recentlyused) - [user_recurringappointmentmaster](#BKMK_user_recurringappointmentmaster) @@ -4600,31 +4736,37 @@ These relationships are one-to-many. Listed by **SchemaName**. - [user_retentionfailuredetail](#BKMK_user_retentionfailuredetail) - [user_retentionoperation](#BKMK_user_retentionoperation) - [user_retentionsuccessdetail](#BKMK_user_retentionsuccessdetail) +- [user_savingrule](#BKMK_user_savingrule) - [user_settings](#BKMK_user_settings) - [user_sharepointdocumentlocation](#BKMK_user_sharepointdocumentlocation) - [user_sharepointsite](#BKMK_user_sharepointsite) - [user_sideloadedaiplugin](#BKMK_user_sideloadedaiplugin) - [user_signal](#BKMK_user_signal) -- [user_signalregistration](#BKMK_user_signalregistration) - [user_slabase](#BKMK_user_slabase) - [user_socialactivity](#BKMK_user_socialactivity) - [user_solutioncomponentbatchconfiguration](#BKMK_user_solutioncomponentbatchconfiguration) - [user_stagesolutionupload](#BKMK_user_stagesolutionupload) - [user_synapsedatabase](#BKMK_user_synapsedatabase) +- [user_tag](#BKMK_user_tag) +- [user_taggedflowsession](#BKMK_user_taggedflowsession) +- [user_taggedprocess](#BKMK_user_taggedprocess) - [user_task](#BKMK_user_task) - [user_trait](#BKMK_user_trait) -- [user_traitregistration](#BKMK_user_traitregistration) +- [user_unstructuredfilesearchentity](#BKMK_user_unstructuredfilesearchentity) +- [user_unstructuredfilesearchrecord](#BKMK_user_unstructuredfilesearchrecord) - [user_userauthztracker](#BKMK_user_userauthztracker) - [user_userform](#BKMK_user_userform) - [user_userquery](#BKMK_user_userquery) - [user_userqueryvisualizations](#BKMK_user_userqueryvisualizations) - [user_workflowbinary](#BKMK_user_workflowbinary) +- [user_workflowmetadata](#BKMK_user_workflowmetadata) - [user_workqueue](#BKMK_user_workqueue) - [user_workqueueitem](#BKMK_user_workqueueitem) - [webresource_createdby](#BKMK_webresource_createdby) - [webresource_modifiedby](#BKMK_webresource_modifiedby) - [workflow_createdby](#BKMK_workflow_createdby) - [workflow_createdonbehalfby](#BKMK_workflow_createdonbehalfby) +- [Workflow_licensee](#BKMK_Workflow_licensee) - [workflow_modifiedby](#BKMK_workflow_modifiedby) - [workflow_modifiedonbehalfby](#BKMK_workflow_modifiedonbehalfby) - [workqueueitem_processinguser](#BKMK_workqueueitem_processinguser) @@ -5553,54 +5695,6 @@ Many-To-One Relationship: [aicopilot lk_aicopilot_modifiedonbehalfby](aicopilot. |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_aiinsightcard_createdby - -Many-To-One Relationship: [aiinsightcard lk_aiinsightcard_createdby](aiinsightcard.md#BKMK_lk_aiinsightcard_createdby) - -|Property|Value| -|---|---| -|ReferencingEntity|`aiinsightcard`| -|ReferencingAttribute|`createdby`| -|ReferencedEntityNavigationPropertyName|`lk_aiinsightcard_createdby`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - -### lk_aiinsightcard_createdonbehalfby - -Many-To-One Relationship: [aiinsightcard lk_aiinsightcard_createdonbehalfby](aiinsightcard.md#BKMK_lk_aiinsightcard_createdonbehalfby) - -|Property|Value| -|---|---| -|ReferencingEntity|`aiinsightcard`| -|ReferencingAttribute|`createdonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_aiinsightcard_createdonbehalfby`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - -### lk_aiinsightcard_modifiedby - -Many-To-One Relationship: [aiinsightcard lk_aiinsightcard_modifiedby](aiinsightcard.md#BKMK_lk_aiinsightcard_modifiedby) - -|Property|Value| -|---|---| -|ReferencingEntity|`aiinsightcard`| -|ReferencingAttribute|`modifiedby`| -|ReferencedEntityNavigationPropertyName|`lk_aiinsightcard_modifiedby`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - -### lk_aiinsightcard_modifiedonbehalfby - -Many-To-One Relationship: [aiinsightcard lk_aiinsightcard_modifiedonbehalfby](aiinsightcard.md#BKMK_lk_aiinsightcard_modifiedonbehalfby) - -|Property|Value| -|---|---| -|ReferencingEntity|`aiinsightcard`| -|ReferencingAttribute|`modifiedonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_aiinsightcard_modifiedonbehalfby`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - ### lk_aiplugin_createdby Many-To-One Relationship: [aiplugin lk_aiplugin_createdby](aiplugin.md#BKMK_lk_aiplugin_createdby) @@ -6909,6 +7003,198 @@ Many-To-One Relationship: [appointment lk_appointment_modifiedonbehalfby](appoin |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### lk_approvalprocess_createdby + +Many-To-One Relationship: [approvalprocess lk_approvalprocess_createdby](approvalprocess.md#BKMK_lk_approvalprocess_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalprocess`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_approvalprocess_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_approvalprocess_createdonbehalfby + +Many-To-One Relationship: [approvalprocess lk_approvalprocess_createdonbehalfby](approvalprocess.md#BKMK_lk_approvalprocess_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalprocess`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_approvalprocess_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_approvalprocess_modifiedby + +Many-To-One Relationship: [approvalprocess lk_approvalprocess_modifiedby](approvalprocess.md#BKMK_lk_approvalprocess_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalprocess`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_approvalprocess_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_approvalprocess_modifiedonbehalfby + +Many-To-One Relationship: [approvalprocess lk_approvalprocess_modifiedonbehalfby](approvalprocess.md#BKMK_lk_approvalprocess_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalprocess`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_approvalprocess_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_approvalstageapproval_createdby + +Many-To-One Relationship: [approvalstageapproval lk_approvalstageapproval_createdby](approvalstageapproval.md#BKMK_lk_approvalstageapproval_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageapproval`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_approvalstageapproval_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_approvalstageapproval_createdonbehalfby + +Many-To-One Relationship: [approvalstageapproval lk_approvalstageapproval_createdonbehalfby](approvalstageapproval.md#BKMK_lk_approvalstageapproval_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageapproval`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_approvalstageapproval_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_approvalstageapproval_modifiedby + +Many-To-One Relationship: [approvalstageapproval lk_approvalstageapproval_modifiedby](approvalstageapproval.md#BKMK_lk_approvalstageapproval_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageapproval`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_approvalstageapproval_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_approvalstageapproval_modifiedonbehalfby + +Many-To-One Relationship: [approvalstageapproval lk_approvalstageapproval_modifiedonbehalfby](approvalstageapproval.md#BKMK_lk_approvalstageapproval_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageapproval`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_approvalstageapproval_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_approvalstagecondition_createdby + +Many-To-One Relationship: [approvalstagecondition lk_approvalstagecondition_createdby](approvalstagecondition.md#BKMK_lk_approvalstagecondition_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstagecondition`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_approvalstagecondition_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_approvalstagecondition_createdonbehalfby + +Many-To-One Relationship: [approvalstagecondition lk_approvalstagecondition_createdonbehalfby](approvalstagecondition.md#BKMK_lk_approvalstagecondition_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstagecondition`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_approvalstagecondition_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_approvalstagecondition_modifiedby + +Many-To-One Relationship: [approvalstagecondition lk_approvalstagecondition_modifiedby](approvalstagecondition.md#BKMK_lk_approvalstagecondition_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstagecondition`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_approvalstagecondition_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_approvalstagecondition_modifiedonbehalfby + +Many-To-One Relationship: [approvalstagecondition lk_approvalstagecondition_modifiedonbehalfby](approvalstagecondition.md#BKMK_lk_approvalstagecondition_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstagecondition`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_approvalstagecondition_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_approvalstageorder_createdby + +Many-To-One Relationship: [approvalstageorder lk_approvalstageorder_createdby](approvalstageorder.md#BKMK_lk_approvalstageorder_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageorder`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_approvalstageorder_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_approvalstageorder_createdonbehalfby + +Many-To-One Relationship: [approvalstageorder lk_approvalstageorder_createdonbehalfby](approvalstageorder.md#BKMK_lk_approvalstageorder_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageorder`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_approvalstageorder_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_approvalstageorder_modifiedby + +Many-To-One Relationship: [approvalstageorder lk_approvalstageorder_modifiedby](approvalstageorder.md#BKMK_lk_approvalstageorder_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageorder`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_approvalstageorder_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_approvalstageorder_modifiedonbehalfby + +Many-To-One Relationship: [approvalstageorder lk_approvalstageorder_modifiedonbehalfby](approvalstageorder.md#BKMK_lk_approvalstageorder_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageorder`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_approvalstageorder_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### lk_asyncoperation_createdby Many-To-One Relationship: [asyncoperation lk_asyncoperation_createdby](asyncoperation.md#BKMK_lk_asyncoperation_createdby) @@ -7221,6 +7507,54 @@ Many-To-One Relationship: [bulkdeleteoperation lk_bulkdeleteoperationbase_modifi |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### lk_businessprocess_createdby + +Many-To-One Relationship: [businessprocess lk_businessprocess_createdby](businessprocess.md#BKMK_lk_businessprocess_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`businessprocess`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_businessprocess_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_businessprocess_createdonbehalfby + +Many-To-One Relationship: [businessprocess lk_businessprocess_createdonbehalfby](businessprocess.md#BKMK_lk_businessprocess_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`businessprocess`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_businessprocess_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_businessprocess_modifiedby + +Many-To-One Relationship: [businessprocess lk_businessprocess_modifiedby](businessprocess.md#BKMK_lk_businessprocess_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`businessprocess`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_businessprocess_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_businessprocess_modifiedonbehalfby + +Many-To-One Relationship: [businessprocess lk_businessprocess_modifiedonbehalfby](businessprocess.md#BKMK_lk_businessprocess_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`businessprocess`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_businessprocess_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### lk_businessunit_createdonbehalfby Many-To-One Relationship: [businessunit lk_businessunit_createdonbehalfby](businessunit.md#BKMK_lk_businessunit_createdonbehalfby) @@ -9597,6 +9931,54 @@ Many-To-One Relationship: [email lk_email_modifiedonbehalfby](email.md#BKMK_lk_e |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### lk_emailaddressconfiguration_createdby + +Many-To-One Relationship: [emailaddressconfiguration lk_emailaddressconfiguration_createdby](emailaddressconfiguration.md#BKMK_lk_emailaddressconfiguration_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`emailaddressconfiguration`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_emailaddressconfiguration_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_emailaddressconfiguration_createdonbehalfby + +Many-To-One Relationship: [emailaddressconfiguration lk_emailaddressconfiguration_createdonbehalfby](emailaddressconfiguration.md#BKMK_lk_emailaddressconfiguration_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`emailaddressconfiguration`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_emailaddressconfiguration_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_emailaddressconfiguration_modifiedby + +Many-To-One Relationship: [emailaddressconfiguration lk_emailaddressconfiguration_modifiedby](emailaddressconfiguration.md#BKMK_lk_emailaddressconfiguration_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`emailaddressconfiguration`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_emailaddressconfiguration_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_emailaddressconfiguration_modifiedonbehalfby + +Many-To-One Relationship: [emailaddressconfiguration lk_emailaddressconfiguration_modifiedonbehalfby](emailaddressconfiguration.md#BKMK_lk_emailaddressconfiguration_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`emailaddressconfiguration`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_emailaddressconfiguration_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### lk_emailserverprofile_createdby Many-To-One Relationship: [emailserverprofile lk_emailserverprofile_createdby](emailserverprofile.md#BKMK_lk_emailserverprofile_createdby) @@ -9645,27 +10027,75 @@ Many-To-One Relationship: [emailserverprofile lk_emailserverprofile_modifiedonbe |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_entityrecordfilter_createdby +### lk_entityclusterconfig_createdby -Many-To-One Relationship: [entityrecordfilter lk_entityrecordfilter_createdby](entityrecordfilter.md#BKMK_lk_entityrecordfilter_createdby) +Many-To-One Relationship: [entityclusterconfig lk_entityclusterconfig_createdby](entityclusterconfig.md#BKMK_lk_entityclusterconfig_createdby) |Property|Value| |---|---| -|ReferencingEntity|`entityrecordfilter`| +|ReferencingEntity|`entityclusterconfig`| |ReferencingAttribute|`createdby`| -|ReferencedEntityNavigationPropertyName|`lk_entityrecordfilter_createdby`| +|ReferencedEntityNavigationPropertyName|`lk_entityclusterconfig_createdby`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_entityrecordfilter_createdonbehalfby +### lk_entityclusterconfig_createdonbehalfby -Many-To-One Relationship: [entityrecordfilter lk_entityrecordfilter_createdonbehalfby](entityrecordfilter.md#BKMK_lk_entityrecordfilter_createdonbehalfby) +Many-To-One Relationship: [entityclusterconfig lk_entityclusterconfig_createdonbehalfby](entityclusterconfig.md#BKMK_lk_entityclusterconfig_createdonbehalfby) |Property|Value| |---|---| -|ReferencingEntity|`entityrecordfilter`| +|ReferencingEntity|`entityclusterconfig`| |ReferencingAttribute|`createdonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_entityrecordfilter_createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_entityclusterconfig_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_entityclusterconfig_modifiedby + +Many-To-One Relationship: [entityclusterconfig lk_entityclusterconfig_modifiedby](entityclusterconfig.md#BKMK_lk_entityclusterconfig_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`entityclusterconfig`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_entityclusterconfig_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_entityclusterconfig_modifiedonbehalfby + +Many-To-One Relationship: [entityclusterconfig lk_entityclusterconfig_modifiedonbehalfby](entityclusterconfig.md#BKMK_lk_entityclusterconfig_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`entityclusterconfig`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_entityclusterconfig_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_entityrecordfilter_createdby + +Many-To-One Relationship: [entityrecordfilter lk_entityrecordfilter_createdby](entityrecordfilter.md#BKMK_lk_entityrecordfilter_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`entityrecordfilter`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_entityrecordfilter_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_entityrecordfilter_createdonbehalfby + +Many-To-One Relationship: [entityrecordfilter lk_entityrecordfilter_createdonbehalfby](entityrecordfilter.md#BKMK_lk_entityrecordfilter_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`entityrecordfilter`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_entityrecordfilter_createdonbehalfby`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| @@ -10389,6 +10819,54 @@ Many-To-One Relationship: [fixedmonthlyfiscalcalendar lk_fixedmonthlyfiscalcalen |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### lk_flowaggregation_createdby + +Many-To-One Relationship: [flowaggregation lk_flowaggregation_createdby](flowaggregation.md#BKMK_lk_flowaggregation_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`flowaggregation`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_flowaggregation_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_flowaggregation_createdonbehalfby + +Many-To-One Relationship: [flowaggregation lk_flowaggregation_createdonbehalfby](flowaggregation.md#BKMK_lk_flowaggregation_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`flowaggregation`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_flowaggregation_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_flowaggregation_modifiedby + +Many-To-One Relationship: [flowaggregation lk_flowaggregation_modifiedby](flowaggregation.md#BKMK_lk_flowaggregation_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`flowaggregation`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_flowaggregation_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_flowaggregation_modifiedonbehalfby + +Many-To-One Relationship: [flowaggregation lk_flowaggregation_modifiedonbehalfby](flowaggregation.md#BKMK_lk_flowaggregation_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`flowaggregation`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_flowaggregation_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### lk_flowcapacityassignment_createdby Many-To-One Relationship: [flowcapacityassignment lk_flowcapacityassignment_createdby](flowcapacityassignment.md#BKMK_lk_flowcapacityassignment_createdby) @@ -11445,6 +11923,54 @@ Many-To-One Relationship: [importmap lk_importmapbase_modifiedby](importmap.md#B |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### lk_indexedtrait_createdby + +Many-To-One Relationship: [indexedtrait lk_indexedtrait_createdby](indexedtrait.md#BKMK_lk_indexedtrait_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`indexedtrait`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_indexedtrait_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_indexedtrait_createdonbehalfby + +Many-To-One Relationship: [indexedtrait lk_indexedtrait_createdonbehalfby](indexedtrait.md#BKMK_lk_indexedtrait_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`indexedtrait`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_indexedtrait_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_indexedtrait_modifiedby + +Many-To-One Relationship: [indexedtrait lk_indexedtrait_modifiedby](indexedtrait.md#BKMK_lk_indexedtrait_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`indexedtrait`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_indexedtrait_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_indexedtrait_modifiedonbehalfby + +Many-To-One Relationship: [indexedtrait lk_indexedtrait_modifiedonbehalfby](indexedtrait.md#BKMK_lk_indexedtrait_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`indexedtrait`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_indexedtrait_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### lk_interactionforemail_createdby Many-To-One Relationship: [interactionforemail lk_interactionforemail_createdby](interactionforemail.md#BKMK_lk_interactionforemail_createdby) @@ -12945,6 +13471,150 @@ Many-To-One Relationship: [msdyn_aiconfiguration lk_msdyn_aiconfiguration_modifi |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### lk_msdyn_aidataprocessingevent_createdby + +Many-To-One Relationship: [msdyn_aidataprocessingevent lk_msdyn_aidataprocessingevent_createdby](msdyn_aidataprocessingevent.md#BKMK_lk_msdyn_aidataprocessingevent_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aidataprocessingevent`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aidataprocessingevent_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aidataprocessingevent_createdonbehalfby + +Many-To-One Relationship: [msdyn_aidataprocessingevent lk_msdyn_aidataprocessingevent_createdonbehalfby](msdyn_aidataprocessingevent.md#BKMK_lk_msdyn_aidataprocessingevent_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aidataprocessingevent`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aidataprocessingevent_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aidataprocessingevent_modifiedby + +Many-To-One Relationship: [msdyn_aidataprocessingevent lk_msdyn_aidataprocessingevent_modifiedby](msdyn_aidataprocessingevent.md#BKMK_lk_msdyn_aidataprocessingevent_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aidataprocessingevent`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aidataprocessingevent_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aidataprocessingevent_modifiedonbehalfby + +Many-To-One Relationship: [msdyn_aidataprocessingevent lk_msdyn_aidataprocessingevent_modifiedonbehalfby](msdyn_aidataprocessingevent.md#BKMK_lk_msdyn_aidataprocessingevent_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aidataprocessingevent`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aidataprocessingevent_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aievaluationconfiguration_createdby + +Many-To-One Relationship: [msdyn_aievaluationconfiguration lk_msdyn_aievaluationconfiguration_createdby](msdyn_aievaluationconfiguration.md#BKMK_lk_msdyn_aievaluationconfiguration_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aievaluationconfiguration`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aievaluationconfiguration_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aievaluationconfiguration_createdonbehalfby + +Many-To-One Relationship: [msdyn_aievaluationconfiguration lk_msdyn_aievaluationconfiguration_createdonbehalfby](msdyn_aievaluationconfiguration.md#BKMK_lk_msdyn_aievaluationconfiguration_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aievaluationconfiguration`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aievaluationconfiguration_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aievaluationconfiguration_modifiedby + +Many-To-One Relationship: [msdyn_aievaluationconfiguration lk_msdyn_aievaluationconfiguration_modifiedby](msdyn_aievaluationconfiguration.md#BKMK_lk_msdyn_aievaluationconfiguration_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aievaluationconfiguration`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aievaluationconfiguration_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aievaluationconfiguration_modifiedonbehalfby + +Many-To-One Relationship: [msdyn_aievaluationconfiguration lk_msdyn_aievaluationconfiguration_modifiedonbehalfby](msdyn_aievaluationconfiguration.md#BKMK_lk_msdyn_aievaluationconfiguration_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aievaluationconfiguration`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aievaluationconfiguration_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aievaluationrun_createdby + +Many-To-One Relationship: [msdyn_aievaluationrun lk_msdyn_aievaluationrun_createdby](msdyn_aievaluationrun.md#BKMK_lk_msdyn_aievaluationrun_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aievaluationrun`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aievaluationrun_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aievaluationrun_createdonbehalfby + +Many-To-One Relationship: [msdyn_aievaluationrun lk_msdyn_aievaluationrun_createdonbehalfby](msdyn_aievaluationrun.md#BKMK_lk_msdyn_aievaluationrun_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aievaluationrun`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aievaluationrun_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aievaluationrun_modifiedby + +Many-To-One Relationship: [msdyn_aievaluationrun lk_msdyn_aievaluationrun_modifiedby](msdyn_aievaluationrun.md#BKMK_lk_msdyn_aievaluationrun_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aievaluationrun`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aievaluationrun_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aievaluationrun_modifiedonbehalfby + +Many-To-One Relationship: [msdyn_aievaluationrun lk_msdyn_aievaluationrun_modifiedonbehalfby](msdyn_aievaluationrun.md#BKMK_lk_msdyn_aievaluationrun_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aievaluationrun`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aievaluationrun_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### lk_msdyn_aievent_createdby Many-To-One Relationship: [msdyn_aievent lk_msdyn_aievent_createdby](msdyn_aievent.md#BKMK_lk_msdyn_aievent_createdby) @@ -13329,147 +13999,387 @@ Many-To-One Relationship: [msdyn_aitemplate lk_msdyn_aitemplate_modifiedonbehalf |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_msdyn_analysiscomponent_createdby +### lk_msdyn_aitestcase_createdby -Many-To-One Relationship: [msdyn_analysiscomponent lk_msdyn_analysiscomponent_createdby](msdyn_analysiscomponent.md#BKMK_lk_msdyn_analysiscomponent_createdby) +Many-To-One Relationship: [msdyn_aitestcase lk_msdyn_aitestcase_createdby](msdyn_aitestcase.md#BKMK_lk_msdyn_aitestcase_createdby) |Property|Value| |---|---| -|ReferencingEntity|`msdyn_analysiscomponent`| +|ReferencingEntity|`msdyn_aitestcase`| |ReferencingAttribute|`createdby`| -|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysiscomponent_createdby`| -|IsCustomizable|`False`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestcase_createdby`| +|IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_msdyn_analysiscomponent_createdonbehalfby +### lk_msdyn_aitestcase_createdonbehalfby -Many-To-One Relationship: [msdyn_analysiscomponent lk_msdyn_analysiscomponent_createdonbehalfby](msdyn_analysiscomponent.md#BKMK_lk_msdyn_analysiscomponent_createdonbehalfby) +Many-To-One Relationship: [msdyn_aitestcase lk_msdyn_aitestcase_createdonbehalfby](msdyn_aitestcase.md#BKMK_lk_msdyn_aitestcase_createdonbehalfby) |Property|Value| |---|---| -|ReferencingEntity|`msdyn_analysiscomponent`| +|ReferencingEntity|`msdyn_aitestcase`| |ReferencingAttribute|`createdonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysiscomponent_createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestcase_createdonbehalfby`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_msdyn_analysiscomponent_modifiedby +### lk_msdyn_aitestcase_modifiedby -Many-To-One Relationship: [msdyn_analysiscomponent lk_msdyn_analysiscomponent_modifiedby](msdyn_analysiscomponent.md#BKMK_lk_msdyn_analysiscomponent_modifiedby) +Many-To-One Relationship: [msdyn_aitestcase lk_msdyn_aitestcase_modifiedby](msdyn_aitestcase.md#BKMK_lk_msdyn_aitestcase_modifiedby) |Property|Value| |---|---| -|ReferencingEntity|`msdyn_analysiscomponent`| +|ReferencingEntity|`msdyn_aitestcase`| |ReferencingAttribute|`modifiedby`| -|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysiscomponent_modifiedby`| -|IsCustomizable|`False`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestcase_modifiedby`| +|IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_msdyn_analysiscomponent_modifiedonbehalfby +### lk_msdyn_aitestcase_modifiedonbehalfby -Many-To-One Relationship: [msdyn_analysiscomponent lk_msdyn_analysiscomponent_modifiedonbehalfby](msdyn_analysiscomponent.md#BKMK_lk_msdyn_analysiscomponent_modifiedonbehalfby) +Many-To-One Relationship: [msdyn_aitestcase lk_msdyn_aitestcase_modifiedonbehalfby](msdyn_aitestcase.md#BKMK_lk_msdyn_aitestcase_modifiedonbehalfby) |Property|Value| |---|---| -|ReferencingEntity|`msdyn_analysiscomponent`| +|ReferencingEntity|`msdyn_aitestcase`| |ReferencingAttribute|`modifiedonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysiscomponent_modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestcase_modifiedonbehalfby`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_msdyn_analysisjob_createdby +### lk_msdyn_aitestcasedocument_createdby -Many-To-One Relationship: [msdyn_analysisjob lk_msdyn_analysisjob_createdby](msdyn_analysisjob.md#BKMK_lk_msdyn_analysisjob_createdby) +Many-To-One Relationship: [msdyn_aitestcasedocument lk_msdyn_aitestcasedocument_createdby](msdyn_aitestcasedocument.md#BKMK_lk_msdyn_aitestcasedocument_createdby) |Property|Value| |---|---| -|ReferencingEntity|`msdyn_analysisjob`| +|ReferencingEntity|`msdyn_aitestcasedocument`| |ReferencingAttribute|`createdby`| -|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysisjob_createdby`| -|IsCustomizable|`False`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestcasedocument_createdby`| +|IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_msdyn_analysisjob_createdonbehalfby +### lk_msdyn_aitestcasedocument_createdonbehalfby -Many-To-One Relationship: [msdyn_analysisjob lk_msdyn_analysisjob_createdonbehalfby](msdyn_analysisjob.md#BKMK_lk_msdyn_analysisjob_createdonbehalfby) +Many-To-One Relationship: [msdyn_aitestcasedocument lk_msdyn_aitestcasedocument_createdonbehalfby](msdyn_aitestcasedocument.md#BKMK_lk_msdyn_aitestcasedocument_createdonbehalfby) |Property|Value| |---|---| -|ReferencingEntity|`msdyn_analysisjob`| +|ReferencingEntity|`msdyn_aitestcasedocument`| |ReferencingAttribute|`createdonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysisjob_createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestcasedocument_createdonbehalfby`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_msdyn_analysisjob_modifiedby +### lk_msdyn_aitestcasedocument_modifiedby -Many-To-One Relationship: [msdyn_analysisjob lk_msdyn_analysisjob_modifiedby](msdyn_analysisjob.md#BKMK_lk_msdyn_analysisjob_modifiedby) +Many-To-One Relationship: [msdyn_aitestcasedocument lk_msdyn_aitestcasedocument_modifiedby](msdyn_aitestcasedocument.md#BKMK_lk_msdyn_aitestcasedocument_modifiedby) |Property|Value| |---|---| -|ReferencingEntity|`msdyn_analysisjob`| +|ReferencingEntity|`msdyn_aitestcasedocument`| |ReferencingAttribute|`modifiedby`| -|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysisjob_modifiedby`| -|IsCustomizable|`False`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestcasedocument_modifiedby`| +|IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_msdyn_analysisjob_modifiedonbehalfby +### lk_msdyn_aitestcasedocument_modifiedonbehalfby -Many-To-One Relationship: [msdyn_analysisjob lk_msdyn_analysisjob_modifiedonbehalfby](msdyn_analysisjob.md#BKMK_lk_msdyn_analysisjob_modifiedonbehalfby) +Many-To-One Relationship: [msdyn_aitestcasedocument lk_msdyn_aitestcasedocument_modifiedonbehalfby](msdyn_aitestcasedocument.md#BKMK_lk_msdyn_aitestcasedocument_modifiedonbehalfby) |Property|Value| |---|---| -|ReferencingEntity|`msdyn_analysisjob`| +|ReferencingEntity|`msdyn_aitestcasedocument`| |ReferencingAttribute|`modifiedonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysisjob_modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestcasedocument_modifiedonbehalfby`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_msdyn_analysisoverride_createdby +### lk_msdyn_aitestcaseinput_createdby -Many-To-One Relationship: [msdyn_analysisoverride lk_msdyn_analysisoverride_createdby](msdyn_analysisoverride.md#BKMK_lk_msdyn_analysisoverride_createdby) +Many-To-One Relationship: [msdyn_aitestcaseinput lk_msdyn_aitestcaseinput_createdby](msdyn_aitestcaseinput.md#BKMK_lk_msdyn_aitestcaseinput_createdby) |Property|Value| |---|---| -|ReferencingEntity|`msdyn_analysisoverride`| +|ReferencingEntity|`msdyn_aitestcaseinput`| |ReferencingAttribute|`createdby`| -|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysisoverride_createdby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestcaseinput_createdby`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_msdyn_analysisoverride_createdonbehalfby +### lk_msdyn_aitestcaseinput_createdonbehalfby -Many-To-One Relationship: [msdyn_analysisoverride lk_msdyn_analysisoverride_createdonbehalfby](msdyn_analysisoverride.md#BKMK_lk_msdyn_analysisoverride_createdonbehalfby) +Many-To-One Relationship: [msdyn_aitestcaseinput lk_msdyn_aitestcaseinput_createdonbehalfby](msdyn_aitestcaseinput.md#BKMK_lk_msdyn_aitestcaseinput_createdonbehalfby) |Property|Value| |---|---| -|ReferencingEntity|`msdyn_analysisoverride`| +|ReferencingEntity|`msdyn_aitestcaseinput`| |ReferencingAttribute|`createdonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysisoverride_createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestcaseinput_createdonbehalfby`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_msdyn_analysisoverride_modifiedby +### lk_msdyn_aitestcaseinput_modifiedby -Many-To-One Relationship: [msdyn_analysisoverride lk_msdyn_analysisoverride_modifiedby](msdyn_analysisoverride.md#BKMK_lk_msdyn_analysisoverride_modifiedby) +Many-To-One Relationship: [msdyn_aitestcaseinput lk_msdyn_aitestcaseinput_modifiedby](msdyn_aitestcaseinput.md#BKMK_lk_msdyn_aitestcaseinput_modifiedby) |Property|Value| |---|---| -|ReferencingEntity|`msdyn_analysisoverride`| +|ReferencingEntity|`msdyn_aitestcaseinput`| |ReferencingAttribute|`modifiedby`| -|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysisoverride_modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestcaseinput_modifiedby`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_msdyn_analysisoverride_modifiedonbehalfby +### lk_msdyn_aitestcaseinput_modifiedonbehalfby -Many-To-One Relationship: [msdyn_analysisoverride lk_msdyn_analysisoverride_modifiedonbehalfby](msdyn_analysisoverride.md#BKMK_lk_msdyn_analysisoverride_modifiedonbehalfby) +Many-To-One Relationship: [msdyn_aitestcaseinput lk_msdyn_aitestcaseinput_modifiedonbehalfby](msdyn_aitestcaseinput.md#BKMK_lk_msdyn_aitestcaseinput_modifiedonbehalfby) |Property|Value| |---|---| -|ReferencingEntity|`msdyn_analysisoverride`| +|ReferencingEntity|`msdyn_aitestcaseinput`| |ReferencingAttribute|`modifiedonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysisoverride_modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestcaseinput_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aitestrun_createdby + +Many-To-One Relationship: [msdyn_aitestrun lk_msdyn_aitestrun_createdby](msdyn_aitestrun.md#BKMK_lk_msdyn_aitestrun_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestrun`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestrun_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aitestrun_createdonbehalfby + +Many-To-One Relationship: [msdyn_aitestrun lk_msdyn_aitestrun_createdonbehalfby](msdyn_aitestrun.md#BKMK_lk_msdyn_aitestrun_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestrun`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestrun_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aitestrun_modifiedby + +Many-To-One Relationship: [msdyn_aitestrun lk_msdyn_aitestrun_modifiedby](msdyn_aitestrun.md#BKMK_lk_msdyn_aitestrun_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestrun`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestrun_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aitestrun_modifiedonbehalfby + +Many-To-One Relationship: [msdyn_aitestrun lk_msdyn_aitestrun_modifiedonbehalfby](msdyn_aitestrun.md#BKMK_lk_msdyn_aitestrun_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestrun`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestrun_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aitestrunbatch_createdby + +Many-To-One Relationship: [msdyn_aitestrunbatch lk_msdyn_aitestrunbatch_createdby](msdyn_aitestrunbatch.md#BKMK_lk_msdyn_aitestrunbatch_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestrunbatch`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestrunbatch_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aitestrunbatch_createdonbehalfby + +Many-To-One Relationship: [msdyn_aitestrunbatch lk_msdyn_aitestrunbatch_createdonbehalfby](msdyn_aitestrunbatch.md#BKMK_lk_msdyn_aitestrunbatch_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestrunbatch`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestrunbatch_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aitestrunbatch_modifiedby + +Many-To-One Relationship: [msdyn_aitestrunbatch lk_msdyn_aitestrunbatch_modifiedby](msdyn_aitestrunbatch.md#BKMK_lk_msdyn_aitestrunbatch_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestrunbatch`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestrunbatch_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_aitestrunbatch_modifiedonbehalfby + +Many-To-One Relationship: [msdyn_aitestrunbatch lk_msdyn_aitestrunbatch_modifiedonbehalfby](msdyn_aitestrunbatch.md#BKMK_lk_msdyn_aitestrunbatch_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestrunbatch`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_aitestrunbatch_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_analysiscomponent_createdby + +Many-To-One Relationship: [msdyn_analysiscomponent lk_msdyn_analysiscomponent_createdby](msdyn_analysiscomponent.md#BKMK_lk_msdyn_analysiscomponent_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_analysiscomponent`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysiscomponent_createdby`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_analysiscomponent_createdonbehalfby + +Many-To-One Relationship: [msdyn_analysiscomponent lk_msdyn_analysiscomponent_createdonbehalfby](msdyn_analysiscomponent.md#BKMK_lk_msdyn_analysiscomponent_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_analysiscomponent`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysiscomponent_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_analysiscomponent_modifiedby + +Many-To-One Relationship: [msdyn_analysiscomponent lk_msdyn_analysiscomponent_modifiedby](msdyn_analysiscomponent.md#BKMK_lk_msdyn_analysiscomponent_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_analysiscomponent`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysiscomponent_modifiedby`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_analysiscomponent_modifiedonbehalfby + +Many-To-One Relationship: [msdyn_analysiscomponent lk_msdyn_analysiscomponent_modifiedonbehalfby](msdyn_analysiscomponent.md#BKMK_lk_msdyn_analysiscomponent_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_analysiscomponent`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysiscomponent_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_analysisjob_createdby + +Many-To-One Relationship: [msdyn_analysisjob lk_msdyn_analysisjob_createdby](msdyn_analysisjob.md#BKMK_lk_msdyn_analysisjob_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_analysisjob`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysisjob_createdby`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_analysisjob_createdonbehalfby + +Many-To-One Relationship: [msdyn_analysisjob lk_msdyn_analysisjob_createdonbehalfby](msdyn_analysisjob.md#BKMK_lk_msdyn_analysisjob_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_analysisjob`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysisjob_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_analysisjob_modifiedby + +Many-To-One Relationship: [msdyn_analysisjob lk_msdyn_analysisjob_modifiedby](msdyn_analysisjob.md#BKMK_lk_msdyn_analysisjob_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_analysisjob`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysisjob_modifiedby`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_analysisjob_modifiedonbehalfby + +Many-To-One Relationship: [msdyn_analysisjob lk_msdyn_analysisjob_modifiedonbehalfby](msdyn_analysisjob.md#BKMK_lk_msdyn_analysisjob_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_analysisjob`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysisjob_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_analysisoverride_createdby + +Many-To-One Relationship: [msdyn_analysisoverride lk_msdyn_analysisoverride_createdby](msdyn_analysisoverride.md#BKMK_lk_msdyn_analysisoverride_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_analysisoverride`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysisoverride_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_analysisoverride_createdonbehalfby + +Many-To-One Relationship: [msdyn_analysisoverride lk_msdyn_analysisoverride_createdonbehalfby](msdyn_analysisoverride.md#BKMK_lk_msdyn_analysisoverride_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_analysisoverride`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysisoverride_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_analysisoverride_modifiedby + +Many-To-One Relationship: [msdyn_analysisoverride lk_msdyn_analysisoverride_modifiedby](msdyn_analysisoverride.md#BKMK_lk_msdyn_analysisoverride_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_analysisoverride`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysisoverride_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_msdyn_analysisoverride_modifiedonbehalfby + +Many-To-One Relationship: [msdyn_analysisoverride lk_msdyn_analysisoverride_modifiedonbehalfby](msdyn_analysisoverride.md#BKMK_lk_msdyn_analysisoverride_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_analysisoverride`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_msdyn_analysisoverride_modifiedonbehalfby`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| @@ -19173,54 +20083,6 @@ Many-To-One Relationship: [privilegesremovalsetting lk_privilegesremovalsetting_ |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_processorregistration_createdby - -Many-To-One Relationship: [processorregistration lk_processorregistration_createdby](processorregistration.md#BKMK_lk_processorregistration_createdby) - -|Property|Value| -|---|---| -|ReferencingEntity|`processorregistration`| -|ReferencingAttribute|`createdby`| -|ReferencedEntityNavigationPropertyName|`lk_processorregistration_createdby`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - -### lk_processorregistration_createdonbehalfby - -Many-To-One Relationship: [processorregistration lk_processorregistration_createdonbehalfby](processorregistration.md#BKMK_lk_processorregistration_createdonbehalfby) - -|Property|Value| -|---|---| -|ReferencingEntity|`processorregistration`| -|ReferencingAttribute|`createdonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_processorregistration_createdonbehalfby`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - -### lk_processorregistration_modifiedby - -Many-To-One Relationship: [processorregistration lk_processorregistration_modifiedby](processorregistration.md#BKMK_lk_processorregistration_modifiedby) - -|Property|Value| -|---|---| -|ReferencingEntity|`processorregistration`| -|ReferencingAttribute|`modifiedby`| -|ReferencedEntityNavigationPropertyName|`lk_processorregistration_modifiedby`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - -### lk_processorregistration_modifiedonbehalfby - -Many-To-One Relationship: [processorregistration lk_processorregistration_modifiedonbehalfby](processorregistration.md#BKMK_lk_processorregistration_modifiedonbehalfby) - -|Property|Value| -|---|---| -|ReferencingEntity|`processorregistration`| -|ReferencingAttribute|`modifiedonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_processorregistration_modifiedonbehalfby`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - ### lk_processsession_canceledby Many-To-One Relationship: [processsession lk_processsession_canceledby](processsession.md#BKMK_lk_processsession_canceledby) @@ -20589,28 +21451,76 @@ Many-To-One Relationship: [savedqueryvisualization lk_savedqueryvisualizationbas |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_sdkmessage_createdonbehalfby +### lk_savingrule_createdby -Many-To-One Relationship: [sdkmessage lk_sdkmessage_createdonbehalfby](sdkmessage.md#BKMK_lk_sdkmessage_createdonbehalfby) +Many-To-One Relationship: [savingrule lk_savingrule_createdby](savingrule.md#BKMK_lk_savingrule_createdby) |Property|Value| |---|---| -|ReferencingEntity|`sdkmessage`| -|ReferencingAttribute|`createdonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_sdkmessage_createdonbehalfby`| -|IsCustomizable|`False`| +|ReferencingEntity|`savingrule`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_savingrule_createdby`| +|IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_sdkmessage_modifiedonbehalfby +### lk_savingrule_createdonbehalfby -Many-To-One Relationship: [sdkmessage lk_sdkmessage_modifiedonbehalfby](sdkmessage.md#BKMK_lk_sdkmessage_modifiedonbehalfby) +Many-To-One Relationship: [savingrule lk_savingrule_createdonbehalfby](savingrule.md#BKMK_lk_savingrule_createdonbehalfby) |Property|Value| |---|---| -|ReferencingEntity|`sdkmessage`| -|ReferencingAttribute|`modifiedonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_sdkmessage_modifiedonbehalfby`| -|IsCustomizable|`False`| +|ReferencingEntity|`savingrule`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_savingrule_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_savingrule_modifiedby + +Many-To-One Relationship: [savingrule lk_savingrule_modifiedby](savingrule.md#BKMK_lk_savingrule_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`savingrule`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_savingrule_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_savingrule_modifiedonbehalfby + +Many-To-One Relationship: [savingrule lk_savingrule_modifiedonbehalfby](savingrule.md#BKMK_lk_savingrule_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`savingrule`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_savingrule_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_sdkmessage_createdonbehalfby + +Many-To-One Relationship: [sdkmessage lk_sdkmessage_createdonbehalfby](sdkmessage.md#BKMK_lk_sdkmessage_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`sdkmessage`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_sdkmessage_createdonbehalfby`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_sdkmessage_modifiedonbehalfby + +Many-To-One Relationship: [sdkmessage lk_sdkmessage_modifiedonbehalfby](sdkmessage.md#BKMK_lk_sdkmessage_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`sdkmessage`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_sdkmessage_modifiedonbehalfby`| +|IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| ### lk_sdkmessagefilter_createdonbehalfby @@ -21561,54 +22471,6 @@ Many-To-One Relationship: [signal lk_signal_modifiedonbehalfby](signal.md#BKMK_l |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_signalregistration_createdby - -Many-To-One Relationship: [signalregistration lk_signalregistration_createdby](signalregistration.md#BKMK_lk_signalregistration_createdby) - -|Property|Value| -|---|---| -|ReferencingEntity|`signalregistration`| -|ReferencingAttribute|`createdby`| -|ReferencedEntityNavigationPropertyName|`lk_signalregistration_createdby`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - -### lk_signalregistration_createdonbehalfby - -Many-To-One Relationship: [signalregistration lk_signalregistration_createdonbehalfby](signalregistration.md#BKMK_lk_signalregistration_createdonbehalfby) - -|Property|Value| -|---|---| -|ReferencingEntity|`signalregistration`| -|ReferencingAttribute|`createdonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_signalregistration_createdonbehalfby`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - -### lk_signalregistration_modifiedby - -Many-To-One Relationship: [signalregistration lk_signalregistration_modifiedby](signalregistration.md#BKMK_lk_signalregistration_modifiedby) - -|Property|Value| -|---|---| -|ReferencingEntity|`signalregistration`| -|ReferencingAttribute|`modifiedby`| -|ReferencedEntityNavigationPropertyName|`lk_signalregistration_modifiedby`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - -### lk_signalregistration_modifiedonbehalfby - -Many-To-One Relationship: [signalregistration lk_signalregistration_modifiedonbehalfby](signalregistration.md#BKMK_lk_signalregistration_modifiedonbehalfby) - -|Property|Value| -|---|---| -|ReferencingEntity|`signalregistration`| -|ReferencingAttribute|`modifiedonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_signalregistration_modifiedonbehalfby`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - ### lk_similarityrule_createdonbehalfby Many-To-One Relationship: [similarityrule lk_similarityrule_createdonbehalfby](similarityrule.md#BKMK_lk_similarityrule_createdonbehalfby) @@ -23073,6 +23935,150 @@ Many-To-One Relationship: [systemuser lk_systemuserbase_modifiedby](#BKMK_lk_sys |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### lk_tag_createdby + +Many-To-One Relationship: [tag lk_tag_createdby](tag.md#BKMK_lk_tag_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`tag`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_tag_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_tag_createdonbehalfby + +Many-To-One Relationship: [tag lk_tag_createdonbehalfby](tag.md#BKMK_lk_tag_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`tag`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_tag_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_tag_modifiedby + +Many-To-One Relationship: [tag lk_tag_modifiedby](tag.md#BKMK_lk_tag_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`tag`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_tag_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_tag_modifiedonbehalfby + +Many-To-One Relationship: [tag lk_tag_modifiedonbehalfby](tag.md#BKMK_lk_tag_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`tag`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_tag_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_taggedflowsession_createdby + +Many-To-One Relationship: [taggedflowsession lk_taggedflowsession_createdby](taggedflowsession.md#BKMK_lk_taggedflowsession_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedflowsession`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_taggedflowsession_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_taggedflowsession_createdonbehalfby + +Many-To-One Relationship: [taggedflowsession lk_taggedflowsession_createdonbehalfby](taggedflowsession.md#BKMK_lk_taggedflowsession_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedflowsession`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_taggedflowsession_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_taggedflowsession_modifiedby + +Many-To-One Relationship: [taggedflowsession lk_taggedflowsession_modifiedby](taggedflowsession.md#BKMK_lk_taggedflowsession_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedflowsession`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_taggedflowsession_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_taggedflowsession_modifiedonbehalfby + +Many-To-One Relationship: [taggedflowsession lk_taggedflowsession_modifiedonbehalfby](taggedflowsession.md#BKMK_lk_taggedflowsession_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedflowsession`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_taggedflowsession_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_taggedprocess_createdby + +Many-To-One Relationship: [taggedprocess lk_taggedprocess_createdby](taggedprocess.md#BKMK_lk_taggedprocess_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedprocess`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_taggedprocess_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_taggedprocess_createdonbehalfby + +Many-To-One Relationship: [taggedprocess lk_taggedprocess_createdonbehalfby](taggedprocess.md#BKMK_lk_taggedprocess_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedprocess`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_taggedprocess_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_taggedprocess_modifiedby + +Many-To-One Relationship: [taggedprocess lk_taggedprocess_modifiedby](taggedprocess.md#BKMK_lk_taggedprocess_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedprocess`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_taggedprocess_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_taggedprocess_modifiedonbehalfby + +Many-To-One Relationship: [taggedprocess lk_taggedprocess_modifiedonbehalfby](taggedprocess.md#BKMK_lk_taggedprocess_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedprocess`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_taggedprocess_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### lk_task_createdby Many-To-One Relationship: [task lk_task_createdby](task.md#BKMK_lk_task_createdby) @@ -23373,6 +24379,54 @@ Many-To-One Relationship: [territory lk_territorybase_modifiedby](territory.md#B |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### lk_textdatarecordsindexingstatus_createdby + +Many-To-One Relationship: [textdatarecordsindexingstatus lk_textdatarecordsindexingstatus_createdby](textdatarecordsindexingstatus.md#BKMK_lk_textdatarecordsindexingstatus_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`textdatarecordsindexingstatus`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_textdatarecordsindexingstatus_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_textdatarecordsindexingstatus_createdonbehalfby + +Many-To-One Relationship: [textdatarecordsindexingstatus lk_textdatarecordsindexingstatus_createdonbehalfby](textdatarecordsindexingstatus.md#BKMK_lk_textdatarecordsindexingstatus_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`textdatarecordsindexingstatus`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_textdatarecordsindexingstatus_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_textdatarecordsindexingstatus_modifiedby + +Many-To-One Relationship: [textdatarecordsindexingstatus lk_textdatarecordsindexingstatus_modifiedby](textdatarecordsindexingstatus.md#BKMK_lk_textdatarecordsindexingstatus_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`textdatarecordsindexingstatus`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_textdatarecordsindexingstatus_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_textdatarecordsindexingstatus_modifiedonbehalfby + +Many-To-One Relationship: [textdatarecordsindexingstatus lk_textdatarecordsindexingstatus_modifiedonbehalfby](textdatarecordsindexingstatus.md#BKMK_lk_textdatarecordsindexingstatus_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`textdatarecordsindexingstatus`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_textdatarecordsindexingstatus_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### lk_theme_createdby Many-To-One Relationship: [theme lk_theme_createdby](theme.md#BKMK_lk_theme_createdby) @@ -23661,54 +24715,6 @@ Many-To-One Relationship: [trait lk_trait_modifiedonbehalfby](trait.md#BKMK_lk_t |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_traitregistration_createdby - -Many-To-One Relationship: [traitregistration lk_traitregistration_createdby](traitregistration.md#BKMK_lk_traitregistration_createdby) - -|Property|Value| -|---|---| -|ReferencingEntity|`traitregistration`| -|ReferencingAttribute|`createdby`| -|ReferencedEntityNavigationPropertyName|`lk_traitregistration_createdby`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - -### lk_traitregistration_createdonbehalfby - -Many-To-One Relationship: [traitregistration lk_traitregistration_createdonbehalfby](traitregistration.md#BKMK_lk_traitregistration_createdonbehalfby) - -|Property|Value| -|---|---| -|ReferencingEntity|`traitregistration`| -|ReferencingAttribute|`createdonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_traitregistration_createdonbehalfby`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - -### lk_traitregistration_modifiedby - -Many-To-One Relationship: [traitregistration lk_traitregistration_modifiedby](traitregistration.md#BKMK_lk_traitregistration_modifiedby) - -|Property|Value| -|---|---| -|ReferencingEntity|`traitregistration`| -|ReferencingAttribute|`modifiedby`| -|ReferencedEntityNavigationPropertyName|`lk_traitregistration_modifiedby`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - -### lk_traitregistration_modifiedonbehalfby - -Many-To-One Relationship: [traitregistration lk_traitregistration_modifiedonbehalfby](traitregistration.md#BKMK_lk_traitregistration_modifiedonbehalfby) - -|Property|Value| -|---|---| -|ReferencingEntity|`traitregistration`| -|ReferencingAttribute|`modifiedonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_traitregistration_modifiedonbehalfby`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - ### lk_transactioncurrency_createdonbehalfby Many-To-One Relationship: [transactioncurrency lk_transactioncurrency_createdonbehalfby](transactioncurrency.md#BKMK_lk_transactioncurrency_createdonbehalfby) @@ -23841,63 +24847,159 @@ Many-To-One Relationship: [transformationparametermapping lk_transformationparam |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_transformationparametermapping_modifiedonbehalfby +### lk_transformationparametermapping_modifiedonbehalfby + +Many-To-One Relationship: [transformationparametermapping lk_transformationparametermapping_modifiedonbehalfby](transformationparametermapping.md#BKMK_lk_transformationparametermapping_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`transformationparametermapping`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_transformationparametermapping_modifiedonbehalfby`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_translationprocess_createdby + +Many-To-One Relationship: [translationprocess lk_translationprocess_createdby](translationprocess.md#BKMK_lk_translationprocess_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`translationprocess`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_translationprocess_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_translationprocess_createdonbehalfby + +Many-To-One Relationship: [translationprocess lk_translationprocess_createdonbehalfby](translationprocess.md#BKMK_lk_translationprocess_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`translationprocess`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_translationprocess_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_translationprocess_modifiedby + +Many-To-One Relationship: [translationprocess lk_translationprocess_modifiedby](translationprocess.md#BKMK_lk_translationprocess_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`translationprocess`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_translationprocess_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_translationprocess_modifiedonbehalfby + +Many-To-One Relationship: [translationprocess lk_translationprocess_modifiedonbehalfby](translationprocess.md#BKMK_lk_translationprocess_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`translationprocess`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_translationprocess_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_unstructuredfilesearchentity_createdby + +Many-To-One Relationship: [unstructuredfilesearchentity lk_unstructuredfilesearchentity_createdby](unstructuredfilesearchentity.md#BKMK_lk_unstructuredfilesearchentity_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`unstructuredfilesearchentity`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_unstructuredfilesearchentity_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_unstructuredfilesearchentity_createdonbehalfby + +Many-To-One Relationship: [unstructuredfilesearchentity lk_unstructuredfilesearchentity_createdonbehalfby](unstructuredfilesearchentity.md#BKMK_lk_unstructuredfilesearchentity_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`unstructuredfilesearchentity`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_unstructuredfilesearchentity_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_unstructuredfilesearchentity_modifiedby + +Many-To-One Relationship: [unstructuredfilesearchentity lk_unstructuredfilesearchentity_modifiedby](unstructuredfilesearchentity.md#BKMK_lk_unstructuredfilesearchentity_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`unstructuredfilesearchentity`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_unstructuredfilesearchentity_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_unstructuredfilesearchentity_modifiedonbehalfby -Many-To-One Relationship: [transformationparametermapping lk_transformationparametermapping_modifiedonbehalfby](transformationparametermapping.md#BKMK_lk_transformationparametermapping_modifiedonbehalfby) +Many-To-One Relationship: [unstructuredfilesearchentity lk_unstructuredfilesearchentity_modifiedonbehalfby](unstructuredfilesearchentity.md#BKMK_lk_unstructuredfilesearchentity_modifiedonbehalfby) |Property|Value| |---|---| -|ReferencingEntity|`transformationparametermapping`| +|ReferencingEntity|`unstructuredfilesearchentity`| |ReferencingAttribute|`modifiedonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_transformationparametermapping_modifiedonbehalfby`| -|IsCustomizable|`False`| +|ReferencedEntityNavigationPropertyName|`lk_unstructuredfilesearchentity_modifiedonbehalfby`| +|IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_translationprocess_createdby +### lk_unstructuredfilesearchrecord_createdby -Many-To-One Relationship: [translationprocess lk_translationprocess_createdby](translationprocess.md#BKMK_lk_translationprocess_createdby) +Many-To-One Relationship: [unstructuredfilesearchrecord lk_unstructuredfilesearchrecord_createdby](unstructuredfilesearchrecord.md#BKMK_lk_unstructuredfilesearchrecord_createdby) |Property|Value| |---|---| -|ReferencingEntity|`translationprocess`| +|ReferencingEntity|`unstructuredfilesearchrecord`| |ReferencingAttribute|`createdby`| -|ReferencedEntityNavigationPropertyName|`lk_translationprocess_createdby`| +|ReferencedEntityNavigationPropertyName|`lk_unstructuredfilesearchrecord_createdby`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_translationprocess_createdonbehalfby +### lk_unstructuredfilesearchrecord_createdonbehalfby -Many-To-One Relationship: [translationprocess lk_translationprocess_createdonbehalfby](translationprocess.md#BKMK_lk_translationprocess_createdonbehalfby) +Many-To-One Relationship: [unstructuredfilesearchrecord lk_unstructuredfilesearchrecord_createdonbehalfby](unstructuredfilesearchrecord.md#BKMK_lk_unstructuredfilesearchrecord_createdonbehalfby) |Property|Value| |---|---| -|ReferencingEntity|`translationprocess`| +|ReferencingEntity|`unstructuredfilesearchrecord`| |ReferencingAttribute|`createdonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_translationprocess_createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_unstructuredfilesearchrecord_createdonbehalfby`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_translationprocess_modifiedby +### lk_unstructuredfilesearchrecord_modifiedby -Many-To-One Relationship: [translationprocess lk_translationprocess_modifiedby](translationprocess.md#BKMK_lk_translationprocess_modifiedby) +Many-To-One Relationship: [unstructuredfilesearchrecord lk_unstructuredfilesearchrecord_modifiedby](unstructuredfilesearchrecord.md#BKMK_lk_unstructuredfilesearchrecord_modifiedby) |Property|Value| |---|---| -|ReferencingEntity|`translationprocess`| +|ReferencingEntity|`unstructuredfilesearchrecord`| |ReferencingAttribute|`modifiedby`| -|ReferencedEntityNavigationPropertyName|`lk_translationprocess_modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_unstructuredfilesearchrecord_modifiedby`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### lk_translationprocess_modifiedonbehalfby +### lk_unstructuredfilesearchrecord_modifiedonbehalfby -Many-To-One Relationship: [translationprocess lk_translationprocess_modifiedonbehalfby](translationprocess.md#BKMK_lk_translationprocess_modifiedonbehalfby) +Many-To-One Relationship: [unstructuredfilesearchrecord lk_unstructuredfilesearchrecord_modifiedonbehalfby](unstructuredfilesearchrecord.md#BKMK_lk_unstructuredfilesearchrecord_modifiedonbehalfby) |Property|Value| |---|---| -|ReferencingEntity|`translationprocess`| +|ReferencingEntity|`unstructuredfilesearchrecord`| |ReferencingAttribute|`modifiedonbehalfby`| -|ReferencedEntityNavigationPropertyName|`lk_translationprocess_modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_unstructuredfilesearchrecord_modifiedonbehalfby`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| @@ -24501,6 +25603,54 @@ Many-To-One Relationship: [workflowlog lk_workflowlog_modifiedonbehalfby](workfl |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### lk_workflowmetadata_createdby + +Many-To-One Relationship: [workflowmetadata lk_workflowmetadata_createdby](workflowmetadata.md#BKMK_lk_workflowmetadata_createdby) + +|Property|Value| +|---|---| +|ReferencingEntity|`workflowmetadata`| +|ReferencingAttribute|`createdby`| +|ReferencedEntityNavigationPropertyName|`lk_workflowmetadata_createdby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_workflowmetadata_createdonbehalfby + +Many-To-One Relationship: [workflowmetadata lk_workflowmetadata_createdonbehalfby](workflowmetadata.md#BKMK_lk_workflowmetadata_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`workflowmetadata`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_workflowmetadata_createdonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_workflowmetadata_modifiedby + +Many-To-One Relationship: [workflowmetadata lk_workflowmetadata_modifiedby](workflowmetadata.md#BKMK_lk_workflowmetadata_modifiedby) + +|Property|Value| +|---|---| +|ReferencingEntity|`workflowmetadata`| +|ReferencingAttribute|`modifiedby`| +|ReferencedEntityNavigationPropertyName|`lk_workflowmetadata_modifiedby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### lk_workflowmetadata_modifiedonbehalfby + +Many-To-One Relationship: [workflowmetadata lk_workflowmetadata_modifiedonbehalfby](workflowmetadata.md#BKMK_lk_workflowmetadata_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencingEntity|`workflowmetadata`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencedEntityNavigationPropertyName|`lk_workflowmetadata_modifiedonbehalfby`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### lk_workqueue_createdby Many-To-One Relationship: [workqueue lk_workqueue_createdby](workqueue.md#BKMK_lk_workqueue_createdby) @@ -25977,18 +27127,6 @@ Many-To-One Relationship: [adx_setting user_adx_setting](adx_setting.md#BKMK_use |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### user_aiinsightcard - -Many-To-One Relationship: [aiinsightcard user_aiinsightcard](aiinsightcard.md#BKMK_user_aiinsightcard) - -|Property|Value| -|---|---| -|ReferencingEntity|`aiinsightcard`| -|ReferencingAttribute|`owninguser`| -|ReferencedEntityNavigationPropertyName|`user_aiinsightcard`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - ### user_aiplugin Many-To-One Relationship: [aiplugin user_aiplugin](aiplugin.md#BKMK_user_aiplugin) @@ -26169,6 +27307,54 @@ Many-To-One Relationship: [appointment user_appointment](appointment.md#BKMK_use |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### user_approvalprocess + +Many-To-One Relationship: [approvalprocess user_approvalprocess](approvalprocess.md#BKMK_user_approvalprocess) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalprocess`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_approvalprocess`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### user_approvalstageapproval + +Many-To-One Relationship: [approvalstageapproval user_approvalstageapproval](approvalstageapproval.md#BKMK_user_approvalstageapproval) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageapproval`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_approvalstageapproval`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### user_approvalstagecondition + +Many-To-One Relationship: [approvalstagecondition user_approvalstagecondition](approvalstagecondition.md#BKMK_user_approvalstagecondition) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstagecondition`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_approvalstagecondition`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### user_approvalstageorder + +Many-To-One Relationship: [approvalstageorder user_approvalstageorder](approvalstageorder.md#BKMK_user_approvalstageorder) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageorder`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_approvalstageorder`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### user_bot Many-To-One Relationship: [bot user_bot](bot.md#BKMK_user_bot) @@ -26205,6 +27391,18 @@ Many-To-One Relationship: [botcomponentcollection user_botcomponentcollection](b |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### user_businessprocess + +Many-To-One Relationship: [businessprocess user_businessprocess](businessprocess.md#BKMK_user_businessprocess) + +|Property|Value| +|---|---| +|ReferencingEntity|`businessprocess`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_businessprocess`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### user_card Many-To-One Relationship: [card user_card](card.md#BKMK_user_card) @@ -26565,6 +27763,18 @@ Many-To-One Relationship: [federatedknowledgeentityconfiguration user_federatedk |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### user_flowaggregation + +Many-To-One Relationship: [flowaggregation user_flowaggregation](flowaggregation.md#BKMK_user_flowaggregation) + +|Property|Value| +|---|---| +|ReferencingEntity|`flowaggregation`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_flowaggregation`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### user_flowcapacityassignment Many-To-One Relationship: [flowcapacityassignment user_flowcapacityassignment](flowcapacityassignment.md#BKMK_user_flowcapacityassignment) @@ -26733,6 +27943,18 @@ Many-To-One Relationship: [governanceconfiguration user_governanceconfiguration] |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### user_indexedtrait + +Many-To-One Relationship: [indexedtrait user_indexedtrait](indexedtrait.md#BKMK_user_indexedtrait) + +|Property|Value| +|---|---| +|ReferencingEntity|`indexedtrait`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_indexedtrait`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### user_interactionforemail Many-To-One Relationship: [interactionforemail user_interactionforemail](interactionforemail.md#BKMK_user_interactionforemail) @@ -26889,6 +28111,42 @@ Many-To-One Relationship: [msdyn_aibfileattacheddata user_msdyn_aibfileattachedd |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### user_msdyn_aidataprocessingevent + +Many-To-One Relationship: [msdyn_aidataprocessingevent user_msdyn_aidataprocessingevent](msdyn_aidataprocessingevent.md#BKMK_user_msdyn_aidataprocessingevent) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aidataprocessingevent`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_msdyn_aidataprocessingevent`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### user_msdyn_aievaluationconfiguration + +Many-To-One Relationship: [msdyn_aievaluationconfiguration user_msdyn_aievaluationconfiguration](msdyn_aievaluationconfiguration.md#BKMK_user_msdyn_aievaluationconfiguration) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aievaluationconfiguration`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_msdyn_aievaluationconfiguration`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### user_msdyn_aievaluationrun + +Many-To-One Relationship: [msdyn_aievaluationrun user_msdyn_aievaluationrun](msdyn_aievaluationrun.md#BKMK_user_msdyn_aievaluationrun) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aievaluationrun`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_msdyn_aievaluationrun`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### user_msdyn_aievent Many-To-One Relationship: [msdyn_aievent user_msdyn_aievent](msdyn_aievent.md#BKMK_user_msdyn_aievent) @@ -26985,6 +28243,66 @@ Many-To-One Relationship: [msdyn_aitemplate user_msdyn_aitemplate](msdyn_aitempl |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### user_msdyn_aitestcase + +Many-To-One Relationship: [msdyn_aitestcase user_msdyn_aitestcase](msdyn_aitestcase.md#BKMK_user_msdyn_aitestcase) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestcase`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_msdyn_aitestcase`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### user_msdyn_aitestcasedocument + +Many-To-One Relationship: [msdyn_aitestcasedocument user_msdyn_aitestcasedocument](msdyn_aitestcasedocument.md#BKMK_user_msdyn_aitestcasedocument) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestcasedocument`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_msdyn_aitestcasedocument`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### user_msdyn_aitestcaseinput + +Many-To-One Relationship: [msdyn_aitestcaseinput user_msdyn_aitestcaseinput](msdyn_aitestcaseinput.md#BKMK_user_msdyn_aitestcaseinput) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestcaseinput`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_msdyn_aitestcaseinput`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### user_msdyn_aitestrun + +Many-To-One Relationship: [msdyn_aitestrun user_msdyn_aitestrun](msdyn_aitestrun.md#BKMK_user_msdyn_aitestrun) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestrun`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_msdyn_aitestrun`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### user_msdyn_aitestrunbatch + +Many-To-One Relationship: [msdyn_aitestrunbatch user_msdyn_aitestrunbatch](msdyn_aitestrunbatch.md#BKMK_user_msdyn_aitestrunbatch) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestrunbatch`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_msdyn_aitestrunbatch`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### user_msdyn_analysiscomponent Many-To-One Relationship: [msdyn_analysiscomponent user_msdyn_analysiscomponent](msdyn_analysiscomponent.md#BKMK_user_msdyn_analysiscomponent) @@ -28101,18 +29419,6 @@ Many-To-One Relationship: [privilegecheckerrun user_privilegecheckerrun](privile |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### user_processorregistration - -Many-To-One Relationship: [processorregistration user_processorregistration](processorregistration.md#BKMK_user_processorregistration) - -|Property|Value| -|---|---| -|ReferencingEntity|`processorregistration`| -|ReferencingAttribute|`owninguser`| -|ReferencedEntityNavigationPropertyName|`user_processorregistration`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - ### user_processstageparameter Many-To-One Relationship: [processstageparameter user_processstageparameter](processstageparameter.md#BKMK_user_processstageparameter) @@ -28209,6 +29515,18 @@ Many-To-One Relationship: [retentionsuccessdetail user_retentionsuccessdetail](r |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### user_savingrule + +Many-To-One Relationship: [savingrule user_savingrule](savingrule.md#BKMK_user_savingrule) + +|Property|Value| +|---|---| +|ReferencingEntity|`savingrule`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_savingrule`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### user_settings Many-To-One Relationship: [usersettings user_settings](usersettings.md#BKMK_user_settings) @@ -28269,18 +29587,6 @@ Many-To-One Relationship: [signal user_signal](signal.md#BKMK_user_signal) |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### user_signalregistration - -Many-To-One Relationship: [signalregistration user_signalregistration](signalregistration.md#BKMK_user_signalregistration) - -|Property|Value| -|---|---| -|ReferencingEntity|`signalregistration`| -|ReferencingAttribute|`owninguser`| -|ReferencedEntityNavigationPropertyName|`user_signalregistration`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - ### user_slabase Many-To-One Relationship: [sla user_slabase](sla.md#BKMK_user_slabase) @@ -28341,6 +29647,42 @@ Many-To-One Relationship: [synapsedatabase user_synapsedatabase](synapsedatabase |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### user_tag + +Many-To-One Relationship: [tag user_tag](tag.md#BKMK_user_tag) + +|Property|Value| +|---|---| +|ReferencingEntity|`tag`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_tag`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### user_taggedflowsession + +Many-To-One Relationship: [taggedflowsession user_taggedflowsession](taggedflowsession.md#BKMK_user_taggedflowsession) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedflowsession`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_taggedflowsession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### user_taggedprocess + +Many-To-One Relationship: [taggedprocess user_taggedprocess](taggedprocess.md#BKMK_user_taggedprocess) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedprocess`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_taggedprocess`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### user_task Many-To-One Relationship: [task user_task](task.md#BKMK_user_task) @@ -28365,15 +29707,27 @@ Many-To-One Relationship: [trait user_trait](trait.md#BKMK_user_trait) |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### user_traitregistration +### user_unstructuredfilesearchentity + +Many-To-One Relationship: [unstructuredfilesearchentity user_unstructuredfilesearchentity](unstructuredfilesearchentity.md#BKMK_user_unstructuredfilesearchentity) + +|Property|Value| +|---|---| +|ReferencingEntity|`unstructuredfilesearchentity`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_unstructuredfilesearchentity`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### user_unstructuredfilesearchrecord -Many-To-One Relationship: [traitregistration user_traitregistration](traitregistration.md#BKMK_user_traitregistration) +Many-To-One Relationship: [unstructuredfilesearchrecord user_unstructuredfilesearchrecord](unstructuredfilesearchrecord.md#BKMK_user_unstructuredfilesearchrecord) |Property|Value| |---|---| -|ReferencingEntity|`traitregistration`| +|ReferencingEntity|`unstructuredfilesearchrecord`| |ReferencingAttribute|`owninguser`| -|ReferencedEntityNavigationPropertyName|`user_traitregistration`| +|ReferencedEntityNavigationPropertyName|`user_unstructuredfilesearchrecord`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| @@ -28437,6 +29791,18 @@ Many-To-One Relationship: [workflowbinary user_workflowbinary](workflowbinary.md |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### user_workflowmetadata + +Many-To-One Relationship: [workflowmetadata user_workflowmetadata](workflowmetadata.md#BKMK_user_workflowmetadata) + +|Property|Value| +|---|---| +|ReferencingEntity|`workflowmetadata`| +|ReferencingAttribute|`owninguser`| +|ReferencedEntityNavigationPropertyName|`user_workflowmetadata`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### user_workqueue Many-To-One Relationship: [workqueue user_workqueue](workqueue.md#BKMK_user_workqueue) @@ -28509,6 +29875,18 @@ Many-To-One Relationship: [workflow workflow_createdonbehalfby](workflow.md#BKMK |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### Workflow_licensee + +Many-To-One Relationship: [workflow Workflow_licensee](workflow.md#BKMK_Workflow_licensee) + +|Property|Value| +|---|---| +|ReferencingEntity|`workflow`| +|ReferencingAttribute|`licensee`| +|ReferencedEntityNavigationPropertyName|`Workflow_licensee`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### workflow_modifiedby Many-To-One Relationship: [workflow workflow_modifiedby](workflow.md#BKMK_workflow_modifiedby) diff --git a/powerapps-docs/developer/data-platform/reference/entities/signalregistration.md b/powerapps-docs/developer/data-platform/reference/entities/tag.md similarity index 62% rename from powerapps-docs/developer/data-platform/reference/entities/signalregistration.md rename to powerapps-docs/developer/data-platform/reference/entities/tag.md index 1d02ccdab5..fd7ee67aa6 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/signalregistration.md +++ b/powerapps-docs/developer/data-platform/reference/entities/tag.md @@ -1,6 +1,6 @@ --- -title: "Signal Registration (SignalRegistration) table/entity reference (Microsoft Dataverse)" -description: "Includes schema information and supported messages for the Signal Registration (SignalRegistration) table/entity with Microsoft Dataverse." +title: "tag table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the tag table/entity with Microsoft Dataverse." ms.topic: generated-reference author: phecke ms.author: pehecke @@ -8,67 +8,52 @@ search.audienceType: - developer --- -# Signal Registration (SignalRegistration) table/entity reference (Microsoft Dataverse) +# tag table/entity reference (Microsoft Dataverse) ## Messages -The following table lists the messages for the Signal Registration (SignalRegistration) table. +The following table lists the messages for the tag table. Messages represent operations that can be performed on the table. They may also be events. | Name
Is Event? |Web API Operation |SDK for .NET | | ---- | ----- |----- | -| `Assign`
Event: True |`PATCH` /signalregistrations(*signalregistrationid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Assign`
Event: True |`PATCH` /tags(*tagid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || | `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| -| `Create`
Event: True |`POST` /signalregistrations
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `Create`
Event: True |`POST` /tags
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| | `CreateMultiple`
Event: True | || -| `Delete`
Event: True |`DELETE` /signalregistrations(*signalregistrationid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Delete`
Event: True |`DELETE` /tags(*tagid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| | `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| | `GrantAccess`
Event: True | || | `IsValidStateTransition`
Event: False | || | `ModifyAccess`
Event: True | || -| `Restore`
Event: True | |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| -| `Retrieve`
Event: True |`GET` /signalregistrations(*signalregistrationid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| -| `RetrieveMultiple`
Event: True |`GET` /signalregistrations
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `Retrieve`
Event: True |`GET` /tags(*tagid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /tags
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| | `RetrievePrincipalAccess`
Event: True | || | `RetrieveSharedPrincipalsAndAccess`
Event: True | || | `RevokeAccess`
Event: True | || -| `SetState`
Event: True |`PATCH` /signalregistrations(*signalregistrationid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || -| `Update`
Event: True |`PATCH` /signalregistrations(*signalregistrationid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `SetState`
Event: True |`PATCH` /tags(*tagid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /tags(*tagid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| | `UpdateMultiple`
Event: True | || -| `Upsert`
Event: False |`PATCH` /signalregistrations(*signalregistrationid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `Upsert`
Event: False |`PATCH` /tags(*tagid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || | `UpsertMultiple`
Event: False | || - -## Events - -The following table lists the events for the Signal Registration (SignalRegistration) table. -Events are messages that exist so that you can subscribe to them. Unless you added the event, you shouldn't invoke the message, only subscribe to it. - -|Name|Web API Operation |SDK for .NET | -| ---- | ----- |----- | -| `BulkRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| -| `PurgeRetainedContent`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| -| `Retain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| -| `RollbackRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| -| `ValidateRetentionConfig`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| - ## Properties -The following table lists selected properties for the Signal Registration (SignalRegistration) table. +The following table lists selected properties for the tag table. |Property|Value| | --- | --- | -| **DisplayName** | **Signal Registration** | -| **DisplayCollectionName** | **Signal Registrations** | -| **SchemaName** | `SignalRegistration` | -| **CollectionSchemaName** | `SignalRegistrations` | -| **EntitySetName** | `signalregistrations`| -| **LogicalName** | `signalregistration` | -| **LogicalCollectionName** | `signalregistrations` | -| **PrimaryIdAttribute** | `signalregistrationid` | -| **PrimaryNameAttribute** |`signalname` | +| **DisplayName** | **Tag** | +| **DisplayCollectionName** | **Tags** | +| **SchemaName** | `tag` | +| **CollectionSchemaName** | `tags` | +| **EntitySetName** | `tags`| +| **LogicalName** | `tag` | +| **LogicalCollectionName** | `tags` | +| **PrimaryIdAttribute** | `tagid` | +| **PrimaryNameAttribute** |`name` | | **TableType** | `Standard` | | **OwnershipType** | `UserOwned` | @@ -76,17 +61,36 @@ The following table lists selected properties for the Signal Registration (Signa These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. +- [Description](#BKMK_Description) - [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [IsCustomizable](#BKMK_IsCustomizable) +- [Name](#BKMK_Name) - [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) - [OwnerId](#BKMK_OwnerId) - [OwnerIdType](#BKMK_OwnerIdType) -- [SignalName](#BKMK_SignalName) -- [SignalRegistrationId](#BKMK_SignalRegistrationId) - [statecode](#BKMK_statecode) - [statuscode](#BKMK_statuscode) +- [tagId](#BKMK_tagId) - [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) - [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) +### Description + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Description**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`description`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1000| + ### ImportSequenceNumber |Property|Value| @@ -101,6 +105,35 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |MaxValue|2147483647| |MinValue|-2147483648| +### IsCustomizable + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Is Customizable**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`iscustomizable`| +|RequiredLevel|SystemRequired| +|Type|ManagedProperty| + +### Name + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`name`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|850| + ### OverriddenCreatedOn |Property|Value| @@ -143,40 +176,11 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |RequiredLevel|SystemRequired| |Type|EntityName| -### SignalName - -|Property|Value| -|---|---| -|Description|| -|DisplayName|**Signal Name**| -|IsValidForForm|True| -|IsValidForRead|True| -|LogicalName|`signalname`| -|RequiredLevel|ApplicationRequired| -|Type|String| -|Format|Text| -|FormatName|Text| -|ImeMode|Auto| -|IsLocalizable|False| -|MaxLength|100| - -### SignalRegistrationId - -|Property|Value| -|---|---| -|Description|**Unique identifier for entity instances**| -|DisplayName|**SignalRegistration**| -|IsValidForForm|False| -|IsValidForRead|True| -|LogicalName|`signalregistrationid`| -|RequiredLevel|SystemRequired| -|Type|Uniqueidentifier| - ### statecode |Property|Value| |---|---| -|Description|**Status of the Signal Registration**| +|Description|**Status of the Tag**| |DisplayName|**Status**| |IsValidForForm|True| |IsValidForRead|True| @@ -184,7 +188,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |RequiredLevel|SystemRequired| |Type|State| |DefaultFormValue|| -|GlobalChoiceName|`signalregistration_statecode`| +|GlobalChoiceName|`tag_statecode`| #### statecode Choices/Options @@ -197,7 +201,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**Reason for the status of the Signal Registration**| +|Description|**Reason for the status of the Tag**| |DisplayName|**Status Reason**| |IsValidForForm|True| |IsValidForRead|True| @@ -205,7 +209,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |RequiredLevel|None| |Type|Status| |DefaultFormValue|| -|GlobalChoiceName|`signalregistration_statuscode`| +|GlobalChoiceName|`tag_statuscode`| #### statuscode Choices/Options @@ -214,6 +218,18 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |1|Label: **Active**
State:0
TransitionData: None| |2|Label: **Inactive**
State:1
TransitionData: None| +### tagId + +|Property|Value| +|---|---| +|Description|**Unique identifier for entity instances**| +|DisplayName|**Tag**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`tagid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + ### TimeZoneRuleVersionNumber |Property|Value| @@ -247,19 +263,60 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. +- [ComponentIdUnique](#BKMK_ComponentIdUnique) +- [ComponentState](#BKMK_ComponentState) - [CreatedBy](#BKMK_CreatedBy) - [CreatedOn](#BKMK_CreatedOn) - [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [IsManaged](#BKMK_IsManaged) - [ModifiedBy](#BKMK_ModifiedBy) - [ModifiedOn](#BKMK_ModifiedOn) - [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OverwriteTime](#BKMK_OverwriteTime) - [OwnerIdName](#BKMK_OwnerIdName) - [OwnerIdYomiName](#BKMK_OwnerIdYomiName) - [OwningBusinessUnit](#BKMK_OwningBusinessUnit) - [OwningTeam](#BKMK_OwningTeam) - [OwningUser](#BKMK_OwningUser) +- [SolutionId](#BKMK_SolutionId) +- [SupportingSolutionId](#BKMK_SupportingSolutionId) - [VersionNumber](#BKMK_VersionNumber) +### ComponentIdUnique + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Row id unique**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentidunique`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### ComponentState + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Component State**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentstate`| +|RequiredLevel|SystemRequired| +|Type|Picklist| +|DefaultFormValue|| +|GlobalChoiceName|`componentstate`| + +#### ComponentState Choices/Options + +|Value|Label| +|---|---| +|0|**Published**| +|1|**Unpublished**| +|2|**Deleted**| +|3|**Deleted Unpublished**| + ### CreatedBy |Property|Value| @@ -303,6 +360,22 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |Type|Lookup| |Targets|systemuser| +### IsManaged + +|Property|Value| +|---|---| +|Description|**Indicates whether the solution component is part of a managed solution.**| +|DisplayName|**Is Managed**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`ismanaged`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`ismanaged`| +|DefaultValue|False| +|True Label|Managed| +|False Label|Unmanaged| + ### ModifiedBy |Property|Value| @@ -346,6 +419,23 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |Type|Lookup| |Targets|systemuser| +### OverwriteTime + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Record Overwrite Time**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overwritetime`| +|RequiredLevel|SystemRequired| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + ### OwnerIdName |Property|Value| @@ -419,6 +509,30 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |Type|Lookup| |Targets|systemuser| +### SolutionId + +|Property|Value| +|---|---| +|Description|**Unique identifier of the associated solution.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`solutionid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### SupportingSolutionId + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|False| +|LogicalName|`supportingsolutionid`| +|RequiredLevel|None| +|Type|Uniqueidentifier| + ### VersionNumber |Property|Value| @@ -437,18 +551,18 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali These relationships are many-to-one. Listed by **SchemaName**. -- [business_unit_signalregistration](#BKMK_business_unit_signalregistration) -- [lk_signalregistration_createdby](#BKMK_lk_signalregistration_createdby) -- [lk_signalregistration_createdonbehalfby](#BKMK_lk_signalregistration_createdonbehalfby) -- [lk_signalregistration_modifiedby](#BKMK_lk_signalregistration_modifiedby) -- [lk_signalregistration_modifiedonbehalfby](#BKMK_lk_signalregistration_modifiedonbehalfby) -- [owner_signalregistration](#BKMK_owner_signalregistration) -- [team_signalregistration](#BKMK_team_signalregistration) -- [user_signalregistration](#BKMK_user_signalregistration) +- [business_unit_tag](#BKMK_business_unit_tag) +- [lk_tag_createdby](#BKMK_lk_tag_createdby) +- [lk_tag_createdonbehalfby](#BKMK_lk_tag_createdonbehalfby) +- [lk_tag_modifiedby](#BKMK_lk_tag_modifiedby) +- [lk_tag_modifiedonbehalfby](#BKMK_lk_tag_modifiedonbehalfby) +- [owner_tag](#BKMK_owner_tag) +- [team_tag](#BKMK_team_tag) +- [user_tag](#BKMK_user_tag) -### business_unit_signalregistration +### business_unit_tag -One-To-Many Relationship: [businessunit business_unit_signalregistration](businessunit.md#BKMK_business_unit_signalregistration) +One-To-Many Relationship: [businessunit business_unit_tag](businessunit.md#BKMK_business_unit_tag) |Property|Value| |---|---| @@ -459,9 +573,9 @@ One-To-Many Relationship: [businessunit business_unit_signalregistration](busine |IsHierarchical|| |CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### lk_signalregistration_createdby +### lk_tag_createdby -One-To-Many Relationship: [systemuser lk_signalregistration_createdby](systemuser.md#BKMK_lk_signalregistration_createdby) +One-To-Many Relationship: [systemuser lk_tag_createdby](systemuser.md#BKMK_lk_tag_createdby) |Property|Value| |---|---| @@ -472,9 +586,9 @@ One-To-Many Relationship: [systemuser lk_signalregistration_createdby](systemuse |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### lk_signalregistration_createdonbehalfby +### lk_tag_createdonbehalfby -One-To-Many Relationship: [systemuser lk_signalregistration_createdonbehalfby](systemuser.md#BKMK_lk_signalregistration_createdonbehalfby) +One-To-Many Relationship: [systemuser lk_tag_createdonbehalfby](systemuser.md#BKMK_lk_tag_createdonbehalfby) |Property|Value| |---|---| @@ -485,9 +599,9 @@ One-To-Many Relationship: [systemuser lk_signalregistration_createdonbehalfby](s |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### lk_signalregistration_modifiedby +### lk_tag_modifiedby -One-To-Many Relationship: [systemuser lk_signalregistration_modifiedby](systemuser.md#BKMK_lk_signalregistration_modifiedby) +One-To-Many Relationship: [systemuser lk_tag_modifiedby](systemuser.md#BKMK_lk_tag_modifiedby) |Property|Value| |---|---| @@ -498,9 +612,9 @@ One-To-Many Relationship: [systemuser lk_signalregistration_modifiedby](systemus |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### lk_signalregistration_modifiedonbehalfby +### lk_tag_modifiedonbehalfby -One-To-Many Relationship: [systemuser lk_signalregistration_modifiedonbehalfby](systemuser.md#BKMK_lk_signalregistration_modifiedonbehalfby) +One-To-Many Relationship: [systemuser lk_tag_modifiedonbehalfby](systemuser.md#BKMK_lk_tag_modifiedonbehalfby) |Property|Value| |---|---| @@ -511,9 +625,9 @@ One-To-Many Relationship: [systemuser lk_signalregistration_modifiedonbehalfby]( |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### owner_signalregistration +### owner_tag -One-To-Many Relationship: [owner owner_signalregistration](owner.md#BKMK_owner_signalregistration) +One-To-Many Relationship: [owner owner_tag](owner.md#BKMK_owner_tag) |Property|Value| |---|---| @@ -524,9 +638,9 @@ One-To-Many Relationship: [owner owner_signalregistration](owner.md#BKMK_owner_s |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### team_signalregistration +### team_tag -One-To-Many Relationship: [team team_signalregistration](team.md#BKMK_team_signalregistration) +One-To-Many Relationship: [team team_tag](team.md#BKMK_team_tag) |Property|Value| |---|---| @@ -537,9 +651,9 @@ One-To-Many Relationship: [team team_signalregistration](team.md#BKMK_team_signa |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### user_signalregistration +### user_tag -One-To-Many Relationship: [systemuser user_signalregistration](systemuser.md#BKMK_user_signalregistration) +One-To-Many Relationship: [systemuser user_tag](systemuser.md#BKMK_user_tag) |Property|Value| |---|---| @@ -555,102 +669,115 @@ One-To-Many Relationship: [systemuser user_signalregistration](systemuser.md#BKM These relationships are one-to-many. Listed by **SchemaName**. -- [processorregistration_signalregistration_signalname](#BKMK_processorregistration_signalregistration_signalname) -- [signalregistration_AsyncOperations](#BKMK_signalregistration_AsyncOperations) -- [signalregistration_BulkDeleteFailures](#BKMK_signalregistration_BulkDeleteFailures) -- [signalregistration_MailboxTrackingFolders](#BKMK_signalregistration_MailboxTrackingFolders) -- [signalregistration_PrincipalObjectAttributeAccesses](#BKMK_signalregistration_PrincipalObjectAttributeAccesses) -- [signalregistration_ProcessSession](#BKMK_signalregistration_ProcessSession) -- [signalregistration_SyncErrors](#BKMK_signalregistration_SyncErrors) +- [tag_AsyncOperations](#BKMK_tag_AsyncOperations) +- [tag_BulkDeleteFailures](#BKMK_tag_BulkDeleteFailures) +- [tag_MailboxTrackingFolders](#BKMK_tag_MailboxTrackingFolders) +- [tag_PrincipalObjectAttributeAccesses](#BKMK_tag_PrincipalObjectAttributeAccesses) +- [tag_ProcessSession](#BKMK_tag_ProcessSession) +- [tag_SyncErrors](#BKMK_tag_SyncErrors) +- [taggedflowsession_tag_tag](#BKMK_taggedflowsession_tag_tag) +- [taggedprocess_tag_tag](#BKMK_taggedprocess_tag_tag) -### processorregistration_signalregistration_signalname +### tag_AsyncOperations -Many-To-One Relationship: [processorregistration processorregistration_signalregistration_signalname](processorregistration.md#BKMK_processorregistration_signalregistration_signalname) - -|Property|Value| -|---|---| -|ReferencingEntity|`processorregistration`| -|ReferencingAttribute|`signalname`| -|ReferencedEntityNavigationPropertyName|`processorregistration_signalregistration_signalname`| -|IsCustomizable|`False`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - -### signalregistration_AsyncOperations - -Many-To-One Relationship: [asyncoperation signalregistration_AsyncOperations](asyncoperation.md#BKMK_signalregistration_AsyncOperations) +Many-To-One Relationship: [asyncoperation tag_AsyncOperations](asyncoperation.md#BKMK_tag_AsyncOperations) |Property|Value| |---|---| |ReferencingEntity|`asyncoperation`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`signalregistration_AsyncOperations`| +|ReferencedEntityNavigationPropertyName|`tag_AsyncOperations`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### signalregistration_BulkDeleteFailures +### tag_BulkDeleteFailures -Many-To-One Relationship: [bulkdeletefailure signalregistration_BulkDeleteFailures](bulkdeletefailure.md#BKMK_signalregistration_BulkDeleteFailures) +Many-To-One Relationship: [bulkdeletefailure tag_BulkDeleteFailures](bulkdeletefailure.md#BKMK_tag_BulkDeleteFailures) |Property|Value| |---|---| |ReferencingEntity|`bulkdeletefailure`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`signalregistration_BulkDeleteFailures`| +|ReferencedEntityNavigationPropertyName|`tag_BulkDeleteFailures`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### signalregistration_MailboxTrackingFolders +### tag_MailboxTrackingFolders -Many-To-One Relationship: [mailboxtrackingfolder signalregistration_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_signalregistration_MailboxTrackingFolders) +Many-To-One Relationship: [mailboxtrackingfolder tag_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_tag_MailboxTrackingFolders) |Property|Value| |---|---| |ReferencingEntity|`mailboxtrackingfolder`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`signalregistration_MailboxTrackingFolders`| +|ReferencedEntityNavigationPropertyName|`tag_MailboxTrackingFolders`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### signalregistration_PrincipalObjectAttributeAccesses +### tag_PrincipalObjectAttributeAccesses -Many-To-One Relationship: [principalobjectattributeaccess signalregistration_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_signalregistration_PrincipalObjectAttributeAccesses) +Many-To-One Relationship: [principalobjectattributeaccess tag_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_tag_PrincipalObjectAttributeAccesses) |Property|Value| |---|---| |ReferencingEntity|`principalobjectattributeaccess`| |ReferencingAttribute|`objectid`| -|ReferencedEntityNavigationPropertyName|`signalregistration_PrincipalObjectAttributeAccesses`| +|ReferencedEntityNavigationPropertyName|`tag_PrincipalObjectAttributeAccesses`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### signalregistration_ProcessSession +### tag_ProcessSession -Many-To-One Relationship: [processsession signalregistration_ProcessSession](processsession.md#BKMK_signalregistration_ProcessSession) +Many-To-One Relationship: [processsession tag_ProcessSession](processsession.md#BKMK_tag_ProcessSession) |Property|Value| |---|---| |ReferencingEntity|`processsession`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`signalregistration_ProcessSession`| +|ReferencedEntityNavigationPropertyName|`tag_ProcessSession`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### signalregistration_SyncErrors +### tag_SyncErrors -Many-To-One Relationship: [syncerror signalregistration_SyncErrors](syncerror.md#BKMK_signalregistration_SyncErrors) +Many-To-One Relationship: [syncerror tag_SyncErrors](syncerror.md#BKMK_tag_SyncErrors) |Property|Value| |---|---| |ReferencingEntity|`syncerror`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`signalregistration_SyncErrors`| +|ReferencedEntityNavigationPropertyName|`tag_SyncErrors`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### taggedflowsession_tag_tag + +Many-To-One Relationship: [taggedflowsession taggedflowsession_tag_tag](taggedflowsession.md#BKMK_taggedflowsession_tag_tag) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedflowsession`| +|ReferencingAttribute|`tag`| +|ReferencedEntityNavigationPropertyName|`taggedflowsession_tag_tag`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### taggedprocess_tag_tag + +Many-To-One Relationship: [taggedprocess taggedprocess_tag_tag](taggedprocess.md#BKMK_taggedprocess_tag_tag) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedprocess`| +|ReferencingAttribute|`tag`| +|ReferencedEntityNavigationPropertyName|`taggedprocess_tag_tag`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### See also [Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) [Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) - + diff --git a/powerapps-docs/developer/data-platform/reference/entities/traitregistration.md b/powerapps-docs/developer/data-platform/reference/entities/taggedflowsession.md similarity index 61% rename from powerapps-docs/developer/data-platform/reference/entities/traitregistration.md rename to powerapps-docs/developer/data-platform/reference/entities/taggedflowsession.md index d39e7d8565..9ae4090e91 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/traitregistration.md +++ b/powerapps-docs/developer/data-platform/reference/entities/taggedflowsession.md @@ -1,6 +1,6 @@ --- -title: "Trait Registration (TraitRegistration) table/entity reference (Microsoft Dataverse)" -description: "Includes schema information and supported messages for the Trait Registration (TraitRegistration) table/entity with Microsoft Dataverse." +title: "Tagged Flow Session (taggedflowsession) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the Tagged Flow Session (taggedflowsession) table/entity with Microsoft Dataverse." ms.topic: generated-reference author: phecke ms.author: pehecke @@ -8,67 +8,52 @@ search.audienceType: - developer --- -# Trait Registration (TraitRegistration) table/entity reference (Microsoft Dataverse) +# Tagged Flow Session (taggedflowsession) table/entity reference (Microsoft Dataverse) ## Messages -The following table lists the messages for the Trait Registration (TraitRegistration) table. +The following table lists the messages for the Tagged Flow Session (taggedflowsession) table. Messages represent operations that can be performed on the table. They may also be events. | Name
Is Event? |Web API Operation |SDK for .NET | | ---- | ----- |----- | -| `Assign`
Event: True |`PATCH` /traitregistrations(*traitregistrationid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Assign`
Event: True |`PATCH` /taggedflowsessions(*taggedflowsessionid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || | `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| -| `Create`
Event: True |`POST` /traitregistrations
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `Create`
Event: True |`POST` /taggedflowsessions
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| | `CreateMultiple`
Event: True | || -| `Delete`
Event: True |`DELETE` /traitregistrations(*traitregistrationid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Delete`
Event: True |`DELETE` /taggedflowsessions(*taggedflowsessionid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| | `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| | `GrantAccess`
Event: True | || | `IsValidStateTransition`
Event: False | || | `ModifyAccess`
Event: True | || -| `Restore`
Event: True | |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| -| `Retrieve`
Event: True |`GET` /traitregistrations(*traitregistrationid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| -| `RetrieveMultiple`
Event: True |`GET` /traitregistrations
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `Retrieve`
Event: True |`GET` /taggedflowsessions(*taggedflowsessionid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /taggedflowsessions
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| | `RetrievePrincipalAccess`
Event: True | || | `RetrieveSharedPrincipalsAndAccess`
Event: True | || | `RevokeAccess`
Event: True | || -| `SetState`
Event: True |`PATCH` /traitregistrations(*traitregistrationid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || -| `Update`
Event: True |`PATCH` /traitregistrations(*traitregistrationid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `SetState`
Event: True |`PATCH` /taggedflowsessions(*taggedflowsessionid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /taggedflowsessions(*taggedflowsessionid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| | `UpdateMultiple`
Event: True | || -| `Upsert`
Event: False |`PATCH` /traitregistrations(*traitregistrationid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `Upsert`
Event: False |`PATCH` /taggedflowsessions(*taggedflowsessionid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || | `UpsertMultiple`
Event: False | || - -## Events - -The following table lists the events for the Trait Registration (TraitRegistration) table. -Events are messages that exist so that you can subscribe to them. Unless you added the event, you shouldn't invoke the message, only subscribe to it. - -|Name|Web API Operation |SDK for .NET | -| ---- | ----- |----- | -| `BulkRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| -| `PurgeRetainedContent`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| -| `Retain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| -| `RollbackRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| -| `ValidateRetentionConfig`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| - ## Properties -The following table lists selected properties for the Trait Registration (TraitRegistration) table. +The following table lists selected properties for the Tagged Flow Session (taggedflowsession) table. |Property|Value| | --- | --- | -| **DisplayName** | **Trait Registration** | -| **DisplayCollectionName** | **Trait Registrations** | -| **SchemaName** | `TraitRegistration` | -| **CollectionSchemaName** | `TraitRegistrations` | -| **EntitySetName** | `traitregistrations`| -| **LogicalName** | `traitregistration` | -| **LogicalCollectionName** | `traitregistrations` | -| **PrimaryIdAttribute** | `traitregistrationid` | -| **PrimaryNameAttribute** |`traitname` | +| **DisplayName** | **Tagged Flow Session** | +| **DisplayCollectionName** | **Tagged Flow Sessions** | +| **SchemaName** | `taggedflowsession` | +| **CollectionSchemaName** | `taggedflowsessions` | +| **EntitySetName** | `taggedflowsessions`| +| **LogicalName** | `taggedflowsession` | +| **LogicalCollectionName** | `taggedflowsessions` | +| **PrimaryIdAttribute** | `taggedflowsessionid` | +| **PrimaryNameAttribute** |`name` | | **TableType** | `Standard` | | **OwnershipType** | `UserOwned` | @@ -76,17 +61,33 @@ The following table lists selected properties for the Trait Registration (TraitR These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. +- [FlowSession](#BKMK_FlowSession) - [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [IsCustomizable](#BKMK_IsCustomizable) +- [Name](#BKMK_Name) - [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) - [OwnerId](#BKMK_OwnerId) - [OwnerIdType](#BKMK_OwnerIdType) - [statecode](#BKMK_statecode) - [statuscode](#BKMK_statuscode) +- [Tag](#BKMK_Tag) +- [taggedflowsessionId](#BKMK_taggedflowsessionId) - [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) -- [TraitName](#BKMK_TraitName) -- [TraitRegistrationId](#BKMK_TraitRegistrationId) - [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) +### FlowSession + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Flow Session**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`flowsession`| +|RequiredLevel|ApplicationRequired| +|Type|Lookup| +|Targets|flowsession| + ### ImportSequenceNumber |Property|Value| @@ -101,6 +102,35 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |MaxValue|2147483647| |MinValue|-2147483648| +### IsCustomizable + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Is Customizable**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`iscustomizable`| +|RequiredLevel|SystemRequired| +|Type|ManagedProperty| + +### Name + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`name`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|850| + ### OverriddenCreatedOn |Property|Value| @@ -147,7 +177,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**Status of the Trait Registration**| +|Description|**Status of the Tagged Flow Session**| |DisplayName|**Status**| |IsValidForForm|True| |IsValidForRead|True| @@ -155,7 +185,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |RequiredLevel|SystemRequired| |Type|State| |DefaultFormValue|| -|GlobalChoiceName|`traitregistration_statecode`| +|GlobalChoiceName|`taggedflowsession_statecode`| #### statecode Choices/Options @@ -168,7 +198,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Property|Value| |---|---| -|Description|**Reason for the status of the Trait Registration**| +|Description|**Reason for the status of the Tagged Flow Session**| |DisplayName|**Status Reason**| |IsValidForForm|True| |IsValidForRead|True| @@ -176,7 +206,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |RequiredLevel|None| |Type|Status| |DefaultFormValue|| -|GlobalChoiceName|`traitregistration_statuscode`| +|GlobalChoiceName|`taggedflowsession_statuscode`| #### statuscode Choices/Options @@ -185,49 +215,45 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |1|Label: **Active**
State:0
TransitionData: None| |2|Label: **Inactive**
State:1
TransitionData: None| -### TimeZoneRuleVersionNumber - -|Property|Value| -|---|---| -|Description|**For internal use only.**| -|DisplayName|**Time Zone Rule Version Number**| -|IsValidForForm|False| -|IsValidForRead|True| -|LogicalName|`timezoneruleversionnumber`| -|RequiredLevel|None| -|Type|Integer| -|MaxValue|2147483647| -|MinValue|-1| - -### TraitName +### Tag |Property|Value| |---|---| |Description|| -|DisplayName|**Trait Name**| +|DisplayName|**Tag**| |IsValidForForm|True| |IsValidForRead|True| -|LogicalName|`traitname`| +|LogicalName|`tag`| |RequiredLevel|ApplicationRequired| -|Type|String| -|Format|Text| -|FormatName|Text| -|ImeMode|Auto| -|IsLocalizable|False| -|MaxLength|100| +|Type|Lookup| +|Targets|tag| -### TraitRegistrationId +### taggedflowsessionId |Property|Value| |---|---| |Description|**Unique identifier for entity instances**| -|DisplayName|**TraitRegistration**| +|DisplayName|**Tagged Flow Session**| |IsValidForForm|False| |IsValidForRead|True| -|LogicalName|`traitregistrationid`| +|LogicalName|`taggedflowsessionid`| |RequiredLevel|SystemRequired| |Type|Uniqueidentifier| +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + ### UTCConversionTimeZoneCode |Property|Value| @@ -247,19 +273,60 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. +- [ComponentIdUnique](#BKMK_ComponentIdUnique) +- [ComponentState](#BKMK_ComponentState) - [CreatedBy](#BKMK_CreatedBy) - [CreatedOn](#BKMK_CreatedOn) - [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [IsManaged](#BKMK_IsManaged) - [ModifiedBy](#BKMK_ModifiedBy) - [ModifiedOn](#BKMK_ModifiedOn) - [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OverwriteTime](#BKMK_OverwriteTime) - [OwnerIdName](#BKMK_OwnerIdName) - [OwnerIdYomiName](#BKMK_OwnerIdYomiName) - [OwningBusinessUnit](#BKMK_OwningBusinessUnit) - [OwningTeam](#BKMK_OwningTeam) - [OwningUser](#BKMK_OwningUser) +- [SolutionId](#BKMK_SolutionId) +- [SupportingSolutionId](#BKMK_SupportingSolutionId) - [VersionNumber](#BKMK_VersionNumber) +### ComponentIdUnique + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Row id unique**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentidunique`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### ComponentState + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Component State**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentstate`| +|RequiredLevel|SystemRequired| +|Type|Picklist| +|DefaultFormValue|| +|GlobalChoiceName|`componentstate`| + +#### ComponentState Choices/Options + +|Value|Label| +|---|---| +|0|**Published**| +|1|**Unpublished**| +|2|**Deleted**| +|3|**Deleted Unpublished**| + ### CreatedBy |Property|Value| @@ -303,6 +370,22 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |Type|Lookup| |Targets|systemuser| +### IsManaged + +|Property|Value| +|---|---| +|Description|**Indicates whether the solution component is part of a managed solution.**| +|DisplayName|**Is Managed**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`ismanaged`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`ismanaged`| +|DefaultValue|False| +|True Label|Managed| +|False Label|Unmanaged| + ### ModifiedBy |Property|Value| @@ -346,6 +429,23 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |Type|Lookup| |Targets|systemuser| +### OverwriteTime + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Record Overwrite Time**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overwritetime`| +|RequiredLevel|SystemRequired| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + ### OwnerIdName |Property|Value| @@ -419,6 +519,30 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |Type|Lookup| |Targets|systemuser| +### SolutionId + +|Property|Value| +|---|---| +|Description|**Unique identifier of the associated solution.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`solutionid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### SupportingSolutionId + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|False| +|LogicalName|`supportingsolutionid`| +|RequiredLevel|None| +|Type|Uniqueidentifier| + ### VersionNumber |Property|Value| @@ -437,18 +561,20 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali These relationships are many-to-one. Listed by **SchemaName**. -- [business_unit_traitregistration](#BKMK_business_unit_traitregistration) -- [lk_traitregistration_createdby](#BKMK_lk_traitregistration_createdby) -- [lk_traitregistration_createdonbehalfby](#BKMK_lk_traitregistration_createdonbehalfby) -- [lk_traitregistration_modifiedby](#BKMK_lk_traitregistration_modifiedby) -- [lk_traitregistration_modifiedonbehalfby](#BKMK_lk_traitregistration_modifiedonbehalfby) -- [owner_traitregistration](#BKMK_owner_traitregistration) -- [team_traitregistration](#BKMK_team_traitregistration) -- [user_traitregistration](#BKMK_user_traitregistration) +- [business_unit_taggedflowsession](#BKMK_business_unit_taggedflowsession) +- [lk_taggedflowsession_createdby](#BKMK_lk_taggedflowsession_createdby) +- [lk_taggedflowsession_createdonbehalfby](#BKMK_lk_taggedflowsession_createdonbehalfby) +- [lk_taggedflowsession_modifiedby](#BKMK_lk_taggedflowsession_modifiedby) +- [lk_taggedflowsession_modifiedonbehalfby](#BKMK_lk_taggedflowsession_modifiedonbehalfby) +- [owner_taggedflowsession](#BKMK_owner_taggedflowsession) +- [taggedflowsession_FlowSession_flowsession](#BKMK_taggedflowsession_FlowSession_flowsession) +- [taggedflowsession_tag_tag](#BKMK_taggedflowsession_tag_tag) +- [team_taggedflowsession](#BKMK_team_taggedflowsession) +- [user_taggedflowsession](#BKMK_user_taggedflowsession) -### business_unit_traitregistration +### business_unit_taggedflowsession -One-To-Many Relationship: [businessunit business_unit_traitregistration](businessunit.md#BKMK_business_unit_traitregistration) +One-To-Many Relationship: [businessunit business_unit_taggedflowsession](businessunit.md#BKMK_business_unit_taggedflowsession) |Property|Value| |---|---| @@ -459,9 +585,9 @@ One-To-Many Relationship: [businessunit business_unit_traitregistration](busines |IsHierarchical|| |CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### lk_traitregistration_createdby +### lk_taggedflowsession_createdby -One-To-Many Relationship: [systemuser lk_traitregistration_createdby](systemuser.md#BKMK_lk_traitregistration_createdby) +One-To-Many Relationship: [systemuser lk_taggedflowsession_createdby](systemuser.md#BKMK_lk_taggedflowsession_createdby) |Property|Value| |---|---| @@ -472,9 +598,9 @@ One-To-Many Relationship: [systemuser lk_traitregistration_createdby](systemuser |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### lk_traitregistration_createdonbehalfby +### lk_taggedflowsession_createdonbehalfby -One-To-Many Relationship: [systemuser lk_traitregistration_createdonbehalfby](systemuser.md#BKMK_lk_traitregistration_createdonbehalfby) +One-To-Many Relationship: [systemuser lk_taggedflowsession_createdonbehalfby](systemuser.md#BKMK_lk_taggedflowsession_createdonbehalfby) |Property|Value| |---|---| @@ -485,9 +611,9 @@ One-To-Many Relationship: [systemuser lk_traitregistration_createdonbehalfby](sy |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### lk_traitregistration_modifiedby +### lk_taggedflowsession_modifiedby -One-To-Many Relationship: [systemuser lk_traitregistration_modifiedby](systemuser.md#BKMK_lk_traitregistration_modifiedby) +One-To-Many Relationship: [systemuser lk_taggedflowsession_modifiedby](systemuser.md#BKMK_lk_taggedflowsession_modifiedby) |Property|Value| |---|---| @@ -498,9 +624,9 @@ One-To-Many Relationship: [systemuser lk_traitregistration_modifiedby](systemuse |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### lk_traitregistration_modifiedonbehalfby +### lk_taggedflowsession_modifiedonbehalfby -One-To-Many Relationship: [systemuser lk_traitregistration_modifiedonbehalfby](systemuser.md#BKMK_lk_traitregistration_modifiedonbehalfby) +One-To-Many Relationship: [systemuser lk_taggedflowsession_modifiedonbehalfby](systemuser.md#BKMK_lk_taggedflowsession_modifiedonbehalfby) |Property|Value| |---|---| @@ -511,9 +637,9 @@ One-To-Many Relationship: [systemuser lk_traitregistration_modifiedonbehalfby](s |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### owner_traitregistration +### owner_taggedflowsession -One-To-Many Relationship: [owner owner_traitregistration](owner.md#BKMK_owner_traitregistration) +One-To-Many Relationship: [owner owner_taggedflowsession](owner.md#BKMK_owner_taggedflowsession) |Property|Value| |---|---| @@ -524,9 +650,35 @@ One-To-Many Relationship: [owner owner_traitregistration](owner.md#BKMK_owner_tr |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### team_traitregistration +### taggedflowsession_FlowSession_flowsession -One-To-Many Relationship: [team team_traitregistration](team.md#BKMK_team_traitregistration) +One-To-Many Relationship: [flowsession taggedflowsession_FlowSession_flowsession](flowsession.md#BKMK_taggedflowsession_FlowSession_flowsession) + +|Property|Value| +|---|---| +|ReferencedEntity|`flowsession`| +|ReferencedAttribute|`flowsessionid`| +|ReferencingAttribute|`flowsession`| +|ReferencingEntityNavigationPropertyName|`FlowSession`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### taggedflowsession_tag_tag + +One-To-Many Relationship: [tag taggedflowsession_tag_tag](tag.md#BKMK_taggedflowsession_tag_tag) + +|Property|Value| +|---|---| +|ReferencedEntity|`tag`| +|ReferencedAttribute|`tagid`| +|ReferencingAttribute|`tag`| +|ReferencingEntityNavigationPropertyName|`tag`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### team_taggedflowsession + +One-To-Many Relationship: [team team_taggedflowsession](team.md#BKMK_team_taggedflowsession) |Property|Value| |---|---| @@ -537,9 +689,9 @@ One-To-Many Relationship: [team team_traitregistration](team.md#BKMK_team_traitr |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| -### user_traitregistration +### user_taggedflowsession -One-To-Many Relationship: [systemuser user_traitregistration](systemuser.md#BKMK_user_traitregistration) +One-To-Many Relationship: [systemuser user_taggedflowsession](systemuser.md#BKMK_user_taggedflowsession) |Property|Value| |---|---| @@ -555,95 +707,82 @@ One-To-Many Relationship: [systemuser user_traitregistration](systemuser.md#BKMK These relationships are one-to-many. Listed by **SchemaName**. -- [processorregistration_traitregistration_traitname](#BKMK_processorregistration_traitregistration_traitname) -- [traitregistration_AsyncOperations](#BKMK_traitregistration_AsyncOperations) -- [traitregistration_BulkDeleteFailures](#BKMK_traitregistration_BulkDeleteFailures) -- [traitregistration_MailboxTrackingFolders](#BKMK_traitregistration_MailboxTrackingFolders) -- [traitregistration_PrincipalObjectAttributeAccesses](#BKMK_traitregistration_PrincipalObjectAttributeAccesses) -- [traitregistration_ProcessSession](#BKMK_traitregistration_ProcessSession) -- [traitregistration_SyncErrors](#BKMK_traitregistration_SyncErrors) +- [taggedflowsession_AsyncOperations](#BKMK_taggedflowsession_AsyncOperations) +- [taggedflowsession_BulkDeleteFailures](#BKMK_taggedflowsession_BulkDeleteFailures) +- [taggedflowsession_MailboxTrackingFolders](#BKMK_taggedflowsession_MailboxTrackingFolders) +- [taggedflowsession_PrincipalObjectAttributeAccesses](#BKMK_taggedflowsession_PrincipalObjectAttributeAccesses) +- [taggedflowsession_ProcessSession](#BKMK_taggedflowsession_ProcessSession) +- [taggedflowsession_SyncErrors](#BKMK_taggedflowsession_SyncErrors) -### processorregistration_traitregistration_traitname +### taggedflowsession_AsyncOperations -Many-To-One Relationship: [processorregistration processorregistration_traitregistration_traitname](processorregistration.md#BKMK_processorregistration_traitregistration_traitname) - -|Property|Value| -|---|---| -|ReferencingEntity|`processorregistration`| -|ReferencingAttribute|`traitname`| -|ReferencedEntityNavigationPropertyName|`processorregistration_traitregistration_traitname`| -|IsCustomizable|`False`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - -### traitregistration_AsyncOperations - -Many-To-One Relationship: [asyncoperation traitregistration_AsyncOperations](asyncoperation.md#BKMK_traitregistration_AsyncOperations) +Many-To-One Relationship: [asyncoperation taggedflowsession_AsyncOperations](asyncoperation.md#BKMK_taggedflowsession_AsyncOperations) |Property|Value| |---|---| |ReferencingEntity|`asyncoperation`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`traitregistration_AsyncOperations`| +|ReferencedEntityNavigationPropertyName|`taggedflowsession_AsyncOperations`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### traitregistration_BulkDeleteFailures +### taggedflowsession_BulkDeleteFailures -Many-To-One Relationship: [bulkdeletefailure traitregistration_BulkDeleteFailures](bulkdeletefailure.md#BKMK_traitregistration_BulkDeleteFailures) +Many-To-One Relationship: [bulkdeletefailure taggedflowsession_BulkDeleteFailures](bulkdeletefailure.md#BKMK_taggedflowsession_BulkDeleteFailures) |Property|Value| |---|---| |ReferencingEntity|`bulkdeletefailure`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`traitregistration_BulkDeleteFailures`| +|ReferencedEntityNavigationPropertyName|`taggedflowsession_BulkDeleteFailures`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### traitregistration_MailboxTrackingFolders +### taggedflowsession_MailboxTrackingFolders -Many-To-One Relationship: [mailboxtrackingfolder traitregistration_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_traitregistration_MailboxTrackingFolders) +Many-To-One Relationship: [mailboxtrackingfolder taggedflowsession_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_taggedflowsession_MailboxTrackingFolders) |Property|Value| |---|---| |ReferencingEntity|`mailboxtrackingfolder`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`traitregistration_MailboxTrackingFolders`| +|ReferencedEntityNavigationPropertyName|`taggedflowsession_MailboxTrackingFolders`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### traitregistration_PrincipalObjectAttributeAccesses +### taggedflowsession_PrincipalObjectAttributeAccesses -Many-To-One Relationship: [principalobjectattributeaccess traitregistration_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_traitregistration_PrincipalObjectAttributeAccesses) +Many-To-One Relationship: [principalobjectattributeaccess taggedflowsession_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_taggedflowsession_PrincipalObjectAttributeAccesses) |Property|Value| |---|---| |ReferencingEntity|`principalobjectattributeaccess`| |ReferencingAttribute|`objectid`| -|ReferencedEntityNavigationPropertyName|`traitregistration_PrincipalObjectAttributeAccesses`| +|ReferencedEntityNavigationPropertyName|`taggedflowsession_PrincipalObjectAttributeAccesses`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### traitregistration_ProcessSession +### taggedflowsession_ProcessSession -Many-To-One Relationship: [processsession traitregistration_ProcessSession](processsession.md#BKMK_traitregistration_ProcessSession) +Many-To-One Relationship: [processsession taggedflowsession_ProcessSession](processsession.md#BKMK_taggedflowsession_ProcessSession) |Property|Value| |---|---| |ReferencingEntity|`processsession`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`traitregistration_ProcessSession`| +|ReferencedEntityNavigationPropertyName|`taggedflowsession_ProcessSession`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### traitregistration_SyncErrors +### taggedflowsession_SyncErrors -Many-To-One Relationship: [syncerror traitregistration_SyncErrors](syncerror.md#BKMK_traitregistration_SyncErrors) +Many-To-One Relationship: [syncerror taggedflowsession_SyncErrors](syncerror.md#BKMK_taggedflowsession_SyncErrors) |Property|Value| |---|---| |ReferencingEntity|`syncerror`| |ReferencingAttribute|`regardingobjectid`| -|ReferencedEntityNavigationPropertyName|`traitregistration_SyncErrors`| +|ReferencedEntityNavigationPropertyName|`taggedflowsession_SyncErrors`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| @@ -653,4 +792,4 @@ Many-To-One Relationship: [syncerror traitregistration_SyncErrors](syncerror.md# [Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) [Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) - + diff --git a/powerapps-docs/developer/data-platform/reference/entities/taggedprocess.md b/powerapps-docs/developer/data-platform/reference/entities/taggedprocess.md new file mode 100644 index 0000000000..7e344a3626 --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/taggedprocess.md @@ -0,0 +1,795 @@ +--- +title: "Tagged Process (taggedprocess) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the Tagged Process (taggedprocess) table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# Tagged Process (taggedprocess) table/entity reference (Microsoft Dataverse) + + + +## Messages + +The following table lists the messages for the Tagged Process (taggedprocess) table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Assign`
Event: True |`PATCH` /taggedprocesses(*taggedprocessid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /taggedprocesses
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /taggedprocesses(*taggedprocessid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `GrantAccess`
Event: True | || +| `IsValidStateTransition`
Event: False | || +| `ModifyAccess`
Event: True | || +| `Retrieve`
Event: True |`GET` /taggedprocesses(*taggedprocessid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /taggedprocesses
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `RetrievePrincipalAccess`
Event: True | || +| `RetrieveSharedPrincipalsAndAccess`
Event: True | || +| `RevokeAccess`
Event: True | || +| `SetState`
Event: True |`PATCH` /taggedprocesses(*taggedprocessid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /taggedprocesses(*taggedprocessid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /taggedprocesses(*taggedprocessid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + +## Properties + +The following table lists selected properties for the Tagged Process (taggedprocess) table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **Tagged Process** | +| **DisplayCollectionName** | **Tagged Processes** | +| **SchemaName** | `taggedprocess` | +| **CollectionSchemaName** | `taggedprocesses` | +| **EntitySetName** | `taggedprocesses`| +| **LogicalName** | `taggedprocess` | +| **LogicalCollectionName** | `taggedprocesses` | +| **PrimaryIdAttribute** | `taggedprocessid` | +| **PrimaryNameAttribute** |`name` | +| **TableType** | `Standard` | +| **OwnershipType** | `UserOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [IsCustomizable](#BKMK_IsCustomizable) +- [Name](#BKMK_Name) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [Process](#BKMK_Process) +- [statecode](#BKMK_statecode) +- [statuscode](#BKMK_statuscode) +- [Tag](#BKMK_Tag) +- [taggedprocessId](#BKMK_taggedprocessId) +- [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### IsCustomizable + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Is Customizable**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`iscustomizable`| +|RequiredLevel|SystemRequired| +|Type|ManagedProperty| + +### Name + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`name`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|850| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### Process + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Process**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`process`| +|RequiredLevel|ApplicationRequired| +|Type|Lookup| +|Targets|workflow| + +### statecode + +|Property|Value| +|---|---| +|Description|**Status of the Tagged Process**| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statecode`| +|RequiredLevel|SystemRequired| +|Type|State| +|DefaultFormValue|| +|GlobalChoiceName|`taggedprocess_statecode`| + +#### statecode Choices/Options + +|Value|Details| +|---|---| +|0|Label: **Active**
DefaultStatus: 1
InvariantName: `Active`| +|1|Label: **Inactive**
DefaultStatus: 2
InvariantName: `Inactive`| + +### statuscode + +|Property|Value| +|---|---| +|Description|**Reason for the status of the Tagged Process**| +|DisplayName|**Status Reason**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Status| +|DefaultFormValue|| +|GlobalChoiceName|`taggedprocess_statuscode`| + +#### statuscode Choices/Options + +|Value|Details| +|---|---| +|1|Label: **Active**
State:0
TransitionData: None| +|2|Label: **Inactive**
State:1
TransitionData: None| + +### Tag + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Tag**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`tag`| +|RequiredLevel|ApplicationRequired| +|Type|Lookup| +|Targets|tag| + +### taggedprocessId + +|Property|Value| +|---|---| +|Description|**Unique identifier for entity instances**| +|DisplayName|**Tagged Process**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`taggedprocessid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### UTCConversionTimeZoneCode + +|Property|Value| +|---|---| +|Description|**Time zone code that was in use when the record was created.**| +|DisplayName|**UTC Conversion Time Zone Code**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`utcconversiontimezonecode`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [ComponentIdUnique](#BKMK_ComponentIdUnique) +- [ComponentState](#BKMK_ComponentState) +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [IsManaged](#BKMK_IsManaged) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OverwriteTime](#BKMK_OverwriteTime) +- [OwnerIdName](#BKMK_OwnerIdName) +- [OwnerIdYomiName](#BKMK_OwnerIdYomiName) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) +- [OwningTeam](#BKMK_OwningTeam) +- [OwningUser](#BKMK_OwningUser) +- [SolutionId](#BKMK_SolutionId) +- [SupportingSolutionId](#BKMK_SupportingSolutionId) +- [VersionNumber](#BKMK_VersionNumber) + +### ComponentIdUnique + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Row id unique**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentidunique`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### ComponentState + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Component State**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentstate`| +|RequiredLevel|SystemRequired| +|Type|Picklist| +|DefaultFormValue|| +|GlobalChoiceName|`componentstate`| + +#### ComponentState Choices/Options + +|Value|Label| +|---|---| +|0|**Published**| +|1|**Unpublished**| +|2|**Deleted**| +|3|**Deleted Unpublished**| + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### IsManaged + +|Property|Value| +|---|---| +|Description|**Indicates whether the solution component is part of a managed solution.**| +|DisplayName|**Is Managed**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`ismanaged`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`ismanaged`| +|DefaultValue|False| +|True Label|Managed| +|False Label|Unmanaged| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### OverwriteTime + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Record Overwrite Time**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overwritetime`| +|RequiredLevel|SystemRequired| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerIdName + +|Property|Value| +|---|---| +|Description|**Name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwnerIdYomiName + +|Property|Value| +|---|---| +|Description|**Yomi name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridyominame`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|SystemRequired| +|Type|Lookup| +|Targets|businessunit| + +### OwningTeam + +|Property|Value| +|---|---| +|Description|**Unique identifier for the team that owns the record.**| +|DisplayName|**Owning Team**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningteam`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|team| + +### OwningUser + +|Property|Value| +|---|---| +|Description|**Unique identifier for the user that owns the record.**| +|DisplayName|**Owning User**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owninguser`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### SolutionId + +|Property|Value| +|---|---| +|Description|**Unique identifier of the associated solution.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`solutionid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### SupportingSolutionId + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|False| +|LogicalName|`supportingsolutionid`| +|RequiredLevel|None| +|Type|Uniqueidentifier| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [business_unit_taggedprocess](#BKMK_business_unit_taggedprocess) +- [lk_taggedprocess_createdby](#BKMK_lk_taggedprocess_createdby) +- [lk_taggedprocess_createdonbehalfby](#BKMK_lk_taggedprocess_createdonbehalfby) +- [lk_taggedprocess_modifiedby](#BKMK_lk_taggedprocess_modifiedby) +- [lk_taggedprocess_modifiedonbehalfby](#BKMK_lk_taggedprocess_modifiedonbehalfby) +- [owner_taggedprocess](#BKMK_owner_taggedprocess) +- [taggedprocess_Process_workflow](#BKMK_taggedprocess_Process_workflow) +- [taggedprocess_tag_tag](#BKMK_taggedprocess_tag_tag) +- [team_taggedprocess](#BKMK_team_taggedprocess) +- [user_taggedprocess](#BKMK_user_taggedprocess) + +### business_unit_taggedprocess + +One-To-Many Relationship: [businessunit business_unit_taggedprocess](businessunit.md#BKMK_business_unit_taggedprocess) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessunit`| +|ReferencedAttribute|`businessunitid`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencingEntityNavigationPropertyName|`owningbusinessunit`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_taggedprocess_createdby + +One-To-Many Relationship: [systemuser lk_taggedprocess_createdby](systemuser.md#BKMK_lk_taggedprocess_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_taggedprocess_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_taggedprocess_createdonbehalfby](systemuser.md#BKMK_lk_taggedprocess_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_taggedprocess_modifiedby + +One-To-Many Relationship: [systemuser lk_taggedprocess_modifiedby](systemuser.md#BKMK_lk_taggedprocess_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_taggedprocess_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_taggedprocess_modifiedonbehalfby](systemuser.md#BKMK_lk_taggedprocess_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### owner_taggedprocess + +One-To-Many Relationship: [owner owner_taggedprocess](owner.md#BKMK_owner_taggedprocess) + +|Property|Value| +|---|---| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### taggedprocess_Process_workflow + +One-To-Many Relationship: [workflow taggedprocess_Process_workflow](workflow.md#BKMK_taggedprocess_Process_workflow) + +|Property|Value| +|---|---| +|ReferencedEntity|`workflow`| +|ReferencedAttribute|`workflowid`| +|ReferencingAttribute|`process`| +|ReferencingEntityNavigationPropertyName|`Process`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### taggedprocess_tag_tag + +One-To-Many Relationship: [tag taggedprocess_tag_tag](tag.md#BKMK_taggedprocess_tag_tag) + +|Property|Value| +|---|---| +|ReferencedEntity|`tag`| +|ReferencedAttribute|`tagid`| +|ReferencingAttribute|`tag`| +|ReferencingEntityNavigationPropertyName|`tag`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### team_taggedprocess + +One-To-Many Relationship: [team team_taggedprocess](team.md#BKMK_team_taggedprocess) + +|Property|Value| +|---|---| +|ReferencedEntity|`team`| +|ReferencedAttribute|`teamid`| +|ReferencingAttribute|`owningteam`| +|ReferencingEntityNavigationPropertyName|`owningteam`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### user_taggedprocess + +One-To-Many Relationship: [systemuser user_taggedprocess](systemuser.md#BKMK_user_taggedprocess) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`owninguser`| +|ReferencingEntityNavigationPropertyName|`owninguser`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +- [taggedprocess_AsyncOperations](#BKMK_taggedprocess_AsyncOperations) +- [taggedprocess_BulkDeleteFailures](#BKMK_taggedprocess_BulkDeleteFailures) +- [taggedprocess_MailboxTrackingFolders](#BKMK_taggedprocess_MailboxTrackingFolders) +- [taggedprocess_PrincipalObjectAttributeAccesses](#BKMK_taggedprocess_PrincipalObjectAttributeAccesses) +- [taggedprocess_ProcessSession](#BKMK_taggedprocess_ProcessSession) +- [taggedprocess_SyncErrors](#BKMK_taggedprocess_SyncErrors) + +### taggedprocess_AsyncOperations + +Many-To-One Relationship: [asyncoperation taggedprocess_AsyncOperations](asyncoperation.md#BKMK_taggedprocess_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencingEntity|`asyncoperation`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`taggedprocess_AsyncOperations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### taggedprocess_BulkDeleteFailures + +Many-To-One Relationship: [bulkdeletefailure taggedprocess_BulkDeleteFailures](bulkdeletefailure.md#BKMK_taggedprocess_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencingEntity|`bulkdeletefailure`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`taggedprocess_BulkDeleteFailures`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### taggedprocess_MailboxTrackingFolders + +Many-To-One Relationship: [mailboxtrackingfolder taggedprocess_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_taggedprocess_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencingEntity|`mailboxtrackingfolder`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`taggedprocess_MailboxTrackingFolders`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### taggedprocess_PrincipalObjectAttributeAccesses + +Many-To-One Relationship: [principalobjectattributeaccess taggedprocess_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_taggedprocess_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencingEntity|`principalobjectattributeaccess`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`taggedprocess_PrincipalObjectAttributeAccesses`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### taggedprocess_ProcessSession + +Many-To-One Relationship: [processsession taggedprocess_ProcessSession](processsession.md#BKMK_taggedprocess_ProcessSession) + +|Property|Value| +|---|---| +|ReferencingEntity|`processsession`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`taggedprocess_ProcessSession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### taggedprocess_SyncErrors + +Many-To-One Relationship: [syncerror taggedprocess_SyncErrors](syncerror.md#BKMK_taggedprocess_SyncErrors) + +|Property|Value| +|---|---| +|ReferencingEntity|`syncerror`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`taggedprocess_SyncErrors`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/team.md b/powerapps-docs/developer/data-platform/reference/entities/team.md index 0439552056..c27f2a8d85 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/team.md +++ b/powerapps-docs/developer/data-platform/reference/entities/team.md @@ -844,7 +844,6 @@ These relationships are one-to-many. Listed by **SchemaName**. - [team_activityfileattachment](#BKMK_team_activityfileattachment) - [team_adx_invitation](#BKMK_team_adx_invitation) - [team_adx_setting](#BKMK_team_adx_setting) -- [team_aiinsightcard](#BKMK_team_aiinsightcard) - [team_aiplugin](#BKMK_team_aiplugin) - [team_aipluginauth](#BKMK_team_aipluginauth) - [team_aipluginconversationstarter](#BKMK_team_aipluginconversationstarter) @@ -861,12 +860,17 @@ These relationships are one-to-many. Listed by **SchemaName**. - [team_annotations](#BKMK_team_annotations) - [team_appnotification](#BKMK_team_appnotification) - [team_appointment](#BKMK_team_appointment) +- [team_approvalprocess](#BKMK_team_approvalprocess) +- [team_approvalstageapproval](#BKMK_team_approvalstageapproval) +- [team_approvalstagecondition](#BKMK_team_approvalstagecondition) +- [team_approvalstageorder](#BKMK_team_approvalstageorder) - [team_asyncoperation](#BKMK_team_asyncoperation) - [Team_AsyncOperations](#BKMK_Team_AsyncOperations) - [team_bot](#BKMK_team_bot) - [team_botcomponent](#BKMK_team_botcomponent) - [team_botcomponentcollection](#BKMK_team_botcomponentcollection) - [Team_BulkDeleteFailures](#BKMK_Team_BulkDeleteFailures) +- [team_businessprocess](#BKMK_team_businessprocess) - [team_card](#BKMK_team_card) - [team_certificatecredential](#BKMK_team_certificatecredential) - [team_componentversion](#BKMK_team_componentversion) @@ -905,6 +909,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [team_featurecontrolsetting](#BKMK_team_featurecontrolsetting) - [team_federatedknowledgeconfiguration](#BKMK_team_federatedknowledgeconfiguration) - [team_federatedknowledgeentityconfiguration](#BKMK_team_federatedknowledgeentityconfiguration) +- [team_flowaggregation](#BKMK_team_flowaggregation) - [team_flowcapacityassignment](#BKMK_team_flowcapacityassignment) - [team_flowcredentialapplication](#BKMK_team_flowcredentialapplication) - [team_flowevent](#BKMK_team_flowevent) @@ -925,6 +930,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [team_ImportLogs](#BKMK_team_ImportLogs) - [team_ImportMaps](#BKMK_team_ImportMaps) - [team_Imports](#BKMK_team_Imports) +- [team_indexedtrait](#BKMK_team_indexedtrait) - [team_interactionforemail](#BKMK_team_interactionforemail) - [team_keyvaultreference](#BKMK_team_keyvaultreference) - [team_knowledgearticle](#BKMK_team_knowledgearticle) @@ -939,6 +945,9 @@ These relationships are one-to-many. Listed by **SchemaName**. - [team_msdyn_aibfeedbackloop](#BKMK_team_msdyn_aibfeedbackloop) - [team_msdyn_aibfile](#BKMK_team_msdyn_aibfile) - [team_msdyn_aibfileattacheddata](#BKMK_team_msdyn_aibfileattacheddata) +- [team_msdyn_aidataprocessingevent](#BKMK_team_msdyn_aidataprocessingevent) +- [team_msdyn_aievaluationconfiguration](#BKMK_team_msdyn_aievaluationconfiguration) +- [team_msdyn_aievaluationrun](#BKMK_team_msdyn_aievaluationrun) - [team_msdyn_aievent](#BKMK_team_msdyn_aievent) - [team_msdyn_aifptrainingdocument](#BKMK_team_msdyn_aifptrainingdocument) - [team_msdyn_aimodel](#BKMK_team_msdyn_aimodel) @@ -947,6 +956,11 @@ These relationships are one-to-many. Listed by **SchemaName**. - [team_msdyn_aiodtrainingboundingbox](#BKMK_team_msdyn_aiodtrainingboundingbox) - [team_msdyn_aiodtrainingimage](#BKMK_team_msdyn_aiodtrainingimage) - [team_msdyn_aitemplate](#BKMK_team_msdyn_aitemplate) +- [team_msdyn_aitestcase](#BKMK_team_msdyn_aitestcase) +- [team_msdyn_aitestcasedocument](#BKMK_team_msdyn_aitestcasedocument) +- [team_msdyn_aitestcaseinput](#BKMK_team_msdyn_aitestcaseinput) +- [team_msdyn_aitestrun](#BKMK_team_msdyn_aitestrun) +- [team_msdyn_aitestrunbatch](#BKMK_team_msdyn_aitestrunbatch) - [team_msdyn_analysiscomponent](#BKMK_team_msdyn_analysiscomponent) - [team_msdyn_analysisjob](#BKMK_team_msdyn_analysisjob) - [team_msdyn_analysisoverride](#BKMK_team_msdyn_analysisoverride) @@ -1041,7 +1055,6 @@ These relationships are one-to-many. Listed by **SchemaName**. - [team_principalobjectattributeaccess](#BKMK_team_principalobjectattributeaccess) - [team_principalobjectattributeaccess_principalid](#BKMK_team_principalobjectattributeaccess_principalid) - [team_privilegecheckerrun](#BKMK_team_privilegecheckerrun) -- [team_processorregistration](#BKMK_team_processorregistration) - [team_processsession](#BKMK_team_processsession) - [Team_ProcessSessions](#BKMK_Team_ProcessSessions) - [team_processstageparameter](#BKMK_team_processstageparameter) @@ -1053,11 +1066,11 @@ These relationships are one-to-many. Listed by **SchemaName**. - [team_retentionfailuredetail](#BKMK_team_retentionfailuredetail) - [team_retentionoperation](#BKMK_team_retentionoperation) - [team_retentionsuccessdetail](#BKMK_team_retentionsuccessdetail) +- [team_savingrule](#BKMK_team_savingrule) - [team_sharepointdocumentlocation](#BKMK_team_sharepointdocumentlocation) - [team_sharepointsite](#BKMK_team_sharepointsite) - [team_sideloadedaiplugin](#BKMK_team_sideloadedaiplugin) - [team_signal](#BKMK_team_signal) -- [team_signalregistration](#BKMK_team_signalregistration) - [team_slaBase](#BKMK_team_slaBase) - [team_socialactivity](#BKMK_team_socialactivity) - [team_solutioncomponentbatchconfiguration](#BKMK_team_solutioncomponentbatchconfiguration) @@ -1065,16 +1078,21 @@ These relationships are one-to-many. Listed by **SchemaName**. - [team_synapsedatabase](#BKMK_team_synapsedatabase) - [team_SyncError](#BKMK_team_SyncError) - [Team_SyncErrors](#BKMK_Team_SyncErrors) +- [team_tag](#BKMK_team_tag) +- [team_taggedflowsession](#BKMK_team_taggedflowsession) +- [team_taggedprocess](#BKMK_team_taggedprocess) - [team_task](#BKMK_team_task) - [team_teammobileofflineprofilemembership_TeamId](#BKMK_team_teammobileofflineprofilemembership_TeamId) - [team_trait](#BKMK_team_trait) -- [team_traitregistration](#BKMK_team_traitregistration) +- [team_unstructuredfilesearchentity](#BKMK_team_unstructuredfilesearchentity) +- [team_unstructuredfilesearchrecord](#BKMK_team_unstructuredfilesearchrecord) - [team_userform](#BKMK_team_userform) - [team_userquery](#BKMK_team_userquery) - [team_userqueryvisualizations](#BKMK_team_userqueryvisualizations) - [team_workflow](#BKMK_team_workflow) - [team_workflowbinary](#BKMK_team_workflowbinary) - [team_workflowlog](#BKMK_team_workflowlog) +- [team_workflowmetadata](#BKMK_team_workflowmetadata) - [team_workqueue](#BKMK_team_workqueue) - [team_workqueueitem](#BKMK_team_workqueueitem) @@ -1198,18 +1216,6 @@ Many-To-One Relationship: [adx_setting team_adx_setting](adx_setting.md#BKMK_tea |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### team_aiinsightcard - -Many-To-One Relationship: [aiinsightcard team_aiinsightcard](aiinsightcard.md#BKMK_team_aiinsightcard) - -|Property|Value| -|---|---| -|ReferencingEntity|`aiinsightcard`| -|ReferencingAttribute|`owningteam`| -|ReferencedEntityNavigationPropertyName|`team_aiinsightcard`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - ### team_aiplugin Many-To-One Relationship: [aiplugin team_aiplugin](aiplugin.md#BKMK_team_aiplugin) @@ -1402,6 +1408,54 @@ Many-To-One Relationship: [appointment team_appointment](appointment.md#BKMK_tea |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### team_approvalprocess + +Many-To-One Relationship: [approvalprocess team_approvalprocess](approvalprocess.md#BKMK_team_approvalprocess) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalprocess`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_approvalprocess`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### team_approvalstageapproval + +Many-To-One Relationship: [approvalstageapproval team_approvalstageapproval](approvalstageapproval.md#BKMK_team_approvalstageapproval) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageapproval`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_approvalstageapproval`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### team_approvalstagecondition + +Many-To-One Relationship: [approvalstagecondition team_approvalstagecondition](approvalstagecondition.md#BKMK_team_approvalstagecondition) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstagecondition`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_approvalstagecondition`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### team_approvalstageorder + +Many-To-One Relationship: [approvalstageorder team_approvalstageorder](approvalstageorder.md#BKMK_team_approvalstageorder) + +|Property|Value| +|---|---| +|ReferencingEntity|`approvalstageorder`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_approvalstageorder`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### team_asyncoperation Many-To-One Relationship: [asyncoperation team_asyncoperation](asyncoperation.md#BKMK_team_asyncoperation) @@ -1474,6 +1528,18 @@ Many-To-One Relationship: [bulkdeletefailure Team_BulkDeleteFailures](bulkdelete |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### team_businessprocess + +Many-To-One Relationship: [businessprocess team_businessprocess](businessprocess.md#BKMK_team_businessprocess) + +|Property|Value| +|---|---| +|ReferencingEntity|`businessprocess`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_businessprocess`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### team_card Many-To-One Relationship: [card team_card](card.md#BKMK_team_card) @@ -1930,6 +1996,18 @@ Many-To-One Relationship: [federatedknowledgeentityconfiguration team_federatedk |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### team_flowaggregation + +Many-To-One Relationship: [flowaggregation team_flowaggregation](flowaggregation.md#BKMK_team_flowaggregation) + +|Property|Value| +|---|---| +|ReferencingEntity|`flowaggregation`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_flowaggregation`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### team_flowcapacityassignment Many-To-One Relationship: [flowcapacityassignment team_flowcapacityassignment](flowcapacityassignment.md#BKMK_team_flowcapacityassignment) @@ -2170,6 +2248,18 @@ Many-To-One Relationship: [import team_Imports](import.md#BKMK_team_Imports) |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### team_indexedtrait + +Many-To-One Relationship: [indexedtrait team_indexedtrait](indexedtrait.md#BKMK_team_indexedtrait) + +|Property|Value| +|---|---| +|ReferencingEntity|`indexedtrait`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_indexedtrait`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### team_interactionforemail Many-To-One Relationship: [interactionforemail team_interactionforemail](interactionforemail.md#BKMK_team_interactionforemail) @@ -2338,6 +2428,42 @@ Many-To-One Relationship: [msdyn_aibfileattacheddata team_msdyn_aibfileattachedd |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### team_msdyn_aidataprocessingevent + +Many-To-One Relationship: [msdyn_aidataprocessingevent team_msdyn_aidataprocessingevent](msdyn_aidataprocessingevent.md#BKMK_team_msdyn_aidataprocessingevent) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aidataprocessingevent`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_msdyn_aidataprocessingevent`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### team_msdyn_aievaluationconfiguration + +Many-To-One Relationship: [msdyn_aievaluationconfiguration team_msdyn_aievaluationconfiguration](msdyn_aievaluationconfiguration.md#BKMK_team_msdyn_aievaluationconfiguration) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aievaluationconfiguration`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_msdyn_aievaluationconfiguration`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### team_msdyn_aievaluationrun + +Many-To-One Relationship: [msdyn_aievaluationrun team_msdyn_aievaluationrun](msdyn_aievaluationrun.md#BKMK_team_msdyn_aievaluationrun) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aievaluationrun`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_msdyn_aievaluationrun`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### team_msdyn_aievent Many-To-One Relationship: [msdyn_aievent team_msdyn_aievent](msdyn_aievent.md#BKMK_team_msdyn_aievent) @@ -2434,6 +2560,66 @@ Many-To-One Relationship: [msdyn_aitemplate team_msdyn_aitemplate](msdyn_aitempl |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### team_msdyn_aitestcase + +Many-To-One Relationship: [msdyn_aitestcase team_msdyn_aitestcase](msdyn_aitestcase.md#BKMK_team_msdyn_aitestcase) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestcase`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_msdyn_aitestcase`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### team_msdyn_aitestcasedocument + +Many-To-One Relationship: [msdyn_aitestcasedocument team_msdyn_aitestcasedocument](msdyn_aitestcasedocument.md#BKMK_team_msdyn_aitestcasedocument) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestcasedocument`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_msdyn_aitestcasedocument`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### team_msdyn_aitestcaseinput + +Many-To-One Relationship: [msdyn_aitestcaseinput team_msdyn_aitestcaseinput](msdyn_aitestcaseinput.md#BKMK_team_msdyn_aitestcaseinput) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestcaseinput`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_msdyn_aitestcaseinput`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### team_msdyn_aitestrun + +Many-To-One Relationship: [msdyn_aitestrun team_msdyn_aitestrun](msdyn_aitestrun.md#BKMK_team_msdyn_aitestrun) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestrun`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_msdyn_aitestrun`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### team_msdyn_aitestrunbatch + +Many-To-One Relationship: [msdyn_aitestrunbatch team_msdyn_aitestrunbatch](msdyn_aitestrunbatch.md#BKMK_team_msdyn_aitestrunbatch) + +|Property|Value| +|---|---| +|ReferencingEntity|`msdyn_aitestrunbatch`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_msdyn_aitestrunbatch`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### team_msdyn_analysiscomponent Many-To-One Relationship: [msdyn_analysiscomponent team_msdyn_analysiscomponent](msdyn_analysiscomponent.md#BKMK_team_msdyn_analysiscomponent) @@ -3562,18 +3748,6 @@ Many-To-One Relationship: [privilegecheckerrun team_privilegecheckerrun](privile |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### team_processorregistration - -Many-To-One Relationship: [processorregistration team_processorregistration](processorregistration.md#BKMK_team_processorregistration) - -|Property|Value| -|---|---| -|ReferencingEntity|`processorregistration`| -|ReferencingAttribute|`owningteam`| -|ReferencedEntityNavigationPropertyName|`team_processorregistration`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - ### team_processsession Many-To-One Relationship: [processsession team_processsession](processsession.md#BKMK_team_processsession) @@ -3706,6 +3880,18 @@ Many-To-One Relationship: [retentionsuccessdetail team_retentionsuccessdetail](r |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### team_savingrule + +Many-To-One Relationship: [savingrule team_savingrule](savingrule.md#BKMK_team_savingrule) + +|Property|Value| +|---|---| +|ReferencingEntity|`savingrule`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_savingrule`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### team_sharepointdocumentlocation Many-To-One Relationship: [sharepointdocumentlocation team_sharepointdocumentlocation](sharepointdocumentlocation.md#BKMK_team_sharepointdocumentlocation) @@ -3754,18 +3940,6 @@ Many-To-One Relationship: [signal team_signal](signal.md#BKMK_team_signal) |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### team_signalregistration - -Many-To-One Relationship: [signalregistration team_signalregistration](signalregistration.md#BKMK_team_signalregistration) - -|Property|Value| -|---|---| -|ReferencingEntity|`signalregistration`| -|ReferencingAttribute|`owningteam`| -|ReferencedEntityNavigationPropertyName|`team_signalregistration`| -|IsCustomizable|`True`| -|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| - ### team_slaBase Many-To-One Relationship: [sla team_slaBase](sla.md#BKMK_team_slaBase) @@ -3850,6 +4024,42 @@ Many-To-One Relationship: [syncerror Team_SyncErrors](syncerror.md#BKMK_Team_Syn |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### team_tag + +Many-To-One Relationship: [tag team_tag](tag.md#BKMK_team_tag) + +|Property|Value| +|---|---| +|ReferencingEntity|`tag`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_tag`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### team_taggedflowsession + +Many-To-One Relationship: [taggedflowsession team_taggedflowsession](taggedflowsession.md#BKMK_team_taggedflowsession) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedflowsession`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_taggedflowsession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### team_taggedprocess + +Many-To-One Relationship: [taggedprocess team_taggedprocess](taggedprocess.md#BKMK_team_taggedprocess) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedprocess`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_taggedprocess`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### team_task Many-To-One Relationship: [task team_task](task.md#BKMK_team_task) @@ -3886,15 +4096,27 @@ Many-To-One Relationship: [trait team_trait](trait.md#BKMK_team_trait) |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| -### team_traitregistration +### team_unstructuredfilesearchentity + +Many-To-One Relationship: [unstructuredfilesearchentity team_unstructuredfilesearchentity](unstructuredfilesearchentity.md#BKMK_team_unstructuredfilesearchentity) + +|Property|Value| +|---|---| +|ReferencingEntity|`unstructuredfilesearchentity`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_unstructuredfilesearchentity`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### team_unstructuredfilesearchrecord -Many-To-One Relationship: [traitregistration team_traitregistration](traitregistration.md#BKMK_team_traitregistration) +Many-To-One Relationship: [unstructuredfilesearchrecord team_unstructuredfilesearchrecord](unstructuredfilesearchrecord.md#BKMK_team_unstructuredfilesearchrecord) |Property|Value| |---|---| -|ReferencingEntity|`traitregistration`| +|ReferencingEntity|`unstructuredfilesearchrecord`| |ReferencingAttribute|`owningteam`| -|ReferencedEntityNavigationPropertyName|`team_traitregistration`| +|ReferencedEntityNavigationPropertyName|`team_unstructuredfilesearchrecord`| |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| @@ -3970,6 +4192,18 @@ Many-To-One Relationship: [workflowlog team_workflowlog](workflowlog.md#BKMK_tea |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### team_workflowmetadata + +Many-To-One Relationship: [workflowmetadata team_workflowmetadata](workflowmetadata.md#BKMK_team_workflowmetadata) + +|Property|Value| +|---|---| +|ReferencingEntity|`workflowmetadata`| +|ReferencingAttribute|`owningteam`| +|ReferencedEntityNavigationPropertyName|`team_workflowmetadata`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### team_workqueue Many-To-One Relationship: [workqueue team_workqueue](workqueue.md#BKMK_team_workqueue) diff --git a/powerapps-docs/developer/data-platform/reference/entities/textdatarecordsindexingstatus.md b/powerapps-docs/developer/data-platform/reference/entities/textdatarecordsindexingstatus.md new file mode 100644 index 0000000000..ded4b8c6e4 --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/textdatarecordsindexingstatus.md @@ -0,0 +1,536 @@ +--- +title: "textdatarecordsindexingstatus table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the textdatarecordsindexingstatus table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# textdatarecordsindexingstatus table/entity reference (Microsoft Dataverse) + +Stores information about unstructured / text data records indexing status + +## Messages + +The following table lists the messages for the textdatarecordsindexingstatus table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /textdatarecordsindexingstatuses
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /textdatarecordsindexingstatuses(*textdatarecordsindexingstatusid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `DeleteMultiple`
Event: True | |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `Retrieve`
Event: True |`GET` /textdatarecordsindexingstatuses(*textdatarecordsindexingstatusid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveEntityChanges`
Event: True | || +| `RetrieveMultiple`
Event: True |`GET` /textdatarecordsindexingstatuses
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `Update`
Event: True |`PATCH` /textdatarecordsindexingstatuses(*textdatarecordsindexingstatusid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: True |`PATCH` /textdatarecordsindexingstatuses(*textdatarecordsindexingstatusid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: True | || + + +## Events + +The following table lists the events for the textdatarecordsindexingstatus table. +Events are messages that exist so that you can subscribe to them. Unless you added the event, you shouldn't invoke the message, only subscribe to it. + +|Name|Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `BulkRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `PurgeRetainedContent`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `Retain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `RollbackRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `ValidateRetentionConfig`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| + +## Properties + +The following table lists selected properties for the textdatarecordsindexingstatus table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **TextDataRecordsIndexingStatus** | +| **DisplayCollectionName** | **TextDataRecordsIndexingStatus** | +| **SchemaName** | `textdatarecordsindexingstatus` | +| **CollectionSchemaName** | `textdatarecordsindexingstatuses` | +| **EntitySetName** | `textdatarecordsindexingstatuses`| +| **LogicalName** | `textdatarecordsindexingstatus` | +| **LogicalCollectionName** | `textdatarecordsindexingstatuses` | +| **PrimaryIdAttribute** | `textdatarecordsindexingstatusid` | +| **PrimaryNameAttribute** |`name` | +| **TableType** | `Elastic` | +| **OwnershipType** | `OrganizationOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [AttributeName](#BKMK_AttributeName) +- [EntityName](#BKMK_EntityName) +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [IndexingStatus](#BKMK_IndexingStatus) +- [Name](#BKMK_Name) +- [ObjectTypeCode](#BKMK_ObjectTypeCode) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [PartitionId](#BKMK_PartitionId) +- [RecordCreatedOnInCrm](#BKMK_RecordCreatedOnInCrm) +- [RecordId](#BKMK_RecordId) +- [RecordModifiedOnInCrm](#BKMK_RecordModifiedOnInCrm) +- [RecordSizeInBytesInCrm](#BKMK_RecordSizeInBytesInCrm) +- [RecordSizeInBytesInTextDataIndex](#BKMK_RecordSizeInBytesInTextDataIndex) +- [RecordVersionNumber](#BKMK_RecordVersionNumber) +- [TextDataIndexName](#BKMK_TextDataIndexName) +- [textdatarecordsindexingstatusId](#BKMK_textdatarecordsindexingstatusId) +- [TTLInSeconds](#BKMK_TTLInSeconds) + +### AttributeName + +|Property|Value| +|---|---| +|Description|**Attribute name.**| +|DisplayName|**AttributeName**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`attributename`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### EntityName + +|Property|Value| +|---|---| +|Description|**Entity name that identifies which entity does this record belong to.**| +|DisplayName|**EntityName**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`entityname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### IndexingStatus + +|Property|Value| +|---|---| +|Description|**Unstructured / Text data indexing status of entity - attribute - recordId combination.**| +|DisplayName|**IndexingStatus**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`indexingstatus`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Json| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|50000| + +### Name + +|Property|Value| +|---|---| +|Description|**The name of the record.**| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`name`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|200| + +### ObjectTypeCode + +|Property|Value| +|---|---| +|Description|**Object type code of the entity that identifies which entity does this record belong to.**| +|DisplayName|**ObjectTypeCode**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`objecttypecode`| +|RequiredLevel|SystemRequired| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### PartitionId + +|Property|Value| +|---|---| +|Description|**Logical partition id. A logical partition consists of a set of records with same partition id.**| +|DisplayName|**Partition Id**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`partitionid`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|500| + +### RecordCreatedOnInCrm + +|Property|Value| +|---|---| +|Description|**Created on of the record in CRM / Dataverse.**| +|DisplayName|**RecordCreatedOnInCrm**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`recordcreatedonincrm`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### RecordId + +|Property|Value| +|---|---| +|Description|**Record Id**| +|DisplayName|**RecordId**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`recordid`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### RecordModifiedOnInCrm + +|Property|Value| +|---|---| +|Description|**Modified on of the record in CRM / Dataverse.**| +|DisplayName|**RecordModifiedOnInCrm**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`recordmodifiedonincrm`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### RecordSizeInBytesInCrm + +|Property|Value| +|---|---| +|Description|**Size of record in bytes in CRM**| +|DisplayName|**RecordSizeInBytesInCrm**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`recordsizeinbytesincrm`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +### RecordSizeInBytesInTextDataIndex + +|Property|Value| +|---|---| +|Description|**Size of record in bytes in Unstructured / Text data search index**| +|DisplayName|**RecordSizeInBytesInTextDataIndex**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`recordsizeinbytesintextdataindex`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +### RecordVersionNumber + +|Property|Value| +|---|---| +|Description|**Version number of the record.**| +|DisplayName|**RecordVersionNumber**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`recordversionnumber`| +|RequiredLevel|ApplicationRequired| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +### TextDataIndexName + +|Property|Value| +|---|---| +|Description|**Unstructured / Text data index name.**| +|DisplayName|**TextDataIndexName**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`textdataindexname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### textdatarecordsindexingstatusId + +|Property|Value| +|---|---| +|Description|**Unique identifier for TextDataRecordsIndexingStatus**| +|DisplayName|**Text data records indexing status id**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`textdatarecordsindexingstatusid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### TTLInSeconds + +|Property|Value| +|---|---| +|Description|**Time to live in seconds.**| +|DisplayName|**Time to live**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ttlinseconds`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|1| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [VersionNumber](#BKMK_VersionNumber) + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [lk_textdatarecordsindexingstatus_createdby](#BKMK_lk_textdatarecordsindexingstatus_createdby) +- [lk_textdatarecordsindexingstatus_createdonbehalfby](#BKMK_lk_textdatarecordsindexingstatus_createdonbehalfby) +- [lk_textdatarecordsindexingstatus_modifiedby](#BKMK_lk_textdatarecordsindexingstatus_modifiedby) +- [lk_textdatarecordsindexingstatus_modifiedonbehalfby](#BKMK_lk_textdatarecordsindexingstatus_modifiedonbehalfby) + +### lk_textdatarecordsindexingstatus_createdby + +One-To-Many Relationship: [systemuser lk_textdatarecordsindexingstatus_createdby](systemuser.md#BKMK_lk_textdatarecordsindexingstatus_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_textdatarecordsindexingstatus_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_textdatarecordsindexingstatus_createdonbehalfby](systemuser.md#BKMK_lk_textdatarecordsindexingstatus_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_textdatarecordsindexingstatus_modifiedby + +One-To-Many Relationship: [systemuser lk_textdatarecordsindexingstatus_modifiedby](systemuser.md#BKMK_lk_textdatarecordsindexingstatus_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_textdatarecordsindexingstatus_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_textdatarecordsindexingstatus_modifiedonbehalfby](systemuser.md#BKMK_lk_textdatarecordsindexingstatus_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/toc.yml b/powerapps-docs/developer/data-platform/reference/entities/toc.yml index 07bcc466d4..e30ce3b1ee 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/toc.yml +++ b/powerapps-docs/developer/data-platform/reference/entities/toc.yml @@ -55,15 +55,18 @@ items: - name: "AI Configuration" displayName: "msdyn_AIConfiguration entity" href: msdyn_aiconfiguration.md +- name: "AI Evaluation Configuration" + displayName: "msdyn_AIEvaluationConfiguration entity" + href: msdyn_aievaluationconfiguration.md +- name: "AI Evaluation Run" + displayName: "msdyn_AIEvaluationRun entity" + href: msdyn_aievaluationrun.md - name: "AI Event" displayName: "msdyn_AIEvent entity" href: msdyn_aievent.md - name: "AI Form Processing Document" displayName: "msdyn_AIFpTrainingDocument entity" href: msdyn_aifptrainingdocument.md -- name: "AI Insight Card" - displayName: "aiinsightcard entity" - href: aiinsightcard.md - name: "AI Model" displayName: "msdyn_AIModel entity" href: msdyn_aimodel.md @@ -94,6 +97,21 @@ items: - name: "AI Template" displayName: "msdyn_AITemplate entity" href: msdyn_aitemplate.md +- name: "AI Test Case" + displayName: "msdyn_AITestCase entity" + href: msdyn_aitestcase.md +- name: "AI Test Case Document" + displayName: "msdyn_AITestCaseDocument entity" + href: msdyn_aitestcasedocument.md +- name: "AI Test Case Input" + displayName: "msdyn_AITestCaseInput entity" + href: msdyn_aitestcaseinput.md +- name: "AI Test Run" + displayName: "msdyn_AITestRun entity" + href: msdyn_aitestrun.md +- name: "AI Test Run Batch" + displayName: "msdyn_AITestRunBatch entity" + href: msdyn_aitestrunbatch.md - name: "AICopilot" displayName: "AICopilot entity" href: aicopilot.md @@ -205,12 +223,24 @@ items: - name: "Approval" displayName: "msdyn_flow_approval entity" href: msdyn_flow_approval.md +- name: "Approval Process" + displayName: "approvalprocess entity" + href: approvalprocess.md - name: "Approval Request" displayName: "msdyn_flow_approvalrequest entity" href: msdyn_flow_approvalrequest.md - name: "Approval Response" displayName: "msdyn_flow_approvalresponse entity" href: msdyn_flow_approvalresponse.md +- name: "Approval Stage Approval" + displayName: "approvalstageapproval entity" + href: approvalstageapproval.md +- name: "Approval Stage Condition" + displayName: "approvalstagecondition entity" + href: approvalstagecondition.md +- name: "Approval Stage Order" + displayName: "approvalstageorder entity" + href: approvalstageorder.md - name: "Approval Step" displayName: "msdyn_flow_approvalstep entity" href: msdyn_flow_approvalstep.md @@ -292,6 +322,9 @@ items: - name: "Bulk Delete Operation" displayName: "BulkDeleteOperation entity" href: bulkdeleteoperation.md +- name: "Business Process" + displayName: "businessprocess entity" + href: businessprocess.md - name: "Business Unit" displayName: "BusinessUnit entity" href: businessunit.md @@ -463,6 +496,9 @@ items: - name: "Data Processing configuration" displayName: "DataProcessingConfiguration entity" href: dataprocessingconfiguration.md +- name: "Data Processing Event" + displayName: "msdyn_AIDataProcessingEvent entity" + href: msdyn_aidataprocessingevent.md - name: "Dataflow" displayName: "msdyn_dataflow entity" href: msdyn_dataflow.md @@ -541,6 +577,9 @@ items: - name: "Email" displayName: "Email entity" href: email.md +- name: "Email Address Configuration" + displayName: "EmailAddressConfiguration entity" + href: emailaddressconfiguration.md - name: "Email Server Profile" displayName: "EmailServerProfile entity" href: emailserverprofile.md @@ -553,6 +592,9 @@ items: - name: "Entity Analytics Config" displayName: "EntityAnalyticsConfig entity" href: entityanalyticsconfig.md +- name: "Entity Cluster Configuration" + displayName: "EntityClusterConfig entity" + href: entityclusterconfig.md - name: "Entity Image Configuration" displayName: "EntityImageConfig entity" href: entityimageconfig.md @@ -637,6 +679,9 @@ items: - name: "Fixed Monthly Fiscal Calendar" displayName: "FixedMonthlyFiscalCalendar entity" href: fixedmonthlyfiscalcalendar.md +- name: "Flow Aggregation" + displayName: "flowaggregation entity" + href: flowaggregation.md - name: "Flow Approval" displayName: "msdyn_flow_flowapproval entity" href: msdyn_flow_flowapproval.md @@ -736,6 +781,9 @@ items: - name: "Index Attribute" displayName: "IndexAttributes entity" href: indexattributes.md +- name: "indexedtrait" + displayName: "indexedtrait entity" + href: indexedtrait.md - name: "Insights Store Data Source" displayName: "msdyn_datalakeds entity" href: msdyn_datalakeds.md @@ -1126,9 +1174,6 @@ items: - name: "Process Trigger" displayName: "ProcessTrigger entity" href: processtrigger.md -- name: "Processor Registration" - displayName: "ProcessorRegistration entity" - href: processorregistration.md - name: "ProcessStageParameter" displayName: "processstageparameter entity" href: processstageparameter.md @@ -1246,6 +1291,9 @@ items: - name: "Saved View" displayName: "UserQuery entity" href: userquery.md +- name: "Saving Rule" + displayName: "savingrule entity" + href: savingrule.md - name: "Schedule" displayName: "msdyn_schedule entity" href: msdyn_schedule.md @@ -1294,6 +1342,9 @@ items: - name: "Semiannual Fiscal Calendar" displayName: "SemiAnnualFiscalCalendar entity" href: semiannualfiscalcalendar.md +- name: "Sensitivity Label" + displayName: "sensitivitylabel entity" + href: sensitivitylabel.md - name: "Service Configuration" displayName: "msdyn_serviceconfiguration entity" href: msdyn_serviceconfiguration.md @@ -1342,9 +1393,6 @@ items: - name: "signal" displayName: "signal entity" href: signal.md -- name: "Signal Registration" - displayName: "SignalRegistration entity" - href: signalregistration.md - name: "Similarity Rule" displayName: "SimilarityRule entity" href: similarityrule.md @@ -1504,6 +1552,15 @@ items: - name: "Table Permission" displayName: "mspp_entitypermission entity" href: mspp_entitypermission.md +- name: "Tag" + displayName: "tag entity" + href: tag.md +- name: "Tagged Flow Session" + displayName: "taggedflowsession entity" + href: taggedflowsession.md +- name: "Tagged Process" + displayName: "taggedprocess entity" + href: taggedprocess.md - name: "Task" displayName: "Task entity" href: task.md @@ -1525,6 +1582,9 @@ items: - name: "Text Analytics Entity Mapping" displayName: "TextAnalyticsEntityMapping entity" href: textanalyticsentitymapping.md +- name: "TextDataRecordsIndexingStatus" + displayName: "textdatarecordsindexingstatus entity" + href: textdatarecordsindexingstatus.md - name: "Theme" displayName: "Theme entity" href: theme.md @@ -1552,9 +1612,6 @@ items: - name: "trait" displayName: "trait entity" href: trait.md -- name: "Trait Registration" - displayName: "TraitRegistration entity" - href: traitregistration.md - name: "Transformation Mapping" displayName: "TransformationMapping entity" href: transformationmapping.md @@ -1564,6 +1621,12 @@ items: - name: "Translation Process" displayName: "TranslationProcess entity" href: translationprocess.md +- name: "UnstructuredFileSearchEntity" + displayName: "unstructuredfilesearchentity entity" + href: unstructuredfilesearchentity.md +- name: "UnstructuredFileSearchRecord" + displayName: "unstructuredfilesearchrecord entity" + href: unstructuredfilesearchrecord.md - name: "User" displayName: "SystemUser entity" href: systemuser.md @@ -1651,6 +1714,9 @@ items: - name: "Workflow Binary" displayName: "workflowbinary entity" href: workflowbinary.md +- name: "Workflow Metadata" + displayName: "WorkflowMetadata entity" + href: workflowmetadata.md - name: "workflowcardconnections" displayName: "workflowcardconnections entity" href: workflowcardconnections.md diff --git a/powerapps-docs/developer/data-platform/reference/entities/trait.md b/powerapps-docs/developer/data-platform/reference/entities/trait.md index bf443583d1..23790db787 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/trait.md +++ b/powerapps-docs/developer/data-platform/reference/entities/trait.md @@ -433,7 +433,7 @@ These columns/attributes return false for both **IsValidForCreate** and **IsVali |IsValidForForm|True| |IsValidForRead|True| |LogicalName|`owningbusinessunit`| -|RequiredLevel|SystemRequired| +|RequiredLevel|None| |Type|Lookup| |Targets|businessunit| diff --git a/powerapps-docs/developer/data-platform/reference/entities/unstructuredfilesearchentity.md b/powerapps-docs/developer/data-platform/reference/entities/unstructuredfilesearchentity.md new file mode 100644 index 0000000000..87875376c2 --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/unstructuredfilesearchentity.md @@ -0,0 +1,738 @@ +--- +title: "unstructuredfilesearchentity table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the unstructuredfilesearchentity table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# unstructuredfilesearchentity table/entity reference (Microsoft Dataverse) + + + +## Messages + +The following table lists the messages for the unstructuredfilesearchentity table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Assign`
Event: True |`PATCH` /unstructuredfilesearchentities(*unstructuredfilesearchentityid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /unstructuredfilesearchentities
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /unstructuredfilesearchentities(*unstructuredfilesearchentityid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `GrantAccess`
Event: True | || +| `IsValidStateTransition`
Event: False | || +| `ModifyAccess`
Event: True | || +| `Retrieve`
Event: True |`GET` /unstructuredfilesearchentities(*unstructuredfilesearchentityid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /unstructuredfilesearchentities
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `RetrievePrincipalAccess`
Event: True | || +| `RetrieveSharedPrincipalsAndAccess`
Event: True | || +| `RevokeAccess`
Event: True | || +| `SetState`
Event: True |`PATCH` /unstructuredfilesearchentities(*unstructuredfilesearchentityid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /unstructuredfilesearchentities(*unstructuredfilesearchentityid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /unstructuredfilesearchentities(*unstructuredfilesearchentityid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + + +## Events + +The following table lists the events for the unstructuredfilesearchentity table. +Events are messages that exist so that you can subscribe to them. Unless you added the event, you shouldn't invoke the message, only subscribe to it. + +|Name|Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `BulkRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `PurgeRetainedContent`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `Retain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `RollbackRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `ValidateRetentionConfig`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| + +## Properties + +The following table lists selected properties for the unstructuredfilesearchentity table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **UnstructuredFileSearchEntity** | +| **DisplayCollectionName** | **UnstructuredFileSearchEntity** | +| **SchemaName** | `unstructuredfilesearchentity` | +| **CollectionSchemaName** | `unstructuredfilesearchentities` | +| **EntitySetName** | `unstructuredfilesearchentities`| +| **LogicalName** | `unstructuredfilesearchentity` | +| **LogicalCollectionName** | `unstructuredfilesearchentities` | +| **PrimaryIdAttribute** | `unstructuredfilesearchentityid` | +| **PrimaryNameAttribute** |`name` | +| **TableType** | `Standard` | +| **OwnershipType** | `UserOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [KnowledgeSource](#BKMK_KnowledgeSource) +- [Name](#BKMK_Name) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [SourceUrl](#BKMK_SourceUrl) +- [statecode](#BKMK_statecode) +- [statuscode](#BKMK_statuscode) +- [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [unstructuredfilesearchentityId](#BKMK_unstructuredfilesearchentityId) +- [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### KnowledgeSource + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**KnowledgeSource**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`knowledgesource`| +|RequiredLevel|ApplicationRequired| +|Type|Picklist| +|DefaultFormValue|-1| +|GlobalChoiceName|`unstructuredfilesearchentity_knowledgesource`| + +#### KnowledgeSource Choices/Options + +|Value|Label| +|---|---| +|1|**Salesforce**| +|2|**Zendesk**| +|3|**ServiceNow**| +|4|**SharepointDocuments**| +|5|**OneDrive For Business**| +|6|**Confluence**| + +### Name + +|Property|Value| +|---|---| +|Description|**Name of the Entity in the external system**| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`name`| +|RequiredLevel|Recommended| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|250| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### SourceUrl + +|Property|Value| +|---|---| +|Description|**Base url of the knowledge source**| +|DisplayName|**SourceUrl**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`sourceurl`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|550| + +### statecode + +|Property|Value| +|---|---| +|Description|**Status of the Table1**| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statecode`| +|RequiredLevel|SystemRequired| +|Type|State| +|DefaultFormValue|| +|GlobalChoiceName|`unstructuredfilesearchentity_statecode`| + +#### statecode Choices/Options + +|Value|Details| +|---|---| +|0|Label: **Active**
DefaultStatus: 1
InvariantName: `Active`| +|1|Label: **Inactive**
DefaultStatus: 2
InvariantName: `Inactive`| + +### statuscode + +|Property|Value| +|---|---| +|Description|**Reason for the status of the Table1**| +|DisplayName|**Status Reason**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Status| +|DefaultFormValue|| +|GlobalChoiceName|`unstructuredfilesearchentity_statuscode`| + +#### statuscode Choices/Options + +|Value|Details| +|---|---| +|1|Label: **Active**
State:0
TransitionData: None| +|2|Label: **Inactive**
State:1
TransitionData: None| + +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### unstructuredfilesearchentityId + +|Property|Value| +|---|---| +|Description|**Unstructured File Search EntityId**| +|DisplayName|**Unstructured File Search EntityId**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`unstructuredfilesearchentityid`| +|RequiredLevel|ApplicationRequired| +|Type|Uniqueidentifier| + +### UTCConversionTimeZoneCode + +|Property|Value| +|---|---| +|Description|**Time zone code that was in use when the record was created.**| +|DisplayName|**UTC Conversion Time Zone Code**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`utcconversiontimezonecode`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OwnerIdName](#BKMK_OwnerIdName) +- [OwnerIdYomiName](#BKMK_OwnerIdYomiName) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) +- [OwningTeam](#BKMK_OwningTeam) +- [OwningUser](#BKMK_OwningUser) +- [VersionNumber](#BKMK_VersionNumber) + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### OwnerIdName + +|Property|Value| +|---|---| +|Description|**Name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwnerIdYomiName + +|Property|Value| +|---|---| +|Description|**Yomi name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridyominame`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|businessunit| + +### OwningTeam + +|Property|Value| +|---|---| +|Description|**Unique identifier for the team that owns the record.**| +|DisplayName|**Owning Team**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningteam`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|team| + +### OwningUser + +|Property|Value| +|---|---| +|Description|**Unique identifier for the user that owns the record.**| +|DisplayName|**Owning User**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owninguser`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [business_unit_unstructuredfilesearchentity](#BKMK_business_unit_unstructuredfilesearchentity) +- [lk_unstructuredfilesearchentity_createdby](#BKMK_lk_unstructuredfilesearchentity_createdby) +- [lk_unstructuredfilesearchentity_createdonbehalfby](#BKMK_lk_unstructuredfilesearchentity_createdonbehalfby) +- [lk_unstructuredfilesearchentity_modifiedby](#BKMK_lk_unstructuredfilesearchentity_modifiedby) +- [lk_unstructuredfilesearchentity_modifiedonbehalfby](#BKMK_lk_unstructuredfilesearchentity_modifiedonbehalfby) +- [owner_unstructuredfilesearchentity](#BKMK_owner_unstructuredfilesearchentity) +- [team_unstructuredfilesearchentity](#BKMK_team_unstructuredfilesearchentity) +- [user_unstructuredfilesearchentity](#BKMK_user_unstructuredfilesearchentity) + +### business_unit_unstructuredfilesearchentity + +One-To-Many Relationship: [businessunit business_unit_unstructuredfilesearchentity](businessunit.md#BKMK_business_unit_unstructuredfilesearchentity) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessunit`| +|ReferencedAttribute|`businessunitid`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencingEntityNavigationPropertyName|`owningbusinessunit`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_unstructuredfilesearchentity_createdby + +One-To-Many Relationship: [systemuser lk_unstructuredfilesearchentity_createdby](systemuser.md#BKMK_lk_unstructuredfilesearchentity_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_unstructuredfilesearchentity_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_unstructuredfilesearchentity_createdonbehalfby](systemuser.md#BKMK_lk_unstructuredfilesearchentity_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_unstructuredfilesearchentity_modifiedby + +One-To-Many Relationship: [systemuser lk_unstructuredfilesearchentity_modifiedby](systemuser.md#BKMK_lk_unstructuredfilesearchentity_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_unstructuredfilesearchentity_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_unstructuredfilesearchentity_modifiedonbehalfby](systemuser.md#BKMK_lk_unstructuredfilesearchentity_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### owner_unstructuredfilesearchentity + +One-To-Many Relationship: [owner owner_unstructuredfilesearchentity](owner.md#BKMK_owner_unstructuredfilesearchentity) + +|Property|Value| +|---|---| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### team_unstructuredfilesearchentity + +One-To-Many Relationship: [team team_unstructuredfilesearchentity](team.md#BKMK_team_unstructuredfilesearchentity) + +|Property|Value| +|---|---| +|ReferencedEntity|`team`| +|ReferencedAttribute|`teamid`| +|ReferencingAttribute|`owningteam`| +|ReferencingEntityNavigationPropertyName|`owningteam`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### user_unstructuredfilesearchentity + +One-To-Many Relationship: [systemuser user_unstructuredfilesearchentity](systemuser.md#BKMK_user_unstructuredfilesearchentity) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`owninguser`| +|ReferencingEntityNavigationPropertyName|`owninguser`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +- [dvtablesearchentity_unstructuredfilesearchentity_unstructuredfilesearchentityId](#BKMK_dvtablesearchentity_unstructuredfilesearchentity_unstructuredfilesearchentityId) +- [unstructuredfilesearchentity_AsyncOperations](#BKMK_unstructuredfilesearchentity_AsyncOperations) +- [unstructuredfilesearchentity_BulkDeleteFailures](#BKMK_unstructuredfilesearchentity_BulkDeleteFailures) +- [unstructuredfilesearchentity_DuplicateBaseRecord](#BKMK_unstructuredfilesearchentity_DuplicateBaseRecord) +- [unstructuredfilesearchentity_DuplicateMatchingRecord](#BKMK_unstructuredfilesearchentity_DuplicateMatchingRecord) +- [unstructuredfilesearchentity_MailboxTrackingFolders](#BKMK_unstructuredfilesearchentity_MailboxTrackingFolders) +- [unstructuredfilesearchentity_PrincipalObjectAttributeAccesses](#BKMK_unstructuredfilesearchentity_PrincipalObjectAttributeAccesses) +- [unstructuredfilesearchentity_ProcessSession](#BKMK_unstructuredfilesearchentity_ProcessSession) +- [unstructuredfilesearchentity_SyncErrors](#BKMK_unstructuredfilesearchentity_SyncErrors) +- [unstructuredfilesearchentity_unstructuredfilesearchrecord_UnstructuredFileSearchEntityId](#BKMK_unstructuredfilesearchentity_unstructuredfilesearchrecord_UnstructuredFileSearchEntityId) + +### dvtablesearchentity_unstructuredfilesearchentity_unstructuredfilesearchentityId + +Many-To-One Relationship: [dvtablesearchentity dvtablesearchentity_unstructuredfilesearchentity_unstructuredfilesearchentityId](dvtablesearchentity.md#BKMK_dvtablesearchentity_unstructuredfilesearchentity_unstructuredfilesearchentityId) + +|Property|Value| +|---|---| +|ReferencingEntity|`dvtablesearchentity`| +|ReferencingAttribute|`unstructuredfilesearchentityid`| +|ReferencedEntityNavigationPropertyName|`dvtablesearchentity_unstructuredfilesearchentity_unstructuredfilesearchentityId`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### unstructuredfilesearchentity_AsyncOperations + +Many-To-One Relationship: [asyncoperation unstructuredfilesearchentity_AsyncOperations](asyncoperation.md#BKMK_unstructuredfilesearchentity_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencingEntity|`asyncoperation`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`unstructuredfilesearchentity_AsyncOperations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### unstructuredfilesearchentity_BulkDeleteFailures + +Many-To-One Relationship: [bulkdeletefailure unstructuredfilesearchentity_BulkDeleteFailures](bulkdeletefailure.md#BKMK_unstructuredfilesearchentity_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencingEntity|`bulkdeletefailure`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`unstructuredfilesearchentity_BulkDeleteFailures`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### unstructuredfilesearchentity_DuplicateBaseRecord + +Many-To-One Relationship: [duplicaterecord unstructuredfilesearchentity_DuplicateBaseRecord](duplicaterecord.md#BKMK_unstructuredfilesearchentity_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`baserecordid`| +|ReferencedEntityNavigationPropertyName|`unstructuredfilesearchentity_DuplicateBaseRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### unstructuredfilesearchentity_DuplicateMatchingRecord + +Many-To-One Relationship: [duplicaterecord unstructuredfilesearchentity_DuplicateMatchingRecord](duplicaterecord.md#BKMK_unstructuredfilesearchentity_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencedEntityNavigationPropertyName|`unstructuredfilesearchentity_DuplicateMatchingRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### unstructuredfilesearchentity_MailboxTrackingFolders + +Many-To-One Relationship: [mailboxtrackingfolder unstructuredfilesearchentity_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_unstructuredfilesearchentity_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencingEntity|`mailboxtrackingfolder`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`unstructuredfilesearchentity_MailboxTrackingFolders`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### unstructuredfilesearchentity_PrincipalObjectAttributeAccesses + +Many-To-One Relationship: [principalobjectattributeaccess unstructuredfilesearchentity_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_unstructuredfilesearchentity_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencingEntity|`principalobjectattributeaccess`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`unstructuredfilesearchentity_PrincipalObjectAttributeAccesses`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### unstructuredfilesearchentity_ProcessSession + +Many-To-One Relationship: [processsession unstructuredfilesearchentity_ProcessSession](processsession.md#BKMK_unstructuredfilesearchentity_ProcessSession) + +|Property|Value| +|---|---| +|ReferencingEntity|`processsession`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`unstructuredfilesearchentity_ProcessSession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### unstructuredfilesearchentity_SyncErrors + +Many-To-One Relationship: [syncerror unstructuredfilesearchentity_SyncErrors](syncerror.md#BKMK_unstructuredfilesearchentity_SyncErrors) + +|Property|Value| +|---|---| +|ReferencingEntity|`syncerror`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`unstructuredfilesearchentity_SyncErrors`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### unstructuredfilesearchentity_unstructuredfilesearchrecord_UnstructuredFileSearchEntityId + +Many-To-One Relationship: [unstructuredfilesearchrecord unstructuredfilesearchentity_unstructuredfilesearchrecord_UnstructuredFileSearchEntityId](unstructuredfilesearchrecord.md#BKMK_unstructuredfilesearchentity_unstructuredfilesearchrecord_UnstructuredFileSearchEntityId) + +|Property|Value| +|---|---| +|ReferencingEntity|`unstructuredfilesearchrecord`| +|ReferencingAttribute|`unstructuredfilesearchentityid`| +|ReferencedEntityNavigationPropertyName|`unstructuredfilesearchentity_unstructuredfilesearchrecord_UnstructuredFileSearchEntityId`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/unstructuredfilesearchrecord.md b/powerapps-docs/developer/data-platform/reference/entities/unstructuredfilesearchrecord.md new file mode 100644 index 0000000000..54f2a9c246 --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/unstructuredfilesearchrecord.md @@ -0,0 +1,813 @@ +--- +title: "unstructuredfilesearchrecord table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the unstructuredfilesearchrecord table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# unstructuredfilesearchrecord table/entity reference (Microsoft Dataverse) + +UnstructuredFileSearchRecord + +## Messages + +The following table lists the messages for the unstructuredfilesearchrecord table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Assign`
Event: True |`PATCH` /unstructuredfilesearchrecords(*unstructuredfilesearchrecordid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /unstructuredfilesearchrecords
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /unstructuredfilesearchrecords(*unstructuredfilesearchrecordid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `GrantAccess`
Event: True | || +| `IsValidStateTransition`
Event: False | || +| `ModifyAccess`
Event: True | || +| `Retrieve`
Event: True |`GET` /unstructuredfilesearchrecords(*unstructuredfilesearchrecordid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /unstructuredfilesearchrecords
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `RetrievePrincipalAccess`
Event: True | || +| `RetrieveSharedPrincipalsAndAccess`
Event: True | || +| `RevokeAccess`
Event: True | || +| `SetState`
Event: True |`PATCH` /unstructuredfilesearchrecords(*unstructuredfilesearchrecordid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /unstructuredfilesearchrecords(*unstructuredfilesearchrecordid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /unstructuredfilesearchrecords(*unstructuredfilesearchrecordid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + + +## Events + +The following table lists the events for the unstructuredfilesearchrecord table. +Events are messages that exist so that you can subscribe to them. Unless you added the event, you shouldn't invoke the message, only subscribe to it. + +|Name|Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `BulkRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `PurgeRetainedContent`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `Retain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `RollbackRetain`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `ValidateRetentionConfig`| |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| + +## Properties + +The following table lists selected properties for the unstructuredfilesearchrecord table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **UnstructuredFileSearchRecord** | +| **DisplayCollectionName** | **UnstructuredFileSearchRecord** | +| **SchemaName** | `unstructuredfilesearchrecord` | +| **CollectionSchemaName** | `unstructuredfilesearchrecords` | +| **EntitySetName** | `unstructuredfilesearchrecords`| +| **LogicalName** | `unstructuredfilesearchrecord` | +| **LogicalCollectionName** | `unstructuredfilesearchrecords` | +| **PrimaryIdAttribute** | `unstructuredfilesearchrecordid` | +| **PrimaryNameAttribute** |`columnname` | +| **TableType** | `Standard` | +| **OwnershipType** | `UserOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [AttributeType](#BKMK_AttributeType) +- [ColumnName](#BKMK_ColumnName) +- [Content](#BKMK_Content) +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [RecordId](#BKMK_RecordId) +- [statecode](#BKMK_statecode) +- [statuscode](#BKMK_statuscode) +- [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [UnstructuredFileSearchEntityId](#BKMK_UnstructuredFileSearchEntityId) +- [unstructuredfilesearchrecordId](#BKMK_unstructuredfilesearchrecordId) +- [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) + +### AttributeType + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**AttributeType**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`attributetype`| +|RequiredLevel|ApplicationRequired| +|Type|Picklist| +|DefaultFormValue|-1| +|GlobalChoiceName|`unstructuredfilesearchrecord_attributetype`| + +#### AttributeType Choices/Options + +|Value|Label| +|---|---| +|1|**FileType**| +|2|**Multiline Text**| + +### ColumnName + +|Property|Value| +|---|---| +|Description|**Column Name in the external system**| +|DisplayName|**ColumnName**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`columnname`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|200| + +### Content + +|Property|Value| +|---|---| +|Description|**Contains the Rich Text content if AttributeType = RichText, Otherwise blank**| +|DisplayName|**Content**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`content`| +|RequiredLevel|None| +|Type|Memo| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|1048576| + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### RecordId + +|Property|Value| +|---|---| +|Description|**Id of the record in the external system**| +|DisplayName|**RecordId**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`recordid`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|600| + +### statecode + +|Property|Value| +|---|---| +|Description|**Status of the Table1**| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statecode`| +|RequiredLevel|SystemRequired| +|Type|State| +|DefaultFormValue|| +|GlobalChoiceName|`unstructuredfilesearchrecord_statecode`| + +#### statecode Choices/Options + +|Value|Details| +|---|---| +|0|Label: **Active**
DefaultStatus: 1
InvariantName: `Active`| +|1|Label: **Inactive**
DefaultStatus: 2
InvariantName: `Inactive`| + +### statuscode + +|Property|Value| +|---|---| +|Description|**Reason for the status of the Table1**| +|DisplayName|**Status Reason**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Status| +|DefaultFormValue|| +|GlobalChoiceName|`unstructuredfilesearchrecord_statuscode`| + +#### statuscode Choices/Options + +|Value|Details| +|---|---| +|1|Label: **Active**
State:0
TransitionData: None| +|2|Label: **Inactive**
State:1
TransitionData: None| + +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### UnstructuredFileSearchEntityId + +|Property|Value| +|---|---| +|Description|**Lookup to FederatedFileSearchEntity**| +|DisplayName|**UnstructuredFileSearchEntityId**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`unstructuredfilesearchentityid`| +|RequiredLevel|ApplicationRequired| +|Type|Lookup| +|Targets|unstructuredfilesearchentity| + +### unstructuredfilesearchrecordId + +|Property|Value| +|---|---| +|Description|**Unique identifier for entity instances**| +|DisplayName|**UnstructuredFileSearchRecord**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`unstructuredfilesearchrecordid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### UTCConversionTimeZoneCode + +|Property|Value| +|---|---| +|Description|**Time zone code that was in use when the record was created.**| +|DisplayName|**UTC Conversion Time Zone Code**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`utcconversiontimezonecode`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [Filedata](#BKMK_Filedata) +- [Filedata_Name](#BKMK_Filedata_Name) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OwnerIdName](#BKMK_OwnerIdName) +- [OwnerIdYomiName](#BKMK_OwnerIdYomiName) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) +- [OwningTeam](#BKMK_OwningTeam) +- [OwningUser](#BKMK_OwningUser) +- [VersionNumber](#BKMK_VersionNumber) + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### Filedata + +|Property|Value| +|---|---| +|Description|**Contains the content of a file if AttributeType = FileType, Otherwise blank**| +|DisplayName|**Filedata**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`filedata`| +|RequiredLevel|None| +|Type|File| +|MaxSizeInKB|32768| + +### Filedata_Name + +|Property|Value| +|---|---| +|Description|| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`filedata_name`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Disabled| +|IsLocalizable|False| +|MaxLength|200| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### OwnerIdName + +|Property|Value| +|---|---| +|Description|**Name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwnerIdYomiName + +|Property|Value| +|---|---| +|Description|**Yomi name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridyominame`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|businessunit| + +### OwningTeam + +|Property|Value| +|---|---| +|Description|**Unique identifier for the team that owns the record.**| +|DisplayName|**Owning Team**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningteam`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|team| + +### OwningUser + +|Property|Value| +|---|---| +|Description|**Unique identifier for the user that owns the record.**| +|DisplayName|**Owning User**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owninguser`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [business_unit_unstructuredfilesearchrecord](#BKMK_business_unit_unstructuredfilesearchrecord) +- [FileAttachment_unstructuredfilesearchrecord_Filedata](#BKMK_FileAttachment_unstructuredfilesearchrecord_Filedata) +- [lk_unstructuredfilesearchrecord_createdby](#BKMK_lk_unstructuredfilesearchrecord_createdby) +- [lk_unstructuredfilesearchrecord_createdonbehalfby](#BKMK_lk_unstructuredfilesearchrecord_createdonbehalfby) +- [lk_unstructuredfilesearchrecord_modifiedby](#BKMK_lk_unstructuredfilesearchrecord_modifiedby) +- [lk_unstructuredfilesearchrecord_modifiedonbehalfby](#BKMK_lk_unstructuredfilesearchrecord_modifiedonbehalfby) +- [owner_unstructuredfilesearchrecord](#BKMK_owner_unstructuredfilesearchrecord) +- [team_unstructuredfilesearchrecord](#BKMK_team_unstructuredfilesearchrecord) +- [unstructuredfilesearchentity_unstructuredfilesearchrecord_UnstructuredFileSearchEntityId](#BKMK_unstructuredfilesearchentity_unstructuredfilesearchrecord_UnstructuredFileSearchEntityId) +- [user_unstructuredfilesearchrecord](#BKMK_user_unstructuredfilesearchrecord) + +### business_unit_unstructuredfilesearchrecord + +One-To-Many Relationship: [businessunit business_unit_unstructuredfilesearchrecord](businessunit.md#BKMK_business_unit_unstructuredfilesearchrecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessunit`| +|ReferencedAttribute|`businessunitid`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencingEntityNavigationPropertyName|`owningbusinessunit`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### FileAttachment_unstructuredfilesearchrecord_Filedata + +One-To-Many Relationship: [fileattachment FileAttachment_unstructuredfilesearchrecord_Filedata](fileattachment.md#BKMK_FileAttachment_unstructuredfilesearchrecord_Filedata) + +|Property|Value| +|---|---| +|ReferencedEntity|`fileattachment`| +|ReferencedAttribute|`fileattachmentid`| +|ReferencingAttribute|`filedata`| +|ReferencingEntityNavigationPropertyName|`filedata`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_unstructuredfilesearchrecord_createdby + +One-To-Many Relationship: [systemuser lk_unstructuredfilesearchrecord_createdby](systemuser.md#BKMK_lk_unstructuredfilesearchrecord_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_unstructuredfilesearchrecord_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_unstructuredfilesearchrecord_createdonbehalfby](systemuser.md#BKMK_lk_unstructuredfilesearchrecord_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_unstructuredfilesearchrecord_modifiedby + +One-To-Many Relationship: [systemuser lk_unstructuredfilesearchrecord_modifiedby](systemuser.md#BKMK_lk_unstructuredfilesearchrecord_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_unstructuredfilesearchrecord_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_unstructuredfilesearchrecord_modifiedonbehalfby](systemuser.md#BKMK_lk_unstructuredfilesearchrecord_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### owner_unstructuredfilesearchrecord + +One-To-Many Relationship: [owner owner_unstructuredfilesearchrecord](owner.md#BKMK_owner_unstructuredfilesearchrecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### team_unstructuredfilesearchrecord + +One-To-Many Relationship: [team team_unstructuredfilesearchrecord](team.md#BKMK_team_unstructuredfilesearchrecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`team`| +|ReferencedAttribute|`teamid`| +|ReferencingAttribute|`owningteam`| +|ReferencingEntityNavigationPropertyName|`owningteam`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### unstructuredfilesearchentity_unstructuredfilesearchrecord_UnstructuredFileSearchEntityId + +One-To-Many Relationship: [unstructuredfilesearchentity unstructuredfilesearchentity_unstructuredfilesearchrecord_UnstructuredFileSearchEntityId](unstructuredfilesearchentity.md#BKMK_unstructuredfilesearchentity_unstructuredfilesearchrecord_UnstructuredFileSearchEntityId) + +|Property|Value| +|---|---| +|ReferencedEntity|`unstructuredfilesearchentity`| +|ReferencedAttribute|`unstructuredfilesearchentityid`| +|ReferencingAttribute|`unstructuredfilesearchentityid`| +|ReferencingEntityNavigationPropertyName|`UnstructuredFileSearchEntityId`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### user_unstructuredfilesearchrecord + +One-To-Many Relationship: [systemuser user_unstructuredfilesearchrecord](systemuser.md#BKMK_user_unstructuredfilesearchrecord) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`owninguser`| +|ReferencingEntityNavigationPropertyName|`owninguser`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +- [unstructuredfilesearchrecord_AsyncOperations](#BKMK_unstructuredfilesearchrecord_AsyncOperations) +- [unstructuredfilesearchrecord_BulkDeleteFailures](#BKMK_unstructuredfilesearchrecord_BulkDeleteFailures) +- [unstructuredfilesearchrecord_DuplicateBaseRecord](#BKMK_unstructuredfilesearchrecord_DuplicateBaseRecord) +- [unstructuredfilesearchrecord_DuplicateMatchingRecord](#BKMK_unstructuredfilesearchrecord_DuplicateMatchingRecord) +- [unstructuredfilesearchrecord_FileAttachments](#BKMK_unstructuredfilesearchrecord_FileAttachments) +- [unstructuredfilesearchrecord_MailboxTrackingFolders](#BKMK_unstructuredfilesearchrecord_MailboxTrackingFolders) +- [unstructuredfilesearchrecord_PrincipalObjectAttributeAccesses](#BKMK_unstructuredfilesearchrecord_PrincipalObjectAttributeAccesses) +- [unstructuredfilesearchrecord_ProcessSession](#BKMK_unstructuredfilesearchrecord_ProcessSession) +- [unstructuredfilesearchrecord_SyncErrors](#BKMK_unstructuredfilesearchrecord_SyncErrors) + +### unstructuredfilesearchrecord_AsyncOperations + +Many-To-One Relationship: [asyncoperation unstructuredfilesearchrecord_AsyncOperations](asyncoperation.md#BKMK_unstructuredfilesearchrecord_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencingEntity|`asyncoperation`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`unstructuredfilesearchrecord_AsyncOperations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### unstructuredfilesearchrecord_BulkDeleteFailures + +Many-To-One Relationship: [bulkdeletefailure unstructuredfilesearchrecord_BulkDeleteFailures](bulkdeletefailure.md#BKMK_unstructuredfilesearchrecord_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencingEntity|`bulkdeletefailure`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`unstructuredfilesearchrecord_BulkDeleteFailures`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### unstructuredfilesearchrecord_DuplicateBaseRecord + +Many-To-One Relationship: [duplicaterecord unstructuredfilesearchrecord_DuplicateBaseRecord](duplicaterecord.md#BKMK_unstructuredfilesearchrecord_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`baserecordid`| +|ReferencedEntityNavigationPropertyName|`unstructuredfilesearchrecord_DuplicateBaseRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### unstructuredfilesearchrecord_DuplicateMatchingRecord + +Many-To-One Relationship: [duplicaterecord unstructuredfilesearchrecord_DuplicateMatchingRecord](duplicaterecord.md#BKMK_unstructuredfilesearchrecord_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencedEntityNavigationPropertyName|`unstructuredfilesearchrecord_DuplicateMatchingRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### unstructuredfilesearchrecord_FileAttachments + +Many-To-One Relationship: [fileattachment unstructuredfilesearchrecord_FileAttachments](fileattachment.md#BKMK_unstructuredfilesearchrecord_FileAttachments) + +|Property|Value| +|---|---| +|ReferencingEntity|`fileattachment`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`unstructuredfilesearchrecord_FileAttachments`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### unstructuredfilesearchrecord_MailboxTrackingFolders + +Many-To-One Relationship: [mailboxtrackingfolder unstructuredfilesearchrecord_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_unstructuredfilesearchrecord_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencingEntity|`mailboxtrackingfolder`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`unstructuredfilesearchrecord_MailboxTrackingFolders`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### unstructuredfilesearchrecord_PrincipalObjectAttributeAccesses + +Many-To-One Relationship: [principalobjectattributeaccess unstructuredfilesearchrecord_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_unstructuredfilesearchrecord_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencingEntity|`principalobjectattributeaccess`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`unstructuredfilesearchrecord_PrincipalObjectAttributeAccesses`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### unstructuredfilesearchrecord_ProcessSession + +Many-To-One Relationship: [processsession unstructuredfilesearchrecord_ProcessSession](processsession.md#BKMK_unstructuredfilesearchrecord_ProcessSession) + +|Property|Value| +|---|---| +|ReferencingEntity|`processsession`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`unstructuredfilesearchrecord_ProcessSession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### unstructuredfilesearchrecord_SyncErrors + +Many-To-One Relationship: [syncerror unstructuredfilesearchrecord_SyncErrors](syncerror.md#BKMK_unstructuredfilesearchrecord_SyncErrors) + +|Property|Value| +|---|---| +|ReferencingEntity|`syncerror`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`unstructuredfilesearchrecord_SyncErrors`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/workflow.md b/powerapps-docs/developer/data-platform/reference/entities/workflow.md index 7c99e5b7f2..64ad980209 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/workflow.md +++ b/powerapps-docs/developer/data-platform/reference/entities/workflow.md @@ -73,6 +73,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [BillingContext](#BKMK_BillingContext) - [BusinessProcessType](#BKMK_BusinessProcessType) - [Category](#BKMK_Category) +- [Claims](#BKMK_Claims) - [ClientData](#BKMK_ClientData) - [ConnectionReferences](#BKMK_ConnectionReferences) - [CreateMetadata](#BKMK_CreateMetadata) @@ -93,9 +94,11 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [IsCustomProcessingStepAllowedForOtherPublishers](#BKMK_IsCustomProcessingStepAllowedForOtherPublishers) - [IsTransacted](#BKMK_IsTransacted) - [LanguageCode](#BKMK_LanguageCode) +- [Licensee](#BKMK_Licensee) - [LicenseEntitledBy](#BKMK_LicenseEntitledBy) - [Metadata](#BKMK_Metadata) - [Mode](#BKMK_Mode) +- [ModernFlowType](#BKMK_ModernFlowType) - [ModifyMetadata](#BKMK_ModifyMetadata) - [Name](#BKMK_Name) - [OnDemand](#BKMK_OnDemand) @@ -212,6 +215,23 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |6|**Desktop Flow**| |7|**AI Flow**| +### Claims + +|Property|Value| +|---|---| +|Description|**Claims related to this workflow.**| +|DisplayName|**Claims**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`claims`| +|RequiredLevel|None| +|Type|Memo| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100000| + ### ClientData |Property|Value| @@ -541,6 +561,19 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |MaxValue|2147483647| |MinValue|0| +### Licensee + +|Property|Value| +|---|---| +|Description|**The user object that should be used to establish the license the flow should operate under.**| +|DisplayName|**Licensee**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`licensee`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + ### LicenseEntitledBy |Property|Value| @@ -592,6 +625,27 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |0|**Background**| |1|**Real-time**| +### ModernFlowType + +|Property|Value| +|---|---| +|Description|**Type of the Modern Flow.**| +|DisplayName|**Modern Flow Type**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modernflowtype`| +|RequiredLevel|None| +|Type|Picklist| +|DefaultFormValue|0| +|GlobalChoiceName|`workflow_modernflowtype`| + +#### ModernFlowType Choices/Options + +|Value|Label| +|---|---| +|0|**PowerAutomateFlow**| +|1|**CopilotStudioFlow**| + ### ModifyMetadata |Property|Value| @@ -996,7 +1050,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |LogicalName|`throttlingbehavior`| |RequiredLevel|None| |Type|Picklist| -|DefaultFormValue|| +|DefaultFormValue|-1| |GlobalChoiceName|`workflow_throttlingbehaviortype`| #### ThrottlingBehavior Choices/Options @@ -1005,6 +1059,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |---|---| |0|**None**| |1|**TenantPool**| +|2|**CopilotStudio**| ### TriggerOnCreate @@ -1098,6 +1153,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |0|**Windows recorder (V1)**| |1|**Selenium IDE**| |2|**Power Automate Desktop**| +|3|**Test**| |101|**Recording**| ### UniqueName @@ -1638,6 +1694,7 @@ These relationships are many-to-one. Listed by **SchemaName**. - [workflow_active_workflow](#BKMK_workflow_active_workflow-many-to-one) - [workflow_createdby](#BKMK_workflow_createdby) - [workflow_createdonbehalfby](#BKMK_workflow_createdonbehalfby) +- [Workflow_licensee](#BKMK_Workflow_licensee) - [Workflow_licenseentitledby](#BKMK_Workflow_licenseentitledby-many-to-one) - [workflow_modifiedby](#BKMK_workflow_modifiedby) - [workflow_modifiedonbehalfby](#BKMK_workflow_modifiedonbehalfby) @@ -1734,6 +1791,19 @@ One-To-Many Relationship: [systemuser workflow_createdonbehalfby](systemuser.md# |IsHierarchical|| |CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| +### Workflow_licensee + +One-To-Many Relationship: [systemuser Workflow_licensee](systemuser.md#BKMK_Workflow_licensee) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`licensee`| +|ReferencingEntityNavigationPropertyName|`licensee_systemuserid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + ### Workflow_licenseentitledby One-To-Many Relationship: [workflow Workflow_licenseentitledby](#BKMK_Workflow_licenseentitledby-one-to-many) @@ -1810,13 +1880,17 @@ These relationships are one-to-many. Listed by **SchemaName**. - [process_processstage](#BKMK_process_processstage) - [process_processtrigger](#BKMK_process_processtrigger) - [regardingobjectid_process](#BKMK_regardingobjectid_process) +- [savingrule_workflow](#BKMK_savingrule_workflow) - [slabase_workflowid](#BKMK_slabase_workflowid) - [slaitembase_workflowid](#BKMK_slaitembase_workflowid) +- [taggedprocess_Process_workflow](#BKMK_taggedprocess_Process_workflow) - [workflow_active_workflow](#BKMK_workflow_active_workflow-one-to-many) - [Workflow_Annotation](#BKMK_Workflow_Annotation) +- [workflow_businessprocess](#BKMK_workflow_businessprocess) - [workflow_componentversionnrddatasourceset](#BKMK_workflow_componentversionnrddatasourceset) - [workflow_componentversions](#BKMK_workflow_componentversions) - [workflow_desktopflowbinary_Process](#BKMK_workflow_desktopflowbinary_Process) +- [workflow_flowaggregation_workflowid](#BKMK_workflow_flowaggregation_workflowid) - [workflow_flowlog_cloudflowid](#BKMK_workflow_flowlog_cloudflowid) - [workflow_flowlog_desktopflowid](#BKMK_workflow_flowlog_desktopflowid) - [workflow_flowrun_Workflow](#BKMK_workflow_flowrun_Workflow) @@ -1824,6 +1898,7 @@ These relationships are one-to-many. Listed by **SchemaName**. - [workflow_parent_workflow](#BKMK_workflow_parent_workflow-one-to-many) - [Workflow_SyncErrors](#BKMK_Workflow_SyncErrors) - [workflow_workflowbinary_Process](#BKMK_workflow_workflowbinary_Process) +- [workflowmetadata_WorkflowId_workflow](#BKMK_workflowmetadata_WorkflowId_workflow) ### adx_invitation_redemptionworkflow @@ -2053,6 +2128,18 @@ Many-To-One Relationship: [flowsession regardingobjectid_process](flowsession.md |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### savingrule_workflow + +Many-To-One Relationship: [savingrule savingrule_workflow](savingrule.md#BKMK_savingrule_workflow) + +|Property|Value| +|---|---| +|ReferencingEntity|`savingrule`| +|ReferencingAttribute|`workflowid`| +|ReferencedEntityNavigationPropertyName|`savingrule_Workflow`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### slabase_workflowid Many-To-One Relationship: [sla slabase_workflowid](sla.md#BKMK_slabase_workflowid) @@ -2077,6 +2164,18 @@ Many-To-One Relationship: [slaitem slaitembase_workflowid](slaitem.md#BKMK_slait |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### taggedprocess_Process_workflow + +Many-To-One Relationship: [taggedprocess taggedprocess_Process_workflow](taggedprocess.md#BKMK_taggedprocess_Process_workflow) + +|Property|Value| +|---|---| +|ReferencingEntity|`taggedprocess`| +|ReferencingAttribute|`process`| +|ReferencedEntityNavigationPropertyName|`taggedprocess_Process_workflow`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### workflow_active_workflow Many-To-One Relationship: [workflow workflow_active_workflow](#BKMK_workflow_active_workflow-many-to-one) @@ -2101,6 +2200,18 @@ Many-To-One Relationship: [annotation Workflow_Annotation](annotation.md#BKMK_Wo |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### workflow_businessprocess + +Many-To-One Relationship: [businessprocess workflow_businessprocess](businessprocess.md#BKMK_workflow_businessprocess) + +|Property|Value| +|---|---| +|ReferencingEntity|`businessprocess`| +|ReferencingAttribute|`rootworkflowid`| +|ReferencedEntityNavigationPropertyName|`workflow_businessprocess`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label: Root Process
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### workflow_componentversionnrddatasourceset Many-To-One Relationship: [componentversionnrddatasource workflow_componentversionnrddatasourceset](componentversionnrddatasource.md#BKMK_workflow_componentversionnrddatasourceset) @@ -2137,6 +2248,18 @@ Many-To-One Relationship: [desktopflowbinary workflow_desktopflowbinary_Process] |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### workflow_flowaggregation_workflowid + +Many-To-One Relationship: [flowaggregation workflow_flowaggregation_workflowid](flowaggregation.md#BKMK_workflow_flowaggregation_workflowid) + +|Property|Value| +|---|---| +|ReferencingEntity|`flowaggregation`| +|ReferencingAttribute|`workflowid`| +|ReferencedEntityNavigationPropertyName|`workflow_flowaggregation_workflowid`| +|IsCustomizable|`False`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### workflow_flowlog_cloudflowid Many-To-One Relationship: [flowlog workflow_flowlog_cloudflowid](flowlog.md#BKMK_workflow_flowlog_cloudflowid) @@ -2221,6 +2344,18 @@ Many-To-One Relationship: [workflowbinary workflow_workflowbinary_Process](workf |IsCustomizable|`True`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### workflowmetadata_WorkflowId_workflow + +Many-To-One Relationship: [workflowmetadata workflowmetadata_WorkflowId_workflow](workflowmetadata.md#BKMK_workflowmetadata_WorkflowId_workflow) + +|Property|Value| +|---|---| +|ReferencingEntity|`workflowmetadata`| +|ReferencingAttribute|`workflowid`| +|ReferencedEntityNavigationPropertyName|`workflowmetadata_WorkflowId_workflow`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ## Many-to-Many relationships diff --git a/powerapps-docs/developer/data-platform/reference/entities/workflowmetadata.md b/powerapps-docs/developer/data-platform/reference/entities/workflowmetadata.md new file mode 100644 index 0000000000..ff29146b0c --- /dev/null +++ b/powerapps-docs/developer/data-platform/reference/entities/workflowmetadata.md @@ -0,0 +1,928 @@ +--- +title: "Workflow Metadata (WorkflowMetadata) table/entity reference (Microsoft Dataverse)" +description: "Includes schema information and supported messages for the Workflow Metadata (WorkflowMetadata) table/entity with Microsoft Dataverse." +ms.topic: generated-reference +author: phecke +ms.author: pehecke +search.audienceType: + - developer +--- + +# Workflow Metadata (WorkflowMetadata) table/entity reference (Microsoft Dataverse) + +Metadata associated with workflows + +## Messages + +The following table lists the messages for the Workflow Metadata (WorkflowMetadata) table. +Messages represent operations that can be performed on the table. They may also be events. + +| Name
Is Event? |Web API Operation |SDK for .NET | +| ---- | ----- |----- | +| `Assign`
Event: True |`PATCH` /workflowmetadata(*workflowmetadataid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || +| `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| +| `Create`
Event: True |`POST` /workflowmetadata
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| +| `CreateMultiple`
Event: True | || +| `Delete`
Event: True |`DELETE` /workflowmetadata(*workflowmetadataid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| +| `Disassociate`
Event: True |[Disassociate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Disassociate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-disassociate-method-or-disassociaterequest)| +| `GrantAccess`
Event: True | || +| `IsValidStateTransition`
Event: False | || +| `ModifyAccess`
Event: True | || +| `Retrieve`
Event: True |`GET` /workflowmetadata(*workflowmetadataid*)
See [Retrieve](/powerapps/developer/data-platform/webapi/retrieve-entity-using-web-api) |[Retrieve records](/power-apps/developer/data-platform/org-service/entity-operations-retrieve)| +| `RetrieveMultiple`
Event: True |`GET` /workflowmetadata
See [Query data](/power-apps/developer/data-platform/webapi/query-data-web-api) |[Query data](/power-apps/developer/data-platform/org-service/entity-operations-query-data)| +| `RetrievePrincipalAccess`
Event: True | || +| `RetrieveSharedPrincipalsAndAccess`
Event: True | || +| `RevokeAccess`
Event: True | || +| `SetState`
Event: True |`PATCH` /workflowmetadata(*workflowmetadataid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `statecode` and `statuscode` properties. || +| `Update`
Event: True |`PATCH` /workflowmetadata(*workflowmetadataid*)
See [Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) |[Update records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-update)| +| `UpdateMultiple`
Event: True | || +| `Upsert`
Event: False |`PATCH` /workflowmetadata(*workflowmetadataid*)
See [Upsert a table row](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table-row) || +| `UpsertMultiple`
Event: False | || + +## Properties + +The following table lists selected properties for the Workflow Metadata (WorkflowMetadata) table. + +|Property|Value| +| --- | --- | +| **DisplayName** | **Workflow Metadata** | +| **DisplayCollectionName** | **Workflow Metadata** | +| **SchemaName** | `WorkflowMetadata` | +| **CollectionSchemaName** | `WorkflowMetadatas` | +| **EntitySetName** | `workflowmetadata`| +| **LogicalName** | `workflowmetadata` | +| **LogicalCollectionName** | `workflowmetadatas` | +| **PrimaryIdAttribute** | `workflowmetadataid` | +| **PrimaryNameAttribute** |`name` | +| **TableType** | `Standard` | +| **OwnershipType** | `UserOwned` | + +## Writable columns/attributes + +These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. + +- [ImportSequenceNumber](#BKMK_ImportSequenceNumber) +- [IsCustomizable](#BKMK_IsCustomizable) +- [Name](#BKMK_Name) +- [OverriddenCreatedOn](#BKMK_OverriddenCreatedOn) +- [OwnerId](#BKMK_OwnerId) +- [OwnerIdType](#BKMK_OwnerIdType) +- [PropertyKey](#BKMK_PropertyKey) +- [statecode](#BKMK_statecode) +- [statuscode](#BKMK_statuscode) +- [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) +- [Type](#BKMK_Type) +- [UTCConversionTimeZoneCode](#BKMK_UTCConversionTimeZoneCode) +- [Value](#BKMK_Value) +- [ValueType](#BKMK_ValueType) +- [WorkflowId](#BKMK_WorkflowId) +- [WorkflowMetadataId](#BKMK_WorkflowMetadataId) + +### ImportSequenceNumber + +|Property|Value| +|---|---| +|Description|**Sequence number of the import that created this record.**| +|DisplayName|**Import Sequence Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`importsequencenumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-2147483648| + +### IsCustomizable + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Is Customizable**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`iscustomizable`| +|RequiredLevel|SystemRequired| +|Type|ManagedProperty| + +### Name + +|Property|Value| +|---|---| +|Description|| +|DisplayName|**Name**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`name`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|850| + +### OverriddenCreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time that the record was migrated.**| +|DisplayName|**Record Created On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overriddencreatedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateOnly| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerId + +|Property|Value| +|---|---| +|Description|**Owner Id**| +|DisplayName|**Owner**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`ownerid`| +|RequiredLevel|SystemRequired| +|Type|Owner| +|Targets|systemuser, team| + +### OwnerIdType + +|Property|Value| +|---|---| +|Description|**Owner Id Type**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridtype`| +|RequiredLevel|SystemRequired| +|Type|EntityName| + +### PropertyKey + +|Property|Value| +|---|---| +|Description|**The metadata property key**| +|DisplayName|**Property Key**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`propertykey`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|400| + +### statecode + +|Property|Value| +|---|---| +|Description|**Status of the Workflow Metadata**| +|DisplayName|**Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statecode`| +|RequiredLevel|SystemRequired| +|Type|State| +|DefaultFormValue|| +|GlobalChoiceName|`workflowmetadata_statecode`| + +#### statecode Choices/Options + +|Value|Details| +|---|---| +|0|Label: **Active**
DefaultStatus: 1
InvariantName: `Active`| +|1|Label: **Inactive**
DefaultStatus: 2
InvariantName: `Inactive`| + +### statuscode + +|Property|Value| +|---|---| +|Description|**Reason for the status of the Workflow Metadata**| +|DisplayName|**Status Reason**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`statuscode`| +|RequiredLevel|None| +|Type|Status| +|DefaultFormValue|| +|GlobalChoiceName|`workflowmetadata_statuscode`| + +#### statuscode Choices/Options + +|Value|Details| +|---|---| +|1|Label: **Active**
State:0
TransitionData: None| +|2|Label: **Inactive**
State:1
TransitionData: None| + +### TimeZoneRuleVersionNumber + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Time Zone Rule Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`timezoneruleversionnumber`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### Type + +|Property|Value| +|---|---| +|Description|**The metadata type or category**| +|DisplayName|**Type**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`type`| +|RequiredLevel|ApplicationRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|400| + +### UTCConversionTimeZoneCode + +|Property|Value| +|---|---| +|Description|**Time zone code that was in use when the record was created.**| +|DisplayName|**UTC Conversion Time Zone Code**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`utcconversiontimezonecode`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|2147483647| +|MinValue|-1| + +### Value + +|Property|Value| +|---|---| +|Description|**The metadata property value for values 850 characters or fewer**| +|DisplayName|**Value**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`value`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|850| + +### ValueType + +|Property|Value| +|---|---| +|Description|**The type of the value column for this property**| +|DisplayName|**Value Type**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`valuetype`| +|RequiredLevel|ApplicationRequired| +|Type|Picklist| +|DefaultFormValue|0| +|GlobalChoiceName|`workflowmetadata_valuetype`| + +#### ValueType Choices/Options + +|Value|Label| +|---|---| +|0|**SQL**| +|1|**File**| + +### WorkflowId + +|Property|Value| +|---|---| +|Description|**The workflow this metadata is associated with**| +|DisplayName|**Workflow Id**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`workflowid`| +|RequiredLevel|ApplicationRequired| +|Type|Lookup| +|Targets|workflow| + +### WorkflowMetadataId + +|Property|Value| +|---|---| +|Description|**Unique identifier for entity instances**| +|DisplayName|**Workflow Metadata**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`workflowmetadataid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + + +## Read-only columns/attributes + +These columns/attributes return false for both **IsValidForCreate** and **IsValidForUpdate**. Listed by **SchemaName**. + +- [ComponentIdUnique](#BKMK_ComponentIdUnique) +- [ComponentState](#BKMK_ComponentState) +- [CreatedBy](#BKMK_CreatedBy) +- [CreatedOn](#BKMK_CreatedOn) +- [CreatedOnBehalfBy](#BKMK_CreatedOnBehalfBy) +- [FileValue](#BKMK_FileValue) +- [FileValue_Name](#BKMK_FileValue_Name) +- [IsManaged](#BKMK_IsManaged) +- [ModifiedBy](#BKMK_ModifiedBy) +- [ModifiedOn](#BKMK_ModifiedOn) +- [ModifiedOnBehalfBy](#BKMK_ModifiedOnBehalfBy) +- [OverwriteTime](#BKMK_OverwriteTime) +- [OwnerIdName](#BKMK_OwnerIdName) +- [OwnerIdYomiName](#BKMK_OwnerIdYomiName) +- [OwningBusinessUnit](#BKMK_OwningBusinessUnit) +- [OwningTeam](#BKMK_OwningTeam) +- [OwningUser](#BKMK_OwningUser) +- [SolutionId](#BKMK_SolutionId) +- [SupportingSolutionId](#BKMK_SupportingSolutionId) +- [VersionNumber](#BKMK_VersionNumber) + +### ComponentIdUnique + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Row id unique**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentidunique`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### ComponentState + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Component State**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`componentstate`| +|RequiredLevel|SystemRequired| +|Type|Picklist| +|DefaultFormValue|| +|GlobalChoiceName|`componentstate`| + +#### ComponentState Choices/Options + +|Value|Label| +|---|---| +|0|**Published**| +|1|**Unpublished**| +|2|**Deleted**| +|3|**Deleted Unpublished**| + +### CreatedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who created the record.**| +|DisplayName|**Created By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### CreatedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was created.**| +|DisplayName|**Created On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### CreatedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who created the record.**| +|DisplayName|**Created By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`createdonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### FileValue + +|Property|Value| +|---|---| +|Description|**The metadata property value for values larger than 850 characters**| +|DisplayName|**File Value**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`filevalue`| +|RequiredLevel|None| +|Type|File| +|MaxSizeInKB|100| + +### FileValue_Name + +|Property|Value| +|---|---| +|Description|| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`filevalue_name`| +|RequiredLevel|None| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Disabled| +|IsLocalizable|False| +|MaxLength|200| + +### IsManaged + +|Property|Value| +|---|---| +|Description|**Indicates whether the solution component is part of a managed solution.**| +|DisplayName|**Is Managed**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`ismanaged`| +|RequiredLevel|SystemRequired| +|Type|Boolean| +|GlobalChoiceName|`ismanaged`| +|DefaultValue|False| +|True Label|Managed| +|False Label|Unmanaged| + +### ModifiedBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the user who modified the record.**| +|DisplayName|**Modified By**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### ModifiedOn + +|Property|Value| +|---|---| +|Description|**Date and time when the record was modified.**| +|DisplayName|**Modified On**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### ModifiedOnBehalfBy + +|Property|Value| +|---|---| +|Description|**Unique identifier of the delegate user who modified the record.**| +|DisplayName|**Modified By (Delegate)**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`modifiedonbehalfby`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### OverwriteTime + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Record Overwrite Time**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`overwritetime`| +|RequiredLevel|SystemRequired| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + +### OwnerIdName + +|Property|Value| +|---|---| +|Description|**Name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridname`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwnerIdYomiName + +|Property|Value| +|---|---| +|Description|**Yomi name of the owner**| +|DisplayName|| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owneridyominame`| +|RequiredLevel|SystemRequired| +|Type|String| +|Format|Text| +|FormatName|Text| +|ImeMode|Auto| +|IsLocalizable|False| +|MaxLength|100| + +### OwningBusinessUnit + +|Property|Value| +|---|---| +|Description|**Unique identifier for the business unit that owns the record**| +|DisplayName|**Owning Business Unit**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`owningbusinessunit`| +|RequiredLevel|SystemRequired| +|Type|Lookup| +|Targets|businessunit| + +### OwningTeam + +|Property|Value| +|---|---| +|Description|**Unique identifier for the team that owns the record.**| +|DisplayName|**Owning Team**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owningteam`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|team| + +### OwningUser + +|Property|Value| +|---|---| +|Description|**Unique identifier for the user that owns the record.**| +|DisplayName|**Owning User**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`owninguser`| +|RequiredLevel|None| +|Type|Lookup| +|Targets|systemuser| + +### SolutionId + +|Property|Value| +|---|---| +|Description|**Unique identifier of the associated solution.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`solutionid`| +|RequiredLevel|SystemRequired| +|Type|Uniqueidentifier| + +### SupportingSolutionId + +|Property|Value| +|---|---| +|Description|**For internal use only.**| +|DisplayName|**Solution**| +|IsValidForForm|False| +|IsValidForRead|False| +|LogicalName|`supportingsolutionid`| +|RequiredLevel|None| +|Type|Uniqueidentifier| + +### VersionNumber + +|Property|Value| +|---|---| +|Description|**Version Number**| +|DisplayName|**Version Number**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`versionnumber`| +|RequiredLevel|None| +|Type|BigInt| +|MaxValue|9223372036854775807| +|MinValue|-9223372036854775808| + +## Many-to-One relationships + +These relationships are many-to-one. Listed by **SchemaName**. + +- [business_unit_workflowmetadata](#BKMK_business_unit_workflowmetadata) +- [FileAttachment_WorkflowMetadata_FileValue](#BKMK_FileAttachment_WorkflowMetadata_FileValue) +- [lk_workflowmetadata_createdby](#BKMK_lk_workflowmetadata_createdby) +- [lk_workflowmetadata_createdonbehalfby](#BKMK_lk_workflowmetadata_createdonbehalfby) +- [lk_workflowmetadata_modifiedby](#BKMK_lk_workflowmetadata_modifiedby) +- [lk_workflowmetadata_modifiedonbehalfby](#BKMK_lk_workflowmetadata_modifiedonbehalfby) +- [owner_workflowmetadata](#BKMK_owner_workflowmetadata) +- [team_workflowmetadata](#BKMK_team_workflowmetadata) +- [user_workflowmetadata](#BKMK_user_workflowmetadata) +- [workflowmetadata_WorkflowId_workflow](#BKMK_workflowmetadata_WorkflowId_workflow) + +### business_unit_workflowmetadata + +One-To-Many Relationship: [businessunit business_unit_workflowmetadata](businessunit.md#BKMK_business_unit_workflowmetadata) + +|Property|Value| +|---|---| +|ReferencedEntity|`businessunit`| +|ReferencedAttribute|`businessunitid`| +|ReferencingAttribute|`owningbusinessunit`| +|ReferencingEntityNavigationPropertyName|`owningbusinessunit`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `Restrict`
Assign: `NoCascade`
Delete: `Restrict`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### FileAttachment_WorkflowMetadata_FileValue + +One-To-Many Relationship: [fileattachment FileAttachment_WorkflowMetadata_FileValue](fileattachment.md#BKMK_FileAttachment_WorkflowMetadata_FileValue) + +|Property|Value| +|---|---| +|ReferencedEntity|`fileattachment`| +|ReferencedAttribute|`fileattachmentid`| +|ReferencingAttribute|`filevalue`| +|ReferencingEntityNavigationPropertyName|`filevalue`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `NoCascade`
Delete: `RemoveLink`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_workflowmetadata_createdby + +One-To-Many Relationship: [systemuser lk_workflowmetadata_createdby](systemuser.md#BKMK_lk_workflowmetadata_createdby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdby`| +|ReferencingEntityNavigationPropertyName|`createdby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_workflowmetadata_createdonbehalfby + +One-To-Many Relationship: [systemuser lk_workflowmetadata_createdonbehalfby](systemuser.md#BKMK_lk_workflowmetadata_createdonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`createdonbehalfby`| +|ReferencingEntityNavigationPropertyName|`createdonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_workflowmetadata_modifiedby + +One-To-Many Relationship: [systemuser lk_workflowmetadata_modifiedby](systemuser.md#BKMK_lk_workflowmetadata_modifiedby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedby`| +|ReferencingEntityNavigationPropertyName|`modifiedby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### lk_workflowmetadata_modifiedonbehalfby + +One-To-Many Relationship: [systemuser lk_workflowmetadata_modifiedonbehalfby](systemuser.md#BKMK_lk_workflowmetadata_modifiedonbehalfby) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`modifiedonbehalfby`| +|ReferencingEntityNavigationPropertyName|`modifiedonbehalfby`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### owner_workflowmetadata + +One-To-Many Relationship: [owner owner_workflowmetadata](owner.md#BKMK_owner_workflowmetadata) + +|Property|Value| +|---|---| +|ReferencedEntity|`owner`| +|ReferencedAttribute|`ownerid`| +|ReferencingAttribute|`ownerid`| +|ReferencingEntityNavigationPropertyName|`ownerid`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### team_workflowmetadata + +One-To-Many Relationship: [team team_workflowmetadata](team.md#BKMK_team_workflowmetadata) + +|Property|Value| +|---|---| +|ReferencedEntity|`team`| +|ReferencedAttribute|`teamid`| +|ReferencingAttribute|`owningteam`| +|ReferencingEntityNavigationPropertyName|`owningteam`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### user_workflowmetadata + +One-To-Many Relationship: [systemuser user_workflowmetadata](systemuser.md#BKMK_user_workflowmetadata) + +|Property|Value| +|---|---| +|ReferencedEntity|`systemuser`| +|ReferencedAttribute|`systemuserid`| +|ReferencingAttribute|`owninguser`| +|ReferencingEntityNavigationPropertyName|`owninguser`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `NoCascade`
Assign: `NoCascade`
Delete: `NoCascade`
Merge: `NoCascade`
Reparent: `NoCascade`
RollupView: `NoCascade`
Share: `NoCascade`
Unshare: `NoCascade`| + +### workflowmetadata_WorkflowId_workflow + +One-To-Many Relationship: [workflow workflowmetadata_WorkflowId_workflow](workflow.md#BKMK_workflowmetadata_WorkflowId_workflow) + +|Property|Value| +|---|---| +|ReferencedEntity|`workflow`| +|ReferencedAttribute|`workflowid`| +|ReferencingAttribute|`workflowid`| +|ReferencingEntityNavigationPropertyName|`WorkflowId`| +|IsHierarchical|| +|CascadeConfiguration|Archive: `RemoveLink`
Assign: `Cascade`
Delete: `Cascade`
Merge: `NoCascade`
Reparent: `Cascade`
RollupView: `NoCascade`
Share: `Cascade`
Unshare: `Cascade`| + + +## One-to-Many relationships + +These relationships are one-to-many. Listed by **SchemaName**. + +- [workflowmetadata_AsyncOperations](#BKMK_workflowmetadata_AsyncOperations) +- [workflowmetadata_BulkDeleteFailures](#BKMK_workflowmetadata_BulkDeleteFailures) +- [workflowmetadata_DuplicateBaseRecord](#BKMK_workflowmetadata_DuplicateBaseRecord) +- [workflowmetadata_DuplicateMatchingRecord](#BKMK_workflowmetadata_DuplicateMatchingRecord) +- [workflowmetadata_FileAttachments](#BKMK_workflowmetadata_FileAttachments) +- [workflowmetadata_MailboxTrackingFolders](#BKMK_workflowmetadata_MailboxTrackingFolders) +- [workflowmetadata_PrincipalObjectAttributeAccesses](#BKMK_workflowmetadata_PrincipalObjectAttributeAccesses) +- [workflowmetadata_ProcessSession](#BKMK_workflowmetadata_ProcessSession) +- [workflowmetadata_SyncErrors](#BKMK_workflowmetadata_SyncErrors) + +### workflowmetadata_AsyncOperations + +Many-To-One Relationship: [asyncoperation workflowmetadata_AsyncOperations](asyncoperation.md#BKMK_workflowmetadata_AsyncOperations) + +|Property|Value| +|---|---| +|ReferencingEntity|`asyncoperation`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`workflowmetadata_AsyncOperations`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### workflowmetadata_BulkDeleteFailures + +Many-To-One Relationship: [bulkdeletefailure workflowmetadata_BulkDeleteFailures](bulkdeletefailure.md#BKMK_workflowmetadata_BulkDeleteFailures) + +|Property|Value| +|---|---| +|ReferencingEntity|`bulkdeletefailure`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`workflowmetadata_BulkDeleteFailures`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### workflowmetadata_DuplicateBaseRecord + +Many-To-One Relationship: [duplicaterecord workflowmetadata_DuplicateBaseRecord](duplicaterecord.md#BKMK_workflowmetadata_DuplicateBaseRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`baserecordid`| +|ReferencedEntityNavigationPropertyName|`workflowmetadata_DuplicateBaseRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### workflowmetadata_DuplicateMatchingRecord + +Many-To-One Relationship: [duplicaterecord workflowmetadata_DuplicateMatchingRecord](duplicaterecord.md#BKMK_workflowmetadata_DuplicateMatchingRecord) + +|Property|Value| +|---|---| +|ReferencingEntity|`duplicaterecord`| +|ReferencingAttribute|`duplicaterecordid`| +|ReferencedEntityNavigationPropertyName|`workflowmetadata_DuplicateMatchingRecord`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### workflowmetadata_FileAttachments + +Many-To-One Relationship: [fileattachment workflowmetadata_FileAttachments](fileattachment.md#BKMK_workflowmetadata_FileAttachments) + +|Property|Value| +|---|---| +|ReferencingEntity|`fileattachment`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`workflowmetadata_FileAttachments`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### workflowmetadata_MailboxTrackingFolders + +Many-To-One Relationship: [mailboxtrackingfolder workflowmetadata_MailboxTrackingFolders](mailboxtrackingfolder.md#BKMK_workflowmetadata_MailboxTrackingFolders) + +|Property|Value| +|---|---| +|ReferencingEntity|`mailboxtrackingfolder`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`workflowmetadata_MailboxTrackingFolders`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### workflowmetadata_PrincipalObjectAttributeAccesses + +Many-To-One Relationship: [principalobjectattributeaccess workflowmetadata_PrincipalObjectAttributeAccesses](principalobjectattributeaccess.md#BKMK_workflowmetadata_PrincipalObjectAttributeAccesses) + +|Property|Value| +|---|---| +|ReferencingEntity|`principalobjectattributeaccess`| +|ReferencingAttribute|`objectid`| +|ReferencedEntityNavigationPropertyName|`workflowmetadata_PrincipalObjectAttributeAccesses`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### workflowmetadata_ProcessSession + +Many-To-One Relationship: [processsession workflowmetadata_ProcessSession](processsession.md#BKMK_workflowmetadata_ProcessSession) + +|Property|Value| +|---|---| +|ReferencingEntity|`processsession`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`workflowmetadata_ProcessSession`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + +### workflowmetadata_SyncErrors + +Many-To-One Relationship: [syncerror workflowmetadata_SyncErrors](syncerror.md#BKMK_workflowmetadata_SyncErrors) + +|Property|Value| +|---|---| +|ReferencingEntity|`syncerror`| +|ReferencingAttribute|`regardingobjectid`| +|ReferencedEntityNavigationPropertyName|`workflowmetadata_SyncErrors`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `DoNotDisplay`
Group: `Details`
Label:
MenuId: null
Order:
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + + + +### See also + +[Dataverse table/entity reference](/power-apps/developer/data-platform/reference/about-entity-reference) +[Dataverse Web API Reference](/power-apps/developer/data-platform/webapi/reference/about) + diff --git a/powerapps-docs/developer/data-platform/reference/entities/workqueue.md b/powerapps-docs/developer/data-platform/reference/entities/workqueue.md index 129d55d20f..b1a74546ec 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/workqueue.md +++ b/powerapps-docs/developer/data-platform/reference/entities/workqueue.md @@ -22,6 +22,7 @@ Messages represent operations that can be performed on the table. They may also | `Assign`
Event: True |`PATCH` /workqueues(*workqueueid*)
[Update](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-update) the `ownerid` property. || | `Associate`
Event: True |[Associate records](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) |[Associate records](/power-apps/developer/data-platform/org-service/entity-operations-associate-disassociate#use-the-associate-method-or-associaterequest)| | `ClearWorkQueue`
Event: False | |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| +| `ComputeSlaWorkQueueItem`
Event: False | |[Learn to use messages with the SDK for .NET](/power-apps/developer/data-platform/org-service/use-messages)| | `Create`
Event: True |`POST` /workqueues
See [Create](/powerapps/developer/data-platform/webapi/create-entity-web-api) |[Create records](/power-apps/developer/data-platform/org-service/entity-operations-create#basic-create)| | `CreateMultiple`
Event: True | || | `Delete`
Event: True |`DELETE` /workqueues(*workqueueid*)
See [Delete](/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#basic-delete) |[Delete records](/power-apps/developer/data-platform/org-service/entity-operations-update-delete#basic-delete)| @@ -64,6 +65,7 @@ The following table lists selected properties for the Work Queue (workqueue) tab These columns/attributes return true for either **IsValidForCreate** or **IsValidForUpdate** (usually both). Listed by **SchemaName**. - [allowupdateinputwhileprocessing](#BKMK_allowupdateinputwhileprocessing) +- [continueprocessingifslaviolated](#BKMK_continueprocessingifslaviolated) - [defaultitemtimetoliveinminutes](#BKMK_defaultitemtimetoliveinminutes) - [description](#BKMK_description) - [ImportSequenceNumber](#BKMK_ImportSequenceNumber) @@ -77,6 +79,8 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [OwnerId](#BKMK_OwnerId) - [OwnerIdType](#BKMK_OwnerIdType) - [prioritytype](#BKMK_prioritytype) +- [slathresholdinpercentage](#BKMK_slathresholdinpercentage) +- [slathresholdmodifiedon](#BKMK_slathresholdmodifiedon) - [statecode](#BKMK_statecode) - [statuscode](#BKMK_statuscode) - [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) @@ -107,6 +111,28 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |1|**No**| |2|**Yes**| +### continueprocessingifslaviolated + +|Property|Value| +|---|---| +|Description|**Indicates whether item should be processed even if SLA is violated. Default value is NotSet.**| +|DisplayName|**Continue to process item even if SLA is violated**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`continueprocessingifslaviolated`| +|RequiredLevel|None| +|Type|Picklist| +|DefaultFormValue|0| +|GlobalChoiceName|`workqueue_continueprocessingifslaviolated`| + +#### continueprocessingifslaviolated Choices/Options + +|Value|Label| +|---|---| +|0|**NotSet**| +|1|**No**| +|2|**Yes**| + ### defaultitemtimetoliveinminutes |Property|Value| @@ -310,6 +336,37 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |---|---| |0|**Fifo**| +### slathresholdinpercentage + +|Property|Value| +|---|---| +|Description|**The SLA Threshold in percentage for items added to the work queue.**| +|DisplayName|**SLA Threshold in Percentage**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`slathresholdinpercentage`| +|RequiredLevel|None| +|Type|Integer| +|MaxValue|100| +|MinValue|0| + +### slathresholdmodifiedon + +|Property|Value| +|---|---| +|Description|**Date and time that the SLA Threshold was modified on.**| +|DisplayName|**SLA Threshold Modified On**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`slathresholdmodifiedon`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + ### statecode |Property|Value| @@ -843,6 +900,7 @@ One-To-Many Relationship: [systemuser user_workqueue](systemuser.md#BKMK_user_wo These relationships are one-to-many. Listed by **SchemaName**. - [flowevent_workqueue](#BKMK_flowevent_workqueue) +- [savingrule_workqueue](#BKMK_savingrule_workqueue) - [workqueue_AsyncOperations](#BKMK_workqueue_AsyncOperations) - [workqueue_BulkDeleteFailures](#BKMK_workqueue_BulkDeleteFailures) - [workqueue_DuplicateBaseRecord](#BKMK_workqueue_DuplicateBaseRecord) @@ -867,6 +925,18 @@ Many-To-One Relationship: [flowevent flowevent_workqueue](flowevent.md#BKMK_flow |IsCustomizable|`False`| |AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| +### savingrule_workqueue + +Many-To-One Relationship: [savingrule savingrule_workqueue](savingrule.md#BKMK_savingrule_workqueue) + +|Property|Value| +|---|---| +|ReferencingEntity|`savingrule`| +|ReferencingAttribute|`workqueueid`| +|ReferencedEntityNavigationPropertyName|`savingrule_workqueue`| +|IsCustomizable|`True`| +|AssociatedMenuConfiguration|AvailableOffline: True
Behavior: `UseCollectionName`
Group: `Details`
Label:
MenuId: null
Order: 10000
QueryApi: null
ViewId: `00000000-0000-0000-0000-000000000000`| + ### workqueue_AsyncOperations Many-To-One Relationship: [asyncoperation workqueue_AsyncOperations](asyncoperation.md#BKMK_workqueue_AsyncOperations) diff --git a/powerapps-docs/developer/data-platform/reference/entities/workqueueitem.md b/powerapps-docs/developer/data-platform/reference/entities/workqueueitem.md index 4b3d557aed..aaaf5741e0 100644 --- a/powerapps-docs/developer/data-platform/reference/entities/workqueueitem.md +++ b/powerapps-docs/developer/data-platform/reference/entities/workqueueitem.md @@ -83,6 +83,8 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali - [processortype](#BKMK_processortype) - [requeuecount](#BKMK_requeuecount) - [retrycount](#BKMK_retrycount) +- [slastatus](#BKMK_slastatus) +- [slathresholddate](#BKMK_slathresholddate) - [statecode](#BKMK_statecode) - [statuscode](#BKMK_statuscode) - [TimeZoneRuleVersionNumber](#BKMK_TimeZoneRuleVersionNumber) @@ -155,7 +157,7 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |Type|DateTime| |CanChangeDateTimeBehavior|False| |DateTimeBehavior|UserLocal| -|Format|DateOnly| +|Format|DateAndTime| |ImeMode|Auto| |SourceTypeMask|0| @@ -420,6 +422,46 @@ These columns/attributes return true for either **IsValidForCreate** or **IsVali |MaxValue|2147483647| |MinValue|0| +### slastatus + +|Property|Value| +|---|---| +|Description|**The SLA status provides more context for on the item processing status (In SLA, At Risk, Out of SLA).**| +|DisplayName|**SLA Status**| +|IsValidForForm|True| +|IsValidForRead|True| +|LogicalName|`slastatus`| +|RequiredLevel|None| +|Type|Picklist| +|DefaultFormValue|0| +|GlobalChoiceName|`workqueueitem_slastatus`| + +#### slastatus Choices/Options + +|Value|Label| +|---|---| +|0|**NotSet**| +|1|**In**| +|2|**AtRisk**| +|3|**Out**| + +### slathresholddate + +|Property|Value| +|---|---| +|Description|**Date and time on which the work queue item starts to be at risk of SLA violation.**| +|DisplayName|**SLA Threshold Time**| +|IsValidForForm|False| +|IsValidForRead|True| +|LogicalName|`slathresholddate`| +|RequiredLevel|None| +|Type|DateTime| +|CanChangeDateTimeBehavior|False| +|DateTimeBehavior|UserLocal| +|Format|DateAndTime| +|ImeMode|Inactive| +|SourceTypeMask|0| + ### statecode |Property|Value| diff --git a/powerapps-docs/developer/data-platform/reference/web-service-error-codes.md b/powerapps-docs/developer/data-platform/reference/web-service-error-codes.md index 2593b466c9..882a0e29d5 100644 --- a/powerapps-docs/developer/data-platform/reference/web-service-error-codes.md +++ b/powerapps-docs/developer/data-platform/reference/web-service-error-codes.md @@ -1,9 +1,9 @@ --- title: "Web service error codes (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This topic lists the error codes you might encounter when you debug your code. " # 115-145 characters including spaces. This abstract displays in the search result. -ms.date: 02/24/2025 -author: MicroSri -ms.author: sriknair +ms.date: 07/21/2025 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: generated-reference search.audienceType: diff --git a/powerapps-docs/developer/data-platform/register-plug-in.md b/powerapps-docs/developer/data-platform/register-plug-in.md index e1d081e554..5f8da99c56 100644 --- a/powerapps-docs/developer/data-platform/register-plug-in.md +++ b/powerapps-docs/developer/data-platform/register-plug-in.md @@ -3,10 +3,10 @@ title: "Register a plug-in (Microsoft Dataverse) | Microsoft Docs" # Intent and description: "Learn how to register a plug-in assembly and step with the Microsoft Dataverse event framework pipeline." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 08/28/2024 ms.reviewer: "pehecke" -ms.topic: "article" -author: MicroSri +ms.topic: how-to +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/register-web-hook.md b/powerapps-docs/developer/data-platform/register-web-hook.md index 70d36bc151..f2c5f78f3c 100644 --- a/powerapps-docs/developer/data-platform/register-web-hook.md +++ b/powerapps-docs/developer/data-platform/register-web-hook.md @@ -3,7 +3,7 @@ title: Register a WebHook description: Learn how to register a WebHook using the Plug-in Registration tool. ms.date: 03/22/2022 ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to author: swylezol ms.subservice: dataverse-developer ms.author: swylezol diff --git a/powerapps-docs/developer/data-platform/run-duplicate-detection.md b/powerapps-docs/developer/data-platform/run-duplicate-detection.md index f68c7346af..6283115788 100644 --- a/powerapps-docs/developer/data-platform/run-duplicate-detection.md +++ b/powerapps-docs/developer/data-platform/run-duplicate-detection.md @@ -5,7 +5,7 @@ ms.custom: "" ms.date: 03/26/2021 ms.reviewer: "pehecke" -ms.topic: "article" +ms.topic: how-to author: "mayadumesh" # GitHub ID ms.subservice: dataverse-developer ms.author: "jdaly" # MSFT alias of Microsoft employees only @@ -68,7 +68,7 @@ OData-Version: 4.0 Submit an asynchronous duplicate detection job that runs in the background. The duplicates are detected according to the published duplicate rules for the table type. The detected duplicates are stored as `DuplicateRecord` records in Dynamics 365. -A maximum of 5000 duplicates are returned by the duplicate detection job. +A maximum of 5,000 duplicates are returned by the duplicate detection job. ### Options diff --git a/powerapps-docs/developer/data-platform/sample-data.md b/powerapps-docs/developer/data-platform/sample-data.md index 0adc426005..6839a6a03d 100644 --- a/powerapps-docs/developer/data-platform/sample-data.md +++ b/powerapps-docs/developer/data-platform/sample-data.md @@ -3,7 +3,7 @@ title: "Add and remove sample data (Microsoft Dataverse) | Microsoft Learn" # In description: "Learn how to install or uninstall sample data using the Web API or SDK for .NET." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 09/28/2022 ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to author: JimDaly # GitHub ID ms.subservice: dataverse-developer ms.author: jdaly # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/search/autocomplete.md b/powerapps-docs/developer/data-platform/search/autocomplete.md index 8169465e78..a4eac51eee 100644 --- a/powerapps-docs/developer/data-platform/search/autocomplete.md +++ b/powerapps-docs/developer/data-platform/search/autocomplete.md @@ -4,8 +4,8 @@ description: "Use Dataverse search autocomplete to provide autocompletion of inp ms.date: 10/20/2023 ms.reviewer: jdaly ms.topic: article -author: mspilde -ms.author: mspilde +author: seanwat-msft +ms.author: seanwat search.audienceType: - developer search.app: @@ -13,6 +13,7 @@ search.app: - D365CE contributors: - JimDaly + - jeromeblouinms --- # Dataverse Search autocomplete diff --git a/powerapps-docs/developer/data-platform/search/custom-search-analyzer.md b/powerapps-docs/developer/data-platform/search/custom-search-analyzer.md index af96183005..d847a056ce 100644 --- a/powerapps-docs/developer/data-platform/search/custom-search-analyzer.md +++ b/powerapps-docs/developer/data-platform/search/custom-search-analyzer.md @@ -1,11 +1,11 @@ --- -title: "Custom column analyzers for Dataverse Search" -description: "You can tailor the search results you get from Dataverse search by applying special search analyzers for specific table columns. You can use default Azure Search analyzers or create your own custom analyzer." -ms.date: 08/16/2024 +title: "Configure Azure AI built-in analyzers for Dataverse Search" +description: "You can tailor the search results you get from Dataverse search by applying special search analyzers for specific table columns. You can use Azure AI built-in analyzers to modify the search results you get." +ms.date: 03/28/2025 ms.reviewer: jdaly -ms.topic: article -author: mspilde -ms.author: mspilde +ms.topic: how-to +author: seanwat-msft +ms.author: seanwat search.audienceType: - developer search.app: @@ -13,9 +13,9 @@ search.app: - D365CE contributors: - JimDaly - - wobushixinxin67 + - jeromeblouinms --- -# Custom column analyzers for Dataverse Search +# Configure Azure AI built-in analyzers for Dataverse Search Dataverse search uses many different [Azure AI Search](/azure/search/search-what-is-azure-search) capabilities that include both index and search analyzers to return the best data based on what the user asks for. These built-in capabilities help to define how an index maps certain phrases or words to the best match to data in a column and a row in a table. @@ -48,7 +48,7 @@ For your search terms and phrases, the Azure AI Search built-in analyzers might To use one of the Azure AI Search built-in analyzers for a specific column, create a row in the [SearchAttributeSettings table](../reference/entities/searchattributesettings.md) set the [Name](../reference/entities/searchattributesettings.md#BKMK_name), [entityname](../reference/entities/searchattributesettings.md#BKMK_entityname), and [attributename](../reference/entities/searchattributesettings.md#BKMK_attributename) to be used and set the [settings](../reference/entities/searchattributesettings.md#BKMK_settings) to refer to a built-in search analyzer like `{"analyzer": "keyword"}`, or a language analyzer like `{ "analyzer": "it.microsoft"}`. [Learn how to set an analyzer for a column](#set-an-analyzer-for-a-column) -You can override the default on a for string columns. Alternative analyzers can be a [language analyzer](/azure/search/index-add-language-analyzers) for linguistic processing, a [custom analyzer](/azure/search/index-add-custom-analyzers), or a built-in analyzer from the list of [available analyzers](/azure/search/index-add-custom-analyzers#built-in-analyzers). +You can override the default for string columns. Alternative analyzers can be a [language analyzer](/azure/search/index-add-language-analyzers) for linguistic processing, a [custom analyzer](/azure/search/index-add-custom-analyzers), or a built-in analyzer from the list of [available analyzers](/azure/search/index-add-custom-analyzers#built-in-analyzers). ## Set an analyzer for a column @@ -58,9 +58,9 @@ To apply a different analyzer for a Dataverse table column, there needs to be a Setting this property doesn't require writing code. Anyone with access to [Power Apps](https://make.powerapps.com) and write access to the `SearchAttributeSettings` table can apply this change, but they need to take extra care not to create a duplicate row. If you want to use code to create this row, see [Edit SearchAttributeSettings table columns with code](#edit-searchattributesettings-table-columns-with-code). > [!NOTE] -> Don't set an analyzer for the [primary name column of a table](../entity-metadata.md#primary-name). You can do this, but the results will not be reliable. Primary name columns are treated differently because most tables have them and they play a special role by providing the string value used to link to records within apps. +> Don't set an analyzer for the [primary name column of a table](../entity-metadata.md#primary-name). You can do this, but the results won't be reliable. Primary name columns are treated differently because most tables have them and they play a special role by providing the string value used to link to records within apps. > -> If you need to apply a custom analyzer that uses the data in the primary name column of a table, create a separate string column and copy the content of the primary name column into it. Set an analyzer on that column instead. +> If you need to configure an analyzer that uses the data in the primary name column of a table, create a separate string column and copy the content of the primary name column into it. Set an analyzer on that column instead. ### Configure Power Apps to edit the SearchAttributeSettings table @@ -73,7 +73,7 @@ Follow these steps to open the [SearchAttributeSettings table](../reference/enti 1. Select **All** tables. 1. In the top right corner, search for `searchattributesettings`. 1. Open the **SearchAttributeSettings** table. -1. Make sure when the table opens the **Name**, **attributename**, **entityname** and **settings** columns are visible. You can add them by selecting "**+18 more**" next to the **Name** column. +1. Make sure when the table opens the **Name**, **attributename**, **entityname**, and **settings** columns are visible. You can add them by selecting "**+18 more**" next to the **Name** column. 1. After selecting the columns, select **Save**. This closes the dialog and the columns are visible on the page. After you save, the columns should be visible. @@ -85,17 +85,17 @@ For more information, see [Table columns and data](../../../maker/data-platform/ The following table describes what to add to each column: > [!IMPORTANT] -> The combination of **entityname** and **attributename** values must be unique in the **SearchAttributeSettings** table. You must make sure that you don't enter duplicate rows for with the same values for these two columns. When a duplicate row exists Dataverse search will return an error when people perform a search. +> The combination of **entityname** and **attributename** values must be unique in the **SearchAttributeSettings** table. You must make sure that you don't enter duplicate rows for with the same values for these two columns. When a duplicate row exists, Dataverse search returns an error when people perform a search. > > To avoid anyone unintentionally creating a duplicate row, you can add an alternate key to the `SearchAttributeSettings` table specifying the `entityname` and `attributename` columns in the key. [Learn to define alternate keys using Power Apps](../../../maker/data-platform/define-alternate-keys-portal.md) |Name |What to add| |---------|---------| -|**Name**|The name can be anything that helps you identify the custom analyzer you added.| +|**Name**|The name can be anything that helps you identify the analyzer to configure.| |**entityname**|The logical name of the table that has the column you're configuring.| |**attributename**|The logical name of column of the table you want the analyzer used for your search terms or phrases.| -|**settings**|The JSON string that identifies your custom analyzer. You should set only the `analyzer`, or the `indexanalyzer` and `searchanalyzer`. The values might look something like these: `{ "analyzer": "name_analyzer"}` or `{"indexanalyzer": "name_analyzer", "searchanalyzer": "name_analyzer"}`| +|**settings**|The JSON string that identifies the analyzer to configure. You should set only the `analyzer`, or the `indexanalyzer` and `searchanalyzer`. The values might look something like these: `{ "analyzer": "name_analyzer"}` or `{"indexanalyzer": "name_analyzer", "searchanalyzer": "name_analyzer"}`| @@ -373,348 +373,6 @@ $createdRecordMessage = @() --- -## Create a custom analyzer - -When you aren't getting the results from Dataverse search that you expect, and none of the built-in Azure AI Search analyzers do what you need, you can build and configure a custom search analyzer. It's important to understand what an Azure AI Search custom analyzer is and how to build one that can be applied to your power platform environment so that Dataverse search can return data people expect. Refer to [Add custom analyzers to string fields](/azure/search/index-add-custom-analyzers) to learn more on what an Azure custom analyzer is and how it helps return the best results for your users. - -> [!NOTE] -> For the custom analyzer to work with Dataverse, the names of the custom analyzers, char filters, tokenizers and token filters must start with `msdyn_search_`. - -The following example is a custom analyzer named `msdyn_search_remove_parenthesis_analyzer` which removes the parentheses in the value of the column during indexing and performing search. - -```json -{ - "tokenizers": { - "$type": "System.Collections.Generic.List`1[[Microsoft.Azure.Search.Models.Tokenizer, Microsoft.Azure.Search.Service]], mscorlib", - "$values": [ - { - "$type": "Microsoft.Azure.Search.Models.StandardTokenizerV2, Microsoft.Azure.Search.Service", - "name": "msdyn_search_remove_parenthesis_tokenizer" - } - ] - }, - "tokenFilters": { - "$type": "System.Collections.Generic.List`1[[Microsoft.Azure.Search.Models.TokenFilter, Microsoft.Azure.Search.Service]], mscorlib", - "$values": [] - }, - "charFilters": { - "$type": "System.Collections.Generic.List`1[[Microsoft.Azure.Search.Models.CharFilter, Microsoft.Azure.Search.Service]], mscorlib", - "$values": [ - { - "$type": "Microsoft.Azure.Search.Models.MappingCharFilter, Microsoft.Azure.Search.Service", - "mappings": { - "$type": "System.Collections.Generic.List`1[[System.String, mscorlib]], mscorlib", - "$values": [ - "(=>", - ")=>" - ] - }, - "name": "msdyn_search_remove_parenthesis_char" - } - ] - }, - "analyzers": { - "$type": "System.Collections.Generic.List`1[[Microsoft.Azure.Search.Models.Analyzer, Microsoft.Azure.Search.Service]], mscorlib", - "$values": [ - { - "$type": "Microsoft.Azure.Search.Models.CustomAnalyzer, Microsoft.Azure.Search.Service", - "tokenizer": "msdyn_search_remove_parenthesis_tokenizer", - "tokenFilters": { - "$type": "Microsoft.Azure.Search.Models.TokenFilterName[], Microsoft.Azure.Search.Service", - "$values": [ - "lowercase" - ] - }, - "charFilters": { - "$type": "Microsoft.Azure.Search.Models.CharFilterName[], Microsoft.Azure.Search.Service", - "$values": [ - "msdyn_search_remove_parenthesis_char" - ] - }, - "name": "msdyn_search_remove_parenthesis_analyzer" - } - ] - } -} -``` - -## Enable the custom analyzer for Dataverse Search - -After creating a custom search analyzer, you must enable it for Dataverse search by adding the definition of the analyzer in the [SearchCustomAnalyzer table](../reference/entities/searchcustomanalyzer.md) and populate the [SearchAttributeSettings table](../reference/entities/searchattributesettings.md) with the data to use the custom analyzer as described in [Set an analyzer for a column](#set-an-analyzer-for-a-column). - -> [!NOTE] -> The [SearchCustomAnalyzer table](../reference/entities/searchcustomanalyzer.md) must contain no more than one row of data. By default it has no data. If more than one row is added, people using Dataverse search will get errors. -> -> You can't upload a custom analyzer using [Power Apps](https://make.powerapps.com), you need to use code to upload the file containing the custom analyzer. -> -> You can't remove or edit existing `tokenizers`, `tokenFilters`, `charFilters`, and `analyzers` after they have been uploaded to the `SearchCustomAnalyzer` table `analyzers` file column. Each items is added when it is created by uploading the file to the `analyzers` file column the first time. If you need to modify the item, you must redefine it with a different name, and upload the file again. If you redefine an item, we recommend you keep the original definition in the JSON file so you know that name is used already, and can't be used again. - - -## Set the custom analyzer definition - -Setting the [SearchCustomAnalyzer table](../reference/entities/searchcustomanalyzer.md) row requires two steps: - -1. Create the row and set the [Name column](../reference/entities/searchcustomanalyzer.md#BKMK_name). -2. Upload the file with the analyzer into the [analyzers column](../reference/entities/searchcustomanalyzer.md#BKMK_analyzers) - -If a row already exists, you can just update the .json file set in the `analyzers` column without creating a new row. - -The following example code includes logic to ensure that no more than one row exists in the `searchcustomanalyzer` table, and that any existing row isn't overwritten accidentally. - -### [SDK for .NET](#tab/sdk) - -This static `SetSearchCustomAnalyzer` method depends on an example `UploadFile` function you can find in [Use Dataverse messages to upload a file](../file-column-data.md#use-dataverse-messages-to-upload-a-file). - - -```csharp -/// -/// Sets the custom analyzers for a Dataverse environment -/// -/// The authenticated IOrganizationService instance -/// Information about the file containing custom analyzers -/// The name for the custom analyzer record -/// Whether to update an existing custom analyzer if found. -/// -/// Whether the caller asserts that the custom analyzer file is valid. -/// -/// -static void SetSearchCustomAnalyzer( - IOrganizationService service, - FileInfo customAnalyzerFile, - string customAnalyzerName, - bool overwriteExisting, - bool isValidCustomAnalyzer) -{ - - if (!isValidCustomAnalyzer) - { - string message = "Please make sure the names of the custom analyzers, "; - message += "char filters, tokenizers and token filters"; - message += "defined in the file start with 'msdyn_search_' "; - message += "and make sure the file is in a valid json format."; - message += "Please update the value of validCustomAnalyzer "; - message += "to true and execute SetSearchCustomAnalyzer again."; - - throw new Exception(message); - } - - try - { - // Check if there are any existing records - QueryExpression query = new("searchcustomanalyzer") - { - TopCount = 2, - ColumnSet = new("searchcustomanalyzerid") - }; - - EntityCollection entityCollection = service.RetrieveMultiple(query); - - if (entityCollection.Entities.Count > 1) - { - throw new Exception("There should be exactly one record in the searchcustomanalyzer table."); - } - if (entityCollection.Entities.Count == 1) - { - //There is one record - - Guid searchCustomAnalyzerRecordId = entityCollection.Entities[0].Id; - - if (!overwriteExisting) - { - string message = "An existing record is found in searchcustomanalyzer."; - message += "Please make sure the existing custom analyzers are "; - message += "not changed or deleted in the uploaded file. "; - message += "You can add new custom analyzers to the file. "; - message += "Please update the value of overwriteExisting "; - message += "to true and execute the SetSearchCustomAnalyzer again."; - - throw new Exception(message); - } - - //Delete the existing record - service.Delete("searchcustomanalyzer", searchCustomAnalyzerRecordId); - } - - Entity newRecord = new("searchcustomanalyzer") - { - Attributes = { - { "name", customAnalyzerName } - } - }; - - Guid newRecordId = service.Create(newRecord); - EntityReference newRecordReference = new("searchcustomanalyzer", newRecordId); - - // Upload the file using example static method - UploadFile( - service: service, - entityReference: newRecordReference, - fileAttributeName:"analyzers", - fileInfo: customAnalyzerFile, - fileMimeType: "application/json"); - - } - catch (Exception) - { - throw; - } -} -``` - -The following example shows how to use the static `SetSearchCustomAnalyzer` method to upload a custom analyzer file. - -```csharp -SetSearchCustomAnalyzer( - service: service, - customAnalyzerFile: new FileInfo("C:\\CustomAnalyzers\\SampleCustomAnalyzers.json"), - customAnalyzerName: "Sample Custom Analyzer", - overwriteExisting: true, - isValidCustomAnalyzer: true - ); -``` - -[Learn how to use the SDK for .NET](../org-service/quick-start-org-service-console-app.md) -[Use file column data](../file-column-data.md) - - -### [Web API](#tab/webapi) - -This PowerShell function depends on the following functions described in [Use PowerShell and Visual Studio Code with the Dataverse Web API](../webapi/use-ps-and-vscode-web-api.md) - -- `Connect`: [Learn to create a Connect function](../webapi/use-ps-and-vscode-web-api.md#create-a-connect-function) -- [Learn to create table operations functions](../webapi/use-ps-and-vscode-web-api.md#create-table-operations-functions): - - `Get-Records` - - `Remove-Record` - - `New-Record` -- `Set-FileColumn`: [Learn more about this function and uploading files to Dataverse](../file-column-data.md#powershell-example-to-upload-file-in-a-single-request) - -```powershell -. $PSScriptRoot\Core.ps1 # Contains the Connect function -. $PSScriptRoot\TableOperations.ps1 # Contains the Get-Records, New-Record, and Remove-Record functions -. $PSScriptRoot\Set-FileColumn.ps1 # Contains the Set-FileColumn function -<# -.SYNOPSIS - Creates or replaces a custom search analyzer. - -.DESCRIPTION - The Set-SearchCustomAnalyzer function creates or replaces a custom search analyzer in - the searchcustomanalyzer table. - - If there is an existing record in the table and the $overwriteExisting - parameter is set to $false, an error will be thrown. - - If there is an existing record and $overwriteExisting is set to $true, - the existing record will be removed before creating a new one. - - The function uploads the custom analyzer file specified by the $customAnalyzerFilePath parameter. - -.PARAMETER customAnalyzerFilePath - Specifies the path to the custom analyzer file to be uploaded. - -.PARAMETER customAnalyzerName - Specifies the name of the custom analyzer record to be created - -.PARAMETER overwriteExisting - Specifies whether to update an existing custom analyzer if found. - If set to $true, the existing record will be removed before creating a new one. - If set to $false and an existing record is found, an error will be thrown. - -.PARAMETER validCustomAnalyzer - Caller asserts that the custom analyzer meets the requirements for - a custom analyzer in Dataverse. - -.EXAMPLE - Connect 'https://yourorg.crm.dynamics.com/' - - Set-SearchCustomAnalyzer ` - -customAnalyzerFilePath 'C:\CustomAnalyzers\analyzer.json' ` - -customAnalyzerName 'Example custom analyzer' ` - -overwriteExisting $true ` - -validCustomAnalyzer $true - -This example uploads the custom analyzer file located at "C:\CustomAnalyzers\analyzer.json" and - updates the existing custom analyzer if found. -#> -function Set-SearchCustomAnalyzer { -param ( - [Parameter(Mandatory)] - [string] - $customAnalyzerFilePath, - [Parameter(Mandatory)] - [string] - $customAnalyzerName, - [Parameter(Mandatory)] - [bool] - $overwriteExisting, - [Parameter(Mandatory)] - [bool] - $validCustomAnalyzer -) - -if (!$validCustomAnalyzer) { - $errorMessage = @() - $errorMessage += 'Please make sure the names of the custom analyzers,' - $errorMessage += 'char filters, tokenizers and token filters' - $errorMessage += 'defined in the file start with ''msdyn_search_''' - $errorMessage += 'and make sure the file is in a valid json format.' - $errorMessage += 'Please update the value of $validCustomAnalyzer' - $errorMessage += 'to $true and execute the PowerShell script again.' - throw $errorMessage -join ' ' - } - -$resp = Get-Records ` - -setName 'searchcustomanalyzers' ` - -query '?$select=searchcustomanalyzerid&$top=2&$count=true' - -$searchCustomAnalyzerCount = $resp.'@odata.count' - -if ($searchCustomAnalyzerCount -gt 1) { - throw "You should not have more than one record in searchcustomanalyzer table." -} -if ($searchCustomAnalyzerCount -eq 1) { - if (!$overwriteExisting) { - $errorMessage = @() - $errorMessage += 'An existing record was found in searchcustomanalyzer.' - $errorMessage += 'Please make sure the existing custom analyzers are' - $errorMessage += 'not changed or deleted in the uploaded file.' - $errorMessage += 'You can add new custom analyzers to the file.' - $errorMessage += 'Please update the value of $overwriteExisting' - $errorMessage += 'to $true and execute the PowerShell script again.' - throw ($errorMessage -join ' ') - } - - $searchCustomAnalyzerRecordId = $resp.value[0].searchcustomanalyzerid - - Remove-Record ` - -setName 'searchcustomanalyzers' ` - -id $searchCustomAnalyzerRecordId - - Write-Host 'Removed existing record in searchcustomanalyzer.' -} - -# Create a new record to upload the custom analyzer file. - -$customAnalyzerId = (New-Record ` - -setName 'searchcustomanalyzers' ` - -body @{ - 'name' = $customAnalyzerName - }) - - # Upload the analyzer file to the new custom analyzer record. - try { - Set-FileColumn ` - -setName 'searchcustomanalyzers' ` - -id $customAnalyzerId ` - -columnName 'analyzers' ` - -file $customAnalyzerFilePath - - Write-Host 'Custom analyzer file is uploaded.' - } - catch { - Write-Host "Failed to upload Custom Analyzer: $_.Exception.Message" -ForegroundColor Red - } -} -``` - ---- - ### See also [Dataverse Search](overview.md) @@ -723,6 +381,3 @@ $customAnalyzerId = (New-Record ` [!INCLUDE [footer-banner](../../../includes/footer-banner.md)] - - - diff --git a/powerapps-docs/developer/data-platform/search/legacy.md b/powerapps-docs/developer/data-platform/search/legacy.md index 6bdb5c1935..1d40189947 100644 --- a/powerapps-docs/developer/data-platform/search/legacy.md +++ b/powerapps-docs/developer/data-platform/search/legacy.md @@ -3,8 +3,8 @@ title: "Dataverse search (legacy) (Microsoft Dataverse)| Microsoft Docs" description: "Dataverse legacy search remains available but we recommend you use Dataverse Search 2.0." ms.date: 10/20/2023 ms.topic: article -author: mspilde -ms.author: mspilde +author: seanwat-msft +ms.author: seanwat ms.reviewer: jdaly search.audienceType: - developer @@ -13,6 +13,7 @@ search.app: - D365CE contributors: - JimDaly + - jeromeblouinms --- # Dataverse search (legacy) diff --git a/powerapps-docs/developer/data-platform/search/overview.md b/powerapps-docs/developer/data-platform/search/overview.md index 134760c6f4..5c17b9dad7 100644 --- a/powerapps-docs/developer/data-platform/search/overview.md +++ b/powerapps-docs/developer/data-platform/search/overview.md @@ -3,9 +3,9 @@ title: "Search for Dataverse records (Microsoft Dataverse) | Microsoft Docs" description: "Use Dataverse search to return search results across multiple tables and provide suggestions and autocompletion experiences in apps." ms.date: 10/20/2023 ms.reviewer: jdaly -ms.topic: article -author: mspilde -ms.author: mspilde +ms.topic: how-to +author: seanwat-msft +ms.author: seanwat search.audienceType: - developer search.app: @@ -13,6 +13,7 @@ search.app: - D365CE contributors: - JimDaly + - jeromeblouinms --- # Search for Dataverse records diff --git a/powerapps-docs/developer/data-platform/search/query.md b/powerapps-docs/developer/data-platform/search/query.md index 6a6e1f9ea9..9b13d7bdca 100644 --- a/powerapps-docs/developer/data-platform/search/query.md +++ b/powerapps-docs/developer/data-platform/search/query.md @@ -4,8 +4,8 @@ description: "Use Dataverse search query to return search results across multipl ms.date: 10/20/2023 ms.reviewer: jdaly ms.topic: article -author: mspilde -ms.author: mspilde +author: seanwat-msft +ms.author: seanwat search.audienceType: - developer search.app: @@ -13,6 +13,7 @@ search.app: - D365CE contributors: - JimDaly + - jeromeblouinms --- # Dataverse Search query diff --git a/powerapps-docs/developer/data-platform/search/statistics-status.md b/powerapps-docs/developer/data-platform/search/statistics-status.md index ebdd33fd6f..87f3bb1954 100644 --- a/powerapps-docs/developer/data-platform/search/statistics-status.md +++ b/powerapps-docs/developer/data-platform/search/statistics-status.md @@ -4,8 +4,8 @@ description: "Use Dataverse search statistics and status apis retrieve data abou ms.date: 10/20/2023 ms.reviewer: jdaly ms.topic: article -author: mspilde -ms.author: mspilde +author: seanwat-msft +ms.author: seanwat search.audienceType: - developer search.app: @@ -13,6 +13,7 @@ search.app: - D365CE contributors: - JimDaly + - jeromeblouinms --- # Dataverse Search statistics and status diff --git a/powerapps-docs/developer/data-platform/search/suggest.md b/powerapps-docs/developer/data-platform/search/suggest.md index 6414f19259..0307bb25cc 100644 --- a/powerapps-docs/developer/data-platform/search/suggest.md +++ b/powerapps-docs/developer/data-platform/search/suggest.md @@ -4,8 +4,8 @@ description: "Use Dataverse search suggest to provide suggestions as users enter ms.date: 10/20/2023 ms.reviewer: jdaly ms.topic: article -author: mspilde -ms.author: mspilde +author: seanwat-msft +ms.author: seanwat search.audienceType: - developer search.app: @@ -13,6 +13,7 @@ search.app: - D365CE contributors: - JimDaly + - jeromeblouinms --- # Dataverse Search suggest diff --git a/powerapps-docs/developer/data-platform/security-access-coding.md b/powerapps-docs/developer/data-platform/security-access-coding.md index 8a0392b3b8..b2ff4edfdc 100644 --- a/powerapps-docs/developer/data-platform/security-access-coding.md +++ b/powerapps-docs/developer/data-platform/security-access-coding.md @@ -3,7 +3,7 @@ title: "Verifying access in code (Microsoft Dataverse) | Microsoft Docs" # Inten description: "Learn how to use the security related APIs to verify user access to a record." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 06/05/2023 ms.reviewer: pehecke -ms.topic: article +ms.topic: concept-article author: paulliew # GitHub ID ms.subservice: dataverse-developer ms.author: paulliew # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/security-concepts.md b/powerapps-docs/developer/data-platform/security-concepts.md index 05f58d653f..a592360523 100644 --- a/powerapps-docs/developer/data-platform/security-concepts.md +++ b/powerapps-docs/developer/data-platform/security-concepts.md @@ -5,7 +5,7 @@ ms.custom: "" ms.date: 03/11/2021 ms.reviewer: "pehecke" -ms.topic: "article" +ms.topic: concept-article author: "paulliew" # GitHub ID ms.subservice: dataverse-developer ms.author: "paulliew" # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/security-sharing-assigning.md b/powerapps-docs/developer/data-platform/security-sharing-assigning.md index 379cdc0352..52a767804b 100644 --- a/powerapps-docs/developer/data-platform/security-sharing-assigning.md +++ b/powerapps-docs/developer/data-platform/security-sharing-assigning.md @@ -1,9 +1,9 @@ --- title: Sharing and assigning description: Learn about the security that applies to sharing and assigning records. -ms.date: 06/06/2023 +ms.date: 04/06/2025 ms.reviewer: pehecke -ms.topic: article +ms.topic: concept-article author: paulliew ms.subservice: dataverse-developer ms.author: paulliew @@ -43,6 +43,7 @@ assigned to that user. For example, if a user doesn't have **Read** privileges o accounts and you share an account with that user, the user is unable to see that account. + ### GrantAccess example These examples show the use of the `GrantAccess` message to share a record with another principal. @@ -199,50 +200,7 @@ OData-Version: 4.0 --- -## Sharing and inheritance - -If a record is created and the parent record has certain sharing properties, the -new record inherits those properties. For example, Joe and Mike are working on a -high priority lead. Joe creates a new lead and two activities, shares the lead -with Mike, and selects cascade sharing. Mike makes a telephone call and sends an -email regarding the new lead. Joe sees that Mike has contacted the company two -times, so Joe doesn't make another call. - -Sharing is maintained on individual records. A record inherits the sharing -properties from its parent and maintains its own sharing properties. Therefore, -a record can have two sets of sharing properties—one that it has on its own, and -one that it inherits from its parent. - -Removing the share of a parent record removes the sharing properties of objects -(records) that it inherited from the parent. That is, all users who previously -had visibility into this record no longer have visibility. Child objects still -could be shared to some of these users if they were shared individually, not -from the parent record. - -## Assigning records - -Anyone with **Assign** access rights on a record can assign that record to -another user. To assign a record, change the `ownerid` lookup value to refer to a new principal. - -> [!NOTE] -> The SDK has an [AssignRequest class](xref:Microsoft.Crm.Sdk.Messages.AssignRequest) that is deprecated. More information: [Legacy update messages](org-service/entity-operations-update-delete.md#legacy-update-messages) - -When a record is assigned, the new user, team or organization becomes the owner -of the record and its related records. The original user, team or organization loses ownership -of the record, but automatically shares it with the new owner. - -In Microsoft Dataverse, the system administrator can decide for an organization -whether records should be shared with previous owners or not after the assign -operation. If **Share reassigned records with original owner** is selected (see **System Settings** > **General**), then the previous owner -shares the record with all access rights after the assign operation. Otherwise, -the previous owner doesn't share the record and may not have access to the -record, depending on their privileges. The Organization table's -[ShareToPreviousOwnerOnAssign](reference/entities/organization.md#BKMK_ShareToPreviousOwnerOnAssign) column controls this setting. - -> [!NOTE] -> The [Appointment table](reference/entities/appointment.md) has special logic when an appointment is assigned to another user. If the current owner is still a participant, such as the organizer or an attendee, the appointment record is shared with this user when the appointment is reassigned. This behavior occurs even if the **Share reassigned records with original owner** setting is disabled. Because the appointment may be shared with the previous owner, the user assigning the meeting requires both the **Assign** and **Share** access rights on the record. - -## Revoking access +### RevokeAccess example The owner of the record can use the `RevokeAccess` message to revoke (remove) user access to the shared record. @@ -310,6 +268,51 @@ OData-Version: 4.0 More information: [Shared access](/power-platform/admin/how-record-access-determined#shared-access.md) +## Sharing and inheritance + +If a record is created and the parent record has certain sharing properties, the +new record inherits those properties. For example, Joe and Mike are working on a +high priority lead. Joe creates a new lead and two activities, shares the lead +with Mike, and selects cascade sharing. Mike makes a telephone call and sends an +email regarding the new lead. Joe sees that Mike has contacted the company two +times, so Joe doesn't make another call. + +Sharing is maintained on individual records. A record inherits the sharing +properties from its parent and maintains its own sharing properties. Therefore, +a record can have two sets of sharing properties—one that it has on its own, and +one that it inherits from its parent. + +Removing the share of a parent record removes the sharing properties of objects +(records) that it inherited from the parent. That is, all users who previously +had visibility into this record no longer have visibility. Child objects still +could be shared to some of these users if they were shared individually, not +from the parent record. + +## Assigning records + +Anyone with **Assign** access rights on a record can assign that record to +another user. To assign a record, change the `ownerid` lookup value to refer to a new principal. + +> [!NOTE] +> The SDK has an [AssignRequest class](xref:Microsoft.Crm.Sdk.Messages.AssignRequest) that is deprecated. More information: [Legacy update messages](org-service/entity-operations-update-delete.md#legacy-update-messages) + +When a record is assigned, the new user, team or organization becomes the owner +of the record and its related records. The original user, team or organization loses ownership +of the record, but automatically shares it with the new owner. + +In Microsoft Dataverse, the system administrator can decide for an organization +whether records should be shared with previous owners or not after the assign +operation. If **Share reassigned records with original owner** is selected (see **System Settings** > **General**), then the previous owner +shares the record with all access rights after the assign operation. Otherwise, +the previous owner doesn't share the record and may not have access to the +record, depending on their privileges. The Organization table's +[ShareToPreviousOwnerOnAssign](reference/entities/organization.md#BKMK_ShareToPreviousOwnerOnAssign) column controls this setting. + +> [!NOTE] +> The [Appointment table](reference/entities/appointment.md) has special logic when an appointment is assigned to another user. If the current owner is still a participant, such as the organizer or an attendee, the appointment record is shared with this user when the appointment is reassigned. This behavior occurs even if the **Share reassigned records with original owner** setting is disabled. Because the appointment may be shared with the previous owner, the user assigning the meeting requires both the **Assign** and **Share** access rights on the record. + + + ## Determine why a user has access The [check access](/power-apps/user/access-checker) feature in model-driven apps provides information so that people can understand why a user has access to a record. To get this information with code, use the `RetrieveAccessOrigin` message. When passed information about a specific user and record, this message returns a sentence that describes why the user has access. The following are the possible responses when the operation succeeds: @@ -408,6 +411,7 @@ OData-Version: 4.0 ### See also +[Share data in secured fields](column-level-security.md#share-data-in-secured-fields) [Sample: Share records using GrantAccess, ModifyAccess and RevokeAccess messages](org-service/samples/share-records-using-grantaccess-modifyaccess-revokeaccess-messages.md) [!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/send-parallel-requests.md b/powerapps-docs/developer/data-platform/send-parallel-requests.md index a4a7450642..65c619170f 100644 --- a/powerapps-docs/developer/data-platform/send-parallel-requests.md +++ b/powerapps-docs/developer/data-platform/send-parallel-requests.md @@ -2,10 +2,10 @@ title: "Send parallel requests (Dataverse)| Microsoft Docs" description: "When your application needs to send a large number of requests to Dataverse you can achieve much higher total throughput by sending requests in parallel using multiple threads." ms.date: 01/02/2023 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/server-side-synchronization-entities.md b/powerapps-docs/developer/data-platform/server-side-synchronization-entities.md index 17be0bd3bc..ee743b95bc 100644 --- a/powerapps-docs/developer/data-platform/server-side-synchronization-entities.md +++ b/powerapps-docs/developer/data-platform/server-side-synchronization-entities.md @@ -36,7 +36,7 @@ In Power Apps, server-side synchronization provides an interface between Microso - Automatically track Microsoft Exchange emails in Power Apps for a user based on the folder-level tracking rules. -### Related topics +### Related articles [Configure folder level tracking rules](configure-exchange-folder-level-tracking-rules.md) diff --git a/powerapps-docs/developer/data-platform/special-update-operation-behavior.md b/powerapps-docs/developer/data-platform/special-update-operation-behavior.md index 8dbc529c68..c1e01c4d3f 100644 --- a/powerapps-docs/developer/data-platform/special-update-operation-behavior.md +++ b/powerapps-docs/developer/data-platform/special-update-operation-behavior.md @@ -4,9 +4,9 @@ description: "Describes special behavior in plug-ins and workflows for update ev ms.date: 03/22/2022 ms.reviewer: "pehecke" ms.topic: "article" -author: MicroSri +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/calculated-rollup-attributes.md b/powerapps-docs/developer/data-platform/specialized-columns.md similarity index 86% rename from powerapps-docs/developer/data-platform/calculated-rollup-attributes.md rename to powerapps-docs/developer/data-platform/specialized-columns.md index b9db2f9bcb..353bdc05ab 100644 --- a/powerapps-docs/developer/data-platform/calculated-rollup-attributes.md +++ b/powerapps-docs/developer/data-platform/specialized-columns.md @@ -1,27 +1,28 @@ --- -title: Formula, calculated, and rollup columns using code -description: "Learn about common elements and characteristics that formula, calculated, and rollup columns use. Learn how to retrieve a calculated rollup column value immediately, and about the SourceTypeMasks enumeration." -ms.date: 09/15/2023 +title: Specialized columns using code +description: "Learn about common elements and characteristics that formula, calculated, rollup, and prompt columns use. Learn how to retrieve a calculated rollup column value immediately, and about the SourceTypeMasks enumeration." +ms.date: 07/23/2025 ms.reviewer: jdaly ms.topic: article -author: mkannapiran -ms.author: kamanick +author: MsSQLGirl ms.subservice: dataverse-developer +ms.author: jukoesma search.audienceType: - developer contributors: - JimDaly - sanjeevgoyalmsft --- -# Formula, calculated, and rollup columns using code +# Specialized columns using code -*Formula*, *calculated*, and *rollup* columns free the user from having to manually perform calculations and focus on their work. System administrators can define a field to contain the value of many common calculations without having to work with a developer. Developers can also use the platform capabilities to perform these calculations rather than with code. +*Formula*, *calculated*, *rollup*, and *prompt* columns free the user from having to manually perform calculations and focus on their work. System administrators can define a field to contain the value of many common calculations without having to work with a developer. Developers can also use the platform capabilities to perform these calculations rather than with code. This article focuses on how these columns are defined in the column definitions and APIs to interact with rollup columns. We don't support defining the formulas with code. You need to use [Power Apps](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc) to set the formulas for the respective type of column. Learn how: - [Work with formula columns (preview)](../../maker/data-platform/formula-columns.md) - [Define calculated columns to automate calculations](../../maker/data-platform/define-calculated-fields.md) - [Define rollup columns that aggregate values](../../maker/data-platform/define-rollup-fields.md) +- [Prompt columns (preview)](../../maker/data-platform/prompt-column.md) @@ -42,9 +43,10 @@ All columns that inherit from . The following tables show the available column types and which source types are supported: +Formula, calculated, rollup, and prompt columns are based on existing column types that inherit from . The following tables show the available column types and which source types are supported: |Type|Supported source types| @@ -52,7 +54,7 @@ Formula, calculated, and rollup columns are based on existing column types that ||Formula, Calculated, & Rollup| | |Formula, Calculated, & Rollup| ||Formula, Calculated, & Rollup| -||Formula, Calculated, & Rollup| +||Formula, Calculated, Rollup, & Prompt| ||Calculated & Rollup only| ||Calculated & Rollup only| ||Calculated & Rollup only| @@ -62,26 +64,21 @@ Each of these types of column has the following properties to support formulas, | Property |Definition| |---------|--------| |`FormulaDefinition`| Contains the definition of the formula used to perform the calculation or rollup. Formula columns are defined using YAML. Calculated and rollup columns are defined using XAML. The only supported way to change this value is through the [Power Apps](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc) editor.| -|`SourceTypeMask`| The bitmask value of this read-only property describes the types of sources used in the formula of the column or if the formula of the column isn't valid.

- 0: `Undefined`. The default value for simple and rollup columns.
- 1: `Simple`. The formula or calculated column refers to a column in the same record.
- 2: `Related`. The formula or calculated column refers to a column in a related record.
- 4: `Logical`. The formula or calculated column refers to a column in the same record that is stored in a different database table. More information: [Logical columns](entity-attribute-metadata.md#logical-columns)
- 8: `Calculated`. The formula or calculated column refers to another formula or calculated column.
- 16: `Rollup`. The formula or calculated column refers a rollup column.
- 32: `Invalid`. The formula, calculated, or rollup column is invalid.
Typically, a column is invalid when it refers to a column that no longer exists.

**Note:** One or more of these conditions may be true for any calculated or rollup column. Because this is a bitmask value, you may find it useful to use the [SourceTypeMasks enumeration](calculated-rollup-attributes.md#BKMK_SourceTypeMasks) when performing bitwise operations. | +|`SourceTypeMask`| The bitmask value of this read-only property describes the types of sources used in the formula of the column or if the formula of the column isn't valid.

- 0: `Undefined`. The default value for simple and rollup columns.
- 1: `Simple`. The formula or calculated column refers to a column in the same record.
- 2: `Related`. The formula or calculated column refers to a column in a related record.
- 4: `Logical`. The formula or calculated column refers to a column in the same record that is stored in a different database table. More information: [Logical columns](entity-attribute-metadata.md#logical-columns)
- 8: `Calculated`. The formula or calculated column refers to another formula or calculated column.
- 16: `Rollup`. The formula or calculated column refers a rollup column.
- 32: `Invalid`. The formula, calculated, or rollup column is invalid.
Typically, a column is invalid when it refers to a column that no longer exists.

**Note:** One or more of these conditions may be true for any calculated or rollup column. Because this is a bitmask value, you may find it useful to use the [SourceTypeMasks enumeration](specialized-columns.md#BKMK_SourceTypeMasks) when performing bitwise operations. | ## Formula and calculated columns Formula and calculated columns are calculated in real-time when they're retrieved. Formula and calculated can be composed using different data types. For example, an Integer calculated column may reference values from Decimal or Currency columns. Only calculated column values are available in the retrieve plug-in pipeline. Post image of a table record update or create contains the calculated column value in stage 40. More information: [Event execution pipeline](event-framework.md#event-execution-pipeline) and [Entity images](understand-the-data-context.md#entity-images) - -### Limitations - -Formula and calculated columns have the following limitations: -#### Formula columns +### Formula column limitations - Formula columns don't have values when a user with mobile client is offline. - `MaxValue` and `MinValue` column definitions properties can't be set on formula columns. More information: [Guidelines and limitations](../../maker/data-platform/formula-columns.md#guidelines-and-limitations) - -#### Calculated columns +### Calculated column limitations You can't use values in calculated columns on a *[Logical value](entity-attribute-metadata.md#logical-columns)* in the same table to sort data returned by a query. Although your query can specify that the results should be ordered using a calculated column, the sort direction is ignored and doesn't throw an error. If the calculated column references only simple values in the same record, sorting works normally. You can determine the sources used in a calculated column using the `SourceTypeMask` property on the column definitions. @@ -109,7 +106,7 @@ The **Mass Calculated Rollup Fields** job occurs immediately when a solution con Each rollup column for a table will also include two supporting columns for the rollup column: - *\* `_Date`: DateTime – When the rollup was last calculated. -- *\* `_State`: Integer – The state of the rollup calculation. More information: [Rollup state values](calculated-rollup-attributes.md#BKMK_RollupStateValues) +- *\* `_State`: Integer – The state of the rollup calculation. More information: [Rollup state values](specialized-columns.md#BKMK_RollupStateValues) @@ -133,7 +130,7 @@ Rollup columns support a `CalculateRollupField` message that developers can use This message is a synchronous operation for just the column identified in the request. If the value of that record is included as part of other rollup columns, the values of those columns don't take the possible value change caused by calling this method into consideration until the regularly scheduled asynchronous jobs that perform those calculations occur. -### Limitations +### Rollup column limitations - Rollup columns can't be used as a workflow event or wait condition. These columns don't raise the event to trigger workflows. - The `ModifiedBy` and `ModifiedOn` columns for the table aren't updated when the rollup column is updated. @@ -145,6 +142,15 @@ This message is a synchronous operation for just the column identified in the re +## Prompt columns + +Prompt column values are populated when records are created and when the input column values are updated. When prompt columns are added to tables with records, the existing records' new prompt columns aren't populated automatically. Outputs persist in the database and can be used for filtering and sorting like regular columns. + +### Prompt column limitations + +- Create and update for prompt column using API is not supported at this time. +- Importing and exporting solutions with prompt columns is not supported at this time. + ## SourceTypeMasks enumeration The `SourceTypeMask` property for those columns that support calculated and rollup columns contains a bitmask value. To extract the relevant information from the value, it helps to have an enumeration when performing bitwise operations. Use the following `SourceTypeMasks` enumeration when comparing the `SourceTypeMask` property value. @@ -187,9 +193,10 @@ The `SourceTypeMask` property for those columns that support calculated and roll ### See also [Column definitions](entity-attribute-metadata.md) -[Work with formula columns (preview)](../../maker/data-platform/formula-columns.md) +[Work with formula columns](../../maker/data-platform/formula-columns.md) [Define calculated columns](../../maker/data-platform/define-calculated-fields.md) [Define rollup columns](../../maker/data-platform/define-rollup-fields.md) [Sample: Rollup records related to a specific record](org-service/samples/rollup-records-related-to-specificed-record.md) +[Prompt columns (preview)](../../maker/data-platform/prompt-column.md) [!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/test-webhook-registration.md b/powerapps-docs/developer/data-platform/test-webhook-registration.md index 32251e202b..0da304aaea 100644 --- a/powerapps-docs/developer/data-platform/test-webhook-registration.md +++ b/powerapps-docs/developer/data-platform/test-webhook-registration.md @@ -3,7 +3,7 @@ title: "Test WebHook registration with request logging site (Microsoft Dataverse description: "Use a request logging site to examine the contextual data passed with a WebHook." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 03/22/2022 ms.reviewer: "pehecke" -ms.topic: "article" +ms.topic: how-to author: "jaredha" # GitHub ID ms.subservice: dataverse-developer ms.author: "jdaly" # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/testing-tools-server.md b/powerapps-docs/developer/data-platform/testing-tools-server.md index 6f196f3510..d42d290a6e 100644 --- a/powerapps-docs/developer/data-platform/testing-tools-server.md +++ b/powerapps-docs/developer/data-platform/testing-tools-server.md @@ -3,7 +3,7 @@ title: "Testing tools for server-side development (Microsoft Dataverse) | Micros description: "Learn about testing frameworks for server-side development." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 03/22/2022 ms.reviewer: "pehecke" -ms.topic: "article" +ms.topic: concept-article author: "marcelbf" # GitHub ID ms.subservice: dataverse-developer ms.author: "jdaly" # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/tutorial-debug-plug-in.md b/powerapps-docs/developer/data-platform/tutorial-debug-plug-in.md index cf3c45db8c..26bd4aa3a6 100644 --- a/powerapps-docs/developer/data-platform/tutorial-debug-plug-in.md +++ b/powerapps-docs/developer/data-platform/tutorial-debug-plug-in.md @@ -3,10 +3,10 @@ title: "Tutorial: Debug a plug-in (Microsoft Dataverse) | Microsoft Docs" # Inte description: "The second of three tutorials that will show you how to work with plug-ins." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 03/22/2022 ms.reviewer: "pehecke" -ms.topic: "article" -author: MicroSri +ms.topic: tutorial +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/tutorial-update-plug-in.md b/powerapps-docs/developer/data-platform/tutorial-update-plug-in.md index d9087a5ea1..1d53c458f4 100644 --- a/powerapps-docs/developer/data-platform/tutorial-update-plug-in.md +++ b/powerapps-docs/developer/data-platform/tutorial-update-plug-in.md @@ -3,10 +3,10 @@ title: "Tutorial: Update a plug-in (Microsoft Dataverse) | Microsoft Docs" # Int description: "The third of three tutorials that will show you how to work with plug-ins. " # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 07/12/2022 ms.reviewer: "pehecke" -ms.topic: "article" -author: MicroSri +ms.topic: tutorial +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/tutorial-write-plug-in.md b/powerapps-docs/developer/data-platform/tutorial-write-plug-in.md index ed25aad6cf..76cb8d4188 100644 --- a/powerapps-docs/developer/data-platform/tutorial-write-plug-in.md +++ b/powerapps-docs/developer/data-platform/tutorial-write-plug-in.md @@ -3,10 +3,10 @@ title: "Tutorial: Write and register a plug-in (Microsoft Dataverse) | Microsoft description: "Learn how to write plug-in code and then register the compiled assembly and step with Dataverse." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 02/14/2025 ms.reviewer: "pehecke" -ms.topic: "article" -author: MicroSri +ms.topic: tutorial +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/understand-the-data-context.md b/powerapps-docs/developer/data-platform/understand-the-data-context.md index 56b5128749..3e2cd71da1 100644 --- a/powerapps-docs/developer/data-platform/understand-the-data-context.md +++ b/powerapps-docs/developer/data-platform/understand-the-data-context.md @@ -2,10 +2,10 @@ title: "Understand the execution context (Microsoft Dataverse) | Microsoft Docs" description: "Learn about the data that is passed to your plug-in when it is executed." ms.date: 04/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke -ms.topic: "article" +ms.topic: concept-article ms.subservice: dataverse-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/update-recurring-appointment.md b/powerapps-docs/developer/data-platform/update-recurring-appointment.md index 8e1c8e9731..8c1d2948e7 100644 --- a/powerapps-docs/developer/data-platform/update-recurring-appointment.md +++ b/powerapps-docs/developer/data-platform/update-recurring-appointment.md @@ -5,7 +5,7 @@ ms.custom: "" ms.date: 03/25/2021 ms.reviewer: "pehecke" -ms.topic: "article" +ms.topic: how-to author: "mayadumesh" # GitHub ID ms.subservice: dataverse-developer ms.author: "jdaly" # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/use-alternate-key-reference-record.md b/powerapps-docs/developer/data-platform/use-alternate-key-reference-record.md index e1cf99b607..66adf65b79 100644 --- a/powerapps-docs/developer/data-platform/use-alternate-key-reference-record.md +++ b/powerapps-docs/developer/data-platform/use-alternate-key-reference-record.md @@ -3,10 +3,10 @@ title: Use an alternate key to reference a record description: Alternate keys can be used to create instances of Entity and EntityReference classes. This article discusses the usage patterns and possible exceptions that might be thrown when using alternate keys. ms.date: 05/30/2023 ms.reviewer: pehecke -ms.topic: article -author: MicroSri +ms.topic: how-to +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/use-change-tracking-synchronize-data-external-systems.md b/powerapps-docs/developer/data-platform/use-change-tracking-synchronize-data-external-systems.md index f6f463e46b..125943ba56 100644 --- a/powerapps-docs/developer/data-platform/use-change-tracking-synchronize-data-external-systems.md +++ b/powerapps-docs/developer/data-platform/use-change-tracking-synchronize-data-external-systems.md @@ -3,7 +3,7 @@ title: "Use change tracking to synchronize data with external systems (Microsoft description: "The change tracking feature provides a way to keep the data synchronized in an efficient manner by detecting what data has changed since the data was initially extracted or last synchronized." ms.date: 06/23/2023 ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to author: paulliew ms.subservice: dataverse-developer ms.author: paulliew @@ -188,8 +188,8 @@ You should be aware of the following constraints when retrieving changes for a t - Only one table is tracked in retrieve changes. If `RetrieveEntityChanges` is executed with no version / or token, the server treats it as the system minimum version, returning all of the records as new. Deleted objects are not returned. - Changes are returned if the last token is within a default value of 7 days. This duration is controlled by the value of the [Organization table ExpireChangeTrackingInDays column](reference/entities/organization.md#BKMK_ExpireChangeTrackingInDays) and can be changed. If there are unprocessed changes older than the configured value, the system throws an exception. - If a client has a set of changes for a table, say version 1, a record is created and deleted before the next query for changes, they'll get the deleted item even if they didn't have the item to begin with. -- Records are retrieved in the order determined by server side logic. Usually, the caller will get all new or updated records first (sorted by version number) followed by deleted records. If there are 3,000 records created or updated and 2,000 records deleted, Dataverse returns a collection of 5,000 records, which have the first 3,000 entries comprised of new or updated records and the last 2,000 entries for deleted records. -- If the new or updated item collection is greater than 5000, the user can page through the collection. +- Records are retrieved in the order determined by server side logic. Usually, the caller will get all new or updated records first (sorted by version number) followed by deleted records. If there are 3,000 records created or updated and 2,000 records deleted, Dataverse returns a collection of 5,000 records for standard tables, which have the first 3,000 entries comprised of new or updated records and the last 2,000 entries for deleted records. +- If the new or updated item collection is greater than 5,000, the user can page through the collection. - The calling user must have organization level read access to the table. If the user has limited read access, the system throws a privilege check error. ### .NET SDK Sample code diff --git a/powerapps-docs/developer/data-platform/use-elastic-tables.md b/powerapps-docs/developer/data-platform/use-elastic-tables.md index eaee404881..48583fb739 100644 --- a/powerapps-docs/developer/data-platform/use-elastic-tables.md +++ b/powerapps-docs/developer/data-platform/use-elastic-tables.md @@ -3,8 +3,8 @@ title: Use elastic tables using code description: Learn how to perform data operations on Dataverse elastic tables using code. ms.topic: how-to ms.date: 12/16/2024 -author: pnghub -ms.author: gned +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer @@ -470,7 +470,8 @@ When you query the rows of an elastic table, you get the best performance if you > > Specifying a filter on the `partitionid` value in the usual manner doesn't have the same performance benefits as specifying it through the `partitionId` parameter as shown in the following examples. -These examples retrieve the first 5,000 rows in the `contoso_SensorData` table that belong to the logical partition where `partitionid` = `'deviceid-001'`. +These examples retrieve the first 500 rows in the `contoso_SensorData` table that belong to the logical partition where `partitionid` = `'deviceid-001'`. + #### [SDK for .NET](#tab/sdk) @@ -536,6 +537,13 @@ OData-Version: 4.0 } ``` +> [!NOTE] +> The default page size for elastic tables is 500 rows. For standard tables, the default size is 5,000. Learn more about paging: +> +> - [Page results using FetchXml](fetchxml/page-results.md) +> - [Page results using QueryExpression](org-service/queryexpression/page-results.md) +> - [Page results using OData](webapi/query/page-results.md) + --- ### Return related rows in a query @@ -1098,11 +1106,12 @@ You can use the `DeleteMultiple` message with either the SDK for .NET or Web API #### [SDK for .NET](#tab/sdk) -> [!NOTE] -> With the SDK, you must use the [OrganizationRequest class](xref:Microsoft.Xrm.Sdk.OrganizationRequest) because the SDK doesn't currently have a `DeleteMultipleRequest` class. [Learn more about using messages with the SDK for .NET](org-service/use-messages.md). The following `DeleteMultipleExample` static method uses the `DeleteMultiple` message with the [OrganizationRequest class](xref:Microsoft.Xrm.Sdk.OrganizationRequest) to delete multiple rows from the `contoso_SensorData` elastic table. The alternate key is used to include the `partitionid` value to uniquely identify the rows. +> [!NOTE] +> The [DeleteMultipleRequest Class](/dotnet/api/microsoft.xrm.sdk.messages.deletemultiplerequest) is now available to use. + ```csharp public static void DeleteMultipleExample(IOrganizationService service) { @@ -1139,10 +1148,7 @@ public static void DeleteMultipleExample(IOrganizationService service) #### [Web API](#tab/webapi) -This example shows how to use the `DeleteMultiple` action to delete multiple rows from `contoso_SensorData` elastic table. The `partitionid` value is included to uniquely identify the rows. - -> [!NOTE] -> Currently, the Web API `DeleteMultiple` action is a private action. You won't find it in the [CSDL $metadata document](webapi/web-api-service-documents.md#csdl-metadata-document) or in the Dataverse . This action will become public in the coming weeks. You can use it while it's private. +This example shows how to use the [DeleteMultiple action](xref:Microsoft.Dynamics.CRM.DeleteMultiple) to delete multiple rows from `contoso_SensorData` elastic table. The `partitionid` value is included to uniquely identify the rows. **Request:** diff --git a/powerapps-docs/developer/data-platform/use-metadata-generate-entity-diagrams.md b/powerapps-docs/developer/data-platform/use-metadata-generate-entity-diagrams.md index ff886a49f2..ad3d4cb95e 100644 --- a/powerapps-docs/developer/data-platform/use-metadata-generate-entity-diagrams.md +++ b/powerapps-docs/developer/data-platform/use-metadata-generate-entity-diagrams.md @@ -4,8 +4,8 @@ description: "Learn about using the Metadata Diagram tool to visually show entit ms.date: 01/04/2023 ms.reviewer: jdaly ms.topic: article -author: MicroSri # GitHub ID -ms.author: sriknair # MSFT alias of Microsoft employees only +author: MsSQLGirl # GitHub ID +ms.author: jukoesma # MSFT alias of Microsoft employees only ms.subservice: dataverse-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/use-multi-tenant-server-server-authentication.md b/powerapps-docs/developer/data-platform/use-multi-tenant-server-server-authentication.md index d7db475491..877e818890 100644 --- a/powerapps-docs/developer/data-platform/use-multi-tenant-server-server-authentication.md +++ b/powerapps-docs/developer/data-platform/use-multi-tenant-server-server-authentication.md @@ -3,7 +3,7 @@ title: "Use multi-tenant server-to-server authentication (Microsoft Dataverse) | description: "Learn how to access Microsoft Dataverse data across multiple tenants from an application or service without explicit user authentication." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 4/05/2019 ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to author: ritesp # GitHub ID ms.subservice: dataverse-developer ms.author: ritesp # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/use-open-types.md b/powerapps-docs/developer/data-platform/use-open-types.md index b3abdb4a74..3fd20680fb 100644 --- a/powerapps-docs/developer/data-platform/use-open-types.md +++ b/powerapps-docs/developer/data-platform/use-open-types.md @@ -3,8 +3,8 @@ title: Use open types with custom APIs description: Learn how to use open types with Microsoft Dataverse custom APIs. ms.date: 08/02/2023 ms.topic: how-to -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.subservice: dataverse-developer ms.reviewer: jdaly search.audienceType: diff --git a/powerapps-docs/developer/data-platform/use-single-tenant-server-server-authentication.md b/powerapps-docs/developer/data-platform/use-single-tenant-server-server-authentication.md index e9a6af6124..583bf02c9e 100644 --- a/powerapps-docs/developer/data-platform/use-single-tenant-server-server-authentication.md +++ b/powerapps-docs/developer/data-platform/use-single-tenant-server-server-authentication.md @@ -4,7 +4,7 @@ description: "Learn how to access Microsoft Dataverse data in a single tenant fr ms.custom: "" ms.date: 04/06/2023 ms.reviewer: "pehecke" -ms.topic: "article" +ms.topic: how-to author: "paulliew" # GitHub ID ms.subservice: dataverse-developer ms.author: "pehecke" # MSFT alias of Microsoft employees only diff --git a/powerapps-docs/developer/data-platform/use-upsert-insert-update-record.md b/powerapps-docs/developer/data-platform/use-upsert-insert-update-record.md index a6bd9a5cb1..7166e0aef7 100644 --- a/powerapps-docs/developer/data-platform/use-upsert-insert-update-record.md +++ b/powerapps-docs/developer/data-platform/use-upsert-insert-update-record.md @@ -3,10 +3,10 @@ title: "Use Upsert to Create or Update a record (Microsoft Dataverse) | Microsof description: "When loading data into Dataverse from an external system, you may not know if a record already exists in Dataverse or not. If it exists, it should be updated, otherwise it should be created. Upsert is a combination of Update or Insert that enables the server to detect whether a record exists or not and apply the appropriate Update or Create operation in Dataverse. " ms.date: 05/30/2023 ms.reviewer: pehecke -ms.topic: article -author: MicroSri +ms.topic: how-to +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/view-download-developer-resources.md b/powerapps-docs/developer/data-platform/view-download-developer-resources.md index 72ea82701d..f6d6af6120 100644 --- a/powerapps-docs/developer/data-platform/view-download-developer-resources.md +++ b/powerapps-docs/developer/data-platform/view-download-developer-resources.md @@ -5,10 +5,10 @@ keywords: "" ms.date: 09/07/2021 ms.custom: -ms.topic: article -author: MicroSri +ms.topic: how-to +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma ms.reviewer: pehecke search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/virtual-entities/get-started-ve.md b/powerapps-docs/developer/data-platform/virtual-entities/get-started-ve.md index 14ebd16c2e..6bdd656529 100644 --- a/powerapps-docs/developer/data-platform/virtual-entities/get-started-ve.md +++ b/powerapps-docs/developer/data-platform/virtual-entities/get-started-ve.md @@ -5,7 +5,7 @@ ms.date: 08/08/2024 author: mkannapiran ms.author: kamanick ms.reviewer: pehecke -ms.topic: conceptual +ms.topic: get-started ms.collection: get-started applies_to: - "Dynamics 365 (online)" @@ -70,6 +70,7 @@ The following are limitations of virtual tables that should be considered. - A virtual table can't represent an activity and don't support business process flows. - Once created, a virtual table can't be changed to be a standard (nonvirtual) table. The reverse is also true whereas a standard table can't be converted into a virtual table. - Selecting attributes in Retrieve and RetrieveMultiple queries won't be applied since all attributes are returned +- Reduce and limit including virtual table lookup columns in your grid view. It can take a while to read the virtual table lookup columns. For more information about how these limitations are reflected in the Dataverse API, see [API considerations of virtual tables](api-considerations-ve.md). diff --git a/powerapps-docs/developer/data-platform/walkthrough-blazor-webassembly-single-tenant.md b/powerapps-docs/developer/data-platform/walkthrough-blazor-webassembly-single-tenant.md index 2beef9663f..31540cffc8 100644 --- a/powerapps-docs/developer/data-platform/walkthrough-blazor-webassembly-single-tenant.md +++ b/powerapps-docs/developer/data-platform/walkthrough-blazor-webassembly-single-tenant.md @@ -2,7 +2,7 @@ title: "Tutorial: Create an ASP.NET Core Blazor WebAssembly app using Microsoft Dataverse | Microsoft Docs" description: "Learn how to create an ASP.NET Core Blazor WebAssembly application that connects to Microsoft Dataverse web services and retrieves business data." ms.date: 09/11/2024 -ms.topic: article +ms.topic: tutorial author: JimDaly ms.subservice: dataverse-developer ms.author: jdaly diff --git a/powerapps-docs/developer/data-platform/walkthrough-configure-azure-sas-integration.md b/powerapps-docs/developer/data-platform/walkthrough-configure-azure-sas-integration.md index c661377c77..8ca27656fe 100644 --- a/powerapps-docs/developer/data-platform/walkthrough-configure-azure-sas-integration.md +++ b/powerapps-docs/developer/data-platform/walkthrough-configure-azure-sas-integration.md @@ -5,7 +5,7 @@ ms.date: 04/03/2022 author: jaredha ms.author: jaredha ms.reviewer: pehecke -ms.topic: article +ms.topic: tutorial ms.subservice: dataverse-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/walkthrough-register-app-azure-active-directory.md b/powerapps-docs/developer/data-platform/walkthrough-register-app-azure-active-directory.md index a2c75405a3..ebfa967ae4 100644 --- a/powerapps-docs/developer/data-platform/walkthrough-register-app-azure-active-directory.md +++ b/powerapps-docs/developer/data-platform/walkthrough-register-app-azure-active-directory.md @@ -3,7 +3,7 @@ title: "Tutorial: Register an app with Microsoft Entra ID (Microsoft Dataverse) description: "Describes how to register an application with Microsoft Entra ID for authentication with Microsoft Dataverse web services." keywords: "" ms.date: 02/24/2025 -ms.topic: article +ms.topic: tutorial ms.assetid: 86c4a8a8-7401-6d75-7979-3b04b506eb0c author: "paulliew" # GitHub ID ms.subservice: dataverse-developer diff --git a/powerapps-docs/developer/data-platform/walkthrough-register-azure-aware-plug-in-using-plug-in-registration-tool.md b/powerapps-docs/developer/data-platform/walkthrough-register-azure-aware-plug-in-using-plug-in-registration-tool.md index 7de2bb7c2d..dc4b2a12d8 100644 --- a/powerapps-docs/developer/data-platform/walkthrough-register-azure-aware-plug-in-using-plug-in-registration-tool.md +++ b/powerapps-docs/developer/data-platform/walkthrough-register-azure-aware-plug-in-using-plug-in-registration-tool.md @@ -5,7 +5,7 @@ ms.date: 04/03/2022 author: marcelbf ms.author: marcelbf ms.reviewer: jdaly -ms.topic: article +ms.topic: tutorial ms.subservice: dataverse-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/walkthrough-update-service-endpoint-imported-solution.md b/powerapps-docs/developer/data-platform/walkthrough-update-service-endpoint-imported-solution.md index e147eb74ab..e67009238f 100644 --- a/powerapps-docs/developer/data-platform/walkthrough-update-service-endpoint-imported-solution.md +++ b/powerapps-docs/developer/data-platform/walkthrough-update-service-endpoint-imported-solution.md @@ -5,7 +5,7 @@ ms.date: 04/03/2022 author: jaredha ms.author: jaredha ms.reviewer: jdaly -ms.topic: article +ms.topic: tutorial ms.subservice: dataverse-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/TOC.yml b/powerapps-docs/developer/data-platform/webapi/TOC.yml index 222c23f5d9..e0a6847afe 100644 --- a/powerapps-docs/developer/data-platform/webapi/TOC.yml +++ b/powerapps-docs/developer/data-platform/webapi/TOC.yml @@ -16,6 +16,10 @@ items: - name: Get started using PowerShell href: quick-start-ps.md + - name: (JavaScript) + items: + - name: Get started using JavaScript + href: quick-start-js-spa.md - name: Web service authentication href: authenticate-web-api.md - name: Types and operations diff --git a/powerapps-docs/developer/data-platform/webapi/associate-disassociate-entities-using-web-api.md b/powerapps-docs/developer/data-platform/webapi/associate-disassociate-entities-using-web-api.md index 928e39946e..8e4cda125d 100644 --- a/powerapps-docs/developer/data-platform/webapi/associate-disassociate-entities-using-web-api.md +++ b/powerapps-docs/developer/data-platform/webapi/associate-disassociate-entities-using-web-api.md @@ -2,8 +2,8 @@ title: "Associate and disassociate table rows using the Web API (Microsoft Dataverse)| Microsoft Docs" description: "How to relate and unrelate records using the Web API" ms.date: 08/15/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/authenticate-web-api.md b/powerapps-docs/developer/data-platform/webapi/authenticate-web-api.md index 33a2d37210..5a371116f7 100644 --- a/powerapps-docs/developer/data-platform/webapi/authenticate-web-api.md +++ b/powerapps-docs/developer/data-platform/webapi/authenticate-web-api.md @@ -2,8 +2,8 @@ title: "Authenticate to Microsoft Dataverse with the Web API (Dataverse)| Microsoft Docs" description: "Learn about the different ways to manage authentication when using the Web API" ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/compose-http-requests-handle-errors.md b/powerapps-docs/developer/data-platform/webapi/compose-http-requests-handle-errors.md index 13054615aa..3d1675846a 100644 --- a/powerapps-docs/developer/data-platform/webapi/compose-http-requests-handle-errors.md +++ b/powerapps-docs/developer/data-platform/webapi/compose-http-requests-handle-errors.md @@ -3,8 +3,8 @@ title: Compose HTTP requests and handle errors description: Learn about the HTTP methods and headers that form a part of HTTP requests for the Web API and how to identify and handle errors returned in the response. ms.topic: how-to ms.date: 08/29/2024 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer @@ -137,7 +137,7 @@ You can request different OData annotation data to be returned with the results |---------|---------| |`OData.Community.Display.V1.FormattedValue`| Returns formatted string values you can use in your application. More information: [Formatted values](query/select-columns.md#formatted-values)| |`Microsoft.Dynamics.CRM.associatednavigationproperty`
`Microsoft.Dynamics.CRM.lookuplogicalname`|Returns information about related lookup columns. More information: [Lookup property data](query/select-columns.md#lookup-property-data)| -|`Microsoft.Dynamics.CRM.totalrecordcount`
`Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded`|When you use the `$count` query option the `@odata.count` annotation tells the number of records, but only 5,000 records can be returned at a time. Request the `Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded` to get a boolean value that will tell you if the total number of records matching the query exceeds 5,000. More information: [Count number of rows](query/count-rows.md) | +|`Microsoft.Dynamics.CRM.totalrecordcount`
`Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded`|When you use the `$count` query option the `@odata.count` annotation tells the number of records, but only 5,000 standard table records records can be returned at a time. For elastic tables the page size limit is 500. Request the `Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded` to get a boolean value that will tell you if the total number of records matching the query exceeds the maximum page size limit for the type of table you are using. More information: [Count number of rows](query/count-rows.md) | |`Microsoft.Dynamics.CRM.globalmetadataversion`|This annotation is returned on the request and you can cache it in your application. The value changes when any schema change occurs, indicating that you may need to refresh any schema data that your application has cached. More information: [Cache Schema data](../cache-schema-data.md)| |`Microsoft.PowerApps.CDS.ErrorDetails.OperationStatus`
`Microsoft.PowerApps.CDS.ErrorDetails.SubErrorCode`
`Microsoft.PowerApps.CDS.HelpLink`
`Microsoft.PowerApps.CDS.TraceText`
`Microsoft.PowerApps.CDS.InnerError.Message`|These annotations provide more details when errors are returned. More information: [Include more details with errors](#include-more-details-with-errors)| diff --git a/powerapps-docs/developer/data-platform/webapi/create-entity-web-api.md b/powerapps-docs/developer/data-platform/webapi/create-entity-web-api.md index 45a6654b49..f961812b4b 100644 --- a/powerapps-docs/developer/data-platform/webapi/create-entity-web-api.md +++ b/powerapps-docs/developer/data-platform/webapi/create-entity-web-api.md @@ -4,8 +4,8 @@ description: Learn how to use the Web API to send a POST request to create a tab ms.date: 12/16/2024 ms.service: powerapps ms.topic: how-to -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/create-update-optionsets.md b/powerapps-docs/developer/data-platform/webapi/create-update-optionsets.md index 3cfb6639f2..3564e69670 100644 --- a/powerapps-docs/developer/data-platform/webapi/create-update-optionsets.md +++ b/powerapps-docs/developer/data-platform/webapi/create-update-optionsets.md @@ -2,7 +2,7 @@ title: "Create and update choices (option sets) using the Web API" description: "Learn about creating and updating choices in Microsoft Dataverse using the Web API." ms.date: 06/07/2023 -ms.topic: article +ms.topic: how-to applies_to: - "Dynamics 365 (online)" author: mkannapiran diff --git a/powerapps-docs/developer/data-platform/webapi/dataversewebapi-sample-library.md b/powerapps-docs/developer/data-platform/webapi/dataversewebapi-sample-library.md new file mode 100644 index 0000000000..93f2d66e1e --- /dev/null +++ b/powerapps-docs/developer/data-platform/webapi/dataversewebapi-sample-library.md @@ -0,0 +1,288 @@ +--- +title: "DataverseWebAPI.js sample library" +description: "This article describes the classes included in the DataverseWebAPI.js sample library used by samples in this group of single page application samples." +ms.date: 03/22/2025 +author: JimDaly +ms.author: jdaly +ms.reviewer: jdaly +search.audienceType: + - developer +contributors: + - JimDaly +--- +# DataverseWebAPI.js sample library + +The [`DataverseWebAPI.js` sample library](#dataversewebapijs-sample-library-code) contains the implementation of the [`Client`](#client-class) and [`ChangeSet`](#changeset-class) classes for interacting with the Dataverse Web API in the [Web API Data operations Samples (Client-side JavaScript)](web-api-samples-client-side-javascript.md). This sample library demonstrates a set of methods to perform CRUD operations, batch requests, and other interactions with the Dataverse Web API. + +This library demonstrates: + +- Using configuration data passed to the library +- Managing errors returned by the Dataverse Web API +- Helping keep code [DRY](https://wikipedia.org/wiki/Don%27t_repeat_yourself) and encourage reuse. +- A pattern of code reuse by: + + - All operations pass through a common [Send method](#sendrequest) that accepts a single [Request class](https://developer.mozilla.org/docs/Web/API/Request) instance and adds common headers including `Authorization`. + - Providing a [Batch method](#batchrequests-continueonerror--false) that accepts [Request](https://developer.mozilla.org/docs/Web/API/Request) classes and returns [Response](https://developer.mozilla.org/docs/Web/API/Response) classes. + - Each method provided represents a sample showing how to construct a `Request` instance that can be used with the `Batch` method. + +> [!NOTE] +> This sample library is a helper that is used by all the Dataverse JavaScript client-side Web API samples, but it isn't an SDK. It's tested only to confirm that the samples that use it run successfully. This sample code is provided 'as-is' with no warranty for reuse. + +This library doesn't: + +- **Manage authentication**. It depends on a function passed from an application that provides the access token to use. +- **Provide for any code generation capabilities**. All methods used in the samples are written by hand. All business entity data uses JavaScript objects rather than a class representing the entity type. +- **Provide an object model for composing OData queries**. All queries show the OData query syntax as query parameters. + +This library contains definitions of the following classes: + +|Class|Description| +|---|---| +|[`Client`](#client-class)|Represents the Dataverse Web API Client. It provides methods to interact with the Dataverse Web API.| +|[`ChangeSet`](#changeset-class)|Represents a set of changes used with batch processing. All requests within the changeset must succeed or fail as a group.| + +You can find the code for this library in [DataverseWebAPI.js sample library code](#dataversewebapijs-sample-library-code) and also on [GitHub at PowerApps-Samples/blob/master/dataverse/webapi/JS/SPASample/src/scripts/DataverseWebAPI.js](https://github.com/microsoft/PowerApps-Samples/blob/master/dataverse/webapi/JS/SPASample/src/scripts/DataverseWebAPI.js). + + +## `Client` class + +Represents the Dataverse Web API Client. It provides methods to interact with the Dataverse Web API. + +### Client constructor + +#### `constructor(baseUrl, getTokenFunc, version = "9.2")` + +Creates an instance of the `Client`. + +- **Parameters:** + - `baseUrl` (string): The base URL for the Dataverse API. + - `getTokenFunc` (function): A function that returns an access token. + - `version` (string, optional): A string to override the default version. Default is `"9.2"`. + +### Public Methods + +> [!NOTE] +> All public methods are [asynchronous](https://developer.mozilla.org/docs/Learn_web_development/Extensions/Async_JS). + +#### `Send(request)` + +Sends an HTTP request using [fetch](https://developer.mozilla.org/docs/Web/API/Fetch_API) with required standard headers, including the `Authorization` headers. All other public methods use this method to send the request. + +- **Parameters:** + - `request` ([Request](https://developer.mozilla.org/docs/Web/API/Request)): The request to send. + +- **Returns:** `Promise`: The response from the fetch call or an error if the request fails. + +#### `WhoAmI()` + +Retrieves information about the current user by calling the [WhoAmI function](/power-apps/developer/data-platform/webapi/reference/whoami). + +- **Returns:** `Promise`: A promise that resolves to the user information in JSON format, or an error if the request fails. + +#### `Create(entitySetName, data)` + +Creates a new record in the specified entity set as described in [Create a table row using the Web API](create-entity-web-api.md). + +- **Parameters:** + - `entitySetName` (string): The name of the entity set where the new entity will be created. + - `data` (Object): The data for the new entity. + +- **Returns:** `Promise`: A promise that resolves to an object containing the ID of the created entity, or an error if the request fails. + +#### `Retrieve(entitySetName, id, query = null, includeAnnotations = true)` + +Retrieves a record from the specified entity set by ID, with optional query options as described in [Retrieve a table row using the Web API](retrieve-entity-using-web-api.md). + +- **Parameters:** + - `entitySetName` (string): The name of the entity set from which to retrieve the entity. + - `id` (string): The ID of the entity to retrieve. + - `query` (string, optional): The OData query options to apply. + - `includeAnnotations` (boolean, optional): Whether OData annotations are returned in the response. Default value is `true`. + +- **Returns:** `Promise`: A promise that resolves to the retrieved entity in JSON format, or an error if the request fails. + +#### `Refresh(record, primarykeyName)` + +Refreshes the given record by fetching the latest data from the server using [conditional retrieval](perform-conditional-operations-using-web-api.md#conditional-retrievals). + +- **Parameters:** + - `record` (Object): The record to refresh. Must contain `@odata.etag` and `@odata.context` properties. + - `primarykeyName` (string): The name of the primary key property in the record. + +- **Returns:** `Promise`: The refreshed record. + +#### `CreateRetrieve(entitySetName, data, query, includeAnnotations = true)` + +Creates and retrieves a record from the specified entity set as described in [create with data returned](create-entity-web-api.md#create-with-data-returned). + +- **Parameters:** + - `entitySetName` (string): The name of the entity set. + - `data` (Object): The data to be sent in the request body. + - `query` (string, optional): The query string to be appended to the entity set URL. + - `includeAnnotations` (boolean, optional): Whether to include OData annotations in the response. Default value is `true`. + +- **Returns:** `Promise`: The response data as a JSON object. + +#### `RetrieveMultiple(collectionResource, query, maxPageSize = 100, includeAnnotations = true)` + +Retrieves multiple records from a specified entity set collection with optional query parameters as described in [use OData to query data](query/overview.md). + +- **Parameters:** + - `collectionResource` (string): The name of the entity set or a filtered collection expression to retrieve records from. + - `query` (string): The OData query options to apply. + - `maxPageSize` (number, optional): The maximum number of records to retrieve per page. Default is `100`. + - `includeAnnotations` (boolean, optional): Whether to include OData annotations in the response. Default value is `true`. + +- **Returns:** `Promise`: The response from the server containing the retrieved entities. + +#### `GetNextLink(nextLink, maxPageSize = 100, includeAnnotations = true)` + +Retrieves the next page of records from a specified entity set collection using the `@odata.nextLink` value as described in [page results](query/page-results.md). + +- **Parameters:** + - `nextLink` (string): The `@odata.nextLink` value from the previous response. + - `maxPageSize` (number, optional): The maximum number of records to retrieve per page. Default is `100`. + - `includeAnnotations` (boolean, optional): Whether to include OData annotations in the response. Default value is `true`. + +- **Returns:** `Promise`: The response from the server containing the retrieved entities. + +#### `FetchXml(entitySetName, fetchXml)` + +Asynchronously fetches data from a specified entity set using FetchXML as described in [use FetchXml to retrieve data](../fetchxml/retrieve-data.md?tabs=webapi). + +- **Parameters:** + - `entitySetName` (string): The name of the entity set to query. + - `fetchXml` (string): The FetchXML query string. + +- **Returns:** `Promise`: The JSON response from the server. + +#### `GetCollectionCount(collectionResource)` + +Asynchronously retrieves the count of items in a specified collection as described in [count rows](query/count-rows.md). + +- **Parameters:** + - `collectionResource` (string): The resource URL of the collection. + +- **Returns:** `Promise`: The count of items in the collection, up to `5000`. + +#### `Update(entitySetName, id, data, etag = null)` + +Updates a record in the specified entity set by ID with the provided data as described in [basic update](update-delete-entities-using-web-api.md#basic-update). + +- **Parameters:** + - `entitySetName` (string): The name of the entity set where the record exists. + - `id` (string): The ID of the record to update. + - `data` (Object): The data to update the record with. + - `etag` (string, optional): Specify the etag value to prevent update when a newer record exists. + +- **Returns:** `Promise`: A promise that resolves to the response of the update operation, or an error if the request fails. + +#### `Delete(entitySetName, id, etag = null)` + +Deletes an entity from the specified entity set by ID as described by [basic update](update-delete-entities-using-web-api.md#basic-delete) + +- **Parameters:** + - `entitySetName` (string): The name of the entity set from which to delete the entity. + - `id` (string): The ID of the entity to delete. + - `etag` (string, optional): Specify the etag value to prevent delete when a newer record exists. + +- **Returns:** `Promise`: A promise that resolves to the response of the delete operation, or an error if the request fails. + +#### `SetValue(entitySetName, id, columnName, value)` + +Sets the value of a specified column for a given record as described in [update a single property value](update-delete-entities-using-web-api.md#update-a-single-property-value). + +- **Parameters:** + - `entitySetName` (string): The name of the entity set. + - `id` (string): The ID of the record. + - `columnName` (string): The logical name of the column to set the value for. + - `value` (*): The value to set for the specified column. + +- **Returns:** `Object`: The response from the server. + +#### `GetValue(entitySetName, id, columnName)` + +Retrieves the value of a specified column for a given record as described in [retrieve a single property value](retrieve-entity-using-web-api.md#retrieve-a-single-property-value) + +- **Parameters:** + - `entitySetName` (string): The name of the entity set. + - `id` (string): The ID of the record. + - `columnName` (string): The name of the column to retrieve the value from. + +- **Returns:** `Object`: The response from the server. + +#### `Associate(targetSetName, targetId, navigationProperty, relatedSetName, relatedId)` + +Associates records by creating data in the relationship to link them as described in [add a record to a collection](associate-disassociate-entities-using-web-api.md#add-a-record-to-a-collection). + +- **Parameters:** + - `targetSetName` (string): The name of the target entity set. + - `targetId` (string|number): The ID of the target record. + - `navigationProperty` (string): The navigation property that defines the relationship. + - `relatedSetName` (string): The name of the related entity set. + - `relatedId` (string|number): The ID of the record to associate with the target. + +- **Returns:** `Promise`: The response from the server after creating the association. + +#### `Disassociate(targetSetName, targetId, navigationProperty, relatedId)` + +Disassociates a record from another record by deleting data in the relationship to link them as described in [remove a record from a collection](associate-disassociate-entities-using-web-api.md#remove-a-record-from-a-collection). + +- **Parameters:** + - `targetSetName` (string): The name of the target entity set. + - `targetId` (string|guid): The ID of the target record. + - `navigationProperty` (string): The navigation property that defines the relationship. + - `relatedId` (string|guid): The ID of the related record. + +- **Returns:** `Promise`: The response from the server after deleting the association. + + +#### `getBatchBody(request, id, inChangeSet = false)` + +For internal use only. This method is public because it's used by the [ChangeSet class](#changeset-class). There are no scenarios where you need to use this method while using this library. + + +#### `Batch(requests, continueOnError = false)` + +Sends a batch request containing multiple ([Request](https://developer.mozilla.org/docs/Web/API/Request) or [ChangeSet](#changeset-class) items as described in [Execute batch operations using the Web API](execute-batch-operations-using-web-api.md). + +- **Parameters:** + - `requests` (Array<([Request](https://developer.mozilla.org/docs/Web/API/Request)|[ChangeSet](#changeset-class)>): An array of `Request` or `ChangeSet` items to be included in the batch request. + - `continueOnError` (boolean, optional): A flag indicating whether to continue processing subsequent requests if an error occurs. Default is `false`. + +- **Returns:** `Promise>`: The parsed response from the batch request. + +## `ChangeSet` class + +Represents a set of changes used with batch processing. All requests within the changeset must succeed or fail as a group. + +### ChangeSet constructor + +#### `constructor(requests)` + +Creates an instance of `ChangeSet`. + +- **Parameters:** + - `requests` (Array<Request>): An array of [Request](https://developer.mozilla.org/docs/Web/API/Request) objects. + +### Properties + +- `requests` (Array<Request>): The array of [Request](https://developer.mozilla.org/docs/Web/API/Request) objects in the change set. + +### Methods + +- `getChangeSetText(batchId)`: For internal use only. Gets the text for the changeset in the `$batch` operation. This method is public because it's used by the [Client class Batch method](#batchrequests-continueonerror--false). There are no scenarios where you need to use this method directly with this library. + +## DataverseWebAPI.js sample library code + +The following is the code for the DataverseWebAPI.js sample library + +:::code language="javascript" source="~/../PowerApps-Samples/dataverse/webapi/JS/SPASample/src/scripts/DataverseWebAPI.js"::: + +### See also + +[Use the Dataverse Web API](overview.md) +[Web API Samples](web-api-samples.md) +[Web API Samples (C#)](web-api-samples-csharp.md) + +[!INCLUDE[footer-include](../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/webapi/execute-batch-operations-using-web-api.md b/powerapps-docs/developer/data-platform/webapi/execute-batch-operations-using-web-api.md index cb6ac501f4..01a28b06c6 100644 --- a/powerapps-docs/developer/data-platform/webapi/execute-batch-operations-using-web-api.md +++ b/powerapps-docs/developer/data-platform/webapi/execute-batch-operations-using-web-api.md @@ -2,8 +2,8 @@ title: "Execute batch operations using the Web API (Microsoft Dataverse)| Microsoft Docs" description: "Batch operation lets you group multiple operations in a single HTTP request. Read how to execute batch operations using the Web API" ms.date: 11/17/2023 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/get-started-dynamics-365-web-api-csharp.md b/powerapps-docs/developer/data-platform/webapi/get-started-dynamics-365-web-api-csharp.md index 710208c752..1e60b67ad8 100644 --- a/powerapps-docs/developer/data-platform/webapi/get-started-dynamics-365-web-api-csharp.md +++ b/powerapps-docs/developer/data-platform/webapi/get-started-dynamics-365-web-api-csharp.md @@ -1,9 +1,9 @@ --- title: "Get started with Dataverse Web API (C#) (Dataverse)| Microsoft Docs" description: "Learn how to access the Dataverse Web API using the Microsoft Visual C# programming language." -ms.date: 06/22/2023 -author: MicroSri -ms.author: sriknair +ms.date: 05/28/2025 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/get-started-web-api-client-side-javascript.md b/powerapps-docs/developer/data-platform/webapi/get-started-web-api-client-side-javascript.md index 9a77c585a1..0f531fb614 100644 --- a/powerapps-docs/developer/data-platform/webapi/get-started-web-api-client-side-javascript.md +++ b/powerapps-docs/developer/data-platform/webapi/get-started-web-api-client-side-javascript.md @@ -2,8 +2,8 @@ title: "Client-side JavaScript using Web API in model-driven apps | Microsoft Docs" description: "JavaScript can be used in HTML web resources, form scripts or ribbon commands to perform operations on Microsoft Dataverse for Apps data using Web API" ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/impersonate-another-user-web-api.md b/powerapps-docs/developer/data-platform/webapi/impersonate-another-user-web-api.md index b96917fc05..6c70ebf5b2 100644 --- a/powerapps-docs/developer/data-platform/webapi/impersonate-another-user-web-api.md +++ b/powerapps-docs/developer/data-platform/webapi/impersonate-another-user-web-api.md @@ -2,8 +2,8 @@ title: "Impersonate another user using the Web API (Microsoft Dataverse)| Microsoft Docs" description: "Impersonation is used to execute business logic(code) on behalf of another Microsoft Dataverse user to provide a desired feature or service using the appropriate role and object-based security of that impersonated user. Read how you can impersonate another user in Dataverse using the Web API" ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/insomnia.md b/powerapps-docs/developer/data-platform/webapi/insomnia.md index d22bf9144b..0083690398 100644 --- a/powerapps-docs/developer/data-platform/webapi/insomnia.md +++ b/powerapps-docs/developer/data-platform/webapi/insomnia.md @@ -2,10 +2,10 @@ title: "Use Insomnia with Dataverse Web API" description: "Learn how to set up and configure Insomnia local Scratch Pad with environments that connect with Microsoft Dataverse environments." ms.date: 03/15/2024 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/webapi/manage-duplicate-detection-create-update.md b/powerapps-docs/developer/data-platform/webapi/manage-duplicate-detection-create-update.md index 93a4ff0f80..9366f2e088 100644 --- a/powerapps-docs/developer/data-platform/webapi/manage-duplicate-detection-create-update.md +++ b/powerapps-docs/developer/data-platform/webapi/manage-duplicate-detection-create-update.md @@ -2,9 +2,9 @@ title: "Detect duplicate data using the Web API (Microsoft Dataverse)| Microsoft Docs" description: "Read how to detect duplicates using MSCRM.SuppressDuplicateDetection header and Microsoft Dataverse Web API" ms.date: 12/31/2022 -ms.topic: article -author: MicroSri -ms.author: sriknair +ms.topic: how-to +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/media/dataverse-web-api-quickstart-spa-permissions-requested.png b/powerapps-docs/developer/data-platform/webapi/media/dataverse-web-api-quickstart-spa-permissions-requested.png new file mode 100644 index 0000000000..18f8d49d8e Binary files /dev/null and b/powerapps-docs/developer/data-platform/webapi/media/dataverse-web-api-quickstart-spa-permissions-requested.png differ diff --git a/powerapps-docs/developer/data-platform/webapi/media/quickspa-project-with-files.png b/powerapps-docs/developer/data-platform/webapi/media/quickspa-project-with-files.png new file mode 100644 index 0000000000..53b135ce6b Binary files /dev/null and b/powerapps-docs/developer/data-platform/webapi/media/quickspa-project-with-files.png differ diff --git a/powerapps-docs/developer/data-platform/webapi/media/quickspa-project.png b/powerapps-docs/developer/data-platform/webapi/media/quickspa-project.png new file mode 100644 index 0000000000..0c81c44ea2 Binary files /dev/null and b/powerapps-docs/developer/data-platform/webapi/media/quickspa-project.png differ diff --git a/powerapps-docs/developer/data-platform/webapi/media/quickstart-web-api-js-spa.png b/powerapps-docs/developer/data-platform/webapi/media/quickstart-web-api-js-spa.png new file mode 100644 index 0000000000..f261dd2206 Binary files /dev/null and b/powerapps-docs/developer/data-platform/webapi/media/quickstart-web-api-js-spa.png differ diff --git a/powerapps-docs/developer/data-platform/webapi/merge-entity-using-web-api.md b/powerapps-docs/developer/data-platform/webapi/merge-entity-using-web-api.md index cb48c69269..3b6f3c7781 100644 --- a/powerapps-docs/developer/data-platform/webapi/merge-entity-using-web-api.md +++ b/powerapps-docs/developer/data-platform/webapi/merge-entity-using-web-api.md @@ -2,8 +2,8 @@ title: "Merge table rows using the Web API (Microsoft Dataverse)| Microsoft Docs" description: "Read how to use the Merge unbound action to merge two table rows" ms.date: 08/30/2024 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/multitable-lookup.md b/powerapps-docs/developer/data-platform/webapi/multitable-lookup.md index d1aec9e1ce..3265d4ebba 100644 --- a/powerapps-docs/developer/data-platform/webapi/multitable-lookup.md +++ b/powerapps-docs/developer/data-platform/webapi/multitable-lookup.md @@ -3,7 +3,7 @@ title: "Use multi-table lookup columns" description: "Learn how to use a single lookup type column to refer to data in multiple other tables." ms.date: 07/07/2021 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to author: mkannapiran ms.author: kamanick search.audienceType: diff --git a/powerapps-docs/developer/data-platform/webapi/overview.md b/powerapps-docs/developer/data-platform/webapi/overview.md index c35c42196c..5a7e59dd84 100644 --- a/powerapps-docs/developer/data-platform/webapi/overview.md +++ b/powerapps-docs/developer/data-platform/webapi/overview.md @@ -1,9 +1,9 @@ --- title: "Use the Microsoft Dataverse Web API (Dataverse)| Microsoft Docs" description: "The Microsoft Dataverse Web API implements the OData v4 protocol and provides a development experience that can be used across a wide variety of programming languages, platforms, and devices" -ms.date: 08/29/2024 -author: MicroSri -ms.author: sriknair +ms.date: 05/28/2025 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer @@ -15,31 +15,70 @@ contributors: [!INCLUDE[cc-terminology](../includes/cc-terminology.md)] -You can use the Web API or [SDK for .NET](../org-service/overview.md) to work with data, and table and column definitions in Dataverse. +You can use the Web API or [SDK for .NET](../org-service/overview.md) to work with data, as well as table and column definitions in Dataverse. -The Dataverse Web API provides a development experience that can be used across a wide variety of programming languages, platforms, and devices. The Web API implements the OData (Open Data Protocol), version 4.0, an OASIS standard for building and consuming RESTful APIs over rich data sources. You can learn more about this protocol at [https://www.odata.org/](https://www.odata.org/). Details about this standard are available at [https://www.oasis-open.org/standards#odatav4.0](https://www.oasis-open.org/standards#odatav4.0). +The Dataverse Web API provides a development experience that can be used across a wide variety of programming languages, platforms, and devices. The Web API implements the OData (Open Data Protocol), version 4.0, an OASIS standard for building and consuming RESTful APIs over rich data sources. You can learn more about this protocol at [https://www.odata.org/](https://www.odata.org/). Details about this OASIS standard are available at [https://www.oasis-open.org/standards#odatav4.0](https://www.oasis-open.org/standards#odatav4.0). Because the Web API is built on open standards, we don't provide assemblies for a specific developer experience. You can compose HTTP requests for specific operations or use third-party libraries to generate classes for whatever language or platform you want. You can find a list of libraries that support OData version 4.0 at [https://www.odata.org/libraries/](https://www.odata.org/libraries/). ## Web API and the Organization service -It is valuable to recognize that the organization service is what defines the platform. The Web API provides a RESTful programming experience but ultimately all data operations go through the underlying organization service. The organization service defines the supported operations as messages. Each message has a name. These names are bound to the events used in the event framework to evaluate what registered extensions should be initiated. More information: [Event Framework](../event-framework.md) +It's valuable to recognize that the organization service is what defines the platform. The Web API provides a RESTful programming experience but ultimately all data operations go through the underlying organization service. The organization service defines the supported operations as messages. Each message has a name. These names are bound to the events used in the event framework to evaluate what registered extensions should be initiated. More information: [Event Framework](../event-framework.md) -The Web API allows you to do all the same operations as the SDK for .NET but presents them in an RESTful style. OData v4 provides for named operations via *functions* or *actions*. Most messages available in the organization service are exposed as a corresponding named function or action. Those messages that correspond to CRUD operations are not available in the Web API because as a RESTful service they have implementations using GET, POST, PATCH, and DELETE HTTP methods, but within the platform the *retrieve*, *create*, *update*, and *delete* messages are invoked just as they are when the corresponding operations are performed using the .NET Framework assemblies. +The Web API allows you to do the same operations as the SDK for .NET but presents them in an RESTful style. OData v4 provides for named operations via *functions* or *actions*. Most messages available in the organization service are exposed as a corresponding named function or action. Those messages that correspond to CRUD operations aren't available in the Web API because as a RESTful service they have implementations using `GET`, `POST`, `PATCH`, and `DELETE` HTTP methods, but within the platform the *retrieve*, *create*, *update*, and *delete* messages are invoked in the same way the corresponding operations are performed using the SDK for .NET assemblies. ## Getting started -Now that you have read an overview of the Web API, proceed to the [Get started with Dataverse Web API](get-started-dynamics-365-web-api-csharp.md) topic to learn how to write your first C# program in Visual Studio that uses the Web API. +You can use the Web API with any language that allows you to send authenticated HTTP requests. We prepared a few getting started experiences for four common scenarios: + +### HTTP request tools + +An application that allows you to compose and send authenticated HTTP requests is an essential first step. There are many available, such as [Postman](https://www.postman.com/), [Bruno](https://www.usebruno.com/), or [curl](https://curl.se/). Choose and use whichever you like best. We provide some steps to use [Insomnia](https://insomnia.rest/) because it has a graphic user interface, a relatively easy installation, and provides an option to opt out of creating an account. [Learn how to use Insomnia with Dataverse Web API](insomnia.md) + +> [!TIP] +> Unless you already have a favorite HTTP request tool, you might find that using PowerShell with Visual Studio Code is as easy to get started and allows for powerful scripting capabilities as well. + + +### PowerShell developers + +Using Web API with PowerShell is one of the easiest ways to get started. You can use the [Invoke-RestMethod cmdlet](/powershell/module/microsoft.powershell.utility/invoke-restmethod) to send requests and process the responses using the [ConvertTo-Json cmdlet](/powershell/module/microsoft.powershell.utility/convertto-json). + +You can find the following content about using PowerShell with Web API: + +- [Quick Start Web API with PowerShell and Visual Studio Code](quick-start-ps.md) +- [Use PowerShell and Visual Studio Code with the Dataverse Web API](use-ps-and-vscode-web-api.md) +- [Web API Data operations Samples (PowerShell)](web-api-samples-powershell.md) + + +### JavaScript developers + +JavaScript developers frequently use the Dataverse Web API with model-driven apps. Model-driven apps provide the [Xrm.WebApi](../../model-driven-apps/clientapi/reference/xrm-webapi.md) object that exposes methods to interact with the Web API. [Learn more about client-side JavaScript using Web API in model-driven apps](get-started-web-api-client-side-javascript.md). + +Single Page Applications (SPAs) also use JavaScript and can connect to the Dataverse Web API. [Quickstart: Web API with client-side JavaScript and Visual Studio Code](quick-start-js-spa.md) describes how to connect to the Web API using a SPA application pattern. You can find more samples in [Web API Data operations Samples (Client-side JavaScript)](web-api-samples-client-side-javascript.md). + +Within Power Apps Component Framework (PCF) components, JavaScript developers use methods that are part of the [WebAPI](../../component-framework/reference/webapi.md) object to work with Dataverse data in PCF components. + +Finally, Power Pages exposes a [Portals Web API](/power-pages/configure/web-api-overview) that offers a subset of Dataverse operations available using the Web API. + +### .NET developers + +.NET developers can use either the [Dataverse SDK for .NET](../org-service/overview.md) or the Web API. You might want to use the Web API when you don't want to take a dependency on a specific NuGet package or the requirements of your project don't require the strongly-typed classes provided by the SDK for .NET. + +To use Web API with C#, see these quick start articles: + +- [Quick Start: Web API sample (C#)](quick-start-console-app-csharp.md) +- [Quickstart: Blazor Server Web API sample (C#)](quick-start-blazor-server-app.md) + +There are many more C# Web API samples in [Web API Data operations Samples (C#)](web-api-samples-csharp.md) + -If you are a JavaScript developer and want to use the Web API in model-driven apps, look at [Client-side JavaScript using Web API in model-driven apps](get-started-web-api-client-side-javascript.md). - ### Related Sections -[Work with data using code](../work-with-data.md)
-[OData - the best way to REST](https://www.odata.org/)
-[OData Version 4.0 Part 1: Protocol Plus Errata 02](https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part1-protocol.html)
-[OData Version 4.0 Part 2: URL Conventions Plus Errata 02](https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part2-url-conventions.html)
+[Work with data using code](../work-with-data.md) +[OData - the best way to REST](https://www.odata.org/) +[OData Version 4.0 Part 1: Protocol Plus Errata 02](https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part1-protocol.html) +[OData Version 4.0 Part 2: URL Conventions Plus Errata 02](https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part2-url-conventions.html) [OData Version 4.0 Part 3: Common Schema Definition Language (CSDL) Plus Errata 02](https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part3-csdl.html) diff --git a/powerapps-docs/developer/data-platform/webapi/perform-conditional-operations-using-web-api.md b/powerapps-docs/developer/data-platform/webapi/perform-conditional-operations-using-web-api.md index 9bd27f0bd5..908a932432 100644 --- a/powerapps-docs/developer/data-platform/webapi/perform-conditional-operations-using-web-api.md +++ b/powerapps-docs/developer/data-platform/webapi/perform-conditional-operations-using-web-api.md @@ -2,8 +2,8 @@ title: "Perform conditional operations using the Web API (Microsoft Dataverse)| Microsoft Docs" description: "Read how to create conditions that decide whether and how to perform certain operations using the Web API" ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/perform-operations-web-api.md b/powerapps-docs/developer/data-platform/webapi/perform-operations-web-api.md index 6f3b4115c6..44648bd151 100644 --- a/powerapps-docs/developer/data-platform/webapi/perform-operations-web-api.md +++ b/powerapps-docs/developer/data-platform/webapi/perform-operations-web-api.md @@ -2,8 +2,8 @@ title: "Perform operations using the Web API (Microsoft Dataverse)| Microsoft Docs" description: "Microsoft Dataverse Web API provides a RESTful web service interface that you can use to interact with data in Dataverse using a wide variety of programming languages. Read about the operations that can be performed using the Web API" ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/query-metadata-web-api.md b/powerapps-docs/developer/data-platform/webapi/query-metadata-web-api.md index b43c644a45..d42bb8f03c 100644 --- a/powerapps-docs/developer/data-platform/webapi/query-metadata-web-api.md +++ b/powerapps-docs/developer/data-platform/webapi/query-metadata-web-api.md @@ -2,7 +2,7 @@ title: "Query table definitions using the Web API (Microsoft Dataverse) | Microsoft Docs" description: "The capability to query table definitions (metadata) is available using the Web API and using the SDK for .NET by using RetrieveMetadataChangesRequest" ms.date: 03/01/2023 -ms.topic: article +ms.topic: how-to applies_to: - "Dynamics 365 (online)" author: mkannapiran diff --git a/powerapps-docs/developer/data-platform/webapi/query/aggregate-data.md b/powerapps-docs/developer/data-platform/webapi/query/aggregate-data.md index 1acef75ebf..03076609ef 100644 --- a/powerapps-docs/developer/data-platform/webapi/query/aggregate-data.md +++ b/powerapps-docs/developer/data-platform/webapi/query/aggregate-data.md @@ -2,8 +2,9 @@ title: Aggregate data using OData description: Learn how to use OData to retrieve aggregated data from Microsoft Dataverse Web API. ms.date: 07/11/2024 -author: MicroSri -ms.author: sriknair +ms.topic: how-to +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.subservice: dataverse-developer search.audienceType: diff --git a/powerapps-docs/developer/data-platform/webapi/query/count-rows.md b/powerapps-docs/developer/data-platform/webapi/query/count-rows.md index 04ca24d1f8..070f3b93cd 100644 --- a/powerapps-docs/developer/data-platform/webapi/query/count-rows.md +++ b/powerapps-docs/developer/data-platform/webapi/query/count-rows.md @@ -2,8 +2,9 @@ title: Count rows using OData description: Learn how to use OData to count rows from Microsoft Dataverse tables using Dataverse Web API. ms.date: 07/11/2024 -author: MicroSri -ms.author: sriknair +ms.topic: how-to +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.subservice: dataverse-developer search.audienceType: @@ -14,7 +15,7 @@ contributors: --- # Count rows using OData -Use the `$count=true` query option to include a count of entities that match the filter criteria, up to 5,000. +Use the `$count=true` query option to include a count of entities that match the filter criteria, up to 5,000 for standard tables, 500 for elastic. **Request:** @@ -44,13 +45,13 @@ OData-Version: 4.0 } ``` -The response `@odata.count` annotation contains the number of rows, up to 5,000, that matches the filter criteria irrespective of the page size requested. +The response `@odata.count` annotation contains the number of rows, up to 5,000 for standard tables, 500 for elastic tables, that matches the filter criteria irrespective of the page size requested. > [!NOTE] -> If you want to retrieve a snapshot within the past 24 hours of the total number of rows for a table beyond 5,000, use the [RetrieveTotalRecordCount function](xref:Microsoft.Dynamics.CRM.RetrieveTotalRecordCount). +> If you want to retrieve a snapshot within the past 24 hours of the total number of rows for a table beyond 5,000 for standard tables, 500 for elastic tables, use the [RetrieveTotalRecordCount function](xref:Microsoft.Dynamics.CRM.RetrieveTotalRecordCount). -If the count value is 5,000 and you want to know whether the count is exactly 5,000 or greater than 5,000, you can add the [Prefer request header](https://www.rfc-editor.org/rfc/rfc7240) to send the [odata.include-annotations preference](http://docs.oasis-open.org/odata/odata/v4.0/os/part1-protocol/odata-v4.0-os-part1-protocol.html#_Toc372793628) for these annotations: +If the count value is equal to the limit for the type of table you are using, and you want to know whether the count is exactly at that number or greater than that number, you can add the [Prefer request header](https://www.rfc-editor.org/rfc/rfc7240) to send the [odata.include-annotations preference](http://docs.oasis-open.org/odata/odata/v4.0/os/part1-protocol/odata-v4.0-os-part1-protocol.html#_Toc372793628) for these annotations: - `Microsoft.Dynamics.CRM.totalrecordcount` - `Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded` @@ -65,7 +66,7 @@ This header adds the following annotations to the result: - `@Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded` -When used with the `$count=true` query option and there are more than 5,000 records, the following values are returned: +When used with the `$count=true` query option and there are more than 5,000 standard records, the following values are returned: ``` "@odata.count": 5000, @@ -73,7 +74,7 @@ When used with the `$count=true` query option and there are more than 5,000 reco "@Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded": true, ``` -If there are fewer than 5000 records, the actual count is returned. +If there are fewer than 5,000 records, the actual count is returned. ``` "@odata.count": 58, diff --git a/powerapps-docs/developer/data-platform/webapi/query/filter-rows.md b/powerapps-docs/developer/data-platform/webapi/query/filter-rows.md index 976323be05..2c503bab9a 100644 --- a/powerapps-docs/developer/data-platform/webapi/query/filter-rows.md +++ b/powerapps-docs/developer/data-platform/webapi/query/filter-rows.md @@ -1,9 +1,10 @@ --- title: Filter rows using OData description: Learn how to use OData to filter rows when you retrieve data from Microsoft Dataverse Web API. -ms.date: 07/11/2024 -author: MicroSri -ms.author: sriknair +ms.date: 05/28/2025 +ms.topic: how-to +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.subservice: dataverse-developer search.audienceType: @@ -23,7 +24,7 @@ The following table describes the operators and functions you can use in `$filte | |Description| More information| -|---------|---------|---------| +|---|---|---| |**Comparison operators**|Use the `eq`,`ne`,`gt`,`ge`,`lt`, and `le` operators to compare a property and a value.|[Comparison operators](#comparison-operators)| |**Logical operators**|Use `and`, `or`, and `not` to create more complex expressions. |[Logical operators](#logical-operators)| |**Grouping operators**|Use parentheses: `()`, to specify the precedence to evaluate a complex expression. |[Grouping operators](#grouping-operators)| @@ -36,7 +37,7 @@ The following table describes the operators and functions you can use in `$filte The following table describes the operators you can use to compare a property and a value. |Operator|Description|Example| -|--------------|-----------------|-------------| +|---|---|---| |`eq`|Equal|`$filter=revenue eq 100000`| |`ne`|Not Equal|`$filter=revenue ne 100000`| |`gt`|Greater than|`$filter=revenue gt 100000`| @@ -57,7 +58,7 @@ GET [Organization URI]/api/data/v9.2/contacts?$select=fullname&$filter=firstname The following table describes the logical operators you can use to create more complex expressions. |Operator|Description|Example| -|--------------|-----------------|-------------| +|---|---|---| |`and`|Logical and|`$filter=revenue lt 100000 and revenue gt 2000`| |`or`|Logical or|`$filter=contains(name,'(sample)') or contains(name,'test')`| |`not`|Logical negation|`$filter=not contains(name,'sample')`| @@ -73,7 +74,7 @@ Use parentheses `()` with logical operators to specify the precedence to evaluat Use more than 60 specialized functions designed for business applications. These functions provide special capabilities, as described in the following table. |Group|Functions| -|---------|---------| +|---|---| |**Dates** |, , , , ,
, , , , , , , ,
, , , , , , , ,
, , , , , , ,
, , , , , , ,
, , , , , , , , , , , , | |**Id Values**|, , , | |**Hierarchy**|, , , , ,
, , ,
More information: [Query hierarchical data](../../query-hierarchical-data.md)| @@ -133,7 +134,7 @@ The following table shows the URL encoded values for common special characters. When composing filters using strings, you can apply the following wildcard characters: |Characters |Description |T-SQL documentation and examples | -|---------|---------|---------| +|---|---|---| |`% ` |Matches any string of zero or more characters. This wildcard character can be used as either a prefix or a suffix.|[Percent character (Wildcard - Character(s) to Match) (Transact-SQL)](/sql/t-sql/language-elements/percent-character-wildcard-character-s-to-match-transact-sql)| |`_` |Use the underscore character to match any single character in a string comparison operation that involves pattern matching.|[_ (Wildcard - Match One Character) (Transact-SQL)](/sql/t-sql/language-elements/wildcard-match-one-character-transact-sql)| |`[]` |Matches any single character within the specified range or set that is specified between brackets.|[[ ] (Wildcard - Character(s) to Match) (Transact-SQL)](/sql/t-sql/language-elements/wildcard-character-s-to-match-transact-sql)| @@ -157,7 +158,7 @@ endswith(name,'value%') The following table describes the OData query functions you can use to filter on string values: |Function|Example| -|--------------|-------------| +|---|---| |`contains`|`$filter=contains(name,'(sample)')`| |`endswith`|`$filter=endswith(name,'Inc.')`| |`startswith`|`$filter=startswith(name,'a')`| @@ -186,8 +187,6 @@ GET [Organization URI]/api/data/v9.2/contacts?$select=fullname If you don't, you get an error like this: `There is an unterminated literal at position 21 in 'lastname eq 'O'Bryan''.` - - ## Filter based on related data values You can filter rows returned based on values in related tables. How you filter depends on the type of relationship. diff --git a/powerapps-docs/developer/data-platform/webapi/query/join-tables.md b/powerapps-docs/developer/data-platform/webapi/query/join-tables.md index b94bdd1cba..f526d05184 100644 --- a/powerapps-docs/developer/data-platform/webapi/query/join-tables.md +++ b/powerapps-docs/developer/data-platform/webapi/query/join-tables.md @@ -2,8 +2,9 @@ title: Join tables using OData description: Learn how to use OData to join tables when you retrieve data from Microsoft Dataverse Web API. ms.date: 10/30/2024 -author: MicroSri -ms.author: sriknair +ms.topic: how-to +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.subservice: dataverse-developer search.audienceType: @@ -319,7 +320,7 @@ If you use only single-level `$expand`, no paging is applied to the expanded row Each expanded collection-valued navigation property returns a `@odata.nextLink` URL that includes no paging information. It's a URL that represents the [filtered collection](overview.md#filtered-collections) for the relationship with your query options appended. You can use that URL to send a separate `GET` request and it returns the same rows that were returned in your original request. You can apply paging to that request. -Because no paging is applied to the expanded records, up to 5,000 related records can be returned for each expanded collection-valued navigation property. Depending on your data and the query, it could be a lot of data. Returning that much data could affect performance and possibly cause your request to time out. Be cautious about the queries you compose. You can use `$top`, `$filter`, and `$orderby` options to control the total number of records returned. +Because no paging is applied to the expanded records, up to 5,000 related table records can be returned for each expanded collection-valued navigation property. Depending on your data and the query, it could be a lot of data. Returning that much data could affect performance and possibly cause your request to time out. Be cautious about the queries you compose. You can use `$top`, `$filter`, and `$orderby` options to control the total number of records returned. The following example includes a single expand of the `Account_Tasks` and `contact_customer_accounts` while retrieving account records. The `Prefer: odata.maxpagesize=1` request header ensures that only one account record is returned in the first page. diff --git a/powerapps-docs/developer/data-platform/webapi/query/optimize-performance.md b/powerapps-docs/developer/data-platform/webapi/query/optimize-performance.md index 514d152ba9..f1cdf8b3ea 100644 --- a/powerapps-docs/developer/data-platform/webapi/query/optimize-performance.md +++ b/powerapps-docs/developer/data-platform/webapi/query/optimize-performance.md @@ -2,8 +2,9 @@ title: Optimize performance using OData description: Learn how to optimize performance when you retrieve data from Microsoft Dataverse using OData. ms.date: 01/06/2025 -author: MicroSri -ms.author: sriknair +ms.topic: how-to +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.subservice: dataverse-developer search.audienceType: diff --git a/powerapps-docs/developer/data-platform/webapi/query/order-rows.md b/powerapps-docs/developer/data-platform/webapi/query/order-rows.md index 4c60e9aa58..59d81bc78d 100644 --- a/powerapps-docs/developer/data-platform/webapi/query/order-rows.md +++ b/powerapps-docs/developer/data-platform/webapi/query/order-rows.md @@ -2,8 +2,9 @@ title: Order rows using OData description: Learn how to use OData to order rows when you retrieve data from Microsoft Dataverse Web API. ms.date: 07/11/2024 -author: MicroSri -ms.author: sriknair +ms.topic: how-to +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.subservice: dataverse-developer search.audienceType: diff --git a/powerapps-docs/developer/data-platform/webapi/query/overview.md b/powerapps-docs/developer/data-platform/webapi/query/overview.md index d031d1986d..64f28fd8a8 100644 --- a/powerapps-docs/developer/data-platform/webapi/query/overview.md +++ b/powerapps-docs/developer/data-platform/webapi/query/overview.md @@ -1,9 +1,10 @@ --- title: Use OData to query data description: Learn to compose a query using OData with Microsoft Dataverse Web API -ms.date: 07/11/2024 -author: MicroSri -ms.author: sriknair +ms.date: 05/28/2025 +ms.topic: how-to +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.subservice: dataverse-developer search.audienceType: @@ -165,7 +166,7 @@ To apply multiple options, separate query options from the resource path with a ### Use parameter aliases with query options -You can use parameter aliases for `$filter` and `$orderby` query options, but not inside the `$expand` option. Parameter aliases allow you to use the same value multiple times in a request. If the alias isn't assigned a value, it's assumed to be null. +You can use parameter aliases for `$filter` and `$orderby` query options, but not inside the `$expand` option. Parameter aliases allow you to use the same value multiple times in a request. If the alias isn't assigned a value, it is null. Without parameter aliases: @@ -195,7 +196,7 @@ The length of a URL in a `GET` request [is limited to 32 KB (32,768 characters)] ## Limit the number of rows -To limit the number of rows returned, use the `$top` OData query option. Without this limit, Dataverse returns up to 5,000 rows. +To limit the number of rows returned, use the `$top` OData query option. Without this limit, Dataverse returns up to 5,000 standard table rows, 500 elastic table rows. Alternatively, specify a number of records to return using paging. Don't use `$top` when you request pages of data. [Learn how to request paged results](page-results.md) @@ -221,7 +222,7 @@ There are some things that you can do using FetchXml that OData doesn't support. ## Community tools > [!NOTE] -> Tools created by the community are not supported by Microsoft. If you have questions or issues with community tools, contact the publisher of the tool. +> Tools created by the community aren't supported by Microsoft. If you have questions or issues with community tools, contact the publisher of the tool. The [Dataverse REST Builder](https://github.com/GuidoPreite/DRB) is an open source project that provides a user interface that helps you do many things using the Dataverse Web API, including composing queries. @@ -238,7 +239,7 @@ The Dataverse Web API is an OData version 4.0 service. These sections of the ODa This article and the other articles in this section describe the parts of the 4.0 OData specification implemented by the Dataverse Web API and how you can use it to retrieve business data from Dataverse. > [!NOTE] -> The OData version 4.01 is the latest version. It include enhancements and additional features not available in version 4.0, and therefore not currently available in the Dataverse Web API. +> The OData version 4.01 is the latest version. It includes enhancements and more features not available in version 4.0, and therefore not currently available in the Dataverse Web API. ## Next steps diff --git a/powerapps-docs/developer/data-platform/webapi/query/page-results.md b/powerapps-docs/developer/data-platform/webapi/query/page-results.md index 7ff5a31279..a1820fd4c0 100644 --- a/powerapps-docs/developer/data-platform/webapi/query/page-results.md +++ b/powerapps-docs/developer/data-platform/webapi/query/page-results.md @@ -2,8 +2,9 @@ title: Page results using OData description: Learn how to use OData to page results when you retrieve data from Microsoft Dataverse Web API. ms.date: 07/11/2024 -author: MicroSri -ms.author: sriknair +ms.topic: how-to +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.subservice: dataverse-developer search.audienceType: @@ -14,7 +15,7 @@ contributors: --- # Page results using OData -Use the `Prefer: odata.maxpagesize` request header to control the number of records returned. If you don't specify a number, up to 5,000 records may be returned for each request. You can't request a page size larger than 5,000. +Use the `Prefer: odata.maxpagesize` request header to control the number of records returned. If you don't specify a number, up to 5,000 table rows might be returned for each request. With both standard and elastic tables you can specify a max page size up to 5,000. Max page size requests larger than 5,000 are ignored for both standard and elastic tables. > [!NOTE] > Dataverse doesn't support the `$skip` query option, so you can't use the combination of `$top` and `$skip` for paging. [Learn about using the $top query option to limit the number of rows](overview.md#limit-the-number-of-rows) diff --git a/powerapps-docs/developer/data-platform/webapi/query/select-columns.md b/powerapps-docs/developer/data-platform/webapi/query/select-columns.md index e5e33677d6..093e8545fa 100644 --- a/powerapps-docs/developer/data-platform/webapi/query/select-columns.md +++ b/powerapps-docs/developer/data-platform/webapi/query/select-columns.md @@ -2,8 +2,8 @@ title: Select columns using OData description: Learn how to use OData to select columns when you retrieve data from Microsoft Dataverse Web API. ms.date: 07/11/2024 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.subservice: dataverse-developer search.audienceType: diff --git a/powerapps-docs/developer/data-platform/webapi/quick-start-blazor-server-app.md b/powerapps-docs/developer/data-platform/webapi/quick-start-blazor-server-app.md index a6cfc0b774..8322f96c75 100644 --- a/powerapps-docs/developer/data-platform/webapi/quick-start-blazor-server-app.md +++ b/powerapps-docs/developer/data-platform/webapi/quick-start-blazor-server-app.md @@ -2,7 +2,7 @@ title: "Quickstart: Blazor Server Web API sample (C#) (Microsoft Dataverse)| Microsoft Docs" description: "This sample demonstrates how to authenticate with a Microsoft Dataverse from a Blazor Server application and then call a basic WhoAmI Web API function." ms.date: 12/20/2022 -ms.topic: article +ms.topic: quickstart author: JimDaly # GitHub ID ms.author: jdaly # MSFT alias of Microsoft employees only ms.reviewer: pehecke diff --git a/powerapps-docs/developer/data-platform/webapi/quick-start-console-app-csharp.md b/powerapps-docs/developer/data-platform/webapi/quick-start-console-app-csharp.md index cf1ef2ebe3..d278f1baf4 100644 --- a/powerapps-docs/developer/data-platform/webapi/quick-start-console-app-csharp.md +++ b/powerapps-docs/developer/data-platform/webapi/quick-start-console-app-csharp.md @@ -1,9 +1,10 @@ --- title: "Quick Start: Web API sample (C#) (Microsoft Dataverse)| Microsoft Docs" description: "Walks you through creating a program to authenticate with the Microsoft Dataverse Server and then call a Web API function." +ms.topic: quickstart ms.date: 06/22/2023 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer @@ -13,14 +14,14 @@ contributors: # Quick Start: Web API sample (C#) -In this quick start you will create a simple console application to connect to your Microsoft Dataverse environment and invoke the Web API [WhoAmI Function](xref:Microsoft.Dynamics.CRM.WhoAmI). This function retrieves information about the logged on Dataverse user. Once you understand the basic functionality described here, you can move onto other Web API operations such as create, retrieve, update, and deletion of Dataverse table rows. +In this quick start, you create a console application to connect to your Microsoft Dataverse environment and invoke the Web API [WhoAmI Function](xref:Microsoft.Dynamics.CRM.WhoAmI). This function retrieves information about the logged on Dataverse user. Once you understand the basic functionality described here, you can move onto other Web API operations such as create, retrieve, update, and deletion of Dataverse table rows. -This program will authenticate and use an to send a `GET` request to the [WhoAmI Function](xref:Microsoft.Dynamics.CRM.WhoAmI). The response will be a [WhoAmIResponse ComplexType](xref:Microsoft.Dynamics.CRM.WhoAmIResponse). The program will then display the `UserId` property value obtained from the response. +This program authenticates and uses an to send a `GET` request to the [WhoAmI Function](xref:Microsoft.Dynamics.CRM.WhoAmI). The response is a [WhoAmIResponse ComplexType](xref:Microsoft.Dynamics.CRM.WhoAmIResponse). The program display the `UserId` property value obtained from the response. > [!NOTE] > This is a very simple example to show how to get connected with a minimum of code. -You can find the complete Visual Studio solution for this .NET 6 project in the [PowerApps-Samples](https://github.com/microsoft/PowerApps-Samples) repo under `dataverse/webapi/`[C#-NETx/QuickStart](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/webapi/CSharp-NETx/QuickStart). There is also a .NET Framework version of the sample under `dataverse/webapi/`[C#/QuickStart](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/webapi/CSharp/QuickStart). +You can find the complete Visual Studio solution for this .NET 6 project in the [PowerApps-Samples](https://github.com/microsoft/PowerApps-Samples) repo under `dataverse/webapi/`[C#-NETx/QuickStart](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/webapi/CSharp-NETx/QuickStart). There's also a .NET Framework version of the sample under `dataverse/webapi/`[C#/QuickStart](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/webapi/CSharp/QuickStart). ## Prerequisites @@ -31,7 +32,7 @@ You can find the complete Visual Studio solution for this .NET 6 project in the - Basic understanding of the C# language > [!NOTE] -> To authenticate you must have an app registered in Microsoft Entra ID. This quick start example provides an app registration `clientid` value you can use for the purpose of running sample code published by Microsoft. However, for your own custom applications you must register your apps with AD. More information: [Walkthrough: Register an app with Microsoft Entra ID](../walkthrough-register-app-azure-active-directory.md) +> To authenticate, you must have an app registered in Microsoft Entra ID. This quick start example provides an app registration `clientid` value you can use for running sample code published by Microsoft. However, for your own custom applications you must register your apps with AD. More information: [Walkthrough: Register an app with Microsoft Entra ID](../walkthrough-register-app-azure-active-directory.md) ## Create Visual Studio project @@ -47,7 +48,7 @@ You can find the complete Visual Studio solution for this .NET 6 project in the :::image type="content" source="media/quickstart-configure-.net-6-project.png" alt-text="Configure the project"::: -1. Configure the project by selecting **.NET 6.0 (Long Term Support)** and **Do not use top-level statements**. Then click **Create**. +1. Configure the project by selecting **.NET 6.0 (Long Term Support)** and **Do not use top-level statements**. Then select **Create**. :::image type="content" source="media/quickstart-configure-.net-6-project-additional-information.png" alt-text="Additional Information dialog."::: @@ -58,7 +59,7 @@ You can find the complete Visual Studio solution for this .NET 6 project in the :::image type="content" source="media/quickstart-nuget-package-install-light-theme.png" alt-text="Install the (MSAL) authentication package" lightbox="media/quickstart-nuget-package-install-light-theme.png"::: > [!NOTE] - > You will be prompted to accept the license terms before installing. Click **I Accept** in the **License Acceptance** dialog. + > You are prompted to accept the license terms before installing. Select **I Accept** in the **License Acceptance** dialog. ## Edit Program.cs @@ -191,9 +192,9 @@ Follow these next steps to add code for the main program. 1. Press F5 to build and run the program. - A browser window will open and prompt you to pick an account. Choose the account that you use to access your Dataverse environment. If that account doesn't appear in the list, click **Use another account**. + A browser window opens and prompts you to pick an account. Choose the account that you use to access your Dataverse environment. If that account doesn't appear in the list, select **Use another account**. - Once the account is selected, enter your password and click **Sign in**. + Once the account is selected, enter your password and select **Sign in**. 1. Look at the console application window. The output should look something like this: diff --git a/powerapps-docs/developer/data-platform/webapi/quick-start-js-spa.md b/powerapps-docs/developer/data-platform/webapi/quick-start-js-spa.md new file mode 100644 index 0000000000..d487f45b97 --- /dev/null +++ b/powerapps-docs/developer/data-platform/webapi/quick-start-js-spa.md @@ -0,0 +1,458 @@ +--- +title: "Quickstart: Web API with client-side JavaScript and Visual Studio Code" +description: Describes how to interactively authenticate and use the Dataverse Web API with client-side JavaScript and Visual Studio Code with a Single Page Application. +ms.topic: quickstart +ms.date: 03/22/2025 +author: JimDaly +ms.author: jdaly +ms.reviewer: jdaly +search.audienceType: + - developer +--- +# Quickstart: Web API with client-side JavaScript and Visual Studio Code + +This quickstart demonstrates how you can connect to Dataverse and use the Web API with the following technologies: + +|Technology|Description| +|---|---| +|**[JavaScript](https://developer.mozilla.org/docs/Web/JavaScript)**| A programming language for web development, enabling interactive content. It runs in browsers for client-side scripting and can be used server-side with Node.js.| +|**[Visual Studio Code](https://code.visualstudio.com/)**|A lightweight, open-source code editor with debugging, syntax highlighting, and plugin support.| +|**[Single Page Applications (SPAs)](https://developer.mozilla.org/docs/Glossary/SPA)**| Web applications that load a single HTML page and dynamically update content as the user interacts with the app. This approach provides a smoother, faster user experience by reducing page reloads and enhancing performance.| +|**[Microsoft Authentication Library for JavaScript (MSAL.js)](/javascript/api/overview/msal-overview?view=msal-js-latest&preserve-view=true)**| A library that enables authentication and authorization for web applications using Microsoft identity platforms. It simplifies integrating secure sign-in and token acquisition for accessing protected resources.| +|**[Cross-Origin Resource Sharing (CORS)](https://developer.mozilla.org/docs/Web/HTTP/CORS)**|A SPA application can use client-side JavaScript with the Dataverse Web API because CORS is enabled. CORS is a security feature in web browsers that allows controlled access to resources on a web server from a different origin. It enables web applications to bypass the [same-origin policy](https://developer.mozilla.org/docs/Web/Security/Same-origin_policy), facilitating safe and secure data sharing across different domains.| + +## Goal + +This quickstart focuses on connecting to the Dataverse Web API with JavaScript using a SPA client application with a minimum of number of steps. When you complete this quickstart, you're able to: + +- Sign in and connect to Dataverse +- Invoke the [WhoAmI function](/power-apps/developer/data-platform/webapi/reference/whoami) and display your `UserID` value. + +:::image type="content" source="media/quickstart-web-api-js-spa.png" alt-text="Completed running quickstart"::: + +Completing this quickstart enables you to try the [Web API Data operations Samples (Client-side JavaScript)](web-api-samples-client-side-javascript.md) which demonstrate more advanced capabilities. + +> [!NOTE] +> This quickstart doesn't apply to the following client-side JavaScript scenarios: +> +> |Scenario|Learn more| +> |---|---| +> |**Model-driven application scripts**|- [Apply business logic using client scripting in model-driven apps using JavaScript](../../model-driven-apps/client-scripting.md)
- [Xrm.WebApi (Client API reference)](/power-apps/developer/model-driven-apps/clientapi/reference/xrm-webapi)| +> |**Power Apps component framework**|- [Code components WebAPI](/power-apps/developer/component-framework/reference/webapi)
- [Implementing Web API component](../../component-framework/sample-controls/webapi-control.md)| +> |**Power Pages Portals**|[Power Pages Portals Web API](/power-pages/configure/web-api-overview)| +> +> In these scenarios, the respective application type provides a capability for you to send requests rather than use the JavaScript native [Fetch API](https://developer.mozilla.org/docs/Web/API/Fetch_API) directly as shown in this quickstart. Client-side scripts within model-driven apps run in the context of an authenticated application, so each request doesn't require an access token. + +## Prerequisites + +The following table describes the prerequisites needed to complete this quickstart and [Web API Data operations Samples (Client-side JavaScript)](web-api-samples-client-side-javascript.md). + +|Prerequisite|Description| +|---|---| +|**Privileges to create an Entra App registration**|You can't complete this quickstart without the ability create a Microsoft Entra app registration to enable it.

If you aren't sure if you can, try the first step to [Register a SPA application](#register-a-spa-application) and find out. | +|**Visual Studio Code**| If Visual Studio Code isn't installed on your computer, you must [Download and install Visual Studio Code](https://code.visualstudio.com/download) to run this quickstart. | +|**Node.js**|Node.js is a runtime environment that allows you to run JavaScript on the server side. This quickstart creates a SPA application that runs JavaScript on the client side in a browser rather than the Node.js runtime. But [Node Package Manager (npm)](https://www.npmjs.com/) is installed with Node.js, and you need npm to install Parcel and the MSAL.js library.| +|**Parcel**|Modern web applications typically have many dependencies on open source libraries distributed using npm and scripts that need to be managed and optimized during the build process. These tools are called 'bundlers'. The most common one is [webpack](https://webpack.js.org/). This quick start uses [Parcel](https://parceljs.org/) because it offers a simplified experience.

For quickstarts and samples that show SPA applications using different frameworks and bundlers, see [Microsoft Entra Single-page applications samples](/entra/identity-platform/sample-v2-code?tabs=apptype#single-page-applications). You can adapt these samples to use Dataverse Web API with the information shown in this quickstart.| +|**Web Technologies**|Knowledge of HTML, JavaScript, and CSS are required to understand how this quickstart works. Understanding how to [make network requests with JavaScript](https://developer.mozilla.org/docs/Learn_web_development/Core/Scripting/Network_requests) is essential.| + +## Register a SPA application + +This step is first because if you can't register an app, you can't complete this quick start. + +Any of the following [privileged Microsoft Entra roles](/entra/identity/role-based-access-control/privileged-roles-permissions) include the required permissions: + +- [Application Administrator](/entra/identity/role-based-access-control/permissions-reference#application-administrator) +- [Application Developer](/entra/identity/role-based-access-control/permissions-reference#application-developer) +- [Cloud Application Administrator](/entra/identity/role-based-access-control/permissions-reference#cloud-application-administrator) + +When you configure the application, you need an application (client) ID, and the ID of your Microsoft Entra tenant. You should also choose a descriptive name for the application so people know what the application was created for. + +### Register your app + +You can register your application using either the: + +- Microsoft Entra web application UI +- Azure PowerShell [New-AzADApplication](/powershell/module/az.resources/new-azadapplication) cmdlet. + +### [Microsoft Entra web application](#tab/web) + +#### Create the application registration + +1. Sign in to the [Microsoft Entra admin center](https://entra.microsoft.com/). +1. If you have access to multiple tenants, use the **Settings** :::image type="icon" source="media/settings-icon.png" border="false"::: icon in the top menu to switch to the tenant in which you want to register the application from the **Directories + subscriptions** menu. +1. Browse to **Identity** > **Applications** > **App registrations** and select **New registration**. +1. Enter a **Name** for the application, such as `Dataverse Web API Quickstart SPA`. +1. For **Supported account types**, under **Who can use this application or access this API**, select **Accounts in this organizational directory only (<Your tenant name> - Single tenant)**. +1. For **Redirect URI (optional)** + + 1. For **Select a platform**, choose **Single-page application (SPA)**. + 1. Enter `http://localhost:1234` as the value. + +1. Select **Register** to save your changes. +1. In the window for the app registration you created, in the **Overview** tab, below **Essentials**, you can find these values: + + - Application (client) ID + - Directory (tenant) ID + +1. Copy these values because you need them when you [create the .env file](#create-the-env-file) to use environment variables. + +#### Add Dataverse `user_impersonation` privilege + +1. In the **Manage** area, select **API permissions**. +1. Select **Add a permission**. +1. In the **Request API permissions** flyout, select the **APIs my organization uses** tab. +1. Type 'Dataverse' to find application (client) ID `00000007-0000-0000-c000-000000000000`. +1. Select the Dataverse application. +1. In **Select permissions**, `user_impersonation` is the only available delegated permission. Select it. +1. Select **Add permissions**. + +### [PowerShell Script](#tab/ps) + +Using these instructions for PowerShell with Visual Studio Code has the following requirements: + +- Install the PowerShell extension for Visual Studio Code. [Learn to install PowerShell for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell) +- Install the Az PowerShell module. [Learn how to install Azure PowerShell](/powershell/azure/install-azure-powershell) + +You need your tenant ID to run this script. + +1. Sign in to the [Microsoft Entra admin center](https://entra.microsoft.com/). +1. If you have access to multiple tenants, use the **Settings** :::image type="icon" source="media/settings-icon.png" border="false"::: icon in the top menu to switch to the tenant in which you want to register the application from the **Directories + subscriptions** menu. +1. Select **Overview** in the navigation pane. +1. In the **Overview** tab, in the **Basic information** section you find **Tenant ID**. +1. Select the **Copy to Clipboard** icon. + +When you have your tenant ID, you can create the app registration using the Azure PowerShell [New-AzADApplication](/powershell/module/az.resources/new-azadapplication) cmdlet. + +1. In Visual Studio Code, select **File** > **New Text File**, or Ctrl+N to open a new text file. + + You don't need to save the file. + +1. Copy and paste the following script into the new file. + + ```powershell + # Values to pass to the New-AzADApplication command + $tenantId = "" # Replace with your tenant ID + $appName = "Dataverse Web API SPA Quickstart" + $redirectUri = "http://localhost:1234" + + + # Connect to Azure + try { + Connect-AzAccount -Tenant $tenantId -UseDeviceAuthentication | Out-Null + } + catch { + + Write-Host "An error occurred while connecting: $_" -ForegroundColor Red + exit 1 + } + + try { + $appResponse = New-AzADApplication ` + -DisplayName $appName ` + -SPARedirectUri @($redirectUri) ` + -AvailableToOtherTenants $false ` + -RequiredResourceAccess @( + @{ + ResourceAppId = "00000007-0000-0000-c000-000000000000"; # Dynamics CRM API + ResourceAccess = @( + @{ + Id = "a42657d6-7f20-40e3-b6f0-cee03008a62a"; # user_impersonation + Type = "Scope" + } + ) + } + ) + + if ($appResponse -eq $null) { + Write-Host "Failed to create the application." -ForegroundColor Red + return $null + } + else { + + Write-Host "Copy the following to paste into an .env file at the root of your project:`n" + Write-Host "# The environment this application will connect to." + Write-Host "BASE_URL=https://.api.crm.dynamics.com" + Write-Host "# The registered Entra application id" + Write-Host "CLIENT_ID=$($appResponse.appId)" + Write-Host "# The Entra tenant id" + Write-Host "TENANT_ID=$($tenantId)" + Write-Host "# The SPA redirect URI included in the Entra application registration" + Write-Host "REDIRECT_URI=$($redirectUri)" + } + } + catch { + Write-Host "An error occurred while creating the application: $_" -ForegroundColor Red + return $null + } + ``` + +1. Edit this line to replace `` with your tenant id value: + + `$tenantId = "" # Replace with your tenant ID` + +1. Press F5 to execute the script. +1. When the script runs, the device authorization flow begins. Find a message like the following in the terminal window: + + ``` + [Login to Azure] To sign in, use a web browser to open the page and enter the code A1BC2DE3F to authenticate. + ``` + + Where `A1BC2DE3F` is a generated code value. + +1. Copy the code and use Ctrl+Click to open the [https://microsoft.com/devicelogin](https://microsoft.com/devicelogin) link. This link opens a series of dialogs in your browser. + + 1. In the **Enter code to allow access** dialog, enter the code you copied and select **Next**. + 1. In the **Pick an account** dialog, select the account you want to use. + 1. In the **Enter password** dialog, enter your password and select the **Sign in** button. + 1. In the **Are you trying to sign in to Microsoft Azure PowerShell?** dialog, select **Continue**. + +1. You can close the browser tab and return to Visual Studio Code. +1. In the terminal window, you should see output like the following text: + + ``` + Copy the following to paste into an .env file at the root of your project: + + # The environment this application will connect to. + BASE_URL=https://.api.crm.dynamics.com + # The registered Entra application id + CLIENT_ID=11112222-bbbb-3333-cccc-4444dddd5555 + # The Entra tenant id + TENANT_ID=aaaabbbb-0000-cccc-1111-dddd2222eeee + # The SPA redirect URI included in the Entra application registration + REDIRECT_URI=http://localhost:1234 + ``` + +Copy this data. You use it when you [create the .env file](#create-the-env-file) to use environment variables. + +--- + +> [!NOTE] +> If you don't have the privileges to create an app registration for your company, get a tenant of your own through via the [Power Apps Developer Plan](/power-platform/developer/plan). + +## Install Node.js + +1. Go to [Download Node.js](https://nodejs.org/en/download). +1. Choose the appropriate installer for your operating system (Windows, macOS, or Linux) and download it. +1. Run the installer. Make sure you accept the default option to: **Install npm, the recommended package manager for Node.js.** +1. Verify the installation by opening a terminal or command prompt, typing these commands and pressing Enter. + + - `node -v` + - `npm -v` + + You should see something like this: + + ```powershell + PS C:\Users\you> node -v + v22.14.0 + PS C:\Users\you> npm -v + 9.5.0 + PS C:\Users\you> + ``` + +## Create a project + +> [!NOTE] +> You can skip these steps by cloning or downloading the [PowerApps-Samples](https://github.com/microsoft/PowerApps-Samples) repository. The completed application for these steps is available at [/dataverse/webapi/JS/quickspa](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/webapi/JS/quickspa). Follow the instructions in the README. + +The instructions in this section guide you to install dependencies from npm, create the folder structure, open Visual Studio Code. + +1. Open a terminal window to a place where you want to create a project. For these instructions, we use `C:\projects`. +1. Type the following commands and press Enter to achieve the following actions: + + |Command |Action | + |---------|---------| + |`mkdir quickspa`|Create a new folder named `quickspa`.| + |`cd quickspa`|Move into the new `quickspa` folder.| + |`npm install --save-dev parcel`|Install Parcel and initialize the project.| + |`npm install @azure/msal-browser`|Install the MSAL.js library.| + |`npm install dotenv`|Install [dotenv](https://www.npmjs.com/package/dotenv) to access environment variables that store potentially sensitive configuration data.| + |`mkdir src`|Create a `src` folder where you add HTML, JS, and CSS files for your app in the following steps.| + |`code .`|Open Visual Studio Code in the context of the `quickspa` folder.| + +Your project should look like this in Visual Studio Code Explorer: + +:::image type="content" source="media/quickspa-project.png" alt-text="Shows the newly created quickspa project before any files are added."::: + +### Create the .env file + +Storing configuration data in the environment separate from code is a security best practice. + +1. Create a new file named `.env` in the root of your `quickspa` folder. +1. Paste in the values from [Register your app](#register-your-app) to replace the `CLIENT_ID` and `TENANT_ID` values below. + + :::code language="text" source="~/../PowerApps-Samples/dataverse/webapi/JS/quickspa/.env.example"::: + +1. Set the `BASE_URL` value to the URL of the [Web API URL](compose-http-requests-handle-errors.md#web-api-url-and-versions) for the environment you want to connect to. + +> [!NOTE] +> You won't check-in the `.env` file. In [Create `.gitignore` file](#create-gitignore-file), you will exclude it. But you might want to create a `.env.example` file using the placeholder values so that people know what data it should contain. + +### Create an HTML page + +The instructions in this section describe how to create the HTML file that provides the user interface for the SPA application. + +1. Create a new file in the `src` folder named `index.html`. +1. Copy and paste this content to the `index.html` page: + + :::code language="html" source="~/../PowerApps-Samples/dataverse/webapi/JS/quickspa/src/index.html"::: + + +This HTML provides the following elements: + +|Element ID|Element type|Description| +|---------|---------|---------| +|`loginButton`|[button](https://developer.mozilla.org/docs/Web/HTML/Element/button)|To open the login dialog.| +|`logoutButton`|[button](https://developer.mozilla.org/docs/Web/HTML/Element/button)|To open the logout dialog. Hidden by default.| +|`buttonContainer`|[nav](https://developer.mozilla.org/docs/Web/HTML/Element/nav)|Contains buttons that require user to be logged in to use. Disabled by default.| +|`whoAmIButton`|[button](https://developer.mozilla.org/docs/Web/HTML/Element/button)|Executes the [WhoAmI function](/power-apps/developer/data-platform/webapi/reference/whoami) to display the user's ID.| +|`container`|[main](https://developer.mozilla.org/docs/Web/HTML/Element/main)|Area where information can be displayed to the user.| +||[script](https://developer.mozilla.org/docs/Web/HTML/Element/script)|Loads the `index.js` file after the rests of the elements of the page loads.| + +### Create a JavaScript script + +This file contains all the logic that makes the `index.html` page dynamic. + +1. Create a new folder in the `src` folder named `scripts`. +1. Create a new file in `scripts` folder named `index.js`. +1. Copy and paste this content into the `index.js` page: + + :::code language="javascript" source="~/../PowerApps-Samples/dataverse/webapi/JS/quickspa/src/scripts/index.js"::: + + +The `index.js` script contains the following constants and functions: + +|Item|Description | +|---------|---------| +|`config` |Contains the data used by the Microsoft Authentication Library (MSAL) configuration.| +|`msalConfig` |Microsoft Authentication Library (MSAL) configuration.| +|`msalInstance`|The MSAL [PublicClientApplication](/javascript/api/%40azure/msal-browser/publicclientapplication) instance. | +|`container`|The element where messages are displayed.| +|`getToken`|Retrieves an access token using MSAL.| +|`logIn`|Event listener function for the login button. Opens a choose account dialog.| +|`logOut`|Event listener function for the logout button. Opens a choose account dialog.| +|`whoAmI`|Asynchronous function that calls the [WhoAmI function](/power-apps/developer/data-platform/webapi/reference/whoami) to retrieve data from Dataverse. | +| `whoAmIButton` event listener|The function that calls the `whoAmI` function and manages the UI changes to show the message.| + +### Create a CSS page + +The Cascading Style Sheet (CSS) file makes the HTML page more attractive and has a role in controlling when controls are disabled or hidden. + +1. Create a new folder named `styles` in the `src` folder. +1. Create a new file named `style.css` in the `styles` folder. +1. Copy and paste this text into the `style.css` file: + + :::code language="css" source="~/../PowerApps-Samples/dataverse/webapi/JS/quickspa/src/styles/style.css"::: + + +### Create `.gitignore` file + +When your app is checked in with source control, adding a `.gitignore` file prevents checking in files the specified files and folders. + +1. Create a file named `.gitignore`. +1. Add the following content: + + ``` + .parcel-cache + dist + node_modules + .env + ``` + +The `.parcel-cache` and `dist` folders appear when you run the app for the first time. + +Not checking in the `.env` file is a security best practice. You might want to check in a placeholder `.env.sample` file with placeholder values. + +Your project should look like this in Visual Studio Code Explorer: + +:::image type="content" source="media/quickspa-project-with-files.png" alt-text="Shows the quickspa project after files are added."::: + +### Configure your package.json file + +Your `package.json` file should look something like this: + +```json +{ + "devDependencies": { + "parcel": "^2.14.1", + }, + "dependencies": { + "@azure/msal-browser": "^4.7.0", + "dotenv": "^16.4.7" + } +} +``` + +Add this `scripts` item underneath `dependencies`: + +```json + "dependencies": { + "@azure/msal-browser": "^4.7.0", + "dotenv": "^16.4.7" + }, + "scripts": { + "start": "parcel src/index.html" + } +``` + +This configuration allows you to start the application using `npm start` in the next step. + +## Try it + +1. In Visual Studio Code, open a terminal window +1. Type `npm start` and press Enter. + + > [!NOTE] + > You might see some output written to the terminal while the project initializes for the first time. + > This is parcel installing some more node modules to mitigate issues when using [dotenv](https://www.npmjs.com/package/dotenv). + > Look at the `package.json` and you should some new items added to the `devDependencies`. + + + You should expect output to the terminal that looks like this: + + ``` + Server running at http://localhost:1234 + Built in 1.08s + ``` + +1. Press Ctrl + click the [http://localhost:1234](http://localhost:1234) link to open your browser. +1. In your browser, select the **Login** button. + + The **Sign in to your account** dialog opens. + +1. In the **Sign in to your account** dialog, select the account that has access to Dataverse. + + The first time you access using a new application (client) ID value, you see this **Permissions requested** dialog: + + :::image type="content" source="media/dataverse-web-api-quickstart-spa-permissions-requested.png" alt-text="Permissions requested dialog"::: + +1. Select **Accept** on the **Permissions requested** dialog. +1. Select the **WhoAmI** button. + + The message **Congratulations! You connected to Dataverse using the Web API.** is displayed with your `UserId` value from the [WhoAmIResponse complex type](/power-apps/developer/data-platform/webapi/reference/whoamiresponse). + +## Trouble shooting + +This section contains errors that you might encounter running this quick start. + +> [!NOTE] +> If you experience issues completing the steps in this quick start, try cloning or downloading the [PowerApps-Samples](https://github.com/microsoft/PowerApps-Samples) repository. The completed application for these steps is available at [/dataverse/webapi/JS/quickspa](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/webapi/JS/quickspa). Follow the instructions in the README. If that doesn't work, create an GitHub issue referencing this `quickspa` sample application. + +### Selected user account doesn't exist in tenant + +When the account you select doesn't belong to the same Microsoft Entra tenant as the registered application, you get this error in the **Pick an account** dialog: + +`Selected user account does not exist in tenant '{Your tenant name}' and cannot access the application '{Your application ID}' in that tenant. The account needs to be added as an external user in the tenant first. Please use a different account.` + +**Resolution**: Make sure you choose the correct user. + +## Next steps + +Try other samples that use client-side JavaScript. + +> [!div class="nextstepaction"] +> [Web API Data operations Samples (Client-side JavaScript)](web-api-samples-client-side-javascript.md) + +Learn more about Dataverse Web API capabilities by understanding the service documents. + +> [!div class="nextstepaction"] +> [Web API types and operations](web-api-types-operations.md) diff --git a/powerapps-docs/developer/data-platform/webapi/quick-start-ps.md b/powerapps-docs/developer/data-platform/webapi/quick-start-ps.md index 0d6bed4f47..9628b9882c 100644 --- a/powerapps-docs/developer/data-platform/webapi/quick-start-ps.md +++ b/powerapps-docs/developer/data-platform/webapi/quick-start-ps.md @@ -1,7 +1,8 @@ --- title: Quick Start Web API with PowerShell and Visual Studio Code description: Describes how to interactively authenticate and use the Dataverse Web API from PowerShell with Visual Studio Code -ms.date: 01/20/2024 +ms.topic: quickstart +ms.date: 03/22/2025 author: JimDaly ms.author: jdaly ms.reviewer: jdaly @@ -113,31 +114,6 @@ Finally, the script uses the [Get-AzAccessToken](/powershell/module/az.accounts/ When you want to connect with a different set of credentials, you need to use the [Disconnect-AzAccount](/powershell/module/az.accounts/disconnect-azaccount) command. -#### Authenticate using different shell environments - -[Azure PowerShell works using Windows PowerShell and PowerShell shell environments, but not Cmd and Bash shell environments](/cli/azure/choose-the-right-azure-command-line-tool#different-shell-environments). If you want to authenticate with Cmd or Bash shell environments, you can use the [Azure CLI](/cli/azure). - -This script uses Azure CLI commands to authenticate: - -```powershell -$environmentUrl = 'https://yourorg.crm.dynamics.com/' # change this -## Login if not already logged in -if ($null -eq (az account tenant list --only-show-errors)) { - az login --allow-no-subscriptions | Out-Null -} -# Get token -$token = az account get-access-token --resource=$environmentUrl --query accessToken --output tsv -``` - -This table shows the equivalent Az PowerShell and Azure CLI commands: - -|Az PowerShell|Azure CLI|Description | -|---------|---------|---------| -|[Get-AzTenant](/powershell/module/az.accounts/get-aztenant)|[az account tenant list](/cli/azure/account/tenant#az-account-tenant-list)|Try to retrieve a list of tenants to detect if you're already logged in| -|[Connect-AzAccount](/powershell/module/az.accounts/connect-azaccount)|[az login](/cli/azure/reference-index#az-login)|To log in to Azure| -|[Get-AzAccessToken](/powershell/module/az.accounts/get-azaccesstoken)|[az account get-access-token](/cli/azure/account#az-account-get-access-token)|To get an access token| -|[Disconnect-AzAccount](/powershell/module/az.accounts/disconnect-azaccount)|[az logout](/cli/azure/reference-index#az-logout)|Log out of Azure| - ### Use `Invoke-RestMethod` with the WhoAmI function Once you have an access token set to the `$token` variable, you need to compose the request to Dataverse Web API and send it using the [Invoke-RestMethod cmdlet](/powershell/module/microsoft.powershell.utility/invoke-restmethod) diff --git a/powerapps-docs/developer/data-platform/webapi/retrieve-and-execute-predefined-queries.md b/powerapps-docs/developer/data-platform/webapi/retrieve-and-execute-predefined-queries.md index 77891224df..f6f451c68f 100644 --- a/powerapps-docs/developer/data-platform/webapi/retrieve-and-execute-predefined-queries.md +++ b/powerapps-docs/developer/data-platform/webapi/retrieve-and-execute-predefined-queries.md @@ -2,8 +2,8 @@ title: "Retrieve and execute predefined queries (Microsoft Dataverse)| Microsoft Docs" description: "Microsoft Dataverse provides a way for administrators to create system views that are available to all users. Read how you can use a predefined query to retrieve table data." ms.date: 09/27/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/retrieve-entity-using-web-api.md b/powerapps-docs/developer/data-platform/webapi/retrieve-entity-using-web-api.md index d01e257048..3d0fe83700 100644 --- a/powerapps-docs/developer/data-platform/webapi/retrieve-entity-using-web-api.md +++ b/powerapps-docs/developer/data-platform/webapi/retrieve-entity-using-web-api.md @@ -3,8 +3,8 @@ title: Retrieve a table row using the Web API description: Learn how to compose a GET request using the Microsoft Dataverse Web API to retrieve table data specified as the resource with a unique identifier. ms.topic: how-to ms.date: 05/30/2023 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/samples/attachment-annotation-file-operations.md b/powerapps-docs/developer/data-platform/webapi/samples/attachment-annotation-file-operations.md index e23e42437f..66471bf438 100644 --- a/powerapps-docs/developer/data-platform/webapi/samples/attachment-annotation-file-operations.md +++ b/powerapps-docs/developer/data-platform/webapi/samples/attachment-annotation-file-operations.md @@ -1,11 +1,10 @@ --- -title: "Sample: Attachment and Annotation file operations using Dataverse Web API (Microsoft Dataverse) | Microsoft Learn" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "This sample demonstrates how to perform operations with file data using the Attachment (ActivityMimeAttachment) and Note (Annotation) tables using the Dataverse Web API." # 115-145 characters including spaces. This abstract displays in the search result. +title: "Sample: Attachment and Annotation file operations using Dataverse Web API (Microsoft Dataverse) | Microsoft Learn" +description: "This sample demonstrates how to perform operations with file data using the Attachment (ActivityMimeAttachment) and Note (Annotation) tables using the Dataverse Web API." ms.date: 02/04/2023 author: JimDaly ms.author: jdaly ms.reviewer: jdaly -ms.topic: sample search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/webapi/samples/basic-operations-client-side-javascript.md b/powerapps-docs/developer/data-platform/webapi/samples/basic-operations-client-side-javascript.md index d7365edd1a..299f6fa455 100644 --- a/powerapps-docs/developer/data-platform/webapi/samples/basic-operations-client-side-javascript.md +++ b/powerapps-docs/developer/data-platform/webapi/samples/basic-operations-client-side-javascript.md @@ -1,9 +1,9 @@ --- title: "Web API Basic Operations Sample (Client-side JavaScript) (Microsoft Dataverse)" description: "This sample demonstrates how to perform basic CRUD (create, retrieve, update, and delete) and association and dissociation operations on table rows (entity records) using client-side JavaScript and the Microsoft Dataverse Web API." -ms.date: 02/10/2025 -author: MicroSri -ms.author: sriknair +ms.date: 03/22/2025 +author: JimDaly +ms.author: jdaly ms.reviewer: jdaly search.audienceType: - developer @@ -14,1071 +14,50 @@ contributors: # Web API Basic Operations Sample (client-side JavaScript) -[!INCLUDE[cc-terminology](../../includes/cc-terminology.md)] +This sample contains code that demonstrates how to perform basic CRUD (create, retrieve, update, and delete) and association and dissociation operations on tables rows (entity records) using client-side JavaScript. This sample completes the set of operations described by the [Web API Basic Operations Sample](../web-api-basic-operations-sample.md). -This sample demonstrates how to perform basic CRUD (create, retrieve, update, and delete) and association and dissociation operations on tables rows (entity records) using client-side JavaScript. +This code uses the [DataverseWebAPI.js sample library](../dataversewebapi-sample-library.md) and is designed to run in the context of a [Single Page Application (SPA)](https://developer.mozilla.org/docs/Glossary/SPA) sample available on GitHub. [Learn more about the sample application](../web-api-samples-client-side-javascript.md) -> [!NOTE] -> There are more modern methods of using code to perform CRUD operations in Microsoft Dataverse than this sample demonstrates. Consider using the Xrm.WebApi client API instead. More information: [Xrm.WebApi (Client API reference)](../../../model-driven-apps/clientapi/reference/xrm-webapi.md) +[!INCLUDE [cc-web-api-spa-javascript-code-sample-note](../../includes/cc-web-api-spa-javascript-code-sample-note.md)] ## Prerequisites -To run this sample, you need the following items: +This sample has the same prerequisites as [Quick Start Web API with client-side JavaScript and Visual Studio Code](../quick-start-js-spa.md#prerequisites). To run this sample, you should complete the quick start first. You can use the same application registration information for that quick start to run this sample. -- Access to a Dataverse environment that has the Dynamics 365 apps option enabled. More information: [Code sample](#code-sample) -- A user account with privileges to import solutions and perform CRUD operations in Dataverse, typically a system administrator or system customizer security role. +## Context -## Code sample - -This sample includes these web resources: - -- [WebAPIBasicOperations.html](#webapibasicoperationshtml) -- [WebAPIBasicOperations.js](#webapibasicoperationsjs) - -> [!NOTE] -> Running the sample on an environment that doesn't have Dynamics 365 apps enabled only creates the contact, account, and task records. Additionally, the record deletion option doesn't remove the records created by the sample. - -### What happens when you run the sample - -When you run this code, the following records are created: - -- Contact: Contacts named "Peter Cambel," "Peter_Alt Cambel," and "Susie Curtis" are created. -- Account: An account named "Contoso, Ltd." is created and associated with the contact "Peter Cambel." -- Account: Another account named "Fourth Coffee" is created with a primary contact "Susie Curtis" and three associated tasks. -- Competitor1: A competitor named "Adventure Works" is created. -- Opportunity1: An opportunity named "River rafting adventure" is created and associated with the competitor "Adventure Works." - -1These records don't get created unless the environment has the Dynamics 365 apps option enabled. - -## Download and import the sample - -To run this sample, follow these steps: - -1. [Download the sample from GitHub](https://github.com/microsoft/PowerApps-Samples/raw/refs/heads/master/dataverse/webapi/JS/WebAPIBasicOperations/WebAPIBasicOperations_1_0_0_1_managed.zip). -1. Sign in to [Power Apps](https://make.powerapps.com/) and optionally select an environment to work in. -1. Select **Solutions** on the left navigation pane, and then select **Import solution** on the command bar. [!INCLUDE [left-navigation-pane](../../../../includes/left-navigation-pane.md)] -1. Select **Browse**, locate and select the `WebAPIBasicOperations_1_0_0_1_managed.zip` solution, select **Open**, and then select **Next**. The details of the solution are displayed. -1. Select **Import** to import it into your Dataverse environment. - -Importing the solution can take a few minutes to complete. - -## Run the sample to observe the script in action - -1. In Power Apps select **Solutions** on the left navigation pane. -1. Select the **Managed** filter, and then open the **Web API Basic Operations** managed solution. -1. Open the **sample_/WebAPIBasicOperations.html** file to display the properties pane. -1. Scroll down to the **URL** and select it to open the HTML page in a new browser tab. -1. Press F12 to **Open DevTools**, including the console window, in Microsoft Edge browser. -1. Select **Start Sample**. - -Observe the table operations that occur to create table records. -:::image type="content" source="media/web-api-basic-operations-output.png" alt-text="Sample output displayed in developer tools." lightbox="media/web-api-basic-operations-output.png"::: - -## Remove the records and solution used with this sample - -If the sample doesn't remove the records created, such as because of the error "Resource not found for the segment 'competitors'," which occurs when you don't have the environment enabled for Dynamics 365 apps, you can manually delete the records. - -You can also remove (uninstall) the Web API Basic Operations managed solution. - -### Remove the records - -1. In Power Apps, select **Tables** from the left navigation pane. -1. Select the **Account** table. -1. Select the **Contoso, Ltd.**, and **Fourth Coffee** records and then select **Delete n records()** on the command bar. -1. Select Tables on the left navigation pane, and then select the Contact table. -1. Select the **Peter Cambel**, **Peter_Alt Cambel**, and **Susie Curtis** records, and then select **Delete n records()** on the command bar. - -For more information about what records are created, go to [What happens when you run the sample](#what-happens-when-you-run-the-sample). - -## Remove the managed solution sample - -Go to the **Solutions** area, select the **Managed** filter, select the **Web API Basic Operations** solution, and then select **Delete**. - -### WebAPIBasicOperations.html - -The WebAPIBasicOperations.html web resource provides the context in which the JavaScript code runs. - -```html - - - Microsoft CRM Web API Basic Operations Example - - - - - - - - - -

Microsoft CRM Web API Basic Operations Example

-

- This page demonstrates the CRM Web API's basic operations using - JavaScript. -

- -

Instructions

-

- Choose your preferences and run the JavaScript code. Use your browser's - developer tools to view the output written to the console (e.g.: in IE 11 - or Microsoft Edge, press F12 to load the Developer Tools). -

-

- Remove sample data (Choose whether you want to delete sample data created - during this execution): -
- - Yes - - No -

- - - -``` - -### WebAPIBasicOperations.js - -The WebAPIBasicOperations.js web resource is the JavaScript library that defines the operations this sample performs. +This sample starts when the user selects a button that triggers the following event handler: ```javascript -"use strict"; -var Sdk = window.Sdk || {}; - -/** - * @function getClientUrl - * @description Get the client URL. - * @returns {string} The client URL. - */ -Sdk.getClientUrl = function () { - var context; - // GetGlobalContext defined by including reference to - // ClientGlobalContext.js.aspx in the HTML page. - if (typeof GetGlobalContext != "undefined") { - context = GetGlobalContext(); - } else { - if (typeof Xrm != "undefined") { - // Xrm.Page.context defined within the Xrm.Page object model for form scripts. - context = Xrm.Page.context; - } else { - throw new Error("Context is not available."); - } - } - return context.getClientUrl(); +// Add event listener to the basic operations button +document.getElementById("basicOperationsButton").onclick = async function () { + runSample(new BasicOperationsSample(client, container)); }; +``` -/** - * An object instantiated to manage detecting the - * Web API version in conjunction with the - * Sdk.retrieveVersion function - */ -Sdk.versionManager = new (function () { - //Start with base version - var _webAPIMajorVersion = 8; - var _webAPIMinorVersion = 0; - //Use properties to increment version and provide WebAPIPath string used by Sdk.request; - Object.defineProperties(this, { - WebAPIMajorVersion: { - get: function () { - return _webAPIMajorVersion; - }, - set: function (value) { - if (typeof value != "number") { - throw new Error( - "Sdk.versionManager.WebAPIMajorVersion property must be a number." - ); - } - _webAPIMajorVersion = parseInt(value, 10); - }, - }, - WebAPIMinorVersion: { - get: function () { - return _webAPIMinorVersion; - }, - set: function (value) { - if (isNaN(value)) { - throw new Error( - "Sdk.versionManager._webAPIMinorVersion property must be a number." - ); - } - _webAPIMinorVersion = parseInt(value, 10); - }, - }, - WebAPIPath: { - get: function () { - return "/api/data/v" + _webAPIMajorVersion + "." + _webAPIMinorVersion; - }, - }, - }); -})(); - -//Setting variables specific to this sample within a container so they won't be -// overwritten by another scripts code -Sdk.SampleVariables = { - entitiesToDelete: [], // Entity URIs to be deleted later (if user so chooses) - deleteData: true, // Controls whether sample data are deleted at the end of sample run - contact1Uri: null, // e.g.: Peter Cambel - contactAltUri: null, // e.g.: Peter_Alt Cambel - account1Uri: null, // e.g.: Contoso, Ltd - account2Uri: null, // e.g.: Fourth Coffee - contact2Uri: null, // e.g.: Susie Curtis - opportunity1Uri: null, // e.g.: Adventure Works - competitor1Uri: null, -}; - -/** - * @function request - * @description Generic helper function to handle basic XMLHttpRequest calls. - * @param {string} action - The request action. String is case-sensitive. - * @param {string} uri - An absolute or relative URI. Relative URI starts with a "/". - * @param {object} data - An object representing an entity. Required for create and update actions. - * @param {object} addHeader - An object with header and value properties to add to the request - * @returns {Promise} - A Promise that returns either the request object or an error object. - */ -Sdk.request = function (action, uri, data, addHeader) { - if (!RegExp(action, "g").test("POST PATCH PUT GET DELETE")) { - // Expected action verbs. - throw new Error( - "Sdk.request: action parameter must be one of the following: " + - "POST, PATCH, PUT, GET, or DELETE." - ); - } - if (!typeof uri === "string") { - throw new Error("Sdk.request: uri parameter must be a string."); - } - if (RegExp(action, "g").test("POST PATCH PUT") && !data) { - throw new Error( - "Sdk.request: data parameter must not be null for operations that create or modify data." - ); - } - if (addHeader) { - if ( - typeof addHeader.header != "string" || - typeof addHeader.value != "string" - ) { - throw new Error( - "Sdk.request: addHeader parameter must have header and value properties that are strings." - ); - } - } - - // Construct a fully qualified URI if a relative URI is passed in. - if (uri.charAt(0) === "/") { - //This sample will try to use the latest version of the web API as detected by the - // Sdk.retrieveVersion function. - uri = Sdk.getClientUrl() + Sdk.versionManager.WebAPIPath + uri; - } - - return new Promise(function (resolve, reject) { - var request = new XMLHttpRequest(); - request.open(action, encodeURI(uri), true); - request.setRequestHeader("OData-MaxVersion", "4.0"); - request.setRequestHeader("OData-Version", "4.0"); - request.setRequestHeader("Accept", "application/json"); - request.setRequestHeader("Content-Type", "application/json; charset=utf-8"); - if (addHeader) { - request.setRequestHeader(addHeader.header, addHeader.value); - } - request.onreadystatechange = function () { - if (this.readyState === 4) { - request.onreadystatechange = null; - switch (this.status) { - case 200: // Operation success with content returned in response body. - case 201: // Create success. - case 204: // Operation success with no content returned in response body. - resolve(this); - break; - default: // All other statuses are unexpected so are treated like errors. - var error; - try { - error = JSON.parse(request.response).error; - } catch (e) { - error = new Error("Unexpected Error"); - } - reject(error); - break; - } - } - }; - request.send(JSON.stringify(data)); - }); -}; - -/** - * @function startSample - * @description Runs the sample. - * This sample demonstrates basic CRUD+ operations. - * Results are sent to the debugger's console window. - */ -Sdk.startSample = function () { - // Initializing. - Sdk.SampleVariables.deleteData = - document.getElementsByName("removesampledata")[0].checked; - Sdk.SampleVariables.entitiesToDelete = []; // Reset the array. - Sdk.SampleVariables.contact1Uri = ""; - Sdk.SampleVariables.account1Uri = ""; - Sdk.SampleVariables.account2Uri = ""; - Sdk.SampleVariables.contact2Uri = ""; - Sdk.SampleVariables.opportunity1Uri = ""; - Sdk.SampleVariables.competitor1Uri = ""; - - /** - * Behavior of this sample varies by version - * So starting by retrieving the version; - */ - - Sdk.retrieveVersion() - .then(function () { - return Sdk.basicCreateAndUpdatesAsync(); - }) - .then(function () { - return Sdk.createWithAssociationAsync(); - }) - .then(function () { - return Sdk.createRelatedAsync(); - }) - .then(function () { - return Sdk.associateExistingAsync(); - }) - .then(function () { - return Sdk.deleteSampleData(); - }) - .catch(function (err) { - console.log("ERROR: " + err.message); - }); -}; - -Sdk.retrieveVersion = function () { - return new Promise(function (resolve, reject) { - Sdk.request("GET", "/RetrieveVersion") - .then(function (request) { - try { - var RetrieveVersionResponse = JSON.parse(request.response); - var fullVersion = RetrieveVersionResponse.Version; - var versionData = fullVersion.split("."); - Sdk.versionManager.WebAPIMajorVersion = parseInt(versionData[0], 10); - Sdk.versionManager.WebAPIMinorVersion = parseInt(versionData[1], 10); - resolve(); - } catch (err) { - reject(new Error("Error processing version: " + err.message)); - } - }) - .catch(function (err) { - reject(new Error("Error retrieving version: " + err.message)); - }); - }); -}; - -Sdk.basicCreateAndUpdatesAsync = function () { - return new Promise(function (resolve, reject) { - // Section 1. - // - // Create the contact using POST request. - // A new entry will be added regardless if a contact with this info already exists in the system or not. - console.log("--Section 1 started--"); - var contact = {}; - contact.firstname = "Peter"; - contact.lastname = "Cambel"; - - var entitySetName = "/contacts"; - - Sdk.request("POST", entitySetName, contact) - .then(function (request) { - // Process response from previous request. - Sdk.SampleVariables.contact1Uri = - request.getResponseHeader("OData-EntityId"); - Sdk.SampleVariables.entitiesToDelete.push( - Sdk.SampleVariables.contact1Uri - ); // To delete later - console.log( - "Contact 'Peter Cambel' created with URI: %s", - Sdk.SampleVariables.contact1Uri - ); - - // Setup for next request. - // - // Update contact. - // Add property values to a specific contact using PATCH request. - var contact = {}; - contact.annualincome = 80000.0; - contact.jobtitle = "Junior Developer"; - return Sdk.request("PATCH", Sdk.SampleVariables.contact1Uri, contact); - }) - .then(function () { - // Process response from previous request. - console.log( - "Contact 'Peter Cambel' updated with job title and annual income." - ); - - // Setup for next request. - // - // Retrieve selected properties of a Contact entity using GET request. - // NOTE: It is performance best practice to select only the properties you need. - - // Retrieved contact properties. - var properties = [ - "fullname", - "annualincome", - "jobtitle", - "description", - ].join(); - - // NOTE: For performance best practices, use $select to limit the properties you want to return - // See also: https://msdn.microsoft.com/library/gg334767.aspx#bkmk_requestProperties - var query = "?$select=" + properties; - return Sdk.request( - "GET", - Sdk.SampleVariables.contact1Uri + query, - null - ); - }) - .then(function (request) { - // Process response from previous request. - var contact1 = JSON.parse(request.response); - var successMsg = - "Contact '%s' retrieved:\n" + - "\tAnnual income: %s \n" + - "\tJob title: %s \n" + - "\tDescription: %s"; - console.log( - successMsg, - contact1.fullname, // This property is read-only. Calculated from firstname and lastname. - contact1.annualincome, - contact1.jobtitle, - contact1.description - ); // Description will be "null" because it has not been set yet. - - // Setup for next request. - // - // Update properties. - // Set new values for some of the properties and apply the values to the server via PATCH request. - // Notice that we are updating the jobtitle and annualincome properties and adding value to the - // description property in the same request. - var contact = {}; - contact.jobtitle = "Senior Developer"; - contact.annualincome = 95000.0; - contact.description = "Assignment to-be-determined. "; - return Sdk.request("PATCH", Sdk.SampleVariables.contact1Uri, contact); - }) - .then(function () { - // Process response from previous request. - console.log( - "Contact 'Peter Cambel' updated:\n" + - "\tJob title: Senior Developer, \n" + - "\tAnnual income: 95000, \n" + - "\tDescription: Assignment to-be-determined." - ); - - // Setup for next request. - // - // Set value for a single property using PUT request. - // In this case, we are setting the telephone1 property to "555-0105". - var value = { value: "555-0105" }; - return Sdk.request( - "PUT", - Sdk.SampleVariables.contact1Uri + "/telephone1", - value - ); - }) - .then(function () { - // Process response from previous request. - console.log("Contact 'Peter Cambel' phone number updated."); - - // Setup for next request. - // - // Retrieve single value property. - // Get a value of a single property using GET request. - // In this case, telephone1 is retrieved. We should get back "555-0105". - return Sdk.request( - "GET", - Sdk.SampleVariables.contact1Uri + "/telephone1", - null - ); - }) - .then(function (request) { - // Process response from previous request. - var phoneNumber = JSON.parse(request.response); - console.log("Contact's phone number is: %s", phoneNumber.value); - }) - .then(function () { - // Setup for next request. - //The following operations require version 8.2 or higher - if ( - Sdk.versionManager.WebAPIMajorVersion > 8 || - (Sdk.versionManager.WebAPIMajorVersion == 8 && - Sdk.versionManager.WebAPIMinorVersion >= 2) - ) { - // Starting with December 2016 update (v8.2), a contact instance can be - // created and its properties returned in one operation by using a - //'Prefer: return=representation' header. - var contactAlt = {}; - contactAlt.firstname = "Peter_Alt"; - contactAlt.lastname = "Cambel"; - contactAlt.jobtitle = "Junior Developer"; - contactAlt.annualincome = 80000; - contactAlt.telephone1 = "555-0110"; - var properties = ["fullname", "annualincome", "jobtitle"].join(); - var query = "?$select=" + properties; - // Create contact and return its state (in the body). - var retRepHeader = { - header: "Prefer", - value: "return=representation", - }; - Sdk.request("POST", entitySetName + query, contactAlt, retRepHeader) - .then(function (request) { - var contactA = JSON.parse(request.response); - //Because 'OData-EntityId' header not returned in a 201 response, you must instead - // construct the URI. - Sdk.SampleVariables.contactAltUri = - Sdk.getClientUrl() + - Sdk.versionManager.WebAPIPath + - "/contacts(" + - contactA.contactid + - ")"; - Sdk.SampleVariables.entitiesToDelete.push( - Sdk.SampleVariables.contactAltUri - ); - var successMsg = - "Contact '%s' created:\n" + - "\tAnnual income: %s \n" + - "\tJob title: %s \n"; - console.log( - successMsg, - contactA.fullname, - contactA.annualincome, - contactA.jobtitle - ); - console.log("Contact URI: %s", Sdk.SampleVariables.contactAltUri); - }) - .then(function () { - // Setup for next request. - //Similarly, the December 2016 update (v8.2) also enables returning selected properties - //after an update operation (PATCH), with the 'Prefer: return=representation' header. - var contactAlt = {}; - contactAlt.jobtitle = "Senior Developer"; - contactAlt.annualincome = 95000; - contactAlt.description = "MS Azure and Dataverse Specialist"; - var properties = [ - "fullname", - "annualincome", - "jobtitle", - "description", - ].join(); - var query = "?$select=" + properties; - // Update contact and return its state (in the body). - var retRepHeader = { - header: "Prefer", - value: "return=representation", - }; - return Sdk.request( - "PATCH", - Sdk.SampleVariables.contactAltUri + query, - contactAlt, - retRepHeader - ); - }) - .then(function (request) { - // Process response from previous request. - var contactA = JSON.parse(request.response); - var successMsg = - "Contact '%s' updated:\n" + - "\tAnnual income: %s \n" + - "\tJob title: %s \n"; - console.log( - successMsg, - contactA.fullname, - contactA.annualincome, - contactA.jobtitle - ); - //End this series of operations: - resolve(); - }) - .catch(function (err) { - reject(err); - }); - } else { - resolve(); - } - }) - .catch(function (err) { - reject(err); - }); - }); -}; - -Sdk.createWithAssociationAsync = function () { - return new Promise(function (resolve, reject) { - // Section 2. - // - // Create a new account entity and associate it with an existing contact using POST request. - console.log("\n--Section 2 started--"); - var account = {}; - account.name = "Contoso, Ltd."; - account.telephone1 = "555-5555"; - account["primarycontactid@odata.bind"] = Sdk.SampleVariables.contact1Uri; //relative URI ok. E.g.: "/contacts(###)". - - var entitySetName = "/accounts"; - - Sdk.request("POST", entitySetName, account) - .then(function (request) { - // Process response from previous request. - Sdk.SampleVariables.account1Uri = - request.getResponseHeader("OData-EntityId"); - Sdk.SampleVariables.entitiesToDelete.push( - Sdk.SampleVariables.account1Uri - ); - console.log("Account 'Contoso, Ltd.' created."); - - // Setup for next request. - // - // Retrieve account's primary contact with selected properties using GET request and 'expand' query. - var contactProperties = ["fullname", "jobtitle", "annualincome"].join(); - var query = - "?$select=name,telephone1&$expand=primarycontactid($select=" + - contactProperties + - ")"; - return Sdk.request( - "GET", - Sdk.SampleVariables.account1Uri + query, - null - ); - }) - .then(function (request) { - // Process response from previous request. - var account1 = JSON.parse(request.response); - var successMsg = - "Account '%s' has primary contact '%s': \n" + - "\tJob title: %s \n" + - "\tAnnual income: %s "; - console.log( - successMsg, - account1.name, - account1.primarycontactid.fullname, - account1.primarycontactid.jobtitle, - account1.primarycontactid.annualincome - ); - //End this series of operations: - resolve(); - }) - .catch(function (err) { - reject(err); - }); - }); -}; - -Sdk.createRelatedAsync = function () { - return new Promise(function (resolve, reject) { - // Section 3. - // - // Create related entities (deep insert). - // Create the following entities in one operation using deep insert technique: - // account - // |--- contact - // |--- tasks - // Then retrieve properties of these entities - // - // Constructing the entity relationship. - console.log("\n--Section 3 started--"); - var account = {}; - account.name = "Fourth Coffee"; - account.primarycontactid = { - firstname: "Susie", - lastname: "Curtis", - jobtitle: "Coffee Master", - annualincome: 48000.0, - Contact_Tasks: [ - { - subject: "Sign invoice", - description: "Invoice #12321", - scheduledend: new Date("April 19th, 2016"), - }, - { - subject: "Setup new display", - description: "Theme is - Spring is in the air", - scheduledstart: new Date("4/20/2016"), - }, - { - subject: "Conduct training", - description: "Train team on making our new blended coffee", - scheduledstart: new Date("6/1/2016"), - }, - ], - }; - - var entitySetName = "/accounts"; - Sdk.request("POST", entitySetName, account) - .then(function (request) { - // Process response from previous request. - Sdk.SampleVariables.account2Uri = - request.getResponseHeader("OData-EntityId"); - Sdk.SampleVariables.entitiesToDelete.push( - Sdk.SampleVariables.account2Uri - ); - console.log("Account 'Fourth Coffee' created."); - - // Setup for next request. - // - // Retrieve account entity info using GET request and 'expand' query. - var contactProperties = ["fullname", "jobtitle", "annualincome"].join(); - - // Expand on primarycontactid to select some of contact's properties. - // NOTE: With $expand, the CRM server will return values for the selected properties. - // The CRM Web API only supports expansions one level deep. - // See also: https://msdn.microsoft.com/library/mt607871.aspx#bkmk_expandRelated - var query = - "?$select=name&$expand=primarycontactid($select=" + - contactProperties + - ")"; - return Sdk.request( - "GET", - Sdk.SampleVariables.account2Uri + query, - null - ); - }) - .then(function (request) { - // Process response from previous request. - var account2 = JSON.parse(request.response); - var successMsg = - "Account '%s' has primary contact '%s':\n" + - "\tJob title: %s \n" + - "\tAnnual income: %s"; - console.log( - successMsg, - account2.name, - account2.primarycontactid.fullname, - account2.primarycontactid.jobtitle, - account2.primarycontactid.annualincome - ); - - // Setup for next request. - // - // Retrieve contact entity and expanding on its tasks using GET request. - Sdk.SampleVariables.contact2Uri = - Sdk.getClientUrl() + - Sdk.versionManager.WebAPIPath + - "/contacts(" + - account2.primarycontactid.contactid + - ")"; //Full URI. - Sdk.SampleVariables.entitiesToDelete.push( - Sdk.SampleVariables.contact2Uri - ); // For Susie Curtis - var contactProperties = ["fullname", "jobtitle"].join(); - var contactTaskProperties = [ - "subject", - "description", - "scheduledstart", - "scheduledend", - ].join(); - - // Expand on contact_tasks to select some of its properties for each task. - var query = - "?$select=" + - contactProperties + - "&$expand=Contact_Tasks($select=" + - contactTaskProperties + - ")"; - return Sdk.request( - "GET", - Sdk.SampleVariables.contact2Uri + query, - null - ); - }) - .then(function (request) { - // Process response from previous request. - var contact2 = JSON.parse(request.response); - console.log( - "Contact '%s' has the following assigned tasks:", - contact2.fullname - ); - - // construct the output string. - var successMsg = - "Subject: %s \n" + - "\tDescription: %s \n" + - "\tStart: %s \n" + - "\tEnd: %s \n"; - - for (var i = 0; i < contact2.Contact_Tasks.length; i++) { - console.log( - successMsg, - contact2.Contact_Tasks[i].subject, - contact2.Contact_Tasks[i].description, - contact2.Contact_Tasks[i].scheduledstart, - contact2.Contact_Tasks[i].scheduledend - ); - } - - //End this series of operations: - resolve(); - }) - .catch(function (err) { - reject(err); - }); - }); -}; - -Sdk.associateExistingAsync = function () { - return new Promise(function (resolve, reject) { - // Section 4 - // - // Entity associations: - // Associate to existing entities via the different relationship types: - // 1) 1:N relationship - Associate an existing contact to an existing account - // (e.g.: contact - Peter Cambel to account - Fourth Coffee). - // 2) N:N relationship - Associate an competitor to opportunity. - - console.log("\n--Section 4 started--"); - var contact = {}; - contact["@odata.id"] = Sdk.SampleVariables.contact1Uri; - - Sdk.request( - "POST", - Sdk.SampleVariables.account2Uri + "/contact_customer_accounts/$ref", - contact - ) - .then(function () { - // Process response from previous request. - console.log( - "Contact 'Peter Cambel' associated to account 'Fourth Coffee'." - ); - - // Setup for next request. - // - // Verify that the reference was made as expected. - var contactProperties = ["fullname", "jobtitle"].join(); - - // This returns a collection of all associated contacts...in a "value" array. - var query = "/contact_customer_accounts?$select=" + contactProperties; - return Sdk.request( - "GET", - Sdk.SampleVariables.account2Uri + query, - null - ); - }) - .then(function (request) { - // Process response from previous request. - var relatedContacts = JSON.parse(request.response).value; //collection is in the "value" array. - var successMsg = "\tName: %s, " + "Job title: %s "; - - console.log("Contact list for account 'Fourth Coffee': "); - - for (var i = 0; i < relatedContacts.length; i++) { - console.log( - successMsg, - relatedContacts[i].fullname, - relatedContacts[i].jobtitle - ); - } - - // Setup for next request. - // - // Disassociate a contact from an account. - return Sdk.request( - "DELETE", - Sdk.SampleVariables.account2Uri + - "/contact_customer_accounts/$ref?$id=" + - Sdk.SampleVariables.contact1Uri, - null - ); - }) - .then(function () { - // Process response from previous request. - console.log( - "Contact 'Peter Cambel' disassociated from account 'Fourth Coffee'." - ); - - // Setup for next request. - // - // N:N relationship: - // Associate a competitor to an opportunity. - var competitor = {}; - competitor.name = "Adventure Works"; - competitor.strengths = - "Strong promoter of private tours for multi-day outdoor adventures."; - - var entitySetName = "/competitors"; - return Sdk.request("POST", entitySetName, competitor); - }) - .then(function (request) { - // Process response from previous request. - Sdk.SampleVariables.competitor1Uri = - request.getResponseHeader("OData-EntityId"); - Sdk.SampleVariables.entitiesToDelete.push( - Sdk.SampleVariables.competitor1Uri - ); - console.log("Competitor 'Adventure Works' created."); +The `runSample` function takes an instance of the `BasicOperationsSample` class where the constructor accepts a [DataverseWebAPI.Client](../dataversewebapi-sample-library.md#client-class) instance and a reference to a container to write messages to. - // Setup for next request. - // - // Create a new opportunity... - var opportunity = {}; - opportunity.name = "River rafting adventure"; - opportunity.description = - "Sales team on a river-rafting offsite and team building."; - var entitySetName = "/opportunities"; - return Sdk.request("POST", entitySetName, opportunity); - }) - .then(function (request) { - // Process response from previous request. - Sdk.SampleVariables.opportunity1Uri = - request.getResponseHeader("OData-EntityId"); - Sdk.SampleVariables.entitiesToDelete.push( - Sdk.SampleVariables.opportunity1Uri - ); - console.log("Opportunity 'River rafting adventure' created."); +:::code language="javascript" source="~/../PowerApps-Samples/dataverse/webapi/JS/SPASample/src/scripts/index.js" id="runSample"::: - // Setup for next request. - // - // Associate competitor to opportunity. - var competitor = {}; - competitor["@odata.id"] = Sdk.SampleVariables.competitor1Uri; - return Sdk.request( - "POST", - Sdk.SampleVariables.opportunity1Uri + - "/opportunitycompetitors_association/$ref", - competitor - ); - }) - .then(function () { - // Process response from previous request. - console.log( - "Opportunity 'River rafting adventure' associated with competitor 'Adventure Works'." - ); - // Setup for next request. - // - // Retrieve competitor entity and expanding on its opportunitycompetitors_association - // for all opportunities, using GET request. - var opportunityProperties = ["name", "description"].join(); - var competitorProperties = ["name"].join(); - var query = - "?$select=" + - competitorProperties + - "&$expand=opportunitycompetitors_association($select=" + - opportunityProperties + - ")"; - return Sdk.request( - "GET", - Sdk.SampleVariables.competitor1Uri + query, - null - ); - }) - .then(function (request) { - // Process response from previous request. - var competitor1 = JSON.parse(request.response); - console.log( - "Competitor '%s' has the following opportunities:", - competitor1.name - ); - var successMsg = "\tName: %s, \n" + "\tDescription: %s"; - for ( - var i = 0; - i < competitor1.opportunitycompetitors_association.length; - i++ - ) { - console.log( - successMsg, - competitor1.opportunitycompetitors_association[i].name, - competitor1.opportunitycompetitors_association[i].description - ); - } +## BasicOperationsSample.js - // Setup for next request. - // - // Disassociate competitor from opportunity. - return Sdk.request( - "DELETE", - Sdk.SampleVariables.opportunity1Uri + - "/opportunitycompetitors_association/$ref?$id=" + - Sdk.SampleVariables.competitor1Uri, - null - ); - }) - .then(function () { - // Process response from previous request. - console.log( - "Opportunity 'River rafting adventure' disassociated with competitor 'Adventure Works'" - ); - //End this series of operations: - resolve(); - }) - .catch(function (err) { - reject(err); - }); - }); -}; +The following is the `BasicOperationsSample` class that contains the code for this sample. -Sdk.deleteSampleData = function () { - return new Promise(function (resolve, reject) { - // House cleaning - deleting sample data - // NOTE: If instances have a parent-child relationship, then deleting the parent will, - // by default, automatically cascade delete child instances. In this program, - // tasks related using the Contact_Tasks relationship have contact as their parent. - // Other relationships may behave differently. - // See also: https://msdn.microsoft.com/library/gg309412.aspx#BKMK_CascadingBehavior - console.log("\n--Section 5 started--"); - if (Sdk.SampleVariables.deleteData) { - for (var i = 0; i < Sdk.SampleVariables.entitiesToDelete.length; i++) { - console.log( - "Deleting entity: " + Sdk.SampleVariables.entitiesToDelete[i] - ); - Sdk.request( - "DELETE", - Sdk.SampleVariables.entitiesToDelete[i], - null - ).catch(function (err) { - reject( - new Error("ERROR: Delete failed --Reason: \n\t" + err.message) - ); - }); - } - resolve(); - } else { - console.log("Sample data not deleted."); - resolve(); - } - }); -}; -``` +:::code language="javascript" source="~/../PowerApps-Samples/dataverse/webapi/JS/SPASample/src/samples/BasicOperationsSample.js"::: ### See also -[Use the Dataverse Web API](../overview.md)
-[Create a table row using the Web API](../create-entity-web-api.md)
-[Retrieve a table row using the Web API](../retrieve-entity-using-web-api.md)
-[Update and delete table rows using the Web API](../update-delete-entities-using-web-api.md)
-[Web API Samples](../web-api-samples.md)
-[Web API Basic Operations Sample](../web-api-basic-operations-sample.md)
-[Web API Basic Operations Sample (C#)](webapiservice-basic-operations.md)
-[Web API Samples (Client-side JavaScript)](../web-api-samples-client-side-javascript.md)
-[Web API Query Data Sample (Client-side JavaScript)](query-data-client-side-javascript.md)
-[Web API Conditional Operations Sample (Client-side JavaScript)](conditional-operations-client-side-javascript.md)
-[Web API Functions and Actions Sample (Client-side JavaScript)](functions-actions-client-side-javascript.md) +[Use the Dataverse Web API](../overview.md) +[Create a table row using the Web API](../create-entity-web-api.md) +[Retrieve a table row using the Web API](../retrieve-entity-using-web-api.md) +[Update and delete table rows using the Web API](../update-delete-entities-using-web-api.md) +[Web API Samples](../web-api-samples.md) +[Web API Basic Operations Sample](../web-api-basic-operations-sample.md) +[Web API Basic Operations Sample (C#)](webapiservice-basic-operations.md) +[Web API Samples (Client-side JavaScript)](../web-api-samples-client-side-javascript.md) +[Web API Query Data Sample (Client-side JavaScript)](query-data-client-side-javascript.md) +[Web API Conditional Operations Sample (Client-side JavaScript)](conditional-operations-client-side-javascript.md) +[Web API Functions and Actions Sample (Client-side JavaScript)](functions-actions-client-side-javascript.md) [!INCLUDE[footer-include](../../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/webapi/samples/basic-operations-powershell.md b/powerapps-docs/developer/data-platform/webapi/samples/basic-operations-powershell.md index ea6c67c195..8bd16a88d1 100644 --- a/powerapps-docs/developer/data-platform/webapi/samples/basic-operations-powershell.md +++ b/powerapps-docs/developer/data-platform/webapi/samples/basic-operations-powershell.md @@ -2,8 +2,8 @@ title: "Web API Basic Operations Sample (PowerShell)" description: "This sample demonstrates how to perform basic CRUD (Create, Retrieve, Update, and Delete) and association and dissociation operations on Microsoft Dataverse table rows, using the Dataverse Web API with PowerShell and Visual Studio Code." ms.date: 01/20/2024 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/samples/column-level-security-powershell.md b/powerapps-docs/developer/data-platform/webapi/samples/column-level-security-powershell.md new file mode 100644 index 0000000000..a9be04edfa --- /dev/null +++ b/powerapps-docs/developer/data-platform/webapi/samples/column-level-security-powershell.md @@ -0,0 +1,179 @@ +--- +title: "Sample: Column-level security using Dataverse Web API (PowerShell)" +description: "This sample shows how to work with column-level security using the Dataverse Web API with PowerShell." +ms.date: 07/30/2025 +author: paulliew +ms.subservice: dataverse-developer +ms.author: paulliew +ms.reviewer: jdaly +ms.topic: sample +search.audienceType: + - developer +contributors: + - JimDaly +--- +# Sample: Column-level security using Dataverse Web API (PowerShell) + +This sample shows how to perform [column-level security](../../column-level-security.md) operations using [Dataverse Web API](../overview.md) with PowerShell. + +> [!div class="nextstepaction"] +> [View this sample on Github](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/webapi/PS/ColumnLevelSecurity) + +## Prerequisites + +Before running this sample, you should read these articles that explain concepts and patterns used by Dataverse PowerShell samples: + +- [Quick Start Web API with PowerShell and Visual Studio Code](../quick-start-ps.md) +- [Use PowerShell and Visual Studio Code with the Dataverse Web API](../use-ps-and-vscode-web-api.md) + +This sample requires: + +- Visual Studio Code. [Download Visual Studio Code](https://code.visualstudio.com/download) +- PowerShell extension for Visual Studio Code. [Install PowerShell for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell) +- PowerShell 7.4 or higher. See [Install PowerShell on Windows, Linux, and macOS](/powershell/scripting/install/installing-powershell) +- Az PowerShell module version 11.1.0 or higher. See [How to install Azure PowerShell](/powershell/azure/install-azure-powershell) + + To update an existing installation to the latest version, use `Update-Module -Name Az -Force` + +- Access to Dataverse with system administrator privileges. +- An application user account with **Basic User** access. See the [Configure users section](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/webapi/PS/ColumnLevelSecurity#configure-users) for instructions about how to create this user. + +## How to run this sample + +1. Download or clone the [Samples](https://github.com/Microsoft/PowerApps-Samples) repo so that you have a local copy. +1. Open the [ColumnLevelSecurity folder](https://github.com/microsoft/PowerApps-Samples/blob/master/dataverse/webapi/PS/ColumnLevelSecurity) using Visual Studio Code. +1. Create a file named `.env` using the data found in the [.env.example](https://github.com/microsoft/PowerApps-Samples/blob/master/dataverse/webapi/PS/ColumnLevelSecurity/.env.example) file. +1. In the `.env` file, replace the placeholder values: + + ```env + # The environment this application will connect to. + BASE_URL=https://.api.crm.dynamics.com/ + # The application user application id + CLIENT_ID=00001111-aaaa-2222-bbbb-3333cccc4444 + # The application user secret + CLIENT_SECRET=Aa1Bb~2Cc3.-Dd4Ee5Ff6Gg7Hh8Ii9_Jj0Kk1Ll2 + # The Entra tenant id + TENANT_ID=aaaabbbb-0000-cccc-1111-dddd2222eeee + ``` + +1. Set the `BASE_URL` to the URL of the environment you want to run the sample against +1. See the [Configure users section](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/webapi/PS/ColumnLevelSecurity#configure-users) for instructions to set the `CLIENT_ID`, `CLIENT_SECRET`, and `TENANT_ID` values. +1. Press F5 to run the sample. The `.vscode/launch.json` file is configured to execute the `ColumnLevelSecurity.ps1` file. + +When the sample runs, you're prompted in the default browser to select an environment user account and enter a password. + +## What this sample does + +This sample demonstrates the capabilities described in [Column-level security with code](../../column-level-security.md): + +- Discover which columns can be secured in a Dataverse environment +- Discover which columns are currently secured +- Secure columns in a Dataverse environment +- Grant read or write access to selected fields to individual users +- Modify access to secured fields for individual users +- Revoke access to selected fields for individual users +- Provide read and write access to specific groups of users +- Enable masking of secured columns +- Retrieve unmasked values for secured columns + +## Sample files + +The code for this sample is in the following files: + +|File|Description| +|---------|---------| +|`ColumnLevelSecurity.ps1`|Controls the flow of the sample. Contains definition of `Setup`, `Run`, and `Cleanup` functions and calls them at the end.| +|`Examples.ps1`|Contains 12 functions that demonstrate operations related to column-level security operations.| +|`Helpers.ps1`|Contains constants and functions used by the sample to manage setting up and running the sample. These functions aren't the focus of this sample.| + +This sample is designed to be resilient when errors occur so you should be able to run the sample again if it failed previously. + +## How this sample works + +In order to create the scenario described in [What this sample does](#what-this-sample-does), the sample does the following operations: + +### Setup + +The `Setup` function in this sample does the following operations: + +1. Create a solution publisher named `ColumnLevelSecuritySamplePublisher` with customization prefix of `sample` if it doesn't exist. +1. Create a solution named `ColumnLevelSecuritySampleSolution` associated to the publisher if it doesn't exist. + + All subsequent solution-aware items are created in the context of this solution. + +1. Create a table named `sample_Example` if it doesn't exist. +1. Create four string columns in the `sample_Example` table if they don't exist. + + The table schema names are: + + - `sample_Email` + - `sample_GovernmentId` + - `sample_TelephoneNumber` + - `sample_DateOfBirth` + +1. Remove any existing sample data in the `sample_Example` table. +1. Add three rows of sample data with information in each column of the `sample_Example` table. +1. Create a new security role named **Column-level security sample role**. +1. Add privileges for the `sample_Example` table to the security role. +1. Associate the user to the security role. +1. Create a [Field Security Profile](../../reference/entities/fieldsecurityprofile.md) record named **Example Field Security Profile** that is used in the [Manage access to secure column data to groups](#manage-access-to-secure-column-data-to-groups) section of the sample. +1. Associate the application user to the field security profile. +1. Wait 30 seconds for the cache to catch up with the new objects created. + +### Demonstrate + +The `Run` function in this sample does the following operations: + +#### Retrieve information about columns + +1. Use the `Dump-ColumnSecurityInfo-Example` function to download a CSV file with data about which columns in the system can be secured. +1. Use the `Get-SecuredColumnList-Example` function to retrieve and show a list of environment columns that are already secured. + +#### Secure columns + +1. Demonstrate that the application user can retrieve data from all the columns in the `sample_Example` table. +1. Use the `Set-ColumnIsSecured-Example` function to secure the four columns +1. Demonstrate that the application user can no longer retrieve data from the secured columns in the `sample_Example` table. + +#### Grant access to secure column data to individuals + +1. Use the `Grant-ColumnAccess-Example` function to grant the application users read access to specific record field values by creating a [Field Sharing (PrincipalObjectAttributeAccess)](../../reference/entities/principalobjectattributeaccess.md) record. +1. Demonstrate that the application user can now retrieve data from specific secured record fields in the `sample_Example` table. +1. Demonstrate that the application user isn't allowed to write data to the secured columns. +1. Use the `Modify-ColumnAccess-Example` function to grant write access to a specific record field. +1. Demonstrate that the application user is now allowed to write data to the specific record field. +1. Use the `Revoke-ColumnAccess-Example` function to delete the `PrincipalObjectAttributeAccess` records that gave the application user access to the secured columns. + +#### Manage access to secure column data to groups + +1. Add field permissions to the **Example Field Security Profile** record that was created in `Setup` by creating [Field Permission (FieldPermission)](../../reference/entities/fieldpermission.md) records +1. Demonstrate that the application user can view only the secured columns specified in the field permission records. +1. Demonstrate that the application user isn't allowed to write data to the specific record field not enabled with field permissions. + +#### Masking + +1. Retrieve ID values for existing masking rules. Create new [Secured Masking Column (AttributeMaskingRule)](../../reference/entities/attributemaskingrule.md) records to specify masking rules for columns of the `sample_Example` table. +1. Update the `canreadunmasked` column values of the [Field Permission (FieldPermission)](../../reference/entities/fieldpermission.md) records created earlier. +1. Wait 30 seconds for the cache to catch up with the new objects created. +1. Demonstrate that the application user can now retrieve data with masked values. +1. Demonstrate that the application user can now retrieve unmasked values with a `GET` requests on the `sample_examples` collection to return multiple records when using the [UnMaskedData optional parameter](../../optional-parameters.md#return-unmasked-data). +1. Demonstrate that the application user can now retrieve unmasked values with a `GET` request to retrieve a single record when using the [UnMaskedData optional parameter](../../optional-parameters.md#return-unmasked-data). + +#### Export solution + +Use an exported solution to test the functionality of the sample configurations outside of this sample. + +1. Export the solution created with all the configurations as an unmanaged solution. +1. Export the solution created with all the configurations as a managed solution + +### Clean up + +The static `Cleanup` function in this sample does the following operations: + +When the `$DELETE_CREATED_OBJECTS` setting in `Helpers.ps1` is `true`, the `Cleanup` function tries to delete all components created during `Setup` or `Run`. The goal is to return the environment to the original state. If you don't want the items to be deleted, you can change the setting to `false`. + +### Related samples + +[Sample: Column-level security using Dataverse SDK for .NET](../../org-service/samples/column-level-security.md) + +[!INCLUDE [footer-banner](../../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/webapi/samples/conditional-operations-client-side-javascript.md b/powerapps-docs/developer/data-platform/webapi/samples/conditional-operations-client-side-javascript.md index 191f8f4e97..31c8692c32 100644 --- a/powerapps-docs/developer/data-platform/webapi/samples/conditional-operations-client-side-javascript.md +++ b/powerapps-docs/developer/data-platform/webapi/samples/conditional-operations-client-side-javascript.md @@ -1,509 +1,51 @@ --- title: "Web API Conditional Operations Sample (Client-side JavaScript) (Microsoft Dataverse)| Microsoft Docs" description: "This sample demonstrates how to perform conditional operations using Microsoft Dataverse Web API and client-side JavaScript." -ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +ms.date: 03/22/2025 +author: JimDaly +ms.author: jdaly ms.reviewer: jdaly search.audienceType: - developer contributors: - JimDaly + - Mattp123 --- # Web API Conditional Operations Sample (Client-side JavaScript) -[!INCLUDE[cc-terminology](../../includes/cc-terminology.md)] +This sample contains code that demonstrates how to perform conditional operations using client-side JavaScript to complete the set of operations described by the [Web API Conditional Operations Sample](../web-api-conditional-operations-sample.md). -This sample demonstrates how to perform conditional operations using Microsoft Dataverse Web API using client-side JavaScript. +This code uses the [DataverseWebAPI.js sample library](../dataversewebapi-sample-library.md) and is designed to run in the context of a [Single Page Application (SPA)](https://developer.mozilla.org/docs/Glossary/SPA) sample available on GitHub. [Learn more about the sample application](../web-api-samples-client-side-javascript.md) -> [!NOTE] -> This sample implements the operations detailed in the [Web API Conditional Operations Sample](../web-api-conditional-operations-sample.md) and uses the common client-side JavaScript constructs described in [Web API Samples (Client-side JavaScript)](../web-api-samples-client-side-javascript.md) - - +[!INCLUDE [cc-web-api-spa-javascript-code-sample-note](../../includes/cc-web-api-spa-javascript-code-sample-note.md)] ## Prerequisites -To run this sample, the following is required: - -- Access to Dataverse environment. - -- A user account with privileges to import solutions and perform CRUD operations, typically a system administrator or system customizer security role. - - - -## Run this sample - -To run this sample, download the solution package from [here](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/webapi/JS/WebAPIConditionalOperations), extract the contents, and locate the `WebAPIConditionalOperations_1_0_0_0_managed.zip` managed solution. Import the managed solution into your Dataverse environment and view the solution configuration page to run the sample. For instructions on how to import the sample solution, see [Web API Samples (Client-side JavaScript)](../web-api-samples-client-side-javascript.md). - - - -## Code sample - -This sample includes two web resources: - -- [WebAPIConditionalOperations.html](#bkmk_WebAPIConditionalOperations) +This sample has the same prerequisites as [Quick Start Web API with client-side JavaScript and Visual Studio Code](../quick-start-js-spa.md#prerequisites). To run this sample, you should complete the quick start first. You can use the same application registration information for that quick start to run this sample. -- [WebAPIConditionalOperations.js](#bkmk_WebAPIConditionalOperationsJS) +## Context - - -### WebAPIConditionalOperations.html - -The WebAPIConditionalOperations.html web resource provides the context in which the JavaScript code will run. - -```html - - - - Microsoft CRM Web API Conditional Operations Example - - - - - - - - -

Microsoft CRM Web API Conditional Operations Example

-

- This page demonstrates the CRM Web API's Conditional Operations using - JavaScript. -

- -

Instructions

-

- Choose your preferences and run the JavaScript code. Use your browser's - developer tools to view the output written to the console (e.g.: in IE11 - or Microsoft Edge, press F12 to load the Developer Tools). -

-
-

This sample deletes the single record it creates.

- -
- - -``` - - - -### WebAPIConditionalOperations.js - -The WebAPIConditionalOperations.js web resource is the JavaScript library that defines the operations this sample performs. +This sample starts when the user selects a button that triggers the following event handler: ```javascript -"use strict"; -var Sdk = window.Sdk || {}; -/** - * @function getClientUrl - * @description Get the client URL. - * @return {string} The client URL. - */ -Sdk.getClientUrl = function () { - var context; - // GetGlobalContext defined by including reference to - // ClientGlobalContext.js.aspx in the HTML page. - if (typeof GetGlobalContext != "undefined") { - context = GetGlobalContext(); - } else { - if (typeof Xrm != "undefined") { - // Xrm.Page.context defined within the Xrm.Page object model for form scripts. - context = Xrm.Page.context; - } else { - throw new Error("Context is not available."); - } - } - return context.getClientUrl(); +// Add event listener to the basic operations button +document.getElementById("conditionalOperationsButton").onclick = async function () { + runSample(new ConditionalOperationsSample(client, container)); }; +``` -// Global variables. -var clientUrl = Sdk.getClientUrl(); // e.g.: https://org.crm.dynamics.com -var webAPIPath = "/api/data/v8.1"; // Path to the web API. -var account1Uri; // e.g.: Contoso Ltd (sample) -var initialAcctETagVal; // The initial ETag value of the account created -var updatedAcctETagVal; // The ETag value of the account after it is updated - -// Entity properties to select in a request. -var contactProperties = ["fullname", "jobtitle", "annualincome"]; -var accountProperties = ["name"]; -var taskProperties = ["subject", "description"]; - -/** - * @function request - * @description Generic helper function to handle basic XMLHttpRequest calls. - * @param {string} action - The request action. String is case-sensitive. - * @param {string} uri - An absolute or relative URI. Relative URI starts with a "/". - * @param {object} data - An object representing an entity. Required for create and update actions. - * @param {object} addHeader - An object with header and value properties to add to the request - * @returns {Promise} - A Promise that returns either the request object or an error object. - */ -Sdk.request = function (action, uri, data, addHeader) { - if (!RegExp(action, "g").test("POST PATCH PUT GET DELETE")) { - // Expected action verbs. - throw new Error( - "Sdk.request: action parameter must be one of the following: " + - "POST, PATCH, PUT, GET, or DELETE." - ); - } - if (!typeof uri === "string") { - throw new Error("Sdk.request: uri parameter must be a string."); - } - if (RegExp(action, "g").test("POST PATCH PUT") && !data) { - throw new Error( - "Sdk.request: data parameter must not be null for operations that create or modify data." - ); - } - if (addHeader) { - if ( - typeof addHeader.header != "string" || - typeof addHeader.value != "string" - ) { - throw new Error( - "Sdk.request: addHeader parameter must have header and value properties that are strings." - ); - } - } - - // Construct a fully qualified URI if a relative URI is passed in. - if (uri.charAt(0) === "/") { - uri = clientUrl + webAPIPath + uri; - } - - return new Promise(function (resolve, reject) { - var request = new XMLHttpRequest(); - request.open(action, encodeURI(uri), true); - request.setRequestHeader("OData-MaxVersion", "4.0"); - request.setRequestHeader("OData-Version", "4.0"); - request.setRequestHeader("Accept", "application/json"); - request.setRequestHeader("Content-Type", "application/json; charset=utf-8"); - if (addHeader) { - request.setRequestHeader(addHeader.header, addHeader.value); - } - request.onreadystatechange = function () { - if (this.readyState === 4) { - request.onreadystatechange = null; - switch (this.status) { - case 200: // Success with content returned in response body. - case 204: // Success with no content returned in response body. - case 304: // Success with Not Modified. - resolve(this); - break; - default: // All other statuses are error cases. - var error; - try { - error = JSON.parse(request.response).error; - } catch (e) { - error = new Error("Unexpected Error"); - } - reject(error); - break; - } - } - }; - request.send(JSON.stringify(data)); - }); -}; - -/** - * @function startSample - * @description Runs the sample. - * This sample demonstrates conditional operations using CRM Web API. - * Results are sent to the debugger's console window. - */ -Sdk.startSample = function () { - // Initializing... - console.log("-- Sample started --"); - - // Create the CRM account instance. - var account = { - name: "Contoso, Ltd", - telephone1: "555-0000", // Phone number value will increment with each update attempt. - revenue: 5000000, - description: "Parent company of Contoso Pharmaceuticals, etc.", - }; - - var uri = "/accounts"; // A relative URi to the account entity. - Sdk.request("POST", uri, account) - .then(function (request) { - console.log("Account entity created."); - // Assign the Uri to the created account to a global variable. - account1Uri = request.getResponseHeader("OData-EntityId"); - - // Retrieve the created account entity. - return Sdk.request( - "GET", - account1Uri + "?$select=name,revenue,telephone1,description" - ); - }) - .then(function (request) { - // Show the current entity properties. - var account = JSON.parse(request.response); - console.log(JSON.stringify(account, null, 2)); - - initialAcctETagVal = account["@odata.etag"]; // Save the current ETag value. - - // Conditional Get START. - // Attempt to retrieve using conditional GET with current ETag value. - // Expecting nothing in the response because entity was not modified. - console.log("-- Conditional GET section started --"); - var ifNoneMatchETag = { - header: "If-None-Match", - value: initialAcctETagVal, - }; - return Sdk.request( - "GET", - account1Uri + "?$select=name,revenue,telephone1,description", - null, - ifNoneMatchETag - ); - }) - .then(function (request) { - console.log("Instance retrieved using ETag: %s", initialAcctETagVal); - if (request.status == 304) { - //Expected: - console.log("\tEntity was not modified so nothing was returned."); - console.log(request.response); //Nothing - } else { - //Not Expected: - console.log(JSON.stringify(JSON.parse(request.response), null, 2)); - } - - // Modify the account instance by updating telephone1. - // This request operation will also update the ETag value. - return Sdk.request("PUT", account1Uri + "/telephone1", { - value: "555-0001", - }); - }) - .then(function (request) { - console.log("Account telephone number updated."); - - // Re-attempt conditional GET with original ETag value. - var ifNoneMatchETag = { - header: "If-None-Match", - value: initialAcctETagVal, - }; - return Sdk.request( - "GET", - account1Uri + "?$select=name,revenue,telephone1,description", - null, - ifNoneMatchETag - ); - }) - .then(function (request) { - if (request.status == 200) { - // Expected. - console.log("Instance retrieved using ETag: %s", initialAcctETagVal); - var account = JSON.parse(request.response); - updatedAcctETagVal = account["@odata.etag"]; //Capture updated ETag. - console.log(JSON.stringify(account, null, 2)); - } else { - // Not Expected. - console.log("Unexpected status: %s", request.status); - } - // Conditional Get END. - - // Optimistic concurrency on delete and update START. - console.log("-- Optimistic concurrency section started --"); - // Attempt to delete original account (only if matches original ETag value). - var ifMatchETag = { header: "If-Match", value: initialAcctETagVal }; - return Sdk.request("DELETE", account1Uri, null, ifMatchETag); - }) - .then( - function (request) { - // Success not expected. - console.log("Unexpected status: %s", request.status); - }, - // Catch error. - function (error) { - // DELETE: Precondition failed error expected. - console.log("Expected Error: %s", error.message); - console.log( - "\tAccount not deleted using ETag '%s', status code: '%s'.", - initialAcctETagVal, - 412 - ); - - // Attempt to update account (if matches original ETag value). - var accountUpdate = { - telephone1: "555-0002", - revenue: 6000000, - }; - var ifMatchETag = { header: "If-Match", value: initialAcctETagVal }; - return Sdk.request("PATCH", account1Uri, accountUpdate, ifMatchETag); - } - ) - .then( - function (request) { - // Success not expected. - console.log("Unexpected status: %s", request.status); - }, - // Catch error. - function (error) { - // UPDATE: Precondition failed error expected. - console.log("Expected Error: %s", error.message); - console.log( - "\tAccount not updated using ETag '%s', status code: '%s'.", - initialAcctETagVal, - 412 - ); - - // Re-attempt update if matches current ETag value. - var accountUpdate = { - telephone1: "555-0003", - revenue: 6000000, - }; - var ifMatchETag = { header: "If-Match", value: updatedAcctETagVal }; - return Sdk.request("PATCH", account1Uri, accountUpdate, ifMatchETag); - } - ) - .then(function (request) { - if (request.status == 204) { - //No Content - // Expected. - console.log( - "Account successfully updated using ETag '%s', status code: '%s'.", - updatedAcctETagVal, - request.status - ); - } else { - // Not Expected. - console.log("Unexpected status: %s", request.status); - } - // Retrieve and output current account state. - return Sdk.request( - "GET", - account1Uri + "?$select=name,revenue,telephone1,description" - ); - }) - .then(function (request) { - var account = JSON.parse(request.response); - updatedAcctETagVal = account["@odata.etag"]; // Capture updated ETag. - console.log(JSON.stringify(account, null, 2)); - // Optimistic concurrency on delete and update END. - - // Controlling upsert operations START. - console.log("-- Controlling upsert operations section started --"); +The `runSample` function takes an instance of the `ConditionalOperationsSample` class where the constructor accepts a [DataverseWebAPI.Client](../dataversewebapi-sample-library.md#client-class) instance and a reference to a container to write messages to. - // Attempt to insert (without update) some properties for this account. - var accountUpsert = { - telephone1: "555-0004", - revenue: 7500000, - }; - var ifNoneMatchResource = { header: "If-None-Match", value: "*" }; - return Sdk.request( - "PATCH", - account1Uri, - accountUpsert, - ifNoneMatchResource - ); - }) - .then( - function (request) { - // Success not expected. - console.log("Unexpected status: %s", request.status); - }, - // Catch error. - function (error) { - // Precondition failed error expected. - console.log("Expected Error: %s", error.message); - console.log( - "\tAccount not updated using ETag '%s', status code: '%s'.", - initialAcctETagVal, - 412 - ); +:::code language="javascript" source="~/../PowerApps-Samples/dataverse/webapi/JS/SPASample/src/scripts/index.js" id="runSample"::: - // Attempt to perform same update without creation. - var accountUpsert = { - telephone1: "555-0005", - revenue: 7500000, - }; - // Perform operation only if matching resource exists. - var ifMatchResource = { header: "If-Match", value: "*" }; - return Sdk.request( - "PATCH", - account1Uri, - accountUpsert, - ifMatchResource - ); - } - ) - .then(function (request) { - if (request.status == 204) { - // No Content. - // Expected. - console.log("Account updated using If-Match '*'"); - } else { - // Not Expected. - console.log("Unexpected status: %s", request.status); - } - // Retrieve and output current account state. - return Sdk.request( - "GET", - account1Uri + "?$select=name,revenue,telephone1,description" - ); - }) - .then(function (request) { - var account = JSON.parse(request.response); - updatedAcctETagVal = account["@odata.etag"]; // Capture updated ETag. - console.log(JSON.stringify(account, null, 2)); +## ConditionalOperationsSample.js - // Controlling upsert operations END. +The following is the `ConditionalOperationsSample` class that contains the code for this sample. - // Prevent update of deleted entity START. - // Delete the account. - return Sdk.request("DELETE", account1Uri); - }) - .then(function (request) { - if (request.status == 204) { - console.log("Account was deleted"); +:::code language="javascript" source="~/../PowerApps-Samples/dataverse/webapi/JS/SPASample/src/samples/ConditionalOperationsSample.js"::: - // Attempt to update it. - var accountUpsert = { - telephone1: "555-0005", - revenue: 7500000, - }; - // Perform operation only if matching resource exists. - var ifMatchResource = { header: "If-Match", value: "*" }; - return Sdk.request( - "PATCH", - account1Uri, - accountUpsert, - ifMatchResource - ); - } - }) - .then( - function (request) { - // Success not expected. - // Without the If-Match header while using PATCH a new entity would have been created with the - // same ID as the deleted entity. - console.log("Unexpected status: %s", request.status); - }, - // Catch error. - function (error) { - // Not found error expected. - console.log("Expected Error: %s", error.message); - console.log("\tAccount not updated because it doesn't exist."); - } - ) - .catch(function (error) { - console.log(error.message); - }); -}; -``` ### See also diff --git a/powerapps-docs/developer/data-platform/webapi/samples/create-update-multiple.md b/powerapps-docs/developer/data-platform/webapi/samples/create-update-multiple.md index 6b4dd352d4..a0daa974ce 100644 --- a/powerapps-docs/developer/data-platform/webapi/samples/create-update-multiple.md +++ b/powerapps-docs/developer/data-platform/webapi/samples/create-update-multiple.md @@ -2,10 +2,9 @@ title: "Sample: Web API Use bulk operations" description: "This sample shows how to perform bulk create and update operations using the Web API CreateMultiple and UpdateMultiple actions. The messages for these actions are optimized to provide the most performant way to create or update records with Dataverse." ms.date: 02/08/2024 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly -ms.topic: sample search.audienceType: - developer search.app: diff --git a/powerapps-docs/developer/data-platform/webapi/samples/file-operations.md b/powerapps-docs/developer/data-platform/webapi/samples/file-operations.md index 39dbe6945f..3965825865 100644 --- a/powerapps-docs/developer/data-platform/webapi/samples/file-operations.md +++ b/powerapps-docs/developer/data-platform/webapi/samples/file-operations.md @@ -1,11 +1,10 @@ --- -title: "Sample: File Operations using Dataverse Web API (Microsoft Dataverse) | Microsoft Learn" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "This sample demonstrates how to perform operations with file columns using the Dataverse Web API." # 115-145 characters including spaces. This abstract displays in the search result. +title: "Sample: File Operations using Dataverse Web API (Microsoft Dataverse) | Microsoft Learn" +description: "This sample demonstrates how to perform operations with file columns using the Dataverse Web API." ms.date: 10/28/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly -ms.topic: sample search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/webapi/samples/functions-actions-client-side-javascript.md b/powerapps-docs/developer/data-platform/webapi/samples/functions-actions-client-side-javascript.md index a65cf29c9d..68cb3ea456 100644 --- a/powerapps-docs/developer/data-platform/webapi/samples/functions-actions-client-side-javascript.md +++ b/powerapps-docs/developer/data-platform/webapi/samples/functions-actions-client-side-javascript.md @@ -1,791 +1,53 @@ --- title: "Web API Functions and Actions Sample (Client-side JavaScript) (Microsoft Dataverse)| Microsoft Docs" description: "This sample demonstrates how to perform bound and unbound functions and actions, including custom actions, using the Microsoft Dataverse Web API and client-side JavaScript." -ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +ms.date: 03/22/2025 +author: JimDaly +ms.author: jdaly ms.reviewer: jdaly search.audienceType: - developer contributors: - JimDaly + - Mattp123 --- # Web API Functions and Actions Sample (Client-side JavaScript) -[!INCLUDE[cc-terminology](../../includes/cc-terminology.md)] +This sample contains code that demonstrates how to use Web API functions and actions using client-side JavaScript to complete the set of operations described by the [Web API Functions and Actions Sample](../web-api-functions-actions-sample.md). -This sample demonstrates how to perform bound and unbound functions and actions, including custom actions, using the Microsoft Dataverse Web API using client-side JavaScript. +This code uses the [DataverseWebAPI.js sample library](../dataversewebapi-sample-library.md) and is designed to run in the context of a [Single Page Application (SPA)](https://developer.mozilla.org/docs/Glossary/SPA) sample available on GitHub. [Learn more about the sample application](../web-api-samples-client-side-javascript.md) -> [!NOTE] -> This sample implements the operations detailed in the [Web API Functions and Actions Sample](../web-api-functions-actions-sample.md) and uses the common client-side JavaScript constructs described in [Web API Samples (Client-side JavaScript)](../web-api-samples-client-side-javascript.md) - -## In this section - -- [Prerequisites](#bkmk_prerequisites) -- [Run this sample](#bkmk_runsample) -- [Code sample](#bkmk_codeSample) - - +[!INCLUDE [cc-web-api-spa-javascript-code-sample-note](../../includes/cc-web-api-spa-javascript-code-sample-note.md)] ## Prerequisites -To run this sample, the following is required: - -- Access to Dataverse environment. -- A user account with privileges to import solutions and perform CRUD operations, typically a system administrator or system customizer security role. - - - -## Run this sample - -To run this sample, download the solution package from [here](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/webapi/JS/WebAPIFunctionsAndActions), extract the contents, and locate the `WebAPIFunctionsandActions_1_0_0_0_managed.zip` managed solution file. Import the managed solution into your Dataverse organization and view the configuration page of the solution to run the sample. For instructions on how to import the sample solution, see [Web API Samples (Client-side JavaScript)](../web-api-samples-client-side-javascript.md). - - - -## Code sample +This sample has the same prerequisites as [Quick Start Web API with client-side JavaScript and Visual Studio Code](../quick-start-js-spa.md#prerequisites). To run this sample, you should complete the quick start first. You can use the same application registration information for that quick start to run this sample. -This sample includes two web resources: +## Context -- [WebAPIFunctionsAndActions.html](#bkmk_WebAPIFunctionsAndActions) -- [WebAPIFunctionsAndActions.js](#bkmk_WebAPIFunctionsAndActionsJS) - - - -### WebAPIFunctionsAndActions.html - -The WebAPIFunctionsAndActions.html web resource provides the context in which the JavaScript code will run. - -```html - - - - Microsoft CRM Web API Functions and Actions Example - - - - - - - - - -

Microsoft CRM Web API Functions and Actions Example

-

- This page demonstrates the CRM Web API's Functions and Actions using - JavaScript. -

- -

Instructions

-

- Choose your preferences and run the JavaScript code. Use your browser's - developer tools to view the output written to the console (e.g.: in IE11 - or Microsoft Edge, press F12 to load the Developer Tools). -

-
-

- Remove sample data (Choose whether you want to delete sample data - created for this sample):
- Yes - No -

- -
- - -``` - - - -### WebAPIFunctionsAndActions.js - -The WebAPIFunctionsAndActions.js web resource is the JavaScript library that defines the operations this sample performs. +This sample starts when the user selects a button that triggers the following event handler: ```javascript -"use strict"; -var Sdk = window.Sdk || {}; - -/** - * @function getClientUrl - * @description Get the client URL. - * @return {string} The client URL. - */ -Sdk.getClientUrl = function () { - var context; - // GetGlobalContext defined by including reference to - // ClientGlobalContext.js.aspx in the HTML page. - if (typeof GetGlobalContext != "undefined") { - context = GetGlobalContext(); - } else { - if (typeof Xrm != "undefined") { - // Xrm.Page.context defined within the Xrm.Page object model for form scripts. - context = Xrm.Page.context; - } else { - throw new Error("Context is not available."); - } - } - return context.getClientUrl(); -}; - -// Global variables -var entitiesToDelete = []; // Entity URIs to be deleted later -// (if user chooses to delete sample data). -var deleteData = true; // Controls whether sample data are deleted at the end of this sample run. -var clientUrl = Sdk.getClientUrl(); // ie.: https://org.crm.dynamics.com -var webAPIPath = "/api/data/v8.1"; // Path to the web API. -var incidentUri; // Incident created with three closed tasks. -var opportunityUri; // Closed opportunity to re-open before deleting. -var letterUri; // Letter to add to contact's queue. -var myQueueUri; // The contact's queue uri. -var contactUri; // Add a note to this contact. -var CUSTOMERACCOUNTNAME = - "Account Customer Created in WebAPIFunctionsAndActions sample"; // For custom action. - -/** - * @function getWebAPIPath - * @description Get the full path to the Web API. - * @return {string} The full URL of the Web API. - */ -Sdk.getWebAPIPath = function () { - return Sdk.getClientUrl() + webAPIPath; -}; - -/** - * @function request - * @description Generic helper function to handle basic XMLHttpRequest calls. - * @param {string} action - The request action. String is case-sensitive. - * @param {string} uri - An absolute or relative URI. Relative URI starts with a "/". - * @param {object} data - An object representing an entity. Required for create and update actions. - * @param {object} addHeader - An object with header and value properties to add to the request - * @returns {Promise} - A Promise that returns either the request object or an error object. - */ -Sdk.request = function (action, uri, data, addHeader) { - if (!RegExp(action, "g").test("POST PATCH PUT GET DELETE")) { - // Expected action verbs. - throw new Error( - "Sdk.request: action parameter must be one of the following: " + - "POST, PATCH, PUT, GET, or DELETE." - ); - } - if (!typeof uri === "string") { - throw new Error("Sdk.request: uri parameter must be a string."); - } - if (RegExp(action, "g").test("POST PATCH PUT") && !data) { - throw new Error( - "Sdk.request: data parameter must not be null for operations that create or modify data." - ); - } - if (addHeader) { - if ( - typeof addHeader.header != "string" || - typeof addHeader.value != "string" - ) { - throw new Error( - "Sdk.request: addHeader parameter must have header and value properties that are strings." - ); - } - } - - // Construct a fully qualified URI if a relative URI is passed in. - if (uri.charAt(0) === "/") { - uri = clientUrl + webAPIPath + uri; - } - - return new Promise(function (resolve, reject) { - var request = new XMLHttpRequest(); - request.open(action, encodeURI(uri), true); - request.setRequestHeader("OData-MaxVersion", "4.0"); - request.setRequestHeader("OData-Version", "4.0"); - request.setRequestHeader("Accept", "application/json"); - request.setRequestHeader("Content-Type", "application/json; charset=utf-8"); - if (addHeader) { - request.setRequestHeader(addHeader.header, addHeader.value); - } - request.onreadystatechange = function () { - if (this.readyState === 4) { - request.onreadystatechange = null; - switch (this.status) { - case 200: // Success with content returned in response body. - case 204: // Success with no content returned in response body. - case 304: // Success with Not Modified - resolve(this); - break; - default: // All other statuses are error cases. - var error; - try { - error = JSON.parse(request.response).error; - } catch (e) { - error = new Error("Unexpected Error"); - } - reject(error); - break; - } - } - }; - request.send(JSON.stringify(data)); - }); -}; - -/** - * @function Sdk.startSample - * @description Initiates a chain of promises to show use of Functions and Actions with the Web API. - * Functions and actions represent re-usable operations you can perform using the Web API. - * For more info, see https://msdn.microsoft.com/library/mt607990.aspx#bkmk_actions - * The following standard CRM Web API functions and actions are invoked: - * - WhoAmI, a basic unbound function - * - GetTimeZoneCodeByLocalizedName, an unbound function that requires parameters - * - CalculateTotalTimeIncident, a bound function - * - WinOpportunity, an unbound action that takes parameters - * - AddToQueue, a bound action that takes parameters - * - In addition, a custom bound and an unbound action contained within the solution are invoked. - */ -Sdk.startSample = function () { - // Initializing. - deleteData = document.getElementsByName("removesampledata")[0].checked; - entitiesToDelete = []; // Reset the array. - - console.log("-- Sample started --"); - - // Create the CRM entry intances used by this sample program. - Sdk.createRequiredRecords() - .then(function () { - console.log("-- Working with functions --"); - // Bound and Unbound functions - // See https://msdn.microsoft.com/library/gg309638.aspx#bkmk_boundAndUnboundFunctions - - console.log("Using functions to look up your full name."); - // Calling a basic unbound function without parameters. - // Retrieves the user's full name using a series of function requests. - // - Call WhoAmI via the Sdk.getUsersFullName function. - // For more info on the WhoAmI function, see https://msdn.microsoft.com/library/mt607925.aspx - return Sdk.getUsersFullName(); - }) - .then(function (fullName) { - console.log("\tYour full name is: %s\n", fullName); - - console.log("Unbound function: GetTimeZoneCodeByLocalizedName"); - // Calling a basic unbound function with no parameters. - // Retrieves the time zone code for the specified time zone. - // - Pass parameters to an unbound function by calling the GetTimeZoneCodeByLocalizedName Function. - // For more info, see https://msdn.microsoft.com/library/mt607644.aspx - var localizedStandardName = "Pacific Standard Time"; - var localeId = 1033; - // Demonstrates best practice of passing parameters. - var uri = [ - "/GetTimeZoneCodeByLocalizedName", - "(LocalizedStandardName=@p1,LocaleId=@p2)", - "?@p1='" + localizedStandardName + "'&@p2=" + localeId, - ]; - - /* This would also work: - var uri = ["/GetTimeZoneCodeByLocalizedName", - "(LocalizedStandardName='" + localizedStandardName + "',LocaleId=" + localeId + ")"]; - */ - - return Sdk.request("GET", uri.join("")); // Send request. - }) - .then(function (request) { - // Returns GetTimeZoneCodeByLocalizedNameResponse ComplexType. - // For more info, see https://msdn.microsoft.com/library/mt607889.aspx - var localizedStandardName = "Pacific Standard Time"; - var timeZoneCode = JSON.parse(request.response).TimeZoneCode; - console.log( - "\tFunction returned time zone %s, with code '%s'.", - localizedStandardName, - timeZoneCode - ); - - console.log("Bound function: CalculateTotalTimeIncident"); - // Calling a basic bound function that requires parameters. - // Retrieve the total time, in minutes, spent on all tasks associated with this incident. - // - Use CalculateTotalTimeIncident to get the total duration of all closed activities. - // For more info, see https://msdn.microsoft.com/library/mt593054.aspx - // Note that in a bound function the full function name includes the - // namespace Microsoft.Dynamics.CRM. Functions that aren’t bound must not use the full name. - return Sdk.request( - "GET", - incidentUri + "/Microsoft.Dynamics.CRM.CalculateTotalTimeIncident()" - ); - }) - .then(function (request) { - // Returns CalculateTotalTimeIncidentResponse ComplexType. - // For more info, see https://msdn.microsoft.com/library/mt607924.aspx - var totalTime = JSON.parse(request.response).TotalTime; //returns 90 - console.log( - "\tFunction returned %s minutes - total duration of tasks associated with the incident.\n", - totalTime - ); - - console.log("-- Working with Actions --"); - // For more info about Action, see https://msdn.microsoft.com/library/mt607600.aspx - - console.log("Unbound Action: WinOpportunity"); - // Calling an unbound action that requires parameters. - // Closes an opportunity and markt it as won. - // - Update the WinOpportunity (created by Sdk.createRequiredRecords()) by closing it as won. - // Use WinOpportunity Action (https://msdn.microsoft.com/library/mt607971.aspx) - // This action does not return a value - var parameters = { - Status: 3, - OpportunityClose: { - subject: "Won Opportunity", - "opportunityid@odata.bind": opportunityUri, - }, - }; - - return Sdk.request("POST", "/WinOpportunity", parameters); - }) - .then(function () { - console.log("\tOpportunity won."); - - console.log("Bound Action: AddToQueue"); - // Calling a bound action that requires parameters. - // Adds a new letter tracking activity to the current user's queue. - // The letter was created as part of the Sdk.createRequiredRecords(). - // - Get a reference to the current user. - // - Get a reference to the letter activity. - // - Add letter to current user's queue via the bound action AddToQueue. - // For more info on AddToQueue, see https://msdn.microsoft.com/library/mt607880.aspx - - return Sdk.request("GET", "/WhoAmI"); - }) - .then(function (request) { - var whoAmIResponse = JSON.parse(request.response); - var myId = whoAmIResponse.UserId; - - // Get a reference to the current user. - return Sdk.request( - "GET", - Sdk.getWebAPIPath() + "/systemusers(" + myId + ")/queueid/$ref" - ); - }) - .then(function (request) { - myQueueUri = JSON.parse(request.response)["@odata.id"]; - - // Get a reference to the letter activity. - return Sdk.request("GET", letterUri + "?$select=activityid"); - }) - .then(function (request) { - var letterActivityId = JSON.parse(request.response).activityid; - - var parameters = { - Target: { - activityid: letterActivityId, - "@odata.type": "Microsoft.Dynamics.CRM.letter", - }, - }; - //Adding the letter to the user's default queue. - return Sdk.request( - "POST", - myQueueUri + "/Microsoft.Dynamics.CRM.AddToQueue", - parameters - ); - }) - .then(function (request) { - var queueItemId = JSON.parse(request.response).QueueItemId; - console.log( - "\tQueueItemId returned from AddToQueue Action: %s\n", - queueItemId - ); - - console.log("-- Working with custom actions --"); - console.log("Custom action: sample_AddNoteToContact"); - // Add a note to an existing contact. - // This operation calls a custom action named sample_AddNoteToContact. - // This custom action is installed when you install this sample's solution to your CRM server. - // - Add a note to an existing contact (e.g.: contactUri) - // - Get the note info and the contact's full name. - // For more info, see https://msdn.microsoft.com/library/mt607600.aspx#bkmk_customActions - //sample_AddNoteToContact custom action parameters - var parameters = { - NoteTitle: "The Title of the Note", - NoteText: "The text content of the note.", - }; - return Sdk.request( - "POST", - contactUri + "/Microsoft.Dynamics.CRM.sample_AddNoteToContact", - parameters - ); - }) - .then(function (request) { - var annotationid = JSON.parse(request.response).annotationid; - var annotationUri = - Sdk.getWebAPIPath() + "/annotations(" + annotationid + ")"; - // The annotation will be deleted with the contact when it is deleted. - - return Sdk.request( - "GET", - annotationUri + - "?$select=subject,notetext&$expand=objectid_contact($select=fullname)" - ); - }) - .then(function (request) { - var annotation = JSON.parse(request.response); - console.log( - "\tA note with the title '%s' and the content '%s' was created and associated with the contact %s.\n", - annotation.subject, - annotation.notetext, - annotation.objectid_contact.fullname - ); - - console.log("Custom action: sample_CreateCustomer"); - // Create a customer of a specified type using the custom action sample_CreateCustomer. - // - Shows how create a valid customer of type "account". - // - Shows how to handle exception from a custom action. - - var parameters = { - CustomerType: "account", - AccountName: CUSTOMERACCOUNTNAME, - }; - - // Create the account. This is a valid request - return Sdk.request("POST", "/sample_CreateCustomer", parameters); - }) - .then(function (request) { - // Retrieve the account we just created - return Sdk.request( - "GET", - "/accounts?$select=name&$filter=name eq '" + CUSTOMERACCOUNTNAME + "'" - ); - }) - .then(function (request) { - var customerAccount = JSON.parse(request.response).value[0]; - var customerAccountId = customerAccount.accountid; - var customerAccountIdUri = - Sdk.getWebAPIPath() + "/accounts(" + customerAccountId + ")"; - entitiesToDelete.push(customerAccountIdUri); - console.log( - "\tAccount customer created with the name '%s'", - customerAccount.name - ); - - // Create a contact but uses invalid parameters - // - Throws an error intentionally - return new Promise(function (resolve, reject) { - var parameters = { - CustomerType: "contact", - AccountName: CUSTOMERACCOUNTNAME, //not valid for contact - // e.g.: ContactFirstName and ContactLastName are required when CustomerType is "contact". - }; - Sdk.request("POST", "/sample_CreateCustomer", parameters) // This request is expected to fail. - .then(function () { - console.log("Not expected."); - reject( - new Error( - "Call to sample_CreateCustomer not expected to succeed." - ) - ); - }) - .catch(function (err) { - //Expected error - console.log("\tExpected custom error: " + err.message); // Custom action can return custom error messages. - resolve(); // Show the error but resolve the thread so sample can continue. - }); - }); - }) - .then(function () { - // House cleaning. - console.log("\n-- Deleting sample data --"); - if (deleteData) { - return Sdk.deleteEntities(); - } else { - console.log("Sample data not deleted."); - } - }) - .catch(function (err) { - console.log("ERROR: " + err.message); - }); -}; - -/** - * @function Sdk.deleteEntities - * @description Deletes the entities created by this sample - */ -Sdk.deleteEntities = function () { - return new Promise(function (resolve, reject) { - entitiesToDelete.unshift(opportunityUri); // Adding to the beginning so it will get deleted before the parent account. - // Re-open the created opportunity so it can be deleted. - Sdk.request("PATCH", opportunityUri, { statecode: 0, statuscode: 2 }) - .then(function () { - // Get the opportunityclose URI so it can be deleted - return Sdk.request( - "GET", - opportunityUri + "/Opportunity_OpportunityClose/$ref" - ); - }) - .then(function (request) { - var opportunityCloseUri = JSON.parse(request.response).value[0][ - "@odata.id" - ]; - - // Adding to the opportunityclose URI it will get deleted before the opportunity. - entitiesToDelete.unshift(opportunityCloseUri); - - /* - These deletions have to be done consecutively in a specific order to avoid a Generic SQL error - which can occur because of relationship behavior actions for the delete event. - */ - - return Sdk.request("DELETE", entitiesToDelete[0]); //opportunityclose - }) - .then(function () { - console.log(entitiesToDelete[0] + " Deleted"); - return Sdk.request("DELETE", entitiesToDelete[1]); //opportunity - }) - .then(function () { - console.log(entitiesToDelete[1] + " Deleted"); - return Sdk.request("DELETE", entitiesToDelete[2]); //account - }) - .then(function () { - console.log(entitiesToDelete[2] + " Deleted"); - return Sdk.request("DELETE", entitiesToDelete[3]); //Fourth Coffee account - }) - .then(function () { - console.log(entitiesToDelete[3] + " Deleted"); - return Sdk.request("DELETE", entitiesToDelete[4]); //Letter - }) - .then(function () { - console.log(entitiesToDelete[4] + " Deleted"); - return Sdk.request("DELETE", entitiesToDelete[5]); //Contact - }) - .then(function () { - console.log(entitiesToDelete[5] + " Deleted"); - return Sdk.request("DELETE", entitiesToDelete[6]); //AccountCustomer - }) - .then(function () { - console.log(entitiesToDelete[6] + " Deleted"); - resolve(); - }) - .catch(function (err) { - reject(new Error("Error from Sdk.deleteEntities: " + err.message)); - }); - }); -}; - -/** - * @function Sdk.getUsersFullName - * @description Retrieves the current user's full name. - * @returns {Promise} - A Promise that returns the full name of the user - */ -Sdk.getUsersFullName = function () { - return new Promise(function (resolve, reject) { - //Use WhoAmI Function (https://msdn.microsoft.com/library/mt607925.aspx) - Sdk.request("GET", "/WhoAmI") - .then(function (request) { - //Returns WhoAmIResponse ComplexType (https://msdn.microsoft.com/library/mt607982.aspx) - var myId = JSON.parse(request.response).UserId; - //Retrieve the systemuser Entity fullname property (https://msdn.microsoft.com/library/mt608065.aspx) - return Sdk.request( - "GET", - "/systemusers(" + myId + ")?$select=fullname" - ); - }) - .then(function (request) { - //Return the users full name - resolve(JSON.parse(request.response).fullname); - }) - .catch(function (err) { - reject("Error in Sdk.getUsersFullName function: " + err.message); - }); - }); +// Add event listener to the basic operations button +document.getElementById("functionsAndActionsButton").onclick = async function () { + runSample(new FunctionsAndActions(client, container)); }; +``` -/** - * @function Sdk.createRequiredRecords - * @description Creates data required by this sample program. - * - Create an account with three 30 minute tasks. - * - Create another account associated with an opportunity. - * - Create a letter. - * - Create a contact. - * @returns {Promise} - resolve the promise if all goes well; reject otherwise. - */ -Sdk.createRequiredRecords = function () { - console.log("-- Creating sample data --"); - // Create a parent account, an associated incident with three - // associated tasks(required for CalculateTotalTimeIncident). - return new Promise(function (resolve, reject) { - Sdk.createAccountWithIncidentAndThree30MinuteClosedTasks() - .then(function (iUri) { - incidentUri = iUri; - - //Create another account and associated opportunity (required for CloseOpportunityAsWon). - return Sdk.createAccountWithOpportunityToWin(); - }) - .then(function (oUri) { - opportunityUri = oUri; - - // Create a letter to use with AddToQueue action. - var letter = { - description: "Example letter", - }; - return Sdk.request("POST", "/letters", letter); - }) - .then(function (request) { - letterUri = request.getResponseHeader("OData-EntityId"); - entitiesToDelete.push(letterUri); +The `runSample` function takes an instance of the `FunctionsAndActions` class where the constructor accepts a [DataverseWebAPI.Client](../dataversewebapi-sample-library.md#client-class) instance and a reference to a container to write messages to. - // Create a contact to use with custom action sample_AddNoteToContact - var contact = { - firstname: "Jon", - lastname: "Fogg", - }; - return Sdk.request("POST", "/contacts", contact); - }) - .then(function (request) { - contactUri = request.getResponseHeader("OData-EntityId"); - entitiesToDelete.push(contactUri); +:::code language="javascript" source="~/../PowerApps-Samples/dataverse/webapi/JS/SPASample/src/scripts/index.js" id="runSample"::: - resolve(); - }) - .catch(function (err) { - reject("Error in Sdk.createRequiredRecords function: " + err.message); - }); - }); -}; +## FunctionsAndActions.js -/** - * @function Sdk.createAccountwithIncidentAndThree30MinuteClosedTasks - * @description Create an account and associate three 30 minute tasks. Close the tasks. - * @returns {Promise} - A Promise that returns the uri of an incident created. - */ -Sdk.createAccountWithIncidentAndThree30MinuteClosedTasks = function () { - return new Promise(function (resolve, reject) { - var iUri; // incidentUri - // Create a parent account for the incident. - Sdk.request("POST", "/accounts", { name: "Fourth Coffee" }) - .then(function (request) { - // Capture the URI of the created account so it can be deleted later. - var accountUri = request.getResponseHeader("OData-EntityId"); - entitiesToDelete.push(accountUri); - // Define an incident associated with the account with three related tasks. - // Each task has a 30 minute duration. - var incident = { - title: "Sample Case", - "customerid_account@odata.bind": accountUri, - Incident_Tasks: [ - { - subject: "Task 1", - actualdurationminutes: 30, - }, - { - subject: "Task 2", - actualdurationminutes: 30, - }, - { - subject: "Task 3", - actualdurationminutes: 30, - }, - ], - }; - // Create the incident and related tasks. - return Sdk.request("POST", "/incidents", incident); - }) - .then(function (request) { - iUri = request.getResponseHeader("OData-EntityId"); +This sample is different from others because it installs a managed solution that contains a bound function defined by a Custom API named `sample_IsSystemAdmin` included in a managed solution named `IsSystemAdminFunction`. The `IsSystemAdminFunction_1_0_0_0_managed.js` library provides the base64 encoded string value that represents the `IsSystemAdminFunction_1_0_0_0_managed.zip` solution file. The private `#installIsSystemAdminFunctionSolution` method uses this data with the [ImportSolution Action](/power-apps/developer/data-platform/webapi/reference/importsolution) to create this `sample_IsSystemAdmin` function. - // Retrieve references to the tasks created. - return Sdk.request("GET", iUri + "/Incident_Tasks/$ref"); - }) - .then(function (request) { - // Capture the URL for the three tasks in this array. - var taskReferences = []; - JSON.parse(request.response).value.forEach(function (tr) { - taskReferences.push(tr["@odata.id"]); - }); - // An array to hold a set of promises. - var promises = []; - // The data to use to update the tasks so that they are closed. - var update = { - statecode: 1, //Completed - statuscode: 5, //Completed - }; - // Fill the array with promises - taskReferences.forEach(function (tr) { - promises.push(Sdk.request("PATCH", tr, update)); - }); - // When all the promises resolve, return a promise. - return Promise.all(promises); - }) - .then(function () { - // Return the incident URI to the calling code. - resolve(iUri); - }) - .catch(function (err) { - // Differentiate the message for any error returned by this function. - reject( - new Error( - "ERROR in Sdk.createAccountwithIncidentAndThree30MinuteClosedTasks function: " + - err.message - ) - ); - }); - }); -}; +[Learn more about the IsSystemAdmin custom API sample](../../org-service/samples/issystemadmin-customapi-sample-plugin.md) -/** - * @function Sdk.createAccountwithOpportunityToWin - * @description Create an account and an associated opportunity. - * @returns {Promise} - A Promise that returns the uri of an opportunity. - */ -Sdk.createAccountWithOpportunityToWin = function () { - return new Promise(function (resolve, reject) { - var accountUri; - var account = { - name: "Sample Account for WebAPIFunctionsAndActions sample", - opportunity_customer_accounts: [ - { - name: "Opportunity to win", - }, - ], - }; - Sdk.request("POST", "/accounts", account) // Create the account. - .then(function (request) { - accountUri = request.getResponseHeader("OData-EntityId"); - entitiesToDelete.push(accountUri); +The following is the `FunctionsAndActions` class that contains the code for this sample. - // Retrieve the opportunity's reference. - return Sdk.request( - "GET", - accountUri + "/opportunity_customer_accounts/$ref" - ); - }) - .then(function (request) { - var oUri = JSON.parse(request.response).value[0]["@odata.id"]; - resolve(oUri); // Return the opportunity's uri. - }) - .catch(function (err) { - reject( - new Error( - "Error in Sdk.createAccountwithOpportunityToWin: " + err.message - ) - ); - }); - }); -}; -``` +:::code language="javascript" source="~/../PowerApps-Samples/dataverse/webapi/JS/SPASample/src/samples/FunctionsAndActions.js"::: ### See also diff --git a/powerapps-docs/developer/data-platform/webapi/samples/image-operations.md b/powerapps-docs/developer/data-platform/webapi/samples/image-operations.md index 2b33e53488..64df8c40f2 100644 --- a/powerapps-docs/developer/data-platform/webapi/samples/image-operations.md +++ b/powerapps-docs/developer/data-platform/webapi/samples/image-operations.md @@ -1,11 +1,10 @@ --- -title: "Sample: Image Operations using Dataverse Web API (Microsoft Dataverse) | Microsoft Learn" # Intent and product brand in a unique string of 43-59 chars including spaces -description: "This sample demonstrates how to perform operations with image columns using the Dataverse Web API." # 115-145 characters including spaces. This abstract displays in the search result. +title: "Sample: Image Operations using Dataverse Web API (Microsoft Dataverse) | Microsoft Learn" +description: "This sample demonstrates how to perform operations with image columns using the Dataverse Web API." ms.date: 01/11/2023 author: mkannapiran ms.author: kamanick ms.reviewer: jdaly -ms.topic: sample search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/webapi/samples/media/web-api-basic-operations-output.png b/powerapps-docs/developer/data-platform/webapi/samples/media/web-api-basic-operations-output.png deleted file mode 100644 index 9941a25067..0000000000 Binary files a/powerapps-docs/developer/data-platform/webapi/samples/media/web-api-basic-operations-output.png and /dev/null differ diff --git a/powerapps-docs/developer/data-platform/webapi/samples/query-data-client-side-javascript.md b/powerapps-docs/developer/data-platform/webapi/samples/query-data-client-side-javascript.md index d7d7874bd7..40c85ca5ca 100644 --- a/powerapps-docs/developer/data-platform/webapi/samples/query-data-client-side-javascript.md +++ b/powerapps-docs/developer/data-platform/webapi/samples/query-data-client-side-javascript.md @@ -1,774 +1,63 @@ --- title: "Web API Query Data Sample (Client-side JavaScript) | Microsoft Docs" description: "Learn how to perform basic query requests using the Microsoft Dataverse Web API and client-side JavaScript." -ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +ms.date: 03/22/2025 +author: JimDaly +ms.author: jdaly ms.reviewer: jdaly search.audienceType: - developer contributors: - JimDaly + - Mattp123 --- # Web API Query Data Sample (Client-side JavaScript) -[!INCLUDE[cc-terminology](../../includes/cc-terminology.md)] +This sample contains code that demonstrates how to basic query requests using client-side JavaScript to perform the set of operations described by the [Web API Basic Operations Sample](../web-api-basic-operations-sample.md). -This sample demonstrates how to perform basic query requests using the Microsoft Dataverse Web API using client-side JavaScript. +This code uses the [DataverseWebAPI.js sample library](../dataversewebapi-sample-library.md) and is designed to run in the context of a [Single Page Application (SPA)](https://developer.mozilla.org/docs/Glossary/SPA) sample available on GitHub. [Learn more about the sample application](../web-api-samples-client-side-javascript.md) -> [!NOTE] -> This sample implements the operations detailed in the [Web API Query Data Sample](../web-api-query-data-sample.md) and uses the common client-side JavaScript constructs described in [Web API Samples (Client-side JavaScript)](../web-api-samples-client-side-javascript.md) - - +[!INCLUDE [cc-web-api-spa-javascript-code-sample-note](../../includes/cc-web-api-spa-javascript-code-sample-note.md)] ## Prerequisites -To run this sample, the following is required: - -- Access to Dataverse environment. -- A user account with privileges to import solutions and perform CRUD operations, typically a system administrator or system customizer security role. - - - -## Run this sample - -To run this sample, download the solution package from [here](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/webapi/JS/WebAPIQueryData). Extract the contents of the sample and locate the `WebAPIQueryData_1_0_0_0_managed.zip` managed solution file. Import the managed solution into your Dataverse organization and run the sample. For instructions on how to import the sample solution, see [Web API Samples (Client-side JavaScript)](../web-api-samples-client-side-javascript.md). - - - -## Code sample - -This sample includes two web resources: - -- [WebAPIQuery.html](#bkmk_WebAPIQuery) -- [WebAPIQuery.js](#bkmk_WebAPIQueryJS) - - - -### WebAPIQuery.html - -The WebAPIQuery.html web resource provides the context in which the JavaScript code will run. - -```html - - - - Microsoft CRM Web API Query Example - - - - - - - - -

Microsoft CRM Web API Query Example

-

- This page demonstrates the CRM Web API's Query operations using - JavaScript. -

- -

Instructions

-

- Choose your preferences and run the JavaScript code. Use your browser's - developer tools to view the output written to the console (e.g.: in IE 11 - or Microsoft Edge, press F12 to load the Developer Tools). -

-
-

- Remove sample data (Choose whether you want to delete sample data - created during this execution): -
- Yes - No -

- -
- - -``` - - - -### WebAPIQuery.js - -The WebAPIQuery.js web resource is the JavaScript library that defines the operations this sample performs. +This sample starts when the user selects a button that triggers the following event handler: ```javascript -"use strict"; -var Sdk = window.Sdk || {}; -/** - * @function getClientUrl - * @description Get the client URL. - * @returns {string} The client URL. - */ -Sdk.getClientUrl = function () { - var context; - // GetGlobalContext defined by including reference to - // ClientGlobalContext.js.aspx in the HTML page. - if (typeof GetGlobalContext != "undefined") - { context = GetGlobalContext(); } - else - { - if (typeof Xrm != "undefined") { - // Xrm.Page.context defined within the Xrm.Page object model for form scripts. - context = Xrm.Page.context; - } - else { throw new Error("Context is not available."); } - } - return context.getClientUrl(); -} - -// Global variables. -var entitiesToDelete = []; // Entity URIs to be deleted (if user chooses to delete sample data) -var deleteData = true; // Delete data by default unless user chooses not to delete. -var clientUrl = Sdk.getClientUrl(); // e.g.: https://org.crm.dynamics.com -var webAPIPath = "/api/data/v8.1"; // Path to the web API. -var account1Uri; // e.g.: Contoso Inc (sample) -var contact1Uri; // e.g.: Yvonne McKey (sample) -var page2Uri; // URI of next page in pagination sample. - -// Entity properties to select in a request. -var contactProperties = ["fullname", "jobtitle", "annualincome"]; -var accountProperties = ["name"]; -var taskProperties = ["subject", "description"]; - -/** - * @function request - * @description Generic helper function to handle basic XMLHttpRequest calls. - * @param {string} action - The request action. String is case-sensitive. - * @param {string} uri - An absolute or relative URI. Relative URI starts with a "/". - * @param {object} data - An object representing an entity. Required for create and update action. - * @param {boolean} formattedValue - If "true" then include formatted value; "false" otherwise. - * For more info on formatted value, see: - * https://msdn.microsoft.com/library/gg334767.aspx#bkmk_includeFormattedValues - * @param {number} maxPageSize - Indicate the page size. Default is 10 if not defined. - * @returns {Promise} - A Promise that returns either the request object or an error object. - */ -Sdk.request = function (action, uri, data, formattedValue, maxPageSize) { - if (!RegExp(action, "g").test("POST PATCH PUT GET DELETE")) { // Expected action verbs. - throw new Error("Sdk.request: action parameter must be one of the following: " + - "POST, PATCH, PUT, GET, or DELETE."); - } - if (!typeof uri === "string") { - throw new Error("Sdk.request: uri parameter must be a string."); - } - if ((RegExp(action, "g").test("POST PATCH PUT")) && (data === null || data === undefined)) { - throw new Error("Sdk.request: data parameter must not be null for operations that create or modify data."); - } - if (maxPageSize === null || maxPageSize === undefined) { - maxPageSize = 10; // Default limit is 10 entities per page. - } - - // Construct a fully qualified URI if a relative URI is passed in. - if (uri.charAt(0) === "/") { - uri = clientUrl + webAPIPath + uri; - } - - return new Promise(function (resolve, reject) { - var request = new XMLHttpRequest(); - request.open(action, encodeURI(uri), true); - request.setRequestHeader("OData-MaxVersion", "4.0"); - request.setRequestHeader("OData-Version", "4.0"); - request.setRequestHeader("Accept", "application/json"); - request.setRequestHeader("Content-Type", "application/json; charset=utf-8"); - request.setRequestHeader("Prefer", "odata.maxpagesize=" + maxPageSize); - if (formattedValue) { - request.setRequestHeader("Prefer", - "odata.include-annotations=OData.Community.Display.V1.FormattedValue"); - } - request.onreadystatechange = function () { - if (this.readyState === 4) { - request.onreadystatechange = null; - switch (this.status) { - case 200: // Success with content returned in response body. - case 204: // Success with no content returned in response body. - resolve(this); - break; - default: // All other statuses are unexpected so are treated like errors. - var error; - try { - error = JSON.parse(request.response).error; - } catch (e) { - error = new Error("Unexpected Error"); - } - reject(error); - break; - } - } - }; - request.send(JSON.stringify(data)); - }); +// Add event listener to the basic operations button +document.getElementById("queryDataButton").onclick = async function () { + runSample(new QueryDataSample(client, container)); }; +``` -/** - * @funnction output - * @description Generic helper function to output data to console. - * @param {array} collection - Array of entities. - * @param {string} label - Text label for what the collection contains. - * @param {array} properties - Array of properties appropriate for the collection. - */ -Sdk.output = function (collection, label, properties) { - console.log(label); - collection.forEach(function (row, i) { - var prop = []; - properties.forEach(function (p) { - var f = p + "@OData.Community.Display.V1.FormattedValue"; - prop.push((row[f] ? row[f] : row[p])); // Get formatted value if one exists for this property. - }) - console.log("\t%s) %s", i + 1, prop.join(", ")); - }); -} - -/** - * @function startSample - * @description Runs the sample. - * This sample demonstrates basic query operations. - * Results are sent to the debugger's console window. - */ -Sdk.startSample = function () { - // Initializing... - deleteData = document.getElementsByName("removesampledata")[0].checked; - entitiesToDelete = []; //Reset the array. - account1Uri = ""; - contact1Uri = ""; - page2Uri = ""; - - console.log("-- Sample started --"); - console.log("Create sample data:"); - // Add some data to the CRM server so we can query against it. - // Using Deep Insert, we create all the sample data in one request. - // Data structure: - // Accounts - // |--- primarycontactid - // |--- Contact_Tasks (3 tasks) - // |--- Account_Tasks (3 tasks) - // |--- contact_customer_accounts (9 child contacts, each with 3 tasks) - // |--- Contacts - // |--- Contact_Tasks - // - var sampleData = { - "name": "Contoso, Ltd. (sample)", - "primarycontactid": { - "firstname": "Yvonne", "lastname": "McKay (sample)", "jobtitle": "Coffee Master", - "annualincome": 45000, "Contact_Tasks": [ - { "subject": "Task 1", "description": "Task 1 description" }, - { "subject": "Task 2", "description": "Task 2 description" }, - { "subject": "Task 3", "description": "Task 3 description" } - ] - }, "Account_Tasks": [ - { "subject": "Task 1", "description": "Task 1 description" }, - { "subject": "Task 2", "description": "Task 2 description" }, - { "subject": "Task 3", "description": "Task 3 description" } - ], - "contact_customer_accounts": [ - { - "firstname": "Susanna", "lastname": "Stubberod (sample)", "jobtitle": "Senior Purchaser", - "annualincome": 52000, "Contact_Tasks": [ - { "subject": "Task 1", "description": "Task 1 description" }, - { "subject": "Task 2", "description": "Task 2 description" }, - { "subject": "Task 3", "description": "Task 3 description" } - ] - }, - { - "firstname": "Nancy", "lastname": "Anderson (sample)", "jobtitle": "Activities Manager", - "annualincome": 55500, "Contact_Tasks": [ - { "subject": "Task 1", "description": "Task 1 description" }, - { "subject": "Task 2", "description": "Task 2 description" }, - { "subject": "Task 3", "description": "Task 3 description" } - ] - }, - { - "firstname": "Maria", "lastname": "Cambell (sample)", "jobtitle": "Accounts Manager", - "annualincome": 31000, "Contact_Tasks": [ - { "subject": "Task 1", "description": "Task 1 description" }, - { "subject": "Task 2", "description": "Task 2 description" }, - { "subject": "Task 3", "description": "Task 3 description" } - ] - }, - { - "firstname": "Nancy", "lastname": "Anderson (sample)", "jobtitle": "Logistics Specialist", - "annualincome": 63500, "Contact_Tasks": [ - { "subject": "Task 1", "description": "Task 1 description" }, - { "subject": "Task 2", "description": "Task 2 description" }, - { "subject": "Task 3", "description": "Task 3 description" } - ] - }, - { - "firstname": "Scott", "lastname": "Konersmann (sample)", "jobtitle": "Accounts Manager", - "annualincome": 38000, "Contact_Tasks": [ - { "subject": "Task 1", "description": "Task 1 description" }, - { "subject": "Task 2", "description": "Task 2 description" }, - { "subject": "Task 3", "description": "Task 3 description" } - ] - }, - { - "firstname": "Robert", "lastname": "Lyon (sample)", "jobtitle": "Senior Technician", - "annualincome": 78000, "Contact_Tasks": [ - { "subject": "Task 1", "description": "Task 1 description" }, - { "subject": "Task 2", "description": "Task 2 description" }, - { "subject": "Task 3", "description": "Task 3 description" } - ] - }, - { - "firstname": "Paul", "lastname": "Cannon (sample)", "jobtitle": "Ski Instructor", - "annualincome": 68500, "Contact_Tasks": [ - { "subject": "Task 1", "description": "Task 1 description" }, - { "subject": "Task 2", "description": "Task 2 description" }, - { "subject": "Task 3", "description": "Task 3 description" } - ] - }, - { - "firstname": "Rene", "lastname": "Valdes (sample)", "jobtitle": "Data Analyst III", - "annualincome": 86000, "Contact_Tasks": [ - { "subject": "Task 1", "description": "Task 1 description" }, - { "subject": "Task 2", "description": "Task 2 description" }, - { "subject": "Task 3", "description": "Task 3 description" } - ] - }, - { - "firstname": "Jim", "lastname": "Glynn (sample)", "jobtitle": "Senior International Sales Manager", - "annualincome": 81400, "Contact_Tasks": [ - { "subject": "Task 1", "description": "Task 1 description" }, - { "subject": "Task 2", "description": "Task 2 description" }, - { "subject": "Task 3", "description": "Task 3 description" } - ] - } - ] - }; - - var uri = "/accounts"; // A relative URI to the account entity. - Sdk.request("POST", uri, sampleData) // Adding sample data so we can query against it. - .then(function (request) { - // Process request. - account1Uri = request.getResponseHeader("OData-EntityId"); - entitiesToDelete.push(account1Uri); // To delete later. - console.log("Account 'Contoso, Ltd. (sample)' created with 1 primary contact and 9 associated contacts."); - - // Get primary contact info. - // Most queries are done using this contact. - var uri = account1Uri + "/primarycontactid/$ref"; // Request for the URI only. - return Sdk.request("GET", uri); - }) - .then(function (request) { - contact1Uri = JSON.parse(request.response)["@odata.id"]; - entitiesToDelete.push(contact1Uri); // To delete later. - console.log("Has primary contact 'Yvonne McKay (sample)' with URI: %s\n", contact1Uri); - - // Basic query: - // Query using $select option against a contact entity to get the properties you want. - // For performance best practice, always use $select otherwise all properties are returned. - console.log("-- Basic Query --"); - var query = "?$select=" + contactProperties.join(); // Array defined in the global scope. - return Sdk.request("GET", contact1Uri + query, null, true); - }) - .then(function (request) { - var contact1 = JSON.parse(request.response); - console.log("Contact basic info:\n\tFullname: '%s'\n\tJobtitle: '%s'\n\tAnnualincome: '%s' (unformatted)", - contact1.fullname, contact1.jobtitle, contact1.annualincome); - console.log("\tAnnualincome: %s (formatted)\n", - contact1["annualincome@OData.Community.Display.V1.FormattedValue"]); - - // Filter criteria: - // Applying filters to get targeted data. - // 1) Using standard query functions (e.g.: contains, endswith, startswith) - // 2) Using CRM query functions (e.g.: LastXhours, Last7Days, Today, Between, In, ...) - // 3) Using filter operators and logical operators (e.g.: eq, ne, gt, and, or, etc…) - // 4) Set precedence using parenthesis (e.g.: ((criteria1) and (criteria2)) or (criteria3) - // For more info, see: https://msdn.microsoft.com/library/gg334767.aspx#bkmk_filter - console.log("-- Filter Criteria --"); - - // Filter 1: Using standard query functions to filter results. - // In this operation, we will query for all contacts with fullname containing the string "(sample)". - var filter = "&$filter=contains(fullname,'(sample)')"; - var query = "?$select=" + contactProperties.join() + filter; - return Sdk.request("GET", "/contacts" + query, null, true); - }) - .then(function (request) { - var collection = JSON.parse(request.response).value; - Sdk.output(collection, "Contacts filtered by fullname containing '(sample)':", contactProperties); - - // Filter 2: Using CRM query functions to filter results. - // In this operation, we will query for all contacts that was created in the last hour. - // For complete list of CRM query functions, see: - // https://msdn.microsoft.com/library/mt607843.aspx - var filter = "&$filter=Microsoft.Dynamics.CRM.LastXHours(PropertyName='createdon',PropertyValue='1')"; - var query = "?$select=" + contactProperties.join() + filter; - return Sdk.request("GET", "/contacts" + query, null, true); // Remember page size limit is set to 10. - }) - .then(function(request){ - var collection = JSON.parse(request.response).value; - Sdk.output(collection, "Contacts that were created within the last 1hr:", contactProperties); - - // Filter 3: Using operators - // Building on the previous operation, we will further limit the results by the contact's income. - // For more info on standard filter operators, see: - // https://msdn.microsoft.com/library/gg334767.aspx#bkmk_filter - var filter = "&$filter=contains(fullname,'(sample)') and annualincome gt 55000"; - var query = "?$select=" + contactProperties.join() + filter; - return Sdk.request("GET", "/contacts" + query, null, true); - }) - .then(function (request) { - var collection = JSON.parse(request.response).value; - Sdk.output(collection, "Contacts filtered by fullname and annualincome (<$55,000):", contactProperties); - - // Filter 4: Set precedence using parenthesis. - // Continue building on the previous operation, we will further limit results by job title. - // Parenthesis and the order of filter statements can impact results returned. - var filter = "&$filter=contains(fullname,'(sample)') " + - "and (contains(jobtitle,'senior') or contains(jobtitle,'specialist')) and annualincome gt 55000"; - var query = "?$select=" + contactProperties.join() + filter; - return Sdk.request("GET", "/contacts" + query, null, true); - }) - .then(function (request) { - var collection = JSON.parse(request.response).value; - Sdk.output(collection, "Contacts filtered by fullname, annualincome and jobtitle (Senior or Specialist):", - contactProperties); - - // Order results: - // Filtered results can be order in descending or ascending order. - console.log("\n-- Order Results --"); - var filter = "&$filter=contains(fullname,'(sample)') " + - "&$orderby=jobtitle asc, annualincome desc"; - var query = "?$select=" + contactProperties.join() + filter; - return Sdk.request("GET", "/contacts" + query, null, true); - }) - .then(function (request) { - var collection = JSON.parse(request.response).value; - Sdk.output(collection, "Contacts ordered by jobtitle (Ascending) and annualincome (descending):", - contactProperties); - - // Parameterized Aliases. - // Aliases can be used as parameters in a query. These parameters can be used in $filter and $orderby options. - // Using the previous operation as basis, parameterizing the query will give us the same results. - // For more info, see: https://msdn.microsoft.com/library/gg309638.aspx#bkmk_passParametersToFunctions - console.log("\n-- Parameterized Aliases --"); - var filter = "&$filter=contains(@p1,'(sample)') " + - "&$orderby=@p2 asc, @p3 desc&@p1=fullname&@p2=jobtitle&@p3=annualincome"; - var query = "?$select=" + contactProperties.join() + filter; - return Sdk.request("GET", "/contacts" + query, null, true); - }) - .then(function (request) { - var collection = JSON.parse(request.response).value; - Sdk.output(collection, "Contacts list using parameterized aliases:", contactProperties); - - // Limit records returned. - // To further limit the records returned, use the $top query option. - // Specifying a limit number for $top will return at most that number of results per request. - // Extra results are ignored. - console.log("\n-- Top Results --"); - var filter = "&$filter=contains(fullname,'(sample)')&$top=5"; - var query = "?$select=" + contactProperties.join() + filter; - return Sdk.request("GET", "/contacts" + query, null, true); - }) - .then(function (request) { - var collection = JSON.parse(request.response).value; - Sdk.output(collection, "Contacts top 5 results:", contactProperties); - - // Result count. - // Count the number of results matching the filter criteria. - // 1) Get a count of a collection without the data. - // 2) Get a count along with the data. - // HINT: Use count together with the "odata.maxpagesize" to calculate the number of pages in the query. - // NOTE: CRM has a max record limit of 5000 records per response. - console.log("\n-- Result Count --"); - return Sdk.request("GET", "/contacts/$count"); // Count is returned in response body. - }) - .then(function (request) { - console.log("The contacts collection has %s contacts.", request.response); // Count maximum is 5000. - - // 2) Get filtered result with a count - var filter = "&$filter=contains(jobtitle,'senior') or contains(jobtitle, 'manager')&$count=true"; - var query = "?$select=" + contactProperties.join() + filter; - return Sdk.request("GET", "/contacts" + query, null, true); - }) - .then(function (request) { - var count = JSON.parse(request.response)["@odata.count"]; - console.log("%s contacts have either 'Manager' or 'Senior' designation in their jobtitle.", count); - var collection = JSON.parse(request.response).value; - Sdk.output(collection, "Manager or Senior:", contactProperties); - - // Pagination: - // For large data sets, you can limit the number of records returned per page. - // Then offer a "next page" and "previous page" links for users to browse through all the data. - // NOTE: This is why you should not use $top with maxpagesize. $top will limit results returned - // preventing you from accessing all possible results in the query. - // For example: If your query has 10 entities in the result and you limit your result to $top=5 - // then, you can't get to the remaining 5 results; but with "maxpagesize" (without $top), you can. - // HINT: Save the URI of the current page so users can go "next" and "previous". - console.log("\n-- Pagination --"); - var filter = "&$filter=contains(fullname,'(sample)')&$count=true"; - var query = "?$select=" + contactProperties.join() + filter; - return Sdk.request("GET", "/contacts" + query, null, true, 4); // 4 records per page. - }) - .then(function (request) { - var count = JSON.parse(request.response)["@odata.count"]; - var maxpages = Math.ceil(count / 4); - console.log("Contacts total: %s \tContacts per page: %s.\tOutputting first 2 pages.", count, 4); - var collection = JSON.parse(request.response).value; - Sdk.output(collection, "Page 1 of " + maxpages + ":", contactProperties); - - // Getting the next page. - page2Uri = JSON.parse(request.response)["@odata.nextLink"]; // This URI is already encoded. - return Sdk.request("GET", decodeURI(page2Uri), null, true, 4); // URI re-encoded in the request function. - }) - .then(function (request) { - var count = JSON.parse(request.response)["@odata.count"]; - var maxpages = Math.ceil(count / 4); - var collection = JSON.parse(request.response).value; - Sdk.output(collection, "Page 2 of " + maxpages + ":", contactProperties); - - // Using expand option to retrieve additional information. - // It is common for entities to have associations with other entities in the system and you might want - // to also retrieve this information in the same request. To retrieve information on associated entities, - // use the $expand query option on navigation properties. - // 1) Expand using single-valued navigation properties (e.g.: via the 'primarycontactid') - // 2) Expand using partner property (e.g.: from contact to account via the 'account_primary_contact') - // 3) Expand using collection-valued navigation properties (e.g.: via the 'contact_customer_accounts') - // 4) Expand using multiple navigation property types in a single request. - // NOTE: Expansions can only go 1 level deep. - // For performance best practice, always use $select statement in an expand option. - console.log("\n-- Expanding Results --"); - - // 1) Expand using single-valued navigation properties (e.g.: via the 'primarycontactid') - var expand = "&$expand=primarycontactid($select=" + contactProperties.join() + ")"; - var query = "?$select=" + accountProperties.join() + expand; - return Sdk.request("GET", account1Uri + query, null, true); - }) - .then(function (request) { - var account = JSON.parse(request.response); - var str = "Account '%s' has the following primary contact person:\n\t" + - "Fullname: '%s' \n\tJobtitle: '%s' \n\tAnnualincome: '%s'"; - console.log(str, account.name, - account.primarycontactid.fullname, - account.primarycontactid.jobtitle, - account.primarycontactid.annualincome); - - // 2) Expand using partner property (e.g.: from contact to account via the 'account_primary_contact') - var expand = "&$expand=account_primary_contact($select=" + accountProperties.join() + ")"; - var query = "?$select=" + contactProperties.join() + expand; - return Sdk.request("GET", contact1Uri + query, null, true); - }) - .then(function (request) { - var contact = JSON.parse(request.response); - var label = "Contact '" + contact.fullname + "' is the primary contact for the following accounts:"; - Sdk.output(contact.account_primary_contact, label, accountProperties); - - // 3) Expand using collection-valued navigation properties (e.g.: via the 'contact_customer_accounts') - var expand = "&$expand=contact_customer_accounts($select=" + contactProperties.join() + ")" - var query = "?$select=" + accountProperties.join() + expand; - return Sdk.request("GET", account1Uri + query, null, true); - }) - .then(function (request) { - var account = JSON.parse(request.response); - var label = "Account '" + account.name + "' has the following contact customers:"; - var collection = account.contact_customer_accounts; - Sdk.output(collection, label, contactProperties); - - // 4) Expand using multiple navigation property types in a single request. - // For example: expanding on primiarycontactid, contact_customer_accounts, and Account_Tasks. - console.log("\n-- Expanding multiple property types in one request -- "); - var expand = "&$expand=primarycontactid($select=" + contactProperties.join() + ")," + - "contact_customer_accounts($select=" + contactProperties.join() + ")," + - "Account_Tasks($select=" + taskProperties.join() + ")"; - var query = "?$select=" + accountProperties.join() + expand; - return Sdk.request("GET", account1Uri + query, null, true); - }) - .then(function (request) { - var account = JSON.parse(request.response); - var label = "Account '%s' has the following primary contact person:\n\t" + - "Fullname: '%s' \n\tJobtitle: '%s' \n\tAnnualincome: '%s'"; - console.log(label, account.name, - account.primarycontactid.fullname, - account.primarycontactid.jobtitle, - account.primarycontactid.annualincome); - - // Handling each collection separately. - label = "Account '" + account.name + "' has the following related contacts:"; - var collection = account.contact_customer_accounts; - Sdk.output(collection, label, contactProperties); - - label = "Account '" + account.name + "' has the following tasks:"; - collection = account.Account_Tasks; - Sdk.output(collection, label, taskProperties); - - // FetchXML - // Using FetchXML to query for all contacts whose fullname contains '(sample)'. - // NOTE: XML string must be URI encoded. - // For more information, see: https://msdn.microsoft.com/library/gg328117.aspx - console.log("\n-- FetchXML -- "); - var fetchXML = " \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - "; - return Sdk.request("GET", "/contacts?fetchXml=" + encodeURIComponent(fetchXML), null, true); - }) - .then(function(request){ - var collection = JSON.parse(request.response).value; - Sdk.output(collection, "Contacts Fetched by fullname containing '(sample)':", contactProperties); - - // FetchXML pagination. - // Noticed the attribute "page=3" and "count=4" in this XML. - // We want to retrieve entities in page 3 but limit results to only 4 entities. - // If the result return zero records for the page, that means we have reached the end of the result set. - // For more info, see: https://msdn.microsoft.com/library/mt607533.aspx#bkmk_useFetchXML - var fetchXML = " \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - "; - return Sdk.request("GET", "/contacts?fetchXml=" + encodeURIComponent(fetchXML), null, true); - }) - .then(function(request){ - var collection = JSON.parse(request.response).value; - if (collection.length == 0) { - console.log("There are no records on this page."); // We have reached the end of our query result set. - } else { - Sdk.output(collection, "Contacts Fetched by fullname containing '(sample)' - Page 3:", contactProperties); - } - - // Using predefined queries. - // 1) Saved query - // 2) User query - // For more info, see: - // https://msdn.microsoft.com/library/mt607533.aspx +The `runSample` function takes an instance of the `QueryDataSample` class where the constructor accepts a [DataverseWebAPI.Client](../dataversewebapi-sample-library.md#client-class) instance and a reference to a container to write messages to. - // Saved Query - // Get the Saved Query "Active Accounts" and display results to output. - console.log("\n-- Saved Query -- "); - var filter = "&$filter=name eq 'Active Accounts'"; - var query = "?$select=name,savedqueryid" + filter; - return Sdk.request("GET", "/savedqueries" + query, null, true); // Requesting for saved query GUID. - }) - .then(function(request){ - // Get the savedqueryid GUID and then use it to request for the entities in that query. - var activeAccount = JSON.parse(request.response).value[0]; // Get the first matched. - var savedqueryid = activeAccount.savedqueryid; - // Request for the saved query results - return Sdk.request("GET", "/accounts?savedQuery=" + savedqueryid, null, true); - }) - .then (function (request){ - var collection = JSON.parse(request.response).value; - Sdk.output(collection, "Saved Query (Active Accounts):", accountProperties); +:::code language="javascript" source="~/../PowerApps-Samples/dataverse/webapi/JS/SPASample/src/scripts/index.js" id="runSample"::: - // User Query - // Create a user query then get it from the server and execute that query for results. - // For more info, see: https://msdn.microsoft.com/library/gg509053.aspx - console.log("\n-- User Query -- "); - var userquery = { - "name": "My User Query", - "description": "User query to display contact info.", - "querytype": 0, - "returnedtypecode": "contact", - "fetchxml": " \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - " - }; - return Sdk.request("POST", "/userqueries", userquery, true); // Create the user query. - }) - .then(function (request){ - // Look up the user query we just created - // then use it to request for the entities in that query. - var filter = "&$filter=name eq 'My User Query'"; - var query = "?$select=name,userqueryid," + filter; - return Sdk.request("GET", "/userqueries" + query, null, true); - }) - .then(function (request) { - var userQuery = JSON.parse(request.response).value[0]; // Get the first matched. - var userqueryid = userQuery.userqueryid; - entitiesToDelete.push(clientUrl + webAPIPath + "/userqueries(" + userqueryid + ")"); +## QueryDataSample.js - // Request for the user query results - return Sdk.request("GET", "/contacts?userQuery=" + userqueryid, null, true); - }) - .then(function (request) { - var collection = JSON.parse(request.response).value; - Sdk.output(collection, "Saved User Query:", contactProperties); +The following is the `QueryDataSample` class that contains the code for this sample. - // House cleaning - deleting sample data - // For more info on cascading delete, see: - // https://msdn.microsoft.com/library/gg309412.aspx#BKMK_CascadingBehavior - console.log("\n-- Deleting Sample Data --"); - if (deleteData) { - for (var i = 0; i < entitiesToDelete.length; i++) { - console.log("Deleting entity: " + entitiesToDelete[i]); - Sdk.request("DELETE", entitiesToDelete[i], null) - .catch(function (err) { - console.log("ERROR: Delete failed --Reason: \n\t" + err.message); - }); - } - } else { - console.log("Sample data not deleted."); - } - }) - .catch(function (error) { - console.log(error.message); - }); +:::code language="javascript" source="~/../PowerApps-Samples/dataverse/webapi/JS/SPASample/src/samples/QueryDataSample.js"::: -} -``` ### See also -[Use the Dataverse Web API](../overview.md)
-[Query Data using the Web API](../query/overview.md)
-[Web API Samples](../web-api-samples.md)
-[Web API Query Data Sample](../web-api-query-data-sample.md)
-[Web API Query Data Sample (C#)](webapiservice-query-data.md)
-[Web API Samples (Client-side JavaScript)](../web-api-samples-client-side-javascript.md)
-[Web API Basic Operations Sample (Client-side JavaScript)](basic-operations-client-side-javascript.md)
-[Web API Conditional Operations Sample (Client-side JavaScript)](conditional-operations-client-side-javascript.md)
+[Use the Dataverse Web API](../overview.md) +[Query Data using the Web API](../query/overview.md) +[Web API Samples](../web-api-samples.md) +[Web API Query Data Sample](../web-api-query-data-sample.md) +[Web API Query Data Sample (C#)](webapiservice-query-data.md) +[Web API Samples (Client-side JavaScript)](../web-api-samples-client-side-javascript.md) +[Web API Basic Operations Sample (Client-side JavaScript)](basic-operations-client-side-javascript.md) +[Web API Conditional Operations Sample (Client-side JavaScript)](conditional-operations-client-side-javascript.md) [Web API Functions and Actions Sample (Client-side JavaScript)](functions-actions-client-side-javascript.md) [!INCLUDE[footer-include](../../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/webapi/samples/toc.yml b/powerapps-docs/developer/data-platform/webapi/samples/toc.yml index 5757fd8b98..a7c31ade19 100644 --- a/powerapps-docs/developer/data-platform/webapi/samples/toc.yml +++ b/powerapps-docs/developer/data-platform/webapi/samples/toc.yml @@ -51,10 +51,14 @@ items: href: basic-operations-powershell.md - name: Metadata Operations href: metadata-operations-powershell.md + - name: Column-level security + href: column-level-security-powershell.md - name: (JavaScript) samples items: - name: About the client-side samples href: ../web-api-samples-client-side-javascript.md + - name: DataverseWebAPI sample library + href: ../dataversewebapi-sample-library.md - name: Basic Operations href: basic-operations-client-side-javascript.md - name: Conditional Operations diff --git a/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-basic-operations.md b/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-basic-operations.md index 96fa967a21..b36dc03e38 100644 --- a/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-basic-operations.md +++ b/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-basic-operations.md @@ -2,8 +2,8 @@ title: "Web API Basic Operations Sample (C#) (Microsoft Dataverse)| Microsoft Docs" description: "This sample demonstrates how to perform basic CRUD (Create, Retrieve, Update, and Delete) and association and dissociation operations on Microsoft Dataverse table rows, using the Dataverse Web API with the WebAPIService class library." ms.date: 08/29/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-conditional-operations.md b/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-conditional-operations.md index 68af30620e..61ece2aa9b 100644 --- a/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-conditional-operations.md +++ b/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-conditional-operations.md @@ -2,8 +2,8 @@ title: "Web API Conditional Operation sample (C#) (Microsoft Dataverse)| Microsoft Docs" description: "This sample shows how to perform conditional message operations when accessing table rows of the Microsoft Dataverse." ms.date: 09/02/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-functions-and-actions.md b/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-functions-and-actions.md index 67a00bad27..d3073b633b 100644 --- a/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-functions-and-actions.md +++ b/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-functions-and-actions.md @@ -2,8 +2,8 @@ title: "Web API Functions and Actions Sample (C#) (Microsoft Dataverse)| Microsoft Docs" description: "This sample demonstrates how to call bound and unbound functions and actions, including custom actions, using the Microsoft Dataverse Web API and C#." ms.date: 09/02/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-parallel-operations.md b/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-parallel-operations.md index f09155b4d5..be2cb51711 100644 --- a/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-parallel-operations.md +++ b/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-parallel-operations.md @@ -2,8 +2,8 @@ title: "Web API WebApiService Parallel Operations Sample (C#) (Microsoft Dataverse)| Microsoft Docs" description: "This sample demonstrates sending requests in parallel using the .NET Task Parallel Library (TPL)." ms.date: 09/02/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-query-data.md b/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-query-data.md index 6242b29c16..7754d85cb6 100644 --- a/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-query-data.md +++ b/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-query-data.md @@ -2,8 +2,8 @@ title: "Web API Query Data sample (C#) (Microsoft Dataverse)| Microsoft Docs" description: "This sample demonstrates how to query data of Microsoft Dataverse entity instances, using the Dataverse Web API along with the WebApiService class." ms.date: 03/28/2023 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-tpl-dataflow-parallel-operations.md b/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-tpl-dataflow-parallel-operations.md index 7c71ff918d..cb762ecad2 100644 --- a/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-tpl-dataflow-parallel-operations.md +++ b/powerapps-docs/developer/data-platform/webapi/samples/webapiservice-tpl-dataflow-parallel-operations.md @@ -2,8 +2,8 @@ title: "Web API Parallel Operations with TPL Dataflow components Sample (C#) (Microsoft Dataverse)| Microsoft Docs" description: "This sample demonstrates using Task Parallel Library (TPL) dataflow components with asynchronous requests." ms.date: 09/02/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/samples/webapiservice.md b/powerapps-docs/developer/data-platform/webapi/samples/webapiservice.md index 9e47a26e73..2f45740ffa 100644 --- a/powerapps-docs/developer/data-platform/webapi/samples/webapiservice.md +++ b/powerapps-docs/developer/data-platform/webapi/samples/webapiservice.md @@ -2,8 +2,8 @@ title: "WebApiService class library (C#) (Microsoft Dataverse) | Microsoft Docs" description: "This sample .NET 6.0 class library project that demonstrates several important capabilities that you should include when you use the Dataverse Web API" ms.date: 08/29/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/update-delete-entities-using-web-api.md b/powerapps-docs/developer/data-platform/webapi/update-delete-entities-using-web-api.md index b4e124d95f..e4108bcd2e 100644 --- a/powerapps-docs/developer/data-platform/webapi/update-delete-entities-using-web-api.md +++ b/powerapps-docs/developer/data-platform/webapi/update-delete-entities-using-web-api.md @@ -2,8 +2,8 @@ title: "Update and delete table rows using the Web API (Microsoft Dataverse)| Microsoft Docs" description: "Read how to perform update and delete operations on tables using the Web API" ms.date: 07/22/2023 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/use-web-api-actions.md b/powerapps-docs/developer/data-platform/webapi/use-web-api-actions.md index 103cf81cd7..614ac0a067 100644 --- a/powerapps-docs/developer/data-platform/webapi/use-web-api-actions.md +++ b/powerapps-docs/developer/data-platform/webapi/use-web-api-actions.md @@ -2,8 +2,8 @@ title: "Use Web API actions (Microsoft Dataverse)| Microsoft Docs" description: "Actions are reusable operations that can be performed using the Web API. Actions are used with a POST request to modify data on Microsoft Dataverse." ms.date: 07/22/2023 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/use-web-api-functions.md b/powerapps-docs/developer/data-platform/webapi/use-web-api-functions.md index ad9f62b30c..351bf50bd2 100644 --- a/powerapps-docs/developer/data-platform/webapi/use-web-api-functions.md +++ b/powerapps-docs/developer/data-platform/webapi/use-web-api-functions.md @@ -3,8 +3,8 @@ title: Use Web API functions description: Learn how to use functions, which are reusable operations used with a GET request to retrieve data from Microsoft Dataverse Web API. ms.topic: how-to ms.date: 08/29/2024 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/web-api-actions.md b/powerapps-docs/developer/data-platform/webapi/web-api-actions.md index ffee8243f6..95549826d2 100644 --- a/powerapps-docs/developer/data-platform/webapi/web-api-actions.md +++ b/powerapps-docs/developer/data-platform/webapi/web-api-actions.md @@ -2,8 +2,8 @@ title: "Web API Actions (Microsoft Dataverse)| Microsoft Docs" description: "Describes OData Action elements defined for the Dataverse Web API." ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.service: powerapps applies_to: diff --git a/powerapps-docs/developer/data-platform/webapi/web-api-basic-operations-sample.md b/powerapps-docs/developer/data-platform/webapi/web-api-basic-operations-sample.md index 86ea5f4b93..85c6e2884d 100644 --- a/powerapps-docs/developer/data-platform/webapi/web-api-basic-operations-sample.md +++ b/powerapps-docs/developer/data-platform/webapi/web-api-basic-operations-sample.md @@ -1,9 +1,10 @@ --- -title: "Web API basic operations sample (Microsoft Dataverse)| Microsoft Docs" -description: "Code samples that demonstrate how to perform CRUD (Create, Retrieve, Update and Delete) operations using the Web API. The samples are coded using C# and client-side JavaScript." -ms.date: 08/29/2022 -author: MicroSri -ms.author: sriknair +title: "Web API basic operations sample " +description: "Code samples that demonstrate how to perform CRUD (Create, Retrieve, Update, and Delete) operations using the Dataverse Web API. The samples are coded using C#, PowerShell, and client-side JavaScript." +ms.topic: sample +ms.date: 03/22/2025 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer @@ -15,19 +16,21 @@ contributors: [!INCLUDE[cc-terminology](../includes/cc-terminology.md)] -This collection of sample code snippets demonstrate how to perform basic CRUD (Create, Retrieve, Update, and Delete) and associative operations using the Microsoft Dataverse Web API. +This collection of sample code snippets demonstrate how to perform basic CRUD (Create, Retrieve, Update, and Delete) and associative operations using the Microsoft Dataverse Web API. These language specific versions implement the same operations: -- [Web API Basic Operations Sample (C#)](samples/webapiservice-basic-operations.md) +- [Web API Basic Operations Sample (C#)](samples/webapiservice-basic-operations.md) +- [Web API Basic Operations Sample (PowerShell)](samples/basic-operations-powershell.md) +- [Web API Basic Operations Sample (client-side JavaScript)](samples/basic-operations-client-side-javascript.md) -This topic describes a common set of operations implemented by each sample snippet in this group. This topic describes the HTTP requests and responses and text output that each sample will perform without the language specific details. See the language specific descriptions and the individual samples for details about how these operations are performed. +This article describes a common set of operations implemented by each sample snippet in this group. This article describes the HTTP requests and responses and text output that each sample performs without the language specific details. See the language specific descriptions and the individual samples for details about how these operations are performed. ## Demonstrates -This sample is divided into the following sections, containing Dataverse Web API operations which are discussed in greater detail in the specified associated conceptual topics. +This sample is divided into the following sections, containing Dataverse Web API operations which are discussed in greater detail in the specified associated conceptual articles. -|Code section|Associated conceptual topics| +|Code section|Associated conceptual articles| |------------------|----------------------------------| |[Section 1: Basic create and update operations](#bkmk_section1)|[Basic create](create-entity-web-api.md#bkmk_basicCreate)
[Basic update](update-delete-entities-using-web-api.md#bkmk_update)| |[Section 2: Create with association](#bkmk_section2)|[Associate table rows on create](create-entity-web-api.md#associate-table-rows-on-create)| @@ -36,13 +39,13 @@ This sample is divided into the following sections, containing Dataverse Web API |[Section 5: Delete table rows (sample cleanup)](#bkmk_section5)|[Basic delete](update-delete-entities-using-web-api.md#bkmk_delete)| > [!NOTE] -> For brevity, less pertinent HTTP headers have been omitted. The URLs of the records will vary with the base organization address and the ID of the row assigned by your Dataverse server. +> For brevity, less pertinent HTTP headers are omitted. The URLs of the records vary with the base organization address and the ID of the row assigned by your Dataverse server. ## Section 1: Basic create and update operations -This section creates a single contact then performs a series of updates upon that instance. Note that the response header [OData-EntityId](https://docs.oasis-open.org/odata/odata/v4.0/os/part1-protocol/odata-v4.0-os-part1-protocol.html#_Toc372793637) contains the URL to this newly created row, which parenthetically includes the unique ID for this record. +This section creates a single contact then performs a series of updates upon that instance. The response header [OData-EntityId](https://docs.oasis-open.org/odata/odata/v4.0/os/part1-protocol/odata-v4.0-os-part1-protocol.html#_Toc372793637) contains the URL to this newly created row, which parenthetically includes the unique ID for this record. 1. Create a new contact, named Rafel Shillo. @@ -110,9 +113,9 @@ This section creates a single contact then performs a series of updates upon tha Contact 'Rafel Shillo' updated with jobtitle and annual income ``` -1. Retrieve the contact with its set of explicitly initialized properties. The `fullname` is a read-only property that is calculated from the `firstname` and `lastname` properties, which were explicitly initialized when the instance was created. In contrast, the `description` property was not explicitly initialized, so it retains its default value, a `null` string. +1. Retrieve the contact with its set of explicitly initialized properties. The `fullname` is a read-only property that is calculated from the `firstname` and `lastname` properties, which were explicitly initialized when the instance was created. In contrast, the `description` property wasn't explicitly initialized, so it retains its default value, a `null` string. - Note that the response, in addition to the requested values and typical headers, also automatically returns the following types of additional information: + In addition to the requested values and typical headers, the response also automatically returns the following types of additional information: - The primary ID for the current table type, here `contactid`. - An *ETag* value, denoted by the `@odata.etag` key, which identifies the specific version of the resource requested. For more information, see [Perform conditional operations using the Web API](perform-conditional-operations-using-web-api.md). @@ -268,9 +271,9 @@ This section creates a single contact then performs a series of updates upon tha ## Section 2: Create with association -This section creates a new account record named `Contoso, Ltd.` and associates it to an existing contact, `Rafel Shillo`, which was created in [Section 1](#bkmk_section1). This creation and association is performed in a single POST operation. +This section creates a new account record named `Contoso, Ltd.` and associates it to an existing contact, `Rafel Shillo`, which was created in [Section 1](#bkmk_section1). This creation and association is performed in a single POST operation. -1. Create the Contoso, Ltd. account and set its primary contact attribute to the existing contact Rafel Shillo. The `@odata.bind` annotation indicates that an association is being created, here binding the `primarycontactid` single-valued navigation property to an existing contact, Rafel Shillo. +1. Create the Contoso, Ltd. account and set its primary contact attribute to the existing contact Rafel Shillo. The `@odata.bind` annotation indicates that an association is being created, here binding the `primarycontactid` single-valued navigation property to an existing contact, Rafel Shillo. **Request:** @@ -356,11 +359,11 @@ This section creates a new account record named `Contoso, Ltd.` and associates i ## Section 3: Create related table rows (deep insert) -This section demonstrates how to create a table row and related row, in a single POST request. Using this method, all rows are newly created; there are no existing rows to associate with. This approach has two advantages. It is more efficient, replacing multiple simpler creation and association operations with one combined operation. Also, it is atomic, where either the entire operation succeeds and all the related objects are created, or the operation fails and none are created. +This section demonstrates how to create a table row and related row, in a single POST request. When you use this method, all rows are newly created; there are no existing rows to associate with. This approach has two advantages. It's more efficient, replacing multiple simpler creation and association operations with one combined operation. Also, it's atomic, where either the entire operation succeeds and all the related objects are created, or the operation fails and none are created. This section creates an account, its primary contact, and a set of tasks for that contact in one request. -1. Create the account `Fourth Coffee` and its primary contact `Susie Curtis` and their three related tasks in one operation. Note the use of the single-valued `primarycontactid` navigation property and the collection-valued navigation property `Contact_Tasks` to define these relationships, respectively. Single-valued navigational properties take an object value, whereas collection-valued navigation properties take an array value. +1. Create the account `Fourth Coffee` and its primary contact `Susie Curtis` and their three related tasks in one operation. Note the use of the single-valued `primarycontactid` navigation property and the collection-valued navigation property `Contact_Tasks` to define these relationships, respectively. Single-valued navigational properties take an object value, whereas collection-valued navigation properties take an array value. **Request:** @@ -419,7 +422,7 @@ This section creates an account, its primary contact, and a set of tasks for tha Account 'Fourth Coffee created. ``` -1. Selectively retrieve the newly created Fourth Coffee account and its primary contact. An expansion is performed on the single-valued navigation property `primarycontactid`. +1. Selectively retrieve the newly created Fourth Coffee account and its primary contact. An expansion is performed on the single-valued navigation property `primarycontactid`. **Request:** @@ -468,7 +471,7 @@ This section creates an account, its primary contact, and a set of tasks for tha Annual income: $48,000.00 ``` -1. Selectively retrieve the tasks associated with the primary contact retrieved in the previous operation. An expansion is performed on the collection-valued navigation property `Contact_Tasks`. +1. Selectively retrieve the tasks associated with the primary contact retrieved in the previous operation. An expansion is performed on the collection-valued navigation property `Contact_Tasks`. **Request:** @@ -553,7 +556,7 @@ This section creates an account, its primary contact, and a set of tasks for tha ## Section 4: Associate and disassociate existing entities -This section demonstrates how to associate and disassociate existing table rows. Forming an association requires the use of a reference URI and relationship object, which are then sent in a POST request. Disassociating requires sending a DELETE request to the reference URI for that association. First a one-to-many association is formed between a contact and an account. Then a many-to-many association is formed between a competitor and one or more opportunities. +This section demonstrates how to associate and disassociate existing table rows. Forming an association requires the use of a reference URI and relationship object, which are then sent in a POST request. Disassociating requires sending a DELETE request to the reference URI for that association. First a one-to-many association is formed between a contact and an account. Then a many-to-many association is formed between a competitor and one or more opportunities. 1. Add Rafel Shillo as a contact to the account Fourth Coffee using the `contact_customer_accounts` collection-valued navigation property. Note the use of the special key `@odata.id` to specify the associated record. @@ -616,7 +619,7 @@ This section demonstrates how to associate and disassociate existing table rows. Name: Rafel Shillo, Job title: Senior Developer ``` -1. Remove the association that was just created between account Fourth Coffee and contact Rafel Shillo. +1. Remove the association that was created between account Fourth Coffee and contact Rafel Shillo. **Request:** @@ -660,7 +663,7 @@ This section demonstrates how to associate and disassociate existing table rows. OData-EntityId: [Organization Uri]/api/data/v9.2/roles(33dd33dd-ee44-ff55-aa66-77bb77bb77bb) ``` -1. Associate the new security role to your systemuser record. +1. Associate the new security role to your `systemuser` record. **Request:** @@ -725,7 +728,7 @@ This section demonstrates how to associate and disassociate existing table rows. Retrieved role: Example Security Role ``` -1. Dissociate the security role from the from your user record. Note again, that this has the same general syntax used to remove a one-to-many association. +1. Dissociate the security role from your user record. Note again, that this has the same general syntax used to remove a one-to-many association. **Request:** @@ -748,7 +751,7 @@ This section demonstrates how to associate and disassociate existing table rows. ## Section 5: Delete table rows -1. Each element of the collection of row URLs is deleted. The first is a contact record for Rafel Shillo. +1. Each element of the collection of row URLs is deleted. The first is a contact record for Rafel Shillo. **Request:** diff --git a/powerapps-docs/developer/data-platform/webapi/web-api-complex-enum-types.md b/powerapps-docs/developer/data-platform/webapi/web-api-complex-enum-types.md index 7f52af43a4..895bbf5eb6 100644 --- a/powerapps-docs/developer/data-platform/webapi/web-api-complex-enum-types.md +++ b/powerapps-docs/developer/data-platform/webapi/web-api-complex-enum-types.md @@ -2,8 +2,8 @@ title: "Web API Complex and Enumeration types (Microsoft Dataverse)| Microsoft Docs" description: "Describes OData Complex and Enumeration types elements defined for the Dataverse Web API." ms.date: 08/30/2024 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.service: powerapps applies_to: diff --git a/powerapps-docs/developer/data-platform/webapi/web-api-conditional-operations-sample.md b/powerapps-docs/developer/data-platform/webapi/web-api-conditional-operations-sample.md index 54c687db93..14f6050705 100644 --- a/powerapps-docs/developer/data-platform/webapi/web-api-conditional-operations-sample.md +++ b/powerapps-docs/developer/data-platform/webapi/web-api-conditional-operations-sample.md @@ -1,9 +1,10 @@ --- title: "Web API Conditional Operations Sample (Microsoft Dataverse)| Microsoft Docs" description: "This collection of samples demonstrate how to perform operations that are conditionally based upon the version of the table row contained on the Microsoft Dataverse server and/or currently maintained by the client." -ms.date: 09/02/2022 -author: MicroSri -ms.author: sriknair +ms.topic: sample +ms.date: 03/22/2025 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer @@ -22,20 +23,20 @@ This collection of samples demonstrate how to perform operations that are condit The Dataverse Web API follows the conventions of the [OData v4.0](https://www.odata.org/documentation/) protocol, which uses [ETags](https://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part1-protocol/odata-v4.0-errata03-os-part1-protocol-complete.html#_Toc453752236) to implement resource version control. Web API conditional operations depend upon this versioning mechanism. -This topic explains the structure and content of the samples at a higher, language-neutral level. It details the HTTP requests and responses, and the associated program output, where applicable. Review the linked sample topics above to obtain language-specific implementations and related details about how to perform the operations described in this topic. +This article explains the structure and content of the samples at a higher, language-neutral level. It details the HTTP requests and responses, and the associated program output, where applicable. Review the linked sample articles to obtain language-specific implementations and related details about how to perform the operations described in this article. ## Demonstrates -This sample is divided into three principal sections, listed in the following table. Each section contains a set of related Web API operations which are discussed in greater detail in the associated conceptual section of the topic [Perform conditional operations using the Web API](perform-conditional-operations-using-web-api.md) . +This sample is divided into three principal sections, listed in the following table. Each section contains a set of related Web API operations which are discussed in greater detail in the associated conceptual section of the article [Perform conditional operations using the Web API](perform-conditional-operations-using-web-api.md) . -|Code section|Associated conceptual topics| +|Code section|Associated conceptual articles| |------------------|----------------------------------| |[Section 0: Create sample records](#section-0-create-sample-records)|[Create a table row using the Web API](create-entity-web-api.md)| |[Section 1: Conditional GET](#section-1-conditional-get)|[Conditional retrievals](perform-conditional-operations-using-web-api.md#conditional-retrievals)| |[Section 2: Optimistic concurrency on delete and update](#section-2-optimistic-concurrency-on-delete-and-update)|[Apply optimistic concurrency](perform-conditional-operations-using-web-api.md#bkmk_Applyoptimisticconcurrency)
[Limit upsert operations](perform-conditional-operations-using-web-api.md#bkmk_limitUpsertOperations)| |[Section 3: Delete sample records](#section-3-delete-sample-records)|[Basic delete](update-delete-entities-using-web-api.md#basic-delete)
[Execute batch operations using the Web API](execute-batch-operations-using-web-api.md)| -The following sections contain a brief discussion of the Dataverse Web API operations performed, along with the corresponding HTTP messages and associated console output which is the same for each language implementation. For brevity, less pertinent HTTP headers have been omitted. The URIs of the table rows will vary with the base organization address and the ID of the row assigned by your Dataverse server. +The following sections contain a brief discussion of the Dataverse Web API operations performed, the corresponding HTTP messages, and associated console output which is the same for each language implementation. For brevity, less pertinent HTTP headers are omitted. The URIs of the table rows vary with the base organization address and the ID of the row assigned by your Dataverse server. @@ -102,7 +103,7 @@ Created and retrieved the initial account, shown below: This section of the program demonstrates how to perform conditional retrievals in order to optimize network bandwidth and server processing while still maintaining the most current row state on the client. More information: [Conditional retrievals](perform-conditional-operations-using-web-api.md#bkmk_DetectIfChanged) -1. Attempt to retrieve the account `Contoso Ltd.` only if it does *not* match the current version, identified by the initial ETag value that was returned when the account row was created. This condition is represented by the `If-None-Match` header. +1. Attempt to retrieve the account `Contoso Ltd.` only if it *doesn't* match the current version, identified by the initial ETag value that was returned when the account row was created. This condition is represented by the `If-None-Match` header. **Request:** @@ -127,7 +128,7 @@ This section of the program demonstrates how to perform conditional retrievals i Expected outcome: Entity was not modified so nothing was returned. ``` - The response value, `304 NotModified`, indicates that the current table row is the most current, so the server does *not* return the requested row in the response body. + The response value, `304 NotModified`, indicates that the current table row is the most current, so the server *doesn't* return the requested row in the response body. 1. Update the account by modifying its primary telephone number property. @@ -156,7 +157,7 @@ This section of the program demonstrates how to perform conditional retrievals i Modified account record retrieved using ETag: W/"72965013" ``` -1. Re-attempt the same conditional GET operation, again using the original ETag value. This time the operation returns the requested data because the version on the server is different (and newer) than the version identified in the request. As in all table row retrievals, the response includes an ETag header that identifies the current version. +1. Reattempt the same conditional GET operation, again using the original ETag value. This time the operation returns the requested data because the version on the server is different (and newer) than the version identified in the request. As in all table row retrievals, the response includes an ETag header that identifies the current version. **Request:** @@ -208,9 +209,9 @@ This section of the program demonstrates how to perform conditional retrievals i ## Section 2: Optimistic concurrency on delete and update -This section of the program demonstrates how to perform conditional delete and update operations. The most common use for such operations is in implementing an optimistic concurrency approach to row processing in a multi-user environment. More information: [Apply optimistic concurrency](perform-conditional-operations-using-web-api.md#bkmk_Applyoptimisticconcurrency) +This section of the program demonstrates how to perform conditional delete and update operations. The most common use for such operations is in implementing an optimistic concurrency approach to row processing in a multi-user environment. More information: [Apply optimistic concurrency](perform-conditional-operations-using-web-api.md#bkmk_Applyoptimisticconcurrency) -1. Attempt to delete original account if and only if it matches the original version (ETag value). This condition is represented by the `If-Match` header. This operation fails because the account row was updated in the previous section, so as a result, its version was updated on the server. +1. Attempt to delete original account if and only if it matches the original version (ETag value). The `If-Match` header represents this condition. This operation fails because the account row was updated in the previous section, so as a result, its version was updated on the server. **Request:** @@ -245,7 +246,7 @@ This section of the program demonstrates how to perform conditional delete and u Account not deleted using ETag 'W/"72965013"', status code: 'PreconditionFailed'. ``` -1. Attempt to update the account if and only if it matches the original ETag value. Again, this condition is represented by the `If-Match` header and the operation fails for the same reason. +1. Attempt to update the account if and only if it matches the original ETag value. Again, this condition is represented by the `If-Match` header and the operation fails for the same reason. **Request:** @@ -285,7 +286,7 @@ This section of the program demonstrates how to perform conditional delete and u Account not updated using ETag 'W/"72965013"', status code: 'PreconditionFailed'. ``` -1. Re-attempt an update, but instead use the current ETag value obtained from the last row retrieval in the previous section. +1. Reattempt an update, but instead use the current ETag value obtained from the last row retrieval in the previous section. **Request:** @@ -319,7 +320,7 @@ This section of the program demonstrates how to perform conditional delete and u Account successfully updated using ETag: W/"72965025". ``` -1. Confirm the update succeeded by retrieving and outputting the current account state. This uses a basic `GET` request. +1. Confirm the update succeeded by retrieving and outputting the current account state using a `GET` request. **Request:** diff --git a/powerapps-docs/developer/data-platform/webapi/web-api-entitytypes.md b/powerapps-docs/developer/data-platform/webapi/web-api-entitytypes.md index 3661f2a265..49048d26ab 100644 --- a/powerapps-docs/developer/data-platform/webapi/web-api-entitytypes.md +++ b/powerapps-docs/developer/data-platform/webapi/web-api-entitytypes.md @@ -2,8 +2,8 @@ title: Web API EntityTypes description: Learn about OData EntityTypes, which are named structured types with a key. EntityTypes describe the data types available in Dataverse Web API. ms.date: 05/18/2023 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.service: powerapps applies_to: diff --git a/powerapps-docs/developer/data-platform/webapi/web-api-functions-actions-sample.md b/powerapps-docs/developer/data-platform/webapi/web-api-functions-actions-sample.md index 2fb8ea4e53..fb1fd62568 100644 --- a/powerapps-docs/developer/data-platform/webapi/web-api-functions-actions-sample.md +++ b/powerapps-docs/developer/data-platform/webapi/web-api-functions-actions-sample.md @@ -1,9 +1,10 @@ --- title: Web API Functions and Actions Sample description: This collection of code samples demonstrates how to perform bound and unbound functions and actions, including custom actions, using the Microsoft Dataverse Web API. These samples are implemented using client-side JavaScript and C#. +ms.topic: sample ms.date: 09/02/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/web-api-functions.md b/powerapps-docs/developer/data-platform/webapi/web-api-functions.md index 23be1f3b55..02f2652093 100644 --- a/powerapps-docs/developer/data-platform/webapi/web-api-functions.md +++ b/powerapps-docs/developer/data-platform/webapi/web-api-functions.md @@ -2,8 +2,8 @@ title: "Web API Functions (Microsoft Dataverse)| Microsoft Docs" description: "Describes OData Function elements defined for the Dataverse Web API." ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.service: powerapps applies_to: diff --git a/powerapps-docs/developer/data-platform/webapi/web-api-metadata-operations-sample.md b/powerapps-docs/developer/data-platform/webapi/web-api-metadata-operations-sample.md index 8e2b002b88..c014e1d55e 100644 --- a/powerapps-docs/developer/data-platform/webapi/web-api-metadata-operations-sample.md +++ b/powerapps-docs/developer/data-platform/webapi/web-api-metadata-operations-sample.md @@ -1,7 +1,8 @@ --- title: "Web API table schema operations sample (Microsoft Dataverse)| Microsoft Docs" description: "This collection of code samples demonstrates how to perform operations that change the Dataverse data structures." -ms.date: 09/02/2022 +ms.topic: sample +ms.date: 03/22/2025 author: mkannapiran ms.author: kamanick ms.reviewer: jdaly @@ -28,8 +29,8 @@ This sample is divided into the following sections, containing Dataverse Web API |Code section|Associated conceptual and reference articles| |------------------|----------------------------------| |[Section 0: Create Publisher and Solution](#section-0-create-publisher-and-solution)|[Create a table row](create-entity-web-api.md)

| -|[Section 1: Create, Retrieve and Update Table](#section-1-create-retrieve-and-update-table)|[Create and update table definitions](create-update-entity-definitions-using-web-api.md)
| -|[Section 2: Create, Retrieve and Update Columns](#section-2-create-retrieve-and-update-columns)
- [Boolean Column](#boolean-column)
   - [Update Option Values](#update-option-values)
- [DateTime Column](#datetime-column)
- [Decimal Column](#decimal-column)
- [Integer Column](#integer-column)
- [Memo Column](#memo-column)
- [Money Column](#money-column)
- [Picklist Column](#picklist-column)
   - [Add an option to the local optionset](#add-an-option-to-the-local-optionset)
   - [Re-order choice column options](#re-order-choice-column-options)
   - [Delete local option value](#delete-local-option-value)
- [Multi-Select Picklist Column](#multi-select-picklist-column)
- [Insert Status Value](#insert-status-value)|[Create columns](create-update-column-definitions-using-web-api.md#create-columns)
[Retrieving attributes](query-metadata-web-api.md#retrieving-attributes)
[InsertOptionValue Action](xref:Microsoft.Dynamics.CRM.InsertOptionValue)
[OrderOption Action](xref:Microsoft.Dynamics.CRM.OrderOption)
[DeleteOptionValue Action](xref:Microsoft.Dynamics.CRM.DeleteOptionValue)
[InsertStatusValue Action](xref:Microsoft.Dynamics.CRM.InsertStatusValue)| +|[Section 1: Create, Retrieve, and Update Table](#section-1-create-retrieve-and-update-table)|[Create and update table definitions](create-update-entity-definitions-using-web-api.md)
| +|[Section 2: Create, Retrieve, and Update Columns](#section-2-create-retrieve-and-update-columns)
- [Boolean Column](#boolean-column)
   - [Update Option Values](#update-option-values)
- [DateTime Column](#datetime-column)
- [Decimal Column](#decimal-column)
- [Integer Column](#integer-column)
- [Memo Column](#memo-column)
- [Money Column](#money-column)
- [Picklist Column](#picklist-column)
   - [Add an option to the local optionset](#add-an-option-to-the-local-optionset)
   - [Re-order choice column options](#re-order-choice-column-options)
   - [Delete local option value](#delete-local-option-value)
- [Multi-Select Picklist Column](#multi-select-picklist-column)
- [Insert Status Value](#insert-status-value)|[Create columns](create-update-column-definitions-using-web-api.md#create-columns)
[Retrieving attributes](query-metadata-web-api.md#retrieving-attributes)
[InsertOptionValue Action](xref:Microsoft.Dynamics.CRM.InsertOptionValue)
[OrderOption Action](xref:Microsoft.Dynamics.CRM.OrderOption)
[DeleteOptionValue Action](xref:Microsoft.Dynamics.CRM.DeleteOptionValue)
[InsertStatusValue Action](xref:Microsoft.Dynamics.CRM.InsertStatusValue)| |[Section 3: Create and use Global OptionSet](#section-3-create-and-use-global-optionset)|[Create and update choices (option sets)](create-update-optionsets.md)| |[Section 4: Create Customer Relationship](#section-4-create-customer-relationship)|| |[Section 5: Create and retrieve a one-to-many relationship](#section-5-create-and-retrieve-a-one-to-many-relationship)|[Eligibility for relationships](create-update-entity-relationships-using-web-api.md#eligibility-for-relationships)
[Create a one-to-many relationship](create-update-entity-relationships-using-web-api.md#create-a-one-to-many-relationship)
[Querying relationship metadata](query-metadata-web-api.md#querying-relationship-metadata)| @@ -40,7 +41,7 @@ This sample is divided into the following sections, containing Dataverse Web API |[Section 10: Import and Delete managed solution](#section-10-import-and-delete-managed-solution)|[Import solutions](../../../maker/data-platform/import-update-export-solutions.md)| > [!NOTE] -> For brevity, less pertinent HTTP headers have been omitted. The URLs of the records will vary with the base organization address and the IDs set by the Dataverse server. +> For brevity, less pertinent HTTP headers are omitted. The URLs of the records vary with the base organization address and the IDs set by the Dataverse server. ## Section 0: Create Publisher and Solution @@ -81,7 +82,7 @@ This sample is divided into the following sections, containing Dataverse Web API 1. Then create the solution related to the publisher. > [!NOTE] - > Many of the items created or updated in is sample will use the `uniquename` value of this solution with the `MSCRM.SolutionUniqueName` request header so that the changes are included as part of this solution. Some actions have a `SolutionUniqueName` parameter that does the same thing. At the end of this sample this solution will be exported and contain the definitions of all the items created and changed in this sample. + > Many of the items created or updated in is sample use the `uniquename` value of this solution with the `MSCRM.SolutionUniqueName` request header so that the changes are included as part of this solution. Some actions have a `SolutionUniqueName` parameter that does the same thing. At the end of this sample, this solution is exported and contains the definitions of all the items created and changed in this sample. **Request:** @@ -115,11 +116,11 @@ This sample is divided into the following sections, containing Dataverse Web API Created solution Example Solution ``` -## Section 1: Create, Retrieve and Update Table +## Section 1: Create, Retrieve, and Update Table 1. Create the `sample_BankAccount` table. - These properties are required: `SchemaName`, `DisplayName`, `DisplayCollectionName`, `HasNotes`, `HasActivities` and `PrimaryNameAttribute`, which must include the `LogicalName` value of the primary name column. + These properties are required: `SchemaName`, `DisplayName`, `DisplayCollectionName`, `HasNotes`, `HasActivities`, and `PrimaryNameAttribute`, which must include the `LogicalName` value of the primary name column. The table must also include one column in the `Attributes` collection to be the primary name column for the table. That column definition must have `SchemaName`, `MaxLength`, and `DisplayName` values, and `IsPrimaryName` must be set to true. @@ -270,7 +271,7 @@ This sample is divided into the following sections, containing Dataverse Web API - This query also doesn't include an `$expand` to include related data, such as attributes, because related data must be updated separately. > [!NOTE] - > This request and others in this sample use the `Consistency: Strong` header. Use this header when you retrieve metadata definition changes right after you apply them. Metadata changes are cached for performance reasons and a request for a newly created item may return a 404 because it hasn't been cached yet. Caching may take 30 seconds. This header will force the server to read the latest version including your changes. By using this header, you negate the performance gain that caching provides, so you should only use it when in scenarios like this sample where you are retrieving changes you have just made. More information: [HTTP headers > Other headers](compose-http-requests-handle-errors.md#other-headers). + > This request and others in this sample use the `Consistency: Strong` header. Use this header when you retrieve metadata definition changes right after you apply them. Metadata changes are cached for performance reasons and a request for a newly created item might return a 404 because it hasn't been cached yet. Caching might take 30 seconds. This header forces the server to read the latest version including your changes. By using this header, you negate the performance gain that caching provides, so you should only use it when in scenarios like this sample where you're retrieving changes you have made. More information: [HTTP headers > Other headers](compose-http-requests-handle-errors.md#other-headers). **Request:** @@ -1028,13 +1029,13 @@ This sample is divided into the following sections, containing Dataverse Web API Updated the Bank Account table ``` -## Section 2: Create, Retrieve and Update Columns +## Section 2: Create, Retrieve, and Update Columns -This section creates and retrieves a selected group of column definitions. Each of these types are derived from so they share most of the same common properties. However, each derived type has a few special properties. +This section creates and retrieves a selected group of column definitions. Each of these types are derived from the [AttributeMetadata EntityType](xref:Microsoft.Dynamics.CRM.AttributeMetadata) so they share most of the same common properties. However, each derived type has a few special properties. ### Boolean Column -1. Create a Boolean column using . Despite the name, boolean columns have an `OptionSet` property just like choice columns. However, they always have only two options: `TrueOption` with value 1 and `FalseOption` with value 0. +1. Create a Boolean column using [BooleanAttributeMetadata EntityType](xref:Microsoft.Dynamics.CRM.BooleanAttributeMetadata). Despite the name, boolean columns have an `OptionSet` property just like choice columns. However, they always have only two options: `TrueOption` with value 1 and `FalseOption` with value 0. **Request:** @@ -1151,7 +1152,7 @@ This section creates and retrieves a selected group of column definitions. Each 1. Retrieve the Boolean column including `$expand=OptionSet` so that the options can be retrieved. > [!NOTE] - > The URL for this request includes `/Microsoft.Dynamics.CRM.BooleanAttributeMetadata` which performs a cast operation that is required to return any property that is not defined within the . Without this, the `OptionSet` expansion is not possible. + > The URL for this request includes `/Microsoft.Dynamics.CRM.BooleanAttributeMetadata` which performs a cast operation that is required to return any property that isn't defined within the . Without this, the `OptionSet` expansion isn't possible. **Request:** @@ -1420,7 +1421,7 @@ This section creates and retrieves a selected group of column definitions. Each 1. Update the Boolean column. The only changes are to the `DisplayName`, `Description`, and `RequiredLevel` properties, but the entire definition is included because `PUT` is used. > [!NOTE] - > Even though the `OptionSet` property is included in this payload, any changes to the options would not be applied because they are not considered part of the column definition. They must be updated separately and this sample will show you how in following steps. + > Even though the `OptionSet` property is included in this payload, any changes to the options wouldn't be applied because they aren't considered part of the column definition. They must be updated separately and this sample shows you how in following steps. **Request:** @@ -1688,10 +1689,10 @@ This section creates and retrieves a selected group of column definitions. Each #### Update Option Values -Update each of the boolean options using . +Update each of the boolean options using [UpdateOptionValue Action](xref:Microsoft.Dynamics.CRM.UpdateOptionValue) > [!NOTE] -> Here we are applying changes to options in a boolean attribute, but you will use `UpdateOptionValue` for options in any type of column that uses them except `status` columns, where you must use the . +> Here we're applying changes to options in a boolean attribute, but you use `UpdateOptionValue` for options in any type of column that uses them except `status` columns, where you must use the [UpdateStateValue Action](xref:Microsoft.Dynamics.CRM.UpdateStateValue). 1. Change the `TrueOption` value label to 'Up'. @@ -3150,7 +3151,7 @@ Update each of the boolean options using to add a new option to a `statuscode` column. You must specify which `StateCode` it's valid for. +Use [InsertStatusValue Action](xref:Microsoft.Dynamics.CRM.InsertStatusValue) to add a new option to a `statuscode` column. You must specify which `StateCode` it's valid for. > [!NOTE] > Notice that the value returned applies the publisher `customizationoptionvalueprefix` value (72700) automatically. @@ -3983,7 +3984,7 @@ Before you create a relationship using code, you should confirm that the relatio ### Identify Potential Referencing Entities -In the context of a specific table that can be the parmary table in a one-to-many relationship, use the to identify what other tables can be the related to it. +In the context of a specific table that can be the parmary table in a one-to-many relationship, use the [GetValidReferencingEntities Function](xref:Microsoft.Dynamics.CRM.GetValidReferencingEntities) to identify what other tables can be the related to it. **Request:** @@ -4238,8 +4239,8 @@ Created one-to-many relationship: RelationshipDefinitions(66aa66aa-bb77-cc88-dd9 The following request retrieves the relationship created by the previous request. > [!NOTE] -> Because `RelationshipDefinitions` contains both one-to-many and many-to-many relationship definitions, you must include the following in the URL to cast to the type you want to retrieve: `/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata`. -> Otherwise, the value returned will be the and will not include the properties specific to the . +> Because `RelationshipDefinitions` contains both one-to-many and many-to-many relationship definitions, you must include the following cast expression in the URL to cast to the type you want to retrieve: `/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata`. +> Otherwise, the value returned is the [RelationshipMetadataBase EntityType](xref:Microsoft.Dynamics.CRM.RelationshipMetadataBase) and doesn't include the properties specific to the [OneToManyRelationshipMetadata EntityType](xref:Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata). **Request:** @@ -4627,7 +4628,7 @@ Like one-to-many relationships, there are special functions used by the designer ### Identify Potential Entities for N:N relationships -Use the to get a list of tables that can participate in many-to-many relationships. +Use the [GetValidManyToMany Function](xref:Microsoft.Dynamics.CRM.GetValidManyToMany) to get a list of tables that can participate in many-to-many relationships. **Request:** @@ -4889,8 +4890,8 @@ Created Many-to-Many relationship at: RelationshipDefinitions(11bb11bb-cc22-dd33 This request retrieves the many-to-many relationship created by the previous request. > [!NOTE] -> As mentioned above, because `RelationshipDefinitions` contains both one-to-many and many-to-many relationship definitions, you must include the following in the URL to cast to the type you want to retrieve: `/Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata`. -> Otherwise, the value returned will be the and will not include the properties specific to the . +> As mentioned before, because `RelationshipDefinitions` contains both one-to-many and many-to-many relationship definitions, you must include the following cast expression in the URL to cast to the type you want to retrieve: `/Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata`. +> Otherwise, the value returned is the [RelationshipMetadataBase EntityType](xref:Microsoft.Dynamics.CRM.RelationshipMetadataBase) and doesn't include the properties specific to the [ManyToManyRelationshipMetadata EntityType](xref:Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata). **Request:** @@ -5001,7 +5002,7 @@ Retrieved Many-to-Many relationship:sample_sample_BankAccounts_Contacts ## Section 8: Export managed solution -Use the to export the solution as a managed solution. This action includes many switches you can use to include additional information as part of the solution, but in this case, all those options are turned off. More information: [Work with solutions](/power-platform/alm/solution-api) +Use the [ExportSolution Action](xref:Microsoft.Dynamics.CRM.ExportSolution) to export the solution as a managed solution. This action includes many switches you can use to include additional information as part of the solution, but in this case, all those options are turned off. More information: [Work with solutions](/power-platform/alm/solution-api) **Request:** @@ -5050,7 +5051,7 @@ Solution Exported to E:\GitHub\PowerApps-Samples\dataverse\webapi\C#-NETx\Metada ## Section 9: Delete sample records -References to all of the records created in this sample have been added to a list. In this section, all the records created are deleted using a `$batch` operation. +References to all of the records created in this sample were added to a list. In this section, all the records created are deleted using a `$batch` operation. **Request:** diff --git a/powerapps-docs/developer/data-platform/webapi/web-api-navigation-properties.md b/powerapps-docs/developer/data-platform/webapi/web-api-navigation-properties.md index fa7d9faea8..718ae7c24f 100644 --- a/powerapps-docs/developer/data-platform/webapi/web-api-navigation-properties.md +++ b/powerapps-docs/developer/data-platform/webapi/web-api-navigation-properties.md @@ -3,8 +3,8 @@ title: Web API navigation properties description: Learn about OData navigation property elements that are defined for EntityTypes in the Microsoft Dataverse Web API. ms.topic: how-to ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.service: powerapps applies_to: diff --git a/powerapps-docs/developer/data-platform/webapi/web-api-properties.md b/powerapps-docs/developer/data-platform/webapi/web-api-properties.md index effa58f979..48b233a87b 100644 --- a/powerapps-docs/developer/data-platform/webapi/web-api-properties.md +++ b/powerapps-docs/developer/data-platform/webapi/web-api-properties.md @@ -1,10 +1,10 @@ --- title: Web API Properties description: Learn about OData property elements that are defined for EntityTypes in the Microsoft Dataverse Web API. -ms.topic: conceptual +ms.topic: article ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.service: powerapps applies_to: diff --git a/powerapps-docs/developer/data-platform/webapi/web-api-query-data-sample.md b/powerapps-docs/developer/data-platform/webapi/web-api-query-data-sample.md index ad5e2f1bf1..35980005e8 100644 --- a/powerapps-docs/developer/data-platform/webapi/web-api-query-data-sample.md +++ b/powerapps-docs/developer/data-platform/webapi/web-api-query-data-sample.md @@ -1,10 +1,10 @@ --- title: Web API query data sample description: Use this sample code to learn how to query data using the Dataverse Web API. These samples use C# and client-side JavaScript. -ms.date: 04/14/2023 ms.topic: sample -author: MicroSri -ms.author: sriknair +ms.date: 04/14/2023 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer @@ -1125,7 +1125,7 @@ Contacts ordered by jobtitle (Ascending) and annualincome (descending) ## Section 4: Limit and count results -As a best practice, don't return more data than you need. To protect performance, the server returns a maximum of 5,000 table rows per request. +As a best practice, don't return more data than you need. To protect performance, the server returns a maximum of 5,000 standard table rows per request, or 500 rows for elastic tables. To limit the number of results returned, [use the `$top` query option](query/overview.md#limit-the-number-of-rows) or add [`odata.maxpagesize`](#bkmk_filterPagination) in the request header. The `$top` query option returns the top number of rows from the result set and ignores the rest. The `odata.maxpagesize` request header specifies the number of rows to return per page with an `@odata.nextLink` property to get the results of the next page. [Learn more about page results](query/page-results.md). @@ -1238,7 +1238,7 @@ Contacts top 5 results: ### Collection count -If you just want the number of records in a collection, append `/$count` to the collection URL. The maximum value is 5,000. +If you just want the number of records in a collection, append `/$count` to the collection URL. The maximum value is 5,000 for standard tables, 500 for elastic tables. **Request:** @@ -1269,7 +1269,7 @@ The contacts collection has 9 contacts. ### Result count -You can get [the count of rows](query/count-rows.md) from a collection-valued property or a count of matched table rows in a filter. The count tells you the number of possible rows in your result. However, Dataverse returns 5,000 as the maximum count even if the result may have more. +You can get [the count of rows](query/count-rows.md) from a collection-valued property or a count of matched table rows in a filter. The count tells you the number of possible rows in your result. However, Dataverse returns a maximum count even if the result may have more. For standard tables the maximum count is 5,000, 500 for elastic tables. In this example, we build a filter where `jobtitle` contains either `Senior` or `Manager` and we also request a `$count` of the result. The response contains the count in the `@odata.count` property along with the results of the query. diff --git a/powerapps-docs/developer/data-platform/webapi/web-api-samples-client-side-javascript.md b/powerapps-docs/developer/data-platform/webapi/web-api-samples-client-side-javascript.md index dc62f7072b..0f95bb73f8 100644 --- a/powerapps-docs/developer/data-platform/webapi/web-api-samples-client-side-javascript.md +++ b/powerapps-docs/developer/data-platform/webapi/web-api-samples-client-side-javascript.md @@ -1,21 +1,21 @@ --- -title: "Web API Data operations Samples (Client-side JavaScript) (Microsoft Dataverse)| Microsoft Docs" -description: "This article provides a description of various Web API samples that are implemented using client-side JavaScript" -ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +title: "Web API Data operations Samples (Client-side JavaScript)" +description: "This article describes Dataverse Web API samples that are implemented using client-side JavaScript." +ms.topic: sample +ms.date: 03/22/2025 +author: JimDaly +ms.author: jdaly ms.reviewer: jdaly search.audienceType: - developer contributors: - JimDaly + - Mattp123 --- # Web API Data operations Samples (Client-side JavaScript) -[!INCLUDE[cc-terminology](../includes/cc-terminology.md)] - -This article provides common understanding about Web API samples using client-side JavaScript. While each sample focuses on a different aspect of Microsoft Dataverse Web API, they all follow similar process and structure described in this topic. +This article provides common understanding about Microsoft Dataverse Web API samples using client-side JavaScript. While each sample focuses on a different aspect of the Web API, they're presented within a common sample application. @@ -23,143 +23,47 @@ This article provides common understanding about Web API samples using client-si The following samples use the patterns described here: -| Sample | Sample Group | Description | -| -------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Web API Basic Operations Sample (Client-side JavaScript)](samples/basic-operations-client-side-javascript.md) | [Web API Basic Operations Sample](web-api-basic-operations-sample.md) | Demonstrates how to create, retrieve, update, delete, associate and disassociate Dataverse table rows (entity records). | -| [Web API Query Data Sample (Client-side JavaScript)](samples/query-data-client-side-javascript.md) | [Web API Query Data Sample](web-api-query-data-sample.md) | Demonstrates how to use OData v4 query syntax and functions as well as Dataverse query functions. Includes demonstration of working with pre-defined queries and using FetchXML to perform queries. | -| [Web API Conditional Operations Sample (Client-side JavaScript)](samples/conditional-operations-client-side-javascript.md) | [Web API Conditional Operations Sample](web-api-conditional-operations-sample.md) | Demonstrates how to perform conditional operations. The behavior of these operations depends on criteria you specify. | -| [Web API Functions and Actions Sample (Client-side JavaScript)](samples/functions-actions-client-side-javascript.md) | [Web API Functions and Actions Sample](web-api-functions-actions-sample.md) | Demonstrates how to use bound and unbound functions and actions, including custom actions. | +|Sample|Sample Group|Description| +| --- | --- | --- | +| [Web API Basic Operations Sample (Client-side JavaScript)](samples/basic-operations-client-side-javascript.md)| [Web API Basic Operations Sample](web-api-basic-operations-sample.md)| Demonstrates how to create, retrieve, update, delete, associate, and disassociate Dataverse table rows (entity records).| +| [Web API Query Data Sample (Client-side JavaScript)](samples/query-data-client-side-javascript.md)| [Web API Query Data Sample](web-api-query-data-sample.md)| Demonstrates how to use OData v4 query syntax and functions and Dataverse query functions. Includes demonstration of working with predefined queries and using FetchXML to perform queries. | +| [Web API Conditional Operations Sample (Client-side JavaScript)](samples/conditional-operations-client-side-javascript.md) | [Web API Conditional Operations Sample](web-api-conditional-operations-sample.md) | Demonstrates how to perform conditional operations. The behavior of these operations depends on criteria you specify.| +| [Web API Functions and Actions Sample (Client-side JavaScript)](samples/functions-actions-client-side-javascript.md)| [Web API Functions and Actions Sample](web-api-functions-actions-sample.md)| Demonstrates how to use bound and unbound functions and actions, including custom actions.| -## How to download the source code for the sample. - -The source code for each sample is available on [GitHub](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/webapi/JS). The link to download each sample is included in the individual page for that sample. - -After you download the sample, extract the compressed file. Find the solution for each sample within the C# folder because the project is an empty ASP.NET web application project. A Dataverse solution is also provided in the download that you can import and run. - -> [!NOTE] -> Neither Visual Studio or ASP.NET is required to develop client-side JavaScript for Dataverse. However, Visual Studio does provide a good experience for writing JavaScript. - - - -## How to import the Dataverse solution that contains the sample. - -Within each project you will find a Dataverse managed solution file. The name of this file will depend on the sample's project name, but the file name will end with `_managed.zip`. +## How to download the source code for the sample -To import the Dataverse solution to your Dataverse server, do the following: +These samples are implemented as JavaScript classes that run within a SPA application. This application is on [GitHub at PowerApps-Samples/tree/master/dataverse/webapi/JS/SPASample](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/webapi/JS/SPASample). -1. Extract the contents of the downloaded zip file and locate the Dataverse solution file, which will also be a zip file. For example, if you downloaded the `Basic Operations` sample, look for the Dataverse solution zip file with the name `WebAPIBasicOperations\WebAPIBasicOperations_1_0_0_0_managed.zip`. +The source code for each sample is available in the [/src/samples](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/webapi/JS/SPASample/src/samples) folder. You can also view the source code of the samples in the respective article. -2. In the Dataverse UI, go to **Settings > Solutions**. This page lists all solutions on your Dataverse server. After you finished importing this solution, the solution name for that sample will appear in this list (e.g.: **Web API Basics Operations**). - -3. Select **Import** and follow the instructions on the import dialog to complete this action. ## How to run the sample to see the script in action -The sample program runs as a web resource within Dataverse. The imported solution provides a configuration page that gives you an option to keep or delete sample data and a button to start the sample program. - -To run the sample, do the following: - -1. From the **All Solutions** page in Dataverse, select the solution name (e.g.: **Web API Basics Operations** link). This will open the solution's properties in a new window. - -2. From the left navigation menu, select **Configuration**. +View the [README](https://github.com/microsoft/PowerApps-Samples/tree/master/dataverse/webapi/JS/SPASample#readme) for information about how you can run the sample SPA application. When the SPA application runs, you can select which sample to run by clicking the buttons. -3. Select **Start Sample** button to execute the sample code. +:::image type="content" source="../media/dataverse-web-api-javascript-spa-sample-app.png" alt-text="The SPA sample application with buttons to run available samples"::: ## Common elements found in each sample -The following list highlights some common elements found in each of these samples. - -- The `Sdk.startSample` function is called when a user selects the **Start Sample** button from the HTML page. The `Sdk.startSample` function initializes global variables and kicks off the first operation in the chain. - -- Program output and error messages are sent to the browser’s debugger console. To see these output, open the console window first before running the sample. Press F12 to access the developer tools, including the console window, in Microsoft Edge browser. - -- These samples use the browser native [ES6-Promise]() implementation for modern browsers that support it. - - Promises are not required. Similar interactions can be performed using callback functions. - -- The `Sdk.request` function handles the request based on the information passed in as parameters. Depending on the need of each sample, the parameters passed in may be different. See the source code of that sample for more details. - - ```javascript - /** - * @function request - * @description Generic helper function to handle basic XMLHttpRequest calls. - * @param {string} action - The request action. String is case-sensitive. - * @param {string} uri - An absolute or relative URI. Relative URI starts with a "/". - * @param {object} data - An object representing an entity. Required for create and update actions. - * @returns {Promise} - A Promise that returns either the request object or an error object. - */ - Sdk.request = function (action, uri, data) { - if (!RegExp(action, "g").test("POST PATCH PUT GET DELETE")) { - // Expected action verbs. - throw new Error( - "Sdk.request: action parameter must be one of the following: " + - "POST, PATCH, PUT, GET, or DELETE." - ); - } - if (!typeof uri === "string") { - throw new Error("Sdk.request: uri parameter must be a string."); - } - if ( - RegExp(action, "g").test("POST PATCH PUT") && - (data === null || data === undefined) - ) { - throw new Error( - "Sdk.request: data parameter must not be null for operations that create or modify data." - ); - } - - // Construct a fully qualified URI if a relative URI is passed in. - if (uri.charAt(0) === "/") { - uri = clientUrl + webAPIPath + uri; - } - - return new Promise(function (resolve, reject) { - var request = new XMLHttpRequest(); - request.open(action, encodeURI(uri), true); - request.setRequestHeader("OData-MaxVersion", "4.0"); - request.setRequestHeader("OData-Version", "4.0"); - request.setRequestHeader("Accept", "application/json"); - request.setRequestHeader( - "Content-Type", - "application/json; charset=utf-8" - ); - request.onreadystatechange = function () { - if (this.readyState === 4) { - request.onreadystatechange = null; - switch (this.status) { - case 200: // Success with content returned in response body. - case 204: // Success with no content returned in response body. - resolve(this); - break; - default: // All other statuses are unexpected so are treated like errors. - var error; - try { - error = JSON.parse(request.response).error; - } catch (e) { - error = new Error("Unexpected Error"); - } - reject(error); - break; - } - } - }; - request.send(JSON.stringify(data)); - }); - }; - ``` - - The `Sdk.request` function returns a promise. When the request wrapped by the promise is completed, the promise is either resolved or rejected. If it is resolved, the function in the following `then` method will be called. If it is rejected, the function in the following `catch` method will be called. If the function within the `then` method itself returns a promise, the chain of operations within consecutive `then` methods can continue. Returning a promise allows us to chain these sample operations together in a way that is preferred by many developers to traditional callback functions. For more information about promise, see [JavaScript Promise](). +All the samples in this group have the following in common: + +- They're all included in the same sample SPA application +- Each sample implements a common interface with `Setup`, `Run`, and `Cleanup` methods. +- All the samples use a common [DataverseWebAPI.js sample library](dataversewebapi-sample-library.md) that demonstrates reusable methods to perform operations with business data in Dataverse. + ### See also -[Use the Dataverse Web API](overview.md)
-[Web API Samples](web-api-samples.md)
-[Web API Samples (C#)](web-api-samples-csharp.md) +[Use the Dataverse Web API](overview.md) +[Web API Samples](web-api-samples.md) +[Web API Samples (C#)](web-api-samples-csharp.md) +[Web API Samples (PowerShell)](web-api-samples-powershell.md) + [!INCLUDE[footer-include](../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/data-platform/webapi/web-api-samples-csharp.md b/powerapps-docs/developer/data-platform/webapi/web-api-samples-csharp.md index 73438d99a1..f1f13788e9 100644 --- a/powerapps-docs/developer/data-platform/webapi/web-api-samples-csharp.md +++ b/powerapps-docs/developer/data-platform/webapi/web-api-samples-csharp.md @@ -1,9 +1,10 @@ --- title: "Web API Data operations Samples (C#) (Microsoft Dataverse)| Microsoft Docs" description: "This article provides a description of various Web API samples that are implemented using C#" +ms.topic: sample ms.date: 09/03/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/web-api-samples-powershell.md b/powerapps-docs/developer/data-platform/webapi/web-api-samples-powershell.md index f0a5f9fec5..73141a3a1c 100644 --- a/powerapps-docs/developer/data-platform/webapi/web-api-samples-powershell.md +++ b/powerapps-docs/developer/data-platform/webapi/web-api-samples-powershell.md @@ -1,9 +1,10 @@ --- -title: "Web API Data operations Samples PowerShell" +title: "Web API Data operations Samples PowerShell" description: "This article provides a description of Web API samples that are implemented using PowerShell" -ms.date: 05/14/2024 -author: MicroSri -ms.author: sriknair +ms.topic: sample +ms.date: 07/16/2025 +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer @@ -13,7 +14,7 @@ contributors: # Web API Data operations Samples (PowerShell) -This article provides common understanding about Web API samples using PowerShell. Currently, there's only one sample, but we plan to add more. While each sample focuses on a different aspect of Microsoft Dataverse Web API, they all follow similar process and structure described in this article. +This article provides common understanding about Web API samples using PowerShell. While each sample focuses on a different aspect of Microsoft Dataverse Web API, they all follow similar process and structure described in this article. ## Web API Samples using PowerShell diff --git a/powerapps-docs/developer/data-platform/webapi/web-api-samples.md b/powerapps-docs/developer/data-platform/webapi/web-api-samples.md index bc9729a10b..2036174ff5 100644 --- a/powerapps-docs/developer/data-platform/webapi/web-api-samples.md +++ b/powerapps-docs/developer/data-platform/webapi/web-api-samples.md @@ -1,9 +1,10 @@ --- title: "Web API data operation samples" description: "See C#, PowerShell, and JavaScript sample code that demonstrates how to use the Microsoft Dataverse Web API for basic table row operations, data query, conditional operations, and functions and actions." +ms.topic: sample ms.date: 01/20/2024 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/web-api-service-documents.md b/powerapps-docs/developer/data-platform/webapi/web-api-service-documents.md index d16e5fb2ae..148f086c50 100644 --- a/powerapps-docs/developer/data-platform/webapi/web-api-service-documents.md +++ b/powerapps-docs/developer/data-platform/webapi/web-api-service-documents.md @@ -2,8 +2,8 @@ title: Web API Service Documents description: Describes OData service documents you can use to understand the Dataverse Web API capabilities available in your environment. ms.date: 01/10/2024 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.service: powerapps applies_to: diff --git a/powerapps-docs/developer/data-platform/webapi/web-api-types-operations.md b/powerapps-docs/developer/data-platform/webapi/web-api-types-operations.md index cf5315f90e..6fffeb0c20 100644 --- a/powerapps-docs/developer/data-platform/webapi/web-api-types-operations.md +++ b/powerapps-docs/developer/data-platform/webapi/web-api-types-operations.md @@ -2,8 +2,8 @@ title: "Web API types and operations (Microsoft Dataverse)| Microsoft Docs" description: "Describes how you can find information you need from the Web API service and metadata documents, including documentation of the Web API system entity types, functions, and actions" ms.date: 01/10/2024 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/webapi/web-api-versions.md b/powerapps-docs/developer/data-platform/webapi/web-api-versions.md index 94e6b2c9e8..7a23713459 100644 --- a/powerapps-docs/developer/data-platform/webapi/web-api-versions.md +++ b/powerapps-docs/developer/data-platform/webapi/web-api-versions.md @@ -2,8 +2,8 @@ title: "Microsoft Dataverse Web API versions (Dataverse)| Microsoft Docs" description: "Read how versioning of Microsoft Dataverse Web API works. Dataverse Web API versions support version specific differences in the same environment which is different from the behavior in the v8.x releases in which new capabilities were additive" ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/wildcard-characters.md b/powerapps-docs/developer/data-platform/wildcard-characters.md index 84455cf2f7..1aeabd0a7e 100644 --- a/powerapps-docs/developer/data-platform/wildcard-characters.md +++ b/powerapps-docs/developer/data-platform/wildcard-characters.md @@ -3,7 +3,7 @@ title: Use wildcard characters in conditions for string values description: Learn how to use wildcard characters in query conditions that use string values. ms.date: 06/04/2024 ms.reviewer: jdaly -ms.topic: conceptual +ms.topic: article author: mayadumesh ms.author: mayadu ms.subservice: dataverse-developer diff --git a/powerapps-docs/developer/data-platform/work-data-azure-solution.md b/powerapps-docs/developer/data-platform/work-data-azure-solution.md index 4154fd3c3f..2ce9ab013f 100644 --- a/powerapps-docs/developer/data-platform/work-data-azure-solution.md +++ b/powerapps-docs/developer/data-platform/work-data-azure-solution.md @@ -1,7 +1,7 @@ --- -title: "Work with Microsoft Dataverse data in your Azure solution (Microsoft Dataverse) | Microsoft Docs" -description: "Provides an overview of passing data from Dataverse to an Azure cloud hosted solution." -ms.date: 07/19/2024 +title: Work with Microsoft Dataverse data in your Azure solution +description: Discover how pass data from Microsoft Dataverse to an Azure cloud-hosted solution. +ms.date: 06/18/2025 author: swylezol ms.author: swylezol ms.reviewer: pehecke diff --git a/powerapps-docs/developer/data-platform/work-with-data.md b/powerapps-docs/developer/data-platform/work-with-data.md index 6e938ae66f..0b367386ae 100644 --- a/powerapps-docs/developer/data-platform/work-with-data.md +++ b/powerapps-docs/developer/data-platform/work-with-data.md @@ -4,9 +4,9 @@ description: "Microsoft Dataverse provides web services and APIs that you can us ms.date: 05/20/2024 ms.reviewer: pehecke ms.topic: article -author: MicroSri +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/workflow-custom-actions.md b/powerapps-docs/developer/data-platform/workflow-custom-actions.md index 77aa1ded8c..46ee917b8b 100644 --- a/powerapps-docs/developer/data-platform/workflow-custom-actions.md +++ b/powerapps-docs/developer/data-platform/workflow-custom-actions.md @@ -4,9 +4,9 @@ description: "Learn about how to create your own custom actions that extend the ms.date: 03/22/2022 ms.reviewer: "pehecke" ms.topic: "article" -author: MicroSri +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/workflow/debug-workflow-activites.md b/powerapps-docs/developer/data-platform/workflow/debug-workflow-activites.md index fd7f571671..16c6989fb6 100644 --- a/powerapps-docs/developer/data-platform/workflow/debug-workflow-activites.md +++ b/powerapps-docs/developer/data-platform/workflow/debug-workflow-activites.md @@ -2,8 +2,8 @@ title: "Debug Workflow Activities (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "Describes how to debug workflow activities using the Plug-in Registration tool." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/workflow/sample-calculate-credit-score-custom-workflow-activity.md b/powerapps-docs/developer/data-platform/workflow/sample-calculate-credit-score-custom-workflow-activity.md index 80d148bedd..153bbff5c3 100644 --- a/powerapps-docs/developer/data-platform/workflow/sample-calculate-credit-score-custom-workflow-activity.md +++ b/powerapps-docs/developer/data-platform/workflow/sample-calculate-credit-score-custom-workflow-activity.md @@ -2,8 +2,8 @@ title: "Sample: Calculate a credit score with a custom workflow activity (Microsoft Dataverse) | Microsoft Docs" description: "The sample demonstrates workflow activity calculates the credit score based on the Social Security Number (SSN) and name." ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/workflow/sample-create-custom-workflow-activity.md b/powerapps-docs/developer/data-platform/workflow/sample-create-custom-workflow-activity.md index 1d71a1807a..3dea50a0e2 100644 --- a/powerapps-docs/developer/data-platform/workflow/sample-create-custom-workflow-activity.md +++ b/powerapps-docs/developer/data-platform/workflow/sample-create-custom-workflow-activity.md @@ -2,8 +2,8 @@ title: "Sample: Create a custom workflow activity (Microsoft Dataverse) | Microsoft Docs" description: "The sample demonstrates how to write a custom workflow activity that can create an account and a task for the account. This sample uses early binding." ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/workflow/sample-update-next-birthday-using-custom-workflow-activity.md b/powerapps-docs/developer/data-platform/workflow/sample-update-next-birthday-using-custom-workflow-activity.md index fbabad91ac..f065995841 100644 --- a/powerapps-docs/developer/data-platform/workflow/sample-update-next-birthday-using-custom-workflow-activity.md +++ b/powerapps-docs/developer/data-platform/workflow/sample-update-next-birthday-using-custom-workflow-activity.md @@ -2,8 +2,8 @@ title: "Sample: Update next birthday using a custom workflow activity (Microsoft Dataverse) | Microsoft Docs" description: "The sample demonstrates workflow activity returns the next birthday. Use this in a workflow that sends a birthday greeting to a customer. " ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/workflow/tutorial-create-workflow-extension.md b/powerapps-docs/developer/data-platform/workflow/tutorial-create-workflow-extension.md index ba04cd0069..7bce99f355 100644 --- a/powerapps-docs/developer/data-platform/workflow/tutorial-create-workflow-extension.md +++ b/powerapps-docs/developer/data-platform/workflow/tutorial-create-workflow-extension.md @@ -2,8 +2,8 @@ title: "Tutorial: Create workflow extension (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "This tutorial will show you the process to extend the workflow designer to add custom activities and logic using a workflow assembly" # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/workflow/workflow-extensions.md b/powerapps-docs/developer/data-platform/workflow/workflow-extensions.md index aa2be8e3a0..ee453c28e1 100644 --- a/powerapps-docs/developer/data-platform/workflow/workflow-extensions.md +++ b/powerapps-docs/developer/data-platform/workflow/workflow-extensions.md @@ -2,8 +2,8 @@ title: "Workflow Extensions (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces description: "Learn how to add custom workflow activities to the workflow designer." # 115-145 characters including spaces. This abstract displays in the search result. ms.date: 04/06/2022 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly search.audienceType: - developer diff --git a/powerapps-docs/developer/data-platform/write-custom-azure-aware-plugin.md b/powerapps-docs/developer/data-platform/write-custom-azure-aware-plugin.md index b02aeaf887..3550a98c91 100644 --- a/powerapps-docs/developer/data-platform/write-custom-azure-aware-plugin.md +++ b/powerapps-docs/developer/data-platform/write-custom-azure-aware-plugin.md @@ -2,8 +2,8 @@ title: "Write a custom Azure-aware plug-in (Microsoft Dataverse) | Microsoft Docs" description: "Learn how to write plug-in code that can post a message or the execution context of the current database transaction to the Azure Service Bus." ms.date: 07/19/2024 -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: pehecke ms.topic: article ms.subservice: dataverse-developer diff --git a/powerapps-docs/developer/data-platform/write-plug-in.md b/powerapps-docs/developer/data-platform/write-plug-in.md index 068652d3df..0bac08cbc3 100644 --- a/powerapps-docs/developer/data-platform/write-plug-in.md +++ b/powerapps-docs/developer/data-platform/write-plug-in.md @@ -3,10 +3,10 @@ title: "Write a plug-in (Microsoft Dataverse) | Microsoft Docs" description: "Learn how to write custom code to be executed in response to data processing events." ms.date: 03/26/2024 ms.reviewer: pehecke -ms.topic: article -author: MicroSri +ms.topic: how-to +author: MsSQLGirl ms.subservice: dataverse-developer -ms.author: sriknair +ms.author: jukoesma search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/write-plugin-multiple-operation.md b/powerapps-docs/developer/data-platform/write-plugin-multiple-operation.md index 1390796718..6bc1c285d6 100644 --- a/powerapps-docs/developer/data-platform/write-plugin-multiple-operation.md +++ b/powerapps-docs/developer/data-platform/write-plugin-multiple-operation.md @@ -3,8 +3,8 @@ title: Write plug-ins for CreateMultiple and UpdateMultiple description: Learn how to write plug-ins that use the bulk operation messages CreateMultiple and UpdateMultiple to operate on multiple rows of data in a Microsoft Dataverse table. ms.date: 08/02/2023 ms.topic: how-to -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.reviewer: jdaly ms.subservice: dataverse-developer search.audienceType: diff --git a/powerapps-docs/developer/data-platform/xrm-tooling/configure-tracing-xrm-tooling.md b/powerapps-docs/developer/data-platform/xrm-tooling/configure-tracing-xrm-tooling.md index 8facc79b09..4b5ebeb73d 100644 --- a/powerapps-docs/developer/data-platform/xrm-tooling/configure-tracing-xrm-tooling.md +++ b/powerapps-docs/developer/data-platform/xrm-tooling/configure-tracing-xrm-tooling.md @@ -5,7 +5,7 @@ ms.date: 04/01/2022 author: MattB-msft ms.author: mbarbour ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to applies_to: - "Dynamics 365 (online)" search.audienceType: diff --git a/powerapps-docs/developer/data-platform/xrm-tooling/use-connection-strings-xrm-tooling-connect.md b/powerapps-docs/developer/data-platform/xrm-tooling/use-connection-strings-xrm-tooling-connect.md index 8eed8181de..017002457d 100644 --- a/powerapps-docs/developer/data-platform/xrm-tooling/use-connection-strings-xrm-tooling-connect.md +++ b/powerapps-docs/developer/data-platform/xrm-tooling/use-connection-strings-xrm-tooling-connect.md @@ -5,7 +5,7 @@ ms.date: 12/04/2024 author: MattB-msft ms.author: mbarbour ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to search.audienceType: - developer contributors: diff --git a/powerapps-docs/developer/data-platform/xrm-tooling/use-messages-executecrmorganizationrequest-method.md b/powerapps-docs/developer/data-platform/xrm-tooling/use-messages-executecrmorganizationrequest-method.md index 93b5ab5ae3..99148e7527 100644 --- a/powerapps-docs/developer/data-platform/xrm-tooling/use-messages-executecrmorganizationrequest-method.md +++ b/powerapps-docs/developer/data-platform/xrm-tooling/use-messages-executecrmorganizationrequest-method.md @@ -5,7 +5,7 @@ ms.date: 12/04/2024 author: MattB-msft ms.author: mbarbour ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to applies_to: - "Dynamics 365 (online)" search.audienceType: diff --git a/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-common-login-control-client-applications.md b/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-common-login-control-client-applications.md index 1478480368..3297905e17 100644 --- a/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-common-login-control-client-applications.md +++ b/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-common-login-control-client-applications.md @@ -5,7 +5,7 @@ ms.date: 02/01/2023 author: MattB-msft ms.author: mbarbour ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to applies_to: - "Dynamics 365 (online)" search.audienceType: diff --git a/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-create-data.md b/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-create-data.md index dafebc3f31..454b059f4b 100644 --- a/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-create-data.md +++ b/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-create-data.md @@ -5,7 +5,7 @@ ms.date: 12/04/2024 author: MattB-msft ms.author: mbarbour ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to applies_to: - "Dynamics 365 (online)" search.audienceType: diff --git a/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-delete-data.md b/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-delete-data.md index 5e6cd235ff..ec726f9934 100644 --- a/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-delete-data.md +++ b/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-delete-data.md @@ -5,7 +5,7 @@ ms.date: 12/04/2024 author: MattB-msft ms.author: mbarbour ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to applies_to: - "Dynamics 365 (online)" search.audienceType: diff --git a/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-retrieve-data.md b/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-retrieve-data.md index a1972e2d2f..a784d07ad0 100644 --- a/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-retrieve-data.md +++ b/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-retrieve-data.md @@ -5,7 +5,7 @@ ms.date: 12/04/2024 author: MattB-msft ms.author: mbarbour ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to applies_to: - "Dynamics 365 (online)" search.audienceType: diff --git a/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-update-data.md b/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-update-data.md index a35c0a361f..e21a93e131 100644 --- a/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-update-data.md +++ b/powerapps-docs/developer/data-platform/xrm-tooling/use-xrm-tooling-update-data.md @@ -5,7 +5,7 @@ ms.date: 12/04/2024 author: MattB-msft ms.author: mbarbour ms.reviewer: pehecke -ms.topic: article +ms.topic: how-to applies_to: - "Dynamics 365 (online)" search.audienceType: diff --git a/powerapps-docs/developer/model-driven-apps/TOC.yml b/powerapps-docs/developer/model-driven-apps/TOC.yml index e1d5cd24d7..ddd30f827c 100644 --- a/powerapps-docs/developer/model-driven-apps/TOC.yml +++ b/powerapps-docs/developer/model-driven-apps/TOC.yml @@ -73,6 +73,8 @@ href: clientapi/walkthrough-write-your-first-client-script.md - name: Debug JavaScript code for model-driven apps href: clientapi/debug-JavaScript-code.md + - name: Bring intelligence into your app using Agent Xrm APIs + href: clientapi/bring-intelligence-using-agent-apis.md - name: Troubleshoot form issues in Unified Interface href: troubleshoot-forms.md - name: Navigating to and from a custom page @@ -248,6 +250,8 @@ href: clientapi/reference/controls/addCustomFilter.md - name: addCustomView href: clientapi/reference/controls/addCustomView.md + - name: addEventHandler + href: clientapi/reference/controls/addeventhandler.md - name: addNotification href: clientapi/reference/controls/addNotification.md - name: addOnLookupTagClick @@ -748,6 +752,15 @@ href: clientapi/reference/Xrm-App/Xrm-App-sidePanes/getPane.md - name: getSelectedPane href: clientapi/reference/Xrm-App/Xrm-App-sidePanes/getSelectedPane.md + - name: Xrm.Copilot + href: clientapi/reference/xrm-copilot.md + items: + - name: executeEvent + href: clientapi/reference/Xrm-Copilot/executeevent.md + - name: executePrompt + href: clientapi/reference/Xrm-Copilot/executeprompt.md + - name: MCSResponse + href: clientapi/reference/Xrm-Copilot/mcsresponse.md - name: Xrm.Device href: clientapi/reference/xrm-device.md items: diff --git a/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/avoid-window-top.md b/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/avoid-window-top.md index e403b80d64..743646bc82 100644 --- a/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/avoid-window-top.md +++ b/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/avoid-window-top.md @@ -5,7 +5,7 @@ suite: powerapps author: sriharibs-msft ms.author: srihas ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.date: 1/15/2019 ms.subservice: mda-developer search.audienceType: diff --git a/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/consider-disabling-navbar-programmatically-opening-entity-forms-views.md b/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/consider-disabling-navbar-programmatically-opening-entity-forms-views.md index ca25dbf5eb..a7dd7ab6a3 100644 --- a/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/consider-disabling-navbar-programmatically-opening-entity-forms-views.md +++ b/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/consider-disabling-navbar-programmatically-opening-entity-forms-views.md @@ -5,7 +5,7 @@ suite: powerapps author: sriharibs-msft ms.author: srihas ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.date: 04/14/2021 ms.subservice: mda-developer search.audienceType: diff --git a/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/do-not-use-odata-v2-endpoint.md b/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/do-not-use-odata-v2-endpoint.md index c870e94eb6..d03eabbec3 100644 --- a/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/do-not-use-odata-v2-endpoint.md +++ b/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/do-not-use-odata-v2-endpoint.md @@ -2,8 +2,8 @@ title: Do not use the OData v2.0 endpoint description: Learn about the requirement to upgrade your code to use the Web API OData v4.0 endpoint rather than the deprecated OData v2.0 endpoint. suite: powerapps -author: MicroSri -ms.author: sriknair +author: MsSQLGirl +ms.author: jukoesma ms.date: 04/12/2023 ms.reviewer: jdaly ms.topic: how-to @@ -74,7 +74,7 @@ The Organization Data Service supports both JSON and ATOM, an XML-based format u The Organization Data Service will only return 50 records at a time and doesn't provide a way to specify max page size. -The Web API allows you to set a max page size and will return up to 5000 records. More information: [Page results](../../../data-platform/webapi/query/page-results.md) +The Web API allows you to set a max page size and will return up to 5,000 records. More information: [Page results](../../../data-platform/webapi/query/page-results.md) ### Legacy documentation diff --git a/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/index.md b/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/index.md index 7f7703947a..bd114e07ec 100644 --- a/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/index.md +++ b/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/index.md @@ -6,7 +6,7 @@ author: sriharibs-msft ms.author: srihas ms.date: 04/01/2022 ms.reviewer: jdaly -ms.topic: article +ms.topic: best-practice ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/interact-http-https-resources-asynchronously.md b/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/interact-http-https-resources-asynchronously.md index cc1a1ab687..55774fe96f 100644 --- a/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/interact-http-https-resources-asynchronously.md +++ b/powerapps-docs/developer/model-driven-apps/best-practices/business-logic/interact-http-https-resources-asynchronously.md @@ -5,7 +5,7 @@ suite: powerapps author: MitiJ ms.author: mijosh ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.date: 02/20/2018 ms.subservice: mda-developer search.audienceType: diff --git a/powerapps-docs/developer/model-driven-apps/best-practices/index.md b/powerapps-docs/developer/model-driven-apps/best-practices/index.md index 5b994d321b..52306abc0e 100644 --- a/powerapps-docs/developer/model-driven-apps/best-practices/index.md +++ b/powerapps-docs/developer/model-driven-apps/best-practices/index.md @@ -5,7 +5,7 @@ suite: powerapps author: JimDaly ms.author: jdaly ms.reviewer: jdaly -ms.topic: article +ms.topic: best-practice ms.date: 04/14/2021 ms.subservice: mda-developer search.audienceType: diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/bring-intelligence-using-agent-apis.md b/powerapps-docs/developer/model-driven-apps/clientapi/bring-intelligence-using-agent-apis.md new file mode 100644 index 0000000000..574192cd5e --- /dev/null +++ b/powerapps-docs/developer/model-driven-apps/clientapi/bring-intelligence-using-agent-apis.md @@ -0,0 +1,42 @@ +--- +title: "Bring intelligence into your app using Agent Xrm APIs (preview)" +description: "Learn about how you can integrate Copilot Studio topics into your model-driven apps using Agent Xrm APIs." +author: adrianorth +ms.author: aorth +ms.date: 07/07/2025 +ms.reviewer: jdaly +ms.topic: conceptual +ms.subservice: mda-developer +search.audienceType: + - developer +contributors: + - JimDaly +--- + +# Bring intelligence into your app using Agent Xrm APIs (preview) + +[!INCLUDE [preview-note-pp](~/../shared-content/shared/preview-includes/preview-note-pp.md)] + +Agent APIs are a set of interfaces introduced in Microsoft Power Apps that allow model-driven apps to interact with topics created in Microsoft Copilot Studio. These APIs are available in two forms: + +- `Xrm.Copilot` namespace used for client scripts in model-driven apps. This article describes these APIs. +- [PCF (for use in custom controls)](../../component-framework/bring-intelligence-using-agent-apis.md). + +These APIs are designed to enhance integration with Microsoft Copilot Studio, enabling more intelligent and responsive app experiences. The APIs use a single Copilot Studio agent that is either: +- Interactive agent selected in the model app designer of custom apps. See more at [Working with an interactive agent](../../../maker/model-driven-apps/add-agents-to-app.md#working-with-an-interactive-agent). +- Model app containing lead or opportunity table, which implicitly uses the "Copilot in Dynamics 365 Sales" agent. + +|API|Description| +|---------|---------| +|[Xrm.Copilot.executeEvent](reference/Xrm-Copilot/executeevent.md)|[!INCLUDE [executeevent-description](reference/Xrm-Copilot/includes/executeevent-description.md)]| +|[Xrm.Copilot.executePrompt](reference/Xrm-Copilot/executeprompt.md)|[!INCLUDE [executeprompt-description](reference/Xrm-Copilot/includes/executeprompt-description.md)]| + + +### Related articles + +[FAQ for Agent APIs and Agent Response component](../../../maker/common/faq-agent-api-component.md) +[Xrm.Copilot (Client API reference)](reference/xrm-copilot.md) +[Xrm.Copilot.executeEvent (Client API reference)](reference/Xrm-Copilot/executeevent.md) +[Xrm.Copilot.executePrompt (Client API reference)](reference/Xrm-Copilot/executeprompt.md) +[Working with an interactive agent](../../../maker/model-driven-apps/add-agents-to-app.md#working-with-an-interactive-agent) +[Copilot (Power Apps component framework API reference)](../../component-framework/reference/copilot.md) diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/clientapi-execution-context.md b/powerapps-docs/developer/model-driven-apps/clientapi/clientapi-execution-context.md index 6b56681acf..3de780ee55 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/clientapi-execution-context.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/clientapi-execution-context.md @@ -5,7 +5,7 @@ author: sriharibs-msft ms.author: srihas ms.date: 08/23/2024 ms.reviewer: jdaly -ms.topic: conceptual +ms.topic: article ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/clientapi-form-context.md b/powerapps-docs/developer/model-driven-apps/clientapi/clientapi-form-context.md index 06256e12c6..bd8e78150a 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/clientapi-form-context.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/clientapi-form-context.md @@ -5,7 +5,7 @@ author: MitiJ ms.author: mijosh ms.date: 08/15/2024 ms.reviewer: jdaly -ms.topic: "conceptual" +ms.topic: article ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/clientapi-grid-context.md b/powerapps-docs/developer/model-driven-apps/clientapi/clientapi-grid-context.md index b15cb5747b..49b883da93 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/clientapi-grid-context.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/clientapi-grid-context.md @@ -5,7 +5,7 @@ author: clromano ms.author: clromano ms.date: 08/15/2024 ms.reviewer: jdaly -ms.topic: "conceptual" +ms.topic: article ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/clientapi-xrm.md b/powerapps-docs/developer/model-driven-apps/clientapi/clientapi-xrm.md index 03735191b5..07059b1b9d 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/clientapi-xrm.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/clientapi-xrm.md @@ -3,9 +3,9 @@ title: "Client API Xrm object for model-driven apps " description: "Describes the client API Xrm object" author: sriharibs-msft ms.author: srihas -ms.date: 04/01/2022 +ms.date: 07/29/2025 ms.reviewer: jdaly -ms.topic: "conceptual" +ms.topic: article applies_to: - "Dynamics 365 (online)" ms.subservice: mda-developer @@ -24,12 +24,14 @@ The **Xrm** object is globally available to use in your code without having to u The following illustration displays the Xrm object model: -![Xrm Object Model.](../media/ClientAPI-XrmModel.png) +:::image type="content" source="media/client-api-xrm-model.png" alt-text="Xrm Object Model"::: Here's the information about each of the namespaces in the Xrm object: | Namespace| Description| | ---| ---| +| [Xrm.App](reference/xrm-app.md)|[!INCLUDE [xrm-app-description](reference/Xrm-App/includes/xrm-app-description.md)]| +| [Xrm.Copilot](reference/xrm-copilot.md)| [!INCLUDE [xrm-copilot-description](reference/Xrm-Copilot/includes/xrm-copilot-description.md)]| | [Xrm.Device](reference/xrm-device.md)| Provides methods to use native device capabilities. | | [Xrm.Encoding](reference/xrm-encoding.md) | Provides methods to encode strings.| | [Xrm.Navigation](reference/xrm-navigation.md) | Provides methods for navigating forms and items in model-driven apps.| diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/create-app-side-panes.md b/powerapps-docs/developer/model-driven-apps/clientapi/create-app-side-panes.md index 54ffcf7fde..dee6ccb235 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/create-app-side-panes.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/create-app-side-panes.md @@ -6,7 +6,7 @@ ms.author: srihas ms.date: 01/27/2023 ms.reviewer: jdaly ms.subservice: mda-developer -ms.topic: "article" +ms.topic: concept-article search.audienceType: - maker - developer diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/debug-JavaScript-code.md b/powerapps-docs/developer/model-driven-apps/clientapi/debug-JavaScript-code.md index ed93c3dc2b..bcf6a2e2de 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/debug-JavaScript-code.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/debug-JavaScript-code.md @@ -1,7 +1,7 @@ --- title: "Debug JavaScript code for model-driven apps" description: "Explains how to debug JavaScript code for model-driven apps" -ms.topic: "conceptual" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" author: sriharibs-msft diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/includes/accessing-event-parameters-response.md b/powerapps-docs/developer/model-driven-apps/clientapi/includes/accessing-event-parameters-response.md new file mode 100644 index 0000000000..715720366e --- /dev/null +++ b/powerapps-docs/developer/model-driven-apps/clientapi/includes/accessing-event-parameters-response.md @@ -0,0 +1,34 @@ +#### Response + +```json +[ + { + "type": "event", + "timestamp": "2025-02-05T16:05:53.4074714+00:00", + "replyToId": "bbbbbbbb-1111-2222-3333-cccccccccccc", + "attachments": [], + "value": { + "@odata.context": "https://*.dynamics.com/api/data/v9.2/$metadata#activitypointers(subject,prioritycode)", + "value": [ + { + "@odata.etag": "W/\"6825587\"", + "@odata.type": "#Microsoft.Dynamics.CRM.phonecall", + "activityid": "cccccccc-2222-3333-4444-dddddddddddd", + "activitytypecode": "phonecall", + "prioritycode": 2, + "subject": "Discuss new opportunity (sample)" + }, + { + "@odata.etag": "W/\"6826236\"", + "@odata.type": "#Microsoft.Dynamics.CRM.phonecall", + "activityid": "dddddddd-3333-4444-5555-eeeeeeeeeeee", + "activitytypecode": "phonecall", + "prioritycode": 2, + "subject": "Likes our new products (sample)" + } + ] + }, + "name": "MS.CopilotApiDemo.RelatedActivities" + } +] +``` \ No newline at end of file diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/includes/accessing-event-parameters.md b/powerapps-docs/developer/model-driven-apps/clientapi/includes/accessing-event-parameters.md new file mode 100644 index 0000000000..93da3a616b --- /dev/null +++ b/powerapps-docs/developer/model-driven-apps/clientapi/includes/accessing-event-parameters.md @@ -0,0 +1,3 @@ +## Accessing eventParameters + +Within the Copilot Studio topic, the `eventParameters` from the API call can be accessed using the variable `Activity.Value`. Use [Parse value node](/microsoft-copilot-studio/authoring-variables?tabs=webApp#parse-value-node) to convert the JSON into a record with one or more fields. Selecting **From sample data** for **Data type** allows providing a JSON example to create the record. \ No newline at end of file diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/includes/app-context-table.md b/powerapps-docs/developer/model-driven-apps/clientapi/includes/app-context-table.md new file mode 100644 index 0000000000..ee0f53424b --- /dev/null +++ b/powerapps-docs/developer/model-driven-apps/clientapi/includes/app-context-table.md @@ -0,0 +1,7 @@ +| Variable | Description | +| --- | --- | +| `Global.PA__Copilot_Model_PageContext.pageContext.id.guid` | ID of the table record on the main form | +| `Global.PA__Copilot_Model_PageContext.pageContext.entityTypeName` | Logical name of the table in the main page | +| `Global.PA__Copilot_Model_PageContext.pageContext.pageName` | Name of the main page | +| `Global.PA__Copilot_Model_PageContext.pageContext.pageType` | Type of the main page | +| `Global.PA__Copilot_Model_AppUniqueNameContext.appUniqueNameContext.appUniqueName` | Unique name of the model-driven app | \ No newline at end of file diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/media/client-api-xrm-model.png b/powerapps-docs/developer/model-driven-apps/clientapi/media/client-api-xrm-model.png new file mode 100644 index 0000000000..9ec8d4c1c3 Binary files /dev/null and b/powerapps-docs/developer/model-driven-apps/clientapi/media/client-api-xrm-model.png differ diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/media/src/client-api-xrm-model.vsdx b/powerapps-docs/developer/model-driven-apps/clientapi/media/src/client-api-xrm-model.vsdx new file mode 100644 index 0000000000..64ca414d1c Binary files /dev/null and b/powerapps-docs/developer/model-driven-apps/clientapi/media/src/client-api-xrm-model.vsdx differ diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference.md index 6688f83edc..99a6524871 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/reference.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference.md @@ -1,7 +1,7 @@ --- title: "Client API Reference for model-driven apps " description: "The topic provides client API reference for model-driven apps." -ms.date: 05/13/2024 +ms.date: 06/16/2025 author: sriharibs-msft ms.author: srihas ms.reviewer: jdaly @@ -47,6 +47,7 @@ The topics under this section are organized as follows: - Finally provides reference for namespaces in the **Xrm** object model. - [Xrm.App](reference/xrm-app.md) + - [Xrm.Copilot](reference/xrm-copilot.md) - [Xrm.Device](reference/xrm-device.md) - [Xrm.Encoding](reference/xrm-encoding.md) - [Xrm.Navigation](reference/xrm-navigation.md) diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/GetGlobalContext-ClientGlobalContext.js.aspx.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/GetGlobalContext-ClientGlobalContext.js.aspx.md index 7aa151baa5..2149369856 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/reference/GetGlobalContext-ClientGlobalContext.js.aspx.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/GetGlobalContext-ClientGlobalContext.js.aspx.md @@ -5,7 +5,7 @@ author: sriharibs-msft ms.author: srihas ms.date: 03/12/2022 ms.reviewer: jdaly -ms.topic: conceptual +ms.topic: article ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-App/includes/xrm-app-description.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-App/includes/xrm-app-description.md new file mode 100644 index 0000000000..aaa24954bb --- /dev/null +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-App/includes/xrm-app-description.md @@ -0,0 +1 @@ +Provides app-related methods. \ No newline at end of file diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Copilot/executeevent.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Copilot/executeevent.md new file mode 100644 index 0000000000..982b0dfece --- /dev/null +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Copilot/executeevent.md @@ -0,0 +1,66 @@ +--- +title: "executeEvent (Client API reference) in model-driven apps (preview)" +description: Includes description and supported parameters for the executeEvent method. +author: adrianorth +ms.author: aorth +ms.date: 07/07/2025 +ms.reviewer: jdaly +ms.topic: reference +applies_to: "Dynamics 365 (online)" +search.audienceType: + - developer +contributors: + - JimDaly +--- + +# executeEvent (Client API reference) (preview) + +[!INCLUDE [preview-note-pp](~/../shared-content/shared/preview-includes/preview-note-pp.md)] + +[!INCLUDE[./includes/executeevent-description.md](./includes/executeevent-description.md)] + +## Syntax + +`Xrm.Copilot.executeEvent(eventName, eventParameters).then(successCallback, errorCallback); ` + +## Parameters + +| Parameter Name| Type| Required | Description| +| --- | --- | --- | --- | +| `eventName` | string | Yes | Event Name registered in the Microsoft Copilot Studio topic | +| `eventParameters` | Unknown | Yes | Parameters needed for the event execution. These depend on what the topic does.| +| `successCallback` | Function | Yes | A function to call when the operation succeeds.| +| `errorCallback` | Function | Yes | A function to call when the operation fails.| + +## Return Value + +An array of [MCSResponse](mcsresponse.md) + +## Accessing app context + +When an Agent API is called, context for the app is passed to the Copilot Studio topic through a set of variables. The following are context variables available as [Copilot Studio global variables](/microsoft-copilot-studio/authoring-variables-bot). + +[!INCLUDE [app-context-table](../../includes/app-context-table.md)] + +For example, using `Global.PA__Copilot_Model_PageContext.pageContext.id.guid` and `Global.PA__Copilot_Model_PageContext.pageContext.entityTypeName`, the form's record can be retrieved from Dataverse. + +[!INCLUDE [accessing-event-parameters](../../includes/accessing-event-parameters.md)] + +### Example + +In Microsoft Copilot Studio, where a topic is registered that accepts an ID (entity record ID) as an input parameter. Based on the input, it retrieves the related activities of that entity record and returns the results as an Copilot Studio event activity. + +```javascript +const response = await Xrm.Copilot.executeEvent( + "Microsoft.PowerApps.Copilot.RelatedActivities", + { id:"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"}); +``` + +[!INCLUDE [accessing-event-parameters-response](../../includes/accessing-event-parameters-response.md)] + + +### Related articles + +[Xrm.Copilot (Client API reference)](../xrm-copilot.md) + +[!INCLUDE[footer-include](../../../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Copilot/executeprompt.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Copilot/executeprompt.md new file mode 100644 index 0000000000..19abd30319 --- /dev/null +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Copilot/executeprompt.md @@ -0,0 +1,68 @@ +--- +title: "executePrompt (Client API reference) in model-driven apps (preview)" +description: Includes description and supported parameters for the executePrompt method. +author: adrianorth +ms.author: aorth +ms.date: 06/16/2025 +ms.reviewer: jdaly +ms.topic: reference +applies_to: "Dynamics 365 (online)" +search.audienceType: + - developer +contributors: + - JimDaly +--- + +# executePrompt (Client API reference) (preview) + +[!INCLUDE [preview-note-pp](~/../shared-content/shared/preview-includes/preview-note-pp.md)] + +[!INCLUDE[./includes/executeprompt-description.md](./includes/executeprompt-description.md)] + +## Syntax + +`Xrm.Copilot.executePrompt(promptText).then(successCallback, errorCallback);` + +## Parameters + +| Parameter Name| Type| Required | Description| +| --- | --- | --- | --- | +| `promptText` | string | Yes | The text that is registered as a trigger query in the MCS topic. | +| `successCallback` | Function | Yes | A function to call when the operation succeeds.| +| `errorCallback` | Function | Yes | A function to call when the operation fails.| + +## Return Value + +An array of [MCSResponse](mcsresponse.md) + +## Example + +In Microsoft Copilot Studio, a topic is triggered by queries like "hello" or "hi." When `executePrompt` runs with matching promptText, it activates the topic and returns a Message activity with the response text. + +```javascript +const response = await Xrm.Copilot.executePrompt("hello"); +``` + +### Response + +This is an example of the response that may be returned. + +```json +[ + { + "type": "message", + "timestamp": "2025-02-05T16:46:07.7799759+00:00", + "replyToId": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", + "attachments": [], + "textFormat": "markdown", + "text": "Hello, how can I help you today?", + "speak": "Hello, how can I help?" + } +] +``` + +### Related articles + +[Xrm.Copilot (Client API reference)](../xrm-copilot.md) + +[!INCLUDE[footer-include](../../../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Copilot/includes/executeevent-description.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Copilot/includes/executeevent-description.md new file mode 100644 index 0000000000..f14865b3a6 --- /dev/null +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Copilot/includes/executeevent-description.md @@ -0,0 +1 @@ +Executes a Microsoft Copilot Studio topic based on the registered Event Name. Returns an array of type [MCSResponse](../mcsresponse.md). \ No newline at end of file diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Copilot/includes/executeprompt-description.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Copilot/includes/executeprompt-description.md new file mode 100644 index 0000000000..4a026fda4f --- /dev/null +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Copilot/includes/executeprompt-description.md @@ -0,0 +1 @@ +Executes a Microsoft Copilot Studio topic based on the trigger queries registered in the topic. Returns the array of type [MCSResponse](../mcsresponse.md). \ No newline at end of file diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Copilot/includes/xrm-copilot-description.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Copilot/includes/xrm-copilot-description.md new file mode 100644 index 0000000000..81c6808b1b --- /dev/null +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Copilot/includes/xrm-copilot-description.md @@ -0,0 +1 @@ +Provides methods to execute registered Microsoft Copilot Studio Topics. \ No newline at end of file diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Copilot/mcsresponse.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Copilot/mcsresponse.md new file mode 100644 index 0000000000..5a3ab6cd08 --- /dev/null +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Copilot/mcsresponse.md @@ -0,0 +1,50 @@ +--- +title: MCSResponse Interface (Client API reference) (preview) +description: The interface that describes the properties of contains data returned by the Xrm.Copilot.executeEvent and Xrm.Copilot.executePrompt methods. +author: adrianorth +ms.author: aorth +ms.date: 06/16/2025 +ms.reviewer: jdaly +ms.topic: reference +ms.subservice: pcf +contributors: + - JimDaly +--- + +# MCSResponse Interface (Client API reference) (preview) + +[!INCLUDE [preview-note-pp](~/../shared-content/shared/preview-includes/preview-note-pp.md)] + +An interface that describes the data returned by the [executeEvent](executeevent.md) and [executePrompt](executeprompt.md) methods. + + + +## Properties + +The following table describes the `MCSResponse` properties. Only the `type` property will always be present. + + +| Name| Type| Description| +|---|---|---| +| `type`| `string`| **Required.** The type of the response.| +| `id`| `string`| Unique identifier for the response.| +| `locale`| `string`| Locale information (e.g., language or region).| +| `replyToId`| `string`| ID of the message this is replying to.| +| `timestamp`| `string`| Timestamp of the response.| +| `speak`| `string`| Text to be spoken by a speech synthesizer.| +| `text`| `string`| Text content of the response.| +| `textFormat`| `plain` \| `markdown` \| `xml` | Format of the text content.| +| `suggestedActions` | `{ actions: any[]; to?: string[] }` | Suggested actions for the user to take.| +| `value`| `unknown`| Custom payload or data.| +| `valueType`| `string`| Type of the value payload.| +| `name`| `string`| Name of the response or action.| +| `attachmentLayout` | `list` \| `carousel`| Layout style for displaying attachments.| +| `attachments`| [Attachment](#attachment-interface)[]| Array of attachments included in the response.| + +### Attachment Interface + +| Name| Type| Description| +|---|---|---| +| `content`| `unknown` | **Required.** The content of the attachment. | +| `contentType`| `string` | Describes the type of content. | \ No newline at end of file diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/createRecord.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/createRecord.md index dc00188da2..b20a3c8f5b 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/createRecord.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/createRecord.md @@ -3,7 +3,7 @@ title: "createRecord (Client API reference) in model-driven apps" description: Includes description and supported parameters for the createRecord method. author: sriharibs-msft ms.author: srihas -ms.date: 04/29/2024 +ms.date: 04/29/2025 ms.reviewer: jdaly ms.topic: reference applies_to: "Dynamics 365 (online)" @@ -28,7 +28,7 @@ contributors: |`entityLogicalName`|String|Yes|Logical name of the table you want to create. For example: `account`.| |`data`|Object|Yes|A JSON object defining the columns and values for the new table record. See [Examples](#examples)| |`successCallback`|Function|No|A function to call when a record is created. See [Return Value](#return-value)| -|`errorCallback`|Function|No|A function to call when the operation fails. An object with the following properties is passed:
- `errorCode`: Number. The error code.
- `message`: String. An error message describing the issue.| +|`errorCallback`|Function|No|[!INCLUDE [errorcallback-description](includes/errorcallback-description.md)]| ## Return Value diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/deleteRecord.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/deleteRecord.md index 3881d79c2e..d63e22b3f0 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/deleteRecord.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/deleteRecord.md @@ -3,7 +3,7 @@ title: "deleteRecord (Client API reference) in model-driven apps" description: Includes description and supported parameters for the deleteRecord method. author: sriharibs-msft ms.author: srihas -ms.date: 03/12/2022 +ms.date: 04/29/2025 ms.reviewer: jdaly ms.topic: reference applies_to: "Dynamics 365 (online)" @@ -27,7 +27,7 @@ contributors: |`entityLogicalName`|String|Yes|The table logical name of the record you want to delete. For example: `account`.| |`id`|String|Yes|GUID of the table record you want to delete.| |`successCallback`|Function|No|A function to call when a record is deleted. See [Return Value](#return-value)| -|`errorCallback`|Function|No|A function to call when the operation fails.| +|`errorCallback`|Function|No|[!INCLUDE [errorcallback-description](includes/errorcallback-description.md)]| ## Return Value diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/includes/errorcallback-description.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/includes/errorcallback-description.md new file mode 100644 index 0000000000..ce885e5074 --- /dev/null +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/includes/errorcallback-description.md @@ -0,0 +1 @@ +A function to call when the operation fails. An object with the following properties is passed:
- `errorCode`: Number. The error code as a positive decimal number. For example, the error code documented as `0x80040333` will be returned as `2147746611`.
- `message`: String. An error message describing the issue. \ No newline at end of file diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/online/execute.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/online/execute.md index 2a47f03a0e..2f4614d2c6 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/online/execute.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/online/execute.md @@ -3,7 +3,7 @@ title: "Xrm.WebApi.online.execute (Client API reference) in model-driven apps" description: Includes description and supported parameters for the Xrm.WebApi.online.execute method. author: sriharibs-msft ms.author: srihas -ms.date: 12/08/2023 +ms.date: 04/29/2025 ms.reviewer: jdaly ms.topic: reference applies_to: "Dynamics 365 (online)" @@ -29,7 +29,7 @@ contributors: |---|---|---|---| |`request`|Object|Yes|Object that will be passed to the Web API endpoint to execute an action, function, or CRUD request. The object exposes a `getMetadata` method *via its prototype* that lets you define the metadata for the action, function or CRUD request you want to execute. See [request.getMetadata method](#requestgetmetadata-method)| |`successCallback`|Function|No|A function to call when operation is executed successfully. See [Return Value](#return-value)| -|`errorCallback`|Function|No|A function to call when the operation fails.| +|`errorCallback`|Function|No|[!INCLUDE [errorcallback-description](../includes/errorcallback-description.md)]| ### request.getMetadata method diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/online/executeMultiple.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/online/executeMultiple.md index 5f9ffb97dd..b782124c5d 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/online/executeMultiple.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/online/executeMultiple.md @@ -3,7 +3,7 @@ title: "Xrm.WebApi.online.executeMultiple (Client API reference) in model-driven description: Includes description and supported parameters for the Xrm.WebApi.online.executeMultiple method. author: sriharibs-msft ms.author: srihas -ms.date: 03/12/2022 +ms.date: 04/29/2025 ms.reviewer: jdaly ms.topic: reference search.audienceType: @@ -21,8 +21,8 @@ contributors: If you want to execute multiple requests in a transaction, you must pass in a change set as a parameter to this method. [Change sets](../../../../../data-platform/webapi/execute-batch-operations-using-web-api.md#change-sets) represent a collection of operations that are executed in a transaction. You can also pass in individual requests and change sets together as parameters to this method. > [!NOTE] -> - You cannot include read operations (retrieve, retrieve multiple, and Web API functions) as part of a change set; this is as per the OData v4 specifications. -> - Requests can contain up to 1000 individual requests and cannot contain other batches. More information: [Execute batch operations](../../../../../data-platform/webapi/execute-batch-operations-using-web-api.md). +> - You can't include read operations (retrieve, retrieve multiple, and Web API functions) as part of a change set; this is as per the OData v4 specifications. +> - Requests can contain up to 1,000 individual requests and can't contain other batches. More information: [Execute batch operations](../../../../../data-platform/webapi/execute-batch-operations-using-web-api.md). ## Syntax @@ -58,9 +58,9 @@ Xrm.WebApi.online.executeMultiple(requests).then(successCallback, errorCallback) |Name|Type|Required|Description| |---|---|---|---| -|`requests`|Array of objects|Yes|An array of one of the following types:

**Objects** where each object is an action, function, or CRUD request that you want to execute against the Web API endpoint. Each object exposes a [getMetadata method](execute.md#requestgetmetadata-method) that lets you define the metadata for the action, function, or CRUD request you want to execute. The [execute method](execute.md) accepts this type of parameter.

**Change set** (an array of objects), where each object in the change set is as defined above. In this case, all the request objects specified in the change set are executed in a transaction.

See request examples in the [Syntax section](#syntax) for more information.| +|`requests`|Array of objects|Yes|An array of one of the following types:

**Objects** where each object is an action, function, or CRUD request that you want to execute against the Web API endpoint. Each object exposes a [getMetadata method](execute.md#requestgetmetadata-method) that lets you define the metadata for the action, function, or CRUD request you want to execute. The [execute method](execute.md) accepts this type of parameter.

**Change set** (an array of objects), where each object in the change set is as previously explained. In this case, all the request objects specified in the change set are executed in a transaction.

Find request examples in the [Syntax section](#syntax).| |`successCallback`|Function|No|A function to call when operation is executed successfully. An array of response objects is passed to the function. See [Return Value](#return-value)| -|`errorCallback`|Function|No|A function to call when the operation fails.| +|`errorCallback`|Function|No|[!INCLUDE [errorcallback-description](../includes/errorcallback-description.md)]| ## Return Value diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/retrieveMultipleRecords.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/retrieveMultipleRecords.md index 15141df0b8..bce8a1ef02 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/retrieveMultipleRecords.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/retrieveMultipleRecords.md @@ -3,7 +3,7 @@ title: "retrieveMultipleRecords (Client API reference) in model-driven apps" description: Includes description and supported parameters for the retrieveMultipleRecords method. author: sriharibs-msft ms.author: srihas -ms.date: 01/11/2023 +ms.date: 04/29/2025 ms.reviewer: jdaly ms.topic: reference search.audienceType: @@ -27,9 +27,9 @@ contributors: |---|---|---|---| |`entityLogicalName`|String|Yes|The table logical name of the records you want to retrieve. For example: `account`.| |`options`|String|No|OData system query options or FetchXML query to retrieve your data. See [Options](#options)| -|`maxPageSize`|Number|No|Specify a positive number that indicates the number of table records to be returned per page. If you don't specify this parameter, the value is defaulted to the maximum limit of 5000 records.

If the number of records being retrieved is more than the specified `maxPageSize` value or 5000 records, `nextLink` column in the returned promise object will contain a link to retrieve records.| +|`maxPageSize`|Number|No|Specify a positive number that indicates the number of table records to be returned per page. If you don't specify this parameter, the value is defaulted to the maximum limit of 5,000 records for standard tables, 500 for elastic tables.

If the number of records being retrieved is more than the specified `maxPageSize` value or the maximum limit for the table type, the `nextLink` column in the returned promise object will contain a link to retrieve records.| |`successCallback`|Function|No|A function to call when table records are retrieved. See [Return Value](#return-value)| -|`errorCallback`|Function|No|A function to call when the operation fails.| +|`errorCallback`|Function|No|[!INCLUDE [errorcallback-description](includes/errorcallback-description.md)]| ### Options diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/retrieveRecord.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/retrieveRecord.md index 861a9742dc..f20413451c 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/retrieveRecord.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/retrieveRecord.md @@ -3,7 +3,7 @@ title: "retrieveRecord (Client API reference) in model-driven apps" description: Includes description and supported parameters for the retrieveRecord method. author: sriharibs-msft ms.author: srihas -ms.date: 03/12/2022 +ms.date: 04/29/2025 ms.reviewer: jdaly ms.topic: reference applies_to: "Dynamics 365 (online)" @@ -30,7 +30,7 @@ contributors: |`id`|String|Yes|GUID of the table record you want to retrieve.| |`options`|String|No|OData system query options to control what is returned. See [Options](#options)| |`successCallback`|Function|No|A function to call when a record is retrieved. A JSON object with the retrieved properties and values passed to the function.| -|`errorCallback`|Function|No|A function to call when the operation fails.| +|`errorCallback`|Function|No|[!INCLUDE [errorcallback-description](includes/errorcallback-description.md)]| ## Options diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/updateRecord.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/updateRecord.md index 6dab1eaa91..c8c9801a23 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/updateRecord.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/updateRecord.md @@ -3,7 +3,7 @@ title: "updateRecord (Client API reference) in model-driven apps" description: Includes description and supported parameters for the updateRecord method. author: sriharibs-msft ms.author: srihas -ms.date: 08/22/2022 +ms.date: 04/29/2025 ms.reviewer: jdaly ms.topic: reference applies_to: "Dynamics 365 (online)" @@ -28,7 +28,7 @@ contributors: |`id`|String|Yes|GUID of the table record you want to update.| |`data`|Object|Yes|A JSON object containing `key: value` pairs, where `key` is the property of the table and `value` is the value of the property you want to update.
See [Examples](#examples) to see how you can define the `data` object for various update scenarios.| |`successCallback`|Function|No|A function to call when a record is updated. See [Return Value](#return-value)| -|`errorCallback`|Function|No|A function to call when the operation fails. An object with the following properties will be passed:
- `errorCode` : Number. The error code.
- `message` : String. An error message describing the issue.| +|`errorCallback`|Function|No|[!INCLUDE [errorcallback-description](includes/errorcallback-description.md)]| ## Return Value diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/controls/addeventhandler.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/controls/addeventhandler.md new file mode 100644 index 0000000000..028b96a801 --- /dev/null +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/controls/addeventhandler.md @@ -0,0 +1,50 @@ +--- +title: "addEventHandler (Client API reference) in model-driven apps" +description: Includes description and supported parameters for the addEventHandler method. +author: MitiJ +ms.author: mijosh +ms.date: 03/17/2025 +ms.reviewer: jdaly +ms.topic: reference +applies_to: "Dynamics 365 (online)" +search.audienceType: + - developer +contributors: + - JimDaly +--- +# addEventHandler (Client API reference) + +Adds an event handler for the specified event + +## Control types supported + +Custom code components + +## Syntax + +```javascript + const controlName1 = "cr116_personid"; + + this.onLoad = function (executionContext) { + const formContext = executionContext.getFormContext(); + + const sampleControl1 = formContext.getControl(controlName1); + sampleControl1.addEventHandler("customEvent1", this.onSampleControl1CustomEvent1); + sampleControl1.addEventHandler("customEvent2", this.onSampleControl1CustomEvent2); + } +``` + +[!INCLUDE[cc-terminology](../../../../data-platform/includes/cc-terminology.md)] + +## Parameters + +|Name | Type | Required | Description| +|--|--|--|--| +|`name`|string|yes|The name of the custom event configured for the custom component.| +|`function` |Function |Yes|The function to add to the named event. The [execution context](../../clientapi-execution-context.md) is automatically passed as the first parameter to this function.| + +### Related articles + +[Define Events](../../../../component-framework/events.md) + +[!INCLUDE[footer-include](../../../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/events/grid-onrecordselect.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/events/grid-onrecordselect.md index 482abfd21a..ac61c8c12b 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/reference/events/grid-onrecordselect.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/events/grid-onrecordselect.md @@ -48,8 +48,8 @@ More information: [Create or edit model-driven app web resources](../../../../.. Follow these steps to enable the **Power Apps grid control** as the main grid (table view) or within a model-driven form subgrid: -- [Use as main grid](../../../../../maker/model-driven-apps/the-power-apps-grid-control.md#add-the-power-apps-grid-control-to-views-for-a-table) -- [Use as subgrid](../../../../../maker/model-driven-apps/the-power-apps-grid-control.md#add-the-power-apps-grid-control-to-a-subgrid-on-a-form) +- [Use as main grid](../../../../../maker/model-driven-apps/the-power-apps-grid-control.md#add-the-power-apps-grid-control-to-views-using-classic-solution-explorer) +- [Use as subgrid](../../../../../maker/model-driven-apps/the-power-apps-grid-control.md#add-the-power-apps-grid-control-to-a-subgrid-using-classic-solution-explorer) ### Step 3: Register the custom behavior on OnRecordSelect Event diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/execution-context.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/execution-context.md index 4b8576b5e7..62bc23f6d7 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/reference/execution-context.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/execution-context.md @@ -5,7 +5,7 @@ author: sriharibs-msft ms.author: srihas ms.date: 03/12/2022 ms.reviewer: jdaly -ms.topic: conceptual +ms.topic: article applies_to: - "Dynamics 365 (online)" search.audienceType: diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/formContext-data/refresh.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/formContext-data/refresh.md index c172c91423..2acd542a88 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/reference/formContext-data/refresh.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/formContext-data/refresh.md @@ -3,7 +3,7 @@ title: "data.refresh (Client API reference) in model-driven apps" description: Includes description and supported parameters for the data.refresh method. author: MitiJ ms.author: mijosh -ms.date: 03/12/2022 +ms.date: 05/05/2025 ms.reviewer: jdaly ms.topic: reference applies_to: "Dynamics 365 (online)" @@ -14,10 +14,11 @@ contributors: --- # data.refresh (Client API reference) - - [!INCLUDE[./includes/refresh-description.md](./includes/refresh-description.md)] +> [!NOTE] +> File columns aren't currently refreshed. + ## Syntax `formContext.data.refresh(save).then(successCallback, errorCallback);` @@ -26,7 +27,7 @@ contributors: |Name|Type|Required|Description| |--|--|--|--| -|`save`|Boolean|No|true if the data should be saved before it is refreshed, otherwise false.| +|`save`|Boolean|No|`true` to save the data before refreshing, otherwise `false`.| |`successCallback`|Function|No|A function to call when the operation succeeds.| |`errorCallback`|Function|No|A function to call when the operation fails.| @@ -35,5 +36,4 @@ contributors: [formContext](../../clientapi-form-context.md) - [!INCLUDE[footer-include](../../../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-app.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-app.md index c387de66d0..15e96f7ae1 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-app.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-app.md @@ -14,7 +14,7 @@ contributors: --- # Xrm.App (Client API reference) -Provides app-related methods. +[!INCLUDE [xrm-app-description](Xrm-App/includes/xrm-app-description.md)] |Method |Description | |---|---| diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-copilot.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-copilot.md new file mode 100644 index 0000000000..a6f0b5df01 --- /dev/null +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-copilot.md @@ -0,0 +1,35 @@ +--- +title: "Xrm.Copilot (Client API reference) in model-driven apps (preview)" +description: Provides methods to execute registered Microsoft Copilot Studio Topics.. +author: adrianorth +ms.author: aorth +ms.date: 06/16/2025 +ms.reviewer: jdaly +ms.topic: reference +applies_to: "Dynamics 365 (online)" +ms.subservice: mda-developer +search.audienceType: + - developer +contributors: + - JimDaly +--- + +# Xrm.Copilot (Client API reference) (preview) + +[!INCLUDE [preview-note-pp](~/../shared-content/shared/preview-includes/preview-note-pp.md)] + +[!INCLUDE [xrm-copilot-description](Xrm-Copilot/includes/xrm-copilot-description.md)] + +| Method| Description| +| --- | --- | +|[executeEvent](Xrm-Copilot/executeevent.md)|[!INCLUDE [executeevent-description](Xrm-Copilot/includes/executeevent-description.md)]| +|[executePrompt](Xrm-Copilot/executeprompt.md)|[!INCLUDE [executeprompt-description](Xrm-Copilot/includes/executeprompt-description.md)]| + + + +### Related articles + +[MCSResponse](Xrm-Copilot/mcsresponse.md) +[Client API Xrm object](../clientapi-xrm.md) + +[!INCLUDE[footer-include](../../../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-device.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-device.md index b6041481dc..f9278e7b1d 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-device.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-device.md @@ -1,5 +1,5 @@ --- -title: "Xrm.Device" +title: "Xrm.Device (Client API reference) in model-driven apps" description: Provides methods to use native device capabilities via Xrm.Device. author: sriharibs-msft ms.author: srihas diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-encoding.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-encoding.md index 6c117e48b2..8003903d4c 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-encoding.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-encoding.md @@ -1,5 +1,5 @@ --- -title: "Xrm.Encoding" +title: "Xrm.Encoding (Client API reference) in model-driven apps" description: "Xrm.Encoding provides Client API methods to encode and decode strings." author: sriharibs-msft ms.author: srihas diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-panel.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-panel.md index dbfcf37272..7ce50a148e 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-panel.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-panel.md @@ -1,5 +1,5 @@ --- -title: "Xrm.Panel" +title: "Xrm.Panel (Client API reference) in model-driven apps" description: "Provides the loadPanel method to display a web page in the side pane of model-driven apps form." author: sriharibs-msft ms.author: srihas @@ -23,7 +23,7 @@ Provides a method to display a web page in the side pane of model-driven apps fo |[loadPanel](xrm-panel/loadPanel.md) |[!INCLUDE[xrm-panel/includes/loadPanel-description.md](xrm-panel/includes/loadPanel-description.md)] | > [!NOTE] -> The **Xrm.Panel** namespace was introduced in the December 2016 update for Dynamics 365 (online and on-premises), and the method under this namespace is a preview feature. A preview feature is a feature that is not complete, but is made available before it's officially in a release so customers can get early access and provide feedback. Preview features aren't meant for production use and may have limited or restricted functionality. We expect changes to this feature, so you shouldn't use it in production. Use it only in test and development environments. Microsoft doesn't provide support for this preview feature. Microsoft Dynamics 365 Technical Support won't be able to help you with issues or questions. Preview features aren't meant for production use and are subject to a separate [supplemental terms of use](https://www.microsoft.com/dynamics/Preview_Supplement_License_Terms_CRMOL_English.htm). +> The **Xrm.Panel** namespace was introduced in the December 2016 update for Dynamics 365 (online and on-premises), and the method under this namespace is a preview feature. A preview feature is a feature that isn't complete, but is made available before it's officially in a release so customers can get early access and provide feedback. Preview features aren't meant for production use and might have limited or restricted functionality. We expect changes to this feature, so you shouldn't use it in production. Use it only in test and development environments. Microsoft doesn't provide support for this preview feature. Microsoft Dynamics 365 Technical Support isn't able to help you with issues or questions. Preview features aren't meant for production use and are subject to a separate [supplemental terms of use](https://go.microsoft.com/fwlink/?linkid=2189520). ### Related articles diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-utility.md b/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-utility.md index 68254e01a4..b565cab59f 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-utility.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/reference/xrm-utility.md @@ -1,5 +1,5 @@ --- -title: "Xrm.Utility (Client API reference)" +title: "Xrm.Utility (Client API reference) in model-driven apps" description: Provides container for useful methods. author: sriharibs-msft ms.author: srihas diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/send-in-app-notifications.md b/powerapps-docs/developer/model-driven-apps/clientapi/send-in-app-notifications.md index c4489ca914..a0e0916da5 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/send-in-app-notifications.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/send-in-app-notifications.md @@ -5,7 +5,7 @@ ms.date: 06/23/2023 ms.reviewer: jdaly ms.service: powerapps ms.subservice: mda-developer -ms.topic: article +ms.topic: how-to author: sriharibs-msft ms.author: srihas search.audienceType: diff --git a/powerapps-docs/developer/model-driven-apps/clientapi/understand-clientapi-object-model.md b/powerapps-docs/developer/model-driven-apps/clientapi/understand-clientapi-object-model.md index bf83a872ae..0fba3216b9 100644 --- a/powerapps-docs/developer/model-driven-apps/clientapi/understand-clientapi-object-model.md +++ b/powerapps-docs/developer/model-driven-apps/clientapi/understand-clientapi-object-model.md @@ -5,7 +5,7 @@ author: sriharibs-msft ms.author: srihas ms.date: 04/01/2022 ms.reviewer: jdaly -ms.topic: "conceptual" +ms.topic: concept-article applies_to: - "Dynamics 365 (online)" ms.subservice: mda-developer diff --git a/powerapps-docs/developer/model-driven-apps/create-dashboard.md b/powerapps-docs/developer/model-driven-apps/create-dashboard.md index 2b6d289ed8..e6e73e5f64 100644 --- a/powerapps-docs/developer/model-driven-apps/create-dashboard.md +++ b/powerapps-docs/developer/model-driven-apps/create-dashboard.md @@ -2,7 +2,7 @@ title: "Create a dashboard (model-driven apps)" description: "Organization-owned dashboards can be created by using the Microsoft Dataverse web services (SDK) or by customizing the form in Dataverse by editing the customizations.xml file." ms.date: 04/01/2022 -ms.topic: article +ms.topic: how-to author: jasongre ms.author: jasongre ms.reviewer: jdaly diff --git a/powerapps-docs/developer/model-driven-apps/create-visualization-chart.md b/powerapps-docs/developer/model-driven-apps/create-visualization-chart.md index eaf4d0518d..b840b7bda9 100644 --- a/powerapps-docs/developer/model-driven-apps/create-visualization-chart.md +++ b/powerapps-docs/developer/model-driven-apps/create-visualization-chart.md @@ -5,7 +5,7 @@ author: jasongre ms.author: jasongre ms.date: 04/01/2022 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.assetid: 9dbed5ee-21a4-ab86-fc4c-08c3838e42f2 ms.subservice: mda-developer search.audienceType: diff --git a/powerapps-docs/developer/model-driven-apps/customize-entity-forms.md b/powerapps-docs/developer/model-driven-apps/customize-entity-forms.md index 68c8022dba..b9b30049a6 100644 --- a/powerapps-docs/developer/model-driven-apps/customize-entity-forms.md +++ b/powerapps-docs/developer/model-driven-apps/customize-entity-forms.md @@ -5,7 +5,7 @@ author: MitiJ ms.author: mijosh ms.date: 04/01/2022 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/customize-entity-views.md b/powerapps-docs/developer/model-driven-apps/customize-entity-views.md index b6359d4027..e0064a129b 100644 --- a/powerapps-docs/developer/model-driven-apps/customize-entity-views.md +++ b/powerapps-docs/developer/model-driven-apps/customize-entity-views.md @@ -5,7 +5,7 @@ author: clromano ms.author: clromano ms.reviewer: jdaly ms.date: 04/01/2022 -ms.topic: article +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/define-ribbon-enable-rules.md b/powerapps-docs/developer/model-driven-apps/define-ribbon-enable-rules.md index 78040b5038..fd956cee1d 100644 --- a/powerapps-docs/developer/model-driven-apps/define-ribbon-enable-rules.md +++ b/powerapps-docs/developer/model-driven-apps/define-ribbon-enable-rules.md @@ -5,7 +5,7 @@ author: clromano ms.author: clromano ms.date: 05/24/2022 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/edit-customizations-xml-file-schema-validation.md b/powerapps-docs/developer/model-driven-apps/edit-customizations-xml-file-schema-validation.md index e79bee5b4c..4231cc8305 100644 --- a/powerapps-docs/developer/model-driven-apps/edit-customizations-xml-file-schema-validation.md +++ b/powerapps-docs/developer/model-driven-apps/edit-customizations-xml-file-schema-validation.md @@ -5,7 +5,7 @@ author: caburk ms.author: caburk ms.date: 04/01/2022 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/export-ribbon-definitions.md b/powerapps-docs/developer/model-driven-apps/export-ribbon-definitions.md index a97bb3d723..555a90d045 100644 --- a/powerapps-docs/developer/model-driven-apps/export-ribbon-definitions.md +++ b/powerapps-docs/developer/model-driven-apps/export-ribbon-definitions.md @@ -5,7 +5,7 @@ author: clromano ms.author: clromano ms.date: 05/24/2022 ms.reviewer: jdaly -ms.topic: "article" +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/image-web-resources.md b/powerapps-docs/developer/model-driven-apps/image-web-resources.md index f41b8a7b28..012d13e3b4 100644 --- a/powerapps-docs/developer/model-driven-apps/image-web-resources.md +++ b/powerapps-docs/developer/model-driven-apps/image-web-resources.md @@ -5,7 +5,7 @@ author: anushikhas96 ms.author: anushisharma ms.date: 04/26/2024 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/media/ClientAPI-XrmModel.png b/powerapps-docs/developer/model-driven-apps/media/ClientAPI-XrmModel.png deleted file mode 100644 index 60708b18dc..0000000000 Binary files a/powerapps-docs/developer/model-driven-apps/media/ClientAPI-XrmModel.png and /dev/null differ diff --git a/powerapps-docs/developer/model-driven-apps/open-forms-views-dialogs-reports-url.md b/powerapps-docs/developer/model-driven-apps/open-forms-views-dialogs-reports-url.md index 46c626b32c..bb36b1b5d3 100644 --- a/powerapps-docs/developer/model-driven-apps/open-forms-views-dialogs-reports-url.md +++ b/powerapps-docs/developer/model-driven-apps/open-forms-views-dialogs-reports-url.md @@ -5,7 +5,7 @@ author: MitiJ ms.author: mijosh ms.date: 06/20/2024 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/override-default-open-behavior-grids.md b/powerapps-docs/developer/model-driven-apps/override-default-open-behavior-grids.md index d6a12e588e..fca09dcc26 100644 --- a/powerapps-docs/developer/model-driven-apps/override-default-open-behavior-grids.md +++ b/powerapps-docs/developer/model-driven-apps/override-default-open-behavior-grids.md @@ -5,7 +5,7 @@ author: clromano ms.author: clromano ms.date: 12/09/2022 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/pass-data-page-parameter-ribbon-actions.md b/powerapps-docs/developer/model-driven-apps/pass-data-page-parameter-ribbon-actions.md index b6b0728e45..923b324de3 100644 --- a/powerapps-docs/developer/model-driven-apps/pass-data-page-parameter-ribbon-actions.md +++ b/powerapps-docs/developer/model-driven-apps/pass-data-page-parameter-ribbon-actions.md @@ -5,7 +5,7 @@ author: clromano ms.author: clromano ms.date: 05/24/2022 ms.reviewer: jdaly -ms.topic: "article" +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/pass-parameters-url-by-using-ribbon.md b/powerapps-docs/developer/model-driven-apps/pass-parameters-url-by-using-ribbon.md index c7467908e8..e1099ff09a 100644 --- a/powerapps-docs/developer/model-driven-apps/pass-parameters-url-by-using-ribbon.md +++ b/powerapps-docs/developer/model-driven-apps/pass-parameters-url-by-using-ribbon.md @@ -5,7 +5,7 @@ author: clromano ms.author: clromano ms.date: 05/24/2022 ms.reviewer: jdaly -ms.topic: "article" +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/query-and-edit-an-organization-theme.md b/powerapps-docs/developer/model-driven-apps/query-and-edit-an-organization-theme.md index 8542586c5f..f7c57841b2 100644 --- a/powerapps-docs/developer/model-driven-apps/query-and-edit-an-organization-theme.md +++ b/powerapps-docs/developer/model-driven-apps/query-and-edit-an-organization-theme.md @@ -5,7 +5,7 @@ author: jasongre ms.author: jasongre ms.date: 04/01/2022 ms.reviewer: jdaly -ms.topic: "article" +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/resx-web-resources.md b/powerapps-docs/developer/model-driven-apps/resx-web-resources.md index bc5bec1bae..9b2ccfd826 100644 --- a/powerapps-docs/developer/model-driven-apps/resx-web-resources.md +++ b/powerapps-docs/developer/model-driven-apps/resx-web-resources.md @@ -5,7 +5,7 @@ author: anushikhas96 ms.author: anushisharma ms.date: 04/01/2022 ms.reviewer: jdaly -ms.topic: "article" +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/sample-charts.md b/powerapps-docs/developer/model-driven-apps/sample-charts.md index 4d995fa36f..8655141f36 100644 --- a/powerapps-docs/developer/model-driven-apps/sample-charts.md +++ b/powerapps-docs/developer/model-driven-apps/sample-charts.md @@ -5,7 +5,7 @@ author: jasongre ms.author: jasongre ms.date: 03/13/2025 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/set-field-values-using-parameters-passed-form.md b/powerapps-docs/developer/model-driven-apps/set-field-values-using-parameters-passed-form.md index f27c51c48d..5b1c156522 100644 --- a/powerapps-docs/developer/model-driven-apps/set-field-values-using-parameters-passed-form.md +++ b/powerapps-docs/developer/model-driven-apps/set-field-values-using-parameters-passed-form.md @@ -5,7 +5,7 @@ author: MitiJ ms.author: mijosh ms.date: 04/01/2022 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/streamline-javascript-development-fiddler-autoresponder.md b/powerapps-docs/developer/model-driven-apps/streamline-javascript-development-fiddler-autoresponder.md index cecaba139e..a1ccaadac6 100644 --- a/powerapps-docs/developer/model-driven-apps/streamline-javascript-development-fiddler-autoresponder.md +++ b/powerapps-docs/developer/model-driven-apps/streamline-javascript-development-fiddler-autoresponder.md @@ -5,7 +5,7 @@ author: anushikhas96 ms.author: anushisharma ms.date: 12/04/2022 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/testing-tools-client.md b/powerapps-docs/developer/model-driven-apps/testing-tools-client.md index 8348be2376..fe4d257fbd 100644 --- a/powerapps-docs/developer/model-driven-apps/testing-tools-client.md +++ b/powerapps-docs/developer/model-driven-apps/testing-tools-client.md @@ -2,7 +2,7 @@ title: "Testing tools for client-side development (Microsoft Dataverse)" description: "Learn about testing frameworks for client-side development." ms.date: 04/01/2022 -ms.topic: article +ms.topic: concept-article author: pvillads ms.author: pvillads ms.subservice: mda-developer diff --git a/powerapps-docs/developer/model-driven-apps/troubleshoot-forms.md b/powerapps-docs/developer/model-driven-apps/troubleshoot-forms.md index 2e52d40df9..410e345f1a 100644 --- a/powerapps-docs/developer/model-driven-apps/troubleshoot-forms.md +++ b/powerapps-docs/developer/model-driven-apps/troubleshoot-forms.md @@ -3,10 +3,10 @@ title: "Troubleshoot form issues in model-driven apps (model-driven apps)" description: "Learn about how to resolve the common issues on model-driven apps forms." author: MitiJ ms.author: mijosh -ms.date: 09/24/2024 +ms.date: 04/02/2025 ms.reviewer: jdaly ms.subservice: troubleshoot -ms.topic: article +ms.topic: troubleshooting-general search.audienceType: - developer contributors: @@ -20,6 +20,7 @@ contributors: This article has information to help fix some of the common issues you might encounter while working with model-driven app forms. > [!IMPORTANT] +> > - The tools described in this article are designed for troubleshooting purposes; they aren't meant to be used in day-to-day production scenarios, even though you can use them for troubleshooting issues in production environments. > - These troubleshooting tools only affect the current user session unless otherwise noted (for example, when a browser tab accesses the model-driven app). They don't change system customizations or affect any other users or sessions. After the current session is closed, the effect is no longer applied. > - Most of the tools are available in all the production environments. Some of them mentioned in the article might not have been deployed to your organization yet; new tools are added periodically. @@ -66,9 +67,9 @@ When you're troubleshooting issues with forms, you need to use the URL parameter Disables all the event handlers within the given range by specifying `startIndex` and `endIndex` values (both are included). For example, `DisableFormHandlers=true_0_2` disables all the event handlers of index 0, 1, and 2. `DisableFormHandlers=onload_2_5` disables the [OnLoad](./clientapi/reference/events/form-onload.md) event handler of index 2, 3, 4, and 5. If you have more event handlers, you can use this approach to narrow down problematic handlers quickly. > [!NOTE] - > Business rules are authored in the business rule designer, compiled into the client-side script, and registered in multiple form events, such as `OnLoad`, `OnSave`, and `OnChange`. The way to disable business rules are very similar to other form events. However, there're a few key differences: - > - When you use `DisableFormHandlers=true`, `businessrule`, `businessrule_*index*`, or `businessrule_*startIndex_endIndex*`, you're disabling the business rule(s) in all the form events they're registered to. - > - For example, the following image shows instructions on refreshing business rule(s) in the backend. You only need to do it once in your organization, and you can revert your changes after troubleshooting. + > Business rules are authored in the business rule designer, compiled into the client-side script, and registered in multiple form events, such as `OnLoad`, `OnSave`, and `OnChange`. The way to disable business rules are similar to other form events. However, there are a few key differences: + > - When you use `DisableFormHandlers=true`, `businessrule`, `businessrule_*index*`, or `businessrule_*startIndex_endIndex*`, you're disabling all business rules in all the form events they're registered to. + > - For example, the following image shows instructions on refreshing business rules in the backend. You only need to do it once in your organization, and you can revert your changes after troubleshooting. > ![Refresh business rules](media/businessrule-need-refresh.png "Refresh business rules") > - After you perform the above action and refresh the form, you'll see different message with additional information, as shown in the following image: > ![Business rules individual control](media/businessrule-individual-control.png "Business rules individual control") @@ -120,7 +121,7 @@ https://myorg.crm.dynamics.crm/main.aspx?appid=00000000-0000-0000-0000-000000000 > [!NOTE] > The difference between **DisableFormHandlers** and **DisableFormLibraries** are: -> - The **DisableFormHandlers** flag disables form handlers regardless of the containing form libraries. In contrast, the **DisableFormLibraries** flag disables the form libraries (web resources) regardless of the functions (event handlers) included in the libraries. Simply put, **DisableFormLibraries** makes sure the specified JavaScript web resource files are not loaded. +> - The **DisableFormHandlers** flag disables form handlers regardless of the containing form libraries. In contrast, the **DisableFormLibraries** flag disables the form libraries (web resources) regardless of the functions (event handlers) included in the libraries. Simply put, **DisableFormLibraries** makes sure the specified JavaScript web resource files aren't loaded. > - The **DisableFormHandlers** flag doesn't prevent the containing form library from being loaded. Thus it doesn't stop the JavaScript code present in the library but not registered as an event handler from being executed. For example, if a form library `new_myscript.js` is written in the following way (not recommended practice): > - You should start with **DisableFormHandlers** to see if the issue goes away, and if not, you can try **DisableFormLibraries**. Disabling any script always involves some risks of potentially breaking your form scenarios. However, the latter tend to have more side effects because of the disablement of the entire JavaScript files. > ![Difference between DisableFormHandlers and DisableFormLibraries](media/difference-between-disableformhandlers-disableformlibraries.png "Difference between DisableFormHandlers and DisableFormLibraries") @@ -200,7 +201,7 @@ Using [Monitor](../../maker/model-driven-apps/monitor-form-checker.md), you can > ![Unsupported Client API](media/unsupported-client-api-method.png "Unsupported Client API") > [!NOTE] -> The call stack has been modified for illustration purposes. The call stack shows details like web resource, function, and the line causing the error. +> The call stack is modified for illustration purposes. The call stack shows details like web resource, function, and the line causing the error. Follow up with the script owner to further troubleshoot the issue. @@ -247,7 +248,7 @@ This issue occurs if a business rule or custom script that used to work in the l One of the reasons that the business rule or script isn't working in Unified Interface is that the controls that are part of them don't exist in Unified Interface. Composite controls exist in the web client, but in Unified Interface composite control is broken down into parts and is stored differently. For example, if the column `fullname` is part of the business rule or custom script, columns `firstname`, `middlename`, or `lastname` should be used instead. -Once you launch form checker, you are able to see more details in the `CompositeControl` operation including the composite control that is causing the problem, the columns that can be used in the business rule or custom script instead and a full call stack (the call stack is modified for demonstration purposes). +Once you launch form checker, you're able to see more details in the `CompositeControl` operation including the composite control that is causing the problem, the columns that can be used in the business rule or custom script instead and a full call stack (the call stack is modified for demonstration purposes). > [!div class="mx-imgBorder"] > ![Custom script not working](media/custom-script-error.png "Custom script not working") @@ -477,7 +478,7 @@ Finally, if the control passes all the above checks, the record state determines > The difference between `FormControls` and `ControlStateChange` is that the `FormControls` operation reflects the initial control state when the form is loaded, while the `ControlStateChange`operation reflects the state change at any time on the form, whether it's during form load, in OnChange or OnSave events after the form is loaded. > [!IMPORTANT] -> A control's disabled and hidden state can change multiple times when a form is first loaded. To know the reason why a control is hidden or disabled, make sure to check the **last** operation logged in the monitor. For example, if there are no `ControlStateChange.visible/ControlStateChange.hidden` operations for the control being investigated, the value and reasoning will be in the `FormControls` operation. Otherwise, it will be the value and reason in the **last** `ControlStateChange.visible/ControlStateChange.hidden` operation. You can order logs by timestamp to search for the last operation. +> A control's disabled and hidden state can change multiple times when a form is first loaded. To know the reason why a control is hidden or disabled, make sure to check the **last** operation logged in the monitor. For example, if there are no `ControlStateChange.visible/ControlStateChange.hidden` operations for the control being investigated, the value and reasoning will be in the `FormControls` operation. Otherwise, it is the value and reason in the **last** `ControlStateChange.visible/ControlStateChange.hidden` operation. You can order logs by timestamp to search for the last operation. ## Why a control has a certain value on form load @@ -500,7 +501,7 @@ There are scenarios where columns are populated based on a relationship column m > [!div class="mx-imgBorder"] > ![Control value after](media/control-default-value-update-sequence.png "Control value after") -Verify where the value is coming from and take action based on the below table: +Verify where the value is coming from and take action based on the following table: | Source | How to fix | |--|--| @@ -601,25 +602,32 @@ The following screenshot shows the root cause of the issue. You can see that the > ![Unsaved changes error](media/unsaved-changes-error.png "Unsaved changes error") > [!NOTE] -> If the user has manually made the changes on the form, a call stack will not be provided. +> If the user has manually made the changes on the form, a call stack won't be provided. Verify where the change is coming from and if the behavior is expected or not. If a script causes the change, the original web resource can be traced back in the call stack. In most cases, it's a script. Make a decision based on the web resource itself. +## Business required column doesn't block saving -## Business required column validation doesn't behave as expected +Business required columns are a usability feature that help prevent users from saving a record with an empty value in that column. In model-driven apps and Power Pages, the following scenarios don't block saving a record when a required column has an empty value: + +- The column is hidden from the form, either because of [column properties](../../maker/model-driven-apps/add-move-or-delete-fields-on-form.md#configure-column-properties-on-a-form) or a client-side script using the [control.setVisible Client API](clientapi/reference/controls/setVisible.md) . +- The column is on a hidden form tab or section. +- A client-side script changes the column's required level using the [setRequiredLevel Client API](clientapi/reference/attributes/setRequiredLevel.md). +- The user isn't using model-driven apps or Power Pages to create the record. Client applications using Dataverse APIs aren't blocked from saving records when column [AttributeMetadata.RequirementLevel](/dotnet/api/microsoft.xrm.sdk.metadata.attributemetadata.requiredlevel) is set to [AttributeRequiredLevel.ApplicationRequired](/dotnet/api/microsoft.xrm.sdk.metadata.attributerequiredlevel). [Learn more about column requirement level](../data-platform/entity-attribute-metadata.md#column-requirement-level) + +When you need to enforce data integrity, you should use [entity business rules](../../maker/data-platform/data-platform-create-business-rule.md) and other server-side validation instead, such as [synchronous plug-ins](../data-platform/plug-ins.md). -Business required columns by default block the form save operation if the value is empty. However, in many by-design scenarios, a business-required column might not block the save operation when the value is empty or block the save when you don't believe it should. ### How to troubleshoot -The `RequiredFieldValidation` operation is logged when a save is attempted, regardless of whether save is successful or not. This operation explains why each business-required column blocks or doesn't block the save operation. +The `RequiredFieldValidation` operation is logged when a save is attempted, regardless of whether save is successful or not. This operation explains why each business required column blocks or doesn't block the save operation. The following image is an example of this operation. The message explains how to read the detailed reports of each required column. In this example, `fax` column is bound to one control, and the control of the same name is read-only. Therefore it won't trigger required column validation. > [!div class="mx-imgBorder"] > ![Column validation](media/required-field-validation.png "Column validation") -The following image is another example that `jobtitle` is a business-required column on the business process flow but not on the form, and the column isn't modified. Thus it doesn't block the save operation even when it's empty. +The following image is another example that `jobtitle` is a business required column on the business process flow but not on the form, and the column isn't modified. Thus it doesn't block the save operation even when it's empty. > [!div class="mx-imgBorder"] > ![Required column validation](media/required-field-validation-bpf-only-field.png "Required column validation") @@ -630,6 +638,20 @@ Most times, the behavior is by design, and the `RequiredFieldValidation` operati This might lead to another troubleshooting scenario such as [Why a control is disabled/enabled or visible/hidden](#why-a-control-is-disabledenabled-or-visiblehidden). +## Can't create a record because of insufficient permissions to a secured field, even though that field isn't in the form + +This might happen when users create a record (row) from a different form. They get the error message **The user does not have create permissions to a secured field** even though they haven't entered a value for that field (column), or that field isn't on the form. + +When table **A** has a lookup field to table **B**, creating a record **A** from record **B** automatically sets lookup fields on it to **B**, even if those fields aren't on the form. + +For example: + +1. Account table has a lookup field, `primarycontactid`, to the contact table. +1. User opens a contact form for **Robin Danielsen**. +1. User opens the lookup field, `parentaccountid`, on the form and selects the button to create a new account. +1. New account form opens, with the `primarycontactid` field automatically set to **Robin Danielsen**. + +If the `primarycontactid` field is [secured](/power-platform/admin/field-level-security) and the user doesn't have permissions to edit it, they'll get an error when they try to save the new account. They can clear the field before saving it. However, if that field isn't on the form, they can't clear it. A workaround is to create the account from the account page instead of from a contact form. ## Some columns aren't displayed on the merge dialog diff --git a/powerapps-docs/developer/model-driven-apps/understand-charts-underlying-data-chart-representation.md b/powerapps-docs/developer/model-driven-apps/understand-charts-underlying-data-chart-representation.md index bde93c11be..619d5862d2 100644 --- a/powerapps-docs/developer/model-driven-apps/understand-charts-underlying-data-chart-representation.md +++ b/powerapps-docs/developer/model-driven-apps/understand-charts-underlying-data-chart-representation.md @@ -5,7 +5,7 @@ author: jasongre ms.author: jasongre ms.date: 03/03/2025 ms.reviewer: jdaly -ms.topic: article +ms.topic: concept-article ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/understand-dashboards-dashboard-components-formxml.md b/powerapps-docs/developer/model-driven-apps/understand-dashboards-dashboard-components-formxml.md index 8285b933eb..5a942a2a00 100644 --- a/powerapps-docs/developer/model-driven-apps/understand-dashboards-dashboard-components-formxml.md +++ b/powerapps-docs/developer/model-driven-apps/understand-dashboards-dashboard-components-formxml.md @@ -5,7 +5,7 @@ author: jasongre ms.author: jasongre ms.date: 04/01/2022 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/use-editable-grids.md b/powerapps-docs/developer/model-driven-apps/use-editable-grids.md index baeb4a6f4a..336034aa6f 100644 --- a/powerapps-docs/developer/model-driven-apps/use-editable-grids.md +++ b/powerapps-docs/developer/model-driven-apps/use-editable-grids.md @@ -5,7 +5,7 @@ author: clromano ms.author: clromano ms.date: 04/01/2022 ms.reviewer: jdaly -ms.topic: "article" +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/model-driven-apps/use-iframe-and-web-resource-controls-on-a-form.md b/powerapps-docs/developer/model-driven-apps/use-iframe-and-web-resource-controls-on-a-form.md index b298a112b7..ba883457b7 100644 --- a/powerapps-docs/developer/model-driven-apps/use-iframe-and-web-resource-controls-on-a-form.md +++ b/powerapps-docs/developer/model-driven-apps/use-iframe-and-web-resource-controls-on-a-form.md @@ -5,7 +5,7 @@ author: anushikhas96 ms.author: anushisharma ms.date: 06/10/2022 ms.reviewer: jdaly -ms.topic: article +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer @@ -128,10 +128,10 @@ var newTarget = ""; //Set the target based on the value of the option set switch (value) { case 100000001: - newTarget = https://myServer/test/pageOne.aspx; + newTarget = "https://myServer/test/pageOne.aspx"; break; default: - newTarget = https://myServer/test/pageTwo.aspx; + newTarget = "https://myServer/test/pageTwo.aspx"; break; } //Get the default URL for the IFRAME, which includes the diff --git a/powerapps-docs/developer/model-driven-apps/use-localized-labels-ribbons.md b/powerapps-docs/developer/model-driven-apps/use-localized-labels-ribbons.md index 08a1ce80b8..2ee57ec471 100644 --- a/powerapps-docs/developer/model-driven-apps/use-localized-labels-ribbons.md +++ b/powerapps-docs/developer/model-driven-apps/use-localized-labels-ribbons.md @@ -5,7 +5,7 @@ author: clromano ms.author: clromano ms.date: 05/24/2022 ms.reviewer: jdaly -ms.topic: "article" +ms.topic: how-to ms.subservice: mda-developer search.audienceType: - developer diff --git a/powerapps-docs/developer/test-engine/media/download-test-suite-individual.png b/powerapps-docs/developer/test-engine/media/download-test-suite-individual.png deleted file mode 100644 index fe9bc41a59..0000000000 Binary files a/powerapps-docs/developer/test-engine/media/download-test-suite-individual.png and /dev/null differ diff --git a/powerapps-docs/developer/test-engine/media/download-test-suite.png b/powerapps-docs/developer/test-engine/media/download-test-suite.png deleted file mode 100644 index 76d2768b8e..0000000000 Binary files a/powerapps-docs/developer/test-engine/media/download-test-suite.png and /dev/null differ diff --git a/powerapps-docs/developer/test-engine/overview.md b/powerapps-docs/developer/test-engine/overview.md deleted file mode 100644 index 3241364bfa..0000000000 --- a/powerapps-docs/developer/test-engine/overview.md +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: Power Apps Test Engine overview (preview) -description: Learn about how you can automate tests of standalone canvas apps using the Power Apps Test Engine within Power Platform CLI. -author: pvillads -ms.author: pvillads -ms.date: 05/14/2024 -ms.reviewer: jdaly -ms.topic: article -contributors: - - JimDaly - - jt000 - - FrankDahl ---- - - -# Power Apps Test Engine overview (preview) - -[!INCLUDE [preview-banner](../../../shared/preview-includes/preview-banner.md)] - -Power Apps Test Engine is a component within the Power Platform CLI (PAC CLI) used for testing standalone canvas apps in Power Apps. You must [Install Microsoft Power Platform CLI](/power-platform/developer/cli/introduction#install-microsoft-power-platform-cli) to use the Test Engine. - -[!INCLUDE [preview-note](../../../shared/preview-includes/preview-note-pp.md)] - -## Benefits - -Power Apps Test Engine has the following benefits: - -- **Power Fx test authoring**: Author tests in YAML format using the familiar Power Fx language. -- **DOM abstraction**: Use references to control names that are defined within Power Apps Studio when you author tests. You don't need to use JavaScript, or be familiar with the browser Document Object Model (DOM) rendered output of the app. -- **Connector mocking**: You can create mocks of network calls the app makes using connectors. You can test the app without modifying it and avoid unwanted side-effects of the external APIs. -- **Screenshot and video recording support**: You can use Test Engine to take screenshots and record videos of the test run. These images and recordings help diagnose failed tests and understand the actual experience of the failed test cases. - -## Testing your app - -Testing your app with Test Engine requires the following steps: - -1. [Create a Test Plan](#create-a-test-plan) -1. [Set up your user](#set-up-your-user) -1. [Run the test](#run-the-test) -1. [View the results](#view-the-results) - -### Create a Test Plan - -Test plans are defined using [YAML](https://yaml.org/spec/1.2.2/) format. You can [author your own test plan](#author-your-own-test-plan) or [download recorded tests from Test Studio](#download-recorded-tests-from-test-studio). - - - - -#### Author your own test plan - -Create a yaml file using the test plan schema explained in [Power Apps Test Engine YAML format (preview)](yaml.md). - -#### Download recorded tests from Test Studio - -If you have tests that you have recorded in [Test Studio](../../maker/canvas-apps/test-studio.md), you can download them from Test Studio to reuse in Test Engine. - -- Use the **Download suite** button in Test Studio to download the test plan. Choose the test suite to download if you have multiple test suites. - - ![Screenshot of Test Studio download test suite button](media/download-test-suite.png) - -- Alternatively, use the **Download** button available under each test suite. - - ![Screenshot of Test Studio download test suite individual button](media/download-test-suite-individual.png) - -- Make sure you update the config file and user configurations if you're using a different tenant or environment for this app. - -### Set up your user - -Test Engine doesn't support multi-factor authentication. Use an account that requires only a username and password to sign in for your tests. - -You can't store test credentials in test plan files. Store them in environment variables. The test plan file contains references to which environment variables are used for credentials. For example, the following YAML snippet indicates that the `user1Email` and `user1Password` environment variables are used: - -```yaml -environmentVariables: - users: - - personaName: User1 - emailKey: user1Email - passwordKey: user1Password -``` - -View [Users](yaml.md#users) for more information. - -Use the following PowerShell script to store the username and password in your environment variables. - -```powershell -$env:user1Email = "someone@example.com" -$env:user1Password = "fake password" -``` - -### Run the test - -Use the PAC CLI [pac test run](/power-platform/developer/cli/reference/tests#pac-test-run) command to run your test plan. You must provide: - -- Path to your test plan file -- EnvironmentId -- TenantId - - -### View the results - -When the tests complete, you can view the results of your test in the `.trx` file located in the output directory. This folder contains any screenshots or videos captured by your tests when `recordVideo` is set to `true` in the test plan yaml. - -## Limitations - -The following are known limitations when working with Power Apps Test Engine. - -- Multi-factor authentication isn't supported. Use an account that requires only a username and password to run your tests. -- Browser locale will follow your browser's default settings -- [Modern Controls (preview)](../../maker/canvas-apps/controls/modern-controls/overview-modern-controls.md) are currently not supported - -### Supported Browsers - -Test engine currently supports the following browsers. - -- Chromium -- Firefox -- WebKit - -## Additional considerations - -The following are some additional things to consider for your test plans. - -### Languages and regions that use period as the decimal separator - -The syntax of Power Fx can differ based on your system's language settings. Use the `locale` property in the `testSettings` section of the test plan file to specify the locale in which your Power Fx is written. (See `locale` in [testSettings](yaml.md#testsettings)). This is useful if you're working across regions that use different decimal or thousands separators. For example, `,` instead of `.` for decimals and `;` instead of `,`. - -See the following samples that have the `locale` property specified as examples of its usage: - -1. `;` instead of `,` for separator - [testPlanForRegionUsePeriodAsDecimalSeparator.fx.yaml](https://github.com/microsoft/PowerApps-TestEngine/blob/main/samples/basicgallery/testPlanForRegionUseSemicolonAsSeparator.fx.yaml) -2. `,` instead of `.` for separator - [testPlanWithCommaForDecimal.fx.yaml.fx.yaml](https://github.com/microsoft/PowerApps-TestEngine/blob/main/samples/calculator/testPlanWithCommaForDecimal.fx.yaml) - -### How apps are referenced in test plan files - -The way that test plan files refer to the target app depends on whether or not the app is in a solution or not. We recommend using solutions whenever possible because they provide greater portability. - -#### Working with apps within solutions - -Test plan files for apps that are part of [Solutions overview](../../maker/data-platform/solutions-overview.md) are portable across environments. For solution-based apps, the test plan refers to the target app with a logical name (the app `LogicalName` property) which doesn't change if the app moves to a different environment. - -1. Locate the Logical name for the app - 1. In the **Solutions** tab, open the solution that contains the app - 1. Select **Apps** - 1. Note the **Name** column. It's the app logical name (Not the **Display name**) -1. Update your test plan file - 1. Open the test plan YAML file for the app - 1. Fill in the **appLogicalName** value with the new App logical name - -#### Working with apps outside of solutions - -If you move an app that is _not_ part of a solution to a new environment, you'll need to manually update the test plan file to refer to the app. How to update a test plan file for a non-solution based app: - -1. Locate the App ID for the app in its new location - 1. In the **Apps** list, locate the app and open the context menu - 1. Select **Details** - 1. Note the **App ID** GUID on the Details pane -1. Update your test plan file - 1. Open the test plan YAML file for the app - 1. Fill in the **appId** with the new App ID - -### See also - -[Power Apps Test Engine release notes](https://github.com/microsoft/PowerApps-TestEngine/releases) -[Power Apps Test Engine YAML format (preview)](yaml.md) -[Power Apps Test Engine Power Fx functions (preview)](powerfx.md) - -[!INCLUDE [footer-banner](../../includes/footer-banner.md)] diff --git a/powerapps-docs/developer/test-engine/powerfx.md b/powerapps-docs/developer/test-engine/powerfx.md deleted file mode 100644 index ba29101432..0000000000 --- a/powerapps-docs/developer/test-engine/powerfx.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: "Power Apps Test Engine Power Fx functions (preview)" -description: "Describes Power Fx functions you can use with Power Apps Test Engine." -author: pvillads -ms.author: pvillads -ms.date: 08/11/2023 -ms.reviewer: jdaly -ms.topic: article -contributors: - - JimDaly - - jt000 - - FrankDahl ---- - - -# Power Apps Test Engine Power Fx functions (preview) - - -[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] - -There are several functions defined for the test framework. - -- [Assert](#assert) -- [Screenshot](#screenshot) -- [Select](#select) -- [SetProperty](#setproperty) -- [Wait](#wait) - -## Assert - -`Assert(BooleanExpression)` - -`Assert(BooleanExpression, Message)` - -The `Assert` function takes in a Power Fx expression that should evaluate to a boolean value. If the value returned is false, the test fails. - -### Assert example - -`Assert(Label1.Text = "1");` - -`Assert(Label1.Text = "1", "Checking that the Label1 text is set to 1");` - -## Screenshot - -`Screenshot(fileNameOfScreenshot)` - -This function captures a screenshot of the app at the current point in time. The screenshot file is saved to the test output folder and with the name provided. - -> **Note:** Only jpeg and png files are supported. - -### Screenshot Example - -`Screenshot("buttonClicked.png")` - -## Select - -`Select(control)` - -`Select(control, row or column)` - -`Select(control, row or column, child control)` - -`Select(Index(gallerycontrol.AllItems, row or column).child control)` - -This function has the same functionality as the Power Apps [Select function](/power-platform/power-fx/reference/function-select). - -When working with a nested gallery, use [Index()](/power-platform/power-fx/reference/function-first-last) within the select function. - -### Select example - -`Select(Button1)` - -`Select(Gallery1,1)` - -`Select(Gallery1,1,Button1)` - -`Select(Index(Gallery1.AllItems, 2).Icon2)` - -`Select(Index(Index(Gallery1.AllItems, 1).Gallery2.AllItems, 4).Icon3);` - -## SetProperty - -`SetProperty(control.propertyName, propertyValue)` - -This function has the same functionality as the Power Apps [SetProperty function](/power-platform/power-fx/reference/function-setproperty). - -When working with a nested gallery, use [Index()](/power-platform/power-fx/reference/function-first-last) within the `SetProperty` function. - -### SetProperty example - -`SetProperty(TextInput.Text, "Say Something")` - -`SetProperty(Dropdown1.Selected, {Value:"2"})` - -`SetProperty(ComboBox1.SelectedItems, Table({Value:"1"},{Value:"2"}))` - -`SetProperty(Index(Gallery1.AllItems, 1).TextInput1.Text, "Change the text input")` - -`Select(Index(Index(Gallery1.AllItems, 1).Gallery2.AllItems, 1).TextInput1.Text, "Change the text input")` - -## Wait - -`Wait(Control, Property, Value)` - -This function waits for the property of the control to equal the specified value. - -### Wait example - -` Wait(Label1, "Text", "0")` - -### See also - -[Power Apps Test Engine overview (preview)](overview.md) -[Power Apps Test Engine YAML format (preview)](yaml.md) - -[!INCLUDE [footer-banner](../../includes/footer-banner.md)] - diff --git a/powerapps-docs/developer/test-engine/yaml.md b/powerapps-docs/developer/test-engine/yaml.md deleted file mode 100644 index f80639c4fb..0000000000 --- a/powerapps-docs/developer/test-engine/yaml.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -title: "Power Apps Test Engine YAML format (preview)" -description: Describes the YAML format for test following the same guidelines as Power Fx. -author: pvillads -ms.author: pvillads -ms.date: 02/23/2024 -ms.reviewer: jdaly -ms.topic: article -contributors: - - JimDaly - - jt000 - - FrankDahl ---- - -# Power Apps Test Engine YAML format (preview) - -[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] - -Tests are defined in YAML following the same guidelines as Power Fx does. [Learn more about the Power Fx YAML formula grammar](/power-platform/power-fx/yaml-formula-grammar). - -View the [PowerApps-TestEngine/samples](https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples) folder for detailed examples. - -## YAML schema definition - -| Property | Description | -|---|---| -| [testSuite](#testsuite) | Defines one test suite, the test cases in the test suite and configuration specific to the test suite | -| [testSettings](#testsettings) | Defines settings for the test suite that are reused across multiple test cases | -| [environmentVariables](#environment-variables)| Defines variables that could potentially change as the app is ported across different environments | - -## testSuite - -Used to define one test. - -### test YAML schema definition - -| Property | Required | Description | -|---|---|---| -| `testSuiteName` | Yes | The name of the test suite | -| `testSuiteDescription` | No | Additional information describes what the test suite does | -| `persona` | Yes | The user that is logged in to perform the test. Must match a persona listed in the [Users](#users) section | -| `appLogicalName` | Yes | The logical name of the app that is to be launched. It can be obtained from the solution. For canvas apps, you need to add it to a solution to obtain it | -| `appId` | No | The ID of the app that is to be launched. Required and used only when app logical name isn't present. App ID should be used only for canvas apps that aren't in the solution -| `networkRequestMocks` | No | Defines network request mocks needed for the test | -| `testCases` | Yes | Defines test cases in the test suite. Test cases contained in test suites are run sequentially. The app state is persisted across all test cases in a suite | -| `onTestCaseStart` | No | Defines the steps that need to be triggered for every test case in a suite before the case begins executing | -| `onTestCaseComplete` | No | Defines the steps that need to be triggered for every test case in a suite after the case finishes executing | -| `onTestSuiteComplete` | No | Defines the steps that need to be triggered after the suite finishes executing | - -#### test NetworkRequestMocks - -| Property | Required | Description | -|---|---|---| -| `requestURL` | Yes | The request URL that gets mock response. Glob patterns are accepted | -| `responseDataFile` | Yes | A text file with the mock response content. All text in this file is read as the response | -| `method` | No | The request's method (GET, POST, etc.) | -| `headers` | No | A list of header fields in the request in the format of [fieldName: fieldValue] | -| `requestBodyFile` | No | A text file with the request body. All text in this file is read as the request body | - -For optional properties, if no value is specified, the routing applies to all. For example, if `method` is null, we send back the mock response whatever the method is as long as the other properties all match. - -For Sharepoint/Dataverse/Connector apps, `requestURL` and `method` can be the same for all requests. `x-ms-request-method` and `x-ms-request-url` in headers may need to be configured in that case to identify different requests. - -#### test TestCases - -| Property | Required | Description | -|---|---|---| -| `testCaseName` | Yes | The name of the test case that is used in reporting success and failure | -| `testCaseDescription` | No | Additional information describes what the test case does | -| `testSteps` | Yes | A set of Power Fx functions describing the steps needed to perform the test case | - -#### test TestSteps - -- This can use any existing [Test Engine Power Fx functions](/power-platform/power-fx/overview) functions or [specific test functions](powerfx.md) defined by this framework. -- It should start with a `|` to allow for multiline YAML expressions followed by an `=` sign to indicate that it's a Power Fx expression -- Functions should be separated by a `;` -- Comments can be used and should start with `//` - -## testSettings - -Used to define settings for the tests in the test plan. - -### testSettings YAML schema definition - -| Property | Required | Description | -|---|---|---| -| `locale` | Yes | The locale/culture syntax in which the test cases or test steps are written in. See [Global Support in Microsoft Power Fx](/power-platform/power-fx/global) for more information. If unspecified, `CultureInfo.CurrentCulture` is used for the locale by default for parsing the test steps. | -| `browserConfigurations` | Yes | A list of browser configurations to be tested. At least one browser must be specified. | -| `recordVideo` | No | Default is false. If set to true, a video recording of the test is captured. | -| `headless` | No | Default is true. If set to false, the browser shows up during test execution. | -| `timeout` | No |Timeout value in milliseconds. Default is 30,000 milliseconds (30s). If any operation takes longer than the timeout limit, it ends the test in a failure. | -| `filePath` | No | The file path to a separate yaml file with all the test settings. If provided, it will **override** all the test settings in the test plan. | - -#### testSettings Browser configuration - -| Property | Required | Description | -|---|---|---| -| `browser` | Yes | The browser to be launched when testing. Should match the [browsers supported by Playwright](https://playwright.dev/dotnet/docs/browsers). | -| `device` | No | The device to emulate when launching the browser. Should match the [devices supported by Playwright](https://playwright.dev/dotnet/docs/api/class-playwright#playwright-devices) -| `screenHeight` | No | The height of the screen to use when launching the browser. If specified, `screenWidth` must also be specified. | -| `screenWidth` | No | The width of the screen to use when launching the browser. If specified, `screenHeight` must also be specified.| - -## Users - -To ensure credentials are stored in secure manner, the test definition references users using a persona name. Storing credentials in test plan files isn't supported. - -References to the user credentials are located under the `environmentVariables` section as a list of `users` - -Example: - -```yaml -environmentVariables: - - users: - - personaName: "User1" - emailKey: "user1Email" - passwordKey: "user1Password" - - personaName: "User2" - emailKey: "user2Email" - passwordKey: "user2Password" -``` - -The `personaName` is used as part of the test definition to indicate what user to run the test as. - -### Supported credentials storage mechanisms - -> [!NOTE] -> Multi-factor authentication is not supported. - -#### Environment variables - -To store credentials as environment variables, you can set it as follows: - -```powershell -# In PowerShell - replace variableName and variableValue with the correct values -$env:variableName = "variableValue" -``` - -In the YAML, two properties need to be defined to indicate that this user's credentials are stored in environment variables: - -- `emailKey`: The environment variable used to store the user's email. -- `passwordKey`: The environment variable used to store the user's password. - -Example YAML: - -```yaml - - personaName: "User1" - emailKey: "user1Email" - passwordKey: "user1Password" -``` - -Example PowerShell to set user credentials based on YAML: - -```powershell -$env:user1Email = "someone@example.com" -$env:user1Password = "fake password" -``` - -### See also - -[Power Apps Test Engine overview (preview)](overview.md) -[Power Apps Test Engine Power Fx functions (preview)](powerfx.md) - -[!INCLUDE [footer-banner](../../includes/footer-banner.md)] - diff --git a/powerapps-docs/docfx.json b/powerapps-docs/docfx.json index 5a4b3f8638..a2b8c4d444 100644 --- a/powerapps-docs/docfx.json +++ b/powerapps-docs/docfx.json @@ -81,7 +81,8 @@ ] }, "ms.topic": { - "developer/**/*.md": "overview" + "developer/**/*.md": "overview", + "developer/data-platform/webapi/samples/*.md": "sample" }, "ms.service": { "**.*": "powerapps" diff --git a/powerapps-docs/guidance/co-develop/collaboration.md b/powerapps-docs/guidance/co-develop/collaboration.md index cb4aab12b4..01578af202 100644 --- a/powerapps-docs/guidance/co-develop/collaboration.md +++ b/powerapps-docs/guidance/co-develop/collaboration.md @@ -2,7 +2,7 @@ title: "Establishing a collaboration model | Microsoft Docs" description: "Learn more about how to establish a well-defined and structured collaboration model for fusion app development." author: luis-camino-ms -ms.topic: article +ms.topic: best-practice ms.custom: Focus-center ms.date: 07/22/2022 ms.subservice: guidance @@ -85,4 +85,4 @@ Fusion teams and maker-developed apps must align to a data-first approach, which > [!div class="nextstepaction"] -> [Next step: Establishing co-development governance](governance.md) \ No newline at end of file +> [Next step: Establishing co-development governance](governance.md) diff --git a/powerapps-docs/guidance/co-develop/community-solutions-tools.md b/powerapps-docs/guidance/co-develop/community-solutions-tools.md index 492cbcf42a..027e9d7bc7 100644 --- a/powerapps-docs/guidance/co-develop/community-solutions-tools.md +++ b/powerapps-docs/guidance/co-develop/community-solutions-tools.md @@ -2,7 +2,7 @@ title: "Try community solutions and tools | Microsoft Docs" description: "Learn about community solutions and tools available for fusion teams to use." author: ankitchawla23 -ms.topic: article +ms.topic: concept-article ms.custom: Focus-center ms.date: 07/26/2022 ms.subservice: guidance diff --git a/powerapps-docs/guidance/co-develop/governance.md b/powerapps-docs/guidance/co-develop/governance.md index 19c29a3eb8..0e743fec06 100644 --- a/powerapps-docs/guidance/co-develop/governance.md +++ b/powerapps-docs/guidance/co-develop/governance.md @@ -2,7 +2,7 @@ title: "Co-development governance | Microsoft Docs" description: "Learn how to establish an effective co-development governance framework to ensure consistency and repeatability in maker-defined projects and fusion teams." author: luis-camino-ms -ms.topic: article +ms.topic: best-practice ms.custom: Focus-center ms.date: 09/06/2022 ms.subservice: guidance diff --git a/powerapps-docs/guidance/co-develop/overview.md b/powerapps-docs/guidance/co-develop/overview.md index f060baed11..1625d58e34 100644 --- a/powerapps-docs/guidance/co-develop/overview.md +++ b/powerapps-docs/guidance/co-develop/overview.md @@ -2,7 +2,7 @@ title: "Best practices: Collaborating and co-developing apps using Power Apps | Microsoft Docs" description: "Learn more about how to collaborate and co-develop low code apps in Power Apps." author: luis-camino-ms -ms.topic: article +ms.topic: best-practice ms.custom: Focus-center ms.date: 07/26/2022 ms.subservice: guidance diff --git a/powerapps-docs/guidance/coding-guidelines/app-design-guidelines.md b/powerapps-docs/guidance/coding-guidelines/app-design-guidelines.md index 7864161342..6be94cde26 100644 --- a/powerapps-docs/guidance/coding-guidelines/app-design-guidelines.md +++ b/powerapps-docs/guidance/coding-guidelines/app-design-guidelines.md @@ -1,8 +1,8 @@ ---- +--- title: Power Apps design guidelines description: Learn about guidelines for designing Power Apps ms.date: 06/12/2024 -ms.topic: conceptual +ms.topic: best-practice ms.subservice: guidance ms.service: powerapps author: robstand diff --git a/powerapps-docs/guidance/coding-guidelines/code-optimization.md b/powerapps-docs/guidance/coding-guidelines/code-optimization.md index 29beeb05b0..348468a8f5 100644 --- a/powerapps-docs/guidance/coding-guidelines/code-optimization.md +++ b/powerapps-docs/guidance/coding-guidelines/code-optimization.md @@ -1,8 +1,8 @@ ---- +--- title: Power Apps code optimization description: Learn about how to optimize code in Power Apps. -ms.date: 06/25/2024 -ms.topic: conceptual +ms.date: 06/19/2025 +ms.topic: concept-article ms.subservice: guidance ms.service: powerapps author: robstand @@ -11,21 +11,23 @@ ms.author: rachaudh # Code optimization -As canvas apps evolve to meet diverse business requirements, the challenge of maintaining optimal performance becomes a critical consideration. The intricacies of data handling, user interface design, and functionality within canvas apps necessitate a nuanced approach to code optimization. +As canvas apps evolve to meet different business needs, keeping performance optimal is critical. Data handling, user interface design, and app functionality all require a careful approach to code optimization. -As canvas apps become more intricate, developers encounter challenges related to data retrieval, formula complexity, and rendering speeds. The need to strike a balance between robust functionality and responsive user interfaces underscores the importance of adopting a systematic approach to code optimization. +When canvas apps get more complex, you can run into issues with data retrieval, formula complexity, and rendering speed. Balancing strong functionality and a responsive user interface means you need a systematic approach to code optimization. ## Power Fx formulas optimization ### With function -The `With` function evaluates a formula for a single record. The formula can calculate a value and/or perform actions, such as modifying data or working with a connection. Use With to improve the readability of complex formulas by dividing it into smaller named sub-formulas. These named values act like simple local variables confined to the scope of the With. Using With is preferred over context or global variables as it is self contained, easy to understand, and can be used in any declarative formula context. [Learn more](/power-platform/power-fx/reference/function-with) about the `With` function. +The `With` function evaluates a formula for a single record. The formula can calculate a value or perform actions, like modifying data or working with a connection. Use `With` to make complex formulas easier to read by dividing them into smaller named subformulas. These named values act like simple local variables limited to the scope of `With`. Using `With` is better than context or global variables because it's self-contained, easy to understand, and works in any declarative formula context. [Learn more](/power-platform/power-fx/reference/function-with) about the `With` function. -![A screenshot of a Power Fx formula that uses the With function](media/image13.png) +![Screenshot of a Power Fx formula that uses the With function.](media/image13.png) ### Concurrent function -The `Concurrent` function allows multiple formulas specified within the same property to be evaluated at the same time if they have connector or Dataverse calls. Normally, multiple formulas are evaluated by chaining them together with the `;` (semi-colon) operator, which evaluates each formula sequentially. With the `Concurrent` function, the app will evaluate all formulas within a property concurrently even after using the `;` operator. This concurrency helps users wait less for the same result. When data calls don't start until the previous calls finish, the app must wait for the sum of all request times. If data calls start at the same time, the app needs to wait only for the longest request time. [Learn more](/power-platform/power-fx/reference/function-concurrent) about the `Concurrent` function. + +The `Concurrent` function lets multiple formulas in the same property to be evaluated at the same time if they have connector or Dataverse calls. Normally, multiple formulas are evaluated at the same time when you chain them with the `;` (semicolon) operator. With `Concurrent`, the app evaluates all formulas in a property at the same time, even after using the `;` operator. This concurrency means users wait less for results. When data calls don't start until the previous calls finish, the app waits for the sum of all request times. If data calls start at the same time, the app waits only for the longest request time. [Learn more](/power-platform/power-fx/reference/function-concurrent) about the `Concurrent` function. + ```powerappsfl Concurrent( @@ -38,7 +40,8 @@ Concurrent( ### Coalesce Function -The `Coalesce` function evaluates its arguments in order and returns the first value that isn't blank or an empty string. Use this function to replace a blank value or empty string with a different value but leave nonblank and nonempty string values unchanged. If all the arguments are blank or empty strings, then the function returns blank, making Coalesce a good way to convert empty strings to blank values. +The `Coalesce` function evaluates its arguments in order and returns the first value that's not blank or an empty string. Use this function to replace a blank value or empty string with a different value, but leave nonblank and nonempty string values unchanged. If all arguments are blank or empty strings, the function returns blank. `Coalesce` is a good way to convert empty strings to blank values. + For example: @@ -54,9 +57,10 @@ Coalesce(value1, value2) ### IsMatch function -The `IsMatch` function tests whether a text string matches a pattern that can comprise ordinary characters, predefined patterns, or a regular expression. [Learn more](/power-platform/power-fx/reference/function-ismatch) about the `IsMatch` function. +The `IsMatch` function tests if a text string matches a pattern made up of ordinary characters, predefined patterns, or a regular expression. [Learn more](/power-platform/power-fx/reference/function-ismatch) about the `IsMatch` function. + +For example, this formula matches a United States Social Security number: -For example, this formula matches a United States Social Security Number: ```powerappsfl IsMatch(TextInput1.Text, "\d{3}-\d{2}-\d{4}") @@ -83,7 +87,7 @@ IsMatch(TextInput1\_2.Text, "(?!^\[0-9\]\\\*$)(?!^\[a-zA-Z\]\\\*$)(\[a-zA-Z0-9\] ## Optimize app OnStart -The `OnStart` property for cavas apps plays a crucial role in defining actions that occur when the app is launched. This property allows app developers to execute global initialization tasks, set up variables, and perform actions that should happen only once during the app's startup process. understanding and effectively utilizing the `OnStart` property is essential for creating responsive and efficient canvas apps. +The `OnStart` property for cavas apps plays a crucial role in defining actions that occur when the app is launched. This property allows app developers to execute global initialization tasks, set up variables, and perform actions that should happen only once during the app's startup process. Understanding and effectively utilizing the `OnStart` property is essential for creating responsive and efficient canvas apps. A recommended approach is to streamline the `App.OnStart` function by migrating variable setups to named formulas. Named formulas, especially those configured early in the app lifecycle, prove to be advantageous. These formulas handle the initialization of variables based on data calls, providing a cleaner and more organized structure for your code. More details [Build large and complex canvas apps - Power Apps | Microsoft Learn](/power-apps/maker/canvas-apps/working-with-large-apps#split-up-long-formulas). @@ -113,8 +117,8 @@ App.StartScreen = If(Param("AdminMode") = "1", AdminScreen, HomeScreen) Refer to for more details. > [!WARNING] -> Avoid dependencies between `StartScreen` and `OnStart`. Referencing a named formulat that in turn references a global variable may cause a race condition in which `StartScreen` is not applied correctly. -**Note**: we should not have dependencies between StartScreen and OnStart. We block referencing global variables in StartScreen, but we can reference a named formula, that in turn references a global variable, and that may cause a race condition in which the StartScreen is not applied correctly. +> Avoid dependencies between `StartScreen` and `OnStart`. Referencing a named formula that in turn references a global variable may cause a race condition in which `StartScreen` isn't applied correctly. +**Note**: we shouldn't have dependencies between StartScreen and OnStart. We block referencing global variables in StartScreen, but we can reference a named formula, that in turn references a global variable, and that may cause a race condition in which the StartScreen isn't applied correctly. ### Named formulas @@ -179,9 +183,9 @@ Named Formulas in the `App.Formulas` property provide a more flexible and declar ### User defined functions -User Defined Functions is an experimental functionality in Power Apps Authoring Studio that enables users to create their own custom function. +User Defined Functions in Power Apps Authoring Studio enables users to create their own custom function. -To use this feature, under experimental settings, select New analysis engine and User-defined function (UDFs) +To use this feature, under preview settings, turn on User-defined function (UDFs). Preview functionality should not be used in production, which is why it is disabled by default, but will become generally available soon. Define a formula under `App.Formulas` as follows: @@ -193,7 +197,7 @@ The code works as so: - `Parameter` is the name of the input. One or more inputs are allowed -- `DataType` is an argument passed into the function must match this data type. Available data types include Boolean, Color, Date, Datetime, GUID, Hyperlink, Text, Time, Untyped Object +- `DataType` is an argument passed into the function must match this data type. Available data types include Boolean, Color, Date, Datetime, Dynamic, GUID, Hyperlink, Text, and Time - `OutputDataType` is the data type the output of the function will be in @@ -216,9 +220,9 @@ Call the defined function from text/label control. ## Optimize variables -Variables are used to define and set local and global values to be used everywhere in the apps. While they're convenient too many of them can cause the app to be less optimized. +Variables define and set local and global values you use throughout your app. While they're convenient, using too many variables can make your app less efficient. -The following example demonstrates setting a variable for each attribute of an object, which requires using `Set` for every property. +The following example demonstrates how to set a variable for each attribute of an object, which requires using `Set` for every property. ```powerappsfl Set(varEmpName, Office365Users.MyProfile().DisplayName); @@ -228,20 +232,21 @@ Set(varEmpUPN, Office365Users.MyProfile().UserPrincipalName); Set(varEmpMgrName, Office365Users.ManagerV2(varEmpUPN).DisplayName); ``` -A more optimized approach is to use the property when you need it: +A more efficient approach is to use the property only when you need it: ```powerappsfl Set(varEmployee, Office365Users.MyProfile()) "Welcome " & varEmployee.DisplayName ``` -Use context variables and global variables wisely. If a variable's scope expands beyond a single screen, then consider using global variables instead of context variables. +Use context variables and global variables wisely. If a variable's scope goes beyond a single screen, use global variables instead of context variables. + -Too many unused variables contribute to increased memory usage and slightly slower app initialization. This is because resources are allocated for these variables even though they aren't actively used. Too many unused variables can also lead to overall complexity of the app's logic. While the impact of unused variables might not be severe, it's a good practice to maintain a clean and well-organized Power App to ensure optimal performance and ease of development. +Too many unused variables increase memory usage and can slow app initialization. Resources are allocated for these variables even if you don't use them. Unused variables also add complexity to your app's logic. While the impact might not be severe, it's a good practice to keep your Power App clean and organized for better performance and easier development. ## Optimize collections -Collections are temporary data storage structures that can be used to store and manipulate data within a Power Apps app. However, there's a fine line on when collections can lead to performance overhead. Therefore, limit your use of collections. Try to use them only when they're necessary. +Collections are temporary data storage structures you use to store and manipulate data in a Power Apps app. But collections can cause performance overhead if you use them too much. Limit your use of collections and use them only when necessary. ```powerappsfl // Use this pattern @@ -252,11 +257,11 @@ Clear(colErrors); Collect(colErrors, {Text: gblErrorText, Code: gblErrorCode}); ``` -To count the records in a local collection, use `CountIf` instead of `Count(Filter())`. +To count records in a local collection, use `CountIf` instead of `Count(Filter())`. Consider this guidance when working with collections: -**Limit the size and number of collections**. Since collections are local to the app, they're stored in the mobile device memory. The more data the collections hold or more the number of collections, the poorer the performance. Use `ShowColumns` function to get only the specific columns. Add `Filter` function to get only the relevant data. +**Limit the size and number of collections**. Because collections are local to the app, they're stored in the mobile device memory. The more data collections hold, or the more collections you use, the worse the performance. Use the `ShowColumns` function to get only specific columns. Add the `Filter` function to get only relevant data. The following example function returns the entire dataset. @@ -264,7 +269,7 @@ The following example function returns the entire dataset. ClearCollect(colDemoAccount, Accounts); ``` -Compare to the below code that is going to return only specific records and columns: +Compare this to the following code, which returns only specific records and columns: ```powerappsfl ClearCollect(colAcc, @@ -273,15 +278,15 @@ ClearCollect(colAcc,                 "name","address1_city")) ``` -The example code returns this dataset: +This example returns the following dataset: -![A screenshot of a dataset with a table named colAcc and two columns with data, address1_city and name](media/image21.png) +![Screenshot of a dataset with a table named colAcc and two columns, address1_city and name.](media/image21.png) -**Set a data source refresh frequency**. If you're adding new records to the collection, you need to refresh it or collect to it to get the new or changed records into the collection. If your data source is updated by multiple users, you need to refresh the collection to get the new or changed records. More refresh calls mean more interaction with the server. +**Set a data source refresh frequency**. If you add new records to the collection, refresh it or collect to it to get the new or changed records. If multiple users update your data source, refresh the collection to get the new or changed records. More refresh calls mean more interaction with the server. ### Cache data in collections and variables -A collection, essentially a table variable, is distinct in that it stores rows and columns of data rather than a single data item. Their utility lies in two main purposes: firstly, for aggregating data before transmitting it to the data source, and secondly, for caching information, eliminating the need for frequent queries to the data source. As collections align with the tabular structure of both the data source and Power Apps, they offer an efficient means of interacting with data, even in offline scenarios. +A collection is a table variable that stores rows and columns of data, not just a single data item. Collections are useful for two main reasons: aggregating data before sending it to the data source, and caching information to avoid frequent queries. Because collections match the tabular structure of the data source and Power Apps, they let you interact with data efficiently, even when you're offline. ```powerappsfl // Clear the contents of EmployeeCollection, it already contains data @@ -302,11 +307,11 @@ ClearCollect( ### Remove unused variables and media -While unused media and variables may not create a drastic impact on app performance, it's important to clean up your app from any unused media or variables. +While unused media and variables might not have a significant impact on app performance, it's important to clean up your app by removing any unused media or variables. -- Unused media files contribute to overall increase in app size. This can lead to slower app load times. +- Unused media files increase app size, which can slow down app load times. -- Unused variables contribute to increased memory usage and slightly slower app initialization. This is because resources are allocated for these variables even though they aren't actively used. Additionally too many unused variables can make lead to overall complexity of the app's logic. +- Unused variables increase memory usage and can slightly slow down app initialization. Resources are allocated for these variables even if they aren't used. Too many unused variables can also make the app's logic more complex. - Use App Checker to review unused media and variables. @@ -314,27 +319,27 @@ While unused media and variables may not create a drastic impact on app performa ### Avoid cross referencing controls -Controls that reference controls on other screens can slow down app loading and navigation. Doing this may force the app to load the other screens immediately, rather than waiting until the user navigates to that screen. To address this issue, use variables, collections, and navigation context to share state across screens instead. +Controls that reference controls on other screens can slow down app loading and navigation. Doing this can force the app to load the other screens immediately, rather than waiting until the user goes to that screen. To fix this issue, use variables, collections, and navigation context to share state across screens instead. -Power Apps App checker within authoring studio, shows controls that are cross referenced. Review App checker regularly to address this issue. +The App checker in Power Apps Studio shows controls that are cross-referenced. Review App checker regularly to fix this issue. -Here's an example of Cross-referenced controls. In the image below Gallery 1 controls is cross referenced in Screen 2, Label 2 control. +Here's an example of cross-referenced controls. In the image below, the Gallery 1 control is cross-referenced in Screen 2, Label 2 control. -![A screenshot of Power Apps Studio showing a cross-referenced control](media/image23.png) +![Screenshot of Power Apps Studio showing a cross-referenced control.](media/image23.png) -If you reference a control from the first screen in the app in the second screen, there will be no performance hit as the first screen has already been loaded and this may actually be a good thing as the app declarative instead of using variables. +If you reference a control from the first screen in the app in the second screen, there isn't a performance hit because the first screen is already loaded. This can actually be a good thing because the app is declarative instead of using variables. -If you reference controls that have yet to be loaded, such as the first screen referencing a control named `Label 3` from screen 3, will require the screen to be loaded in memory. +If you reference controls that aren't loaded yet, such as the first screen referencing a control named `Label 3` from screen 3, the app loads that screen into memory. ### Enable DelayOutput for text controls -Delay output setting When set to true, user input is registered after half a second delay. Useful for delaying expensive operations until user completes inputting text, like filtering when input is used in other formulas. +The DelayOutput setting, when set to true, registers user input after a half-second delay. This is useful for delaying expensive operations until the user finishes entering text, like filtering when input is used in other formulas. -For example, for a Gallery whose Items are Filtered depending on what is inputted into the TextInput control: +For example, for a Gallery whose Items are Filtered depending on what the user enters in the TextInput control: -- With DelayOutput set to false, which is default, the Gallery is filtered as soon as any text is typed. If you have a gallery with lots of items, reloading the Gallery with changes right away slows down performance; it would be more advantageous to wait a little. This is practical when you're using the TextInput for a search string (See [Search](https://PowerApps.microsoft.com/en-us/tutorials/function-filter-lookup/) or the new StartsWith functions). +- With DelayOutput set to false, which is the default, the gallery is filtered as soon as any text is typed. If you have a gallery with lots of items, reloading the gallery with changes right away slows down performance. It's better to wait a little. This is practical when you're using the TextInput for a search string (see [Search](https://PowerApps.microsoft.com/en-us/tutorials/function-filter-lookup/) or the new StartsWith functions). -- With DelayOutput set to true, there's a second delay before the changes are detected. This is done to give you time to finish typing what you want. The delay works well when used to aid the TextInput.OnChange property. If you have actions tied to changes, you don't want them triggered until everything you want is typed into the field. +- With DelayOutput set to true, there's a short delay before the changes are detected. This gives you time to finish typing. The delay works well with the TextInput.OnChange property. If you have actions tied to changes, you don't want them triggered until you've finished typing in the field. ## Delegation and server side processing @@ -348,9 +353,9 @@ Delegation has several advantages such as Query optimization and adds supports f ### Reduce API calls to data source -Sometimes, it may be convenient to just follow coding practices such as creating collections by performing joins within canvas app. Refer to the code below: +Sometimes, it can seem convenient to create collections by performing joins within your canvas app. Here's an example: -In this example, there are two tables, Drivers and Trucks. The developer writes the code to create a collection of drivers and truck details and for each truck, they're calling drivers who own the trucks. +In this example, there are two tables: Drivers and Trucks. The code creates a collection of drivers and truck details, and for each truck, it calls the driver who owns the truck. ```powerappsfl // Bad code @@ -361,7 +366,8 @@ ClearCollect(vartruckdata, AddColumns('Truck Details', "STATE",LookUp(Drivers, 'Truck Details'\[@'Dummy ID'\] = Drivers\[@'Truck Details'\],State))); ``` -Performing such join operations from within canvas app can generate numerous calls to data source leading to very slow loading times. +Performing such join in the canvas app can generate many calls to the data source, which leads to slow loading times. + A better approach is: @@ -394,13 +400,13 @@ Set( ) ``` -In the real time scenario, it's possible to reduce loading times from 5 minutes to under 10 seconds by just correcting the data at the data source level. +In the real time scenario, you can reduce loading times from five minutes to under 10 seconds by fixing the data at the source. ### Server side processing -Different data sources such as SQL and Dataverse enable you to delegate data processing such as Filter and Lookups to the data source. In SQL Server, users can create views, which have content defined by a query. Similarly, with Dataverse, users can create low-code plugins to write logic for data processing at the server side and only get the final results in canvas apps. +Different data sources, like SQL and Dataverse, let you delegate data processing, such as filters and lookups, to the data source. In SQL Server, you can create views defined by a query. In Dataverse, you can create low-code plugins to process data on the server and return only the final results to your canvas app. -Delegating data processing to server can improve overall performance, reduce code on the client side and are easy to maintain. +Delegating data processing to the server can improve performance, reduce client-side code, and make your app easier to maintain. Learn more about [plugins in Dataverse](/power-apps/maker/data-platform/low-code-plug-ins). @@ -408,7 +414,7 @@ Learn more about [plugins in Dataverse](/power-apps/maker/data-platform/low-code ### Use explicit column selection -The Explicit Column Selection (ECS) feature is enabled by default for all new apps. If it isn't enabled for your app, you should enable it. ECS automatically reduces the number of columns retrieved to only the ones that are used in the application. If ECS isn't enabled, you might be retrieving more data than you need, which can affect performance. Occasionally, when an app pulls data in through collections, the original lineage or source of a column can be lost. We don't know if it's being used and we drop it using ECS. You can usually force ECS to work for a missing column by using the PowerFx expression `ShowColumns` after a collection reference or by using it in a control. +The Explicit Column Selection (ECS) feature is on by default for all new apps. If it isn't on for your app, turn it on. ECS automatically reduces the number of columns retrieved to only those used in the app. If ECS isn't on, you might get more data than you need, which can affect performance. Sometimes, when an app gets data through collections, the original source of a column can be lost. ECS drops columns if it can't tell they're used. To force ECS to keep a missing column, use the PowerFx expression `ShowColumns` after a collection reference or in a control. ### Avoid calling Power Automate to populate a collection @@ -480,7 +486,7 @@ Patch(SampleFoodSalesData, ForAll(colSampleFoodSales, ); ``` -Has better performance than: +Performs better than: ```powerappsfl ForAll(colSampleFoodSales, Patch(SampleFoodSalesData, diff --git a/powerapps-docs/guidance/coding-guidelines/code-readability.md b/powerapps-docs/guidance/coding-guidelines/code-readability.md index 13f0ddfaa9..dc07b2b52c 100644 --- a/powerapps-docs/guidance/coding-guidelines/code-readability.md +++ b/powerapps-docs/guidance/coding-guidelines/code-readability.md @@ -1,8 +1,8 @@ ---- +--- title: Power Apps code readability description: Learn about how to optimize code readability in Power Apps. -ms.date: 06/12/2024 -ms.topic: conceptual +ms.date: 06/19/2025 +ms.topic: concept-article ms.subservice: guidance ms.service: powerapps author: robstand @@ -168,8 +168,6 @@ PowerApps uses DataTables in Microsoft Excel to connect to data in Excel workshe - Use descriptive column names in the DataTables. - Use Pascal casing. Each word of the DataTable name should begin with a capital letter, such as `EmployeeLeaveRequests`. -### Untyped and dynamic objects - ### Variable names Naming conventions for variables in canvas apps are important for maintaining readability, consistency, and clarity in your Power Apps projects. While no strict standard is enforced, adopting a consistent naming convention across your canvas app can make it easier for you and other collaborators to understand, use, and manage the variables. @@ -238,21 +236,21 @@ These examples don't follow the collection name conventions: - `tempCollection` > [!TIP] -> When there are many collections in the app, you can just type the prefix in the formula bar to see a list of the available collections. As for variables, if you follow these guidelines to name your collections, you'll be able to find them very easily in the formula bar as you develop your app. Ultimately, this approach leads to quicker app development. +> When there are many collections in the app, you can just type the prefix in the formula bar to see a list of the available collections. As for variables, if you follow these guidelines to name your collections, you'll be able to find them easily in the formula bar as you develop your app. Ultimately, this approach leads to quicker app development. ## Comments and documentation -As you write code for your application, emphasize the importance of comprehensive commenting. These comments not only serve as a helpful guide when you revisit the application months later but also extend a gesture of gratitude to the next developer who collaborates on the project. +When you write code for your application, focus on adding clear comments. Comments help you understand your code later and make it easier for the next developer to work on the project. -There are two primary types of comments to enhance code clarity: Power Apps supports two comment styles: line comments, denoted by double forward slashes (`//`) for single-line remarks, and block comments enclosed within `/*` and `*/` for multi-line annotations. +Power Apps supports two comment styles to make your code clearer: line comments, which use double forward slashes (`//`) for single-line notes, and block comments, which use `/*` and `*/` for multi-line notes. ### Line comments -Adding a double forward slash (`//`) to any line of code in PowerApps designates the rest of the line (including the `//`) as a comment. +Add a double forward slash (`//`) to any line of code in Power Apps to make the rest of the line a comment. -Utilize line comments to elucidate the functionality of the subsequent code. They can also serve to temporarily disable a line of code, making them beneficial for testing purposes. +Use line comments to explain what the next line of code does. You can also use them to temporarily disable a line of code for testing. -This example shows the use of line comments. +Here's an example of a line comment. ```powerappsfl // ClearCollect function populates the Expenses2 collection with sample data @@ -269,11 +267,11 @@ ClearCollect( ### Block comments -Text enclosed within `/*` and `*/` is recognized as a block comment. Unlike line comments that apply to a single line, block comments can span multiple lines. +Text between `/*` and `*/` is a block comment. Block comments can cover several lines, unlike line comments, which only cover one line. -Block comments are useful for multiline explanations, such as documenting a code module header. They also facilitate temporarily disabling multiple lines of code during testing or debugging. +Use block comments for longer explanations, like documenting a code module header. You can also use them to temporarily disable several lines of code during testing or debugging. -For optimal code organization, it's advisable to add comments after utilizing the Format Text feature. This is beneficial if your comments precede a code block. +For better code organization, add comments after you use the Format Text feature. This helps if your comments come before a code block. ```powerappsfl /* @@ -293,47 +291,47 @@ Patch( ) ``` -The Format Text feature follows these rules for existing comments: +The Format Text feature follows these rules for comments: -1. If a property begins with a block comment, the next line of code will be appended to it. -1. If a property begins with a line comment, the next line of code won't be appended to it. Otherwise, the code is commented out. -1. Line and block comments elsewhere in the property will be appended to the previous line of code. +1. If a property starts with a block comment, the next line of code is added to it. +1. If a property starts with a line comment, the next line of code isn't added to it. Otherwise, the code is commented out. +1. Line and block comments elsewhere in the property are added to the previous line of code. -Don't worry about adding too many comments or comments that are too long. All comments are stripped out when PowerApps creates the client app package. Therefore, they won't affect the package size or slow down the app download or loading times. +Don't worry about adding too many or too long comments. Power Apps removes all comments when it creates the client app package, so comments don't affect package size or slow down app downloads or loading times. ### Modern app designer with comments -In Power Apps, it's considered the best practice for makers to effectively utilize commenting features within both Power Apps Studio and Modern app designer. +In Power Apps, it's best to use commenting features in both Power Apps Studio and Modern app designer. -For optimal engagement in the Power Apps Studio, makers are advised to add comments using the following methods: +To add comments in Power Apps Studio, use these methods: 1. Right-click the ellipsis ("...") of any item in the Tree View. 2. Right-click a component in the canvas area. 3. Select the "Comments" button located on the command bar in the top right-hand corner of the screen. -When mentioning colleagues in comments, it's recommended to use the "@" symbol followed by their name. This prompts a notification email for the tagged colleague, ensuring swift access to the comment. In cases where a tagged user lacks access to the app, the maker is prompted to share the app with them. +When you mention a colleague in a comment, use the "@" symbol followed by their name. This sends a notification email to the person you tag. If the tagged user doesn't have access to the app, Power Apps prompts you to share the app with them. -![A screenshot of an expenses app showing a person @ mentioned in the comment](media/image9.png) +![Screenshot of an expenses app showing a person mentioned with @ in a comment.](media/image9.png) ### Indentation and formatting -In Power Apps, indentation and formatting are crucial for maintaining a clear and organized structure in your app. Following best practices improve the readability of your formulas and controls. +In Power Apps, indentation and formatting help keep your app clear and organized. Following best practices makes your formulas and controls easier to read. #### Formula bar ##### Indentation -Although Power Apps doesn't enforce strict indentation, you can use spaces to visually separate different sections of your formulas. Press the space bar multiple times to create an indentation effect. +Power Apps doesn't enforce strict indentation, but you can use spaces to separate different sections of your formulas. Press the space bar several times to create an indentation. ##### Line breaks -You can break long formulas into multiple lines to enhance readability. Press Enter to create a line break within the formula bar. +Break long formulas into multiple lines to make them easier to read. Press Enter to add a line break in the formula bar. #### Use the Format text command -The "Format Text" command in the formula bar is designed to apply indentation, spacing, and line breaks to your Power Apps code. Utilize the "Format Text" command to establish a uniform coding style across your entire canvas app, ensuring a more efficient and error-resistant development process. +The "Format Text" command in the formula bar adds indentation, spacing, and line breaks to your Power Apps code. Use the "Format Text" command to keep a consistent coding style in your canvas app and help prevent errors. -![Screenshot of Power Apps studio with the Format text command highlighted](media/image10.png) +![Screenshot of Power Apps Studio with the Format Text command highlighted.](media/image10.png) ## Next step diff --git a/powerapps-docs/guidance/coding-guidelines/error-handling.md b/powerapps-docs/guidance/coding-guidelines/error-handling.md index 90fd6a704e..b7b0b33557 100755 --- a/powerapps-docs/guidance/coding-guidelines/error-handling.md +++ b/powerapps-docs/guidance/coding-guidelines/error-handling.md @@ -1,26 +1,29 @@ ---- +--- title: Handling errors in Power Apps -description: Learn about best practices for error handling in Power Apps -ms.date: 06/12/2024 -ms.topic: conceptual +description: Discover best practices for error handling in Power Apps, including validation, patching, and custom error messages. +ms.date: 07/15/2025 +ms.topic: concept-article ms.subservice: guidance -ms.service: power-platform +ms.service: powerapps author: robstand ms.author: rstand -manager: +ms.custom: + - ai-gen-docs-bap + - ai-gen-description + - ai-seo-date:07/15/2025 --- # Error handling -Power Fx language has a new preview feature to enable Formula level error handling. This is by default turned On in the Settings. +Power Fx includes a preview feature that enables formula-level error handling. By default, this feature is turned on in Settings. -![A screenshot of Upcoming features in Settings showing Formula-level error management is set to On](media/image28.png) +:::image type="content" source="media/image28.png" alt-text="Screenshot of Upcoming features in Settings showing Formula-level error management set to On."::: -This setting gives access to formulas like `IfError`, `IsError`, `Error`, and `IsBlankorError`. These functions allow you to detect errors, provide alternative values, or take specific actions based on the encountered error. +This setting provides access to formulas like `IfError`, `IsError`, `Error`, and `IsBlankorError`. These functions allow you to detect errors, provide alternative values, or take specific actions based on the error. -## Validation Error Handling +## Validation error handling -Above functions can help with validating inputs such as incorrect format or required fields. Use `If` statements or functions like `IsBlank` and `IsError` to validate user input. Provide clear error messages and prevent further processing until the input is corrected. +These functions help validate inputs like incorrect formats or required fields. Use `If` statements or functions like `IsBlank` and `IsError` to validate user input. Provide clear error messages and prevent further processing until the input is corrected. ```powerappsfl If( IsBlank(TextInput.Text), @@ -30,9 +33,9 @@ If( IsBlank(TextInput.Text), ) ``` -## Patch Function Error Handling +## Patch function error handling -Similar to the previous example, `Error` functions can help catch errors while patching data to data source. `Patch` function reports errors in 2 ways. +Similar to the previous example, `Error` functions help catch errors while patching data to a data source. The `Patch` function reports errors in two ways. It can return an error value as the result of the operations. @@ -52,7 +55,7 @@ UpdateContext( ) ``` -Errors can be detected with `IsError` and replaced or suppressed with `IfError` +You can detect errors with `IsError` and replace or suppress them with `IfError`. ```powerappsfl IfError(result, Notify("There was an issue saving data" , NotificationType.Error)); @@ -74,9 +77,9 @@ If( ) ``` -### Forms Error Handling +### Forms error handling -When using Forms to submit data via `SubmitForm` function, using Form control property `OnFailure` to notify the error message. +When you use Forms to submit data with the `SubmitForm` function, use the Form control property `OnFailure` to notify users of error messages. ```powerappsfl // OnSelect property of the form's submit button @@ -89,9 +92,9 @@ Navigate('Success Screen'); Notify("Error: the invoice could not be created", NotificationType.Error); ``` -### Custom Error Message with OnError Property +### Custom error message with OnError property -Power Apps `OnError` is a property on your app which lets you capture all your unhandled errors. The `OnError` property gives you the ability to execute an expression that runs every time an error is not handled by the app (such as storing it in a variable or using a function such as `IfError` to replace it with some other value). To use the [`OnError` property](/power-platform/power-fx/reference/object-app#onerror-property), you need to add it to the app that you want to apply it to. Then, you can specify the error message that you want to display by writing a formula in the `OnError` property box. +The Power Apps `OnError` property lets you capture all unhandled errors in your app. The `OnError` property gives you the ability to execute an expression that runs every time an error isn't handled by the app (such as storing it in a variable or using a function such as `IfError` to replace it with some other value). To use the [`OnError` property](/power-platform/power-fx/reference/object-app#onerror-property), you need to add it to the app that you want to apply it to. Then, you can specify the error message that you want to display by writing a formula in the `OnError` property box. It's important to note that `App.OnError` can't replace the error in the same way that `IfError` can. At the point that `App.OnError` is executed, the error has already happened, and the result has propagated through other formulas. `App.OnError` only controls how the error is reported to the end user and provides a hook for the maker to log the error if desired. @@ -109,6 +112,11 @@ Notify( NotificationType.Error ) ``` + +## Related information + +[Power Fx error handling](/power-platform/power-fx/error-handling) + ## Next step > [!div class="nextstepaction"] diff --git a/powerapps-docs/guidance/coding-guidelines/monitoring-testing.md b/powerapps-docs/guidance/coding-guidelines/monitoring-testing.md index 0387023a23..a53d80bcd6 100644 --- a/powerapps-docs/guidance/coding-guidelines/monitoring-testing.md +++ b/powerapps-docs/guidance/coding-guidelines/monitoring-testing.md @@ -1,8 +1,8 @@ ---- +--- title: Testing and monitoring in Power Apps description: Learn about testing and monitoring your Power Apps. ms.date: 06/12/2024 -ms.topic: conceptual +ms.topic: concept-article ms.subservice: guidance ms.service: powerapps author: robstand diff --git a/powerapps-docs/guidance/coding-guidelines/responsive-design-guidelines.md b/powerapps-docs/guidance/coding-guidelines/responsive-design-guidelines.md index 4ffb03b980..ad6d2d2726 100644 --- a/powerapps-docs/guidance/coding-guidelines/responsive-design-guidelines.md +++ b/powerapps-docs/guidance/coding-guidelines/responsive-design-guidelines.md @@ -1,8 +1,8 @@ ---- +--- title: Responsive design in Power Apps description: Learn about responsive design in Power Apps. ms.date: 06/12/2024 -ms.topic: conceptual +ms.topic: best-practice ms.subservice: guidance ms.service: powerapps author: robstand diff --git a/powerapps-docs/guidance/fusion-dev-ebook/01-what-is-fusion-dev-approach.md b/powerapps-docs/guidance/fusion-dev-ebook/01-what-is-fusion-dev-approach.md index 974414f5e6..f706831127 100644 --- a/powerapps-docs/guidance/fusion-dev-ebook/01-what-is-fusion-dev-approach.md +++ b/powerapps-docs/guidance/fusion-dev-ebook/01-what-is-fusion-dev-approach.md @@ -3,7 +3,7 @@ title: "1: What is the fusion development approach? | Microsoft Docs" description: "Learn more about the fusion development approach to app building in Power Apps." author: spboyer -ms.topic: conceptual +ms.topic: concept-article ms.custom: ebook ms.date: 04/26/2021 ms.subservice: guidance diff --git a/powerapps-docs/guidance/fusion-dev-ebook/02-intro-sample-scenario.md b/powerapps-docs/guidance/fusion-dev-ebook/02-intro-sample-scenario.md index 498010acf1..ec29a31fca 100644 --- a/powerapps-docs/guidance/fusion-dev-ebook/02-intro-sample-scenario.md +++ b/powerapps-docs/guidance/fusion-dev-ebook/02-intro-sample-scenario.md @@ -3,7 +3,7 @@ title: "2: Introduction to the sample scenario | Microsoft Docs" description: "Learn more about the sample scenario used in the ebook." author: spboyer -ms.topic: conceptual +ms.topic: concept-article ms.custom: ebook ms.date: 04/26/2021 ms.subservice: guidance diff --git a/powerapps-docs/guidance/fusion-dev-ebook/03-building-low-code-prototype.md b/powerapps-docs/guidance/fusion-dev-ebook/03-building-low-code-prototype.md index 3cf7eecdb6..587c01bc04 100644 --- a/powerapps-docs/guidance/fusion-dev-ebook/03-building-low-code-prototype.md +++ b/powerapps-docs/guidance/fusion-dev-ebook/03-building-low-code-prototype.md @@ -3,7 +3,7 @@ title: "3: Building a low-code prototype | Microsoft Docs" description: "Learn about building a low-code prototype." author: spboyer -ms.topic: conceptual +ms.topic: concept-article ms.custom: ebook ms.date: 04/26/2021 ms.subservice: guidance diff --git a/powerapps-docs/guidance/fusion-dev-ebook/04-using-dataverse-as-data-source.md b/powerapps-docs/guidance/fusion-dev-ebook/04-using-dataverse-as-data-source.md index b30813b3a3..919ae5e7ba 100644 --- a/powerapps-docs/guidance/fusion-dev-ebook/04-using-dataverse-as-data-source.md +++ b/powerapps-docs/guidance/fusion-dev-ebook/04-using-dataverse-as-data-source.md @@ -3,7 +3,7 @@ title: "4: Using Microsoft Dataverse as the data source | Microsoft Docs" description: "Learn about the benefits of using Microsoft Dataverse as the data source." author: spboyer -ms.topic: conceptual +ms.topic: concept-article ms.custom: ebook ms.date: 05/07/2021 ms.subservice: guidance diff --git a/powerapps-docs/guidance/fusion-dev-ebook/05-creating-publishing-web-api-in-azure.md b/powerapps-docs/guidance/fusion-dev-ebook/05-creating-publishing-web-api-in-azure.md index 73d3fab580..114440a083 100644 --- a/powerapps-docs/guidance/fusion-dev-ebook/05-creating-publishing-web-api-in-azure.md +++ b/powerapps-docs/guidance/fusion-dev-ebook/05-creating-publishing-web-api-in-azure.md @@ -3,7 +3,7 @@ title: "5: Creating and publishing a Web API in Azure | Microsoft Docs" description: "Learn about creating and publishing a Web API in Azure." author: spboyer -ms.topic: conceptual +ms.topic: concept-article ms.custom: ebook ms.date: 04/26/2021 ms.subservice: guidance diff --git a/powerapps-docs/guidance/fusion-dev-ebook/06-using-web-api-in-app.md b/powerapps-docs/guidance/fusion-dev-ebook/06-using-web-api-in-app.md index b732de5dcb..bac3d729d7 100644 --- a/powerapps-docs/guidance/fusion-dev-ebook/06-using-web-api-in-app.md +++ b/powerapps-docs/guidance/fusion-dev-ebook/06-using-web-api-in-app.md @@ -3,7 +3,7 @@ title: "6: Using the Web API in the app | Microsoft Docs" description: "Learn about how to use the Web API that you created in Azure in your app" author: spboyer -ms.topic: conceptual +ms.topic: concept-article ms.custom: ebook ms.date: 04/26/2021 ms.subservice: guidance diff --git a/powerapps-docs/guidance/fusion-dev-ebook/07-adding-functionality-to-app.md b/powerapps-docs/guidance/fusion-dev-ebook/07-adding-functionality-to-app.md index 3db0a5eb50..afba1dc48c 100644 --- a/powerapps-docs/guidance/fusion-dev-ebook/07-adding-functionality-to-app.md +++ b/powerapps-docs/guidance/fusion-dev-ebook/07-adding-functionality-to-app.md @@ -3,7 +3,7 @@ title: "7: Adding functionality to the app | Microsoft Docs" description: "Learn about adding functionality to the app." author: spboyer -ms.topic: conceptual +ms.topic: concept-article ms.custom: ebook ms.date: 04/26/2021 ms.subservice: guidance diff --git a/powerapps-docs/guidance/fusion-dev-ebook/08-protecting-deploying-app.md b/powerapps-docs/guidance/fusion-dev-ebook/08-protecting-deploying-app.md index 6ece4aef67..1e65f8ab22 100644 --- a/powerapps-docs/guidance/fusion-dev-ebook/08-protecting-deploying-app.md +++ b/powerapps-docs/guidance/fusion-dev-ebook/08-protecting-deploying-app.md @@ -3,7 +3,7 @@ title: "8: Protecting and deploying the app | Microsoft Docs" description: "Learn about how to protect and deploy the app." author: spboyer -ms.topic: conceptual +ms.topic: concept-article ms.custom: ebook ms.date: 04/26/2021 ms.subservice: guidance diff --git a/powerapps-docs/guidance/fusion-dev-ebook/conclusion.md b/powerapps-docs/guidance/fusion-dev-ebook/conclusion.md index bff97f186b..e102d92d8e 100644 --- a/powerapps-docs/guidance/fusion-dev-ebook/conclusion.md +++ b/powerapps-docs/guidance/fusion-dev-ebook/conclusion.md @@ -3,7 +3,7 @@ title: "Fusion development: Conclusion | Microsoft Docs" description: "Conclusion of the ebook on the fusion development approach in Power Apps." author: spboyer -ms.topic: conceptual +ms.topic: concept-article ms.custom: ebook ms.date: 04/26/2021 ms.subservice: guidance @@ -22,7 +22,7 @@ In this ebook, you've seen how the staff at VanArsdel followed a fusion developm The VanArsdel team has now experienced how fusion development teams work and is excited to keep collaborating on future projects. -### Related topics +### Related articles [Power Apps docs](/powerapps/)
[Power Apps best practices guidance](/powerapps/guidance/) diff --git a/powerapps-docs/guidance/fusion-dev-ebook/foreword.md b/powerapps-docs/guidance/fusion-dev-ebook/foreword.md index 0fc0662c9b..6a75d06b4f 100644 --- a/powerapps-docs/guidance/fusion-dev-ebook/foreword.md +++ b/powerapps-docs/guidance/fusion-dev-ebook/foreword.md @@ -3,7 +3,7 @@ title: "Foreword: Fusion development approach to building apps with Power Apps | description: "A foreword to Fusion development approach to building apps with Power Apps." author: spboyer -ms.topic: conceptual +ms.topic: concept-article ms.custom: ebook ms.date: 04/26/2021 ms.subservice: guidance diff --git a/powerapps-docs/guidance/fusion-dev-ebook/index.md b/powerapps-docs/guidance/fusion-dev-ebook/index.md index 7d8d54b8fe..7ea6abde86 100644 --- a/powerapps-docs/guidance/fusion-dev-ebook/index.md +++ b/powerapps-docs/guidance/fusion-dev-ebook/index.md @@ -2,7 +2,7 @@ title: "Ebook: Fusion development approach to building apps using Power Apps | Microsoft Docs" description: "An ebook for citizen and pro developers to use Power Apps to build apps fast." author: spboyer -ms.topic: conceptual +ms.topic: article ms.custom: ebook ms.date: 04/26/2021 ms.subservice: guidance @@ -62,4 +62,4 @@ All other marks and logos are property of their respective owners. ### See also -[Best practices: Collaborating and co-developing apps using Power Apps](../co-develop/overview.md) \ No newline at end of file +[Best practices: Collaborating and co-developing apps using Power Apps](../co-develop/overview.md) diff --git a/powerapps-docs/guidance/fusion-dev-ebook/media/image106.png b/powerapps-docs/guidance/fusion-dev-ebook/media/image106.png index b47a191a41..2ae7d9ab68 100644 Binary files a/powerapps-docs/guidance/fusion-dev-ebook/media/image106.png and b/powerapps-docs/guidance/fusion-dev-ebook/media/image106.png differ diff --git a/powerapps-docs/guidance/fusion-dev-ebook/media/image111.png b/powerapps-docs/guidance/fusion-dev-ebook/media/image111.png index f3a2297741..fc449d680d 100644 Binary files a/powerapps-docs/guidance/fusion-dev-ebook/media/image111.png and b/powerapps-docs/guidance/fusion-dev-ebook/media/image111.png differ diff --git a/powerapps-docs/guidance/fusion-dev-ebook/media/image165.png b/powerapps-docs/guidance/fusion-dev-ebook/media/image165.png index 7ab9933c2a..55fa59c574 100644 Binary files a/powerapps-docs/guidance/fusion-dev-ebook/media/image165.png and b/powerapps-docs/guidance/fusion-dev-ebook/media/image165.png differ diff --git a/powerapps-docs/guidance/fusion-dev-ebook/media/image200.png b/powerapps-docs/guidance/fusion-dev-ebook/media/image200.png index af169d73bd..fe1a82d740 100644 Binary files a/powerapps-docs/guidance/fusion-dev-ebook/media/image200.png and b/powerapps-docs/guidance/fusion-dev-ebook/media/image200.png differ diff --git a/powerapps-docs/guidance/fusion-dev-ebook/media/image203.png b/powerapps-docs/guidance/fusion-dev-ebook/media/image203.png index cba9441c36..c4027f786c 100644 Binary files a/powerapps-docs/guidance/fusion-dev-ebook/media/image203.png and b/powerapps-docs/guidance/fusion-dev-ebook/media/image203.png differ diff --git a/powerapps-docs/guidance/fusion-dev-ebook/media/image236.png b/powerapps-docs/guidance/fusion-dev-ebook/media/image236.png index ce8fd5cb89..efb6bb208e 100644 Binary files a/powerapps-docs/guidance/fusion-dev-ebook/media/image236.png and b/powerapps-docs/guidance/fusion-dev-ebook/media/image236.png differ diff --git a/powerapps-docs/guidance/fusion-dev-ebook/prereqs-setup.md b/powerapps-docs/guidance/fusion-dev-ebook/prereqs-setup.md index 1e61cd7bbc..754f97a2da 100644 --- a/powerapps-docs/guidance/fusion-dev-ebook/prereqs-setup.md +++ b/powerapps-docs/guidance/fusion-dev-ebook/prereqs-setup.md @@ -3,7 +3,7 @@ title: "Fusion development ebook: Prerequisites and setup | Microsoft Docs" description: "Prerequisites and setup for fusion development." author: spboyer -ms.topic: conceptual +ms.topic: install-set-up-deploy ms.custom: ebook ms.date: 04/26/2021 ms.subservice: guidance diff --git a/powerapps-docs/guidance/patterns/approval-pattern.md b/powerapps-docs/guidance/patterns/approval-pattern.md index bee1d9642f..226e92da1a 100644 --- a/powerapps-docs/guidance/patterns/approval-pattern.md +++ b/powerapps-docs/guidance/patterns/approval-pattern.md @@ -3,7 +3,7 @@ title: "Power Apps pattern: Approval | Microsoft Docs" description: Learn how approval apps make it easier to get reviews and sign off on decisions. author: topness-msft -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 01/04/2021 ms.subservice: guidance diff --git a/powerapps-docs/guidance/patterns/asset-management-pattern.md b/powerapps-docs/guidance/patterns/asset-management-pattern.md index 86935ca1ba..a177ca83f0 100644 --- a/powerapps-docs/guidance/patterns/asset-management-pattern.md +++ b/powerapps-docs/guidance/patterns/asset-management-pattern.md @@ -3,7 +3,7 @@ title: "Power Apps pattern: Asset management | Microsoft Docs" description: See real-world examples of how customers have used Power Apps to find, reserve, and manage assets such as meeting rooms, vehicles, and gear along with asset checkout, reservations, booking, and assignment. author: kathyos -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 1/4/2021 ms.subservice: guidance @@ -189,4 +189,4 @@ out as many as 250 iPads per day. ![Screenshot of Crew iPad Asset Management app.](media/virgin-atlantic-crew-ipad-app.png "Screenshot of Crew iPad Asset Management app") -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/patterns/calculator-pattern.md b/powerapps-docs/guidance/patterns/calculator-pattern.md index daa2542e90..1d79448b0f 100644 --- a/powerapps-docs/guidance/patterns/calculator-pattern.md +++ b/powerapps-docs/guidance/patterns/calculator-pattern.md @@ -3,7 +3,7 @@ title: "Power Apps pattern: Calculation | Microsoft Docs" description: Learn how calculation apps make work easier and more accurate. For example, help someone select the right part, adjust equipment, or provide a price estimate. author: topness-msft -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 07/20/2020 ms.subservice: guidance @@ -158,4 +158,4 @@ visually illustrate fractions and fraction multiplication. [Higher Education Crisis Financial Impact Tracker solution template](https://powerapps.microsoft.com/blog/tracking-financial-impact-for-higher-education-a-power-platform-template/) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/patterns/communication-pattern.md b/powerapps-docs/guidance/patterns/communication-pattern.md index ebf411b70f..9dacdd0152 100644 --- a/powerapps-docs/guidance/patterns/communication-pattern.md +++ b/powerapps-docs/guidance/patterns/communication-pattern.md @@ -3,7 +3,7 @@ title: "Power Apps pattern: Communication | Microsoft Docs" description: Learn how communication apps help you quickly share news, event announcements, and the latest up-to-date info with your employees no matter where they are. author: Vasavib -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 07/20/2020 ms.subservice: guidance @@ -165,4 +165,4 @@ app's key capabilities and benefits include: ![Some screenshots of the Hexion Broadcast app.](media/hexion-broadcaster-app.png "Some screenshots of the Hexion Broadcast app") -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/patterns/inspection-pattern.md b/powerapps-docs/guidance/patterns/inspection-pattern.md index 22c5cba368..97a1626520 100644 --- a/powerapps-docs/guidance/patterns/inspection-pattern.md +++ b/powerapps-docs/guidance/patterns/inspection-pattern.md @@ -3,7 +3,7 @@ title: "Power Apps pattern: Inspection | Microsoft Docs" description: See real-world examples of how customers have used Power Apps to create timely, efficient, and actionable inspections, from aircraft maintenance to elementary school. author: kathyos -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/21/2021 ms.subservice: guidance diff --git a/powerapps-docs/guidance/patterns/media/microsoft-building-app-request.png b/powerapps-docs/guidance/patterns/media/microsoft-building-app-request.png index 4dfba28886..04f3e65b12 100644 Binary files a/powerapps-docs/guidance/patterns/media/microsoft-building-app-request.png and b/powerapps-docs/guidance/patterns/media/microsoft-building-app-request.png differ diff --git a/powerapps-docs/guidance/patterns/media/r3-role-management.png b/powerapps-docs/guidance/patterns/media/r3-role-management.png index e07d67158e..001b62da10 100644 Binary files a/powerapps-docs/guidance/patterns/media/r3-role-management.png and b/powerapps-docs/guidance/patterns/media/r3-role-management.png differ diff --git a/powerapps-docs/guidance/patterns/more-patterns.md b/powerapps-docs/guidance/patterns/more-patterns.md index 1488817fca..54920f234c 100644 --- a/powerapps-docs/guidance/patterns/more-patterns.md +++ b/powerapps-docs/guidance/patterns/more-patterns.md @@ -3,7 +3,7 @@ title: "Power Apps patterns: Real-world stories | Microsoft Docs" description: See real-world examples of how customers have used Power Apps in a wide variety of common scenarios. author: kathyos -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 09/24/2024 ms.subservice: guidance diff --git a/powerapps-docs/guidance/patterns/project-management-pattern.md b/powerapps-docs/guidance/patterns/project-management-pattern.md index 2d27ff9361..95e24267e7 100644 --- a/powerapps-docs/guidance/patterns/project-management-pattern.md +++ b/powerapps-docs/guidance/patterns/project-management-pattern.md @@ -3,7 +3,7 @@ title: "Power Apps pattern: Project management | Microsoft Docs" description: Learn how project management apps help you manage projects to ensure teams achieve their goals and meet success criteria as planned. author: Vasavib -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 1/4/2021 ms.subservice: guidance diff --git a/powerapps-docs/guidance/planning/app-development-approaches.md b/powerapps-docs/guidance/planning/app-development-approaches.md index fb01c060e4..7655ee028d 100644 --- a/powerapps-docs/guidance/planning/app-development-approaches.md +++ b/powerapps-docs/guidance/planning/app-development-approaches.md @@ -3,7 +3,7 @@ title: Power Apps vs. traditional app development approaches | Microsoft Docs description: Learn how Power Apps development compares to traditional app development in two key areas - how team members collaborate and the development process methodology author: taiki-yoshida -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -59,4 +59,4 @@ the next version. ![Power Apps development: Low code plus WYSIWYG allows for an MVP to be developed right away.](media/power-apps-development.png "Power Apps development: Low code plus WYSIWYG allows for an MVP to be developed right away") -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/app-tasks.md b/powerapps-docs/guidance/planning/app-tasks.md index c02ea7b369..3558813dfe 100644 --- a/powerapps-docs/guidance/planning/app-tasks.md +++ b/powerapps-docs/guidance/planning/app-tasks.md @@ -3,7 +3,7 @@ title: Designing - Tasks to be done in an app | Microsoft Docs description: As part of the design phase of a Power Apps project, learn how to identify the tasks to be done in the app. author: TGrounds -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -57,4 +57,4 @@ screens and components: > [Next step: Sketching the screens](sketching.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/app-type.md b/powerapps-docs/guidance/planning/app-type.md index 48a2b0037c..89a4b74d40 100644 --- a/powerapps-docs/guidance/planning/app-type.md +++ b/powerapps-docs/guidance/planning/app-type.md @@ -3,7 +3,7 @@ title: Designing - Which type of app to make | Microsoft Docs description: As part of the design phase of a Power Apps project, determine whether to make a model-driven app or a canvas app. author: taiki-yoshida -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance diff --git a/powerapps-docs/guidance/planning/create-edit-data.md b/powerapps-docs/guidance/planning/create-edit-data.md index 5e65532eab..2ec6313d3e 100644 --- a/powerapps-docs/guidance/planning/create-edit-data.md +++ b/powerapps-docs/guidance/planning/create-edit-data.md @@ -3,7 +3,7 @@ title: Planning - Will your app create or edit data? | Microsoft Docs description: As part of the planning phase of a Power Apps project, here are some things to consider for each data element your solution needs to capture. author: TGrounds -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -182,4 +182,4 @@ negotiate better rates. We'll note this in our project plan. > [Next step: What are the business rules?](decisions-approvals.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/data-modeling.md b/powerapps-docs/guidance/planning/data-modeling.md index 8b250546b6..20205869aa 100644 --- a/powerapps-docs/guidance/planning/data-modeling.md +++ b/powerapps-docs/guidance/planning/data-modeling.md @@ -3,7 +3,7 @@ title: Designing your data structure | Microsoft Docs description: When you're storing or viewing data with your app, an important part of the design is the data structure. Learn key considerations for data modeling. author: taiki-yoshida -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -90,4 +90,4 @@ Hence, the relationship between employees and vendors is many-to-many. > [Next step: Determine which type of app to make](app-type.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/decisions-approvals.md b/powerapps-docs/guidance/planning/decisions-approvals.md index 9db23658a8..737d6e6793 100644 --- a/powerapps-docs/guidance/planning/decisions-approvals.md +++ b/powerapps-docs/guidance/planning/decisions-approvals.md @@ -3,7 +3,7 @@ title: Planning - Data-driven decisions (business rules) | Microsoft Docs description: As part of the planning phase of a Power Apps project, determine what decisions are being made based on the data and what business rules need to be followed. author: TGrounds -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance diff --git a/powerapps-docs/guidance/planning/defining-app-project-objective.md b/powerapps-docs/guidance/planning/defining-app-project-objective.md index b0d0c9ebfc..6ebe7e8aba 100644 --- a/powerapps-docs/guidance/planning/defining-app-project-objective.md +++ b/powerapps-docs/guidance/planning/defining-app-project-objective.md @@ -3,7 +3,7 @@ title: Planning - Defining the app project goals | Microsoft Docs description: Having a clear objective for what your Power Apps project team is trying to achieve is important so that your project team members share the same goals. author: taiki-yoshida -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -69,4 +69,4 @@ releases so that we could deliver value incrementally: > [Next step: Defining the project scope](defining-project-scope.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/defining-business-value.md b/powerapps-docs/guidance/planning/defining-business-value.md index 639ae98278..02171abe24 100644 --- a/powerapps-docs/guidance/planning/defining-business-value.md +++ b/powerapps-docs/guidance/planning/defining-business-value.md @@ -3,7 +3,7 @@ title: Planning - Defining the project's business value | Microsoft Docs description: Business value falls into one of four categories - Revenue, Efficiency, Volume, Other. Define the business value for your Power Apps project. author: TGrounds -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance diff --git a/powerapps-docs/guidance/planning/defining-project-schedule.md b/powerapps-docs/guidance/planning/defining-project-schedule.md index 8f3118fd2f..c59228571f 100644 --- a/powerapps-docs/guidance/planning/defining-project-schedule.md +++ b/powerapps-docs/guidance/planning/defining-project-schedule.md @@ -3,7 +3,7 @@ title: Planning - Defining the project schedule | Microsoft Docs description: When planning a Power Apps project, learn about factors that affect how much time you'll be spending on the project. author: taiki-yoshida -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -59,4 +59,4 @@ can help with screen design, interactions, and data architecture. > [Next step: Identifying the risks](identifying-risks.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/defining-project-scope.md b/powerapps-docs/guidance/planning/defining-project-scope.md index 2b5ce36e64..de15ee078b 100644 --- a/powerapps-docs/guidance/planning/defining-project-scope.md +++ b/powerapps-docs/guidance/planning/defining-project-scope.md @@ -3,7 +3,7 @@ title: Planning - Defining the Power Apps project scope | Microsoft Docs description: Your scope directly affects and determines which features to include and not to include when making the app. Learn about scope constraints to consider. author: taiki-yoshida -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -80,4 +80,4 @@ appropriate. > [Next step: Prioritzing features](prioritizing-features.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/designing-phase.md b/powerapps-docs/guidance/planning/designing-phase.md index 1bc9e9a3ce..9f90c1ec27 100644 --- a/powerapps-docs/guidance/planning/designing-phase.md +++ b/powerapps-docs/guidance/planning/designing-phase.md @@ -3,7 +3,7 @@ title: Design phase - Planning a Power Apps project | Microsoft Docs description: In the designing phase, you'll prepare the specifications and designs of your app. This article introduces the conceptual and architectural design phases. author: taiki-yoshida -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -55,4 +55,4 @@ This is where you'll consider things like: > [Next step: Identifying tasks to be done in the app](app-tasks.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/discoverability.md b/powerapps-docs/guidance/planning/discoverability.md index 8ed26185be..906f1874ed 100644 --- a/powerapps-docs/guidance/planning/discoverability.md +++ b/powerapps-docs/guidance/planning/discoverability.md @@ -3,7 +3,7 @@ title: Deploying a Power Apps project - Discoverability | Microsoft Docs description: Get your app into the hands of your users by making it available for production use. Then, explore various ways to make your app discoverable. author: taiki-yoshida -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -137,4 +137,4 @@ search results. > [Next step: Collect feedback and telemetry](feedback-telemetry.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/enterprise-systems.md b/powerapps-docs/guidance/planning/enterprise-systems.md index 0a4d134acc..17ef728ff8 100644 --- a/powerapps-docs/guidance/planning/enterprise-systems.md +++ b/powerapps-docs/guidance/planning/enterprise-systems.md @@ -3,7 +3,7 @@ title: Data design - Working with enterprise systems | Microsoft Docs description: Read this article to understand some of the things to consider when integrating with enterprise systems for a Power Apps project. author: taiki-yoshida -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -104,4 +104,4 @@ performance while still allowing integration with on-premises data. > [Next step: Data modeling](data-modeling.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/example-expense-reporting.md b/powerapps-docs/guidance/planning/example-expense-reporting.md index 7e53876ff2..65dcfc1a8d 100644 --- a/powerapps-docs/guidance/planning/example-expense-reporting.md +++ b/powerapps-docs/guidance/planning/example-expense-reporting.md @@ -3,7 +3,7 @@ title: Planning a Power Apps project example | Microsoft Docs description: This expense reporting example shows how a typical paper-based expense approval within the organization has inefficiencies for multiple departments and employees. author: TGrounds -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance diff --git a/powerapps-docs/guidance/planning/feedback-telemetry.md b/powerapps-docs/guidance/planning/feedback-telemetry.md index ffd4031cc2..1ab58f0881 100644 --- a/powerapps-docs/guidance/planning/feedback-telemetry.md +++ b/powerapps-docs/guidance/planning/feedback-telemetry.md @@ -3,7 +3,7 @@ title: Power Apps projects - Feedback and telemetry | Microsoft Docs description: As a way to help you refine and improve your app, collecting feedback and analyzing the telemetry is an important part of the refining process. author: taiki-yoshida -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -70,4 +70,4 @@ You can also set up custom telemetry by using the [trace function](../../maker/canvas-apps/functions/function-trace.md). -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/gaining-support.md b/powerapps-docs/guidance/planning/gaining-support.md index 1bc98dbdb3..1d3131fafa 100644 --- a/powerapps-docs/guidance/planning/gaining-support.md +++ b/powerapps-docs/guidance/planning/gaining-support.md @@ -3,7 +3,7 @@ title: Planning a Power Apps project - management support | Microsoft Docs description: Ensure your company is supportive of making and using your app to replace an existing business process by gaining support or sponsorship from your management. author: TGrounds -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 12/18/2020 ms.subservice: guidance @@ -43,4 +43,4 @@ to access key data. -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/identifying-business-problem-to-solve.md b/powerapps-docs/guidance/planning/identifying-business-problem-to-solve.md index 4deaa18640..eedfc4664a 100644 --- a/powerapps-docs/guidance/planning/identifying-business-problem-to-solve.md +++ b/powerapps-docs/guidance/planning/identifying-business-problem-to-solve.md @@ -3,7 +3,7 @@ title: Power Apps - Identifying the business problem to solve | Microsoft Docs description: The first step in using Microsoft Power Platform to solve a business problem is deciding what problem you want to tackle. Learn about common Power Apps use cases. author: TGrounds -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -124,4 +124,4 @@ it. > [Next step: The expense reporting example](example-expense-reporting.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/identifying-project-members.md b/powerapps-docs/guidance/planning/identifying-project-members.md index 269e293880..44967ddc1a 100644 --- a/powerapps-docs/guidance/planning/identifying-project-members.md +++ b/powerapps-docs/guidance/planning/identifying-project-members.md @@ -3,7 +3,7 @@ title: Planning - Identify your Power Apps project team | Microsoft Docs description: Anyone who is involved in designing, making, and testing apps will be a project team member. Consider who will fill these project roles. author: taiki-yoshida -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -47,4 +47,4 @@ project, and make the app. > [Next step: Listing project tasks and owners](project-tasks-owners.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/identifying-risks.md b/powerapps-docs/guidance/planning/identifying-risks.md index 980ba5fdc1..e7b38e2df6 100644 --- a/powerapps-docs/guidance/planning/identifying-risks.md +++ b/powerapps-docs/guidance/planning/identifying-risks.md @@ -3,7 +3,7 @@ title: Planning - Identifying Power Apps project risks | Microsoft Docs description: When planning a Power Apps project, identify what might present a risk to your project, what kind of risks are created by the app, and what you'll do to address them. author: TGrounds -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -58,4 +58,4 @@ We created a table like this for our expense report project: > [Next step: Get support from management](gaining-support.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/introduction.md b/powerapps-docs/guidance/planning/introduction.md index 19f9b39f4b..6ac227edd2 100644 --- a/powerapps-docs/guidance/planning/introduction.md +++ b/powerapps-docs/guidance/planning/introduction.md @@ -3,7 +3,7 @@ title: Introduction to Planning a Power Apps project | Microsoft Docs description: In these articles, regardless of your background or experience level, you'll learn about the steps to convert your ideas into a working solution by using Power Apps. author: TGrounds -ms.topic: conceptual +ms.topic: overview ms.custom: guidance ms.date: 08/10/2020 ms.subservice: guidance @@ -71,4 +71,4 @@ If you're a **"full stack" developer**: -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/logic.md b/powerapps-docs/guidance/planning/logic.md index c97ed7d448..44c0056441 100644 --- a/powerapps-docs/guidance/planning/logic.md +++ b/powerapps-docs/guidance/planning/logic.md @@ -2,7 +2,7 @@ title: Power Apps architectural design - Where to place logic | Microsoft Docs description: "Considerations for deciding where to place the logic in your system: canvas apps, model-driven apps, Microsoft Dataverse, or Power Automate flows?" author: taiki-yoshida -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance diff --git a/powerapps-docs/guidance/planning/making-phase.md b/powerapps-docs/guidance/planning/making-phase.md index e048d625af..8190c169de 100644 --- a/powerapps-docs/guidance/planning/making-phase.md +++ b/powerapps-docs/guidance/planning/making-phase.md @@ -3,7 +3,7 @@ title: Making Phase - Planning a Power Apps project | Microsoft Docs description: You've now planned and designed your app. The next step is to actually make it. This article provides an overview of steps for creating canvas apps and model-driven apps. author: taiki-yoshida -ms.topic: conceptual +ms.topic: how-to ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance diff --git a/powerapps-docs/guidance/planning/measuring-success.md b/powerapps-docs/guidance/planning/measuring-success.md index cdcba81c71..1ca2e281e5 100644 --- a/powerapps-docs/guidance/planning/measuring-success.md +++ b/powerapps-docs/guidance/planning/measuring-success.md @@ -3,7 +3,7 @@ title: Planning a Power Apps project - Measuring success | Microsoft Docs description: As part of planning a Power Apps project, identify SMART measures to track progress against realizing the business value you think is achievable for your app. author: TGrounds -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -111,4 +111,4 @@ The SMART goals we decided on are: > [Next step: Creating a project plan](defining-app-project-objective.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/next-task.md b/powerapps-docs/guidance/planning/next-task.md index ca864bca2e..5890acb2a7 100644 --- a/powerapps-docs/guidance/planning/next-task.md +++ b/powerapps-docs/guidance/planning/next-task.md @@ -3,7 +3,7 @@ title: Planning - How does this task pass to the next one | Microsoft Docs description: When you are deeply inspecting a step in business process you want to automate by using Power Apps, the last question is how does this step end and the next step begin? author: TGrounds -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -34,4 +34,4 @@ process—starting back at [What is the task?](what-is-task.md)—until > [Next step: Documenting the next task in the process](what-is-task.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/optimizing-business-process.md b/powerapps-docs/guidance/planning/optimizing-business-process.md index d20ddbd2d4..0e95eec469 100644 --- a/powerapps-docs/guidance/planning/optimizing-business-process.md +++ b/powerapps-docs/guidance/planning/optimizing-business-process.md @@ -3,7 +3,7 @@ title: Planning - Optimizing your business process | Microsoft Docs description: Now that you've documented the business process you want to automate with Power Apps, optimize it. Learn some helpful approaches and key questions for optimization. author: TGrounds -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 10/12/2021 ms.subservice: guidance diff --git a/powerapps-docs/guidance/planning/prioritizing-features.md b/powerapps-docs/guidance/planning/prioritizing-features.md index a9ee20f2c0..56deb8d78e 100644 --- a/powerapps-docs/guidance/planning/prioritizing-features.md +++ b/powerapps-docs/guidance/planning/prioritizing-features.md @@ -3,7 +3,7 @@ title: Planning - Prioritizing feature requests | Microsoft Docs description: Following a systematic approach to prioritizing feature requests for your Power Apps project will help you prioritize the right features and explain your decisions. author: taiki-yoshida -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -88,4 +88,4 @@ Quadrants, to aid mutual understanding. > [Next step: Identifying project team members](identifying-project-members.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/project-tasks-owners.md b/powerapps-docs/guidance/planning/project-tasks-owners.md index 65d1e1a9c9..26b46c6167 100644 --- a/powerapps-docs/guidance/planning/project-tasks-owners.md +++ b/powerapps-docs/guidance/planning/project-tasks-owners.md @@ -3,7 +3,7 @@ title: Planning - Power Apps project tasks and owners | Microsoft Docs description: List the tasks to be done during each project phase (planning, designing, making, testing, and deploying and refining) and who will be responsible for each task. author: taiki-yoshida -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -46,4 +46,4 @@ solving this problem, is taking the lead on this project. > [Next step: Defining the project schedule](defining-project-schedule.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/security.md b/powerapps-docs/guidance/planning/security.md index 97c277109f..f86060b6f0 100644 --- a/powerapps-docs/guidance/planning/security.md +++ b/powerapps-docs/guidance/planning/security.md @@ -3,7 +3,7 @@ title: Design - Securing the app and data | Microsoft Docs description: This article explains general security concepts for people undertaking a Power Apps project, explaining security layers and how to apply them. author: taiki-yoshida -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance diff --git a/powerapps-docs/guidance/planning/sketching.md b/powerapps-docs/guidance/planning/sketching.md index 3ab93b6fac..73e1e889f8 100644 --- a/powerapps-docs/guidance/planning/sketching.md +++ b/powerapps-docs/guidance/planning/sketching.md @@ -3,7 +3,7 @@ title: Designing - Sketching the screens | Microsoft Docs description: After you've identified the tasks for your Power Apps project, the next step is to sketch the screens. With these tips, you don't have to be an artist! author: taiki-yoshida -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -52,4 +52,4 @@ use it. > [Next step: Architectural design](where-is-data.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/testing-phase.md b/powerapps-docs/guidance/planning/testing-phase.md index 6e2d6d64af..0598f83db9 100644 --- a/powerapps-docs/guidance/planning/testing-phase.md +++ b/powerapps-docs/guidance/planning/testing-phase.md @@ -3,7 +3,7 @@ title: Testing Phase - Planning a Power Apps project | Microsoft Docs description: Now that your app is built, the next step is to start testing it. You'll learn the basics of testing an app and discover Power Apps testing tools. author: taiki-yoshida -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -128,4 +128,4 @@ can quickly review issues and see recommended fixes. More information: [Use solu > [Next step: Publish and share the app](discoverability.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/understanding-current-business-process.md b/powerapps-docs/guidance/planning/understanding-current-business-process.md index 00d37036ed..e761689591 100644 --- a/powerapps-docs/guidance/planning/understanding-current-business-process.md +++ b/powerapps-docs/guidance/planning/understanding-current-business-process.md @@ -3,7 +3,7 @@ title: Understanding the current business process | Microsoft Docs description: When planning a Power Apps project, you first need to understand how the business process you want to automate works today. author: TGrounds -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance diff --git a/powerapps-docs/guidance/planning/visually-map-process.md b/powerapps-docs/guidance/planning/visually-map-process.md index 08fcf9265e..630885f3ca 100644 --- a/powerapps-docs/guidance/planning/visually-map-process.md +++ b/powerapps-docs/guidance/planning/visually-map-process.md @@ -3,7 +3,7 @@ title: Visually map the current business process | Microsoft Docs description: After you have documented the current business process you want to automate with a Power Apps project, visualize it by drawing a flowchart. author: TGrounds -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance @@ -57,4 +57,4 @@ can also use this for comparing the money or time saved by the new process. > [Next step: Optimize the process](optimizing-business-process.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/guidance/planning/what-activities.md b/powerapps-docs/guidance/planning/what-activities.md index 725c7b74e8..15de69250d 100644 --- a/powerapps-docs/guidance/planning/what-activities.md +++ b/powerapps-docs/guidance/planning/what-activities.md @@ -3,7 +3,7 @@ title: Document the activities in a business process | Microsoft Docs description: As part of the planning phase of a Power Apps project, document the activities currently performed in each step of the business process you want to automate. author: TGrounds -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 10/12/2021 ms.subservice: guidance diff --git a/powerapps-docs/guidance/planning/what-data-needed.md b/powerapps-docs/guidance/planning/what-data-needed.md index d73b4c92c6..4b745a84a2 100644 --- a/powerapps-docs/guidance/planning/what-data-needed.md +++ b/powerapps-docs/guidance/planning/what-data-needed.md @@ -3,7 +3,7 @@ title: Data needs for each step of a business process | Microsoft Docs description: As part of the planning phase of a Power Apps project, document the data required for each step of the business process you want to automate. author: TGrounds -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance diff --git a/powerapps-docs/guidance/planning/what-is-task.md b/powerapps-docs/guidance/planning/what-is-task.md index 5554f62dd3..b59ad7f009 100644 --- a/powerapps-docs/guidance/planning/what-is-task.md +++ b/powerapps-docs/guidance/planning/what-is-task.md @@ -3,7 +3,7 @@ title: Documenting the tasks in a business process | Microsoft Docs description: As part of the planning phase of a Power Apps project, document all the tasks needed to perform the business process from start to finish. author: TGrounds -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 10/12/2021 ms.subservice: guidance diff --git a/powerapps-docs/guidance/planning/where-is-data.md b/powerapps-docs/guidance/planning/where-is-data.md index 47ea8d8b79..42000be3a6 100644 --- a/powerapps-docs/guidance/planning/where-is-data.md +++ b/powerapps-docs/guidance/planning/where-is-data.md @@ -3,7 +3,7 @@ title: Accessing and storing data for a Power Apps project | Microsoft Docs description: As part of the design phase of a Power Apps project, document where and how you'll access existing data you need, and decide where you'll store data you create. author: taiki-yoshida -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance diff --git a/powerapps-docs/guidance/planning/who-is-doing-work.md b/powerapps-docs/guidance/planning/who-is-doing-work.md index cfbc2ba726..d825fb86d6 100644 --- a/powerapps-docs/guidance/planning/who-is-doing-work.md +++ b/powerapps-docs/guidance/planning/who-is-doing-work.md @@ -3,7 +3,7 @@ title: Understanding job roles and personas for your app project | Microsoft Doc description: As part of the planning phase of a Power Apps project, document who is doing the work, when, and where. author: TGrounds -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance diff --git a/powerapps-docs/guidance/planning/worth-automating-process.md b/powerapps-docs/guidance/planning/worth-automating-process.md index e05eaebcb6..5a40c39adb 100644 --- a/powerapps-docs/guidance/planning/worth-automating-process.md +++ b/powerapps-docs/guidance/planning/worth-automating-process.md @@ -3,7 +3,7 @@ title: Is it worth automating this process? | Microsoft Docs description: As part of the planning phase of a Power Apps project, consider the effort it will take to build the solution and decide whether it's justified by business value. author: TGrounds -ms.topic: conceptual +ms.topic: concept-article ms.custom: guidance ms.date: 06/16/2020 ms.subservice: guidance diff --git a/powerapps-docs/index.yml b/powerapps-docs/index.yml index 231f321ebf..4f5b51c3cf 100644 --- a/powerapps-docs/index.yml +++ b/powerapps-docs/index.yml @@ -10,7 +10,7 @@ metadata: ms.topic: hub-page # Required author: tapanm-msft #Required; your GitHub user alias, with correct capitalization. ms.author: tapanm #Required; microsoft alias of author; optional team alias. - ms.date: 08/07/2024 #Required; mm/dd/yyyy format. + ms.date: 05/29/2025 #Required; mm/dd/yyyy format. ms.custom: bap-template hide_bc: true @@ -62,7 +62,7 @@ additionalContent: links: - text: Get started with AI copilot (preview) url: maker/canvas-apps/ai-overview.md - - text: Build apps through conversation (preview) + - text: Build apps through conversation url: maker/canvas-apps/ai-conversations-create-app.md - text: Add a Copilot control to a canvas app (preview) url: maker/canvas-apps/add-ai-copilot.md diff --git a/powerapps-docs/limits-and-config.md b/powerapps-docs/limits-and-config.md index 309896e851..b7eb9cacae 100644 --- a/powerapps-docs/limits-and-config.md +++ b/powerapps-docs/limits-and-config.md @@ -2,10 +2,11 @@ title: Power Apps system requirements and limits description: Learn about device platform and web browser requirements, limits, and configuration values for Power Apps. author: lancedMicrosoft -ms.topic: conceptual +ms.topic: article ms.custom: canvas ms.reviewer: mkaur -ms.date: 1/30/2025 +ms.date: 07/28/2025 +ms.update-cycle: 180-days ms.subservice: canvas-maker ms.author: gregli search.audienceType: @@ -27,6 +28,10 @@ This article contains information on supported device platforms, web browser req ## Supported platforms for running apps using the Power Apps mobile app +> [!NOTE] +> - To ensure optimal user experience, we recommend that you test your app on the specific devices intended for production deployment. +> - Performance testing and results may vary between device types such as mobile, desktop, and laptops due to processing power, memory capacity, network connectivity, app complexity and other apps running in parallel in a device. Make sure the test results meet your business requirements before you roll out the solutions in production. + | **Platform** | **Version** | --- | --- | | iOS |The latest version of iOS is always the recommended version to run Power Apps mobile. The previous version is the minimum required.| @@ -97,9 +102,10 @@ This list identifies all services to which Power Apps communicates and their usa | \*.azure-apim.net |https |API Hubs - Different subdomains for each locale | | \*.azure-apihub.net |https |API Hubs - Different subdomains for each locale | | \*.powerapps.com |https | create.powerapps.com, content.powerapps.com, apps.powerapps.com, make.powerapps.com, \*gateway.prod.island.powerapps.com, and \*gateway.prod.cm.powerapps.com | +| \*.gateway.prod.island.powerapps.com | WSS | Required for communication with and startup of canvas apps. | | \*.azureedge.net |https | create.powerapps.com, content.powerapps.com, and make.powerapps.com
(Optional) We highly recommend that you use the wildcard listed under Domain(s). You can [download](https://go.microsoft.com/fwlink/?linkid=2225562) the complete list if you want to allow specific domain names instead of using *.azureedge.net. However, this list is subject to change.
| | \*.azurefd.net |https | create.powerapps.com, content.powerapps.com, and make.powerapps.com | -| \*.ces.microsoftcloud.com | https | Access to net promoter score (NPS) and surveys. | +| \*.ces.microsoftcloud.com
config.centro.core.microsoft
admin.microsoft.com
petrol.office.microsoft.com | https | Access to net promoter score (NPS) and surveys. | | \*.blob.core.windows.net |https | Blob storage
(Optional) We highly recommend that you use the wildcard listed under Domain(s). You can [download](https://go.microsoft.com/fwlink/?linkid=2225562) the complete list if you want to allow specific domain names instead of using *.blob.core.windows.net. However, this list is subject to change.
| | \*.flow.microsoft.com
\*.powerautomate.com | https | create.powerapps.com, content.powerapps.com, and make.powerapps.com | | http://\*.crm#.dynamics.com and https://\*.crm#.dynamics.com | https | Required for environments access. Includes integration and static Content Delivery Network (CDN) content endpoints.

Replace # in http://\*.crm#.dynamics.com and https://\*.crm#.dynamics.com with your region's number:
  • Asia/Pacific: 5
  • Canada: 3
  • Europe, Africa, and Middle East: 15 and 4
  • France: 12
  • Germany: 16
  • India: 8
  • Japan: 7
  • North America: no number
  • Oceania: 6
  • Singapore: 20
  • South Africa: 14
  • South America: 2
  • Switzerland: 17
  • UAE: 15
  • United Kingdom: 11
  • Dynamics 365 US Government: 9
  • | @@ -110,12 +116,13 @@ This list identifies all services to which Power Apps communicates and their usa | ecs.office.com | https | Retrieve feature flags for Power Apps | | augloop.svc.cloud.microsoft
    \*.augloop.svc.cloud.microsoft | WSS | Power Apps Studio Copilot | | config.edge.skype.com | https | Retrieve feature flags for Power Apps (backup)| -| api.powerplatform.com
    \*.powerplatform.com
    *.api.powerplatformusercontent.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).| +| api.powerplatform.com
    \*.powerplatform.com
    *.api.powerplatformusercontent.com
    *.powerplatformusercontent.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).| | *.sharepointonline.com| https | Retrieve assets for presenting the header that appears at the top of app playing experiences | | ris.api.iris.microsoft.com
    eudb.ris.api.iris.microsoft.com | https | Record user action in response to Power Apps in-app campaigns | | arc.msn.com
    arc-emea.msn.com | https | Record user viewing of Power Apps in-app campaigns | | *.hubblecontent.osi.office.net
    hubble.officeapps.live.com
    res.cdn.office.net |https |Provides stock images to use in your app | | dc.services.visualstudio.com | https | [Application Insights](/azure/azure-monitor/app/app-insights-overview) endpoint used for [custom telemetry in canvas app](maker/canvas-apps/application-insights.md) | +| *.ocv.microsoft.com | https | Allows users to provide Copilot feedback data in Power Apps | | js.monitor.azure.com | https | This is used by the office header for reporting telemetry | 1 Replaces domain name `gov.content.powerapps.us` used before July 2022.
    diff --git a/powerapps-docs/maker/TOC.yml b/powerapps-docs/maker/TOC.yml index 482ab9cf8f..464b037731 100644 --- a/powerapps-docs/maker/TOC.yml +++ b/powerapps-docs/maker/TOC.yml @@ -12,12 +12,16 @@ href: ../user/request-license.md - name: Request licenses for your app users href: common/request-licenses-for-users.md + - name: Overview of creating apps + href: index.md - name: Sign in to Power Apps href: ./canvas-apps/sign-in-to-power-apps.md - name: Get started with Power Apps href: ./canvas-apps/intro-maker-portal.md - name: Copilot in Power Apps (preview) href: ./canvas-apps/ai-overview.md + - name: Use the learn hub + href: ./common/learn-hub.md - name: "What's new?" href: ../whats-new.md - name: Get your developer environment @@ -39,12 +43,6 @@ href: ../user/powerapps-web-part.md - name: In Microsoft Teams href: ../user/open-app-embedded-in-teams.md - - name: Copilot features - items: - - name: Draft well-written, input text (preview) - href: ../user/well-written-input-text-copilot.md - - name: Filter, sort, and search galleries (preview) - href: ../user/smartGrid.md - name: Use model-driven apps items: - name: Overview @@ -53,16 +51,24 @@ href: ../user/modern-fluent-design.md - name: Unified Interface href: ../user/unified-interface.md - - name: Copilot features + - name: AI features items: + - name: AI in apps overview + href: ../user/ai-in-apps.md + - name: Supervise agents using agent feed (preview) + href: ../user/supervise-agents-with-agent-feed.md - name: Use form fill assistance href: ../user/form-filling-assistance.md - name: Use row summary href: ../user/record-summaries.md - name: Use Copilot chat href: ../user/use-copilot-model-driven-apps.md - - name: Use Copilot to visualize data in a view (preview) + - name: Find data in a view (preview) + href: ../user/find-data-with-ai.md + - name: Visualize data in a view (preview) href: ../user/visualize-data-in-copilot.md + - name: Use Copilot case summary in model-driven apps + href: ../user/copilot-case-summary.md - name: Navigation and basics items: - name: Basic navigation @@ -131,8 +137,6 @@ items: - name: Create email templates href: ../user/email-template-create.md - - name: Customize an email template using the template editor - href: ../user/cs-template-options.md - name: Personalize emails with dynamic text href: ../user/email-dynamic-text.md - name: Insert an email template @@ -229,18 +233,24 @@ href: ../user/work-with-business-processes.md - name: Use flows href: ../user/use-flows.md + - name: Find it with unified search + href: search.md - name: Use Dynamics 365 App for Outlook href: ../user/use-outlook-app.md -- name: Create apps +- name: Plan designer items: - name: Overview - href: index.md - - name: Use the Plan designer (preview) href: ./plan-designer/plan-designer.md - - name: Use the learn hub - href: ./common/learn-hub.md - - name: Find it with unified search - href: search.md + - name: Create a plan + href: ./plan-designer/create-plan.md + - name: Generate process diagrams (preview) + href: ./plan-designer/process-diagram.md + - name: Build a solution + href: ./plan-designer/build-solution.md + - name: Manage a solution + href: ./plan-designer/manage-solution.md + - name: Create a plan from a solution + href: ./plan-designer/create-plan-from-solution.md - name: Canvas apps items: - name: Canvas apps @@ -308,8 +318,10 @@ items: - name: Connections overview href: ./canvas-apps/connections-list.md - - name: Working with untyped and dynamic objects + - name: Working with dynamic values href: ./canvas-apps/untyped-and-dynamic-objects.md + - name: Manage expired tokens + href: ./canvas-apps/working-with-tokens.md - name: Popular connectors items: - name: Dataverse @@ -388,7 +400,7 @@ href: ./canvas-apps/inline-actions.md - name: Add comments href: ./canvas-apps/comments.md - - name: Understand coauthoring + - name: Understand coauthoring and copresence href: ./canvas-apps/copresence-power-apps-studio.md - name: Add and configure controls href: ./canvas-apps/add-configure-controls.md @@ -714,8 +726,6 @@ href: ./canvas-apps/power-apps-ideas.md - name: Transform natural language to Power Fx formulas href: ./canvas-apps/power-apps-ideas-transform.md - - name: Transform examples to Power Fx formulas - href: ./canvas-apps/power-apps-ideas-train-examples.md - name: Formula reference items: - name: Overview @@ -1200,14 +1210,8 @@ href: ./canvas-apps/test-studio-classic-pipeline-editor.md - name: Configure pipeline using YAML href: ./canvas-apps/test-studio-yaml-pipeline.md - - name: Test an app with Test Engine (preview) - items: - - name: Test Engine Overview - href: ../developer/test-engine/overview.md - - name: Test Engine Yaml format - href: ../developer/test-engine/yaml.md - - name: Test Engine Power Fx functions - href: ../developer/test-engine/powerfx.md + - name: "Test Canvas apps with Test Engine (preview)" + href: /power-platform/test-engine/canvas-application - name: How-to guides items: - name: Create a canvas app connected to Dataverse from scratch @@ -1244,6 +1248,8 @@ href: ./common/wrap/code-sign-ios.md - name: Code sign for Android href: ./common/wrap/code-sign-android.md + - name: Code signing process for AAB file + href: ./common/wrap/code-sign-aab-file.md - name: Azure key vault for wrap href: ./common/wrap/create-key-vault-for-code-signing.md - name: Use deep links with wrapped mobile apps @@ -1286,7 +1292,7 @@ href: ./canvas-apps/component-multimedia.md - name: Behavior formulas (experimental) href: ./canvas-apps/component-behavior.md - - name: Canvas component properties (preview) + - name: Canvas component properties href: ./canvas-apps/component-properties.md - name: Performance and optimization items: @@ -1314,6 +1320,119 @@ href: ./canvas-apps/app-business-logic.md - name: Canvas apps coding standards and guidelines href: ../guidance/coding-guidelines/overview.md + - name: Teams integration + items: + - name: Overview + href: ../teams/overview.md + - name: Embed apps in Teams + items: + - name: Embed a canvas app as tab app + href: ../teams/embed-teams-tab.md + - name: Embed a canvas app as personal app + href: ../teams/embed-teams-app.md + - name: Create apps in Teams + items: + - name: Create apps in Teams + href: ../teams/create-apps-overview.md + - name: Get started + items: + - name: Install the Power Apps personal app + href: ../teams/install-personal-app.md + - name: Create your first app + href: ../teams/create-first-app.md + - name: Understand the Power Apps interface + items: + - name: Overview of the Power Apps app + href: ../teams/overview-of-the-power-apps-app.md + - name: Understand Power Apps Studio in a Teams environment + href: ../teams/understand-power-apps-studio.md + - name: Use the Fluent UI controls + href: ../teams/use-the-fluent-ui-controls.md + - name: Create additional apps + href: ../teams/create-additional-apps.md + - name: Create apps from lists in Teams + href: ../teams/create-apps-lists.md + - name: Work with Dataverse for Teams + items: + - name: Overview + href: ../teams/overview-data-platform.md + displayName: Overview of Dataverse for Teams + - name: Dataverse for Teams vs Dataverse + href: ../teams/data-platform-compare.md + - name: Compare Microsoft Lists, Dataverse for Teams, and Dataverse + href: ../teams/compare-data-sources.md + - name: Create a table + href: ../teams/create-table.md + displayName: Create a Dataverse for Teams table + - name: Edit or delete a table + href: ../teams/edit-delete-table.md + displayName: Edit or delete a Dataverse for Teams table + - name: Work with table relationships + href: ../teams/relationships-table.md + - name: Work with table columns + href: ../teams/table-columns.md + - name: Work with formula table columns (preview) + href: ../teams/formula-columns.md + - name: Edit table data in Excel + href: ../teams/edit-data-in-excel.md + - name: Move customizations between environments + href: ../teams/import-solution-in-teams.md + - name: View table data in Power BI + href: ../teams/view-table-data-power-bi.md + displayName: View Dataverse for Teams table data in Power BI + - name: Environment language + href: ../teams/language-data-platform.md + displayName: Dataverse for Teams environment language + - name: FAQ about Dataverse for Teams + href: ../teams/data-platform-faqs.md + - name: Build collaborative apps + items: + - name: Use Teams integration object + href: ../teams/use-teams-integration-object.md + - name: How to build apps for Teams + href: ../teams/how-templates-built.md + - name: Add notifications to make your apps collaborative + href: ../teams/add-app-notifications.md + - name: Integrate with Planner + href: ../teams/integrate-planner.md + - name: Integrate with Microsoft Entra ID + href: ../teams/integrate-azure-ad.md + - name: Integrate with calls and meetings + href: ../teams/integrate-calls-and-meetings.md + - name: Enable consistent experience across sessions + href: ../teams/consistent-experience-across-sessions.md + - name: Have a conversation about your business data in a Teams app + href: ../teams/business-data.md + - name: Build an app to retrieve videos + href: ../teams/tutorial-buildapp-retrieve-videos.md + - name: Manage your apps + href: ../teams/manage-your-apps.md + - name: Set permission and share your app + href: ../teams/set-perms-and-share.md + - name: Publish your app + href: ../teams/publish-and-share-apps.md + - name: Remove your apps + href: ../teams/remove-your-apps.md + - name: Uninstall Power Apps personal app + href: ../teams/uninstall-personal-apps.md + - name: Sample app templates + items: + - name: Use sample app templates in Teams + href: ../teams/use-sample-apps.md + - name: Customize sample app templates + href: ../teams/customize-sample-apps.md + - name: Localize sample app templates + href: ../teams/localizing-sample-apps.md + - name: Theming in sample app templates + href: ../teams/sample-app-theming.md + - name: Working with table permission in sample app templates + href: ../teams/dataverse-for-teams-table-permissions.md + - name: FAQ about sample app templates + href: ../teams/sample-apps-faqs.md + - name: Known issues and limitations + href: ../teams/known-issues-limitations.md + - name: Migrate Access data to Dataverse for Teams + href: ../teams/migrate-access-to-dvft.md - name: Important changes and deprecations href: ./canvas-apps/important-changes-deprecations.md - name: Model-driven apps @@ -1326,8 +1445,6 @@ href: ./model-driven-apps/model-driven-app-overview.md - name: The benefits of the model-driven approach href: ./model-driven-apps/app-value-proposition.md - - name: Build an app in three steps (preview) - href: ./model-driven-apps/build-app-three-steps.md - name: Release channels for model-driven apps items: - name: Release channel overview @@ -1396,8 +1513,10 @@ href: ./model-driven-apps/custom-page-localize.md - name: Known issues with custom pages href: ./model-driven-apps/model-app-page-issues.md - - name: Use monitor to troubleshoot custom pages + - name: Use live monitor to troubleshoot custom pages href: ./model-driven-apps/monitor-page-checker.md + - name: Create a generative page + href: ./model-driven-apps/generative-pages.md - name: Create, add, or remove forms and views href: ./model-driven-apps/create-add-remove-forms-views-dashboards.md - name: Work with views @@ -1484,6 +1603,8 @@ href: ./model-driven-apps/form-designer-add-configure-quickview.md - name: Configure lookup component href: ./model-driven-apps/form-designer-add-configure-lookup.md + - name: Add the agent response component + href: ./model-driven-apps/form-designer-add-configure-agent-response.md - name: Add a chart to a form href: ./model-driven-apps/add-chart-to-form.md - name: Add a map on a form @@ -1544,7 +1665,7 @@ href: ./model-driven-apps/quick-view-control-properties-legacy.md - name: Timer control overview href: ./model-driven-apps/timer-control-legacy.md - - name: Add the calendar control to entities + - name: Add the calendar control to a table view href: ./model-driven-apps/add-calendar-control.md - name: Add the rich text editor control href: ./model-driven-apps/rich-text-editor-control.md @@ -1558,7 +1679,7 @@ href: ./model-driven-apps/form-component-control.md - name: Troubleshoot forms items: - - name: Use Monitor to troubleshoot forms + - name: Use live monitor to troubleshoot forms href: ./model-driven-apps/monitor-form-checker.md#filter-live-monitor-for-form-related-issues - name: Use custom pages within model-driven apps items: @@ -1578,7 +1699,7 @@ href: ./model-driven-apps/page-code-components.md - name: Known issues with custom pages href: ./model-driven-apps/model-app-page-issues.md - - name: Use monitor to troubleshoot custom pages + - name: Use live monitor to troubleshoot custom pages href: ./model-driven-apps/monitor-page-checker.md - name: Customize app commands href: ./model-driven-apps/command-designer-overview.md @@ -1677,6 +1798,8 @@ href: ./model-driven-apps/use-power-bi.md - name: Create a Power BI embedded dashboard href: ./model-driven-apps/create-edit-powerbi-embedded-page.md + - name: Add agents to your app (preview) + href: ./model-driven-apps/add-agents-to-app.md - name: Copilot chat for apps href: items: @@ -1723,6 +1846,14 @@ href: ./model-driven-apps/delete-model-driven-app.md - name: Run an app href: ./model-driven-apps/run-model-driven-app.md + - name: Test an app using Test Engine + href: /power-platform/test-engine/model-driven-application + - name: Teams integration + items: + - name: Embed a model-driven app as tab app + href: ../teams/embed-model-driven-teams-tab.md + - name: Embed a model-driven app as personal app + href: ../teams/embed-model-driven-teams-personal.md - name: Advanced app making and customization href: items: @@ -1738,8 +1869,6 @@ href: ./model-driven-apps/distribute-model-driven-app.md - name: Enable customizable help href: ./model-driven-apps/use-customizable-help.md - - name: Configure the enhanced email template editor page - href: ../user/cs-email-template-builder.md - name: App performance insights items: - name: Performance insights overview @@ -1891,8 +2020,10 @@ items: - name: Virtual table OData v4 data provider href: ./data-platform/virtual-entity-odata-provider-requirements.md - - name: Create a virtual table using a virtual connector provider + - name: Create a virtual table using a common data source href: ./data-platform/create-virtual-tables-using-connectors.md + - name: Create a virtual table using Excel + href: ./data-platform/create-virtual-tables-using-excel.md - name: Set up virtual table relationships href: ./data-platform/setup-virtual-table-relationships.md - name: Virtual tables known issues and troubleshooting @@ -1981,6 +2112,8 @@ href: ./data-platform/create-edit-global-option-sets.md - name: Autonumber columns href: ./data-platform/autonumber-fields.md + - name: Prompt columns (preview) + href: ./data-platform/prompt-column.md - name: Work with Power Fx formula columns items: - name: Power Fx formula columns @@ -2062,6 +2195,8 @@ href: ./data-platform/configure-actions.md - name: Invoke custom process actions from a real-time workflow href: ./data-platform/invoke-custom-actions-workflow-dialog.md + - name: Test extensions with Test Engine + href: /power-platform/test-engine/dataverse - name: Work with solutions items: - name: Solutions overview @@ -2076,7 +2211,7 @@ href: ./data-platform/import-update-export-solutions.md - name: Set the preferred solution href: ./data-platform/preferred-solution.md - - name: View solution deployments (preview) + - name: View solution deployments href: ./data-platform/maker-deployment-area.md - name: Use pipelines to simplify solution deployment href: ./data-platform/use-pipelines.md @@ -2197,47 +2332,29 @@ href: ./data-platform/data-get-insights-overview.md - name: Power BI with Dataverse href: ./data-platform/use-powerbi-dataverse.md - - name: Create a Power BI report - href: ./data-platform/data-platform-powerbi-connector.md - - name: View table data in Power BI Desktop - href: ./data-platform/view-entity-data-power-bi.md - - name: License requirements for tables - href: ./data-platform/data-platform-entity-licenses.md - items: - - name: Complex tables and licensing - href: ./data-platform/data-platform-complex-entities.md - - name: Restricted tables requiring Dynamics 365 licenses - href: ./data-platform/data-platform-restricted-entities.md - - name: SharePoint, OneNote, and OneDrive integration - href: ./data-platform/sharepoint-onedrive-onenote-intro.md - - name: Translate customized table and column text - href: ./data-platform/export-customized-entity-field-text-translation.md - - name: Import translated table and column text - href: ./data-platform/import-translated-entity-field-text.md - - name: Privileges for customization - href: ./model-driven-apps/privileges-required-customization.md - - name: API limits overview - href: ./data-platform/api-limits-overview.md - - name: Get preview features early (preview) - items: - - name: Use the Dataverse accelerator - href: ./data-platform/dataverse-accelerator/dataverse-accelerator.md - - name: Monitor plug-ins - href: ./data-platform/dataverse-accelerator/plugin-monitoring.md - - name: Explore the Dataverse Web API - href: ./data-platform/dataverse-accelerator/api-playground.md - - name: For admins - items: - - name: Security in Dataverse - href: /power-platform/admin/wp-security-cds?context=/power-apps/maker/context - - name: Manage access to views (preview) - href: ./model-driven-apps/manage-view-access.md + items: + - name: Create a Power BI report + href: ./data-platform/data-platform-powerbi-connector.md + - name: View table data in Power BI Desktop + href: ./data-platform/view-entity-data-power-bi.md + - name: Transition from legacy data integration services + items: + - name: Transition from legacy data integration services overview + href: ./data-platform/azure-synapse-link-transition-from-FnO.md + - name: Transition from legacy data integration services FAQ + href: ./data-platform/azure-synapse-link-transition-faq.md - name: Link to Microsoft Fabric - items: - - name: View Dataverse data in Microsoft Fabric + items: + - name: Link Dataverse to Microsoft Fabric overview href: ./data-platform/azure-synapse-link-view-in-fabric.md + - name: Create a link to Fabric + href: ./data-platform/fabric-link-to-data-platform.md + - name: Work with Fabric data and Power BI + href: ./data-platform/fabric-work-data-and-power-bi.md - name: Build apps using Fabric data href: ./data-platform/azure-synapse-link-build-apps-with-fabric.md + - name: Troubleshoot link to Fabric + href: ./data-platform/fabric-troubleshoot.md - name: Azure Synapse Link items: - name: Azure Synapse Link Overview @@ -2256,8 +2373,6 @@ href: ./data-platform/azure-synapse-link-troubleshooting-guide.md - name: Receive Azure Synapse Link for Dataverse notifications href: ./data-platform/azure-synapse-link-notifications.md - - name: Transtion from legacy data integration services - href: ./data-platform/azure-synapse-link-transition-from-FnO.md - name: FAQ about Azure Synapse Link href: ./data-platform/export-data-lake-faq.yml - name: Application Lifecycle Management @@ -2303,135 +2418,57 @@ - name: Access choice labels from Azure Synapse Link for Dataverse href: ./data-platform/azure-synapse-link-choice-labels.md - name: Access Dataverse choices with Power BI - href: ./data-platform/azure-synapse-link-choices-powerbi.md + href: ./data-platform/azure-synapse-link-choices-powerbi.md + - name: Connect to Dataverse with MCP (preview) + items: + - name: Connect to Dataverse with MCP overview + href: ./data-platform/data-platform-mcp.md + - name: Connect to Dataverse with MCP FAQ + href: ./data-platform/data-platform-mcp-faq.md + - name: Disable the Dataverse MCP server + href: ./data-platform/data-platform-mcp-disable.md + - name: License requirements for tables + href: ./data-platform/data-platform-entity-licenses.md + items: + - name: Complex tables and licensing + href: ./data-platform/data-platform-complex-entities.md + - name: Restricted tables requiring Dynamics 365 licenses + href: ./data-platform/data-platform-restricted-entities.md + - name: SharePoint, OneNote, and OneDrive integration + href: ./data-platform/sharepoint-onedrive-onenote-intro.md + - name: Translate customized table and column text + href: ./data-platform/export-customized-entity-field-text-translation.md + - name: Import translated table and column text + href: ./data-platform/import-translated-entity-field-text.md + - name: Privileges for customization + href: ./model-driven-apps/privileges-required-customization.md + - name: API limits overview + href: ./data-platform/api-limits-overview.md + - name: Access migration + href: ./data-platform/migrate-access-to-dataverse.md + items: + - name: Data types and sizes for Access migration + href: ./data-platform/migrate-access-datatypes.md + - name: System columns and tables in Dataverse + href: ./data-platform/access-migrate-linked-tables.md + - name: Get preview features early (preview) + items: + - name: Use the Dataverse accelerator + href: ./data-platform/dataverse-accelerator/dataverse-accelerator.md + - name: Monitor plug-ins + href: ./data-platform/dataverse-accelerator/plugin-monitoring.md + - name: Explore the Dataverse Web API + href: ./data-platform/dataverse-accelerator/api-playground.md + - name: For admins + items: + - name: Security in Dataverse + href: /power-platform/admin/wp-security-cds?context=/power-apps/maker/context + - name: Manage access to views (preview) + href: ./model-driven-apps/manage-view-access.md - name: For developers href: ../developer/data-platform/overview.md - name: Community tools for Dataverse href: ./model-driven-apps/model-driven-app-community.md -- name: Teams integration - items: - - name: Overview - href: ../teams/overview.md - - name: Embed apps in Teams - items: - - name: Embed a canvas app as tab app - href: ../teams/embed-teams-tab.md - - name: Embed a canvas app as personal app - href: ../teams/embed-teams-app.md - - name: Embed a model-driven app as tab app - href: ../teams/embed-model-driven-teams-tab.md - - name: Embed a model-driven app as personal app - href: ../teams/embed-model-driven-teams-personal.md - - name: Create apps in Teams - items: - - name: Create apps in Teams - href: ../teams/create-apps-overview.md - - name: Get started - items: - - name: Install the Power Apps personal app - href: ../teams/install-personal-app.md - - name: Create your first app - href: ../teams/create-first-app.md - - name: Understand the Power Apps interface - items: - - name: Overview of the Power Apps app - href: ../teams/overview-of-the-power-apps-app.md - - name: Understand Power Apps Studio in a Teams environment - href: ../teams/understand-power-apps-studio.md - - name: Use the Fluent UI controls - href: ../teams/use-the-fluent-ui-controls.md - - name: Create additional apps - href: ../teams/create-additional-apps.md - - name: Create apps from lists in Teams - href: ../teams/create-apps-lists.md - - name: Work with Dataverse for Teams - items: - - name: Overview - href: ../teams/overview-data-platform.md - displayName: Overview of Dataverse for Teams - - name: Dataverse for Teams vs Dataverse - href: ../teams/data-platform-compare.md - - name: Compare Microsoft Lists, Dataverse for Teams, and Dataverse - href: ../teams/compare-data-sources.md - - name: Create a table - href: ../teams/create-table.md - displayName: Create a Dataverse for Teams table - - name: Edit or delete a table - href: ../teams/edit-delete-table.md - displayName: Edit or delete a Dataverse for Teams table - - name: Work with table relationships - href: ../teams/relationships-table.md - - name: Work with table columns - href: ../teams/table-columns.md - - name: Work with formula table columns (preview) - href: ../teams/formula-columns.md - - name: Edit table data in Excel - href: ../teams/edit-data-in-excel.md - - name: Move customizations between environments - href: ../teams/import-solution-in-teams.md - - name: View table data in Power BI - href: ../teams/view-table-data-power-bi.md - displayName: View Dataverse for Teams table data in Power BI - - name: Environment language - href: ../teams/language-data-platform.md - displayName: Dataverse for Teams environment language - - name: FAQ about Dataverse for Teams - href: ../teams/data-platform-faqs.md - - name: Build collaborative apps - items: - - name: Use Teams integration object - href: ../teams/use-teams-integration-object.md - - name: How to build apps for Teams - href: ../teams/how-templates-built.md - - name: Add notifications to make your apps collaborative - href: ../teams/add-app-notifications.md - - name: Integrate with Planner - href: ../teams/integrate-planner.md - - name: Integrate with Microsoft Entra ID - href: ../teams/integrate-azure-ad.md - - name: Integrate with calls and meetings - href: ../teams/integrate-calls-and-meetings.md - - name: Enable consistent experience across sessions - href: ../teams/consistent-experience-across-sessions.md - - name: Have a conversation about your business data in a Teams app - href: ../teams/business-data.md - - name: Build an app to retrieve videos - href: ../teams/tutorial-buildapp-retrieve-videos.md - - name: Manage your apps - href: ../teams/manage-your-apps.md - - name: Set permission and share your app - href: ../teams/set-perms-and-share.md - - name: Publish your app - href: ../teams/publish-and-share-apps.md - - name: Remove your apps - href: ../teams/remove-your-apps.md - - name: Uninstall Power Apps personal app - href: ../teams/uninstall-personal-apps.md - - name: Sample app templates - items: - - name: Use sample app templates in Teams - href: ../teams/use-sample-apps.md - - name: Customize sample app templates - href: ../teams/customize-sample-apps.md - - name: Localize sample app templates - href: ../teams/localizing-sample-apps.md - - name: Theming in sample app templates - href: ../teams/sample-app-theming.md - - name: Working with table permission in sample app templates - href: ../teams/dataverse-for-teams-table-permissions.md - - name: FAQ about sample app templates - href: ../teams/sample-apps-faqs.md - - name: Known issues and limitations - href: ../teams/known-issues-limitations.md - - name: Migrate Access data to Dataverse for Teams - href: ../teams/migrate-access-to-dvft.md -- name: Access migration - href: ./data-platform/migrate-access-to-dataverse.md - items: - - name: Data types and sizes for Access migration - href: ./data-platform/migrate-access-datatypes.md - - name: System columns and tables in Dataverse - href: ./data-platform/access-migrate-linked-tables.md - name: Cards items: - name: What are cards? @@ -2522,54 +2559,6 @@ href: ../cards/tutorials/simple-shopping-list.md - name: Create a card with data from Dataverse href: ../cards/tutorials/dataverse-card.md -- name: AI plugins (preview) - items: - - name: AI plugins in Power Platform - href: common/ai-plugin.md - - name: Building AI plugins for discovery by Copilot - href: common/build-ai-plugin-for-copilot.md -- name: AI Builder - href: ../use-ai-builder.md -- name: Responsible AI - items: - - name: Overview - href: ./common/responsible-ai-overview.md - - name: FAQ about building apps through conversation - href: ./common/faqs-build-apps-conversation.md - - name: FAQ about generating app descriptions with Copilot - href: ./common/ai-app-descriptions-faq.md - - name: FAQ about editing your app with Copilot - href: ./common/faqs-copilot-panel.md - - name: FAQ about using Copilot in model-driven apps - href: ./common/faqs-copilot-model-driven-app.md - - name: FAQ about using the Copilot control in canvas apps - href: ./common/faq-copilot-control.md - - name: FAQ about using Copilot in the rich text editor - href: ./common/faqs-email-assist-rte.md - - name: FAQ for Excel to table and app - href: ./common/faqs-excel-to-table-app.md - - name: FAQ for SharePoint list to table and app - href: ./common/faqs-sharepoint-list-to-table-app.md - - name: FAQ for drafting well-written, input text with Copilot - href: ./common/faq-draft-with-copilot.md - - name: FAQ about form fill assistance - href: ./common/faq-from-filling-assistance.md - - name: FAQ about using Copilot in timeline highlights - href: ./common/faq-timeline-highlights-with-copilot.md - - name: FAQ about using Copilot with Power Fx - href: ./common/faqs-copilot-powerfx.md - - name: FAQ about field suggestions by Copilot - href: ./common/faq-field-suggestions.md - - name: FAQ about filtering, sorting, and searching canvas galleries with Copilot - href: ./common/faq-filter-with-copilot.md - - name: FAQ about agent builder in canvas apps - href: ./common/faq-agent-builder.md - - name: FAQ about the Plan designer - href: ./common/faq-plan-designer.md - - name: FAQ about renaming controls with Copilot - href: ./common/faq-rename-control.md - - name: FAQ about Copilot visualizations on a view - href: ./common/faq-visualize-view.md - name: Resources items: - name: Microsoft Credentials for Power Platform @@ -2614,3 +2603,45 @@ href: /troubleshoot/power-platform/power-apps/troubleshoot-power-query-issues - name: Support href: https://powerapps.microsoft.com/support/ +- name: Responsible AI + items: + - name: Overview + href: ./common/responsible-ai-overview.md + - name: FAQ about building apps through conversation + href: ./common/faqs-build-apps-conversation.md + - name: FAQ about generating app descriptions with Copilot + href: ./common/ai-app-descriptions-faq.md + - name: FAQ about editing your app with Copilot + href: ./common/faqs-copilot-panel.md + - name: FAQ about using Copilot in model-driven apps + href: ./common/faqs-copilot-model-driven-app.md + - name: FAQ about using the Copilot control in canvas apps + href: ./common/faq-copilot-control.md + - name: FAQ about using Copilot in the rich text editor + href: ./common/faqs-email-assist-rte.md + - name: FAQ for Excel to table and app + href: ./common/faqs-excel-to-table-app.md + - name: FAQ for SharePoint list to table and app + href: ./common/faqs-sharepoint-list-to-table-app.md + - name: FAQ about form fill assistance + href: ./common/faq-from-filling-assistance.md + - name: FAQ about using Copilot in timeline highlights + href: ./common/faq-timeline-highlights-with-copilot.md + - name: FAQ about using Copilot with Power Fx + href: ./common/faqs-copilot-powerfx.md + - name: FAQ about field suggestions by Copilot + href: ./common/faq-field-suggestions.md + - name: FAQ about filtering, sorting, and searching canvas galleries with Copilot + href: ./common/faq-filter-with-copilot.md + - name: FAQ about agent builder in canvas apps + href: ./common/faq-agent-builder.md + - name: FAQ about the Plan designer + href: ./common/faq-plan-designer.md + - name: FAQ about renaming controls with Copilot + href: ./common/faq-rename-control.md + - name: FAQ about Copilot visualizations on a view + href: ./common/faq-visualize-view.md + - name: FAQ for Agent APIs in model-driven apps + href: ./common/faq-agent-api-component.md + - name: FAQ about generative pages in model-driven apps + href: ./common/faq-generative-pages-model-driven.md diff --git a/powerapps-docs/maker/canvas-apps/accessibility-checker.md b/powerapps-docs/maker/canvas-apps/accessibility-checker.md index 8e08ab1b40..0acbbcd926 100644 --- a/powerapps-docs/maker/canvas-apps/accessibility-checker.md +++ b/powerapps-docs/maker/canvas-apps/accessibility-checker.md @@ -3,7 +3,7 @@ title: Review a canvas app for accessibility in Power Apps description: Identify ways to make a canvas app more accessible to users who have vision, hearing, and other impairments author: emcoope-msft -ms.topic: article +ms.topic: how-to ms.date: 02/18/2021 ms.subservice: canvas-maker ms.author: emcoope diff --git a/powerapps-docs/maker/canvas-apps/accessible-apps-structure.md b/powerapps-docs/maker/canvas-apps/accessible-apps-structure.md index 12f2d76875..a3ac860a87 100644 --- a/powerapps-docs/maker/canvas-apps/accessible-apps-structure.md +++ b/powerapps-docs/maker/canvas-apps/accessible-apps-structure.md @@ -3,7 +3,7 @@ title: Organize controls in accessible canvas apps description: Learn about organizing controls for accessibility in canvas apps. author: tahoon-ms -ms.topic: article +ms.topic: how-to ms.custom: canvas ms.date: 07/12/2024 ms.subservice: canvas-maker diff --git a/powerapps-docs/maker/canvas-apps/accessible-apps.md b/powerapps-docs/maker/canvas-apps/accessible-apps.md index a84313415e..f2ff04cafc 100644 --- a/powerapps-docs/maker/canvas-apps/accessible-apps.md +++ b/powerapps-docs/maker/canvas-apps/accessible-apps.md @@ -2,7 +2,7 @@ title: Create accessible canvas apps description: How to make canvas apps accessible for people with disabilities author: chmoncay -ms.topic: conceptual +ms.topic: article ms.reviewer: mkaur ms.date: 09/06/2022 ms.subservice: canvas-maker diff --git a/powerapps-docs/maker/canvas-apps/add-ai-copilot.md b/powerapps-docs/maker/canvas-apps/add-ai-copilot.md index 6dc5fc73d5..3b3cba2448 100644 --- a/powerapps-docs/maker/canvas-apps/add-ai-copilot.md +++ b/powerapps-docs/maker/canvas-apps/add-ai-copilot.md @@ -2,7 +2,7 @@ title: Add a Copilot control to a canvas app (preview) description: Learn how to add a Copilot control, an AI assistant, to your canvas apps in Microsoft Power Apps. author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.custom: - canvas - ai-gen-diyeditor @@ -10,7 +10,8 @@ ms.collection: - bap-ai-copilot - get started ms.reviewer: -ms.date: 11/13/2024 +ms.date: 5/25/2025 +ms.update-cycle: 180-days ms.subservice: canvas-maker ms.author: tapanm search.audienceType: @@ -39,78 +40,80 @@ The Copilot control is an AI assistant that you can add to your canvas apps. Cop Ensure you meet the prerequisites and region availability in [Copilot in Power Apps overview (preview)](ai-overview.md). -Copilot doesn't work in environments that have a customer-managed key or [Customer Lockbox](/azure/security/fundamentals/customer-lockbox-overview). +Copilot doesn't work in environments that use a customer-managed key or [Customer Lockbox](/azure/security/fundamentals/customer-lockbox-overview). ### Set up Copilot for your environment -Before app users can use the Copilot chat experience in a canvas app, a Power Platform administrator must enable **Allow users to analyze data using an AI-powered chat experience in canvas and model-driven apps** in the [Power Platform admin center](https://admin.powerplatform.microsoft.com/home). Learn more in [Manage feature settings](/power-platform/admin/settings-features#copilot-preview). +To let app users, use the Copilot chat experience in a canvas app, a Power Platform admin enables **Allow users to analyze data using an AI-powered chat experience in canvas and model-driven apps** in the [Power Platform admin center](https://admin.powerplatform.microsoft.com/home). Learn more in [Manage feature settings](/power-platform/admin/settings-features#copilot-preview). :::image type="content" source="media/copilot/copilot-for-app-users-on.png" alt-text="Screenshot of the Power Platform admin center environment settings, showing Copilot features."::: ### Set up Copilot for your canvas app -Before you can add a Copilot control to your canvas app, you need to turn on **Copilot component** and **Edit in Copilot Studio** in the app settings in [Power Apps](https://make.powerapps.com/). +To add a Copilot control to your canvas app, turn on **Copilot component** and **Edit in Copilot Studio** in the app settings in [Power Apps](https://make.powerapps.com/). -**Copilot component**: Turns on the Copilot feature in your canvas app so that you can add the Copilot control to your app and connect it to a copilot. +**Copilot component**: Turns on the Copilot feature in your canvas app so you can add the Copilot control and connect it to a copilot. -**Edit in Copilot Studio**: Lets you customize the copilot using Copilot Studio. If you leave this option off, only the default copilot is available in your app. +**Edit in Copilot Studio**: Lets you customize the copilot using Copilot Studio. If you leave this option off, only the default copilot is available. 1. Open your [canvas app for editing](edit-app.md) in Power Apps Studio. On the command bar, select **Settings** > **Updates**. -1. On the **Preview** tab, find and turn on the **Copilot component** and **Edit in Copilot Studio** settings. +1. On the **Preview** tab, turn on the **Copilot component** and **Edit in Copilot Studio** settings. :::image type="content" source="media/copilot/copilot-component-edit-in-copilot-studio.png" alt-text="Screenshot of app settings in Power Apps Studio, with the Copilot component and Edit in Copilot Studio options highlighted."::: ## Add the Copilot control to your canvas app -Now that all settings are configured, with your [canvas app open for editing](edit-app.md): +With your [canvas app open for editing](edit-app.md), and all settings configured: -1. In the app [authoring menu](power-apps-studio.md#5--app-authoring-menu), select **Insert**, and then select **Copilot (preview)**. +1. In the app [authoring menu](power-apps-studio.md#5--app-authoring-menu), select **Insert**, then select **Copilot (preview)**. -1. You're prompted to add a data source to Copilot. Select a Dataverse table as the data source. +1. When prompted to add a data source to Copilot, select a Dataverse table as the data source. -:::image type="content" source="media/copilot/add-data-to-copilot.png" alt-text="Screenshot of the Copilot control properties pane, with the Create new copilot button highlighted."::: +:::image type="content" source="media/copilot/add-data-to-copilot.png" alt-text="Screenshot of the Copilot control properties pane. The Create new copilot button is highlighted."::: > [!NOTE] > The Copilot control only supports Dataverse tables for the data source. ## Customize the copilot using Copilot Studio -Copilot Studio is an app that lets you create and edit copilots for your apps. You can define your copilot's topics, actions, and other features. For example, you can make your copilot respond to specific questions about your app's data or perform actions like opening a screen or sending an email. +Copilot Studio is an app that lets you create and edit copilots for your apps. Define your copilot's articles, actions, and other features. For example, make your copilot respond to specific questions about your app's data or perform actions like opening a screen or sending an email. -You can customize your newly connected copilot in Power Apps through the properties menu in Power Apps. +Customize your newly connected copilot in Power Apps through the properties menu. -1. With the Copilot control on your canvas selected, choose **Edit** next to the **Customize copilot** field in **Properties**. +1. With the Copilot control on your canvas selected, select **Edit** next to the **Customize copilot** field in **Properties**. -1. If you don't have a copilot created already, select **Create new copilot** in the **Customize Copilot** pane. A Copilot control in Power Apps Studio does not support enabling an existing Copilot from Copilot Studio. +1. If you don't have a copilot created already, select **Create new copilot** in the **Customize Copilot** pane. The Copilot control in Power Apps Studio doesn't support enabling an existing Copilot from Copilot Studio. - :::image type="content" source="media/copilot/edit-in-copilot-studio.png" alt-text="Screenshot of the Copilot control properties pane, with the Edit and Edit in Copilot Studio buttons highlighted." lightbox="media/copilot/edit-in-copilot-studio.png"::: + :::image type="content" source="media/copilot/edit-in-copilot-studio.png" alt-text="Screenshot of the Copilot control properties pane. The Edit and Edit in Copilot Studio buttons are highlighted." lightbox="media/copilot/edit-in-copilot-studio.png"::: - [Copilot Studio](https://web.powerva.microsoft.com/) opens in a new tab. Any modifications made in Copilot Studio appear in your connected copilot in your canvas app. + [Copilot Studio](https://web.powerva.microsoft.com/) opens in a new tab. Any changes you make in Copilot Studio appear in your connected copilot in your canvas app. Learn more in [Quickstart: Create and deploy a copilot](/microsoft-copilot-studio/fundamentals-get-started). ## Collect feedback from app users -Makers and app users can provide feedback on how satisfied they are with the copilot's responses by selecting the **Like** (thumbs up) or **Dislike** (thumbs down) button for each response. They can enter detailed feedback in the text box and then select **Submit**. +Makers and app users provide feedback on copilot responses by selecting the **Like** (thumbs up) or **Dislike** (thumbs down) button for each response. Enter detailed feedback in the text box, and then select **Submit**. -Their feedback is sent to Microsoft to help us improve the Copilot control. +Feedback goes to Microsoft to help improve the Copilot control. ## Disallow feedback from app users If you don't want your app users to provide feedback to Microsoft, turn off the feedback option. -1. Sign in to [Power Apps](https://make.powerapps.com) and select **Tables** from the [left navigation pane](intro-maker-portal.md#1--left-navigation-pane). +1. Sign in to [Power Apps](https://make.powerapps.com), and select **Tables** from the [left navigation pane](intro-maker-portal.md#1--left-navigation-pane). + 1. Select the **Organization** table from the list. 1. In the **Organization columns and data** section, select the column headers list. The **Show existing column** popup appears. -1. Search for **Allow users to provide feedback for App Copilot** and make sure the check box in unchecked. +1. Search for **Allow users to provide feedback for App Copilot**, and make sure the check box is unchecked. + 1. Select **Save**. -:::image type="content" source="media/copilot/allow-users-feedback-setting.png" alt-text="Screenshot that shows how to get to the Show existing column popup." lightbox="media/copilot/allow-users-feedback-setting.png"::: +:::image type="content" source="media/copilot/allow-users-feedback-setting.png" alt-text="Screenshot of the Show existing column popup in Power Apps, highlighting the Allow users to provide feedback for App Copilot setting." lightbox="media/copilot/allow-users-feedback-setting.png"::: ## Related information diff --git a/powerapps-docs/maker/canvas-apps/add-app-solution-default.md b/powerapps-docs/maker/canvas-apps/add-app-solution-default.md index b7846438d9..d3abd96e11 100644 --- a/powerapps-docs/maker/canvas-apps/add-app-solution-default.md +++ b/powerapps-docs/maker/canvas-apps/add-app-solution-default.md @@ -7,9 +7,9 @@ contributors: - mduelae ms.author: cgarty ms.reviewer: angieandrews -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas, bap-template -ms.date: 11/18/2024 +ms.date: 7/28/2025 ms.subservice: canvas-maker search.audienceType: - maker @@ -90,6 +90,10 @@ To view canvas app and cloud flow objects in a solution, use the [solution view] Once the feature is enabled, use solutions [export](../data-platform/export-solutions.md) and [import](../data-platform/import-update-export-solutions.md) instead of [exporting and importing legacy packages of canvas apps and flows](export-import-app.md). Legacy packages can be imported in environments with the environment setting turned off. +## Move flows into a solution with PowerShell + +Use the [Add-AdminFlowsToSolution](/powershell/module/microsoft.powerapps.administration.powershell/add-adminflowstosolution) cmdlet to move non-solution Power Automate flows into a solution for better lifecycle management and deployment. This command lets you migrate multiple flows by specifying environment and solution IDs, and targeting flows by name or ID. For more information, see [Microsoft.PowerApps.Administration.PowerShell Module](/powershell/module/microsoft.powerapps.administration.powershell). + ## Considerations Take the following considerations into account before you decide to create canvas apps and cloud flows in a solution by default. diff --git a/powerapps-docs/maker/canvas-apps/add-app-solution.md b/powerapps-docs/maker/canvas-apps/add-app-solution.md index efc02f01c9..33cbe32baa 100644 --- a/powerapps-docs/maker/canvas-apps/add-app-solution.md +++ b/powerapps-docs/maker/canvas-apps/add-app-solution.md @@ -3,7 +3,7 @@ title: Create a canvas app from within a solution description: In Power Apps, create a canvas app in a solution so that you can deploy the app to another environment. author: caburk -ms.topic: article +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 10/21/2021 diff --git a/powerapps-docs/maker/canvas-apps/add-configure-controls.md b/powerapps-docs/maker/canvas-apps/add-configure-controls.md index 20c25495a4..f81c1e1418 100644 --- a/powerapps-docs/maker/canvas-apps/add-configure-controls.md +++ b/powerapps-docs/maker/canvas-apps/add-configure-controls.md @@ -3,7 +3,7 @@ title: Add and configure controls in canvas apps description: Step-by-step instructions for adding and configuring canvas-app controls directly, from the toolbar, in the Properties tab, or in the formula bar. author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.reviewer: ms.date: 10/29/2024 ms.subservice: canvas-maker diff --git a/powerapps-docs/maker/canvas-apps/add-custom-copilot.md b/powerapps-docs/maker/canvas-apps/add-custom-copilot.md index 918eda6df0..9712ff05cb 100644 --- a/powerapps-docs/maker/canvas-apps/add-custom-copilot.md +++ b/powerapps-docs/maker/canvas-apps/add-custom-copilot.md @@ -2,10 +2,10 @@ title: Enable a custom Copilot to a canvas app description: "Add a custom Copilot created in Microsoft Copilot Studio and enabled it for your canvas app." author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: -ms.date: 10/29/2024 +ms.date: 4/10/2025 ms.subservice: canvas-maker ms.author: mkaur search.audienceType: @@ -20,6 +20,7 @@ contributors: You can integrate a custom Copilot created in Microsoft Copilot Studio and enable it for your canvas app. This lets users interact with Copilot to ask questions about the data in your app. With just a few simple steps, you can embed a custom Copilot across all your canvas app screens without changing the app's design. > [!IMPORTANT] +> - This feature is available only on mobile devices. For web scenarios, this feature will be deprecated by September 2025. If you're running a canvas apps in a web browser, use the [Copilot control for canvas apps](../../maker/canvas-apps/add-ai-copilot.md) instead. > - This is a preview feature. > - Preview features aren't meant for production use and might have restricted functionality. These features are subject to [supplemental terms of use](https://go.microsoft.com/fwlink/?linkid=2189520), and are available before an official release so that customers can get early access and provide feedback. diff --git a/powerapps-docs/maker/canvas-apps/add-data-connection.md b/powerapps-docs/maker/canvas-apps/add-data-connection.md index 77782424b1..4d144a799a 100644 --- a/powerapps-docs/maker/canvas-apps/add-data-connection.md +++ b/powerapps-docs/maker/canvas-apps/add-data-connection.md @@ -3,7 +3,7 @@ title: Add data connections to canvas apps description: Learn about how to add a data connection in an existing canvas app. author: lancedMicrosoft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 01/27/2022 diff --git a/powerapps-docs/maker/canvas-apps/add-form.md b/powerapps-docs/maker/canvas-apps/add-form.md index c62e67dd7a..8711a47d67 100644 --- a/powerapps-docs/maker/canvas-apps/add-form.md +++ b/powerapps-docs/maker/canvas-apps/add-form.md @@ -3,7 +3,7 @@ title: Show, edit, or add a record in a canvas app description: Use a canvas-app form to show, edit, or add a record from a table in your data source. author: emcoope-msft -ms.topic: conceptual +ms.topic: article ms.custom: canvas ms.reviewer: mkaur ms.date: 04/22/2020 diff --git a/powerapps-docs/maker/canvas-apps/add-gallery.md b/powerapps-docs/maker/canvas-apps/add-gallery.md index 8ae20ac4b6..e27f5ba2d1 100644 --- a/powerapps-docs/maker/canvas-apps/add-gallery.md +++ b/powerapps-docs/maker/canvas-apps/add-gallery.md @@ -3,10 +3,10 @@ title: Show a list of items in canvas apps description: Use a gallery to show a list of items in your canvas app, and filter the list by specifying a criterion. author: emcoope-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur -ms.date: 01/27/2022 +ms.date: 05/30/2025 ms.subservice: canvas-maker ms.author: emcoope search.audienceType: @@ -87,15 +87,11 @@ The **[Items](controls/properties-core.md)** property of a **Gallery** control d 1. Set the **[Items](controls/properties-core.md)** property of the **Gallery** control to this formula: - ```power-fx - Sort - (If - (IsBlank(TextSearchBox1.Text), - FlooringEstimates, - Filter( - FlooringEstimates, - TextSearchBox1.Text in Text(Name) - ) + ```power-fx + Sort( + Filter( + FlooringEstimates, + IsBlank(TextSearchBox1.Text) or TextSearchBox1.Text in Text(Name) ), Name, If( @@ -124,11 +120,11 @@ Set the **Gallery** control's **TemplateFill** property to a formula that's simi ## Change the default selection Set the **Gallery** control's **Default** property to the record that you want to select by default. For example, you can specify the fifth item in the **FlooringEstimates** data source: -**Last(FirstN(FlooringEstimates, 5))** +**Index(FlooringEstimates, 5)** In this example, you specify the first item in the **Hardwood** category of the **FlooringEstimates** data source: -**First(Filter(FlooringEstimates, Category = "Hardwood"))** +**LookUp(FlooringEstimates, Category = "Hardwood")** ## Next steps Learn how to work with [forms](working-with-forms.md) and [formulas](working-with-formulas.md). diff --git a/powerapps-docs/maker/canvas-apps/add-images-pictures-audio-video.md b/powerapps-docs/maker/canvas-apps/add-images-pictures-audio-video.md index a45dd55683..a266d1e50e 100644 --- a/powerapps-docs/maker/canvas-apps/add-images-pictures-audio-video.md +++ b/powerapps-docs/maker/canvas-apps/add-images-pictures-audio-video.md @@ -3,7 +3,7 @@ title: Using multimedia files in canvas apps description: Show multimedia files in a canvas app, and upload them to a data source. author: emcoope-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 11/11/2021 diff --git a/powerapps-docs/maker/canvas-apps/add-list-box-drop-down-list-radio-button.md b/powerapps-docs/maker/canvas-apps/add-list-box-drop-down-list-radio-button.md index 9c576c9ded..ce4143ef89 100644 --- a/powerapps-docs/maker/canvas-apps/add-list-box-drop-down-list-radio-button.md +++ b/powerapps-docs/maker/canvas-apps/add-list-box-drop-down-list-radio-button.md @@ -3,7 +3,7 @@ title: Add a list box, a drop-down list, or radio buttons to a canvas app | Micr description: In Power Apps, create or configure multi-select options in a canvas app author: chmoncay ms.author: chmoncay -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 01/24/2022 diff --git a/powerapps-docs/maker/canvas-apps/add-manage-connections.md b/powerapps-docs/maker/canvas-apps/add-manage-connections.md index d469378ba0..beb132b86b 100644 --- a/powerapps-docs/maker/canvas-apps/add-manage-connections.md +++ b/powerapps-docs/maker/canvas-apps/add-manage-connections.md @@ -3,10 +3,10 @@ title: Manage connections in canvas apps description: Add, delete, and update connections from canvas apps to data sources such as SharePoint, SQL Server, and OneDrive for Business. author: lancedMicrosoft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur -ms.date: 07/15/2021 +ms.date: 04/2/2025 ms.subservice: canvas-maker ms.author: lanced search.audienceType: @@ -89,7 +89,7 @@ In the list of connections, find the connection that you want to update or delet * To delete the connection, select delete. * Select the information icon to see the connection details. -## Consent dialog fine-grained permssions +## Consent dialog fine-grained permissions The consent dialog presents **fine-grained** permissions to end users. Instead of asking the user to give permissions to all actions a connector can perform, the consent dialog lists the specific permissions that the app uses. The operations that an app uses are captured and stored in the app metadata when app is saved. For example, if an app is published with the specific Read action, then it will initially just request permission for the Read action. If then the author subsequently adds **Create**, **Update**, and **Delete** record actions then the consent dialog will be presented to the user again for the aggregated permissions of **Read**, **Create**, **Update**, and **Delete**. If the author subsequently removes the **Delete** records action, then the consent dialog isn't presented again. The permissions continue with the maximum set of actions that have ever been used in the app at any point. If you wish to publish an app that only shows reduced permissions, the app must be republished under a different name. @@ -97,11 +97,13 @@ The exception to this rule is for actions used in a Power Automate Flow that is ## Manage the consent dialog appearance for custom connectors using Microsoft Entra ID OAuth -By default, when end-users launch canvas apps they’re presented a connection consent dialog before they’re able to access the app experience for the first time. It’s possible for admins to suppress this consent dialog for select connectors: Microsoft First Party connectors (like SharePoint, Office 365 Users) and custom connectors using Microsoft Entra ID OAuth. +By default, when end-users launch canvas apps they’re presented a connection consent dialog before they’re able to access the app experience for the first time. It’s possible for admins to suppress this consent dialog for select connectors: +* Microsoft First Party connectors (like SharePoint, Office 365 Users) and +* Custom connectors using either Microsoft Entra ID OAuth or NoAuth (No Authentication) ### Suppress consent dialog for apps that use custom connectors using Microsoft Entra ID OAuth -To suppress consent dialog for apps created using Power Apps that connect through custom connectors using Microsoft Entra ID OAuth, follow the below steps. +To suppress consent dialog for apps created using Power Apps that connect through custom connectors using Microsoft Entra ID OAuth/NoAuth, follow the below steps. #### Step 1. Provision Microsoft’s Azure API connections service principal in your Microsoft Entra tenant @@ -132,14 +134,14 @@ To set the scope using Azure portal, go to [Azure portal](https://portal.azure.c #### Step 3. Grant admin consent the client third-party Microsoft Entra app -For each custom connector using OAuth where consent is expected to be suppressed, an admin must use [Microsoft Entra’s grant tenant-wide admin consent to an application](/azure/active-directory/manage-apps/grant-admin-consent). +For each custom connector using OAuth/NoAuth where consent is expected to be suppressed, an admin must use [Microsoft Entra’s grant tenant-wide admin consent to an application](/azure/active-directory/manage-apps/grant-admin-consent). > [!NOTE] > Admins have granular control on which custom applications, and the corresponding custom connector consent may be suppressed. #### Step 4. Update custom connector in Power Platform to attempt single-sign-on -For each custom connector using OAuth where consent is expected to be suppressed, a user with edit permissions on the custom connector must change the "Enable on-behalf-of login" value to "true". +For each custom connector using OAuth/NoAuth where consent is expected to be suppressed, a user with edit permissions on the custom connector must change the "Enable on-behalf-of login" value to "true". The owner of the custom connector must choose to edit the connector, go to the **Security** section, and change the value in **Enable on-behalf-of login** from "false" to "true". @@ -153,7 +155,7 @@ In addition to the admin consent granted on a custom application in Microsoft En Set-AdminPowerAppApisToBypassConsent -AppName ``` -### Remove consent suppression for apps that use custom connectors using Microsoft Entra ID OAuth +### Remove consent suppression for apps that use custom connectors using Microsoft Entra ID OAuth/NoAuth To remove consent suppression for a custom connector, an admin must perform at least one of the following actions: diff --git a/powerapps-docs/maker/canvas-apps/add-notifications.md b/powerapps-docs/maker/canvas-apps/add-notifications.md index e7fa58a614..c35d8aa752 100644 --- a/powerapps-docs/maker/canvas-apps/add-notifications.md +++ b/powerapps-docs/maker/canvas-apps/add-notifications.md @@ -3,7 +3,7 @@ title: Send notification from an app description: Learn how to send push notifications from a canvas app in Power Apps. author: kavishi -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 10/23/2020 diff --git a/powerapps-docs/maker/canvas-apps/add-screen-context-variables.md b/powerapps-docs/maker/canvas-apps/add-screen-context-variables.md index 4c9e58b20c..dd0734b15d 100644 --- a/powerapps-docs/maker/canvas-apps/add-screen-context-variables.md +++ b/powerapps-docs/maker/canvas-apps/add-screen-context-variables.md @@ -3,8 +3,8 @@ title: Add and navigate screens in canvas apps description: Learn how to add screens to your canvas app, use arrows to navigate between them, reorder the screens, and set the start screen in Microsoft Power Apps. author: emcoope-msft ms.author: emcoope -ms.date: 10/29/2024 -ms.topic: conceptual +ms.date: 5/29/2025 +ms.topic: how-to ms.subservice: canvas-maker search.audienceType: - maker diff --git a/powerapps-docs/maker/canvas-apps/agent-builder.md b/powerapps-docs/maker/canvas-apps/agent-builder.md index cf4f2be382..e343453ec6 100644 --- a/powerapps-docs/maker/canvas-apps/agent-builder.md +++ b/powerapps-docs/maker/canvas-apps/agent-builder.md @@ -2,8 +2,8 @@ title: Automate your business processes with agent builder in a canvas app description: How to create an agent to help automate business processes in a canvas app using agent builder. author: noazarur-microsoft -ms.topic: article -ms.date: 12/16/2024 +ms.topic: how-to +ms.date: 4/25/2025 ms.subservice: canvas-maker ms.author: noazarur ms.reviewer: mkaur @@ -13,49 +13,66 @@ contributors: - noazarur-microsoft --- -# Build an agent to automate your business process (preview) +# Build an AI agent to automate your business process (preview) [!INCLUDE [preview-banner](~/../shared-content/shared/preview-includes/preview-banner.md)] -Agent builder in Power Apps enables organizations to transition into the AI-first era by using the knowledge, logic, and actions of an app to create copilot agents. These agents handle daily tasks, streamline processes, enhance productivity, and optimize overall business efficiency. Watch this brief video to see how to build an agent: +Agent builder in Power Apps lets organizations transition into the AI-first era by using the knowledge, logic, and actions of an app to create copilot agents. These agents handle daily tasks, streamline processes, enhance productivity, and improve overall business efficiency. Watch this brief video to see how to build an agent: > [!VIDEO 284820d9-7fbc-4c8f-bf20-e8678614ed3d] - Makers can easily create agents that automate processes within their existing canvas apps. Agent builder uses the app's metadata and the desired agent goal to generate a comprehensive step-by-step process. This process is then combined with extracted skills from the app, resulting in a fully equipped copilot that offers detailed instructions and actions. + Makers can create agents that automate processes within their existing canvas apps. Agent builder uses the app's metadata and the desired agent goal to generate a comprehensive step-by-step process, extract knowledge, and identify triggers. This process, knowledge, and triggers are then combined with extracted skills from the app, resulting in a fully equipped copilot that offers detailed instructions, knowledge, triggers, and actions. -Once the agent is created, makers can add triggers, make edits, conduct testing, and publish the agent in Microsoft Copilot Studio. +After creating the agent, makers can edit, test, and publish it in Microsoft Copilot Studio. > [!IMPORTANT] > - This is a preview feature. > - Preview features aren't meant for production use and might have restricted functionality. These features are subject to [supplemental terms of use](https://go.microsoft.com/fwlink/?linkid=2189520), and are available before an official release so that customers can get early access and provide feedback. +## Prerequisites + +- Preview Copilot features are enabled by default, but your admin can turn them off for an environment or tenant. More information: [Copilot in Power Apps overview (preview)](ai-overview.md#disable-copilot-in-power-apps). +- Your tenant administrator must turn on the [Publish Copilots with AI features](/microsoft-copilot-studio/security-and-governance) setting in the Power Platform admin center. +- Include a Dataverse database in your environment. More information: [Add a Microsoft Dataverse database](/power-platform/admin/create-database). +- The environment must be in the United States region. Depending on where the environment is hosted, you might need to allow data movement across regions. More information: [Copilots and generative AI features that are available when you enable data movement across regions](/power-platform/admin/geographical-availability-copilot#copilots-and-generative-ai-features-that-are-available-when-you-enable-data-movement-across-regions). +- Ensure that block unmanaged customizations is disabled. Learn more in [Block unmanaged customizations in Dataverse environments](/power-platform/alm/block-unmanaged-customizations). +- Current environment has Power Virtual Agents solution version 2.0.0.649.1 or higher. + ## Create an agent To streamline your manual process, generate an agent that replicates the steps you typically follow to complete tasks. 1. Sign in to [Power Apps](https://make.powerapps.com). -1. Select **Apps** in the left navigation pane. -1. Select your app and then select **Create agent from app (Preview)** on the command bar. You can also select **Commands** (![Commands button.](media/power-apps-page-icons/apps-commands-menu-to-edit.png)) for the app and then select **Create agent from app (Preview)**. +1. Select **Agents** in the left navigation pane. If you don't see **Agents**, select **More**, and then find and select **Agents**. +1. Select **Create an agent from an app**. + :::image type="content" source="media/agent-builder/ab-create-agent-from-app-new-menu.png" alt-text="Screenshot of creating an agent from an app"::: + +1. Select your app and then select **Next** on the command bar. +:::image type="content" source="media/agent-builder/ab-select-app-then-next.png" alt-text="Select an app and then select next"::: + + Alternatively, you can select **Apps** in the left navigation pane. Select your app, and then select **Create agent from app (Preview)** on the command bar. You can also select **Commands** (![Commands button.](media/power-apps-page-icons/apps-commands-menu-to-edit.png)) for the app and then select **Create agent from app (Preview)**. :::image type="content" source="media/agent-builder/ab-create-agent-from-app.png" alt-text="Create agent from app"::: -1. Select a suggestion or in the text box describe the process you want to automate and then select **Next**. +1. Select a suggestion, or in the text box, describe the process you want to automate, and then select **Next**. - :::image type="content" source="media/agent-builder/ab-select-next-to-regenerate-instructions.png" alt-text="Select next to generate instructions"::: + :::image type="content" source="media/agent-builder/ab-suggestions.png" alt-text="Select a suggestion or describe the process you want to automate"::: - When you choose a suggestion, the text box is automatically filled in. You can edit and add more details about what you want the agent to do. To improve the agent's accuracy, use simple, everyday language and be specific, such as: - - Submit completed claim forms to the database for processing. - - Generate reports for claims filed within a specific date range. +1. When you select a suggestion, the text box is automatically filled. You can edit it and add more details about what you want the agent to do. To improve the agent's accuracy, use simple, everyday language, and be specific, like: -1. Based on the suggestion or the information that you provide for the agent's goal and the app's metadata, agent builder generates step-by-step instructions to replace your manual process. Review the instructions for accuracy and make any necessary edits. + - Submit completed claim forms to the database for processing. + - Generate reports for claims filed within a specific date range. - :::image type="content" source="media/agent-builder/ab-regenerate-instructions-1.png" alt-text="regen-agent"::: +1. Based on the suggestion or the information that you provide for the agent's goal and the app's metadata, agent builder generates step-by-step instructions to replace your manual process and extracts triggers and knowledge. Review the instructions for accuracy, and make any necessary edits. Then review the extracted knowledge and triggers for accuracy, and make any necessary edits. -### Regenerate instructions to improve response + :::image type="content" source="media/agent-builder/ab-process-summary.png" alt-text="Reivew the process summary"::: + + +### Regenerate instructions to improve the response You can also revise the description to better represent the process you want to automate. When you're done, select the **Regenerate instructions** to receive updated instructions that match the new goal of the agent. -:::image type="content" source="media/agent-builder/ab-regenerate-instructions.png" alt-text="regenerate instructions"::: +:::image type="content" source="media/agent-builder/ab-regenerate-instructions.png" alt-text="Regenerate instructions to improve response"::: ### Best practices @@ -69,7 +86,7 @@ When you edit the instructions, follow these suggestions: - Ensure the logical flow of the instructions is easy to follow. Avoid adding new instructions at the end of the instruction set. Instead, move instructions in line to maintain a logical sequence. - Here's example instructions: + Here are example instructions: 1. Read the data from the table. @@ -83,28 +100,26 @@ When you edit the instructions, follow these suggestions: 6. Additionally if the amount is more than $500 update the status to manual review. - To improve the logical flow in this example, move steps #5 and #6 after step #3. + To improve the logical flow in this example, move steps 5 and 6 after step 3. ## Limitations -- If a data source connection isn't found, it's not possible to extract actions for app. In such cases, agent builder still generates an agent, including the actions that can be converted, or none if no actions can be converted. +- If a data source connection isn't found, you can't extract actions for the app. In such cases, the agent builder generates an agent with the actions that can be converted, or none if no actions can be converted. -- Deprecated Excel connectors aren't supported, but the following Excel connectors are supported: +- Deprecated Excel connectors aren't supported. However, the following Excel connectors are supported: - [Excel Online (Business)](connections/connection-excel.md) - [Excel Online](connections/connection-excel.md) -- Agent builder is only available in regions where Microsoft Copilot Studio generative agents are available. - -- This feature is currently available only for canvas apps. - -- This feature is available only in English (en-US). +- Agent builder is available only in regions where Microsoft Copilot Studio generative agents are available. +- This feature is available only for canvas apps. +- This feature is available only in English (EN-US). ## Provide feedback -Unless feedback is disabled by your admin, each step in agent builder includes a **Like** (thumbs up) and **Dislike** button (thumbs down). +Unless feedback is disabled by your admin, each step in the agent builder includes a **Like** (thumbs up) and **Dislike** button (thumbs down). -After reviewing the agent's responses, you can also provide feedback in your own words. When you're done, select **Submit**. +After reviewing the agent's responses, you can provide feedback in your own words. When you're done, select **Submit**. ## Related information diff --git a/powerapps-docs/maker/canvas-apps/ai-conversations-create-app.md b/powerapps-docs/maker/canvas-apps/ai-conversations-create-app.md index 0995d6098b..1f91092045 100644 --- a/powerapps-docs/maker/canvas-apps/ai-conversations-create-app.md +++ b/powerapps-docs/maker/canvas-apps/ai-conversations-create-app.md @@ -2,12 +2,13 @@ title: Build apps through conversation with Copilot description: Build apps easily with AI in Microsoft Power Apps. Describe the information you want to collect, track, or show in your app, and Copilot creates Dataverse tables and guides you through the process. author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.collection: - bap-ai-copilot - get started ms.reviewer: -ms.date: 11/13/2024 +ms.date: 5/28/2025 +ms.update-cycle: 180-days ms.subservice: canvas-maker ms.author: tapanm search.audienceType: @@ -20,6 +21,7 @@ ms.custom: - ai-gen-title - ai-gen-desc - ai-seo-date:08/28/2024 + - copilot-scenario-highlight ai-usage: ai-assisted --- @@ -43,10 +45,15 @@ To show you how Copilot works, let's create an app to track housekeeping tasks f 1. Sign in to [Power Apps](https://make.powerapps.com). -1. In the text box, type *hotel housekeeping* and press Enter. +1. On the left navigation pane, select **Create** > **Start with Copilot**. - :::image type="content" source="media/artificial-intelligence/create-app-using-ai-1.png" alt-text="Screenshot of the Power Apps home page, with the Copilot input text box highlighted." lightbox="media/artificial-intelligence/create-app-using-ai-1.png"::: +1. Type your prompt in the text box such as the example prompt shown below. + ```copilot-prompt + Hotel housekeeping + ``` +1. Select table options, like multiple tables or one table, then select **Generate**. + Copilot creates one or more Dataverse tables with data that includes typical hotel housekeeping tasks. > [!IMPORTANT] @@ -64,7 +71,7 @@ Copilot shows you the tables and relationships that it generated based on your d Legend: -1. **Edit**: Edit or create more tables in your canvas. Learn more in [Create and edit tables](../data-platform/create-edit-entities-portal.md). +1. **Edit**: Edit or create more tables. Learn more in [Create and edit tables](../data-platform/create-edit-entities-portal.md). 1. **Copilot text box**: [Ask Copilot to modify the table](#use-copilot-to-make-changes) or create more tables for you. diff --git a/powerapps-docs/maker/canvas-apps/ai-edit-app.md b/powerapps-docs/maker/canvas-apps/ai-edit-app.md index e2e580e4b3..1a7075f08b 100644 --- a/powerapps-docs/maker/canvas-apps/ai-edit-app.md +++ b/powerapps-docs/maker/canvas-apps/ai-edit-app.md @@ -2,12 +2,13 @@ title: Edit your app with Copilot in Power Apps Studio (preview) description: Learn how to use natural language to edit your app with Copilot, an AI assistant that helps you make changes to your app in Power Apps Studio. author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.collection: - bap-ai-copilot - get started ms.reviewer: -ms.date: 11/13/2024 +ms.date: 5/27/2025 +ms.update-cycle: 180-days ms.subservice: canvas-maker ms.author: mkaur search.audienceType: diff --git a/powerapps-docs/maker/canvas-apps/ai-field-suggestions.md b/powerapps-docs/maker/canvas-apps/ai-field-suggestions.md index ae1291e46c..1c929281ed 100644 --- a/powerapps-docs/maker/canvas-apps/ai-field-suggestions.md +++ b/powerapps-docs/maker/canvas-apps/ai-field-suggestions.md @@ -3,8 +3,9 @@ title: Use field suggestions by Copilot description: Learn how to use field suggestions by Copilot, an AI feature in Microsoft Power Apps, to select the best fields to display when you link a data source to a control in a canvas app. author: norliu ms.author: norliu -ms.date: 10/10/2024 -ms.topic: conceptual +ms.date: 5/28/2025 +ms.update-cycle: 180-days +ms.topic: article ms.reviewer: mkaur ms.subservice: canvas-maker ms.collection: diff --git a/powerapps-docs/maker/canvas-apps/ai-formulas-formulabar.md b/powerapps-docs/maker/canvas-apps/ai-formulas-formulabar.md index 29dbb89847..103a86eaf0 100644 --- a/powerapps-docs/maker/canvas-apps/ai-formulas-formulabar.md +++ b/powerapps-docs/maker/canvas-apps/ai-formulas-formulabar.md @@ -3,8 +3,9 @@ title: Use Copilot to create and edit Power Fx formulas in Power Apps description: Learn how to use Copilot, an AI feature in Power Apps, to create and edit Power Fx formulas in the formula bar from natural language or code comments. author: warrenbryant-msft ms.author: warrenbryant -ms.date: 1/15/2024 -ms.topic: conceptual +ms.date: 5/27/2025 +ms.update-cycle: 180-days +ms.topic: how-to ms.reviewer: mkaur ms.subservice: canvas-maker ms.collection: diff --git a/powerapps-docs/maker/canvas-apps/ai-overview.md b/powerapps-docs/maker/canvas-apps/ai-overview.md index 9c202aaee8..53aff0f34e 100644 --- a/powerapps-docs/maker/canvas-apps/ai-overview.md +++ b/powerapps-docs/maker/canvas-apps/ai-overview.md @@ -3,16 +3,17 @@ title: Copilot in Power Apps overview (preview) description: Learn how Copilot in Microsoft Power Apps makes it easy to build apps by providing insights and actions in response to natural language requests. author: mduelae ms.author: tapanm -ms.topic: conceptual +ms.topic: article ms.custom: - canvas - ai-gen-docs-bap - ai-gen-title - ai-gen-desc - - ai-seo-date: 01/24/2025 + - ai-seo-date: 5/25/2025 ai-usage: ai-assisted ms.reviewer: -ms.date: 12/20/2024 +ms.date: 06/27/2025 +ms.update-cycle: 180-days ms.subservice: canvas-maker search.audienceType: - maker @@ -59,9 +60,9 @@ If you need to disable Copilot, see [Disable Copilot in Power Apps](#disable-cop The following articles can help you build various apps in different scenarios using Copilot. -- [Use the Plan designer (preview)](../plan-designer/plan-designer.md) +- [Create a plan using Plan designer](../plan-designer/create-plan.md) -### Copilot in canvas apps +## Copilot in canvas apps - [Build apps through conversation](ai-conversations-create-app.md) - [Edit your app with Copilot (preview)](ai-edit-app.md) @@ -72,22 +73,17 @@ The following articles can help you build various apps in different scenarios us - [Build an agent to automate your business process (preview)](agent-builder.md) - [Rename controls in canvas apps with Copilot (preview)](./controls/copilot-rename-controls.md) +## Copilot in model-driven apps -### Copilot in model-driven apps +Model-driven apps support [AI features](../../user/ai-in-apps.md) to improve the efficiency and productivity of business processes with intelligent automation and assistance. -- [Add the Copilot control to the rich text editor](../model-driven-apps/copilot-control.md) -- [Use Copilot in the email rich text editor](../model-driven-apps/use-copilot-email-assist.md) -- [Add Copilot for app users in model-driven apps](../model-driven-apps/add-ai-copilot.md) - -### Copilot feature use +## Copilot feature use - [Filter, sort, and search galleries with Copilot (preview)](../../user/smartgrid.md) - [Draft well-written input text with Copilot (preview)](../../user/well-written-input-text-copilot.md) - [Visualize data in a view with Copilot (preview)](../../user/visualize-data-in-copilot.md) -### Microsoft Dataverse - - +## Microsoft Dataverse - [Add knowledge to an existing copilot: Dataverse](../data-platform/data-platform-copilot.md) @@ -116,7 +112,7 @@ Preview Copilot features are enabled by default, but your admin can turn them of > [!NOTE] > Turning off Copilot for your tenant disables Copilot for makers only. It doesn't disable the [Copilot control for canvas apps](add-ai-copilot.md) or [Copilot for model-driven apps](../model-driven-apps/add-ai-copilot.md). -## Related information +### Related information - [FAQ about using AI responsibly in Power Apps](../common/transparency-note.md) - [Language availability for Power Platform](https://dynamics.microsoft.com/availability-reports/languagereport/) diff --git a/powerapps-docs/maker/canvas-apps/app-business-logic.md b/powerapps-docs/maker/canvas-apps/app-business-logic.md index f8bf6be345..a39e3e42da 100644 --- a/powerapps-docs/maker/canvas-apps/app-business-logic.md +++ b/powerapps-docs/maker/canvas-apps/app-business-logic.md @@ -2,7 +2,7 @@ title: Build business logic description: Build business logic in Power Apps. author: lancedMicrosoft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 10/22/2024 diff --git a/powerapps-docs/maker/canvas-apps/app-from-image.md b/powerapps-docs/maker/canvas-apps/app-from-image.md index e3df6bd0aa..8c441578f1 100644 --- a/powerapps-docs/maker/canvas-apps/app-from-image.md +++ b/powerapps-docs/maker/canvas-apps/app-from-image.md @@ -2,7 +2,7 @@ title: Create a canvas app from an image description: Learn about how to use your own designs saved in image formats and create canvas apps from them. author: norliu -ms.topic: article +ms.topic: how-to ms.custom: canvas ms.date: 03/13/2025 ms.subservice: canvas-maker diff --git a/powerapps-docs/maker/canvas-apps/app-from-sharepoint.md b/powerapps-docs/maker/canvas-apps/app-from-sharepoint.md index 960ff29087..ef3675ad96 100644 --- a/powerapps-docs/maker/canvas-apps/app-from-sharepoint.md +++ b/powerapps-docs/maker/canvas-apps/app-from-sharepoint.md @@ -3,11 +3,11 @@ title: Create a canvas app with data from a list description: Create a Power Apps canvas app to manage data in Microsoft Lists or SharePoint Online. author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.collection: get-started ms.reviewer: -ms.date: 3/1/2025 +ms.date: 6/17/2025 ms.subservice: canvas-maker ms.author: tapanm search.audienceType: @@ -21,64 +21,91 @@ contributors: # Create a canvas app with data from a list -In this article, you can create a canvas app in Power Apps from Lists or SharePoint. You can create the app from within Power Apps or SharePoint. Alternatively, you can create the app based on a list in an on-premises SharePoint site if you [connect to it](connections/connection-sharepoint-online.md#create-a-sharepoint-connection) through a data gateway. +This article explains how to create a canvas app using data from Microsoft Lists or SharePoint. By following this method, you can build an app from a list and customize it to efficiently manage your data. -The app you create contains three screens: +You can also [connect to on-premises SharePoint lists](connections/connection-sharepoint-online.md#create-a-sharepoint-connection) through a data gateway. -- **Browse screen**: scroll through all items in the list. -- **Details screen**: show all information about a single item in the list. -- **Edit screen**: create an item or update information about an existing item. +You can create an app by using a list in SharePoint or Lists in two ways: + +- Sign in to Power Apps and then [create an app by connecting to list in SharePoint from Power Apps.](app-from-sharepoint.md#use-a-list-in-sharepoint-or-lists-to-create-an-app) +- [Create an app directly from a list in SharePoint or Lists.](app-from-sharepoint.md#create-an-app-directly-from-a-list-in-sharepoint-or-lists) + +When the app is created, Power Apps Studio opens and shows an app with three screens: + +- **Browse screen**: Scroll through all items in the list. +- **Details screen**: Show all information about a single item in the list. +- **Edit screen**: Create an item or update information about an existing item. + +Watch this video to learn how to create a canvas app from a list. +> [!VIDEO https://learn-video.azurefd.net/vod/player?id=de3b0fbc-f5b6-4958-855e-109f9c3692ac] > [!NOTE] -> When you create or view a list in SharePoint, you're automatically redirected to Microsoft Lists. The list can always be found in both Lists and SharePoint. Learn more in [What is a list in Microsoft 365?](https://support.microsoft.com/en-us/office/what-is-a-list-in-microsoft-365-93262a88-20ad-4edc-8410-b6909b2f59a5) +> When you create or view a list in SharePoint, you're automatically redirected to Microsoft Lists. The list is always available in both Microsoft Lists and SharePoint. Learn more in [What is a list in Microsoft 365?](https://support.microsoft.com/en-us/office/what-is-a-list-in-microsoft-365-93262a88-20ad-4edc-8410-b6909b2f59a5) + ## Prerequisites -You need access to SharePoint and Power Apps through a [subscription](https://www.microsoft.com/licensing/terms/productoffering) to [Microsoft 365](https://www.microsoft.com/licensing/terms/productoffering/Microsoft365/all) and [Microsoft Power Platform](https://www.microsoft.com/licensing/terms/productoffering/MicrosoftPowerPlatform/all). +Use SharePoint and Power Apps with a [subscription](https://www.microsoft.com/licensing/terms/productoffering) to [Microsoft 365](https://www.microsoft.com/licensing/terms/productoffering/Microsoft365/all) and [Microsoft Power Platform](https://www.microsoft.com/licensing/terms/productoffering/MicrosoftPowerPlatform/all). ## Create a list -1. [Create a list](https://support.microsoft.com/office/create-a-list-0d397414-d95f-41eb-addd-5e6eff41b083) in Sharepoint or Lists named **SimpleList**. -1. In the list's **Title** column, add items for **Vanilla**, **Chocolate**, and **Strawberry**. +Before you create an app from a list, you need to [create a list](https://support.microsoft.com/office/create-a-list-0d397414-d95f-41eb-addd-5e6eff41b083). -Watch this video to learn how to create a canvas app from a list: -> [!VIDEO https://learn-video.azurefd.net/vod/player?id=de3b0fbc-f5b6-4958-855e-109f9c3692ac] +For this example, lets create a list to track device orders for your company and include the following columns with sample data: -## Create an app in Power Apps +1. Employee name +1. Device type +1. Request date +1. Reason for the order +1. Approved or denied +1. Status + + :::image type="content" source="media/app-from-sharepoint/sample-list.png" alt-text="Screenshot of a sample list in Microsoft Lists that tracks device orders." lightbox="media/app-from-sharepoint/sample-list.png"::: + +## Use a list in SharePoint or Lists to create an app + +Now lets use the list that we created to build an app from the list. 1. Sign in to [Power Apps](https://make.powerapps.com/). -1. To create a single-page gallery app select **Start with a page design** > **Gallery connected to external data** > **From SharePoint**. -1. To create a three screen mobile app, select **Start with an app template** > **From SharePoint**. +1. In the left navigation pane, select **Create** > **Start with a page design** > **Gallery connected to external data**. + +1. Select **From SharePoint**. - You see a SharePoint connection appear or are prompted to create a connection. To select a different connection, select on the **...** option to switch accounts or create a new connection. -1. Enter the SharePoint URL and then select **Connect**. Or, select a recent site. -1. Select a list and then select, **Create app**. +1. Enter the SharePoint URL, and then select **Connect**. Or, select a recent site. + +1. Select a list or select the [sample list](app-from-sharepoint.md#create-a-list) we created earlier, and then select **Create app**. - Your app opens in Power Apps Studio where you can design, build, and manage your app. Learn more in [Understand Power Apps Studio](power-apps-studio.md). + The app opens in Power Apps Studio, where you design, build, and manage the app. Learn more in [Understand Power Apps Studio](power-apps-studio.md). -1. Save your work by selecting the **Save** icon in the upper-right corner. Give your app a name, and then select **Save**. +1. Select the **Preview the app** icon to see how the app works. -## Create an app from a list +1. [Save and publish](save-publish-app.md) your app. -If you create an app from a list in SharePoint or Microsoft Lists, the app appears as a view of that list. You can also run the app on an iOS or Android device, in addition to a web browser. + When you add or edit information in the app, the information in SharePoint or Lists also updates. + +## Create an app directly from a list in SharePoint or Lists + + Before you create the app, make sure you [create a list](app-from-sharepoint.md#create-a-list). 1. Sign in to SharePoint: `https://yourorganizationname.sharepoint.com` -1. Open a list in either SharePoint or Microsoft Lists. If you open the list from SharePoint, you're taken to Lists to view the list. +1. Open a list in either SharePoint or Lists. If you open the list from SharePoint, you're taken to Lists to view the list. 1. Select **Integrate** > **Power Apps** > **Create an app**. - :::image type="content" source="./media/app-from-sharepoint/generate-new-app.png" alt-text="Screenshot that shows the Integrate menu in Lists that lets you create an app in Power Apps."::: + :::image type="content" source="./media/app-from-sharepoint/generate-new-app.png" alt-text="Screenshot of the Integrate menu in Lists, showing the option to create an app in Power Apps."::: + +1. Select the **Preview the app** icon to see how the app works. - You're taken to Power Apps Studio and can see your list in an app as a vertical gallery on the **BrowseScreen1** screen. +1. [Save and publish](save-publish-app.md) your app. -1. Select the **Save** icon in the upper-right menu bar and name your app **SimpleApp**. Select **Save**. + When you add or edit information in the app, the information in SharePoint or Lists also updates. ## Manage your app -Once you create an app, you can play it, save, share, and publish it. +After you create an app, you can play, save, share, and publish it. -Learn more about these [App actions](power-apps-studio.md#2--app-actions) in the Power Apps Studio interface. +Learn more about these [app actions](power-apps-studio.md#2--app-actions) in the Power Apps Studio interface. ## Related information diff --git a/powerapps-docs/maker/canvas-apps/application-insights.md b/powerapps-docs/maker/canvas-apps/application-insights.md index 72ae78bee9..9fe4076105 100644 --- a/powerapps-docs/maker/canvas-apps/application-insights.md +++ b/powerapps-docs/maker/canvas-apps/application-insights.md @@ -2,10 +2,10 @@ title: Analyze system-generated logs using Application Insights description: Learn how to analyze and use system-generated logs from your canvas apps using Application Insights. author: mattgon -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur -ms.date: 02/24/2025 +ms.date: 04/8/2025 ms.subservice: canvas-maker ms.author: austinj search.audienceType: @@ -18,60 +18,60 @@ contributors: # Analyze system-generated logs using Application Insights -You can connect your canvas apps to [Application Insights](/azure/azure-monitor/app/app-insights-overview), a feature of [Azure Monitor](/azure/azure-monitor/overview). Application Insights includes powerful analytics tools to help you diagnose issues and understand what users actually do with your apps. You can collect information to help you drive better business decisions and improve the quality of your apps. +Connect your canvas apps to [Application Insights](/azure/azure-monitor/app/app-insights-overview), which is a feature of [Azure Monitor](/azure/azure-monitor/overview). Application Insights includes analytics tools that help diagnose issues and understand user behavior in apps. Use the collected information to make better business decisions and improve app quality. ## Prerequisites -- You must have access to the [Azure portal](https://portal.azure.com). -- You must have the permissions to [create Azure resources](/azure/role-based-access-control/quickstart-assign-role-user-portal). +- You need access to the [Azure portal](https://portal.azure.com). +- You need permission to [create Azure resources](/azure/role-based-access-control/quickstart-assign-role-user-portal). > [!NOTE] -> To view telemetry information, your tenant admin must enable **Canvas app insights**. Sign in as an admin in [Power Platform admin center](https://admin.powerplatform.microsoft.com/). Go to **Settings** > **Tenant settings** > **Canvas app insights**. In the **Canvas app insights** pane, set the toggle to **On** and save your changes. -> Fore more information, see [Tenant settings](/power-platform/admin/tenant-settings). +> To view telemetry information, your tenant admin needs to enable **Canvas app insights**. Sign in as an admin at the [Power Platform admin center](https://admin.powerplatform.microsoft.com/). Select **Settings** > **Tenant settings** > **Canvas app insights**. In the **Canvas app insights** pane, turn the toggle **On** and save your changes. +> Learn more in [Tenant settings](/power-platform/admin/tenant-settings). ## Create an Application Insights resource -Before you can send system-generated logs from an app, you need to create an Application Insights resource to store the events. +Send system-generated logs from an app by creating an Application Insights resource to store events. -[Create a workspace-based resource](/azure/azure-monitor/app/create-workspace-resource?tabs=bicep#create-a-workspace-based-resource) for Application Insights in the Azure portal. +Learn how to [create a workspace-based resource](/azure/azure-monitor/app/create-workspace-resource?tabs=bicep#create-a-workspace-based-resource) for Application Insights in the Azure portal. ## Connect your app to Application Insights > [!NOTE] > -> - When specifying a connection string, be aware that data can be sent across tenants. Trace events are sent to the App Insights resource that corresponds to the connection string you set for your app, even if the target App Insights instance is in a different tenant than the app. -> - Use caution when importing existing .msapp files since connection strings for App Insights may be present. Manually open the app after import to verify that the correct App Insights connection string is being used. +> - When you specify a connection string, remember that data can be sent across tenants. Trace events are sent to the App Insights resource that corresponds to the connection string you set for your app, even if the target App Insights instance is in a different tenant than the app. +> - Be cautious when importing existing .msapp files because connection strings for App Insights might be present. Manually open the app after import to check that the correct App Insights connection string is used. 1. Sign in to [Power Apps](https://make.powerapps.com). -1. Open an app for [editing](edit-app.md). +1. Open an app to [edit it](edit-app.md). -1. Select the **App** object in the left navigation tree view and paste the **Connection string** from your Application Insights resource: +1. Select the **App** object in the left navigation tree view, and paste the **Connection string** from your Application Insights resource. - ![Add connection string.](./media/application-insights/add-connection-string.png "Add connection string") + ![Screenshot of adding a connection string.](./media/application-insights/add-connection-string.png "Add connection string") 1. **Save** and **Publish** your app. 1. **Play** the published app and browse the different screens. -As you browse the app screens, events are automatically logged to Application Insights, including usage details such as: +When you browse the app screens, events are automatically logged to Application Insights. These include usage details like: -- Where the app is accessed from -- Which devices are used -- The browser types used +- Where users access the app from +- Which devices users use +- The types of browsers users use > [!IMPORTANT] -> You must play the published app to send events to Application Insights. Events are not sent to Application Insights when you preview the app in Power Apps Studio. +> Play the published app to send events to Application Insights. Events don't send to Application Insights when you preview the app in Power Apps Studio. ## View events in Application Insights 1. Sign in to the [Azure portal](https://portal.azure.com/) and open the Application Insights resource you [created previously](#create-an-application-insights-resource). -1. Scroll down in the left navigation pane and select **Users** under the **Usage** section. +1. In the left navigation pane, select **Users** under the **Usage** section. > [!NOTE] > - > The **Users** view shows the app's usage details, such as: + > The **Users** view shows app usage details, such as: > - Number of users who viewed the app > - Number of user sessions > - Number of events logged @@ -80,16 +80,16 @@ As you browse the app screens, events are automatically logged to Application In > > [Learn more about users, sessions, and events analysis in Application Insights](/azure/azure-monitor/app/usage-segmentation). -1. Select one of the user sessions to drill into specific details. You can see information such as the session length and the screens visited: +1. Select a user session to view specific details, such as session length and screens visited. - ![Usage details for users.](./media/application-insights/appinsights-users.gif "Usage details for users") + ![Screenshot of usage details for users.](./media/application-insights/appinsights-users.gif "Usage details for users") -1. Select the **Events** view in the left navigation pane under the **Usage** section. You can see a summary of all the screens viewed across all app sessions: +1. In the left navigation pane, select **Events** under the **Usage** section. You can view a summary of all the screens viewed across all app sessions. - ![Event details for the app.](./media/application-insights/appInsights-events.gif "Event details for the app") + ![Screenshot of event details for the app.](./media/application-insights/appInsights-events.gif "Event details for the app") > [!TIP] -> More Application Insights features are available, such as: +> Explore more Application Insights features, such as: > > - [Funnels](/azure/azure-monitor/app/usage-funnels) > - [Cohorts](/azure/azure-monitor/app/usage-cohorts) @@ -99,24 +99,24 @@ As you browse the app screens, events are automatically logged to Application In ## Create custom trace events -You can write custom traces directly to Application Insights and start to analyze information specific to your scenario. The [Trace](./functions/function-trace.md) function allows you to collect: +Write custom traces to Application Insights to analyze information specific to your app. The [Trace](./functions/function-trace.md) function allows you to collect: -- Granular usage information for controls on the screens +- Detailed usage information for controls on the screens - Which specific users are accessing your app - What errors occur -Tracing can also help diagnose issues because you can send a trail of information as your users browse through your app and perform different actions. Trace messages sent to Application Insights have one of three severities: +Tracing helps you diagnose issues by sending a trail of information as users browse your app and take actions. Trace messages sent to Application Insights have one of three severities: - Information - Warning - Error -Depending on your scenario, you can choose to send a trace message with the appropriate severity. You can query the data and take specific actions based on the severity. +Send a trace message with the appropriate severity based on the situation. You can query the data and take specific actions based on the severity. > [!NOTE] > If you are logging any personal data, be aware of your obligations with respect to various privacy laws and regulations. Refer to the [Microsoft Trust Center](https://www.microsoft.com/trust-center) and the [Service Trust Portal](https://servicetrust.microsoft.com/ViewPage/HomePageVNext) for more information. -Now create a new component in your app to collect feedback on each screen, and write the events to Application Insights. +Create a component in your app to collect feedback on each screen and log events to Application Insights. 1. Sign in to [Power Apps](https://make.powerapps.com). @@ -125,11 +125,11 @@ Now create a new component in your app to collect feedback on each screen, and w > [!NOTE] > You can also [create](open-and-run-a-sample-app.md) a new app or [edit](edit-app.md) an existing app instead. -1. Select the **Components** option on the **Tree view**: +1. Select **Components** in the **Tree view**: ![Components.](./media/application-insights/new-component.png "Components") -1. Select **New component**, and then resize the width to 200 and height to 75: +1. Select **New component**, then resize the width to 200 and the height to 75: ![Height and width.](./media/application-insights/resize-component.png "Height and width") @@ -141,24 +141,24 @@ Now create a new component in your app to collect feedback on each screen, and w ![Create custom property.](./media/application-insights/create-custom-property.png "Create custom property") -1. Enter property *Name* and *Display name* such as *FeedbackSceen*. +1. Enter the property *Name* and *Display name* (for example, *FeedbackScreen*). -1. Enter property *Description*. +1. Enter a property *Description*. 1. Select **Property type** as **Input** and **Data type** as **Screen**: ![Custom property.](./media/application-insights/custom-input-property.png "Custom property") > [!NOTE] - > Input property allows you to capture the screen name and its component so that you can log this information to Application Insights. + > An input property lets you capture the screen name and its component to log this information to Application Insights. -1. Select the component on the **Tree View**, select **More actions** (**…**), and then select **Rename** to rename the component with a meaningful name such as *FeedbackComponent*. +1. Select the component in the **Tree view**, select **More actions** (**…**), and select **Rename** to give the component a meaningful name, such as *FeedbackComponent*. ![Rename component and icons.](./media/application-insights/rename-component-icons.png "Rename component and icons") 1. Select the icons, select **More actions** (**…**), and then select **Rename** to rename the icons with meaningful names, such as *FrownIcon* and *SmileIcon*. -1. Select **FrownIcon**, select the **OnSelect** property, and then enter the following expression in the formula bar: +1. Select **FrownIcon**, select the **OnSelect** property, and enter the following expression in the formula bar: ```power-fx Trace( @@ -177,7 +177,7 @@ Now create a new component in your app to collect feedback on each screen, and w ![Frown icon formula.](./media/application-insights/frownicon-formula.png "Frown icon formula") > [!NOTE] - > The formula expression sends *UserName*, *UserEmail*, *Screen*, and the *Feedback* (with the value *-1*) to Application Insights. + > The formula sends *UserName*, *UserEmail*, *Screen*, and *Feedback* (with the value *-1*) to Application Insights. 1. Select **SmileIcon**, select the **OnSelect** property, and then enter the following expression in the formula bar: @@ -201,26 +201,26 @@ Now create a new component in your app to collect feedback on each screen, and w 1. Select **Save** and then select **Publish** to save and publish your app. -1. Play the published app, and send a smile and a frown feedback from your screens. +1. Play the published app and send smile or frown feedback from its screens. > [!IMPORTANT] > You must play the published app to send events to Application Insights. Events are not sent to Application Insights when you preview the app in Power Apps Studio. ![Play published app.](./media/application-insights/play-published-app.png "Play published app") -## Analyze data in Application Insights +## Analyze custom data in Application Insights You can now begin to analyze the data you sent using the [Trace](#create-custom-trace-events) function from your app in Application Insights. -1. Sign in to the [Azure portal](https://portal.azure.com/) and open the Application Insights resource you created [earlier](#create-an-application-insights-resource): +1. Sign in to the [Azure portal](https://portal.azure.com/) and open the application insights resource you created [earlier](#create-an-application-insights-resource). ![Select Application Insights.](./media/application-insights/select-app-insights.png "Select Application Insights") -1. Select **Logs** under **Monitoring** in the left navigation pane: +1. Select **Logs** under **Monitoring** in the left navigation pane. ![Select Logs.](./media/application-insights/select-logs.png "Select Logs") -1. Enter the following query and select **Run** to view the feedback received from your app: +1. Enter the following query and select **Run** to view the feedback from your app: ```kusto traces @@ -232,11 +232,11 @@ You can now begin to analyze the data you sent using the [Trace](#create-custom- 1. Select a row in the results and expand the *customDimensions* field. - The values for **Screen**, **UserName**, **UserEmail**, and **FeedbackValue** for the **OnSelect** event of the smile or frown icon in your component have been recorded. Values are also recorded for each event sent to Application Insights, such as the **appId**, **appName**, and **appSessionId**. + The values for **Screen**, **UserName**, **UserEmail**, and **FeedbackValue** for the **OnSelect** event of the smile or frown icon in your component are recorded. Values are also recorded for each event sent to Application Insights, such as the **appId**, **appName**, and **appSessionId**. ![Expand custom dimensions.](./media/application-insights/expand-custom-dimensions.png "Expand custom dimensions") -1. With the following example query, you can extend the properties of the JSON custom dimensions and project the columns in the results view. +1. Use the following example query to extend the properties of the JSON custom dimensions and project the columns in the results view. ```kusto traces @@ -255,7 +255,191 @@ You can now begin to analyze the data you sent using the [Trace](#create-custom- ![Extend customDimensions query.](./media/application-insights/custom-dimensions-extend-query.png "Extend customDimensions query") > [!TIP] - > *Log queries* are extremely powerful. You can use them to join multiple tables, aggregate large amounts of data, and perform complex operations. [Learn more about log queries](/azure/azure-monitor/log-query/log-query-overview). + > *Log queries* are powerful. Use them to join multiple tables, aggregate large amounts of data, and run complex operations. [Learn more about log queries](/azure/azure-monitor/log-query/log-query-overview). + +## Analyze app lifecycle data in Application Insights +The session summary event is logged once per session and contains +information on app open success, app open optimal vs non-optimal sessions, and app +open performance metrics. + +### Limits +These events are accurate for canvas apps running in a web browser. They aren't available for apps running in Power Apps mobile, and their values might not always be available or accurate for custom pages. + +Here is an example query showing how to access the session summary event and all +available fields: + +```kusto +customEvents +| where name == "PowerAppsClient.PublishedApp.SessionLoadSummary" +// +| extend cd = parse_json(customDimensions) +// +| extend sessionSummary = parse_json(tostring(cd["ms-sessionSummary"])) +| extend successfulAppLaunch = tobool(sessionSummary["successfulAppLaunch"]) +| extend unsuccessfulReason = tostring(sessionSummary["unsuccessfulReason"]) +| extend appLoadResult = tostring(sessionSummary["appLoadResult"]) +| extend appLoadNonOptimalReason = +tostring(sessionSummary["appLoadNonOptimalReason"]) +// +| extend timeToAppInteractive = todouble(sessionSummary["timeToAppInteractive"]) +| extend timeToAppFullLoad = todouble(sessionSummary["timeToAppFullLoad"]) +// +| project + timestamp, + session_Id, + successfulAppLaunch, + unsuccessfulReason, + appLoadResult, + appLoadNonOptimalReason, + timeToAppInteractive, + timeToAppFullLoad +| limit 5 +``` +The following fields help measure app open success and latency of performance markers tied to end-user experiences. + +| Field | Description | +|-------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| successfulAppLaunch | Boolean value indicating whether the session successfully launched the app | +| unsuccessfulReason | If the session failed to launch the app, this indicates the reason / error. This field will be an empty string if the session was successful. | +| appLoadResult | Indicates if the session was optimal or not. Possible values: optimal, other | +| appLoadNonOptimalReason | If the session was not optimal, this indicates the reason. Possible values: interaction-required, throttled, screen-navigated-away, other | +| timeToAppInteractive | Duration in milliseconds for the app session to reach an interactive state. In this state, users can start to interact with the first screen, but data may not be fully loaded. | +| timeToAppFullLoad | Duration in milliseconds for the app session to reach a fully loaded state, where all data requests for the first screen have finished loading. | + +### Sample queries + +#### App Open Success rates + +This query will show the app open success rate by day. This can be used to evaluate spikes +or trends in issues that users may be experiencing + ```kusto +customEvents +| where name == "PowerAppsClient.PublishedApp.SessionLoadSummary" +| extend cd = parse_json(customDimensions) +| extend sessionSummary = parse_json(tostring(cd["ms-sessionSummary"])) +| extend successfulAppLaunch = tobool(sessionSummary["successfulAppLaunch"]) +| summarize +sessions_total = dcount(session_Id), +sessions_success = dcountif(session_Id, successfulAppLaunch == true) +by bin(timestamp, 1d) +| extend successRate = +100.0 * (todouble(sessions_success) / todouble(sessions_total)) +| project timestamp, successRate +| render timechart +``` +#### Count of Unsuccessful Sessions by Reason +This query will show counts of unsuccessful sessions by reason / error. This can be used to +debug app open failures or evaluate trends in issues that users may be experiencing. + + ```kusto +customEvents +| where name == "PowerAppsClient.PublishedApp.SessionLoadSummary" +| extend cd = parse_json(customDimensions) +| extend sessionSummary = parse_json(tostring(cd["ms-sessionSummary"])) +| extend successfulAppLaunch = tobool(sessionSummary["successfulAppLaunch"]) +| extend unsuccessfulReason = tostring(sessionSummary["unsuccessfulReason"]) +| where successfulAppLaunch == false +| summarize +count() +by unsuccessfulReason, bin(timestamp, 1d) +| render timechart +``` + +#### App Open Performance +This query will show app open performance metrics by day. This can be used to evaluate +performance trends over time or after making changes. +We recommend: +1. Using the 75th percentile of the timeToAppInteractive and timeToAppFullLoad fields +to avoid noise caused by outliers. +1. Filtering to only optimal sessions to avoid noise in the data caused by expected +cases like sessions with user interaction, sessions where the app was loaded in a +background tab, etc. + +```kusto +customEvents +| where name == "PowerAppsClient.PublishedApp.SessionLoadSummary" +| extend cd = parse_json(customDimensions) +| extend sessionSummary = parse_json(tostring(cd["ms-sessionSummary"])) +| extend appLoadResult = tostring(sessionSummary["appLoadResult"]) +| extend timeToAppInteractive = todouble(sessionSummary["timeToAppInteractive"]) +| extend timeToAppFullLoad = todouble(sessionSummary["timeToAppFullLoad"]) +| where appLoadResult == "optimal" +| summarize +percentile(timeToAppInteractive, 75), +percentile(timeToAppFullLoad, 75) +by bin(timestamp, 1d) +| render timechart +``` + +#### App Load State on HTTP Calls +There is a new request header x-ms-app-load-state that indicates if an HTTP call +contributed to app startup. Specifically, this can be used to determine which HTTP calls +impacted the timeToAppFullLoad above. + +The header can be one of two values: + +| Value | Description | +|----------|--------------------------------------------------------------------| +| TTFL | indicates that the request contributed to timeToAppFullLoad | +| PostTTFL | indicates that the request did not contribute to timeToAppFullLoad | + +Here is an example query showing how to access the header value and projecting it in the +appLoadState column: + +```kusto +dependencies +| extend cd = parse_json(customDimensions) +| extend requestHeaders = parse_json(tostring(cd["requestHeaders"])) +| extend appLoadState = tostring(requestHeaders["x-ms-app-load-state"]) +| project timestamp, session_Id, appLoadState, name, duration +| limit 5 +``` + +#### Count of HTTP calls contributing to Full Load +This query will show the average count of HTTP calls that are contributing to +timeToAppFullLoad by day. This can be used to evaluate the number of calls the app is +making at startup that may be contributing to poor performance. + +```kusto +dependencies +| extend cd = parse_json(customDimensions) +| extend requestHeaders = parse_json(tostring(cd["requestHeaders"])) +| extend appLoadState = tostring(requestHeaders["x-ms-app-load-state"]) +| where appLoadState == "TTFL" +| summarize httpCalls = count() by session_Id, bin(timestamp, 1d) +| summarize avg(httpCalls) by timestamp +| render timechart +``` + +#### Duration of HTTP calls contributing to Full Load +This query will show the total duration of HTTP calls that are contributing to +timeToAppFullLoad by day. This can be used to evaluate the overall impact of HTTP calls to +app startup performance. + +```kusto +dependencies +| extend cd = parse_json(customDimensions) +| extend requestHeaders = parse_json(tostring(cd["requestHeaders"])) +| extend appLoadState = tostring(requestHeaders["x-ms-app-load-state"]) +| where appLoadState == "TTFL" +| summarize httpCallDuration = sum(duration) by session_Id, bin(timestamp, 1d) +| summarize percentile(httpCallDuration, 80) by timestamp +| render timechart +``` +#### Duration of HTTP calls contributing to Full Load by URL +Similar to above, this query will show the count and duration of HTTP calls contributing to +timeToAppFulLoad by URL. This can be used to identify specific slow HTTP calls that are +impacting app startup performance. + +```kusto +dependencies +| extend cd = parse_json(customDimensions) +| extend requestHeaders = parse_json(tostring(cd["requestHeaders"])) +| extend appLoadState = tostring(requestHeaders["x-ms-app-load-state"]) +| where appLoadState == "TTFL" +| summarize +count(), percentile(duration, 80) by name +``` ## Monitor unhandled errors (experimental) @@ -265,26 +449,26 @@ You can now begin to analyze the data you sent using the [Trace](#create-custom- > - This is an experimental feature. > - Experimental features aren’t meant for production use and may have restricted functionality. These features are available before an official release so that customers can get early access and provide feedback. -You can't always anticipate and plan for all errors that might occur while your app is running. Unhandled Power Fx formula errors are reported to users as banner messages. They can also be reported to Application Insights to help you understand their frequency and severity without relying on your app's users to report issues. You can also [set up real-time alerts](/azure/azure-monitor/app/availability-alerts) when runtime errors occur to take a more proactive approach. +You can't always anticipate or plan for every error that might occur while your app runs. Unhandled Power Fx formula errors are reported to users as banner messages. They can also be reported to Application Insights to show their frequency and severity without relying on your app's users to report issues. You can also [set up real-time alerts](/azure/azure-monitor/app/availability-alerts) when runtime errors occur to take a more proactive approach. ### Enable error passing to Application Insights -You need to enable the setting that allows Power Apps to pass unhandled runtime errors to Azure Application Insights. +Enable the setting that lets Power Apps pass unhandled runtime errors to Azure Application Insights. > [!WARNING] -> Enabling this setting may incur additional costs related to the storage of Application Insights logs. - -To enable error passing, go to **Settings > Upcoming features > Experimental > Pass errors to Azure Application Insights** while keeping your canvas app open for editing. Save and publish your app. +> Enabling the **Pass errors to Azure Application Insights** setting might incur additional costs for storing Application Insights logs. -:::image type="content" source="media/application-insights/pass-error-feature.png" alt-text="Enable Pass errors to Azure Application Insights setting."::: +1. Open the canvas app for editing. +1. Select **Settings** > **Updates** > **Experimental**, and turn on **Pass errors to Azure Application Insights**. +1. Save and then publish your app. ### Error events in Application Insights -Unhandled Power Fx errors experienced by users at app runtime are reported to the **traces** table. Unhandled errors can be identified and distinguished from other error events by the event message "Unhandled error." The "severityLevel" dimension of these events is 3 (TraceSeverity.Error). +Unhandled Power Fx errors that users encounter at app runtime are reported to the **traces** table. Unhandled errors can be identified and distinguished from other error events by the event message "Unhandled error." The "severityLevel" dimension of these events is 3 (TraceSeverity.Error). -Detailed error messages are provided in the "errors" dimension of the *customDimension* property. In situations where multiple errors occurred during the same operation, the errors are consolidated in the "errors" dimension of a single trace event. The error messages are the same as reported in [Monitor](/power-apps/maker/monitor-canvasapps) during a live debug session. +Detailed error messages are provided in the "errors" dimension of the *customDimension* property. In situations where multiple errors occurred during the same operation, the errors are consolidated in the "errors" dimension of a single trace event. The error messages match those reported in [Monitor](/power-apps/maker/monitor-canvasapps) during a live debug session. -The following example query identifies unhandled errors and expands all error messages included in the trace event: +This example query identifies unhandled errors and expands all error messages in the trace event: ```kusto traces @@ -300,7 +484,7 @@ traces | order by timestamp desc ``` -:::image type="content" source="media/application-insights/kusto.png" alt-text="Sample output for example query."::: +:::image type="content" source="media/application-insights/kusto.png" alt-text="Screenshot of the sample output for the example query."::: ## Correlation tracing (experimental) @@ -310,22 +494,24 @@ traces > - This is an experimental feature. > - Experimental features aren’t meant for production use and may have restricted functionality. These features are available before an official release so that customers can get early access and provide feedback. -Connections to external data and services are fundamental to most apps. Correlation tracing generates and propagates context information to join system-generated logs across a canvas app and its connections, subject to certain [limitations](#limitations). As an example, your app may call into a custom connector that in turn calls an Azure Function or other REST API. Correlation tracing allows you to correlate actions taken in the app with the underlying API calls across tiers. This can be useful in troubleshooting. +Connecting to external data and services is essential for most apps. Correlation tracing generates and propagates context information to link system-generated logs across a canvas app and its connections, subject to certain [limitations](#limitations). For example, your app might call a custom connector that then calls an Azure Function or another REST API. Correlation tracing allows you to correlate actions taken in the app with the underlying API calls across tiers. This is useful for troubleshooting. -Canvas app correlation tracing is an implementation of context tracing and follows the [W3C specification](https://www.w3.org/TR/trace-context/). +Canvas app correlation tracing implements context tracing and follows the [W3C specification](https://www.w3.org/TR/trace-context/). ### Enable correlation tracing > [!WARNING] -> Enabling this setting may incur additional costs related to the storage of Application Insights logs. +> Enabling this setting might incur additional costs related to storing Application Insights logs. -To enable the correlation tracing feature, go to **Settings > Upcoming features > Experimental > Enable Azure Application Insights correlation tracing** while keeping your canvas app open for editing. Save and publish your app. +1. To enable correlation tracing, open your cavas app for editing. +1. Select **Settings** > **Udates** > **Experimental** > and turn on **Enable Azure Application Insights correlation tracing**. +1. Save and publish the app. -:::image type="content" source="media/application-insights/correlation-tracing.png" alt-text="Enable Azure Application Insights correlation tracing."::: +:::image type="content" source="media/application-insights/correlation-tracing.png" alt-text="Screenshot of the setting to enable Azure Application Insights correlation tracing."::: ### Limitations -- Correlation tracing is available only for custom connectors. Other connector types aren't supported. +- Correlation tracing works only with custom connectors. Other connector types aren't supported. - HTTP requests are captured in Application Insights only if the connected service [is also connected to Application Insights](/azure/azure-monitor/app/app-insights-overview). ### Using correlation tracing @@ -338,7 +524,7 @@ If the connected service is also connected to Application Insights, an additiona :::image type="content" source="media/application-insights/correlation-requests.png" alt-text="Sample event logged in the requests table."::: -Network calls for supported connectors can be joined with other system-generated logs on the "operation_Id" dimension. The following example query shows a network call being made alongside trace events emitted during an app session. +Join network calls for supported connectors with other system-generated logs on the "operation_Id" dimension. The following query shows a network call alongside trace events emitted during an app session. ```kusto traces | union dependencies | union requests | union pageViews | union customEvents @@ -355,62 +541,62 @@ traces | union dependencies | union requests | union pageViews | union customEve | order by timestamp asc ``` -:::image type="content" source="media/application-insights/correlation-output.png" alt-text="Sample output for the earlier example query."::: +:::image type="content" source="media/application-insights/correlation-output.png" alt-text="Screenshot of sample output for the earlier example query."::: ## Export data to Power BI You can export your Application Insights data and query results to Power BI for analysis and data presentation. -1. Sign in to the [Azure portal](https://portal.azure.com/) and open the Application Insights resource you created [earlier](#create-an-application-insights-resource): +1. Sign in to the [Azure portal](https://portal.azure.com/) and open the Application Insights resource you set up [earlier](#create-an-application-insights-resource). -1. Select **Logs** under **Monitoring** in the left navigation pane: +1. Select **Logs** under **Monitoring** in the left navigation pane. -1. From the log analytics query window, select the **Export** menu. +1. In the log analytics query window, select the **Export** menu. -1. Select the **Export to Power BI (M query)** option to download a Power BI query file: +1. Select **Export to Power BI (M query)** to download a Power BI query file. - ![Export Power BI query.](./media/application-insights/export-powerbi-query.png "Export Power BI query") + ![Screenshot of the Export Power BI query option in the log analytics query window.](./media/application-insights/export-powerbi-query.png "Export Power BI query") -1. Open the downloaded file in a text editor and copy the query to the clipboard. +1. Open the downloaded file in a text editor, and copy the query to the clipboard. 1. Open Power BI. -1. Select the **Get Data** menu in the **Home** ribbon, and then select **Blank query**: +1. Select **Get Data** in the **Home** ribbon, and then select **Blank query**. - ![Power BI blank query.](./media/application-insights/powerbi-blank-query.png "Power BI blank query") + ![Screenshot of the Blank query option in Power BI's Get Data menu.](./media/application-insights/powerbi-blank-query.png "Power BI blank query") -1. In the query window, select **Advanced Editor**. Paste the query into the window, select **Done**, and then select **Close & Apply**: +1. In the query window, select **Advanced Editor**, paste the query into the window, select **Done**, and then select **Close & Apply**. - ![Power BI advance query.](./media/application-insights/powerbi-advance-query.png "Power BI advance query") + ![Screenshot of the Advanced Editor in Power BI with a query pasted into the window.](./media/application-insights/powerbi-advance-query.png "Power BI advance query") -You can also create charts and visualizations in Power BI to represent feedback received in your app, as well as make data-based decisions and actions. +Create charts and visualizations in Power BI to represent feedback from your app and make data-driven decisions. -![Charts and visualizations.](./media/application-insights/powerbi-feedback.png "Charts and visualizations") +![Screenshot of charts and visualizations in Power BI representing app feedback.](./media/application-insights/powerbi-feedback.png "Charts and visualizations") ## Default Trace event context and dimensions -A set of default dimensions is also added to the *customDimensions* property on each Trace event. These dimensions can be used to identify the application and application sessions the events occurred in. If you log additional custom data using the Trace function, they'll also appear in the custom dimensions. +Default dimensions are added to the *customDimensions* property on each Trace event. These dimensions identify the application and application sessions where the events occur. If you log additional custom data using the Trace function, it also appears in the custom dimensions. | Dimension Name | Represents | |-----------------|-------------------------------------------------------| | ms-appId | The Application ID of the app that sent the event. | | ms-appname | The Application name of the app that sent the event. | -| ms-appSessionId | The application session ID. This value may not be populated is some scenarios. When available, this value overrides the standard Application Insights sessionID dimension. | +| ms-appSessionId | The application session ID. This value might not be populated in some scenarios. When available, this value overrides the standard Application Insights sessionID dimension. | | ms-tenantID | The unique identifier of the tenant where the application is published. | | ms-environmentId | The name of the environment where the application is published. | | userId | A unique identifier for the user associated with the session. | | ms-duration | An imputed value measuring the time it takes for a user to navigate from one screen to another. This value overrides the standard Application Insights PageView duration dimension. | -| sessionId | A session ID that can be used to correlate all events associated with a single application session. This value is always present and is recommended for understanding unique session count. This value is taken from the player's session ID and is shown when viewing the session details while playing the app. Session ID might sometimes get a default, random, and unique Application Insights generated value. This default value isn't reliable and doesn't correlate with any app-specific parameters. | -| Duration | An imputed value measuring the time it takes for a user to navigate from one screen to another. This value is the same as the duration reported by the ms-duration dimension. | +| sessionId | A session ID that can be used to correlate all events associated with a single application session. This value is always present and is recommended for understanding unique session count. This value is taken from the player's session ID and is shown when viewing the session details while playing the app. Session ID might sometimes get a default, random, unique Application Insights-generated value. This default value isn't reliable and doesn't correlate with any app-specific parameters. | +| Duration | An imputed value measuring the time it takes for a user to navigate from one screen to another. This value matches the duration reported by the ms-duration dimension. | | ms-isTest | Indicates whether the session is associated with the Test Studio test runner. | -| ms-currentScreenName | The name of the page a user is navigating from (present for page navigation events). | +| ms-currentScreenName | The name of the page the user navigates from (available for page navigation events). | | ms-targetScreenName | The name of the page a user is navigating to (present for page navigation events). | ## Unsupported scenarios -Application Insights doesn't support the following scenarios. +Application Insights doesn't support these scenarios. -- Offline player events aren't captured. -- Mobile app (both iOS and Android) events aren't captured when app is suspended. +- Offline player events aren't recorded. +- Events from mobile apps (iOS and Android) aren't recorded when the app is suspended. [!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/canvas-apps/build-responsive-apps.md b/powerapps-docs/maker/canvas-apps/build-responsive-apps.md index d2762590be..01a57537cc 100644 --- a/powerapps-docs/maker/canvas-apps/build-responsive-apps.md +++ b/powerapps-docs/maker/canvas-apps/build-responsive-apps.md @@ -3,7 +3,7 @@ title: Building responsive canvas apps description: Learn about how to build responsive canvas apps. author: emcoope-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 01/27/2022 diff --git a/powerapps-docs/maker/canvas-apps/code-view.md b/powerapps-docs/maker/canvas-apps/code-view.md index 5852220890..551d2887bc 100644 --- a/powerapps-docs/maker/canvas-apps/code-view.md +++ b/powerapps-docs/maker/canvas-apps/code-view.md @@ -3,8 +3,8 @@ title: Use code view for canvas app controls (preview) description: Learn how to use the code view in Microsoft Power Apps Studio to understand your canvas app's functionality. author: marcelbf ms.author: marcelbf -ms.date: 3/18/2025 -ms.topic: conceptual +ms.date: 5/20/2025 +ms.topic: how-to ms.reviewer: mkaur ms.subservice: canvas-maker ms.collection: get-started @@ -52,13 +52,24 @@ Code view lets you copy and paste code to any screen in your app or outside of P - When viewing your code in the code view popup, select **Copy code**. 1. To add a new control from the code: -- Use the menu to paste. -- Use the shortcut Ctrl+V. + - Use the menu to paste. + - Use the shortcut Ctrl+V. - :::image type="content" source="media/code-view/paste-code.png" alt-text="Screenshot of the tree view in Power Apps Studio, with the Paste code option highlighted on a control's context menu."::: + :::image type="content" source="media/code-view/paste-code.png" alt-text="Screenshot of the tree view in Power Apps Studio, with the Paste code option highlighted on a control's context menu."::: -> [!IMPORTANT] -> Use the YAML format that Power Apps Studio generates. The code is validated before the new control is created. + > [!IMPORTANT] + > Use the YAML format that Power Apps Studio generates. The code is validated before the new control is created. + +## Browser clipboard access required + +To paste code into Power Apps Studio using code view, your browser must have access to the clipboard. If you encounter issues pasting code, check your browser settings and ensure clipboard permissions are enabled for the site. + +The first time you paste code, your browser will prompt you to grant clipboard access. Approve this request to enable pasting functionality in Power Apps Studio. + +:::image type="content" source="media/code-view/edge-clipboard-warning.png" alt-text="Screenshot of edge asking for permission to access the clipboard content."::: + +> [!TIP] +> If pasting doesn't work, check if clipboard access to Power Apps is blocked in your browser. In Microsoft Edge, you can manually add **https://make.powerapps.com** to the allowed sites for clipboard access in your browser settings. ## Known limitations diff --git a/powerapps-docs/maker/canvas-apps/comments.md b/powerapps-docs/maker/canvas-apps/comments.md index 2c06a0fbd5..e67d4297c6 100644 --- a/powerapps-docs/maker/canvas-apps/comments.md +++ b/powerapps-docs/maker/canvas-apps/comments.md @@ -2,7 +2,7 @@ title: Add comments when you're building a canvas app description: Learn how to add comments while you’re building a canvas app in Power Apps Studio. author: mkaur -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 03/01/2023 diff --git a/powerapps-docs/maker/canvas-apps/common-performance-issue-resolutions.md b/powerapps-docs/maker/canvas-apps/common-performance-issue-resolutions.md deleted file mode 100644 index e68a6954b2..0000000000 --- a/powerapps-docs/maker/canvas-apps/common-performance-issue-resolutions.md +++ /dev/null @@ -1,291 +0,0 @@ ---- -title: Common canvas apps performance issues and resolutions -description: Learn about the common performance issues and resolutions for canvas apps. -author: JinManAhn-MSFT - -ms.topic: conceptual -ms.custom: canvas -ms.reviewer: mkaur -ms.date: 06/16/2022 -ms.subservice: canvas-maker -ms.author: jiahn -search.audienceType: - - maker -contributors: - - JinManAhn-MSFT - - lancedMicrosoft - - melzoghbi ---- - -# Common canvas app performance issues and resolutions - -You can build canvas apps by using a diverse array of data sources. Choose the data source and connector based on the business needs and scenarios you're designing the app for. For enterprise apps, Microsoft Dataverse is the recommended data source because it provides several performance benefits. For apps with a few transactions, you can go with any other available data sources in your environment. - -For performance considerations of an app, think about the number of users who will use the app when it has been published; the volume of create, retrieve, update, and delete (CRUD) transactions; the type of data interactions; geographical access; and the kinds of devices users have. - -In this article, you'll learn about some of the most common performance issues that can make canvas apps run slowly, and how to resolve them. This information will help you to improve app performance with your business plan and growth in mind. - -We'll begin with some of the common performance issues that occur regardless of the connector being used. In later sections, you'll learn about performance issues and resolutions specific to various connectors. - -Before you begin, ensure that you understand [canvas app execution phases and data call flow](execution-phases-data-flow.md). Also, read [Common sources of slow performance for a canvas app](slow-performance-sources.md) to learn about common pitfalls you can avoid while designing or updating canvas apps. - -## Large datasets loading slowly on different platforms - -The performance of an app might vary when loading large sets of data on different platforms like iOS or Android. This variation happens because of different network request limitations on each platform. For example, the number of concurrent network requests allowed might differ by platform. This difference can have a major impact on the data load time for large datasets. - -We recommend that you only load the data you need to immediately display on the screen. For other data, paginate and [cache](performance-tips.md#cache-lookup-data) your data. More information: [Tips and best practices to improve canvas app performance](performance-tips.md) - -## Too many columns retrieved - -We recommend that you select only the columns that are necessary for the app. Adding more (or all) columns from the data source downloads all the data in the columns. This action results in a high number of network overhead calls and, therefore, high memory usage in the client device. This problem can affect users with mobile devices even more if the network bandwidth is limited, or if a device has limited memory or a legacy processor. - -For example, if you use Dataverse as the data source for your app, make sure you've enabled the [explicit column selection](use-native-cds-connector.md) feature. This feature allows Power Apps to restrict data retrieval to only the columns used in the app. - -To turn on the explicit column selection feature on the canvas app, go to **Settings** > **Upcoming features** > **Preview**, and then turn on the **Explicit column selection** toggle. - -## Unsupported or legacy browsers - -Users who use unsupported or legacy browsers, might experience performance issues. Ensure that users only use [supported browsers](limits-and-config.md#supported-browsers-for-running-canvas-apps) for running canvas apps. - -## Slow performance because of geographical distance - -The geographical location of the environment and the distance of the data source from users can affect performance. - -We recommend that your environment be located close to users. Though Power Apps uses Azure Content Delivery Network for content, data calls still get the data from the data source. A data source located in another geographical location might adversely affect the performance of the app. - -Excessive geographical distance affects performance in different ways, such as latency, reduced throughput, lower bandwidth, or packet loss. - -## Allowlist not configured - -Ensure that required service URLs haven't been blocked or that they've been added to your firewall's allowlist. For a complete list of all service URLs that must be allowed for Power Apps, go to [Required services](limits-and-config.md#required-services). - -## Use of non-delegable functions and inappropriate data row limits for non-delegable queries - -*Delegable functions* delegate the processing of data to the data source, minimizing the overhead at the client side. When delegation isn't possible, you can restrict the data row limit for non-delegable queries so that the number of rows returned from a server-based connection remain optimal. - -The use of non-delegable functions and inappropriate [data row limits for non-delegable queries](delegation-overview.md#non-delegable-limits) add extra overhead to data transfer. This overhead results in manipulation of the received data to the [JS heap](#memory-pressure-at-the-client-side) at the client side. Be sure to use delegable functions for the app whenever available, and use the optimum data row limit for non-delegable queries. - -More information: [Use delegation](performance-tips.md#use-delegation), [Delegation overview](delegation-overview.md) - -## OnStart event needs tuning - -The **OnStart** event runs when the application is loading. Calling large amounts of data by using the functions in the app's [**OnStart** property](functions/object-app.md#onstart-property) will cause the app to load slowly. A screen that's heavily dependent on controls and values defined on another screen will be affected by slow screen navigation. - -The following sections describe some of the most common problems experienced in these situations. - -### High number of calls in OnStart event causing the app to start slowly - -In an enterprise, the volume of data calls to a central data source can drive server bottlenecks or resource contention. - -Use a [cache mechanism](performance-tips.md#cache-lookup-data) to optimize data calls. A single app might be used by many users, resulting in multiple data calls per user that reach the server's endpoints. These data calls can be a spot where the bottleneck or throttling can occur. - -### Latency on OnStart event because of heavy scripts - -Heavy scripts at the **OnStart** event are one of the most common mistakes while designing canvas apps. You should only get the data required for the app to start. - -Optimize the formula in an **OnStart** event. For example, you can move some functions to the [**OnVisible**](controls/control-screen.md#additional-properties) property instead. This way you can let the app start quickly, and other steps can continue while the app opens. - -More information: [Optimize the OnStart property](performance-tips.md#optimize-the-onstart-property) - -> [!TIP] -> We recommend using [App.StartScreen](functions/object-app.md#startscreen-property) property since it simplifies app launch and boosts the app's performance. - -## Memory pressure at the client side - -It's important to check the memory consumption of a canvas app because most of the time, the app runs on mobile devices. Memory exceptions in the heap are the most likely cause behind a canvas app that crashes or freezes ("hangs") on certain devices. - -A JavaScript (JS) heap might reach the limit because of heavy scripts running at the client side for adding, joining, filtering, sorting, or grouping columns. In most cases, an out-of-memory exception at the heap in a client can trigger the app to crash or hang. - -When using data from sources such as Dataverse or SQL Server, you can use a **View** object to ensure that joining, filtering, grouping, or sorting occurs at the server side instead of the client side. This approach reduces the client overhead of scripting for such actions. - -If client-heavy operations like **JOIN** or **Group By** happened at the client side with a dataset that has 2,000 records or more, the objects in the heap will increase, resulting in exceeding memory limits. - -Developer tools for most browsers allow you to profile memory. It helps you visualize heap size, documents, nodes, and listeners. Profile the app's performance by using a browser, as described in [Microsoft Edge (Chromium) Developer Tools overview](/microsoft-edge/devtools-guide-chromium/). Check the scenarios that exceed the memory threshold of the JS heap. More information: [Fix memory problems](/microsoft-edge/devtools-guide-chromium/memory-problems/) - -![An example of memory pressure for an app as seen from the developer tools of a browser.](media/common-perf-issue-fixes/memory-pressure.png "An example of memory pressure for an app as seen from the developer tools of a browser") - -## Performance considerations for the SQL Server connector - -You can use the [SQL Server connector](connections/sql-connection-overview.md) for Power Apps to connect to SQL Server on-premises or Azure SQL Database. This section describes common performance-related problems and resolutions for using this connector for a canvas app. - -> [!NOTE] -> Though this section references the SQL Server connector for performance issues and resolutions, most of the recommendations also apply to using any database type—such as MySQL or PostgreSQL—as the data source. - -Let's take a look at the common performance problems and resolutions for using the SQL Server connector for canvas apps. - -### N+1 query - -Galleries that generate too many requests to servers cause N+1 query problems. The *N+1 query* problem is one of the most commonly experienced problems with using the [**Gallery**](add-gallery.md) control. - -To avoid the problem, use **view objects** in the SQL back end or change the user interface scenarios. - -### Table scan instead of index seek - -An app might slow down if the functions used by the app run queries in the database that result in table scans instead of index seek. More information: [Hints, Table SCAN, and Index SEEK](/sql/t-sql/queries/hints-transact-sql-table) - -To resolve such problems, use [**StartsWith**](functions/function-startswith.md) instead of [**IN**](functions/operators.md#in-and-exactin-operators) in the formula. With a SQL data source, the **StartsWith** operator results in an index seek, but the **IN** operator results in an index or table scan. - -### Slow queries - -You can profile and tune slow queries and indexes on the SQL database. For instance, if a formula gets data with descending (DESC) order on a certain column, that sorting column should have an index with descending order. The index key creates ascending (ASC) order by default. - -You can also check the URL address of data requests. For example, the following data request snippet (partial OData call) asks SQL to return 500 records matching the column to *Value* and order by *ID* in descending order. - -``Items? \$filter=Column eq 'Value' & Orderby = ID desc & top 500`` - -This helps in understanding index requirements for covering similar request conditions. In this example, if the ID column has an index with descending order, the query will be performed more quickly. - -Check the execution plan of slow queries to see whether any table or index scan exists. Monitor any excessive costs of key lookup in the execution plan. - -More information: - -- [Monitor and tune for performance](/sql/relational-databases/performance/monitor-and-tune-for-performance) -- [Monitoring performance by using the Query Store](/sql/relational-databases/performance/monitoring-performance-by-using-the-query-store) -- [Extended Events overview](/sql/relational-databases/extended-events/extended-events) - -### Database resource contention - -Ensure that the data source—SQL database—has no resource contentions such as processor bottlenecks, I/O contention, memory pressure, or *tempDB* contention. Also check for locks, waits, deadlocks, and query timeouts. - -> [!TIP] -> Use [automatic tuning](/sql/relational-databases/automatic-tuning/automatic-tuning) for insights into potential query performance problems, recommended solutions, and to automatically fix the identified problems. - -### Thick client or excessive requests - -An app running **Group By**, **Filter By**, or **JOIN** operations at the client side uses processor and memory resources from client devices. Depending on the data size, these operations might take more scripting time at the client side, increasing the [JS heap](#memory-pressure-at-the-client-side) size on the client. This problem increases for an on-premises data source, because each lookup data call travels to the data source through the data gateway. - -In such situations, use the **View** object in SQL database for the **Group By**, **Filter By**, or **JOIN** operations. Views can use selective columns and remove unnecessary columns with big data types such as **NVARCHAR(MAX)**, **VARCHAR(MAX)**, and **VARBINARY(MAX)**. - -> [!TIP] -> This approach also helps address the N+1 query problem. - -### Data size transferred to the client - -By default, a canvas app shows data by using the tables, or views, from the available database objects. Retrieving all columns from a table can result in a slow response, especially when using big data types such as **NVARCHAR(MAX)**. - -Transferring large amounts of data to clients takes time. This transfer also results in more scripting time when there are large amounts of data in the JS heap at the client side, as [described earlier in this article](#memory-pressure-at-the-client-side). - -To reduce the size of data being transferred to the client, use views with the specific columns required for the app and ensure that explicit column selection is enabled, as [described earlier in this article](#too-many-columns-retrieved). - -### Considerations specific to SQL Server on-premises - -The performance of a canvas app using the SQL Server connector with an on-premises data gateway might be affected in various ways. This section lists the common performance issues and resolutions specific to using an on-premises database source. - -#### Unhealthy on-premises data gateway - -Organizations can define multiple nodes for on-premises data gateways. If even one of the nodes is unreachable, data requests to the unhealthy node won't return the result within an acceptable timeframe, or they might cause "unreachable" error messages after waiting for a while. - -Ensure that all on-premises data gateway nodes are healthy and configured with a minimum network latency between the nodes and the SQL instance. - -#### Location of the on-premises data gateway - -A data gateway requires network calls to on-premises data sources to interpret the OData requests. For instance, the data gateway needs to understand the data table schema to translate OData requests into SQL data manipulation language (DML) statements. Extra overhead is added when the data gateway is configured in a separate location with high network latency between the data gateway and the SQL instance. - -In an enterprise environment, having a scalable data gateway cluster is recommended when heavy data requests are expected. Check how many connections are established between the data gateway nodes and the SQL instance. - -By checking the concurrent connections in an on-premises data gateway or a SQL instance, your organization can identify the point where the data gateway needs to be scaled out, and with how many nodes. - -#### Data gateway scalability - -If you expect to access a large volume of data from the on-premises data gateway, just a single node of the on-premises data gateway can become a bottleneck in handling such a large volume of requests. - -A single node of the on-premises data gateway might be sufficient to deal with 200 or fewer concurrent connections. However, if all these concurrent connections are executing queries actively, other requests end up waiting for an available connection. - -For information about ensuring that your on-premises data gateway scales in accordance with the volume of data and requests, go to [Monitor and optimize on-premises data gateway performance](/data-integration/gateway/service-gateway-performance). - -### Considerations specific to Azure SQL Database - -Canvas apps can connect to Azure SQL Database by using the SQL Server connector. A common cause of performance problems when using Azure SQL Database is selecting the wrong tier for your business requirements. - -Azure SQL Database is available in different service tiers, with varied capabilities for matching different business requirements. For more information about tiers, go to [Azure SQL Database documentation](/azure/azure-sql/database/sql-database-paas-overview). - -With heavy data requests, the resources on the tier you select might get throttled as soon as the threshold value is reached. Such throttling compromises the performance of the next set of queries. - -Check the service tier of Azure SQL Database. A lower tier will have some limitations and constraints. From a performance perspective, CPU, I/O throughput, and latency are important. Therefore, we recommend that you check the performance of the SQL database periodically, and check whether resource usage exceeds the threshold. For example, on-premises SQL Server normally sets the threshold of CPU usage to around 75 percent. - -## Performance considerations for the SharePoint connector - -You can use the [SharePoint connector](connections/connection-sharepoint-online.md) to create apps by using data from Microsoft Lists. You can also create canvas apps directly from the list view. Let's take a look at the common performance problems and resolutions for using a SharePoint data source with canvas apps. - -### Too many dynamic lookup columns - -SharePoint supports various data types, including dynamic lookups such as **Person**, **Group**, and **Calculated**. If a list defines too many dynamic columns, it takes more time to manipulate these dynamic columns within SharePoint before returning data to the client running the canvas app. - -Don't overuse the dynamic lookup columns in SharePoint. This overuse can result in avoidable and extra overhead on the SharePoint side for manipulation of data. Instead, you can use static columns to keep email aliases or people's names, for example. - -### Picture column and attachment - -The size of an image and an attached file can contribute to a slow response while retrieving to the client. - -Review your list, and ensure that only necessary columns have been defined. The number of columns in the list affects the performance of the data requests. This is because the matched records, or the records up to the defined data row limits, are retrieved and transmitted back to the client with all the columns defined in the list—even if the app doesn't use all of them. - -To query only the columns used by the app, enable the explicit column selection feature, as [described earlier in this article](#too-many-columns-retrieved). - -### Large lists - -If you have a large list with hundreds of thousands of records, consider partitioning the list or splitting it into several lists based on parameters such as categories, or date and time. - -For instance, your data might be stored in different lists on a yearly or monthly basis. In such a case, you can design the app to let a user select a time window and retrieve the data within that range. - -Within a controlled environment, the performance benchmark has proven that the performance of OData requests against Microsoft Lists or SharePoint is highly related to the number of columns in the list and the number of rows being retrieved (limited by the [data row limit for non-delegable queries](delegation-overview.md#changing-the-limit)). Having fewer columns and a lower data row limit setting can make a canvas app perform better. - -In the real world, though, apps are designed to meet certain business requirements. It might not be quick or simple to reduce the data row limit or the number of columns in a list. However, we recommend that you monitor the OData requests at the client side and tune the data row limit for non-delegable queries and the number of columns in the list. - -## Performance considerations for using Dataverse as the data source - -When you use Microsoft Dataverse as the data source, data requests go to the environment instance directly, without passing through Azure API Management. More information: [Data call flow when connecting to Microsoft Dataverse](execution-phases-data-flow.md#data-call-flow-with-microsoft-dataverse) - -> [!TIP] -> When custom tables are used in Dataverse, additional security configuration might be required for users to be able to view the records with canvas apps. More information: [Security concepts in Dataverse](/power-platform/admin/wp-security-cds), [Configure user security to resources in an environment](/power-platform/admin/database-security), and [Security roles and privileges](/power-platform/admin/security-roles-privileges) - -A canvas app connected to Dataverse might perform slowly if it runs client-heavy scripting such as **Filter By** or **JOIN** client-side instead of server-side. - -Use [Dataverse views](../model-driven-apps/create-edit-views.md) when possible. A view with the required join or filter criteria helps reduce the overhead of using an entire table. For instance, if you need to join tables and filter their data, you can [define a view](../model-driven-apps/create-edit-views.md#how-to-access-the-view-editor-to-create-or-edit-views) by joining them and define only the columns you require. Then you can use this view in your app, which creates this overhead at the server side for the join/filter operation instead of the client side. This method reduces not only the extra operations, but also data transmission. For information about editing filter and sort criteria, go to [Edit filter criteria](../model-driven-apps/edit-filter-criteria.md). - -## Performance considerations for the Excel connector - -The [Excel connector](connections/connection-excel.md) provides connectivity from a canvas app to the data in a table in an Excel file. This connector has limitations compared to other data sources—for example, limited [delegable](delegation-overview.md) functions—which restrict the canvas app to loading data from the table only up to 2,000 records. To load more than 2,000 records, partition your data in different data tables as other data sources. - -Let's take a look at the common performance problems with using Excel as the data source for canvas apps, and how to resolve them. - -### Too many data tables and large data size - -An app can perform slowly when it uses an Excel file that has too many data tables, or data tables that contain an immense amount of data over several columns. An Excel file isn't a relational database or a data source that provides delegable functions. Power Apps has to load data from the defined data tables first, and then uses functions such as **Filter**, **Sort**, **JOIN**, **Group By**, and **Search**. - -Having too many data tables with many rows and columns affects app performance and the client-side overhead because each data table needs to be manipulated within the [JS heap](#memory-pressure-at-the-client-side). This effect also leads to the app's consuming more client-side memory. - -To ensure that your app isn't affected by this problem, define only the columns you need on the data table in an Excel file. - -### Heavy transactions - -Excel isn't a relational database system. Any changes from an app are managed by Excel in the same way as if a user were changing data in an Excel file. If the app has a high number of reads, but fewer CRUD operations, it might perform well. However, if the app makes heavy transactions, it can adversely affect the performance of the app. - -There's no specific threshold value for the number of transactions, because it also depends on the data being manipulated. Several other aspects also affect the app's performance, such as network overhead or the user's device. - -If you have read-only data, you can import such data into the app locally instead of loading it from the data source. For enterprise apps, use data sources such as Dataverse, SQL Server, or SharePoint instead. - -### File size - -You can choose from a wide range of [cloud storage](connections/cloud-storage-blob-connections.md) options with varying—or configurable—storage capacity for the Excel file. However, having a single large Excel file with all tables defined in that file adds extra overhead for the app while it downloads the file and reads data to load at the client side. - -Instead of using one large file, split the data into multiple Excel files with minimal data tables. Then connect to each file only when you need it. This way, loading the data from the data table happens in fragments, reducing the overhead of having many tables or a large dataset. - -### File location - -The geographic location of the data source and its distance from [client locations](slow-performance-sources.md#client-browsers-devices-and-locations) can result in a performance bottleneck for the app and induce network latency. This effect can become amplified when a mobile client has limited bandwidth for connectivity. - -It's better to keep the file near your users (or most users, if you have a global audience) so that the file can be downloaded quickly. - -## Next steps - -[Tips and best practices to improve canvas app performance](performance-tips.md) - -### See also - -[Understand canvas app execution phases and data call flow](execution-phases-data-flow.md)
    -[Common sources of slow performance for a canvas app](slow-performance-sources.md)
    -[Common issues and resolutions for Power Apps](/troubleshoot/power-platform/power-apps/common-issues-and-resolutions)
    -[Troubleshooting startup issues for Power Apps](/troubleshoot/power-platform/power-apps/troubleshoot-power-query-issues) - - -[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/canvas-apps/component-properties.md b/powerapps-docs/maker/canvas-apps/component-properties.md index 81c52edcb3..3077b585c6 100644 --- a/powerapps-docs/maker/canvas-apps/component-properties.md +++ b/powerapps-docs/maker/canvas-apps/component-properties.md @@ -1,11 +1,11 @@ --- -title: Canvas component properties (preview) +title: Canvas component properties description: Using properties in canvas components. author: jorisdg ms.subservice: canvas-developer -ms.topic: article -ms.date: 01/07/2025 -ms.author: jorisde +ms.topic: how-to +ms.date: 06/6/2025 +ms.author: mamali ms.reviewer: mkaur search.audienceType: - maker @@ -13,26 +13,24 @@ search.app: - PowerApps contributors: - jorisdg + - mamali --- -# Canvas component properties (preview) +# Canvas component properties -[Canvas components](./create-component.md) allow makers to create different types of properties to relay values or logic between the component and the app that is hosting the component. Properties are an essential part of creating interactive and reusable components. +[Canvas components](./create-component.md) let makers create different types of properties to pass values or logic between the component and the app that hosts the component. Properties are essential for building interactive, reusable components. -> [!IMPORTANT] -> - This is a preview feature. -> - Preview features aren't meant for production use and might have restricted functionality. These features are subject to [supplemental terms of use](https://go.microsoft.com/fwlink/?linkid=2189520), and are available before an official release so that customers can get early access and provide feedback. ## Prerequisites -Before you can use this feature, it needs to be turned on in your app settings. +This feature is on by default for new apps. For existing apps, you need to turn it on in your app settings. 1. Open your [canvas app for editing](edit-app.md) in Power Apps Studio. On the command bar, select **Settings** > **Updates**. -1. On the **Preview** tab, find and turn on the **Enhanced component properties** settings. +1. On the **New** tab, find and turn on the **Enhanced component properties** setting. ## Types of properties -There are four types of properties available to makers: +There are four types of properties available to makers. 1. [Data properties](component-properties.md#data-property): Data properties pertain to data, like a color or text value. A **Data** property can be set to be **Input** or **Output**, which indicates if the component provides data to the app (**Output**) or the app provides data to the component (**Input**). **Data** properties are the only properties that participate in app data flow. 2. [Function properties](component-properties.md#function-property): Function properties are related to logic, such as performing a calculation based on specific parameters or altering text. A **Function** property can be set to be **Input** or **Output**, which indicates if the component provides a function the app can call (**Output**), or the app provides a function the component can call (**Input**). **Function** properties do not participate in an app's data flow, and cannot use component or app variables. @@ -42,7 +40,7 @@ There are four types of properties available to makers: ### Data property -A data property's usage is easy to imagine. Standard controls in apps typically have several data properties, to set default values, text color, size, etc. Let's look at a simple example where we wish to make properties of a control within the component available to the hosting app. In this example, our component is named `Component1`. We will put a slider control in inside our component. We will have an **Input** property to specify the color from the consuming app, and an **Output** property where the component can tell the app what the current value of the slider is. The following example assumes your component contains a **Slider** control named `Slider`. +A data property's usage is easy to imagine. Standard controls in apps typically have several data properties, to set default values, text color, size, etc. Let's look at a simple example where you want to make properties of a control within the component available to the hosting app. In this example, the component is named `Component1`. Put a slider control inside the component. Add an **Input** property to specify the color from the consuming app, and an **Output** property so the component can tell the app the current value of the slider. This example assumes the component has a **Slider** control named `Slider`. 1. In the property pane of the component, select **New custom property**. 2. On the **New custom property** pane, enter display name `Slider Color`. @@ -50,11 +48,11 @@ A data property's usage is easy to imagine. Standard controls in apps typically 4. Finally, from the **Data type** dropdown, select **Color**. 5. Click **Create**. -Next, select the `Slider1` **Slider** control. Find its **ValueFill** property and in the formula bar, enter `Component1.SliderColor`. `Component1` refers to the name of our component, and `SliderColor` is the name of the property we added previously. +Next, select the `Slider1` **Slider** control. Find its **ValueFill** property and in the formula bar, enter `Component1.SliderColor`. `Component1` is the name of the component, and `SliderColor` is the name of the property you added. -Now our component has a `SliderColor` property which can be set in the consuming app, to pass a color into the component to set the slider's **ValueFill** property. +Now the component has a `SliderColor` property that can be set in the consuming app to pass a color into the component and set the slider's **ValueFill** property. -We also wish to provide the value of the slider to the consuming app. To accomplish this, we will add an **Output** property. +You might also want to provide the value of the slider to the consuming app. To do this, add an **Output** property. 1. In the property pane of the component, select **New custom property**. 2. On the **New custom property** pane, enter display name `Slider Value`. @@ -62,36 +60,36 @@ We also wish to provide the value of the slider to the consuming app. To accompl 4. Finally, from the **Data type** dropdown, select **Number**. 5. Click **Create**. -When a **Data** property is **Output**, the component provides the value to the consuming app. To set the formula for this, we need to set the new `SliderValue` property in the component to the **Value** property of the slider. +When a **Data** property is **Output**, the component provides the value to the consuming app. To set the formula, set the new `SliderValue` property in the component to the **Value** property of the slider. 1. In the property pane of the component, click on the `Slider Value` property. 2. In the formula bar, replace the default value of `100` with the following formula: `Slider1.Value`. -Now our component's `SliderValue` property will reflect the value of the slider inside the component, which can then be read from the consuming app. +Now the component's `SliderValue` property reflects the value of the slider inside the component, which the consuming app can read. ### Function property -A function property contains an expression that returns a value. Typically, the function takes some arguments which it uses to calculate or determine the value to return. +A function property contains an expression that returns a value. Typically, the function takes arguments that it uses to calculate the value to return. > [!NOTE] > Function properties currently cannot access variables or component values and properties, and cannot trigger data flow. Any required values have to be passed in as arguments. An **Output** function is a simple way to create a custom function for Power Apps. The component defines an **Output** function with an expression that takes some arguments and returns a value. This function can then be used in an app using the component's name (say `Component1`) by calling `Component1.MyFunction(arg1, arg2)`. -An **Input** function is a way for a consuming app to provide logic to a component, similar to a function pointer or callback function. For example, your component may be dealing with people's names and have an input function with arguments `firstname` and `lastname` and respects a string back. The app could define the function expression to return `$"{firstname} {lastname}"` or it could choose to define an expression for `$"{lastname}, {firstname}"`. The component can just call the function the app maker has provided, and use the returned string. +An **Input** function lets a consuming app provide logic to a component, similar to a function pointer or callback function. For example, if the component works with people's names, it can have an input function with arguments `firstname` and `lastname` and expects a string back. The app can define the function expression to return `$"{firstname} {lastname}"` or `$"{lastname}, {firstname}"`. The component calls the function the app maker provides and uses the returned string. ### Action property -Action properties are similar to function properties of type **Output**, but they allow side-effect formulas, and expression chaining. A component could have an action property named `AddRecord` that allows the app to add a record to a collection inside the component, or a `Reset` action that clears variables or collections inside the component. +Action properties are similar to function properties of type **Output**, but they allow side-effect formulas and expression chaining. A component can have an action property named `AddRecord` that lets the app add a record to a collection inside the component, or a `Reset` action that clears variables or collections inside the component. -In the example of the slider examples used for the **Data property** earlier, we can introduce an action property called `ResetValue` to set the slider back to its default value. We can use the formula `Reset( Slider1 )` for this. Now, instances of our component in the app can call `Component1.ResetValue()` to set the slider back to the default value. +In the earlier slider example for the **Data property**, you can add an action property called `ResetValue` to set the slider back to its default value. Use the formula `Reset( Slider1 )` for this. Now, instances of the component in the app can call `Component1.ResetValue()` to set the slider back to the default value. ### Event property -There are many common **Event**-type properties, effectively input behavior function properties, in standard controls. **OnSelect** on the button control is the most obvious example. A component could define any number of event properties, and call these events like a function. For example, a component that has a button control could have an event property named `OnButtonClicked`. In the button control's **OnSelect** the component can call its `Component1.OnButtonClicked()` property. A consuming app can then define its own logic for this property, to act when the button inside the component is pressed. +Many standard controls have common **Event**-type properties, which are input behavior function properties. **OnSelect** on the button control is a common example. A component can define event properties and call these events like a function. For example, a component with a button control can have an event property named `OnButtonClicked`. In the button control's **OnSelect**, the component can call its `Component1.OnButtonClicked()` property. A consuming app can define its own logic for this property to act when the button inside the component is pressed. ## Default values for properties or arguments -Default values can provide a default value for an argument or property in case none is set. This doesn't makes sense for some types of properties. However, in some cases they can be used to provide an expected schema for a record. By providing a default record, a record type is established as the expected schema. +Default values give an argument or property a value if none is set. This doesn't make sense for some types of properties. In some cases, you can use default values to show the expected schema for a record. By providing a default record, you set the record type as the expected schema. -For example, an **Action** property named `AddRecord` accepts a record to be added to a local collection. To provide the schema of the expected record, a maker has to add a default value for this `AddRecord` property's argument. +For example, an **Action** property named `AddRecord` takes a record to add to a local collection. To show the schema of the expected record, add a default value for the `AddRecord` property's argument. diff --git a/powerapps-docs/maker/canvas-apps/connections-list.md b/powerapps-docs/maker/canvas-apps/connections-list.md index 74f1726476..2cf2059401 100644 --- a/powerapps-docs/maker/canvas-apps/connections-list.md +++ b/powerapps-docs/maker/canvas-apps/connections-list.md @@ -6,7 +6,7 @@ ms.topic: overview ms.custom: canvas ms.collection: get-started ms.reviewer: mkaur -ms.date: 10/30/2024 +ms.date: 06/26/2025 ms.subservice: canvas-maker ms.author: lanced search.audienceType: @@ -19,43 +19,43 @@ contributors: # Overview of connectors for canvas apps -Data is at the core of most apps, including the data you build in Power Apps. Data is stored in a *data source*, and you bring that data into your app by creating a *connection*. The connection uses a specific *connector* to talk to the data source. Power Apps has connectors for many popular services and on-premises data sources, including SharePoint, SQL Server, Office 365, Salesforce, and Twitter. To get started adding data to a canvas app, see [Add a data connection in Power Apps](add-data-connection.md). +Data is at the core of most apps, including apps you build in Power Apps. Data is stored in a *data source*, and you bring that data into your app by creating a *connection*. The connection uses a specific *connector* to talk to the data source. Power Apps has connectors for many popular services and on-premises data sources, including SharePoint, SQL Server, Office 365, Salesforce, and Twitter. To get started adding data to a canvas app, see [Add a data connection in Power Apps](add-data-connection.md). A connector might provide **tables** of data or **actions**. Some connectors provide only tables, some provide only actions, and some provide both. Also your connector might be either a standard or custom connector. > [!NOTE] - > It's recommended to keep the number of connectors in a canvas app to a maximum of 10 and connection references to no more than 20. Going beyond these limits may lead to longer loading times for users when launching the app and could cause issues when saving the app. +> Keep the number of connectors in a canvas app to a maximum of 10, and connection references to no more than 20. Going beyond these limits can lead to longer loading times for users when launching the app and can cause issues when saving the app. ## Tables -If your connector provides tables, you add your data source, and then select the table in the data source that you want to manage. Power Apps both retrieve table data into your app and updates data in your data source automatically for you. For example, you can add a data source that contains a table named **Lessons** and then set the **Items** property of a control, such as a gallery or a form, to this value in the formula bar: +If your connector provides tables, add your data source, and then select the table in the data source that you want to manage. Power Apps retrieves table data into your app and updates data in your data source automatically. For example, add a data source that has a table named **Lessons**, and then set the **Items** property of a control, such as a gallery or a form, to this value in the formula bar: - ![Plain data source Items property.](./media/connections-list/ItemPropertyPlain.png) +![Plain data source Items property.](./media/connections-list/ItemPropertyPlain.png) -You can specify the data that your app retrieves by customizing the **Items** property of the control that shows your data. Continuing the previous example, you can sort or filter the data in the **Lessons** table by using that name as an argument for the **Search** and **SortByColumn** functions. In this graphic, the formula to which the **Items** property is set specifies that the data is sorted and filtered based on the text in **TextSearchBox1**. +Specify the data that your app retrieves by customizing the **Items** property of the control that shows your data. Continuing the previous example, sort or filter the data in the **Lessons** table by using that name as an argument for the **Search** and **SortByColumn** functions. In this graphic, the formula set for the **Items** property specifies that the data is sorted and filtered based on the text in **TextSearchBox1**. - ![Expanded data source Items property.](./media/connections-list/ItemPropertyExpanded.png) +![Expanded data source Items property.](./media/connections-list/ItemPropertyExpanded.png) -For more information about how to customize your formula with tables, see these articles: +For more information about customizing your formula with tables, see these articles: - [Understand data sources in Power Apps](working-with-data-sources.md)
    - [Generate an app from Excel data](get-started-create-from-data.md)
    - [Create an app from scratch](get-started-create-from-blank.md)
    - [Understand tables and records in Power Apps](working-with-tables.md) +[Understand data sources in Power Apps](working-with-data-sources.md)
    +[Generate an app from Excel data](get-started-create-from-data.md)
    +[Create an app from scratch](get-started-create-from-blank.md)
    +[Understand tables and records in Power Apps](working-with-tables.md) - > [!NOTE] - > To connect to data in an Excel workbook, it must be hosted in a cloud-storage service such as OneDrive. For more information, see [Connect to cloud-storage from Power Apps](connections/cloud-storage-blob-connections.md). +> [!NOTE] +> To connect to data in an Excel workbook, host it in a cloud storage service like OneDrive. For more information, see [Connect to cloud-storage from Power Apps](connections/cloud-storage-blob-connections.md). ## Actions -If your connector provides actions, you must still select your data source as you did before. Instead of selecting a table as the next step, however, you manually connect a control to an action by editing the **Items** property of the control that will show your data. The formula to which you set the **Items** property specifies the action that retrieves data. For example, the app doesn't retrieve any data if you connect to Yammer and then set the **Items** property to the name of the data source. To populate a control with data, specify an action such as **GetMessagesInGroup(5033622).messages**. +If your connector provides actions, select your data source as you did before. Instead of selecting a table as the next step, manually connect a control to an action by editing the **Items** property of the control that shows your data. The formula you set for the **Items** property specifies the action that retrieves data. For example, the app doesn't retrieve any data if you connect to Yammer and then set the **Items** property to the name of the data source. To populate a control with data, specify an action such as **GetMessagesInGroup(5033622).messages**. ![Action data source Items property.](./media/connections-list/ItemPropertyAction.png) -If you need to handle custom data updates for action connectors, build a formula that includes the **Patch** function. In the formula, identify the action and the fields that bind to the action. +To handle custom data updates for action connectors, build a formula that includes the **Patch** function. In the formula, identify the action and the fields that bind to the action. > [!NOTE] -> For action-based connectors, galleries and other controls don't page in more data automatically the same way they do for tabular connectors. For instance, if you bind a tabular data source to a gallery then it will retrieve the first set or page of records (e.g., 100 records.) And, then it will page in more data as the control requests it. For an action based connector however, it will retrieve a "page" of data. But if the data requested exceeds the size for a page of data, then the control won't automatically fetch the next page. +> For action-based connectors, galleries and other controls don't page in more data automatically like they do for tabular connectors. For example, if you bind a tabular data source to a gallery, it retrieves the first set or page of records (for example, 100 records), and then pages in more data as the control requests it. For an action-based connector, it retrieves a "page" of data, but if the data requested exceeds the page size, the control doesn't automatically get the next page. For more information about how to customize your formula for custom updates, see these articles: @@ -66,40 +66,41 @@ Dynamic schema is a common type of result for action based connectors. Dynamic s > [!NOTE] > The [connector documentation](/connectors) shows dynamic schema results with this message **"The outputs of this operation are dynamic."** as the return value. -For more information about how to work with dynamic schema in Power Apps, see [Working with Untyped and Dynamic objects](untyped-and-dynamic-objects.md) for an overview and [Connect to Azure DevOps from Power Apps](connections/azure-devops.md) for a detailed example. +For more information about how to work with dynamic schema in Power Apps, see [Working with Dynamic values](untyped-and-dynamic-objects.md) for an overview and [Connect to Azure DevOps from Power Apps](connections/azure-devops.md) for a detailed example. ## Popular connectors -This table has links to more information about our most popular connectors. For a complete list of connectors, see [All connectors](/connectors/connector-reference/). +This table links to more information about popular connectors. For a complete list, see [All connectors](/connectors/connector-reference/). -|   |   | -| --- | --- | -| [**Microsoft Dataverse**](connections/connection-common-data-service.md) |[**Cloud storage**](connections/cloud-storage-blob-connections.md) ** +|   |   | +| --- | --- | +| [**Microsoft Dataverse**](connections/connection-common-data-service.md) | [**Cloud storage**](connections/cloud-storage-blob-connections.md) ** | | [**Dynamics AX**](connections/connection-dynamicsax.md)|[**Excel**](connections/connection-excel.md)| | [**Microsoft Translator**](connections/connection-microsoft-translator.md)| [**Office 365 Outlook**](connections/connection-office365-outlook.md)| | [**Office 365 Users**](connections/connection-office365-users.md) |[**Oracle**](connections/connection-oracledb.md)| | [**Power BI**](connections/connection-powerbi.md) |[**SharePoint**](connections/connection-sharepoint-online.md) | | [**SQL Server**](connections/sql-connection-overview.md) |[**Twitter**](connections/connection-twitter.md) | -** Applies to Azure Blob, Box, Dropbox, Google Drive, OneDrive, and OneDrive for Business +** Applies to Azure Blob, Box, Dropbox, Google Drive, and OneDrive. ## Standard and custom connectors -Power Apps provides *standard* connectors for many commonly used data sources. If Power Apps has a standard connector for the type of data source that you want to use, you should use that connector. If you want to connect to other types of data sources, such as a service that you built, see [Register and use custom connectors](../canvas-apps/register-custom-api.md). +Power Apps provides *standard* connectors for many commonly used data sources. If Power Apps has a standard connector for the type of data source you want to use, use that connector. To connect to other types of data sources, like a service you built, see [Register and use custom connectors](../canvas-apps/register-custom-api.md). ## All standard connectors -Standard connectors don't require special licensing. For more information, see [Power Apps Plans](https://powerapps.microsoft.com/pricing/). +Standard connectors don't require special licensing. For more information, see [Power Apps plans](https://powerapps.microsoft.com/pricing/). -You can ask questions about a specific connector in the [Power Apps forums](https://powerusers.microsoft.com/t5/PowerApps-Community/ct-p/PowerApps1), and you can suggest connectors that you want to add or other improvements to make in [Power Apps Ideas](https://ideas.powerapps.com/). +Ask questions about a specific connector in the [Power Apps forums](https://powerusers.microsoft.com/t5/PowerApps-Community/ct-p/PowerApps1), and suggest connectors you want to add or other improvements in [Power Apps Ideas](https://ideas.powerapps.com/). ## Security and types of authentication -As you author your app and create a connection to a data source, you might see that your choice of connector allows you to use different ways to authenticate. For instance, the SQL Server connector allows you to use Microsoft Entra Integrated, SQL Server Authentication, and Windows Authentication. Each type of authentication has different levels of security associated with it. It's important to understand what information and rights you share with users who use your application. The primary example in this article is SQL Server, however the principles apply to all types of connections. +As you author your app and create a connection to a data source, you might see that your choice of connector allows you to use different ways to authenticate. For instance, the SQL Server connector allows you to use Microsoft Entra Integrated, SQL Server Authentication, and Windows Authentication. Each type of authentication has different levels of security associated with it. It's important to understand what information and rights you share with users who use your application. The primary example in this article is SQL Server however, the principles apply to all types of connections. > [!NOTE] -> - For detailed information about security considerations when using a relational database server (such as Microsoft SQL Server, or Oracle) as the data source for an app, see [Use Microsoft SQL Server securely with Power Apps](connections\sql-server-security.md). -> - Power Apps doesn't support **External member** identities. For more information, see [Properties of an Microsoft Entra B2B collaboration user](/azure/active-directory/external-identities/user-properties). +> - For detailed information about security considerations when using a relational database server, such as Microsoft SQL Server or Oracle, as the data source for an app, see [Use Microsoft SQL Server securely with Power Apps](connections\sql-server-security.md). +> - Power Apps doesn't support **External member** identities. For more information, see [Properties of a Microsoft Entra B2B collaboration user](/azure/active-directory/external-identities/user-properties). +> - Gateway selection is not supported for custom connectors that use the anonymous authentication type. ### Microsoft Entra ID @@ -111,25 +112,26 @@ This type of connection is also secure. For example, Twitter uses this type of a ### Shared connections / Secure Implicit Connections -In a shared connection, the user name and password for the connection is supplied by the Power Apps author at the time the data source is created in the application. The connection authentication to the data source is then **Implicitly Shared** with end users. Once the application is published, the connection is also published and available to your users. +In a shared connection, the user name and password for the connection is supplied by the Power Apps author at the time the data source is created in the application. The connection authentication to the data source is then **Implicitly Shared** with end users. Once the application is published, the connection is also published and available to your users. + +Before January 2024, your end users could take the connection that is shared with them and create separate new applications. Your users can't see the user name or password, but the connection would be available to them. However, **after January 2024, all newly created shared connections are secured.** The old apps must be republished to be secure. The connection is no longer shared with end users. The published Power App talks to a connection proxy. The connection proxy only talks to the specific Power App for which it's linked. The connection proxy limits the actions that are sent to the connections to the ones in the Power App **{Get, Put/Patch, Delete}** for a given data source. If you have an app using the connections published before January 2024, you should republish your application and unshare any connections with end users that shouldn't have them. -Before January 2024, your end users could take the connection that is shared with them and create separate new applications. Your users can't see the user name or password, but the connection would be available to them. However, **after January 2024, all newly created shared connections are secured.** Note that old apps must be republished to be secure. The connection is no longer shared with end users. The published Power App talks to a connection proxy. The connection proxy only talks to the specific Power App for which it's linked. The connection proxy limits the actions that are sent to the connections to the ones in the Power App **{Get, Put/Patch, Delete}** for a given data source. If you have an app using the connections published before January 2024, you should republish your application and unshare any connections with end users that shouldn't have them. +In SQL Server, an example this type of connection is **SQL Server Authentication**. Many other database data sources provide a similar capability. When you publish your application, your users don't need to supply a unique user name and password. -In SQL Server, an example this type of connection is **SQL Server Authentication**. Many other database data sources provide a similar capability. When you publish your application, your users don't need to supply a unique user name and password. +> [!NOTE] +> **You do not have correct permissions to use this connection** is an error message your end-users may encounter in the consent dialog. There are two situations that may cause this. First, the application may have a shared implicit connection that **isn't** a secure implicit connection. Sharing the connection with the end user resolves this issue but is **not** recommended because all shared connections should be secure implicit connections. The author should convert all connections in the application to be secure implicit connections to resolve this issue. Second, the connection may already be a secure implicit connection. Republishing may resolve this issue. If it doesn't, then a product bug should be filed. #### Notification to update your apps (secure implicit connections) -If you have applications that might be upgraded to use this feature then you see a message on the Apps page. It indicates the number of apps that need your attention. +If you have applications that might be upgraded to use this feature then you see a message on the Apps page. It indicates the number of apps that need your attention. - > [!div class="mx-imgBorder"] - > ![Notification to update your apps.](./media/connections-list/attention-alert.png) +![Notification to update your apps.](./media/connections-list/attention-alert.png) -Select the link and it opens a side panel that lists all of the apps that need attention. +Select the link and it opens a side panel that lists all of the apps that need attention. - > [!div class="mx-imgBorder"] - > ![Side panel.](./media/connections-list/app-needs-attention.png) +![Side panel.](./media/connections-list/app-needs-attention.png) -Select the *open* icon to the right of the app name to open and republish it. Continue with the following directions. +Select the *open* icon to the right of the app name to open and republish it. Continue with the following directions. #### Enable secure implicit connections for an existing app @@ -145,15 +147,13 @@ Once the app is published follow these steps to verify that sharing works correc - Check if connections are shared with co-owners. If you don't want an end-user to get a connection, then uncheck the **Co-owner** checkbox. - > [!div class="mx-imgBorder"] - > ![Uncheck co-owner.](./media/connections-list/co-owner-property.png) +![Uncheck co-owner.](./media/connections-list/co-owner-property.png) - To verify the feature works correctly, share the app with a different user who isn't an owner. Once you share the app, check the **Connections** list in the **Dataverse** tab in [Power Apps](https://make.powerapps.com) for that user. Verify that the user doesn't have a connection available. - Open the **Sharing** panel to change the end-user's right to the connection. Choosing the **X** removes the user's access to the connection. - > [!div class="mx-imgBorder"] - > ![Can Use / Revoke.](./media/connections-list/can-use-revoke.png) +![Can Use / Revoke.](./media/connections-list/can-use-revoke.png) #### Use apps with a new secure implicit connection @@ -166,7 +166,7 @@ When your app is republished and shared, then end-users don't have access to the 3. For tabular connectors, we only limit CRUD actions such as Get, Post, Put, or Delete. If you have permissions to **Put**, then you have access to **Post**. 4. Action based connectors limit based on the specific API being used in the application. 5. Warnings are still enabled in sharing. The warning around implicitly shared connections still warns while in preview. However, your connection with this feature is secure – despite the warning. -6. Publishing to an entire tenant, as opposed to specific groups or individuals isn't supported. +6. Publishing to an entire tenant, as opposed to specific groups or individuals isn't supported. 7. There's a known issue when importing an implicitly shared secure connection via a connection reference. The security isn't set properly in the target environment. 8. There's a known issue importing a solution using a service principal, causing import failure. A workaround is to share the connection with the service principal. @@ -176,55 +176,53 @@ This type of connection isn't secure because it doesn't rely on end-user authent ## Data sources in solutions -Solutions are used for [application lifecycle management](/power-platform/alm/overview-alm) and provide other capabilities for managing the lifecycle of **data sources**. If a canvas app is in a solution, [connection references](../data-platform/create-connection-reference.md) and [environment variables](../data-platform/environmentvariables.md) might be created to store information about the data sources. This process ensures data sources can be changed or re-established when solutions are migrated to different environments. +Solutions help with [application lifecycle management](/power-platform/alm/overview-alm) and offer other ways to manage the lifecycle of **data sources**. If a canvas app is in a solution, [connection references](../data-platform/create-connection-reference.md) and [environment variables](../data-platform/environmentvariables.md) can be created to store information about the data sources. This setup makes it easy to change or reconnect data sources when you move solutions to different environments. ## Rename data sources in apps -To learn about renaming data sources in an app, and the difference between tabular and action-based data sources, go to [Rename Power Apps action-based data sources](rename-data-source.md). +Learn how to rename data sources in an app, and understand the difference between tabular and action-based data sources. For more information, see [Rename Power Apps action-based data sources](rename-data-source.md). ## Connection consent dialog When users open an app that uses connectors for the first time, they see a "connection consent" dialog for the following purposes. 1. To inform users about the data sources accessed by the app. +2. To outline the actions, a connector might or might not perform in an app. For example, for apps using the **Office 365 Users** connector: -1. To outline the actions, a connector might or might not perform in an app. For example, for apps using the **Office 365 Users** connector: - - - This app is able to: - - Read your full user profile - - Read the full profile of all users - - The app can't: - - Modify or delete any user-profile information - -1. To capture end-user consent to connect to the data sources that the app uses. + - This app is able to: + - Read your full user profile + - Read the full profile of all users + - The app can't: + - Modify or delete any user-profile information -1. To facilitate manual end-user authentication, when needed. +3. To capture end-user consent to connect to the data sources that the app uses. +4. To facilitate manual end-user authentication, when needed. For some connections, Power Platform can automatically authenticate a user to access a data source. However, if the automatic sign-in fails, this dialog prompts users to fix a connection by manually signing in. Power Platform can only attempt automatic sign-in for a connection when a data source preauthorizes Microsoft’s Azure API connections service principal, granting it permission to perform single sign-on for a user when a connection is created. For more information on single sign-on, see [What is single sign-on (SSO)?](/azure/active-directory/manage-apps/what-is-single-sign-on) -Note that for model driven apps that use custom pages, when there are multiple custom pages in an app, the consent dialog asks for data permissions for all of the connectors in all the custom pages even if they aren't opened. +For model-driven apps that use custom pages, when there are multiple custom pages in an app, the consent dialog asks for data permissions for all of the connectors in all the custom pages even if they aren't opened. -The following image is an example of the connection consent dialog for an app connecting to a SharePoint site. +The following image is an example of the connection consent dialog for an app connecting to a SharePoint site. ![Power Apps consent dialog](./media/connections-list/power_apps_consent_dialog.png) For select connectors, admins can suppress this dialog, and consent on behalf of end users to connect to a data source. The following table explains which types of connectors the consent dialog might be suppressed for an app. > [!NOTE] -> If an admin suppresses the consent dialog but the platform can’t perform single-sign-on for an end-user, the dialog will be presented to the user when they launch the app. +> If an admin suppresses the consent dialog but the platform can’t perform single-sign-on for an end-user, the dialog is presented to the user when they launch the app. -| Connector type | Consent dialog suppressible? | Reference | -|----------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------|-------------------------| -| Microsoft connectors that support single sign-on (such as SharePoint, Office 365 users) | Yes | [Power Apps admin cmdlet](/powershell/module/microsoft.powerapps.administration.powershell/set-adminpowerappapistobypassconsent) | -| Connector accessing a non-Microsoft, partner service, such as Salesforce | No | Not applicable | -| Custom connectors using OAuth with Microsoft Entra ID as the identity provider. These custom connectors are built by organizations, and are only accessible by the users within the organization (for example, built by Contoso for only Contoso users) | Yes | [Manage Connections](add-manage-connections.md#manage-the-consent-dialog-appearance-for-custom-connectors-using-microsoft-entra-id-oauth) | +| Connector type | Consent dialog suppressible? | Reference | +|---|---|---| +| Microsoft connectors that support single sign-on (such as SharePoint, Office 365 users) | Yes | [Power Apps admin cmdlet](/powershell/module/microsoft.powerapps.administration.powershell/set-adminpowerappapistobypassconsent) | +| Connector accessing a non-Microsoft, partner service, such as Salesforce | No | Not applicable | +| Custom connectors using OAuth with Microsoft Entra ID as the identity provider. These custom connectors are built by organizations, and are only accessible by the users within the organization (for example, built by Contoso for only Contoso users) | Yes | [Manage Connections](add-manage-connections.md#manage-the-consent-dialog-appearance-for-custom-connectors-using-microsoft-entra-id-oauth) | Microsoft Power Platform is only able to suppress the consent dialog for connections to data sources where: 1. There isn’t an obligation by the data source to show an explicit consent UI. -1. The data source preauthorizes Microsoft’s Azure API connections service principal to enable single-sign-on. -1. An admin configures an app to suppress the consent for the preceding connections. +2. The data source preauthorizes Microsoft’s Azure API connections service principal to enable single-sign-on. +3. An admin configures an app to suppress the consent for the preceding connections. -The pre-authorization of Microsoft’s Azure API connections service principal exists for Microsoft's first-party data sources, and might be configured by custom applications registered in a Microsoft Entra tenant that are used by custom connectors. An admin manages consent suppression on a per-app basis (as opposed to connector basis), so suppression is managed at the most granular app experience level—this level of granularity prevents consent suppression for an organization’s "approved apps" from inadvertently suppressing consent for apps that aren't approved or reviewed. +The preauthorization of Microsoft’s Azure API connections service principal exists for Microsoft's first-party data sources, and might be configured by custom applications registered in a Microsoft Entra tenant that are used by custom connectors. An admin manages consent suppression on a per-app basis (as opposed to connector basis), so suppression is managed at the most granular app experience level—this level of granularity prevents consent suppression for an organization’s "approved apps" from inadvertently suppressing consent for apps that aren't approved or reviewed. [!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/canvas-apps/connections/azure-devops.md b/powerapps-docs/maker/canvas-apps/connections/azure-devops.md index 4b9962b1ec..a3493aed59 100644 --- a/powerapps-docs/maker/canvas-apps/connections/azure-devops.md +++ b/powerapps-docs/maker/canvas-apps/connections/azure-devops.md @@ -4,7 +4,7 @@ description: See how to connect to Azure DevOps projects, display the queries an author: lancedMicrosoft ms.topic: reference ms.custom: canvas -ms.date: 03/17/2022 +ms.date: 06/19/2025 ms.subservice: canvas-maker ms.author: lanced ms.reviewer: mkaur @@ -17,192 +17,187 @@ contributors: # Connect to Azure DevOps from Power Apps -Power Apps connector for [Azure DevOps](/connectors/visualstudioteamservices/) allows you to work with Azure DevOps instance. You can view Azure DevOps queries, select work items based on different work item types, and view, or edit details all from inside a canvas app that connects to Azure DevOps. +The Power Apps connector for [Azure DevOps](/connectors/visualstudioteamservices/) lets you work with your Azure DevOps instance. View Azure DevOps queries, select work items by type, and view or edit details—all from inside a canvas app connected to Azure DevOps. > [!TIP] > For a complete list of all actions, see [Azure DevOps connector actions](/connectors/visualstudioteamservices/#actions). -The objective of this article is to guide you in building a canvas app that can connect with Azure DevOps to gather a list of queries and interact with the work items in the project. +This article guides you through building a canvas app that connects to Azure DevOps to get a list of queries and interact with work items in your project. ## Prerequisites -The following requirements are necessary: +You need the following: -- A Power Apps license. If you don't have a license, use a [30-day trial](../../signup-for-powerapps.md), or sign up for a [developer plan](../../developer-plan.md) for non-production use. -- If you're new to Power Apps, familiarize yourself with Power Apps basics by [generating an app](../get-started-test-drive.md) and then customizing that app's [controls](../add-configure-controls.md), [gallery](../add-gallery.md), [forms](../working-with-forms.md), and [cards](../working-with-cards.md). -- A [blank canvas app](../create-blank-app.md) to use to connect to Azure DevOps. -- To create the app featured in this article, you'll require an [Azure DevOps](/azure/devops/user-guide/what-is-azure-devops) instance that includes an organization, a project, and a shared query with a few sample work items available for editing. -- The Azure DevOps instance must be enabled for **Third-party application access via OAuth**. For more information, see [Manage access policies for Azure DevOps](/azure/devops/organizations/accounts/change-application-access-policies#manage-a-policy). +- A Power Apps license. If you don't have one, use a [30-day trial](../../signup-for-powerapps.md), or sign up for a [developer plan](../../developer-plan.md) for non-production use. +- If you're new to Power Apps, learn the basics by [generating an app](../get-started-test-drive.md), then customize the app's [controls](../add-configure-controls.md), [gallery](../add-gallery.md), [forms](../working-with-forms.md), and [cards](../working-with-cards.md). +- A [blank canvas app](../create-blank-app.md) to connect to Azure DevOps. +- To create the app in this article, you need an [Azure DevOps](/azure/devops/user-guide/what-is-azure-devops) instance with an organization, a project, and a shared query that has a few sample work items available for editing. +- The Azure DevOps instance must let **Third-party application access via OAuth**. For more information, see [Manage access policies for Azure DevOps](/azure/devops/organizations/accounts/change-application-access-policies#manage-a-policy). ## Step 1 - Add Azure DevOps data source -To connect to Azure DevOps, [edit](../edit-app.md) the [blank canvas app](../create-blank-app.md), and add **Azure DevOps** data source. +To connect to Azure DevOps, [edit](../edit-app.md) the [blank canvas app](../create-blank-app.md), and add the **Azure DevOps** data source. -> [!div class="mx-imgBorder"] ->![Connect to Azure DevOps.](./media/azure-devops/add-data-source.png "Connect to Azure DevOps") -If you don't have an Azure DevOps connection already, select **Connect** and follow the prompts to provide your details, and then allow the app to connect. +:::image type="content" source="./media/azure-devops/add-data-source.png" alt-text="Screenshot of connecting to Azure DevOps in the data source selection pane."::: + +If you don't have an Azure DevOps connection, select **Connect**, follow the prompts to enter your details, and allow the app to connect. ## Step 2 - List shared queries -In this section, we'll use the [ListQueriesInFolder](/connectors/visualstudioteamservices/#list-queries-within-folder) action for the Azure DevOps connector to list the available queries. +In this section, you use the [ListQueriesInFolder](/connectors/visualstudioteamservices/#list-queries-within-folder) action for the Azure DevOps connector to list the available queries. -1. From the left pane, select **Insert** > **Layout** > **Blank vertical gallery**. +1. In the left pane, select **Insert** > **Layout** > **Blank vertical gallery**. -1. Enter the following formula for the **Items** property of the gallery, replacing the example parameter values as appropriate. +1. Enter the following formula for the **Items** property of the gallery. Replace the example parameter values with your own values. ```power-fx - AzureDevOps.ListQueriesInFolder("Project","Organization","Folder").value + AzureDevOps.ListQueriesInFolder("Project", "Organization", "Folder").value ``` -> [!div class="mx-imgBorder"] ->![List queries in folder using formula added to Items property of the vertical gallery.](./media/azure-devops/list-queries-in-folder.png "List queries in folder using formula added to Items property of the vertical gallery.") +:::image type="content" source="./media/azure-devops/list-queries-in-folder.png" alt-text="Screenshot of list queries in folder using formula added to Items property of the vertical gallery."::: + +The example uses the variables "Project", "Organization", and "Folder". The actual values are in the text boxes below the formula bar (highlighted). You find your Project and Organization values in the URL used to connect to Azure DevOps. The Folder is usually "Shared Queries" or "My Queries". + + +:::image type="content" source="./media/azure-devops/find-azuredevops-project-name.png" alt-text="Screenshot of locating the project and organization name for your Azure DevOps instance."::: -If the example uses the variables "Project", "Organization", and "Folder" and the actual values are in the text boxes below the formula bar (highlighted). You can find your Project and Organization values from the URL used to connect to Azure Dev Ops. The Folder will usually be "Shared Queries" or "My Queries". +If you get the following error in the above formula, [enable third-party app access using OAuth](/azure/devops/organizations/accounts/change-application-access-policies#manage-a-policy) in your Azure DevOps organization, and try again. -> [!div class="mx-imgBorder"] ->![Locate the project and organization name for your Azure Dev Ops instance.](./media/azure-devops/find-azuredevops-project-name.png "Locate the project and organization name for your Azure Dev Ops instance.") +"AzureDevOps.ListQueriesInFolder failed:{\"status\":401,\"message\":\"TF400813:The user 'GUID' isn't authorized to access this resource.\"}" -If you get the following error in the above formula, [enable third-party app access using OAuth](/azure/devops/organizations/accounts/change-application-access-policies#manage-a-policy) in your Azure DevOps organization, and try again.
    -"AzureDevOps.ListQueriesInFolder failed:{"status":401,"message":"TF400813:The user 'GUID' isn't authorized to access this resource."} +1. Set the **Layout** for the gallery to **Title and subtitle**. -1. Select the **Layout** for the gallery to **Title and subtitle**. +1. Choose the fields appropriate for Azure DevOps as **Name** and **FolderOptions** for the title and subtitles. -1. Choose the fields appropriate for Azure Dev Ops as **Name** and **FolderOptions** for the title and subtitles. -> [!div class="mx-imgBorder"] ->![Gallery fields for listing queries.](./media/azure-devops/query-list-fields.png "Gallery fields for listing queries") +:::image type="content" source="./media/azure-devops/query-list-fields.png" alt-text="Screenshot of gallery fields for listing queries."::: ## Step 3 - List work items -Now we use [GetQueryResultsV2](/connectors/visualstudioteamservices/#get-query-results) action for the Azure DevOps connector to list all work items for the selected query. This binds the gallery to the data source. +Use the [GetQueryResultsV2](/connectors/visualstudioteamservices/#get-query-results) action for the Azure DevOps connector to list all work items for the selected query. This action binds the gallery to the data source. -1. Insert another blank vertical gallery, and place it on the right-side of the existing gallery. +1. Insert another blank vertical gallery and place it next to the existing gallery. -1. Enter the following formula for the **Items** property of the gallery, replacing the example parameter values as appropriate. Substitute your Project and Organization names as appropriate. +1. Enter the following formula for the **Items** property of the gallery. Replace the example parameter values with your project and organization names. ```power-fx - AzureDevOps.GetQueryResultsV2("Project", Text(Gallery1.Selected.Id),"Organization").value + AzureDevOps.GetQueryResultsV2("Project", Text(Gallery1.Selected.Id), "Organization").value ``` -> [!div class="mx-imgBorder"] ->![Get query results from existing gallery based on the query selected..](./media/azure-devops/get-query-results.png "Get query results from existing gallery based on the query selected.") -This formula uses the [GetQueryResultsV2](/connectors/visualstudioteamservices/#get-query-results) action with the project name, query ID, and the organization name. The query ID in this example (`Gallery2.Selected.Id`) refers to the query selected from the list of queries available through the gallery added earlier. Replace the gallery name as appropriate. +:::image type="content" source="./media/azure-devops/get-query-results.png" alt-text="Screenshot of get query results from existing gallery based on the query selected."::: +This formula uses the [GetQueryResultsV2](/connectors/visualstudioteamservices/#get-query-results) action with the project name, query ID, and organization name. The query ID in this example (`Gallery2.Selected.Id`) refers to the query selected from the list of queries available through the gallery added earlier. Replace the gallery name as needed. -### Adding untyped return values to your gallery -The returned result of **GetQueryResultsV2** is dynamic. And the values are therefore untyped as well. +### Add dynamic return values to your gallery -> [!div class="mx-imgBorder"] -> ![Show work item fields of title, work item type.](./media/azure-devops/dynamic-return-results-message.png "Get query results from existing gallery based on the query selected.") +The result of **GetQueryResultsV2** is dynamic, so the values are dynamic as well. -However you can access some of the values. Azure Dev Ops returns a basic set of values for all items that are typed. Select the data card in the gallery and insert two text label. Set the text property of the labels as follows: + +:::image type="content" source="./media/azure-devops/dynamic-return-results-message.png" alt-text="Screenshot of work item fields of title, work item type."::: + +But you can access some of the values. Azure DevOps returns a basic set of values for all typed items. Select the data card in the gallery and insert two text labels. Set the text property of the labels as follows: ```power-fx - ThisItem.Value.'System.WorkItemType' - ThisItem.Value.'System.Title' +ThisItem.Value.'System.WorkItemType' +ThisItem.Value.'System.Title' ``` ## Step 4 - Display work items -The app shows a list of all queries, and the list of work items for the selected query. Now we can add an edit form that we'll use to simply display data. +The app shows a list of all queries and the list of work items for the selected query. Now, add an edit form to display data. -1. Arrange the two galleries on screen to make room for the edit form that we add by moving both galleries to the left of the screen. +1. Move both galleries to the left side of the screen to make room for the edit form. -1. Add **Edit form** to the screen, and move it to the right side of the galleries. +1. Add **Edit form** to the screen and move it to the right side of the galleries. - > [!div class="mx-imgBorder"] - > ![Add edit form.](./media/azure-devops/add-edit-form.png "Add edit form.") +:::image type="content" source="./media/azure-devops/add-edit-form.png" alt-text="Screenshot of adding an edit form."::: -1. Set the **DataSource** property of the edit form to `AzureDevOps.GetQueryResultsV2("Project", Text(Gallery1.Selected.Id),"Organization").value`. Substitute your Project and Organization names as appropriate. - +1. Set the **DataSource** property of the edit form to `AzureDevOps.GetQueryResultsV2("Project", Text(Gallery1.Selected.Id),"Organization").value`. Replace "Project" and "Organization" with your project and organization names. 1. Set the **Item** property of the edit form to `Gallery2.Selected`. - This formula sets the **Item** property for the edit form to the work item that's selected in the list of work items. - -1. Select **Edit fields** from the properties pane on the right-side of the screen. +This formula sets the **Item** property for the edit form to the work item that is selected. 1. Select **...** (ellipsis) > **Add a custom card**. - ![Add a custom card.](./media/azure-devops/add-custom-card.png "Add a custom card") - -2. Rearrange the data card within the edit form at the top. +:::image type="content" source="./media/azure-devops/add-custom-card.png" alt-text="Screenshot of adding a custom card in the edit form."::: - :::image type="content" source="media/azure-devops/custom-card-top.png" alt-text="Custom card moved to the top section inside the edit form."::: +1. Move the data card to the top of the edit form. -3. Keeping the custom card selected, insert a **Text input** control. Once selected, the control is added inside the custom card. -4. Increase the size of the text input control. +:::image type="content" source="./media/azure-devops/custom-card-top.png" alt-text="Screenshot of a custom card moved to the top section inside the edit form."::: -> [!div class="mx-imgBorder"] ->![Text input control inside custom card.](./media/azure-devops/text-input-inside-custom-card.png "Text input control inside custom card.") +1. Increase the size of the text input control. -5. Set the **Default** property of the text input control to `Text(ThisItem.Value.'System.Title')`. The Text function 'types' the return as Text. +:::image type="content" source="./media/azure-devops/text-input-inside-custom-card.png" alt-text="Screenshot of a text input control inside a custom card."::: -> [!div class="mx-imgBorder"] -> ![This is text input control referring to title of the work item.](./media/azure-devops/title-custom-card.png "Text input control referring to title of the work item.") +1. Set the **Default** property of the text input control to `Text(ThisItem.Value.'System.Title')`. The Text function returns the value as text. - This formula sets the default text inside the text input control to the **Title** field from the selected Azure DevOps work item. + +:::image type="content" source="./media/azure-devops/title-custom-card.png" alt-text="Screenshot of a text input control referring to the title of the work item."::: + +This formula sets the default text inside the text input control to the **Title** field from the selected Azure DevOps work item. > [!TIP] -> If your Azure DevOps project uses **Description** field with HTML or rich text, you can also use the [Rich text editor](../controls/control-richtexteditor.md) input control instead of the [Text input](../controls/control-text-input.md) or label controls. Using the **Rich text editor** control in this case also helps resolve any issues such as the description being displayed with HTML code instead of plain or rich text. +> If your Azure DevOps project uses the **Description** field with HTML or rich text, use the [Rich text editor](../controls/control-richtexteditor.md) input control instead of the [Text input](../controls/control-text-input.md) or label controls. The **Rich text editor** control helps display the description as rich text instead of HTML code. -6. Repeat the previous steps to add another custom card, with a text input control inside with the **Default** property set to `Text(ThisItem.Value.'System.State')`. +1. Repeat the previous steps to add another custom card, with a text input control inside with the **Default** property set to `Text(ThisItem.Value.'System.State')`. - This formula sets the default text inside the text input control to the **State** field from the selected Azure DevOps work item. +This formula sets the default text inside the text input control to the **State** field from the selected Azure DevOps work item. -7. Rearrange the data cards inside the edit form to create space where we'll add the save icon. +1. Rearrange the data cards inside the edit form to create space for the save icon. -### Adding untyped and dynamic return values to your forms -So far we have been using the Edit form which simplifies the data access story by providing a common DataSource and Item property which all of the data cards in the form can work with. If you use the Edit form, to access the untyped values make sure you set **both** the data source and the item properties as follows: (Substituting in your values for Organization and Project.) +### Add dynamic return values to your forms - ```power-fx - AzureDevOps.GetWorkItemDetails(Gallery2.Selected.Value.'System.Id',Organization, Project, Gallery2.Selected.Value.'System.WorkItemType') - ``` -When you pass the text property "WorkItemType", for instance, "Feature", it allows you to switch from items such as Features and Work Items. Since the set of fields for these items differ from one another, the return type from this call is dynamic. +So far, you use the Edit form, which simplifies data access by providing a common DataSource and Item property for all data cards in the form. To access dynamic values, set **both** the data source and the item properties as follows (replace Organization and Project with your values): -You can access specific values using the common method Text(ThisItem.Value.'System.Id'). Alternatively, you may access them through the more general dynamic response using Text(ThisItem.fields.System_Id). These dynamic value names are not typically documented. To find the correct names for these fields, including non-standard fields, open the monitor tool and examine the data response for the GetWorkItemDetails call. Refer to the image below for further guidance. +```power-fx +AzureDevOps.GetWorkItemDetails(Gallery2.Selected.Value.'System.Id',Organization, Project, Gallery2.Selected.Value.'System.WorkItemType') +``` -If you're not utilizing an Edit form, but instead using a container, then you can retrieve these values by using a formula such as the one below, which retrieves information from a custom team field. +When you pass the text property "WorkItemType", such as "Feature", you can switch between items like Features and Work Items. Because the set of fields for these items differs, the return type from this call is dynamic. +Access specific values using the common method Text(ThisItem.Value.'System.Id'). Alternatively, access them through the more general dynamic response using Text(ThisItem.fields.System_Id). These dynamic value names aren't typically documented. To find the correct names for these fields, including non-standard fields, open the monitor tool and examine the data response for the GetWorkItemDetails call. See the image below for guidance. + +If you aren't using an Edit form but are using a container, retrieve these values with a formula like the one below, which gets information from a custom team field. ```power-fx Text(AzureDevOps.GetWorkItemDetails(Gallery2.Selected.Value.'System.Id',Organization, Project, Gallery2.Selected.Value.'System.WorkItemType').fields.One_custom_CustomField1) ``` -> [!div class="mx-imgBorder"] -> ![Text input control that refers to title of the work item.](./media/azure-devops/monitor-workitem-details.png "Text input control referring to title of the work item.") -> -> + +:::image type="content" source="./media/azure-devops/monitor-workitem-details.png" alt-text="Screenshot of the monitor tool showing work item details."::: + ## Updating values in Azure DevOps -To update a value in Azure Dev ops use the UpdateWorkItem in the OnSelect of a button. +To update a value in Azure DevOps, use the `UpdateWorkItem` function in the `OnSelect` property of a button. ```power-fx AzureDevOps.UpdateWorkItem( - Gallery2.Selected.Value.'System.Id', - Organization, - { description: "This is a new description", - dynamicFields: ParseJSON(JSON({'Custom Field 1': "This is new custom text" })) + Gallery2.Selected.Value.'System.Id', + Organization, + { + description: "This is a new description", + dynamicFields: ParseJSON(JSON({'Custom Field 1': "This is new custom text" })) } -); +) ``` -The formula adds new sample text but you can also use a PowerFx expression. -Ensure that the formula uses lower case for the *non-custom* or built-in field names. For example, when referring to "Description" field, use `description: "This is a new description"` instead of `Description:"This is a new description"`. Incorrect casing might result in the error "400 Required parameter missing for requested operation: 'UpdateWorkItem'". For custom / dynamic values, you can use the normal casing of display field. For instance the field name for the custom field is just the display name 'Custom Field 1'. This naming convention of the return values is specific to Azure DevOps and may differ from other services. +The formula adds new sample text, but you can also use a Power Fx expression. +Make sure the formula uses lowercase for built-in field names. For example, when you refer to the Description field, use `description: "This is a new description"` instead of `Description: "This is a new description"`. Incorrect casing can result in the error "400 Required parameter missing for requested operation: 'UpdateWorkItem'". For custom or dynamic values, use the display name as shown in the UI, such as 'Custom Field 1'. This naming convention is specific to Azure DevOps and might differ from other services. ## Next steps -Play the app. Select a query from the list of queries. And then, choose a work item that you want to update the title or description of. Make a change, and then select the save button. The changes are saved to the Azure DevOps work item. Switch to another query and switch back to see the changes show inside the app. +Run the app. Select a query from the list of queries. Then, choose a work item you want to update the title or description of. Make a change, and then select the save button. The app saves your changes to the Azure DevOps work item. Switch to another query, and then switch back to see the changes in the app. -Similarly, customize the app further or create an app with additional data cards on forms. You can also use display form instead of edit form to just show data inside different data cards. When using display form, ensure you use the [Text label](../controls/control-text-box.md) control to display text. When using rich text or HTML format (such as the **Description** field in Azure DevOps), use the [HTML text](../controls/control-html-text.md) control. For more information about customizing that app, see [controls](../add-configure-controls.md), [gallery](../add-gallery.md), [forms](../working-with-forms.md), and [cards](../working-with-cards.md). +You can also customize the app further or create an app with more data cards on forms. Use a display form instead of an edit form to show data in different data cards. When you use a display form, use the [Text label](../controls/control-text-box.md) control to show text. When you use rich text or HTML format (like the **Description** field in Azure DevOps), use the [HTML text](../controls/control-html-text.md) control. For more information about customizing the app, see [controls](../add-configure-controls.md), [gallery](../add-gallery.md), [forms](../working-with-forms.md), and [cards](../working-with-cards.md). ### See also diff --git a/powerapps-docs/maker/canvas-apps/connections/connection-common-data-service.md b/powerapps-docs/maker/canvas-apps/connections/connection-common-data-service.md index 00d2839102..b10df92dae 100644 --- a/powerapps-docs/maker/canvas-apps/connections/connection-common-data-service.md +++ b/powerapps-docs/maker/canvas-apps/connections/connection-common-data-service.md @@ -5,7 +5,7 @@ author: mduelae ms.topic: reference ms.custom: canvas ms.reviewer: mkaur -ms.date: 3/14/2025 +ms.date: 06/19/2025 ms.subservice: canvas-maker ms.author: lanced search.audienceType: @@ -17,15 +17,15 @@ contributors: # Connect to Microsoft Dataverse -You can securely store your business data in Dataverse and build rich apps in Power Apps so that users can manage that data. You can also integrate that data into solutions that include Power Automate, Power BI, and data from Dynamics 365. +Securely store your business data in Dataverse and build rich apps in Power Apps so users can manage that data. You can also integrate that data into solutions that include Power Automate, Power BI, and data from Dynamics 365. -By default, the app connects to the current environment for Dataverse tables. If your app moves to another environment, the connector connects to data in the new environment. This behavior works well for an app using a single environment or an app that follows an application lifecycle management (ALM) process for moving from development, to test, and then to production. +By default, the app connects to the current environment for Dataverse tables. If your app moves to another environment, the connector connects to data in the new environment. This behavior works well for an app that uses a single environment or follows an application lifecycle management (ALM) process for moving from development, to test, and then to production. -When you add data from Dataverse, you can change the environment, and then select one or more tables. By default, the app connects to data in the current environment. +When you add data from Dataverse, change the environment, and then select one or more tables. By default, the app connects to data in the current environment. ![Default environment.](media/connection-common-data-service/common-data-service-connection-change-environment.png) -If you select **Change environment**, you can specify a different environment to pull data from it instead of or in addition to the current environment. +If you select **Change environment**, specify a different environment to pull data from instead of, or in addition to, the current environment. ![Other environments.](media/connection-common-data-service/common-data-service-connection-select-environment.png) @@ -35,29 +35,29 @@ The name of the selected environment appears under the tables list. ## Visibility and access -When you select **Change environment**, you're presented with a list of environments. Though you might see an environment in the list, the security roles in the environment govern what you can do in that environment. For example, if you don't have read privileges, you aren't able to see the tables and records in the environment. +When you select **Change environment**, you see a list of environments. Even if you see an environment in the list, the security roles in the environment control what you can do there. For example, if you don't have read privileges, you can't see the tables and records in the environment. > [!NOTE] -> Connections listed in the app details pane outside of the app designer show connections that require user consent. Since native Dataverse connections used in the app don't require that additional consent, a native connection won't be in that list. +> Connections listed in the app details pane outside of the app designer show connections that need user consent. Because native Dataverse connections used in the app don't need additional consent, a native connection isn't in that list. ## Power Apps data type mappings -The Microsoft Dataverse connector is more robust than the Dynamics 365 connector and approaching feature parity. The following table lists the data types in Power Apps, and how they map to data types in Dataverse. +The Microsoft Dataverse connector is more robust than the Dynamics 365 connector and is approaching feature parity. The following table lists the data types in Power Apps and how they map to data types in Dataverse. -| Power Apps | Microsoft Dataverse | -|-----------------------------------|---------------------------------------------------------------------------------------------| -| Choice | Choice, Yes/No | -| DateTime | Date Time, Date and Time, Date Only | -| Image | Image | -| Number | Floating Point Number, Currency, Decimal Number, Duration, Language, TimeZone, Whole Number | -| Text | Email, Multiline Text, Phone, Text, Text Area, Ticker Symbol, URL | -| Guid | Unique Identifier | +| Power Apps | Microsoft Dataverse | +| --- | --- | +| Choice | Choice, Yes/No | +| DateTime | Date Time, Date and Time, Date Only | +| Image | Image | +| Number | Floating Point Number, Currency, Decimal Number, Duration, Language, TimeZone, Whole Number | +| Text | Email, Multiline Text, Phone, Text, Text Area, Ticker Symbol, URL | +| Guid | Unique Identifier | ## Power Apps delegable functions and operations for Dataverse -These Power Apps operations, for a given data type, might be delegated to -Dataverse for processing (rather than processing locally within Power Apps). +These Power Apps operations, for a given data type, can be delegated to +Dataverse for processing instead of processing locally within Power Apps. | **Item** | **Number [1]** | **Text [2]** | **Choice** | **DateTime [3]** | **Guid** | |-----------------------------------------------------------------|----------------|--------------|------------|------------------|----------| @@ -79,75 +79,75 @@ Dataverse for processing (rather than processing locally within Power Apps). | UpdateIf/RemoveIf [10] | Yes | \- | \- | No | \- | ### Notes -1. Numeric with arithmetic expressions (for example, `Filter(table, field + 10 > 100)` ) aren't delegable. Language and TimeZone aren't delegable. Casting to a column to a number isn't supported. When a value appears as a number in Power Apps but the back-end data source isn't a simple number such as currency then it isn't delegated. -2. Doesn't support Trim[Ends] or Len. Does support other functions such as Left, Mid, Right, Upper, Lower, Replace, Substitute, etc. Also, casting such as Text(column) isn't supported for delegation. +1. Numeric with arithmetic expressions (for example, `Filter(table, field + 10 > 100)`) aren't delegable. Language and TimeZone aren't delegable. Casting a column to a number isn't supported. If a value appears as a number in Power Apps but the backend data source isn't a simple number, such as currency, then it isn't delegated. +2. Doesn't support Trim[Ends] or Len. Supports other functions like Left, Mid, Right, Upper, Lower, Replace, and Substitute. Also, casting such as Text(column) isn't supported for delegation. 3. DateTime is delegable except for DateTime functions Now() and Today(). -4. CountRows on Dataverse uses a cached value. For non-cached values where the record count is expected to be under 50,000 records, use `CountIf(table, True)`. +4. CountRows on Dataverse uses a cached value. For non-cached values where the record count is under 50,000 records, use `CountIf(table, True)`. 5. For CountRows, ensure that users have appropriate permissions to get totals for the table. -6. All aggregate functions are limited to a collection of 50,000 rows. If needed, use the Filter function to select 50,000. Aggregate functions aren't supported on Views. -7. FirstN isn't supported. -8. `In` is subject to the 15 table query limit of Dataverse. +6. All aggregate functions are limited to a collection of 50,000 rows. If needed, use the Filter function to select 50,000 rows. Aggregate functions aren't supported on views. +7. The FirstN function isn't supported. +8. The `In` operator is subject to the 15-table query limit of Dataverse. 9. Supports comparisons. For example, `Filter(TableName, MyCol = Blank())`. -10. UpdateIf and RemoveIf work locally but simulate delegation to a limit of 500/2000 records. They successively bring down records beyond the non-delegation 500/2000 record limit. Records that meet the If condition are collected. Generally, a maximum of 500/2000 records are collected separately and then changed per execution. However, more records may be updated if the existing local data cache is large as the function may have access to more records for evaluation. +10. UpdateIf and RemoveIf work locally but simulate delegation to a limit of 500 or 2,000 records. They successively bring down records beyond the nondelegation 500 or 2,000 record limit. Records that meet the If condition are collected. Generally, a maximum of 500 or 2,000 records are collected separately and then changed per execution. However, more records can be updated if the existing local data cache is large because the function can access more records for evaluation. ## Call Dataverse actions directly in Power Fx -As a part of the Power Fx language, authors can now directly invoke a Dataverse action within a formula. Both unbound and bound actions are supported. Authors can add a Power Fx `Environment` language object to their app and access Dataverse actions. +As part of the Power Fx language, you can now directly invoke a Dataverse action within a formula. Both unbound and bound actions are supported. Add a Power Fx `Environment` language object to your app to use Dataverse actions. -Authors can work with untyped object fields for both inputs and outputs. On the input side, for instance, many Dataverse actions require an untyped object as an argument. Authors can now pass these arguments in by using ParseJSON to convert a Power Fx record into an untyped object. On the output side, for actions that return untyped objects, you can simply `dot` into returned objects properties. You need to cast specific values for use in specific contexts for use in Power Apps such as a label. +You can work with dynamic fields for both inputs and outputs. For inputs, many Dataverse actions require a dynamic value as an argument. Pass these arguments by using ParseJSON to convert a Power Fx record into a dynamic value. For outputs, if an action returns dynamic values, just use dot notation to access object properties. Cast specific values for use in Power Apps, such as in a label. -Without this feature, it was common for authors to use Power Automate to call Dataverse directly. However, calling Dataverse directly from Power Fx provides significant performance benefits (and ease of use) and should be preferred for direct transactional reads and updates. If you have an app that uses Power Automate to call Dataverse actions, you see a banner suggesting you use this direct action approach instead. +Before this feature, you often used Power Automate to call Dataverse directly. Calling Dataverse from Power Fx gives you significant performance benefits and is easier to use, so use this approach for direct transactional reads and updates. If your app uses Power Automate to call Dataverse actions, you see a banner suggesting you use this direct action approach instead. -Working with untyped fields isn't restricted to Dataverse. It works for all types of connectors and provides basic ad-hoc dynamic schema support. +Working with dynamic fields isn't limited to Dataverse. This feature works with all types of connectors and provides basic ad hoc dynamic schema support. > [!NOTE] -> 1. We do not fully support DV actions in Power Fx commanding (specific to any actions call with parameters.) -> 2. We do not support direct references to an Entity or an Entity collections. -> 3. For parameters of object type that are nested (2 or more levels deep), the second level attributes are treated required in PowerApps. +> 1. DV actions aren't fully supported in Power Fx commanding (for any action call with parameters). +> 2. Direct references to an entity or entity collections aren't supported. +> 3. For parameters of object type that are nested two or more levels deep, Power Apps treats the second-level attributes as required. ### Enable access to Microsoft Dataverse actions -For new apps, this feature is automatically enabled. For apps created previously, you need to enable access to Dataverse actions. +For new apps, this feature is automatically enabled. For apps you created earlier, enable access to Dataverse actions. -For older apps, open your canvas app for editing and navigate to **Settings** > **Upcoming features** > **Retired** and enable Dataverse actions. +For older apps, open your canvas app for editing. Go to **Settings** > **Upcoming features** > **Retired**, and enable Dataverse actions. ### Add the Power Fx Environment language object to your app -To use Dataverse actions in your Power Fx formulas, select **Add data** and search for **Environment** and add it to your application. +To use Dataverse actions in your Power Fx formulas, select **Add data**, search for **Environment**, and add it to your app. -![Searching for the Power Fx Environment object.](media/connection-common-data-service/common-data-service-connection-search-for-environment.png) +![Screenshot of searching for the Power Fx Environment object in the Add data pane.](media/connection-common-data-service/common-data-service-connection-search-for-environment.png) -This adds the Power Fx `Environment` language object to your application. +This step adds the Power Fx `Environment` language object to your app. -![The Power Fx Environment object as a data source.](media/connection-common-data-service/common-data-service-connection-environment-object-added.png) +![Screenshot of the Power Fx Environment object as a data source in the app.](media/connection-common-data-service/common-data-service-connection-environment-object-added.png) -### Accessing Dataverse actions +### Access Dataverse actions -When the Power Fx `Environment` object is added to your application, you can access Dataverse actions by adding `Environment` to your formula and then dotting into the actions. +After you add the Power Fx `Environment` object to your app, access Dataverse actions by adding `Environment` to your formula and then using dot notation for the actions. -![Using the Power Fx Environment object.](media/connection-common-data-service/common-data-service-connection-using-the-Envrionment-PowerFx-object.png) +![Screenshot of using the Power Fx Environment object in a formula.](media/connection-common-data-service/common-data-service-connection-using-the-Envrionment-PowerFx-object.png) -Unbound Dataverse actions are peer level to tables and need the parenting scope of the **Environment** language object. All actions in your environment are available – both system level and custom. Both bound and unbound actions are available. The 2-level call limit was removed. +Unbound Dataverse actions are at the same level as tables and need the parent scope of the **Environment** language object. All actions in your environment are available—both system and custom. Both bound and unbound actions are available. The two-level call limit is removed. -![Using a Dataverse action.](media/connection-common-data-service/common-data-service-connection-hooking-up-an-action-to-a-button.png) +![Screenshot of using a Dataverse action connected to a button.](media/connection-common-data-service/common-data-service-connection-hooking-up-an-action-to-a-button.png) -For more details on how to use Dataverse actions in your formulas, see [Working with untyped and dynamic objects](../untyped-and-dynamic-objects.md). +For more details on how to use Dataverse actions in your formulas, see [Working with dynamic values](../untyped-and-dynamic-objects.md). [!INCLUDE[footer-include](../../../includes/footer-banner.md)] -### Passing Entity type arguments for bound/unbound actions +### Pass entity type arguments for bound and unbound actions -To pass entity type arguments for Dataverse actions, start by setting the entity type argument value to a variable. Additionally, ensure that any missing values such as ***activityId** are filled in. This is particularly important for entities that do not have defined types in the swagger. +To pass entity type arguments for Dataverse actions, set the entity type argument value to a variable. Make sure to fill in any missing values, such as ***activityId**. This step is important for entities that don't have defined types in the swagger. ```power-fx Set(MyArgVar, { - name: first(systemUser).name, - Id: First(systemUser).Id + name: First(systemUser).name, + Id: First(systemUser).Id ... }) ``` -### Rename, refresh, and actions in other environments +### Rename, refresh, and use actions in other environments -You can rename an Environment by choosing the ellipses and selecting "Rename". If you add a new Dataverse action in Dataverse and need Power Apps to see it, you can choose "Refresh". And, if you need to use an action in a different environment you first need to change the environment and then once there, search for 'Environment', select and add it to your application. +To rename an Environment, select the ellipses and then select "Rename". If you add a new Dataverse action in Dataverse and want Power Apps to see it, select "Refresh". To use an action in a different environment, change the environment, then search for 'Environment', select it, and add it to your app. diff --git a/powerapps-docs/maker/canvas-apps/connections/sql-connection-access-data.md b/powerapps-docs/maker/canvas-apps/connections/sql-connection-access-data.md index 9323e8deae..aef5409068 100644 --- a/powerapps-docs/maker/canvas-apps/connections/sql-connection-access-data.md +++ b/powerapps-docs/maker/canvas-apps/connections/sql-connection-access-data.md @@ -5,7 +5,7 @@ author: lancedMicrosoft ms.topic: reference ms.custom: canvas -ms.date: 12/6/2024 +ms.date: 06/19/2025 ms.subservice: canvas-maker ms.author: lanced ms.reviewer: mkaur @@ -22,9 +22,9 @@ contributors: **Direct access**: -If you choose the *Start with data* option when creating an app, the **Items** property of your gallery has a Power Fx formula with a data source name that points directly to your database table. +If you select the *Start with data* option when you create an app, the **Items** property of your gallery uses a Power Fx formula with a data source name that points directly to your database table. -For example, if you have a `BOOKLENDING` table, you see the following formula: +For example, if you have a `BOOKLENDING` table, you see this formula: ```power-fx Search([@'[dbo].[BOOKLENDING]'], SearchInput1.Text, author, author,book_name,category) @@ -32,43 +32,43 @@ Search([@'[dbo].[BOOKLENDING]'], SearchInput1.Text, author, author,book_name,cat **Views and stored procedures**: -A common professional data access pattern is to use views and then stored procedures for create, update, and delete rather than allow direct access. If you want to use views or stored procedures, you must change the example formula. Similarly, the form for the record doesn't use the built-in direct approach of the `SubmitForm()` formula either. +A common professional data access pattern is to use views and then stored procedures for create, update, and delete instead of allowing direct access. If you want to use views or stored procedures, change the example formula. Similarly, the form for the record doesn't use the built-in direct approach of the `SubmitForm()` formula. **Triggers**: -One database pattern is to use triggers on tables. If a table has a trigger, then you can't use the direct pattern `Submit()` for create, update, and delete. `Submit()` has a conflict between the handling of SQL triggers and the built-in Power Apps behavior, which uses the same output parameter. +One database pattern is to use triggers on tables. If a table has a trigger, you can't use the direct pattern `Submit()` for create, update, and delete. `Submit()` conflicts with SQL trigger handling and the built-in Power Apps behavior, which use the same output parameter. -You can, however, directly access the table for query purposes, but to handle `Create`, `Update`, or `Delete` you must call a stored procedure. +You can directly access the table for queries, but to handle `Create`, `Update`, or `Delete`, call a stored procedure. > [!NOTE] -> The SQL Server connector, like all of the connectors that work with relational data, assumes that tables have a primary key. A primary key is critical for finding specific records to update. If a SQL Server table doesn't have a primary key then the data will be treated as read-only. If you have access and edit rights to the SQL Server table, consider adding an auto-generated key. +> The SQL Server connector, like all connectors that work with relational data, assumes that tables have a primary key. A primary key is critical for finding specific records to update. If a SQL Server table doesn't have a primary key, the data is read-only. If you have access and edit rights to the SQL Server table, consider adding an auto-generated key. > ## Use a view -A *view* is a saved query that displays as a single table of data. +A *view* is a saved query that shows as a single table of data. -Views show up in the list of tables you can select when you add a data source. Views only support queries—not updates. You must use a [stored procedure](#use-stored-procedures) for updates. +Views appear in the list of tables you can select when you add a data source. Views only support queries—not updates. To update data, use a [stored procedure](#use-stored-procedures). -If you create a table with the `Start with data` option, you get screens and formulas that display records in a gallery and form. You can see formulas and functionality for creation, editing, and deletion. However, if you use a view, you only see a display screen for the gallery and form. +If you create a table with the `Start with data` option, you get screens and formulas that show records in a gallery and form. You see formulas and functionality for creating, editing, and deleting records. But if you use a view, you only see a display screen for the gallery and form. -You might want the autogenerated screens from `Start with data` for views. +You might want autogenerated screens from `Start with data` for views. -For this autogenerated option: +To use this autogenerated option: 1. Choose `Start with data` with a *basic table*. 1. Delete and replace the table data source. **Example**: -For example, if you had a `BOOKLENDINGVIEW` table and added it as a data source for Power Apps, the formula could be as simple as: +For example, if you have a `BOOKLENDINGVIEW` table and add it as a data source for Power Apps, the formula can be as simple as: ```power-fx BOOKLENDINGVIEW ``` -You can also replace other create, update, and delete formulas with a view data source and stored procedure calls. +You can also replace other create, update, and delete formulas with a view data source and calls to stored procedures. ## Use stored procedures @@ -79,32 +79,32 @@ When you add a SQL Server connection to your app, you can add stored procedures :::image type="content" source="media/connection-azure-sqldatabase/tables-views-stored-proc-selector.png" alt-text="Screenshot that shows lists of tables, views, and stored procedures available to be added to your app."::: -Once you select a stored procedure, a child node appears and you can designate the stored procedure as **Safe to use for galleries and tables**. +After you select a stored procedure, a child node appears, and you can designate the stored procedure as **Safe to use for galleries and tables**. -A stored procedure is *safe* if it has no action it performs that might be unwanted in certain scenarios. For example, if a stored procedure collected all accounts from a given city, then sent them an email. You might not always want emails to be sent every time the stored procedure is called. Therefore, the stored procedure shouldn't be marked as safe. +A stored procedure is *safe* if it doesn't perform any action that might be unwanted in certain scenarios. For example, if a stored procedure collects all accounts from a given city and then sends them an email, you might not always want emails sent every time the stored procedure is called. In that case, don't mark the stored procedure as safe. **Check a stored procedure as safe only if**: 1. There are **no side effects** to calling this procedure on demand. - You should be able to call the procedure multiple times or whenever Power Apps refreshes the control. When used with an **Items** property of a gallery or table, Power Apps calls the stored procedure whenever the system determines a refresh is needed. You can't control when the stored procedure is called. + You can call the procedure multiple times or whenever Power Apps refreshes the control. When you use it with an **Items** property of a gallery or table, Power Apps calls the stored procedure whenever the system determines a refresh is needed. You can't control when the stored procedure is called. -1. You return a modest amount of data in the stored procedure. +1. The stored procedure returns a modest amount of data. - Action calls, such as stored procedures, don't have a limit on the number of rows retrieved. They aren't automatically paged in 100 record increments like tabular data sources such as tables or views. + Action calls, like stored procedures, don't have a limit on the number of rows retrieved. They aren't automatically paged in 100-record increments like tabular data sources such as tables or views. - If the stored procedure returns too much data (many thousands of records), then your app might slow down or crash. For performance reasons, bring in less than 2,000 records. + If the stored procedure returns too much data (many thousands of records), your app might slow down or crash. For performance reasons, bring in fewer than 2,000 records. -If you check a stored procedure as safe, you can assign your stored procedure as an **Items** property in galleries for tables to use in your app. +If you check a stored procedure as safe, you can assign it as an **Items** property in galleries or tables in your app. > [!IMPORTANT] -> The schema of the return values of the stored procedure should be *static*, so the values don't change from call to call. For example, if a stored procedure returns two tables, then it *always* returns two tables. You can work with either typed or untyped results. +> The schema of the return values of the stored procedure should be *static*, so the values don't change from call to call. For example, if a stored procedure returns two tables, it *always* returns two tables. You can work with either specific or dynamic results. > -> The structure of the results also need to be static. For example, if the schema of the results are *dynamic*, then results are untyped and you must provide a type in order to use them in Power Apps. For more information, see [Untyped results](sql-connection-view-results.md#untyped-results). +> The structure of the results also needs to be static. For example, if the schema of the results is *dynamic*, then results are dynamic and you must provide a specific type to use them in Power Apps. For more information, see [dynamic results](sql-connection-view-results.md#dynamic-results). ### SQL namespace prepended to stored procedure name -The SQL Server namespace name, where you store the procedure, is prepended to the stored procedure name. For example, all stored procedures in the **'DBO'** SQL Server namespace have **'dbo'** at the start of the name. +The SQL Server namespace name, where you store the procedure, is added to the start of the stored procedure name. For example, all stored procedures in the **'DBO'** SQL Server namespace have **'dbo'** at the start of the name. For example, when you add a stored procedure, you might see more than one data source in your project. @@ -112,10 +112,10 @@ For example, when you add a stored procedure, you might see more than one data s ### Calling a stored procedure -To use a stored procedure in Power Apps, prefix the stored procedure name with the name of connector associated with it followed by the stored procedure name, such as `Paruntimedb.dbonewlibrarybook`. +To use a stored procedure in Power Apps, add the connector name before the stored procedure name, such as `Paruntimedb.dbonewlibrarybook`. > [!NOTE] -> When Power Apps brings in the stored procedure, it concatenates the namespace and procedure name so that `dbo.newlibrarybook` becomes `dbonewlibrarybook`. +> When Power Apps brings in the stored procedure, it combines the namespace and procedure name so that `dbo.newlibrarybook` becomes `dbonewlibrarybook`. Arguments are passed as a Power Apps record with named value pairs: @@ -124,7 +124,7 @@ Arguments are passed as a Power Apps record with named value pairs: ``` > [!TIP] -> Remember to convert values if needed as you pass them into your stored procedure, since you're reading from a text value in Power Apps. For example, if you're updating an integer in SQL you must convert the text in the field using `Value()`. +> Convert values if needed as you pass them into your stored procedure, since you're reading from a text value in Power Apps. For example, if you're updating an integer in SQL, convert the text in the field using `Value()`. Here's an example of what stored procedures could look like when assigning them to an `OnSelect` property. @@ -132,22 +132,22 @@ Here's an example of what stored procedures could look like when assigning them ### Variables and all stored procedures -You can access a stored procedure for the **Items** property of a gallery after you declare it safe for the UI. Reference the data source name and the name of the stored procedure followed by `ResultSets`. You can access multiple results by referencing the set of tables returned such as Table 1, Table 2, etc. +Access a stored procedure for the **Items** property of a gallery after you declare it safe for the UI. Reference the data source name and the name of the stored procedure followed by `ResultSets`. Access multiple results by referencing the set of tables returned, such as Table 1, Table 2, and so on. -For example, a stored procedure accessed from the table `Paruntimedb` with the name `dbo.spo_show_all_library_books()` looks like: +For example, a stored procedure from the table `Paruntimedb` with the name `dbo.spo_show_all_library_books()` looks like this: ```power-fx Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1 ``` -This query populates the gallery with records. However, stored procedures are *action* behaviors on the tabular model. `Refresh()` only works with tabular data sources and can't be used with stored procedures. You must refresh the gallery when a record is created, updated, or deleted. +This query populates the gallery with records. However, stored procedures are *action* behaviors on the tabular model. `Refresh()` only works with tabular data sources and doesn't work with stored procedures. Refresh the gallery when a record is created, updated, or deleted. > [!NOTE] > When you use a `Submit()` on a form for a tabular data source, it effectively calls `Refresh()` under the hood and updates the gallery. ### Use a variable to populate and refresh the gallery -Use a variable in the `OnVisible` property for the screen and set the stored procedure to the variable. +Use a variable in the `OnVisible` property for the screen, and set the stored procedure to the variable. ```power-fx Set(SP_Books, Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1); @@ -159,7 +159,7 @@ You can then set the `Items` property of the gallery to the variable name. SP_Books ``` -After you create, update, or delete a record with a call to the stored procedure, set the variable again to update the gallery. +After you create, update, or delete a record with a call to the stored procedure, set the variable again to refresh the gallery. ```power-fx Paruntimedb.dbonewlibrarybook({ @@ -172,9 +172,9 @@ Set(SP_Books, Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1); ### Use Power Automate to call stored procedures -Power Automate handles asynchronous actions best. You can call stored procedures as part of a series of calls in a business process. +Power Automate handles asynchronous actions best. Call stored procedures as part of a series of calls in a business process. -To call Power Automate followed by a call to stored procedures, create input variables as part of your flow. +To call Power Automate and then call stored procedures, create input variables as part of your flow. :::image type="content" source="media/connection-azure-sqldatabase/pa-input.png" alt-text="Screenshot that shows the Power Automate input."::: @@ -182,6 +182,6 @@ Then pass your input variables into the call of your stored procedure. :::image type="content" source="media/connection-azure-sqldatabase/pa-execute-procedure.png" alt-text="Execute stored procedure"::: -Add this Power Automate flow to your app and call it. The optional arguments are passed as a record “{ … }”. The following example has all optional arguments. +Add this Power Automate flow to your app and call it. Pass optional arguments as a record “{ … }”. The following example includes all optional arguments. :::image type="content" source="media/connection-azure-sqldatabase/pa-example.png" alt-text="Power Automate flow"::: diff --git a/powerapps-docs/maker/canvas-apps/connections/sql-connection-overview.md b/powerapps-docs/maker/canvas-apps/connections/sql-connection-overview.md index f1bd79dd31..bd96dc5445 100644 --- a/powerapps-docs/maker/canvas-apps/connections/sql-connection-overview.md +++ b/powerapps-docs/maker/canvas-apps/connections/sql-connection-overview.md @@ -65,7 +65,7 @@ To view the results of your SQL queries, see: [View results in SQL Server](sql-c > [!NOTE] > If a SQL Server data type doesn't appear in the previous table, that data type isn't supported. > Unsupported data types include the following examples: `binary()`, `varbinary()`, `image`, `cursor`, -> `rowversion`, `hierarchyid`, `sql_variant xml`, Spatial Geometry Types, Spatial Geography Types, and table. +> `rowversion`, `hierarchyid`, `sql_variant xml`, Spatial Geometry Types, Spatial Geography Types, and table. Also, 'tinyint' and 'smallint' are not supported as primary keys. ## Power Apps functions and operations delegable to SQL Server diff --git a/powerapps-docs/maker/canvas-apps/connections/sql-connection-view-results.md b/powerapps-docs/maker/canvas-apps/connections/sql-connection-view-results.md index cd121a153e..1308575ff7 100644 --- a/powerapps-docs/maker/canvas-apps/connections/sql-connection-view-results.md +++ b/powerapps-docs/maker/canvas-apps/connections/sql-connection-view-results.md @@ -5,7 +5,7 @@ author: lancedMicrosoft ms.topic: reference ms.custom: canvas -ms.date: 10/25/2024 +ms.date: 06/19/2025 ms.subservice: canvas-maker ms.author: lanced ms.reviewer: mkaur @@ -18,24 +18,24 @@ contributors: # View results in SQL Server -If you're using a direct table access pattern or a view, the query result is bound to the control or table. Power Fx automatically enables the paging of data in your app into the gallery or table. However, stored procedures can return a query result, a return code, or values from `Out` parameters. +If you use a direct table access pattern or a view, the query result binds to the control or table. Power Fx automatically lets your app page data into the gallery or table. However, stored procedures can return a query result, a return code, or values from `Out` parameters. -To use these varying result types in your application, use the following patterns. +To use these different result types in your app, follow these patterns. ## Formulas for different controls -Typical formulas for views and stored procedures: +Here are typical formulas for views and stored procedures: | Control | Property | Formula| Description | | ------- | -------- | ------- | ----------- | -| Gallery or Table | Items | `DataSource` | The table or view data source can be further refined with a [Filter](/power-platform/power-fx/reference/function-filter-lookup) and a [StartsWith](/power-platform/power-fx/reference/function-startswith). The other generated query clauses are appended onto the existing query. | -| Form | DataSource | `DataSource` | The table or view data source | -| Submit button on a form | [OnSelect](/power-apps/maker/canvas-apps/controls/properties-core) | `DataSource.dboSPName({ args}); Refresh (‘DataSource’)` | The first `DataSource` in this formula is the stored procedure data source—the one that holds your stored procedure. The `DataSource` in the refresh formula is the view data source. | -| Delete button on a form | [OnSelect](/power-apps/maker/canvas-apps/controls/properties-core) | `SP DataSource.dboSPName({ args}); Refresh (‘View DataSource’)` | The first `DataSource` in this formula is the stored procedure data source—the one that holds your stored procedure. The `DataSource` in the refresh formula is the view data source. | +| Gallery or Table | Items | `DataSource` | You can further refine the table or view data source with a [Filter](/power-platform/power-fx/reference/function-filter-lookup) and a [StartsWith](/power-platform/power-fx/reference/function-startswith). The other generated query clauses are appended to the existing query. | +| Form | DataSource | `DataSource` | The table or view data source. | +| Submit button on a form | [OnSelect](/power-apps/maker/canvas-apps/controls/properties-core) | `DataSource.dboSPName({ args}); Refresh (‘DataSource’)` | The first `DataSource` in this formula is the stored procedure data source, which holds your stored procedure. The `DataSource` in the refresh formula is the view data source. | +| Delete button on a form | [OnSelect](/power-apps/maker/canvas-apps/controls/properties-core) | `SP DataSource.dboSPName({ args}); Refresh (‘View DataSource’)` | The first `DataSource` in this formula is the stored procedure data source, which holds your stored procedure. The `DataSource` in the refresh formula is the view data source. | ## Return code -Use this return code for accessing the results of a return statement. +Use this return code to get the result of a return statement. ```power-fx .({}).ReturnCode @@ -51,39 +51,40 @@ Use the parameter name as it appears in the JSON payload. ## Result Sets -Other tables can be accessed through their name, for example, `Table1`, `Table2`, or `Table3`. +You can use other tables by their name, like `Table1`, `Table2`, or `Table3`. ```power-fx .({}).ResultSets.Table1 ``` -## Untyped results +## Dynamic results -Some complicated stored procedures return untyped results. This result is common for stored procedures that use temporary tables. Power Apps can't easily determine the results ahead of time. Therefore, the return is marked as *untyped* and you can't access these results directly. You must first provide a type. +Some complicated stored procedures return dynamic results. This result is common for stored procedures that use temporary tables. Power Apps can't easily determine the results ahead of time. So, the return is marked as *dynamic* and you can't access these results directly. First, provide a type. You can access the data with the following data access example pattern. ### Data access example -1. Pull the results into a variable named `MyUntypedObject`. +1. Pull the results into a variable named `MyDynamicValue`. 1. Pull `Table1` from that variable and put it into a variable named `table1`. > [!TIP] - > This step isn't strictly necessary. It's useful however to put all the results in a variable and then pull out the parts you need, later. -1. Iterate through `table1` and extract the JSON elements in named value pairs. -1. Match the names with names returned in the JSON payload. -1. To validate, open a Power Apps monitor and look at the body section of the data node for a record. + > This step isn't strictly necessary. It's useful, though, to put all the results in a variable and then pull out the parts you need later. + +1. Iterate through `table1` and extract the JSON elements as named value pairs. +1. Match the names with those returned in the JSON payload. +1. To validate, open Power Apps monitor and look at the body section of the data node for a record. ```power-fx Set( - , // pull results into variable + , // pull results into variable .( { : "someString" } ).ResultSets ); Set( table1, // put Table1 into table1 - .Table1 + .Table1 ); Set( TypedTable, diff --git a/powerapps-docs/maker/canvas-apps/connections/sql-server-security.md b/powerapps-docs/maker/canvas-apps/connections/sql-server-security.md index 9ce5fcef84..b53edc082a 100644 --- a/powerapps-docs/maker/canvas-apps/connections/sql-server-security.md +++ b/powerapps-docs/maker/canvas-apps/connections/sql-server-security.md @@ -6,7 +6,7 @@ author: lancedMicrosoft ms.topic: reference ms.custom: canvas ms.reviewer: mkaur -ms.date: 05/7/2024 +ms.date: 05/21/2025 ms.subservice: canvas-maker ms.author: lanced search.audienceType: @@ -57,7 +57,7 @@ The older style simple implicit connection actually distributes a connection obj Again, with older style simple implicit connections, after you deploy the app, end users can use the connection deployed with your app in any new apps they create. In the new apps, users can see the data you filtered out in your application. It's important to use the new secure implicit connections. > [!IMPORTANT] -> Once an an older implicitly shared connection is deployed to end users, the restrictions you may have put in the app you shared (such as filters or read-only access) are no longer valid for new apps end users create. The end users will have whatever rights the authentication allows as part of implicitly shared connection. Therefore, when you convert an app to use secure implicit connections, you must **also** revoke the connections you shared with your app. Admins can get a report of apps with implicitly shared connections with the COE toolkit. +> Once an older implicitly shared connection is deployed to end users, the restrictions you may have put in the app you shared (such as filters or read-only access) are no longer valid for new apps end users create. The end users will have whatever rights the authentication allows as part of implicitly shared connection. Therefore, when you convert an app to use secure implicit connections, you must **also** revoke the connections you shared with your app. Admins can get a report of apps with implicitly shared connections with the COE toolkit. ## Client and server security diff --git a/powerapps-docs/maker/canvas-apps/control-limitations.md b/powerapps-docs/maker/canvas-apps/control-limitations.md index 285d46e4c8..2736c3686a 100644 --- a/powerapps-docs/maker/canvas-apps/control-limitations.md +++ b/powerapps-docs/maker/canvas-apps/control-limitations.md @@ -2,7 +2,7 @@ title: Limitations of controls in canvas apps description: Learn about the limitations of controls in canvas apps. author: navjotm -ms.topic: conceptual +ms.topic: article ms.custom: canvas ms.reviewer: mkaur ms.date: 06/01/2022 diff --git a/powerapps-docs/maker/canvas-apps/controls/control-add-picture.md b/powerapps-docs/maker/canvas-apps/controls/control-add-picture.md index cb3ce1fb42..6228b4952b 100644 --- a/powerapps-docs/maker/canvas-apps/controls/control-add-picture.md +++ b/powerapps-docs/maker/canvas-apps/controls/control-add-picture.md @@ -105,7 +105,7 @@ The picture control has these limitations: **[Underline](properties-text.md)** – Whether a line appears under the text that appears on a control. -**UseMobileCamera** – Whether to use a mobile camera directly, when available. For Android devices, this property requires the experimental setting **Improved Media Capture** turned on. +**UseMobileCamera** – Whether to use a mobile camera directly, when available. Setting this to **TRUE** forces users to take a picture using the camera and disables uploading existing images from the device gallery. **[VerticalAlign](properties-text.md)** – The location of text on a control in relation to the vertical center of that control. diff --git a/powerapps-docs/maker/canvas-apps/controls/control-button.md b/powerapps-docs/maker/canvas-apps/controls/control-button.md index db7542d5ff..ef4e78cb35 100644 --- a/powerapps-docs/maker/canvas-apps/controls/control-button.md +++ b/powerapps-docs/maker/canvas-apps/controls/control-button.md @@ -5,7 +5,7 @@ author: yogeshgupta698 ms.topic: reference ms.custom: canvas -ms.date: 01/28/2021 +ms.date: 05/23/2025 ms.subservice: canvas-maker ms.author: yogupt ms.reviewer: mkaur @@ -39,6 +39,8 @@ Configure the **[OnSelect](properties-core.md)** property of a **Button** contro **[Color](properties-color-border.md)** – The color of text in a control. +**ContentLanguage** - The language of the control's content, if different from the control's container. + **[DisplayMode](properties-core.md)** – Whether the control allows user input (**Edit**), only displays data (**View**), or is disabled (**Disabled**). **[DisabledBorderColor](properties-color-border.md)** – The color of a control's border if the control's **[DisplayMode](properties-core.md)** property is set to **Disabled**. diff --git a/powerapps-docs/maker/canvas-apps/controls/control-column-line-chart.md b/powerapps-docs/maker/canvas-apps/controls/control-column-line-chart.md index 0dd128dc26..3f8f8f4630 100644 --- a/powerapps-docs/maker/canvas-apps/controls/control-column-line-chart.md +++ b/powerapps-docs/maker/canvas-apps/controls/control-column-line-chart.md @@ -26,6 +26,9 @@ Controls that show data as graphs with x- and y-axes. **NumberOfSeries** – How many columns of data are reflected in a column or line chart. +> [!NOTE] +> A maximum of 9 series can be displayed + ## Additional chart properties **[BorderColor](properties-color-border.md)** – The color of a control's border. diff --git a/powerapps-docs/maker/canvas-apps/controls/control-combo-box.md b/powerapps-docs/maker/canvas-apps/controls/control-combo-box.md index 23c93c641e..650db8a3b1 100644 --- a/powerapps-docs/maker/canvas-apps/controls/control-combo-box.md +++ b/powerapps-docs/maker/canvas-apps/controls/control-combo-box.md @@ -5,7 +5,7 @@ author: yogeshgupta698 ms.topic: reference ms.custom: canvas ms.reviewer: mkaur -ms.date: 03/25/2024 +ms.date: 05/23/2025 ms.subservice: canvas-maker ms.author: yogupt search.audienceType: @@ -25,7 +25,7 @@ Single or multi-select mode is configured via the SelectMultiple property. When searching for items to select, for each item you can choose to show a single data value, two values, or a picture and two values (Person) by modifying the Layout settings in the Data pane. -When viewing on small screens, the items list flyout will become a full screen control for better usability. +When you view the control on small screens, the items list flyout becomes a full screen control for better usability. > [!NOTE] > If you want to search for items with *numbers*, convert numbers to text with [Text()](../functions/function-text.md) function. For example, *Text(12345)*. @@ -49,6 +49,8 @@ To use **Combo box** as a people picker, choose the **Person** template from the **SelectedItems** – List of selected items resulting from user interaction. +**Selected** – The last selected item resulting from user interaction. + **SelectMultiple** – Whether the user can select a single item or multiple items. **IsSearchable** – Whether the user can search for items before selecting. @@ -142,9 +144,9 @@ The steps in this example apply to any [data source that provides tables](../con > [!NOTE] > The If statement will check to see how may selected items exist and display them in a comma delimited label or a "NO SELECTED ITEM" message when empty. -### Simulate simple drop down behavior +### Simulate simple drop-down behavior -By setting **IsSearchable** to false and **SelectMultiple** to false, you can achieve the same functionality of a drop down. +By setting **IsSearchable** to false and **SelectMultiple** to false, you can achieve the same functionality of a drop-down. 1. Select **Insert** > **Input**, and then select **Combo box**. @@ -187,7 +189,7 @@ This is in addition to the [standard color contrast requirements](../accessible- * Focus indicators must be clearly visible. Use **[FocusedBorderColor](properties-color-border.md)** and **[FocusedBorderThickness](properties-color-border.md)** to achieve this. > [!NOTE] - > The tab key navigates to or away from the combo box. Arrow keys navigate the contents of the combo box. The escape key closes the drop down when opened. + > The tab key navigates to or away from the combo box. Arrow keys navigate the contents of the combo box. The escape key closes the drop-down when opened. [!INCLUDE[footer-include](../../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/canvas-apps/controls/control-html-text.md b/powerapps-docs/maker/canvas-apps/controls/control-html-text.md index e8d004272f..a366ccf3ce 100644 --- a/powerapps-docs/maker/canvas-apps/controls/control-html-text.md +++ b/powerapps-docs/maker/canvas-apps/controls/control-html-text.md @@ -45,6 +45,11 @@ An **HTML text** control not only shows plain text and numbers but also converts **HtmlText** – Text that appears in an HTML text control and that may contain HTML tags. ## Additional properties +**[AutoHeight](properties-core.md)** – Set to true to allow the control to auto-grow its height to show all text. Set to false to truncate the text to the height assigned. + +> [!NOTE] +> Enabling the **AutoHeight** property will grow the **Height** property of the control to a maximum value of 7680. + **[BorderColor](properties-color-border.md)** – The color of a control's border. **[BorderStyle](properties-color-border.md)** – Whether a control's border is **Solid**, **Dashed**, **Dotted**, or **None**. diff --git a/powerapps-docs/maker/canvas-apps/controls/control-text-input.md b/powerapps-docs/maker/canvas-apps/controls/control-text-input.md index 7451574d00..8c4fe6b703 100644 --- a/powerapps-docs/maker/canvas-apps/controls/control-text-input.md +++ b/powerapps-docs/maker/canvas-apps/controls/control-text-input.md @@ -81,7 +81,7 @@ The user can specify data by typing into a text-input control. Depending on how **MaxLength** – The number of characters that the user can type into a text-input control. -**Mode** – The control is in **SingleLine**, **MultiLine**, or **Password** mode. +**Mode** – The control is in **SingleLine**, **Multiline**, or **Password** mode. **[OnChange](properties-core.md)** – Actions to perform when the user changes the value of a control (for example, by adjusting a slider). diff --git a/powerapps-docs/maker/canvas-apps/controls/copilot-rename-controls.md b/powerapps-docs/maker/canvas-apps/controls/copilot-rename-controls.md index 46380ce623..a76839ff83 100644 --- a/powerapps-docs/maker/canvas-apps/controls/copilot-rename-controls.md +++ b/powerapps-docs/maker/canvas-apps/controls/copilot-rename-controls.md @@ -2,12 +2,13 @@ title: Rename controls with Copilot (preview) description: Rename controls in bulk for canvas apps with AI in Microsoft Power Apps. author: mamali-ms -ms.topic: conceptual +ms.topic: how-to ms.collection: - bap-ai-copilot - get started ms.reviewer: mkaur -ms.date: 11/13/2024 +ms.date: 5/29/2025 +ms.update-cycle: 180-days ms.subservice: canvas-maker ms.author: mamali search.audienceType: @@ -24,7 +25,7 @@ ai-usage: ai-assisted [This article is prerelease documentation and is subject to change.] -Canvas apps often contain numerous controls, so it's important to name them meaningfully for better maintenance and collaboration. With the new **Proactive control rename** feature, Copilot assists by suggesting appropriate names for controls. Makers can review the suggestions and apply the changes to multiple controls at once. When a control’s name is updated, the change is reflected across all its references. +Canvas apps often have many controls, so it's important to give them meaningful names for easier maintenance and collaboration. With the new **Proactive control rename** feature, Copilot suggests names for controls. Makers review the suggestions and apply changes to multiple controls at once. When a control's name is updated, the change appears across all its references. Currently, the most frequently renamed and supported controls are: @@ -36,16 +37,16 @@ Additional support for more controls will be incorporated based on feedback from > [!IMPORTANT] > > - This is a preview feature. -> - This is available in English only. -> - Preview features aren't meant for production use and might have restricted functionality. These features are subject to [supplemental terms of use](https://go.microsoft.com/fwlink/?linkid=2189520), and are available before an official release so that customers can get early access and provide feedback. +> - This feature is available in English only. +> - Preview features aren't meant for production use and might have restricted functionality. These features are subject to [supplemental terms of use](https://go.microsoft.com/fwlink/?linkid=2189520), and are available before an official release so customers can get early access and provide feedback. ## Prerequisites -Ensure you meet the prerequisites and region availability in [Copilot in Power Apps overview (preview)](../ai-overview.md#availability). +Make sure you meet the prerequisites and region availability in [Copilot in Power Apps overview (preview)](../ai-overview.md#availability). -By default, **Proactive control rename** setting is enabled for new apps. +By default, the **Proactive control rename** setting is on for new apps. -To use this feature for existing apps, follow these steps: +To use this feature for an existing app, follow these steps: 1. Open your [canvas app for editing](../edit-app.md) in Power Apps Studio. On the command bar, select **Settings** > **Updates**. 1. On the **Preview** tab, find and turn on the **Proactive control rename** setting. @@ -54,46 +55,45 @@ To use this feature for existing apps, follow these steps: ## Rename controls -When you rename a control like the **Button** control, Copilot suggests names for other **Button** controls based on their properties. +When you rename a control like the **Button** control, Copilot suggests names for other **Button** controls that have similar properties. 1. Open your [canvas app for editing](../edit-app.md) in Power Apps Studio. -1. In the **Tree view**, select a control and then select **More options** (...). +1. In the **Tree view**, select a control, and then select **More options** (...). -1. Select **Rename** and type a new name for the control and then press Enter. +1. Select **Rename**, type a new name for the control, and then press Enter. - > [!NOTE] - > When you manually rename a control, Copilot will only appear if there are additional controls on the same screen that can be renamed. + > [!NOTE] + > When you manually rename a control, Copilot only appears if there are other controls on the same screen that can be renamed. -1. Copilot appears with suggestions to rename other controls that are the same type. +1. Copilot appears with suggestions to rename other controls of the same type. :::image type="content" source="media/rename-controls/rename-control-copilot-appears.png" alt-text="Copilot appears with suggestions to rename controls"::: 1. Select **View Suggestions**. -1. Review the suggested names and unselect any item that you don't want to rename. -:::image type="content" source="media/rename-controls/rename-control-unselect-rename.png" alt-text="Unselect a suggested renaming of a control"::: +1. Review the suggested names, and clear any item that you don't want to rename. :::image type="content" source="media/rename-controls/rename-control-unselect-rename.png" alt-text="Screenshot of unselecting a suggested renaming of a control."::: -1. When you're done, select **Rename** to apply the changes.
    If a formula references a control, the control's name is automatically updated in the formula. +1. When you're done, select **Rename** to apply the changes.
    If a formula references a control, the control name is automatically updated in the formula. - :::image type="content" source="media/rename-controls/rename-control-copilot-suggestions.png" alt-text="Suggested names from Copilot"::: + :::image type="content" source="media/rename-controls/rename-control-copilot-suggestions.png" alt-text="Screenshot of suggested names from Copilot."::: ## Best practices and recommendations -To get the best results from Copilot, use this feature after setting the **Text** property of a control. For example, Copilot won't suggest names for a button with the default Text property value **Button** or an invalid **Text** property value like **If()**. +To get the best results from Copilot, use this feature after you set the **Text** property of a control. For example, Copilot doesn't suggest names for a button with the default Text property value **Button** or an invalid **Text** property value like **If()**. -If you still don't get the desired results, send us your feedback. +If you still don't get the results you want, send us your feedback. -When you manually rename a control, use standard and relevant names and naming patterns so Copilot can reference them while suggesting renames. Avoid using special characters and spaces. For example, renaming a **Button** to **collectResponse** provides better renaming suggestions for other buttons compared to using a name like **collect_1**. +When you manually rename a control, use standard, relevant names and naming patterns so Copilot can reference them when suggesting renames. Avoid special characters and spaces. For example, renaming a **Button** to **collectResponse** gives better renaming suggestions for other buttons than using a name like **collect_1**. ## Limitations - Only the **Label** and **Button** controls are supported. - When you rename a label manually, Copilot appears only if there are other labels under the same screen that can be renamed. -- Only controls with a valid **Text** property are considered for renaming by Copilot. +- Only controls with a valid **Text** property are considered for renaming by Copilot. - The **Text** property can be a **Text** literal or a formula returning **Text** type. -- Only controls with nondefault **Text** property are considered for renaming. For instance, **Text** property value must not be the default value such as **Button** or **Text**. +- Only controls with nondefault **Text** property are considered for renaming. For example, the **Text** property value can't be the default value, such as **Button** or **Text**. ## See also diff --git a/powerapps-docs/maker/canvas-apps/controls/modern-controls/modern-control-toggle.md b/powerapps-docs/maker/canvas-apps/controls/modern-controls/modern-control-toggle.md index f6b6df8c14..a00a3cdce7 100644 --- a/powerapps-docs/maker/canvas-apps/controls/modern-controls/modern-control-toggle.md +++ b/powerapps-docs/maker/canvas-apps/controls/modern-controls/modern-control-toggle.md @@ -24,7 +24,7 @@ A control that the user can turn on or off by moving the handle. ## Description -A toggle is a user interface element that has been created for modern graphical user interfaces (GUIs), but it functions in the same manner as a checkbo. The key properties for this control are **Checked**, **Label**, **OnCheck**, **OnSelect**, and **OnUncheck**. +A toggle is a user interface element that has been created for modern graphical user interfaces (GUIs), but it functions in the same manner as a checkbox. The key properties for this control are **Checked**, **Label**, **OnCheck**, **OnSelect**, and **OnUncheck**. ## General diff --git a/powerapps-docs/maker/canvas-apps/controls/modern-controls/modern-controls-reference.md b/powerapps-docs/maker/canvas-apps/controls/modern-controls/modern-controls-reference.md index 7e0622c967..083bc6c588 100644 --- a/powerapps-docs/maker/canvas-apps/controls/modern-controls/modern-controls-reference.md +++ b/powerapps-docs/maker/canvas-apps/controls/modern-controls/modern-controls-reference.md @@ -33,11 +33,11 @@ Configure the behavior of a modern control by setting one of its properties. Eac **[Checkbox](modern-control-checkbox.md)** - Select or clear an option to specify **true** or **false**. -**[Combobox (preview)](modern-control-combobox.md)** - A control that allows users to make selections from provided choices and supports search and multiple selections. +**[Combobox](modern-control-combobox.md)** - A control that allows users to make selections from provided choices and supports search and multiple selections. **[Copilot answer (preview)](modern-control-copilot-answer.md)** - A control that makers can use to add predefined questions that end users can use to get generated answers. -**[Date picker (preview)](modern-controls-date-picker.md)** - A control that the user can select to specify a date. +**[Date picker](modern-controls-date-picker.md)** - A control that the user can select to specify a date. **[Dropdown (preview)](modern-control-dropdown.md)** – Select a value from the list of items. @@ -47,7 +47,7 @@ Configure the behavior of a modern control by setting one of its properties. Eac **[Link](modern-control-link.md)** – Open hyperlinks in new tab. -**[Number input (preview)](modern-control-number-input.md)** - A number input control the user can modify. +**[Number input](modern-control-number-input.md)** - A number input control the user can modify. **[Progress bar](modern-control-progress-bar.md)** – Displays the progress, can be configured as determinate showcasing exact progress or indeterminate for ongoing progress. @@ -63,9 +63,9 @@ Configure the behavior of a modern control by setting one of its properties. Eac **[Tabs or tab list](modern-control-tabs-or-tabs-list.md)** – Select a tab to move screens or take action on app. -**[Text (preview)](modern-control-text.md)** – Display text on the app, can also be used as label for fields. +**[Text](modern-control-text.md)** – Display text on the app, can also be used as label for fields. -**[Text input (preview)](modern-control-text-input.md)** – A box in which the user can type text, numbers, and other data. +**[Text input](modern-control-text-input.md)** – A box in which the user can type text, numbers, and other data. **[Toggle](modern-control-toggle.md)** – A control that the user can turn on or off by moving the handle. diff --git a/powerapps-docs/maker/canvas-apps/controls/modern-controls/modern-theming.md b/powerapps-docs/maker/canvas-apps/controls/modern-controls/modern-theming.md index 727e9dd8e7..ebec9346e5 100644 --- a/powerapps-docs/maker/canvas-apps/controls/modern-controls/modern-theming.md +++ b/powerapps-docs/maker/canvas-apps/controls/modern-controls/modern-theming.md @@ -6,7 +6,7 @@ author: jasongre ms.topic: reference ms.custom: canvas ms.reviewer: mkaur-msft -ms.date: 11/13/2024 +ms.date: 04/04/2024 ms.subservice: canvas-maker ms.author: jasongre @@ -60,11 +60,13 @@ There are several out-of-the-box themes available to style your app. You can als | Font | Choose your default font used by the controls in the app. | | Torsion | Impacts the tint, shade, or tone of the palette. Torsion isn't applicable if you choose **Lock primary color**. | | Vibrancy | Impacts the muteness or brightness of the palette. Vibrancy isn't applicable if you choose **Lock primary color**. | - | Preview | Optionally, look at the static preview of your new theme. You can interact with the sample controls to see how your theme is applied to the rest state and various interaction states. :::image type="content" source="media/preview-option.png" alt-text="Screenshot showing the Preview section of the pane when you create or edit a theme. "::: | + | Palette overrides | Override the color used for one or more slots in the palette by selecting a slot and choosing a new color. You can select **Reset** to return to the generated value for that slot. | + + You can also look at a static preview of your new theme. Interact with the sample controls to see how your theme is applied to the rest state and various interaction states. + + :::image type="content" source="media/preview-option.png" alt-text="Screenshot showing the Preview section of the pane when you create or edit a theme. "::: -1. Select **Create**. - -Your new theme is created and applied to your app. +1. Select **Create**. Your new theme is created and applied to your app. ## Apply modern theme @@ -123,6 +125,7 @@ Using the theme brand ramp, you can manually style a classic control based on th > [!NOTE] > To provide feedback, see: [Provide your feedback to Microsoft](overview-modern-controls.md#provide-feedback-to-microsoft). +> ## See also diff --git a/powerapps-docs/maker/canvas-apps/controls/modern-controls/new-stream-video-control.md b/powerapps-docs/maker/canvas-apps/controls/modern-controls/new-stream-video-control.md index 622fa2ed62..1bd59d519b 100644 --- a/powerapps-docs/maker/canvas-apps/controls/modern-controls/new-stream-video-control.md +++ b/powerapps-docs/maker/canvas-apps/controls/modern-controls/new-stream-video-control.md @@ -5,7 +5,7 @@ author: yogeshgupta698 ms.topic: reference ms.component: canvas -ms.date: 2/11/2025 +ms.date: 5/21/2025 ms.subservice: canvas-maker ms.author: yogupt @@ -35,6 +35,8 @@ To add a Stream video in your canvas app, follow these steps to get the embed UR 1. Copy the URL starting from **https://** to the **UniqueId=** including the Unique ID numbers. :::image type="content" source="media/sample-embed-code.png" alt-text="embed URL example"::: +> [!IMPORTANT] +> The Microsoft Stream control in Power Apps only supports URLs that follow the *.sharepoint.com pattern. If your SharePoint domain doesn't follow this pattern, the Stream control will show an invalid URL error. ## Add Stream control @@ -46,7 +48,7 @@ To add a Stream video in your canvas app, follow these steps to get the embed UR ## Properties -**Steam URL (Required)** - The URL of the Stream video that you want to embed. This is the embed URL of the video. The URL should only have Unique ID. If URL detects other parameters, the control detects as invalid URL. +**Stream URL (Required)** - The URL of the Stream video that you want to embed. This is the embed URL of the video. The URL should only have Unique ID. If URL detects other parameters, the control detects as invalid URL. **[X](../properties-size-location.md)** – The distance between the left edge of a control and the left edge of its parent container (screen if no parent container). diff --git a/powerapps-docs/maker/canvas-apps/controls/properties-core.md b/powerapps-docs/maker/canvas-apps/controls/properties-core.md index b0f9bce3ea..5649f2b65f 100644 --- a/powerapps-docs/maker/canvas-apps/controls/properties-core.md +++ b/powerapps-docs/maker/canvas-apps/controls/properties-core.md @@ -6,7 +6,7 @@ author: gregli-msft ms.topic: reference ms.custom: canvas ms.reviewer: mkaur -ms.date: 10/25/2016 +ms.date: 7/25/2025 ms.subservice: canvas-maker ms.author: gregli search.audienceType: @@ -22,7 +22,7 @@ Configure whether the user can see and interact with a control. ### Properties **Default** – The initial value of a control before it is changed by the user. -* Applies to **[Card](control-card.md)**, **[Check box](control-check-box.md)**, **[Drop down](control-drop-down.md)**, **[Gallery](control-gallery.md)**, **[List Box](control-list-box.md)**, **[Radio](control-radio.md)**, **[Rating](control-rating.md)**, **[Slider](control-slider.md)**, **[Text input](control-text-input.md)**, and **[Toggle](control-toggle.md)** controls. +* Applies to **[Card](control-card.md)**, **[Check box](control-check-box.md)**, **[Drop down](control-drop-down.md)**, **[Gallery](control-gallery.md)**, **[List Box](control-list-box.md)**, **[Radio](control-radio.md)**, **[Rating](control-rating.md)**, **[Rich Text Editor](control-richtexteditor.md)**, **[Slider](control-slider.md)**, **[Text input](control-text-input.md)**, and **[Toggle](control-toggle.md)** controls. **DelayOutput** – Set to true to delay action during text input. @@ -30,23 +30,23 @@ Configure whether the user can see and interact with a control. **DisplayMode** – Values can be **Edit, View,** or **Disabled**. Configures whether the control allows user input (**Edit**), only displays data (**View**) or is disabled (**Disabled**). In **View** mode, input controls such as **[Text input](control-text-input.md)**, **[Drop down](control-drop-down.md)**, **[Date Picker](control-date-picker.md)** will only display the text value and will not render any interactive elements or decorations. This makes them suitable to be displayed in Forms or as readable output. -* Applies to **[Add picture](control-add-picture.md)**, **[Audio](control-audio-video.md)**, **[Button](control-button.md)**, **[Camera](control-camera.md)**, **[Check box](control-check-box.md)**, **[Column chart](control-column-line-chart.md)**, **[Date Picker](control-date-picker.md)**, **[Drop down](control-drop-down.md)**, **[Export](control-export-import.md)**, **[Gallery](control-gallery.md)**, **[HTML text](control-html-text.md)**, **[Icon](control-shapes-icons.md)**, **[Image](control-image.md)**, **[Import](control-export-import.md)**, **[Label](control-text-box.md)**, **[Line chart](control-column-line-chart.md)**, **[List Box](control-list-box.md)**, **[Microphone](control-microphone.md)**, **[PDF viewer](control-pdf-viewer.md)**, **[Pen input](control-pen-input.md)**, **[Pie chart](control-pie-chart.md)**, **[Radio](control-radio.md)**, **[Rating](control-rating.md)**, **[Shape](control-shapes-icons.md)**, **[Slider](control-slider.md)**, **[Text input](control-text-input.md)**, **[Timer](control-timer.md)**, **[Toggle](control-toggle.md)**, and **[Video](control-audio-video.md)** controls. +* Applies to **[Add picture](control-add-picture.md)**, **[Audio](control-audio-video.md)**, **[Button](control-button.md)**, **[Camera](control-camera.md)**, **[Check box](control-check-box.md)**, **[Column chart](control-column-line-chart.md)**, **[Combo box](control-combo-box.md)**, **[Date Picker](control-date-picker.md)**, **[Drop down](control-drop-down.md)**, **[Export](control-export-import.md)**, **[Gallery](control-gallery.md)**, **[HTML text](control-html-text.md)**, **[Icon](control-shapes-icons.md)**, **[Image](control-image.md)**, **[Import](control-export-import.md)**, **[Label](control-text-box.md)**, **[Line chart](control-column-line-chart.md)**, **[List Box](control-list-box.md)**, **[Microphone](control-microphone.md)**, **[PDF viewer](control-pdf-viewer.md)**, **[Pen input](control-pen-input.md)**, **[Pie chart](control-pie-chart.md)**, **[Radio](control-radio.md)**, **[Rating](control-rating.md)**, **[Rich text editor](control-richtexteditor.md)**, **[Shape](control-shapes-icons.md)**, **[Slider](control-slider.md)**, **[Text input](control-text-input.md)**, **[Timer](control-timer.md)**, **[Toggle](control-toggle.md)**, and **[Video](control-audio-video.md)** controls. **Items** – The source of data that appears in a control such as a gallery, a list, or a chart. -* Applies to **[Column chart](control-column-line-chart.md)**, **[Drop down](control-drop-down.md)**, **[Gallery](control-gallery.md)**, **[Line chart](control-column-line-chart.md)**, **[List Box](control-list-box.md)**, **[Pie chart](control-pie-chart.md)**, and **[Radio](control-radio.md)** controls. +* Applies to **[Column chart](control-column-line-chart.md)**, **[Combo box](control-combo-box.md)**, **[Drop down](control-drop-down.md)**, **[Gallery](control-gallery.md)**, **[Line chart](control-column-line-chart.md)**, **[List Box](control-list-box.md)**, **[Pie chart](control-pie-chart.md)**, and **[Radio](control-radio.md)** controls. **OnChange** – Actions to perform when the user changes the value of a control (for example, by adjusting a slider). -* Applies to **[Add picture](control-add-picture.md)**, **[Drop down](control-drop-down.md)**, **[List Box](control-list-box.md)**, **[Radio](control-radio.md)**, **[Rating](control-rating.md)**, **[Slider](control-slider.md)**, **[Text input](control-text-input.md)**, and **[Toggle](control-toggle.md)** controls. +* Applies to **[Add picture](control-add-picture.md)**, **[Combo box](control-combo-box.md)**, **[Drop down](control-drop-down.md)**, **[List Box](control-list-box.md)**, **[Radio](control-radio.md)**, **[Rating](control-rating.md)**, **[Rich text editor](control-richtexteditor.md)**, **[Slider](control-slider.md)**, **[Text input](control-text-input.md)**, and **[Toggle](control-toggle.md)** controls. **OnSelect** – Actions to perform when the user taps or clicks a control. -* Applies to **[Add picture](control-add-picture.md)**, **[Button](control-button.md)**, **[Camera](control-camera.md)**, **[Check box](control-check-box.md)**, **[Column chart](control-column-line-chart.md)**, **[Date Picker](control-date-picker.md)**, **[Drop down](control-drop-down.md)**, **[Export](control-export-import.md)**, **[HTML text](control-html-text.md)**, **[Icon](control-shapes-icons.md)**, **[Image](control-image.md)**, **[Import](control-export-import.md)**, **[Label](control-text-box.md)**, **[Line chart](control-column-line-chart.md)**, **[List Box](control-list-box.md)**, **[Microphone](control-microphone.md)**, **[PDF viewer](control-pdf-viewer.md)**, **[Pen input](control-pen-input.md)**, **[Pie chart](control-pie-chart.md)**, **[Radio](control-radio.md)**, **[Rating](control-rating.md)**, **[Shape](control-shapes-icons.md)**, **[Slider](control-slider.md)**, **[Text input](control-text-input.md)**, **[Timer](control-timer.md)**, and **[Toggle](control-toggle.md)** controls. +* Applies to **[Add picture](control-add-picture.md)**, **[Button](control-button.md)**, **[Camera](control-camera.md)**, **[Check box](control-check-box.md)**, **[Column chart](control-column-line-chart.md)**, **[Combo box](control-combo-box.md)**, **[Date Picker](control-date-picker.md)**, **[Drop down](control-drop-down.md)**, **[Export](control-export-import.md)**, **[HTML text](control-html-text.md)**, **[Icon](control-shapes-icons.md)**, **[Image](control-image.md)**, **[Import](control-export-import.md)**, **[Label](control-text-box.md)**, **[Line chart](control-column-line-chart.md)**, **[List Box](control-list-box.md)**, **[Microphone](control-microphone.md)**, **[PDF viewer](control-pdf-viewer.md)**, **[Pen input](control-pen-input.md)**, **[Pie chart](control-pie-chart.md)**, **[Radio](control-radio.md)**, **[Rating](control-rating.md)**, **[Shape](control-shapes-icons.md)**, **[Slider](control-slider.md)**, **[Text input](control-text-input.md)**, **[Timer](control-timer.md)**, and **[Toggle](control-toggle.md)** controls. **Reset** – Whether a control reverts to its default value. Also see the **[Reset](../functions/function-reset.md)** function. -* Applies to **[Audio](control-audio-video.md)**, **[Check box](control-check-box.md)**, **[Drop down](control-drop-down.md)**, **[List Box](control-list-box.md)**, **[Microphone](control-microphone.md)**, **[Radio](control-radio.md)**, **[Rating](control-rating.md)**, **[Slider](control-slider.md)**, **[Text input](control-text-input.md)**, **[Timer](control-timer.md)**, **[Toggle](control-toggle.md)**, and **[Video](control-audio-video.md)** controls. +* Applies to **[Audio](control-audio-video.md)**, **[Check box](control-check-box.md)**, **[Combo box](control-combo-box.md)**, **[Drop down](control-drop-down.md)**, **[List Box](control-list-box.md)**, **[Microphone](control-microphone.md)**, **[Radio](control-radio.md)**, **[Rating](control-rating.md)**, **[Slider](control-slider.md)**, **[Text input](control-text-input.md)**, **[Timer](control-timer.md)**, **[Toggle](control-toggle.md)**, and **[Video](control-audio-video.md)** controls. **Text** – Text that appears on a control or that the user types into a control. @@ -54,7 +54,7 @@ Configure whether the user can see and interact with a control. **Tooltip** – Explanatory text that appears when the user hovers over a control. -* Applies to **[Audio](control-audio-video.md)**, **[Button](control-button.md)**, **[Camera](control-camera.md)**, **[Check box](control-check-box.md)**, **[Drop down](control-drop-down.md)**, **[HTML text](control-html-text.md)**, **[Image](control-image.md)**, **[Label](control-text-box.md)**, **[List Box](control-list-box.md)**, **[Microphone](control-microphone.md)**, **[PDF viewer](control-pdf-viewer.md)**, **[Pen input](control-pen-input.md)**, **[Radio](control-radio.md)**, **[Rating](control-rating.md)**, **[Slider](control-slider.md)**, **[Text input](control-text-input.md)**, **[Timer](control-timer.md)**, **[Toggle](control-toggle.md)**, and **[Video](control-audio-video.md)** controls. +* Applies to **[Audio](control-audio-video.md)**, **[Button](control-button.md)**, **[Camera](control-camera.md)**, **[Check box](control-check-box.md)**, **[Combo box](control-combo-box.md)**, **[Drop down](control-drop-down.md)**, **[HTML text](control-html-text.md)**, **[Image](control-image.md)**, **[Label](control-text-box.md)**, **[List Box](control-list-box.md)**, **[Microphone](control-microphone.md)**, **[PDF viewer](control-pdf-viewer.md)**, **[Pen input](control-pen-input.md)**, **[Radio](control-radio.md)**, **[Rating](control-rating.md)**, **[Slider](control-slider.md)**, **[Text input](control-text-input.md)**, **[Timer](control-timer.md)**, **[Toggle](control-toggle.md)**, and **[Video](control-audio-video.md)** controls. **Value** – The value of an input control. @@ -62,7 +62,7 @@ Configure whether the user can see and interact with a control. **Visible** – Whether a control appears or is hidden. -* Applies to **[Add picture](control-add-picture.md)**, **[Audio](control-audio-video.md)**, **[Button](control-button.md)**, **[Camera](control-camera.md)**, **[Card](control-card.md)**, **[Check box](control-check-box.md)**, **[Column chart](control-column-line-chart.md)**, **[Date Picker](control-date-picker.md)**, **[Display form](control-form-detail.md)**, **[Drop down](control-drop-down.md)**, **[Edit form](control-form-detail.md)**, **[Export](control-export-import.md)**, **[Gallery](control-gallery.md)**, **[HTML text](control-html-text.md)**, **[Icon](control-shapes-icons.md)**, **[Image](control-image.md)**, **[Import](control-export-import.md)**, **[Label](control-text-box.md)**, **[Line chart](control-column-line-chart.md)**, **[List Box](control-list-box.md)**, **[Microphone](control-microphone.md)**, **[PDF viewer](control-pdf-viewer.md)**, **[Pen input](control-pen-input.md)**, **[Pie chart](control-pie-chart.md)**, **[Radio](control-radio.md)**, **[Rating](control-rating.md)**, **[Shape](control-shapes-icons.md)**, **[Slider](control-slider.md)**, **[Text input](control-text-input.md)**, **[Timer](control-timer.md)**, **[Toggle](control-toggle.md)**, and **[Video](control-audio-video.md)** controls. +* Applies to **[Add picture](control-add-picture.md)**, **[Audio](control-audio-video.md)**, **[Button](control-button.md)**, **[Camera](control-camera.md)**, **[Card](control-card.md)**, **[Check box](control-check-box.md)**, **[Column chart](control-column-line-chart.md)**, **[Combo box](control-combo-box.md)**, **[Date Picker](control-date-picker.md)**, **[Display form](control-form-detail.md)**, **[Drop down](control-drop-down.md)**, **[Edit form](control-form-detail.md)**, **[Export](control-export-import.md)**, **[Gallery](control-gallery.md)**, **[HTML text](control-html-text.md)**, **[Icon](control-shapes-icons.md)**, **[Image](control-image.md)**, **[Import](control-export-import.md)**, **[Label](control-text-box.md)**, **[Line chart](control-column-line-chart.md)**, **[List Box](control-list-box.md)**, **[Microphone](control-microphone.md)**, **[PDF viewer](control-pdf-viewer.md)**, **[Pen input](control-pen-input.md)**, **[Pie chart](control-pie-chart.md)**, **[Radio](control-radio.md)**, **[Rating](control-rating.md)**, **[Rich text editor](control-richtexteditor.md)**, **[Shape](control-shapes-icons.md)**, **[Slider](control-slider.md)**, **[Text input](control-text-input.md)**, **[Timer](control-timer.md)**, **[Toggle](control-toggle.md)**, and **[Video](control-audio-video.md)** controls. diff --git a/powerapps-docs/maker/canvas-apps/copilot-answer-control-overview.md b/powerapps-docs/maker/canvas-apps/copilot-answer-control-overview.md index ea5e1655d3..ed1967b029 100644 --- a/powerapps-docs/maker/canvas-apps/copilot-answer-control-overview.md +++ b/powerapps-docs/maker/canvas-apps/copilot-answer-control-overview.md @@ -2,13 +2,14 @@ title: Overview of Copilot answer control for canvas apps description: Use the Copilot answer control for canvas app. author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.collection: - bap-ai-copilot - get started ms.reviewer: mkaur -ms.date: 2/13/2024 +ms.date: 5/27/2025 +ms.update-cycle: 180-days ms.subservice: canvas-maker ms.author: arijitba search.audienceType: @@ -37,13 +38,8 @@ This setting can be found in the [Power Platform admin center](https://admin.pow With your [canvas app open for editing](edit-app.md) in Power Apps Studio: -1. On the command bar, select **Insert** and then select one of the following options: - - - **Modern** > **Copilot answer (preview)** - - **Classic** > **Copilot answer (preview)** - - :::image type="content" source="media/answer-control/answer-control-insert.png" alt-text="Insert answer control"::: - +1. On the command bar, select **Insert** and then select **Copilot answer (preview)** + 1. When the **Copilot answer (preview)** control is added to the canvas app, select a data source from the pane. Copilot only supports Dataverse tables. :::image type="content" source="media/answer-control/answer-control-select-data-type.png" alt-text="Select data source"::: diff --git a/powerapps-docs/maker/canvas-apps/copresence-power-apps-studio.md b/powerapps-docs/maker/canvas-apps/copresence-power-apps-studio.md index 5a32bacc05..b120c2e970 100644 --- a/powerapps-docs/maker/canvas-apps/copresence-power-apps-studio.md +++ b/powerapps-docs/maker/canvas-apps/copresence-power-apps-studio.md @@ -3,8 +3,8 @@ title: Collaborate on canvas apps in Microsoft Power Apps Studio description: Learn how to use copresence and coauthoring to view who's working on the same canvas app as you and edit it together in real time. author: mkaur ms.author: szlo -ms.date: 10/29/2024 -ms.topic: conceptual +ms.date: 6/17/2025 +ms.topic: how-to ms.reviewer: mkaur ms.subservice: canvas-maker search.audienceType: @@ -18,19 +18,19 @@ ms.custom: - canvas --- -# Collaborate on canvas apps in Power Apps Studio +# Understand coauthoring and copresence in canvas apps -You can use two features in Power Apps Studio to collaborate with other makers on canvas apps: copresence and coauthoring. +Collaborate on canvas apps in Power Apps Studio using copresence and coauthoring. These features let you work with other makers in real time, improving productivity and teamwork. -**Copresence** lets you view who else is working on the same app as you, but only one person can edit the app at a time. +- **[Copresence](copresence-power-apps-studio.md#use-copresence-to-see-whos-working-on-the-same-app)** shows who else is working on the same app, but only one person can edit the app at a time. The first person who opens the app gets editing control -**Coauthoring** lets multiple people edit the app at the same time and view each other's changes in real time. +- **[Coauthoring](copresence-power-apps-studio.md#use-coauthoring-to-edit-the-same-app-together)** lets multiple people edit the app at the same time and see each other's changes in real time. -## Use copresence to view who's working on the same app +## Use copresence to see who's working on the same app When you open an app for editing in Power Apps Studio, indicators might show that other people are also working on the app. These indicators are part of the copresence feature. -The first person who opens the app has editing control. If another person tries to open the app, a notification lets them know that someone else is editing the app and they're viewing it in read-only mode. In read-only mode, you can't add new screens, edit control properties, or use the command bar. You can save a copy of the app. +The first person who opens the app gets editing control. If another person opens the app, a notification lets them know that someone else is editing the app, and they're viewing it in read-only mode. In read-only mode, you can't add new screens, edit control properties, or use the command bar. You can save a copy of the app. The command bar shows the names and icons of other makers who are editing or viewing the app. The left navigation pane shows the app's structure and highlights which part of the app someone else is editing. You also get a notification to refresh the app when someone saves changes to the app. @@ -39,40 +39,43 @@ The command bar shows the names and icons of other makers who are editing or vie **Legend**: 1. The command bar shows the names and icons of other makers who are editing or viewing the app. -1. A **Read-only** warning appears if someone already has editing control elsewhere. However, you can select **Override** to become the main author and regain editing rights. +1. A **Read-only** warning appears if someone already has editing control elsewhere. You can select **Override** to become the main author and regain editing rights. 1. In **Tree view**, you see the app's structure and other people's profile pictures on the part of the app someone else is editing. > [!TIP] -> If you're inactive for two hours while editing an app, Power Apps asks if you want to continue editing or switch to read-only mode. If you don't respond, the system puts you in read-only mode so that other makers can become the editor. +> If you're inactive for two hours while editing an app, Power Apps asks if you want to keep editing or switch to read-only mode. If you don't respond, the system puts you in read-only mode so other makers can become the editor. > -> If autosave is turned on, the changes you made are automatically saved. If autosave isn't turned on, Power Apps notifies you that you're no longer editing and lets you save a copy of your changes. +> If autosave is on, your changes are automatically saved. If autosave isn't on, Power Apps notifies you that you're no longer editing and lets you save a copy of your changes. ## Use coauthoring to edit the same app together -Coauthoring is a new feature that allows multiple makers to edit a canvas app at the same time. When you use coauthoring, you can tell where other makers are working on the app and view their changes in real time. +Coauthoring lets multiple makers edit a canvas app at the same time. When you use coauthoring, you can tell where other makers are working on the app and view their changes in real time. :::image type="content" source="media/copresence/coauthoring.png" alt-text="Screenshot of coauthoring indicators in Power Apps Studio with annotations." lightbox="media/copresence/coauthoring.png" ::: -When multiple editors are working on the app, their avatars are shown. +When multiple editors work on the app, their avatars show. -- The left navigation pane shows the app's structure in **Tree view** and reveals which part of the app someone else is editing. For example, you might be editing **Screen 1**, while someone else is editing **Screen 2**. -- The area that another maker is editing is highlighted and shows their initials. For example, someone else might edit a part of a form, which is highlighted for the first user. +- The left navigation pane shows the app's structure in **Tree view** and shows which part of the app someone else is editing. For example, you might edit **Screen 1**, while someone else edits **Screen 2**. +- The area that another maker edits is highlighted and shows their initials. For example, someone else might edit a part of a form, which is highlighted for the first user. > [!IMPORTANT] -> Multiple makers can select and edit a control at the same time. Be careful not to overwrite each other's edits. +> Multiple makers can select and edit a control at the same time. Be careful not to overwrite each other's changes. -### Turn on coauthoring +## Turn on coauthoring -To use coauthoring, you need to turn it on for each app. If you turn on coauthoring, it overrides the copresence feature. +To use coauthoring, you need to turn it on for each app. When you turn on coauthoring, it overrides the copresence feature. -1. Open your app for editing in Power Apps Studio. +1. [Open your app for editing](edit-app.md) in Power Apps Studio. 1. Go to **Settings** > **Updates** > **New**. +1. In the search box, type **coauthor**. 1. Turn on the **Coauthoring** toggle. -### Limitations of coauthoring + :::image type="content" source="media/copresence/coauthor-settings.png" alt-text="Screenshot of coauthoring settings"::: -- When more than one maker is editing an app, the following actions aren't available: +## Limitations of coauthoring + +- When more than one maker edits an app, the following actions aren't available: - Search - Save as @@ -80,15 +83,15 @@ To use coauthoring, you need to turn it on for each app. If you turn on coauthor - Undo and redo - Switch authoring versions -- The maximum number of coauthors is 10, either in one session or across a total of 10 tabs, depending on which limit is reached first. Any other coauthors or tabs beyond 10 are in [copresence](#use-copresence-to-view-whos-working-on-the-same-app) and can't edit the app or view real-time updates. +- The maximum number of coauthors is 10, either in one session or across a total of 10 tabs, depending on which limit is reached first. Any other coauthors or tabs beyond 10 are in [copresence](copresence-power-apps-studio.md#use-copresence-to-see-whos-working-on-the-same-app) and can't edit the app or view real-time updates. -- The app language is locked to the locale of the first maker who opens the app for editing. +- The app language is locked to the locale of the first maker who opens the app for editing. Opening the same app in a different locale can lead to errors in formulas. - Cut isn't available. - Coauthoring is turned off in the [Monitor tool](../monitor-overview.md). -- You might encounter a problem with the following actions: +- You can encounter a problem with the following actions: - Renaming a control - Adding AI Builder components diff --git a/powerapps-docs/maker/canvas-apps/create-blank-app.md b/powerapps-docs/maker/canvas-apps/create-blank-app.md index df8e400620..577142e002 100644 --- a/powerapps-docs/maker/canvas-apps/create-blank-app.md +++ b/powerapps-docs/maker/canvas-apps/create-blank-app.md @@ -7,7 +7,7 @@ ms.topic: quickstart ms.custom: canvas ms.collection: get-started ms.reviewer: -ms.date: 03/13/2025 +ms.date: 05/16/2025 ms.subservice: canvas-maker ms.author: tapanm search.audienceType: @@ -24,7 +24,7 @@ In Power Apps, create a blank canvas app that you can customize further and add ## Prerequisites -Ensure you have the [Environment Maker](/power-platform/admin/database-security#predefined-security-roles) security role, either directly or through a Dataverse team that is part of the **AAD Security Group** category. +Ensure you have the [Environment Maker](/power-platform/admin/database-security#predefined-security-roles) security role, either directly or through a Microsoft Dataverse team that is part of the **AAD Security Group** category. Custom security roles are not currently supported for Canvas App maker scenarios. ## Create a blank canvas app diff --git a/powerapps-docs/maker/canvas-apps/create-component.md b/powerapps-docs/maker/canvas-apps/create-component.md index ae5b53f303..a1d9c072f7 100644 --- a/powerapps-docs/maker/canvas-apps/create-component.md +++ b/powerapps-docs/maker/canvas-apps/create-component.md @@ -3,7 +3,7 @@ title: Canvas component overview description: Learn about how to create reusable components for canvas apps. author: jorisdg ms.subservice: canvas-developer -ms.topic: article +ms.topic: how-to ms.date: 07/22/2022 ms.author: jorisde ms.reviewer: mkaur diff --git a/powerapps-docs/maker/canvas-apps/create-edit-tables.md b/powerapps-docs/maker/canvas-apps/create-edit-tables.md index aa2f1f9d05..a3cadabd0d 100644 --- a/powerapps-docs/maker/canvas-apps/create-edit-tables.md +++ b/powerapps-docs/maker/canvas-apps/create-edit-tables.md @@ -2,7 +2,7 @@ title: Create and edit Dataverse tables in canvas apps using the table designer description: Create and edit Dataverse tables in canvas apps using the table designer. author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 10/29/2024 diff --git a/powerapps-docs/maker/canvas-apps/create-performant-apps-overview.md b/powerapps-docs/maker/canvas-apps/create-performant-apps-overview.md index 28ae55d518..d7ef51bd7c 100644 --- a/powerapps-docs/maker/canvas-apps/create-performant-apps-overview.md +++ b/powerapps-docs/maker/canvas-apps/create-performant-apps-overview.md @@ -1,10 +1,10 @@ --- -title: Overview on how to create performant Power Apps -description: Learn about how to create well performing Power Apps. +title: How to create performant Power Apps +description: Learn how to create performant Power Apps for faster, more efficient apps. Discover key principles and tips to optimize your app's performance. author: lancedMicrosoft ms.subservice: canvas-developer -ms.topic: article -ms.date: 02/26/2025 +ms.topic: how-to +ms.date: 06/27/2025 ms.author: lanced ms.reviewer: mkaur search.audienceType: @@ -17,39 +17,29 @@ contributors: # Overview of creating performant apps -## How and why to use performant patterns and avoid anti-patterns +Creating performant Power Apps ensures your apps run efficiently and providing a better user experience. This article explains key patterns, anti-patterns to avoid, and design principles to help you build high-performing Power Apps for your organization. -Performant patterns should be used to enhance the efficiency of an app, while anti-patterns should be avoided as they can decrease the effectiveness of an app. It's important to understand how and why to use performant patterns and avoid anti-patterns in order to optimize the performance of your app. +- **App patterns and Power Apps productivity gain**: Power Apps makes it easier to build enterprise-grade apps by using established app patterns. Patterns are groups of Power Apps elements that work together, like data sources, collections, controls, Power Automate, and pages. Power Apps includes key performant patterns by default, so low-code developers quickly build functional enterprise apps. Deployment and administration tasks are also straightforward. With Power Apps, your team is more productive because many elements don't need your attention. -### App patterns and Power Apps productivity gain +- **Power Apps steers towards performant patterns**: Power Apps guides you toward well known performant patterns by default. These patterns include streamlined data loading at launch, automatic incremental paging, caching data for collections, and loading only essential data for each page. These proven patterns work well for data-heavy enterprise apps. Many successful Power Apps implementations use more than 100 tables and over 50 screens while keeping excellent performance. -Power Apps simplifies the development of enterprise-grade apps by utilizing established app patterns. Patterns are collections of Power Apps elements that work cohesively together. These Power Apps elements include data sources, collections, controls, Power Automate, and pages. Key performant patterns are built into Power Apps as defaults, enabling low-code developers to quickly create functional enterprise-grade apps. Additionally, deployment and Power Apps administration tasks are straightforward. With Power Apps, you and your development team can be more productive, as there are many elements that no longer require your attention. +- **Falling into anti-patterns**: When you build an app on any development platform, you risk making it perform poorly because of anti-patterns. These patterns can cause slow loading, slow page transitions, and make it hard to update or get data. Common anti-patterns include loading too much data, turning everything into collections, and overloading OnStart. People often use these patterns to work around real or perceived Power Apps limitations. Even with guidance, you might still use a bad pattern and end up with a slow app. -### Power Apps steers towards performant patterns +## Key performance design principles -The default Power Apps behavior guides you towards well known performant patterns. These patterns include streamlined data loading at launch, automatic incremental paging of data, caching of data for collections, and loading only essential data for each page. These proven patterns are effective for data-heavy enterprise applications. Many successful Power Apps implementations follow these guidelines, utilizing more than 100 tables and over 50 screens while maintaining excellent performance. +When building your app, consider these key performance principles to ensure it runs efficiently. These principles cover most aspects needed to enhance your app's speed. Some performance suggestions might appear in multiple sections due to their interrelated nature. -### Falling into anti-patterns +- [Optimize page loads](fast-app-page-load.md): Optimize your apps for app and page load speed. Minimize, delay, or eliminate actions that prevent fast app or page load. +- [Small data payloads](small-data-payloads.md): Keep the amount of data that is bulk retrieved small. +- [Optimize query data patterns](optimized-query-data-patterns.md): Do data mashups on the server, not in your app. +- [Fast calculations](efficient-calculations.md): Work with Power Fx, not against it. -When you create an app on any development platform, there's a risk of creating an app that performs poorly due to anti-patterns. These patterns can cause slow loading times, slow transitions between pages, and difficulty updating and retrieving data. Some common examples of anti-patterns include loading excessive amounts of data, transforming everything into collections, and overloading OnStart. These patterns are often adopted when attempting to work around perceived or real limitations in Power Apps. While we try to guide you towards the best patterns, it's still possible to unintentionally use a bad pattern, resulting in an app that performs poorly. - -## Four key performance design principles - -Below are four key performance principles to consider while building your app. These principles aren't fully independent of each other and therefore you'll find some performance suggestions repeated in different sections. To best understand these articles, it also is useful to understand the [Execution phases of a Power App](execution-phases-data-flow.md) article. If you have an existing app that doesn't perform well, use the principles below to examine your app. - -Each of the principles below links to a page with greater detail on the subject. - -1. [Optimize page loads](fast-app-page-load.md): Optimize your apps for app and page load speed. Minimize, delay, or eliminate actions that prevent fast app or page load. -2. [Small data payloads](small-data-payloads.md): Keep the amount of data that is bulk retrieved small. -3. [Optimize query data patterns](optimized-query-data-patterns.md): Do data mashups on the server, not in your app. -4. [Fast calculations](efficient-calculations.md): Work with Power Fx, not against it. - -These principles should cover most of what is necessary to make your app fast. +For a deeper understanding, also see [Execution phases of a Power App](execution-phases-data-flow.md) article. ## Additional performance guidance -There are other performance considerations to keep in mind. For additional guidance, see these articles: +Other performance considerations can affect your app. For more information, see these articles: - * [Other performance considerations](app-performance-considerations.md): Discusses additional factors, which might affect performance. - * [Build large complex apps](working-with-large-apps.md): Outlines key factors to consider while building a large app. - * [Canvas apps coding standards and guidelines](https://www.microsoft.com/en-us/power-platform/blog/wp-content/uploads/2024/06/PowerApps-canvas-app-coding-standards-and-guidelines.pdf): Outlines general coding and development guidelines that can help in building an app. +- [Other performance considerations](app-performance-considerations.md): Discusses other factors that might affect performance. +- [Build large complex apps](working-with-large-apps.md): Lists key factors to consider when building a large app. +- [Canvas app coding standards and guidelines](https://www.microsoft.com/power-platform/blog/wp-content/uploads/2024/06/PowerApps-canvas-app-coding-standards-and-guidelines.pdf): Lists general coding and development guidelines that help you build an app. diff --git a/powerapps-docs/maker/canvas-apps/create-responsive-layout.md b/powerapps-docs/maker/canvas-apps/create-responsive-layout.md index e503484c90..e7acce9e31 100644 --- a/powerapps-docs/maker/canvas-apps/create-responsive-layout.md +++ b/powerapps-docs/maker/canvas-apps/create-responsive-layout.md @@ -3,7 +3,7 @@ title: Create responsive layouts in canvas apps description: Learn about configuring Height, Width, X, and Y properties of controls in canvas apps. author: emcoope-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur-msft ms.date: 02/11/2025 diff --git a/powerapps-docs/maker/canvas-apps/create-update-collection.md b/powerapps-docs/maker/canvas-apps/create-update-collection.md index f6d0a3a0b5..04897720c8 100644 --- a/powerapps-docs/maker/canvas-apps/create-update-collection.md +++ b/powerapps-docs/maker/canvas-apps/create-update-collection.md @@ -3,7 +3,7 @@ title: Create and update a collection in a canvas app description: Create a collection, add items to the collection, and remove one or all items from a collection in a canvas app. author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 02/6/2025 @@ -15,6 +15,7 @@ contributors: - gregli-msft - mduelae --- + # Create and update a collection in a canvas app Use a collection to store data that users can manage in your app. A collection is a group of items that are similar, such as products in a product list. For more information about different types of variables such as collections: [Understand canvas-app variables](working-with-variables.md). @@ -34,15 +35,15 @@ Watch this video to learn how to create and update a collection: 1. Rename the control by selecting its ellipsis in the left navigation pane, selecting **Rename**, and then typing **ProductName**. - ![Rename a control.](./media/create-update-collection/rename-textbox.png) + :::image type="content" source="./media/create-update-collection/rename-textbox.png" alt-text="Screenshot that shows you how to rename a control."::: 1. Add a **Drop down** control. - ![Add dropdown list.](./media/create-update-collection/add-dropdown.png) + :::image type="content" source="./media/create-update-collection/add-dropdown.png" alt-text="Screenshot that shows how to add a dropdown list."::: 1. Rename the **Drop down** control **Colors**, and make sure that the **Items** property is selected in the property list. - ![Items property.](./media/create-update-collection/items-property.png) + :::image type="content" source="./media/create-update-collection/items-property.png" alt-text="Screenshot that shows the Items property next to the formula bar."::: 1. In the formula bar, replace **DropDownSample** with this expression: @@ -60,17 +61,13 @@ Watch this video to learn how to create and update a collection: ) ``` +1. To preview the app, press `F5` or select the play button. Type some text into **ProductName**, select an option in **Colors**, and then select **Add**. -1. Press F5 or select the play button to preview the app. Type some text into **ProductName**, select an option in **Colors**, and then select **Add**. - - ![Preview of the app.](./media/create-update-collection/preview-add.png) - -1. Repeat the previous step at least two more times, and then press Esc. +1. Repeat the previous step at least two more times, and then press `Esc`. 1. Select the **Variables** pane and then select **Collections** to see the collections that you created. - ![Show collections.](./media/create-update-collection/collections.png) - + :::image type="content" source="./media/create-update-collection/collections.png" alt-text="Screenshot that shows the Collections section of the Variables list."::: ## Show a collection @@ -78,24 +75,18 @@ Watch this video to learn how to create and update a collection: 1. Set the gallery's **Items** property to **ProductList**. -1. Select the gallery in the tree view and then select **Fields**. 1. Set the subtitle field to **Color**, and set the title field to **Product**. +1. Select the gallery in the tree view and then select **Fields**. - ![Set the gallery's Items property, and change the fields that it shows.](./media/create-update-collection/configure-gallery.png) +1. Set the subtitle field to **Color**, and set the title field to **Product**. 1. Select **Layout** > **Title and subtitle**. - ![Change layout of the gallery.](./media/create-update-collection/change-layout.png) - - Your screen resembles this example: - - ![First screen example.](./media/create-update-collection/screen-example1.png) + :::image type="content" source="./media/create-update-collection/change-layout.png" alt-text="Screenshot that shows the Layout tab with Title and subtitle tile selected."::: ## Remove one or all items 1. Select the gallery and add a **Trash** icon to the gallery template. - ![Add trash icon.](./media/create-update-collection/trash-icon.png) - 1. Set the icon's **OnSelect** property to this formula: `Remove(ProductList, ThisItem)` @@ -110,21 +101,19 @@ Watch this video to learn how to create and update a collection: 1. [Create a connection to a list created using Microsoft Lists](connections/connection-sharepoint-online.md#create-a-sharepoint-connection). -1. Add a button, and set its **[OnSelect](controls/properties-core.md)** property to this function, replacing *ListName* with the name of your list:
    +1. Add a button, and set its **[OnSelect](controls/properties-core.md)** property to this function, replacing *ListName* with the name of your list: `Collect(MySPCollection, ListName)` - This function creates a collection that's named **MySPCollection** and that contains the same data as your list. - -1. While holding down the Alt key, select the button. + This function creates a collection named **MySPCollection** and that contains the same data as your list. +1. While holding down the `Alt` key, select the button. For information about how to show data in a form (with drop-down lists, date pickers, and people pickers): [Edit form and Display form controls](controls/control-form-detail.md). ## Next steps -- Review the [reference topic](functions/function-clear-collect-clearcollect.md) for the **Collect** function. +- Review the [reference article](functions/function-clear-collect-clearcollect.md) for the **Collect** function. - Learn how to shape data in a collection by using the [AddColumns, DropColumns, RenameColumns, and ShowColumns](functions/function-table-shaping.md) functions. - [!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/canvas-apps/create-update-records-bulk.md b/powerapps-docs/maker/canvas-apps/create-update-records-bulk.md index a7b83fef00..f2d52f4b17 100644 --- a/powerapps-docs/maker/canvas-apps/create-update-records-bulk.md +++ b/powerapps-docs/maker/canvas-apps/create-update-records-bulk.md @@ -3,7 +3,7 @@ title: Create or update bulk records in Power Apps description: Learn how to update or create bulk records in canvas apps. author: denise-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 6/18/2021 diff --git a/powerapps-docs/maker/canvas-apps/customize-card.md b/powerapps-docs/maker/canvas-apps/customize-card.md index 736220980a..f0559191af 100644 --- a/powerapps-docs/maker/canvas-apps/customize-card.md +++ b/powerapps-docs/maker/canvas-apps/customize-card.md @@ -3,7 +3,7 @@ title: Customize a card in a canvas app description: Change the default control that appears in a card on a Details or Edit form in a canvas app. author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: ms.date: 03/18/2018 diff --git a/powerapps-docs/maker/canvas-apps/customize-forms-sharepoint.md b/powerapps-docs/maker/canvas-apps/customize-forms-sharepoint.md index f033783673..a96f81be73 100644 --- a/powerapps-docs/maker/canvas-apps/customize-forms-sharepoint.md +++ b/powerapps-docs/maker/canvas-apps/customize-forms-sharepoint.md @@ -3,7 +3,7 @@ title: Customize forms in canvas apps description: Learn about how to specify which data to show in a canvas app form, in which order to show them, and in which controls. author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: ms.date: 06/18/2020 diff --git a/powerapps-docs/maker/canvas-apps/data-platform-create-app-scratch.md b/powerapps-docs/maker/canvas-apps/data-platform-create-app-scratch.md index 5c55269bca..2be704310e 100644 --- a/powerapps-docs/maker/canvas-apps/data-platform-create-app-scratch.md +++ b/powerapps-docs/maker/canvas-apps/data-platform-create-app-scratch.md @@ -3,10 +3,10 @@ title: Create a canvas app using Microsoft Dataverse description: Learn about how to create a canvas app to add, update, and delete records in Microsoft Dataverse. author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: -ms.date: 03/13/2025 +ms.date: 05/16/2025 ms.subservice: canvas-maker ms.author: tapanm search.audienceType: @@ -24,7 +24,7 @@ When building an app from Dataverse, you don't need to create a connection from ## Prerequisites - [Switch to an environment](intro-maker-portal.md#choose-an-environment) where a database is created with sample data. If you have an appropriate license, you can [create an environment](/power-platform/admin/create-environment) to meet this need. -- You must be assigned to the [Environment Maker](/power-platform/admin/database-security#predefined-security-roles) security role. +- Ensure you have the [Environment Maker](/power-platform/admin/database-security#predefined-security-roles) security role, either directly or through a Dataverse team that is part of the **AAD Security Group** category. Custom security roles are not currently supported for Canvas App maker scenarios. ## Create an app diff --git a/powerapps-docs/maker/canvas-apps/delegation-overview.md b/powerapps-docs/maker/canvas-apps/delegation-overview.md index b91882ebd7..5bead8b7e5 100644 --- a/powerapps-docs/maker/canvas-apps/delegation-overview.md +++ b/powerapps-docs/maker/canvas-apps/delegation-overview.md @@ -6,7 +6,7 @@ author: lancedMicrosoft ms.topic: overview ms.custom: canvas ms.reviewer: mkaur -ms.date: 3/14/2025 +ms.date: 5/22/2025 ms.subservice: canvas-maker ms.author: lanced search.audienceType: @@ -20,23 +20,23 @@ contributors: # Query limitations: Delegation and query limits ## Understanding delegation -Power Apps works best with a back-end data source when a Power Fx query can be fully translated into an equivalent query that can be run on the data source. Power Apps sends a query the data source understands, the query is performed on the data source, and the query results are returned to Power Apps. For instance, the data source might do the work of filtering the data on the data source and only return the rows that meet the filter criteria. When this works correctly, we say that the query is **delegated** to the data source to do the work of the query. +Power Apps works best with a back-end data source when a Power Fx query fully translates into an equivalent query that runs on the data source. Power Apps sends a query the data source understands, the data source runs the query, and Power Apps gets the results. For example, the data source filters the data and only returns the rows that meet the filter criteria. When this works, the query is **delegated** to the data source. -However, Power Fx queries can't always be translated into equivalent queries on all data sources. For example, Dataverse supports more query features than Excel. Dataverse supports the 'in' (membership) query operator and Excel doesn't. We say the query is **non-delegable** if a query uses a feature that the data source doesn't support. In general, if any part of a query expression is non-delegable we don't delegate any part of the query. +But Power Fx queries can't always translate into equivalent queries on every data source. For example, Dataverse supports more query features than Excel. Dataverse supports the 'in' (membership) query operator, but Excel doesn't. A query is **non-delegable** if it uses a feature the data source doesn't support. If any part of a query expression is nondelegable, Power Apps doesn't delegate any part of the query. -When a query is non-delegable, Power Apps only gets the first 500 records from the data source and then perform the actions in the query. This limit can be upped to 2,000 records [Changing the limit](#changing-the-limit) **Power Apps limits the result size to 500 records to preserve good performance of Power Apps.** We found through experimentation that result sets greater than these sizes introduce performance issues for your app and Power Apps in general. +When a query is nondelegable, Power Apps gets the first 500 records from the data source and then runs the actions in the query. You can increase this limit to 2,000 records. [Changing the limit](#changing-the-limit) **Power Apps limits the result size to 500 records to keep your app performing well.** Larger result sets can cause performance issues for your app and Power Apps. -However, this limitation can be a problem as the query may return incorrect results if the data on the data source exceeds 500/2000 records. For instance, consider the example where your data source has 10 Million records and your query needs to operate on the last part of the data. (For example, the family names that start with 'Z') However, your query has a non-delegable operator in it (for example, distinct.) In this case, you only get the first 500/2000 records and you have incorrect results. +But this limitation can be a problem because the query might return incorrect results if the data source has more than 500 or 2,000 records. For example, if your data source has 10 million records and your query needs to work on the last part of the data, like family names that start with 'Z', and your query uses a nondelegable operator like distinct, you only get the first 500 or 2,000 records. This means you get incorrect results. -**Create your Power Fx queries by using the delegable tables for your data source.** You should only use query functions that can be delegated. It's the only way to keep your app performing well and to ensure users can access all the information they need. +**Create your Power Fx queries by using the delegable tables for your data source.** Only use query functions that can be delegated. It's the only way to keep your app performing well and to make sure users can get all the information they need. -Take heed of delegation warnings that identify places where delegation isn't possible. If you work with small data sets (fewer than 500 records), you can use any data source and formula because the app can process data locally if the formula can't be delegated. +Pay attention to delegation warnings that show where delegation isn't possible. If you work with small data sets (fewer than 500 records), you can use any data source and formula because the app processes data locally if the formula can't be delegated. > [!NOTE] -> Delegation warnings help you manage your app so that it has correct results. If the data in your data source exceeds 500 records and a function can't be delegated, Power Fx will mark the formula with a blue underline. +> Delegation warnings help you manage your app so it returns correct results. If the data in your data source exceeds 500 records and a function can't be delegated, Power Fx marks the formula with a blue underline. ## Delegable data sources -Delegation is supported for certain tabular data sources only. If a data source supports delegation, its [connector documentation](/connectors/) outlines that support. For example, these tabular data sources are the most popular, and they support delegation: +Delegation works with certain tabular data sources only. If a data source supports delegation, its [connector documentation](/connectors/) explains that support. For example, these popular tabular data sources support delegation: - [Power Apps delegable functions and operations for Microsoft Dataverse](connections/connection-common-data-service.md#power-apps-delegable-functions-and-operations-for-dataverse) - [Power Apps delegable functions and operations for SharePoint](connections/connection-sharepoint-online.md#power-apps-delegable-functions-and-operations-for-sharepoint) @@ -44,20 +44,20 @@ Delegation is supported for certain tabular data sources only. If a data source - [Power Apps delegable functions and operations for Salesforce](/connectors/salesforce/#power-apps-delegable-functions-and-operations-for-salesforce) -Imported Excel workbooks (using the **Add static data to your app** data source), collections, and tables stored in context variables don't require delegation. All of this data is already in memory, and the full Power Apps language can be applied. +Imported Excel workbooks (using the **Add static data to your app** data source), collections, and tables stored in context variables don't need delegation. All this data is already in memory, so you can use the full Power Apps language. ## Delegable functions -The next step is to use only those formulas that can be delegated. Included here are the formula elements that could be delegated. However, every data source is different, and not all of them support all of these elements. Check for delegation warnings in your particular formula. +Use only formulas that can be delegated. This article lists formula elements that can be delegated. Every data source is different, and not all support all these elements. Check for delegation warnings in your formula. ### Filter functions -**[Filter](functions/function-filter-lookup.md)**, **[Search](functions/function-filter-lookup.md)**, **[First](functions/function-first-last.md)** and **[LookUp](functions/function-filter-lookup.md)** can be delegated. +**[Filter](functions/function-filter-lookup.md)**, **[Search](functions/function-filter-lookup.md)**, **[First](functions/function-first-last.md)**, and **[LookUp](functions/function-filter-lookup.md)** can be delegated. -Within the **Filter** and **LookUp** functions, you can use these with columns of the table to select the appropriate records: +Within the **Filter** and **LookUp** functions, use these with columns of the table to select the appropriate records: * **[And](functions/function-logicals.md)** (including **[&&](functions/operators.md)**), **[Or](functions/function-logicals.md)** (including **[||](functions/operators.md)**), **[Not](functions/function-logicals.md)** (including **[!](functions/operators.md)**) * **[In](functions/operators.md)** - > [!NOTE] - > [In](functions/operators.md) is only delegated for columns on the base data source. For instance, if the data source is **Accounts** table then `Filter(Accounts, Name in ["name1", "name2"])` delegates to the data source for evaluation. However, `Filter(Accounts, PrimaryContact.Fullname in ["name1", "name2"])` does not delegate since **Fullname** column is on a different table (**PrimaryContact**) than **Accounts**. The expression is evaluated locally. + > [!NOTE] + > [In](functions/operators.md) is only delegated for columns on the base data source. For example, if the data source is the **Accounts** table, `Filter(Accounts, Name in ["name1", "name2"])` delegates to the data source for evaluation. But `Filter(Accounts, PrimaryContact.Fullname in ["name1", "name2"])` isn't delegated because the **Full name** column is on a different table (**PrimaryContact**) than **Accounts**. The expression is evaluated locally. * **[=](functions/operators.md)**, **[<>](functions/operators.md)**, **[>=](functions/operators.md)**, **[<=](functions/operators.md)**, **[>](functions/operators.md)**, **[<](functions/operators.md)** * **[+](functions/operators.md)**, **[-](functions/operators.md)** * **[TrimEnds](functions/function-trim.md)** @@ -65,9 +65,9 @@ Within the **Filter** and **LookUp** functions, you can use these with columns o * **[StartsWith](functions/function-startswith.md)**, **[EndsWith](functions/function-startswith.md)** * Constant values that are the same across all records, such as control properties and [global and context variables](working-with-variables.md). -You can also use portions of your formula that evaluate to a constant value for all records. For example, **Left( Language(), 2 )**, **Date( 2019, 3, 31 )**, and **Today()** don't depend on any columns of the record and, therefore, return the same value for all records. These values can be sent to the data source as a constant and won't block delegation. +You can also use parts of your formula that evaluate to a constant value for all records. For example, **Left( Language(), 2 )**, **Date( 2019, 3, 31 )**, and **Today()** don't depend on any columns of the record, so they return the same value for all records. These values are sent to the data source as a constant and don't block delegation. -The previous list doesn't include these notable items: +The previous list doesn't include these notable items. * **[If](functions/function-if.md)** * **[*](functions/operators.md)**, **[/](functions/operators.md)**, **[Mod](functions/function-mod.md)** @@ -79,13 +79,18 @@ The previous list doesn't include these notable items: * Volatiles: **[Rand](functions/function-rand.md)**, ... * [Collections](working-with-variables.md) +## Delegation and collections +When you use `With`, `UpdateContext`, or `Set`, they internally create collections. Collections are a static in-memory list of records and don't participate in delegation. You don't see a delegation warning. + ## Query limitations -### Lookup levels -Power Apps supports two lookup levels. This means that a Power Fx query expression can have - at most - two lookup functions in it. This limitation is to preserve performance. If a query expression includes a lookup, Power Apps first does a query to get the base table. Then, it does a second query that expands the first table with the lookup information. We support one more level beyond that as a maximum. For offline, however, we only support one level of lookup expands. +### Lookup and expand levels +Power Apps lets you use up to two lookup levels. A Power Fx query expression can include a maximum of two lookup functions to maintain performance. When a query expression includes a lookup, Power Apps first queries the base table, then runs a second query to expand the first table with the lookup information. One additional level beyond this is supported as the maximum. But for offline scenarios, only one level of lookup expand is supported. + +Expand or join up to 20 entities in a single query. If you need to join more than 20 tables in one query, try creating a view on the data server if possible. ### Expression evaluation - property of entity must be on left side 'LHS' of equality operator -It's important to place the property of an entity to be compared in an expression on the left hand side 'LHS' of an equation. To illustrate, in the example below the entity property **'Business unit ID'.Name** is a property value and it must be placed on the LHS of the expression to be evaluated. The following expression succeeds: +Put the property of an entity to be compared on the left hand side (LHS) of an equation. For example, in the following expression, the entity property **'Business unit ID'.Name** is on the LHS and the expression works: ```power-fx Filter( @@ -98,7 +103,7 @@ Filter( DataCardValue37.Selected.'Date Range String'='Date Range String' ) ``` -However, this expression won't: +But this expression doesn't work: ```power-fx Filter( @@ -115,15 +120,15 @@ However, this expression won't: ### Sorting functions **[Sort](functions/function-sort.md)** and **[SortByColumns](functions/function-sort.md)** can be delegated. -In **Sort**, the formula can only be the name of a single column and can't include other operators or functions. +In **Sort**, the formula can only be the name of a single column and doesn't include other operators or functions. ### Aggregate functions -Certain aggregate functions can be delegated based on back-end support. Functions like **[Sum](functions/function-aggregates.md)**, **[Average](functions/function-aggregates.md)**, **[Min](functions/function-aggregates.md)**, and **[Max](functions/function-aggregates.md)** can be delegated. Counting functions, such as **[CountRows](functions/function-table-counts.md)** and **[Count](functions/function-table-counts.md)**, can also be delegated. However **[RemoveIf](functions/function-remove-removeif.md)** and **[UpdateIf](functions/function-update-updateif.md)** have delegation restrictions. Currently, only a limited number of data sources support delegation for these functions. For more details, refer to the [Delegation list](#delegable-data-sources). +Some aggregate functions can be delegated based on back-end support. Functions like **[Sum](functions/function-aggregates.md)**, **[Average](functions/function-aggregates.md)**, **[Min](functions/function-aggregates.md)**, and **[Max](functions/function-aggregates.md)** can be delegated. Counting functions, like **[CountRows](functions/function-table-counts.md)** and **[Count](functions/function-table-counts.md)**, can also be delegated. But **[RemoveIf](functions/function-remove-removeif.md)** and **[UpdateIf](functions/function-update-updateif.md)** have delegation restrictions. Only a limited number of data sources support delegation for these functions. For more information, see the [Delegation list](#delegable-data-sources). -## non-delegable functions -All other functions don't support delegation, including these notable functions: +## Nondelegable functions +All other functions can't delegate, including these notable functions: * **[FirstN](functions/function-first-last.md)**, **[Last](functions/function-first-last.md)**, **[LastN](functions/function-first-last.md)** * **[Choices](functions/function-choices.md)** @@ -131,61 +136,61 @@ All other functions don't support delegation, including these notable functions: * **[Collect](functions/function-clear-collect-clearcollect.md)**, **[ClearCollect](functions/function-clear-collect-clearcollect.md)** * **[GroupBy](functions/function-groupby.md)**, **[Ungroup](functions/function-groupby.md)** -## non-delegable limits -Formulas that can't be delegated will be processed locally. Local processing allows for the full breadth of the Power Apps formula language to be used. But at a price: all the data must be brought to the device first, which could involve retrieving a large amount of data over the network. That can take time, giving the impression that your app is slow or possibly crashed. +## Nondelegable limits +Formulas that can't be delegated are processed locally. Local processing lets you use the full Power Apps formula language. But there's a tradeoff: all the data must be brought to the device first, which can mean retrieving a large amount of data over the network. This process can take time and make your app seem slow or unresponsive. -To avoid this, Power Apps imposes a limit on the amount of data that can be processed locally: 500 records by default. We chose this number so that you would still have complete access to small data sets and you would be able to refine your use of large data sets by seeing partial results. +To avoid this, Power Apps limits the amount of data that can be processed locally to 500 records by default. This limit lets you use small data sets completely and refine your use of large data sets by seeing partial results. -Obviously care must be taken when using this facility because it can confuse users. For example, consider a **Filter** function with a selection formula that can't be delegated, over a data source that contains a million records. Because the filtering is done locally, only the first 500 records are scanned. If the desired record is record 501 or 500,001, it isn't considered or returned by **Filter**. +Be careful when using this feature because it can confuse users. For example, if you use the **Filter** function with a selection formula that can't be delegated over a data source with a million records, only the first 500 records are scanned. If the record you want is record 501 or 500,001, **Filter** doesn't consider or return it. -Aggregate functions can also cause confusion. Take **Average** over a column of that same million-record data source. **Average** can't be delegated in this case since the expression isn't delegated (see the [earlier note](#aggregate-functions)), so only the first 500 records are averaged. If you're not careful, a partial answer could be misconstrued as a complete answer by a user of your app. +Aggregate functions can also be confusing. For example, if you use **Average** over a column in that same million-record data source, **Average** can't be delegated because the expression isn't delegated (see the [earlier note](#aggregate-functions)). Only the first 500 records are averaged. If you're not careful, a user might think a partial answer is complete. ## Changing the limit -500 is the default number of records, but you can change this number for an entire app: +The default number of records is 500, but you can change this number for an entire app: 1. Select **Settings**. -1. Under **General**, change the **Data row limit** setting from 1 to 2000. +1. Under **General**, change the **Data row limit** setting from 1 to 2,000. -In some cases, you know that 2,000 (or 1,000 or 1,500) will satisfy the needs of your scenario. With care, you can increase this number to fit your scenario. As you increase this number, your app's performance may degrade, especially for wide tables with lots of columns. Still, the best answer is to delegate as much as you can. +In some cases, 2,000 (or 1,000 or 1,500) records is enough for your scenario. You can increase this number to fit your needs, but as you do, your app's performance can degrade, especially for wide tables with many columns. It's still best to delegate as much as possible. -To ensure that your app can scale to large data sets, reduce down this setting to 1. Anything that can't be delegated returns a single record, which should be easy to detect when testing your app. This can help avoid surprises when trying to take a proof-of-concept app to production. +To make sure your app can scale to large data sets, set this value to 1. Anything that can't be delegated returns a single record, which is easy to detect when testing your app. This helps you avoid surprises when moving a proof-of-concept app to production. ## Delegation warnings -To make it easier to know what is and isn't being delegated, Power Apps provides warning (yellow triangle) when you create a formula that contains something that can't be delegated. +Power Apps shows a warning (yellow triangle) when you create a formula that can't be delegated. This makes it easier to know what is and isn't delegated. -Delegation warnings appear only on formulas that operate on delegable data sources. If you don't see a warning and you believe your formula isn't being properly delegated, check the type of data source against the list of [delegable data sources](delegation-overview.md#delegable-data-sources) earlier in this article. +Delegation warnings show only on formulas that use delegable data sources. If you don't see a warning but think your formula isn't delegated, check your data source type against the list of [delegable data sources](delegation-overview.md#delegable-data-sources) earlier in this article. ## Examples -For this example, you'll automatically generate a three-screen app based on a SQL Server table named **[dbo].[Fruit]**. For information about how to generate the app, you can apply similar principles in the [article about Dataverse](data-platform-create-app.md) to SQL Server. +In this example, you automatically generate a three-screen app based on a SQL Server table named **[dbo].[Fruit]**. To learn how to generate the app, apply similar principles from the [article about Dataverse](data-platform-create-app.md) to SQL Server. ![Three-screen app.](./media/delegation-overview/products-afd.png) -The gallery's **Items** property is set to a formula that contains **SortByColumns** and **Search** functions, both of which can be delegated. +The gallery's **Items** property uses a formula with the **SortByColumns** and **Search** functions, both of which can be delegated. -In the search box, type **"Apple"**. +In the search box, enter **"Apple"**. -Marching dots appear momentarily near the top of the screen as the app communicates with SQL Server to process the search request. All records that meet the search criteria appear, even if the data source contains millions of records. +Marching dots briefly appear near the top of the screen as the app communicates with SQL Server to process the search request. All records that match the search criteria appear, even if the data source has millions of records. ![Search text-input control.](./media/delegation-overview/products-apple.png) -The search results include **"Apples"** and **"Pineapple"** because the **Search** function looks everywhere in a text column. If you wanted to find only records that contain the search term at the start of the fruit's name, you can use another delegable function, **Filter**, with a more complicated search term. (For simplicity, remove the **SortByColumns** call.) +The search results include **"Apples"** and **"Pineapple"** because the **Search** function looks everywhere in a text column. To find only records that contain the search term at the start of the fruit's name, use another delegable function, **Filter**, with a more specific search term. For simplicity, remove the **SortByColumns** call. ![Remove SortByColumns call.](./media/delegation-overview/products-apple-delegationwarning.png) -The new results include **"Apples"** but not **"Pineapple"**. However, a yellow triangle appears next to the gallery (and in the screen thumbnail if the left navigation bar shows thumbnails), and a blue, wavy line appears under a portion of the formula. Each of these elements indicates a warning. If you hover over the yellow triangle next to the gallery, this message appears: +The new results include **"Apples"** but not **"Pineapple"**. A yellow triangle appears next to the gallery and in the screen thumbnail if the left navigation bar shows thumbnails. A blue, wavy line appears under part of the formula. Each of these elements indicates a warning. When you hover over the yellow triangle next to the gallery, this message appears: ![Hover over delegation warning.](./media/delegation-overview/products-apple-yellowwarning.png) -SQL Server is a delegable data source, and **Filter** is a delegable function, However, **Mid** and **Len** can't be delegated to any data source. +SQL Server is a delegable data source, and **Filter** is a delegable function. However, **Mid** and **Len** can't be delegated to any data source. -But it worked, didn't it? Well, kind of. And that is why this is a warning and not a red, wavy squiggle. +But it works, doesn't it? Kind of. That's why this is a warning and not a red, wavy squiggle. -- If the table contains fewer than 500 records, the formula worked perfectly. All records were brought to the device, and **Filter** was applied locally. -- If the table contains more than 500 records, the formula won't return record 501 or higher, even if it matches the criteria. +- If the table has fewer than 500 records, the formula works perfectly. All records are brought to the device, and **Filter** is applied locally. +- If the table has more than 500 records, the formula doesn't return record 501 or higher, even if it matches the criteria. ### See also -[Impact of using non-delegable functions and inappropriate data row limits on performance](common-performance-issue-resolutions.md#use-of-non-delegable-functions-and-inappropriate-data-row-limits-for-non-delegable-queries)
    +- [Troubleshoot Power Apps canvas app performance issues](/troubleshoot/power-platform/power-apps/canvas-app-performance/troubleshoot-perf-table)
    [Performance tips and best practice to use delegation](performance-tips.md#use-delegation) diff --git a/powerapps-docs/maker/canvas-apps/delete-app.md b/powerapps-docs/maker/canvas-apps/delete-app.md index 8f7d3f9690..3e17b80517 100644 --- a/powerapps-docs/maker/canvas-apps/delete-app.md +++ b/powerapps-docs/maker/canvas-apps/delete-app.md @@ -3,7 +3,7 @@ title: Delete a canvas app description: Learn about how to delete an existing canvas app. author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 08/06/2020 diff --git a/powerapps-docs/maker/canvas-apps/dependent-drop-down-lists.md b/powerapps-docs/maker/canvas-apps/dependent-drop-down-lists.md index f83d0d9efb..2aa5e7e2e0 100644 --- a/powerapps-docs/maker/canvas-apps/dependent-drop-down-lists.md +++ b/powerapps-docs/maker/canvas-apps/dependent-drop-down-lists.md @@ -3,7 +3,7 @@ title: Create a dependent drop-down list in a canvas app description: Learn about how to create a drop-down list that filters another drop-down list in a canvas app. author: emcoope-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 04/26/2021 diff --git a/powerapps-docs/maker/canvas-apps/dev-enterprise-intro.md b/powerapps-docs/maker/canvas-apps/dev-enterprise-intro.md index 86e2a6f822..2c2a1f5d6e 100644 --- a/powerapps-docs/maker/canvas-apps/dev-enterprise-intro.md +++ b/powerapps-docs/maker/canvas-apps/dev-enterprise-intro.md @@ -4,7 +4,7 @@ description: Learn about developing solutions with canvas apps for enterprise de author: mduelae ms.subservice: canvas-developer -ms.topic: conceptual +ms.topic: article ms.custom: canvas ms.reviewer: mkaur ms.date: 08/17/2022 diff --git a/powerapps-docs/maker/canvas-apps/display-full-image-on-form.md b/powerapps-docs/maker/canvas-apps/display-full-image-on-form.md index 845461b11f..b75ebbde20 100644 --- a/powerapps-docs/maker/canvas-apps/display-full-image-on-form.md +++ b/powerapps-docs/maker/canvas-apps/display-full-image-on-form.md @@ -5,7 +5,7 @@ keywords: "" ms.date: 11/09/2020 ms.custom: -ms.topic: article +ms.topic: how-to applies_to: - "powerapps" author: "Mattp123" diff --git a/powerapps-docs/maker/canvas-apps/edit-app.md b/powerapps-docs/maker/canvas-apps/edit-app.md index 4461564655..66d4379cb9 100644 --- a/powerapps-docs/maker/canvas-apps/edit-app.md +++ b/powerapps-docs/maker/canvas-apps/edit-app.md @@ -3,7 +3,7 @@ title: Edit a canvas app description: Step-by-step instructions for editing canvas apps and session-locking scenarios in Power Apps. author: emcoope-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 06/16/2020 diff --git a/powerapps-docs/maker/canvas-apps/efficient-calculations.md b/powerapps-docs/maker/canvas-apps/efficient-calculations.md index b044b6bda8..08b3dadd80 100644 --- a/powerapps-docs/maker/canvas-apps/efficient-calculations.md +++ b/powerapps-docs/maker/canvas-apps/efficient-calculations.md @@ -3,7 +3,7 @@ title: Efficient calculations in Power Apps description: Efficient or fast calculations in Power Apps author: lancedMicrosoft ms.subservice: canvas-developer -ms.topic: article +ms.topic: how-to ms.date: 12/01/2023 ms.author: lanced ms.reviewer: mkaur diff --git a/powerapps-docs/maker/canvas-apps/embed-apps-dev.md b/powerapps-docs/maker/canvas-apps/embed-apps-dev.md index 1bfadaa522..4eeaa7986d 100644 --- a/powerapps-docs/maker/canvas-apps/embed-apps-dev.md +++ b/powerapps-docs/maker/canvas-apps/embed-apps-dev.md @@ -4,7 +4,7 @@ description: Learn about how to embed canvas apps in websites and other services author: gregli-msft ms.subservice: canvas-developer -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: ms.date: 03/11/2025 diff --git a/powerapps-docs/maker/canvas-apps/execution-phases-data-flow.md b/powerapps-docs/maker/canvas-apps/execution-phases-data-flow.md index a9cf4fd55b..a07947b994 100644 --- a/powerapps-docs/maker/canvas-apps/execution-phases-data-flow.md +++ b/powerapps-docs/maker/canvas-apps/execution-phases-data-flow.md @@ -3,7 +3,7 @@ title: Understand canvas app execution phases and data call flow description: Learn about the execution phases of canvas apps while starting-up, and the flow of data calls. author: JinManAhn-MSFT -ms.topic: conceptual +ms.topic: how-to ms.reviewer: mkaur ms.date: 01/22/2021 ms.subservice: canvas-maker diff --git a/powerapps-docs/maker/canvas-apps/export-import-app-package.md b/powerapps-docs/maker/canvas-apps/export-import-app-package.md index 7bb11bbaf8..bbb1123f41 100644 --- a/powerapps-docs/maker/canvas-apps/export-import-app-package.md +++ b/powerapps-docs/maker/canvas-apps/export-import-app-package.md @@ -3,7 +3,7 @@ title: Export and import canvas apps as a package description: Learn how to export and import canvas apps as a package. author: caburk -ms.topic: conceptual +ms.topic: how-to ms.date: 10/1/2024 ms.subservice: canvas-maker ms.author: caburk diff --git a/powerapps-docs/maker/canvas-apps/export-import-app.md b/powerapps-docs/maker/canvas-apps/export-import-app.md index 8fa5e09ebe..ff9c472909 100644 --- a/powerapps-docs/maker/canvas-apps/export-import-app.md +++ b/powerapps-docs/maker/canvas-apps/export-import-app.md @@ -3,8 +3,8 @@ title: Overview of exporting and importing canvas apps description: Overview of exporting and importing canvas apps. author: caburk -ms.topic: conceptual -ms.date: 10/1/2024 +ms.topic: concept-article +ms.date: 5/16/2025 ms.subservice: canvas-maker ms.author: caburk ms.reviewer: mkaur @@ -52,7 +52,7 @@ The following table explains different resource types, supportability, and impor ## Permissions -Only the **Owner** or **Co-owner** of an app can export a canvas app package. To import an app, the **Environment Maker** permission is required on the destination environment. +Only the **Owner** or **Co-owner** of an app can export a canvas app package. To import an app, the [Environment Maker](/power-platform/admin/database-security#predefined-security-roles) security role is required on the destination environment, either directly or through a Dataverse team that is part of the **AAD Security Group** category. Custom security roles are not currently supported. ### See also diff --git a/powerapps-docs/maker/canvas-apps/export-import-single-app.md b/powerapps-docs/maker/canvas-apps/export-import-single-app.md index 5272cca8a0..e9e453d8a3 100644 --- a/powerapps-docs/maker/canvas-apps/export-import-single-app.md +++ b/powerapps-docs/maker/canvas-apps/export-import-single-app.md @@ -2,8 +2,8 @@ title: Export and import a canvas app as a single app file description: Learn how to export and import a canvas app as a single app file. author: caburk -ms.topic: conceptual -ms.date: 10/1/2024 +ms.topic: how-to +ms.date: 5/16/2025 ms.subservice: canvas-maker ms.author: caburk ms.reviewer: mkaur @@ -21,7 +21,7 @@ In this article, you'll learn how to export and import a single canvas app. Befo Using this option, you’re able to export a single canvas app in the format of a **.msapp** file extension. This allows you to export a single file that contains the canvas app that you’re currently editing and import it. ## Permissions -Only the **Owner** or **Co-owner** of an app can export a canvas app package. To import an app, the **Environment Maker** permission is required on the destination environment. +Only the **Owner** or **Co-owner** of an app can export a canvas app package. To import an app, the [Environment Maker](/power-platform/admin/database-security#predefined-security-roles) security role is required on the destination environment, either directly or through a Dataverse team that is part of the **AAD Security Group** category. Custom security roles are not currently supported. ## Export .msapp files in Power Apps diff --git a/powerapps-docs/maker/canvas-apps/fast-app-page-load.md b/powerapps-docs/maker/canvas-apps/fast-app-page-load.md index 71da84a6f2..1472aa6cb4 100644 --- a/powerapps-docs/maker/canvas-apps/fast-app-page-load.md +++ b/powerapps-docs/maker/canvas-apps/fast-app-page-load.md @@ -3,7 +3,7 @@ title: Speed up app or page load in Power Apps description: Optimizing app and page loading for peak performance in Power Apps. author: lancedMicrosoft ms.subservice: canvas-developer -ms.topic: article +ms.topic: how-to ms.date: 01/05/2024 ms.author: lanced ms.reviewer: mkaur diff --git a/powerapps-docs/maker/canvas-apps/figma/common-errors.md b/powerapps-docs/maker/canvas-apps/figma/common-errors.md index c62012c8d7..3b5d99744c 100644 --- a/powerapps-docs/maker/canvas-apps/figma/common-errors.md +++ b/powerapps-docs/maker/canvas-apps/figma/common-errors.md @@ -2,7 +2,7 @@ title: Troubleshoot common errors when creating app from Figma description: Learn about common errors and resolutions when creating apps from a Figma design. author: mduelae -ms.topic: article +ms.topic: troubleshooting-general ms.custom: canvas ms.reviewer: mkaur ms.date: 05/24/2022 diff --git a/powerapps-docs/maker/canvas-apps/figma/create-app-from-figma.md b/powerapps-docs/maker/canvas-apps/figma/create-app-from-figma.md index 41eff70716..b2dc1f14a2 100644 --- a/powerapps-docs/maker/canvas-apps/figma/create-app-from-figma.md +++ b/powerapps-docs/maker/canvas-apps/figma/create-app-from-figma.md @@ -2,7 +2,7 @@ title: Create a canvas app from Figma (preview) description: Learn about how to create canvas apps from Figma. author: mduelae -ms.topic: article +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 03/10/2025 diff --git a/powerapps-docs/maker/canvas-apps/figma/design-using-kit.md b/powerapps-docs/maker/canvas-apps/figma/design-using-kit.md index ea00e3b427..798ceccff6 100644 --- a/powerapps-docs/maker/canvas-apps/figma/design-using-kit.md +++ b/powerapps-docs/maker/canvas-apps/figma/design-using-kit.md @@ -2,7 +2,7 @@ title: Design your app using the UI kit description: Learn about the various components that the "Create Apps from Figma UI Kit" supports. author: mduelae -ms.topic: article +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 05/24/2022 diff --git a/powerapps-docs/maker/canvas-apps/figma/overview.md b/powerapps-docs/maker/canvas-apps/figma/overview.md index 5c42fef70d..a8fdb8f0a0 100644 --- a/powerapps-docs/maker/canvas-apps/figma/overview.md +++ b/powerapps-docs/maker/canvas-apps/figma/overview.md @@ -2,7 +2,7 @@ title: Overview of creating app from Figma description: An overview about creating app from Figma feature in Power Apps. author: mduelae -ms.topic: article +ms.topic: concept-article ms.custom: canvas ms.reviewer: mkaur ms.date: 05/24/2022 diff --git a/powerapps-docs/maker/canvas-apps/formula-bar-find-replace.md b/powerapps-docs/maker/canvas-apps/formula-bar-find-replace.md index 929c2d24f4..f92f8c18cf 100644 --- a/powerapps-docs/maker/canvas-apps/formula-bar-find-replace.md +++ b/powerapps-docs/maker/canvas-apps/formula-bar-find-replace.md @@ -3,7 +3,7 @@ title: Use Find and Replace in the formula bar description: Learn how to use the find and Replace to search for strings and make changes to one or more matches. author: TashasEv -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 12/11/2023 diff --git a/powerapps-docs/maker/canvas-apps/gallery-best-practice.md b/powerapps-docs/maker/canvas-apps/gallery-best-practice.md index d83a39e4a6..14e02745a7 100644 --- a/powerapps-docs/maker/canvas-apps/gallery-best-practice.md +++ b/powerapps-docs/maker/canvas-apps/gallery-best-practice.md @@ -3,7 +3,7 @@ title: Best practices and recommendations when working with gallery in canvas a description: Best practices and recommendations when working with gallery in canvas apps. author: tahoon-ms -ms.topic: conceptual +ms.topic: best-practice ms.custom: canvas ms.date: 11/15/2023 ms.subservice: canvas-maker diff --git a/powerapps-docs/maker/canvas-apps/gallery-dynamic-sizing.md b/powerapps-docs/maker/canvas-apps/gallery-dynamic-sizing.md index aaea56f503..cdd8bc6d84 100644 --- a/powerapps-docs/maker/canvas-apps/gallery-dynamic-sizing.md +++ b/powerapps-docs/maker/canvas-apps/gallery-dynamic-sizing.md @@ -3,7 +3,7 @@ title: Show items of different heights in canvas apps gallery description: Add and configure a flexible height gallery to automatically fit the amount of content in each item of the gallery. author: fikaradz -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 01/27/2022 diff --git a/powerapps-docs/maker/canvas-apps/gateway-management.md b/powerapps-docs/maker/canvas-apps/gateway-management.md index 458fd4693c..83fd9bb76c 100644 --- a/powerapps-docs/maker/canvas-apps/gateway-management.md +++ b/powerapps-docs/maker/canvas-apps/gateway-management.md @@ -3,7 +3,7 @@ title: Manage an on-premises data gateway in Power Apps description: Learn about how to manage an on-premises data gateway and its connections. author: arthiriyer -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 10/16/2020 diff --git a/powerapps-docs/maker/canvas-apps/geospatial-component-input-address.md b/powerapps-docs/maker/canvas-apps/geospatial-component-input-address.md index 454ec5a033..4857f01945 100644 --- a/powerapps-docs/maker/canvas-apps/geospatial-component-input-address.md +++ b/powerapps-docs/maker/canvas-apps/geospatial-component-input-address.md @@ -2,7 +2,7 @@ title: Enter and resolve addresses in maps description: Use the address input control in Power Apps to quickly and easily enter accurate addresses. author: anuitz -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas, ce06122020 ms.reviewer: mduelae ms.date: 3/3/2022 diff --git a/powerapps-docs/maker/canvas-apps/geospatial-component-map.md b/powerapps-docs/maker/canvas-apps/geospatial-component-map.md index b7802a4859..f8406133c9 100644 --- a/powerapps-docs/maker/canvas-apps/geospatial-component-map.md +++ b/powerapps-docs/maker/canvas-apps/geospatial-component-map.md @@ -2,7 +2,7 @@ title: Use an interactive map control in Power Apps description: View an interactive map with customized pins, dynamic routing, and shapes with the geospatial controls in Power Apps. author: anuitz -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas, ce06122020 ms.date: 3/3/2022 ms.reviewer: mduelae diff --git a/powerapps-docs/maker/canvas-apps/geospatial-map-draw-shapes.md b/powerapps-docs/maker/canvas-apps/geospatial-map-draw-shapes.md index 69cbafe7c1..e7e40192a0 100644 --- a/powerapps-docs/maker/canvas-apps/geospatial-map-draw-shapes.md +++ b/powerapps-docs/maker/canvas-apps/geospatial-map-draw-shapes.md @@ -3,7 +3,7 @@ title: Draw and insert shapes on maps description: Allow canvas app users to draw shapes on a map, or insert predefined shapes and display their measurements, in Power Apps. author: anuitz ms.service: powerapps -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas, ce06122020 ms.reviewer: mduelae ms.date: 3/3/2022 diff --git a/powerapps-docs/maker/canvas-apps/geospatial-map-excel.md b/powerapps-docs/maker/canvas-apps/geospatial-map-excel.md index d5385c8f75..0debc671c3 100644 --- a/powerapps-docs/maker/canvas-apps/geospatial-map-excel.md +++ b/powerapps-docs/maker/canvas-apps/geospatial-map-excel.md @@ -2,7 +2,7 @@ title: Insert pins from data source description: Add customized pins to your map control in Power Apps by using a dataset. author: anuitz -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas, ce06122020 ms.reviewer: mduelae ms.date: 3/2/2021 diff --git a/powerapps-docs/maker/canvas-apps/geospatial-map-infocards.md b/powerapps-docs/maker/canvas-apps/geospatial-map-infocards.md index 61877e91d0..0e6b77dc4f 100644 --- a/powerapps-docs/maker/canvas-apps/geospatial-map-infocards.md +++ b/powerapps-docs/maker/canvas-apps/geospatial-map-infocards.md @@ -3,7 +3,7 @@ title: Display information about map pins description: Add cards that display information about pinned locations in your canvas apps. author: anuitz ms.service: powerapps -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas, ce06122020 ms.reviewer: mduelae ms.date: 3/3/2022 diff --git a/powerapps-docs/maker/canvas-apps/geospatial-map-routing.md b/powerapps-docs/maker/canvas-apps/geospatial-map-routing.md index e4dd215535..c68fcce9b4 100644 --- a/powerapps-docs/maker/canvas-apps/geospatial-map-routing.md +++ b/powerapps-docs/maker/canvas-apps/geospatial-map-routing.md @@ -2,7 +2,7 @@ title: Calculate routes between waypoint pins on a map (preview) description: Add waypoint pins to a map and calculate routes between them in Power Apps. author: anuitz -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas, ce06122020 ms.reviewer: mduelae ms.date: 3/3/2022 diff --git a/powerapps-docs/maker/canvas-apps/get-sessionid.md b/powerapps-docs/maker/canvas-apps/get-sessionid.md index 862941bcb5..445a825fa1 100644 --- a/powerapps-docs/maker/canvas-apps/get-sessionid.md +++ b/powerapps-docs/maker/canvas-apps/get-sessionid.md @@ -2,17 +2,17 @@ title: Get the session or app ID description: Learn about how to get a session ID or a canvas-app ID for troubleshooting. author: mduelae - ms.subservice: troubleshoot -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: -ms.date: 11/09/2021 +ms.date: 06/02/2025 ms.author: tapanm search.audienceType: - maker contributors: - mduelae + - vamseedillimsft --- # Get session and app ID details @@ -72,6 +72,17 @@ If you find a problem with an app in Power Apps, you can help Microsoft troubles 1. Select **About**. :::image type="content" source="media/get-sessionid/session-details-mda.png" alt-text="Session ID displayed with session details"::: +### When running a model-driven app on a phone or a tablet + +1. In the upper left corner, select the hamburger icon (the three lines). +:::image type="content" source="media/get-sessionid/navigation-option.png" alt-text="Hamburger icon at the top left corner with Enabled users list"::: +1. Select the settings icon (gear) in the lower left corner of the screen. +:::image type="content" source="media/get-sessionid/setting-option.png" alt-text="Navigation pane showing different options icons along with settings icon"::: +1. Select **Session Details** at the bottom of the screen. +:::image type="content" source="media/get-sessionid/setting-screen.png" alt-text="Setting screen showing session details option"::: +1. Review the session details. +:::image type="content" source="media/get-sessionid/session-details-screen.png" alt-text="Session details"::: + ## Get the session ID for Power Apps (make.powerapps.com) 1. Sign into Power Apps (make.powerapps.com), and then, on the command bar, select **Settings** (gear). @@ -95,6 +106,4 @@ Get the app ID for either a canvas or model-driven app: ![Copy app ID from details.](./media/get-sessionid/app-id.png "Copy app ID from details") - - [!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/canvas-apps/get-started-create-from-blank.md b/powerapps-docs/maker/canvas-apps/get-started-create-from-blank.md index 0f18923e65..46af9e50a6 100644 --- a/powerapps-docs/maker/canvas-apps/get-started-create-from-blank.md +++ b/powerapps-docs/maker/canvas-apps/get-started-create-from-blank.md @@ -2,7 +2,7 @@ title: Create a canvas app based on Excel data description: Learn how to create a blank canvas app based on an Excel file. author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.collection: get-started ms.reviewer: diff --git a/powerapps-docs/maker/canvas-apps/get-started-test-drive.md b/powerapps-docs/maker/canvas-apps/get-started-test-drive.md index e8187cfd21..c22be706c0 100644 --- a/powerapps-docs/maker/canvas-apps/get-started-test-drive.md +++ b/powerapps-docs/maker/canvas-apps/get-started-test-drive.md @@ -3,7 +3,7 @@ title: Create a canvas app from a template description: Step-by-step instructions for creating a canvas app automatically based on a Power Apps template. author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.collection: get-started ms.reviewer: @@ -46,8 +46,6 @@ Creating a canvas app using templates in Power Apps is a streamlined and efficie 1. Select a template from the list of **other app templates**. - - 1. Update the **App name**, then select **Next**. 1. Select **Make my own app** to connect the app to data storage, such as OneDrive. diff --git a/powerapps-docs/maker/canvas-apps/getting-started.md b/powerapps-docs/maker/canvas-apps/getting-started.md index 5152855d55..bffd9c2790 100644 --- a/powerapps-docs/maker/canvas-apps/getting-started.md +++ b/powerapps-docs/maker/canvas-apps/getting-started.md @@ -3,7 +3,7 @@ title: Overview of building canvas apps description: Get an introduction to designing and building canvas apps in Power Apps so that users can manage line-of-business data in a browser or on mobile devices. author: mduelae -ms.topic: conceptual +ms.topic: concept-article ms.custom: canvas ms.collection: get-started ms.reviewer: @@ -20,9 +20,9 @@ contributors: # What are canvas apps? -Canvas apps in Power Apps let you create business apps without coding. Power Apps provides a blank canvas where you can drag and drop components to design a user interface in any layout you prefer. Create Excel-like expressions for specifying logic and working with data. Build apps that integrate business data from a [wide variety of Microsoft and third-party sources](connections-list.md). Share your app so users can run it in a browser or on a mobile device, and embed your app so they can run it in SharePoint, Power BI, or Teams. +Canvas apps in Power Apps let you build business apps without coding. Power Apps gives you a blank canvas where you drag components to design a user interface in any layout you want. Use Excel-like expressions to specify logic and work with data. Build apps that use business data from a [wide variety of Microsoft and third-party sources](connections-list.md). Share your app so users run it in a browser or on a mobile device, and embed your app so they run it in SharePoint, Power BI, or Teams. -You can also create apps with Copilot in Power Apps by describing what you want the app to do using natural language, and AI handles the rest. +Create apps with Copilot in Power Apps by describing what you want the app to do in natural language, and AI handles the rest. ## Build an app @@ -43,26 +43,31 @@ You can also automatically generate an app from one of these sources: For more information on where makers can create apps, see [Get started with Power Apps](intro-maker-portal.md). -After generating an app automatically, customize its default appearance and behavior based on your users' workflows. For example, change which types of data appear, how they're sorted, or even whether users specify a number by typing it or adjusting a slider. Add and customize [screens](add-screen-context-variables.md), [galleries](customize-layout-sharepoint.md), [forms](customize-forms-sharepoint.md), and other controls. +After you generate an app automatically, customize its default appearance and behavior based on your users' workflows. For example, change which types of data appear, how they're sorted, or whether users specify a number by typing it or adjusting a slider. Add and customize [screens](add-screen-context-variables.md), [galleries](customize-layout-sharepoint.md), [forms](customize-forms-sharepoint.md), and other controls. -After gaining some experience generating an app automatically and customizing it, you can create an app from scratch based on [Dataverse](data-platform-create-app-scratch.md), [Excel](get-started-create-from-blank.md), or another data source. By working from the ground up, you gain flexibility in app design, flow, and controls, and you can incorporate a larger variety of data sources. +After you generate and customize an app automatically, create an app from scratch based on [Dataverse](data-platform-create-app-scratch.md), [Excel](get-started-create-from-blank.md), or another data source. By working from the ground up, you get flexibility in app design, flow, and controls, and you can use a larger variety of data sources. -If you're new to Power Apps and want to learn how to convert your ideas into a fully working solution, start with [Planning a Power Apps project](../../guidance/planning/introduction.md). +If you're new to Power Apps and want to turn your ideas into a working solution, start with [Planning a Power Apps project](../../guidance/planning/introduction.md). + +> [!NOTE] +> - If you don't have a license for Power Apps, you can [sign up for free](../signup-for-powerapps.md). +> - If you don't have an organization account or aren't part of a tenant or organization account, you can establish a developer's account through the [Microsoft Developer Program](https://developer.microsoft.com/en-us/microsoft-365/dev-program). ## Share and run an app -When you finish the app and save it to the cloud, [share it with others](share-app.md) in your organization. Specify which users or groups can run the app and whether they can also customize and share it with additional people in the organization. +When you finish the app and save it to the cloud, [share it with others](share-app.md) in your organization. Specify which users or groups can run the app, and whether they can also customize and share it with more people in the organization. -Run your own apps (and any apps shared with you) on Windows, in a [web browser](../../user/run-app-browser.md), or on an [iOS or Android device](/powerapps/mobile/run-powerapps-on-mobile). +Run your own apps, and any apps shared with you, on Windows, in a [web browser](../../user/run-app-browser.md), or on an [iOS or Android device](/powerapps/mobile/run-powerapps-on-mobile). ## Learn more -- Ready to convert your ideas into an app? Start with [Planning a Power Apps project](../../guidance/planning/introduction.md). -- Explore the step-by-step, conceptual, and reference topics in the navigation pane on the left. -- Check out the [webinars and video gallery](https://powerusers.microsoft.com/t5/Webinars-and-Video-Gallery/bd-p/VideoGallery?featured=yes) to help you leverage the features and functions of Power Apps. +- Want to turn your ideas into an app? Start with [Planning a Power Apps project](../../guidance/planning/introduction.md). +- Explore step-by-step, conceptual, and reference articles in the navigation pane on the left. +- Check out the [webinars and video gallery](https://powerusers.microsoft.com/t5/Webinars-and-Video-Gallery/bd-p/VideoGallery?featured=yes) to learn how to use Power Apps features and functions. + ## Share your experience -* Read and post in the [Power Apps Community](https://aka.ms/powerapps-community), where anyone who uses Power Apps can post a question for others to answer. Before you post a question, search the community to see whether your question has already been answered. -* Submit an idea for how we can improve Power Apps in [Power Apps Ideas Forum](https://ideas.powerapps.com/). -* If you're a Power Apps administrator for your organization, you can open a support ticket in the [Power Platform admin center](https://admin.powerplatform.microsoft.com/support). +* Read and post in the [Power Apps Community](https://aka.ms/powerapps-community), where anyone who uses Power Apps can post a question for others to answer. Before you post a question, search the community to see if your question is already answered. +* Submit an idea to improve Power Apps in the [Power Apps Ideas Forum](https://ideas.powerapps.com/). +* If you're a Power Apps admin for your organization, open a support ticket in the [Power Platform admin center](https://admin.powerplatform.microsoft.com/support). diff --git a/powerapps-docs/maker/canvas-apps/git-version-control.md b/powerapps-docs/maker/canvas-apps/git-version-control.md index f0ece83d41..e88c1e6af2 100644 --- a/powerapps-docs/maker/canvas-apps/git-version-control.md +++ b/powerapps-docs/maker/canvas-apps/git-version-control.md @@ -2,10 +2,10 @@ title: Disconnect Git version control to edit canvas apps description: Learn how to disconnect Git version control to edit canvas app author: angela21k -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur -ms.date: 11/01/2024 +ms.date: 5/14/2025 ms.subservice: canvas-maker ms.author: angelakim search.audienceType: @@ -31,6 +31,6 @@ If you are using PASopa, download your app from your Git provider and [pack the > [!NOTE] - > Git version control will be replaced with the source control integration feature. More information: [Source code integration](/power-platform/release-plan/2024wave1/data-platform/source-code-integration) + > Git version control is replaced with the source control integration feature. More information: [Source code integration](/power-platform/alm/git-integration/canvas-apps-git-integration) diff --git a/powerapps-docs/maker/canvas-apps/global-apps.md b/powerapps-docs/maker/canvas-apps/global-apps.md index 84b82f868e..f59a69f5b1 100644 --- a/powerapps-docs/maker/canvas-apps/global-apps.md +++ b/powerapps-docs/maker/canvas-apps/global-apps.md @@ -3,7 +3,7 @@ title: Build global support into canvas apps description: Learn about how to use Power Apps to build apps that use different languages. author: gregli-msft -ms.topic: conceptual +ms.topic: article ms.custom: canvas ms.reviewer: mkaur ms.date: 10/25/2016 diff --git a/powerapps-docs/maker/canvas-apps/how-to/build-apps-measure-in-mr.md b/powerapps-docs/maker/canvas-apps/how-to/build-apps-measure-in-mr.md index 899dd22db6..5ac0718fe3 100644 --- a/powerapps-docs/maker/canvas-apps/how-to/build-apps-measure-in-mr.md +++ b/powerapps-docs/maker/canvas-apps/how-to/build-apps-measure-in-mr.md @@ -6,7 +6,7 @@ author: joel-lindstrom ms.subservice: canvas-maker search.audienceType: - maker -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.date: 12/15/2021 ms.author: anuitz diff --git a/powerapps-docs/maker/canvas-apps/how-to/build-connected-dataverse.md b/powerapps-docs/maker/canvas-apps/how-to/build-connected-dataverse.md index 9a2afe6ffa..7c7db98833 100644 --- a/powerapps-docs/maker/canvas-apps/how-to/build-connected-dataverse.md +++ b/powerapps-docs/maker/canvas-apps/how-to/build-connected-dataverse.md @@ -3,7 +3,7 @@ title: How to create a canvas app connected to Microsoft Dataverse from scratch description: Learn about how to create a canvas app from scratch. author: sbahl10 -ms.topic: conceptual +ms.topic: how-to ms.custom: ms.subservice: canvas-maker ms.date: 06/17/2022 diff --git a/powerapps-docs/maker/canvas-apps/how-to/build-powerbi-visual.md b/powerapps-docs/maker/canvas-apps/how-to/build-powerbi-visual.md index 55b7c0e67b..90251e7357 100644 --- a/powerapps-docs/maker/canvas-apps/how-to/build-powerbi-visual.md +++ b/powerapps-docs/maker/canvas-apps/how-to/build-powerbi-visual.md @@ -3,7 +3,7 @@ title: How to create a canvas app with Power BI visual description: Learn about how to create a canvas app with Power BI visual. author: joel-lindstrom -ms.topic: article +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 01/27/2022 diff --git a/powerapps-docs/maker/canvas-apps/how-to/build-view-in-mr-3d-apps.md b/powerapps-docs/maker/canvas-apps/how-to/build-view-in-mr-3d-apps.md index d7b8987a53..867e32b550 100644 --- a/powerapps-docs/maker/canvas-apps/how-to/build-view-in-mr-3d-apps.md +++ b/powerapps-docs/maker/canvas-apps/how-to/build-view-in-mr-3d-apps.md @@ -3,7 +3,7 @@ title: Create an app with 3D and mixed reality controls description: Learn about how to use 3D and mixed reality controls. author: Joel-lindstrom -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 12/09/2021 diff --git a/powerapps-docs/maker/canvas-apps/how-to/create-app-barcode-scanner.md b/powerapps-docs/maker/canvas-apps/how-to/create-app-barcode-scanner.md index 22f05fa4f9..bcf36dce1e 100644 --- a/powerapps-docs/maker/canvas-apps/how-to/create-app-barcode-scanner.md +++ b/powerapps-docs/maker/canvas-apps/how-to/create-app-barcode-scanner.md @@ -2,7 +2,7 @@ title: Create a canvas app with the barcode reader control description: Learn how to make a canvas app that uses the barcode reader control. author: joel-lindstrom -ms.topic: article +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 01/27/2022 @@ -58,7 +58,7 @@ Create a [blank canvas app](../create-blank-app.md). ```power-fx Collect( colScannedItems, - {ScannedItem: First(BarcodeReader1.Barcodes).Value, ScannedTime: Now()} + {ScannedItem: First(BarcodeScanner1.Barcodes).Value, ScannedTime: Now()} ) ``` diff --git a/powerapps-docs/maker/canvas-apps/how-to/deep-linking.md b/powerapps-docs/maker/canvas-apps/how-to/deep-linking.md index f473369ab0..87917f16bd 100644 --- a/powerapps-docs/maker/canvas-apps/how-to/deep-linking.md +++ b/powerapps-docs/maker/canvas-apps/how-to/deep-linking.md @@ -2,7 +2,7 @@ title: Create a canvas app with deep link to a specific screen description: Learn how to deep link to a specific screen within canvas apps. author: vasavib -ms.topic: article +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 07/27/2022 diff --git a/powerapps-docs/maker/canvas-apps/how-to/media/deep-linking/sent-email.png b/powerapps-docs/maker/canvas-apps/how-to/media/deep-linking/sent-email.png index 4f5c277483..601bf27c7f 100644 Binary files a/powerapps-docs/maker/canvas-apps/how-to/media/deep-linking/sent-email.png and b/powerapps-docs/maker/canvas-apps/how-to/media/deep-linking/sent-email.png differ diff --git a/powerapps-docs/maker/canvas-apps/how-to/mobile-apps-address-map.md b/powerapps-docs/maker/canvas-apps/how-to/mobile-apps-address-map.md index 2978f1213c..6250228e95 100644 --- a/powerapps-docs/maker/canvas-apps/how-to/mobile-apps-address-map.md +++ b/powerapps-docs/maker/canvas-apps/how-to/mobile-apps-address-map.md @@ -3,7 +3,7 @@ title: Create an app with address input and map controls description: Learn about how to create apps using address input and map controls in canvas apps. author: joel-lindstrom -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mduelae ms.date: 03/3/2022 diff --git a/powerapps-docs/maker/canvas-apps/how-to/mobile-apps-view-shape-in-mr.md b/powerapps-docs/maker/canvas-apps/how-to/mobile-apps-view-shape-in-mr.md index dcd25a406f..d5af2d8a19 100644 --- a/powerapps-docs/maker/canvas-apps/how-to/mobile-apps-view-shape-in-mr.md +++ b/powerapps-docs/maker/canvas-apps/how-to/mobile-apps-view-shape-in-mr.md @@ -6,7 +6,7 @@ author: joel-lindstrom ms.subservice: canvas-maker search.audienceType: - maker -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.date: 11/22/2021 ms.author: anuitz diff --git a/powerapps-docs/maker/canvas-apps/how-to/trigger-flow.md b/powerapps-docs/maker/canvas-apps/how-to/trigger-flow.md index 08d4d1836c..543d2431b6 100644 --- a/powerapps-docs/maker/canvas-apps/how-to/trigger-flow.md +++ b/powerapps-docs/maker/canvas-apps/how-to/trigger-flow.md @@ -3,7 +3,7 @@ title: Create a canvas app that can trigger a Power Automate flow description: Learn about how to create a canvas app that can trigger a Power Automate flow. author: joel-lindstrom -ms.topic: article +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 01/27/2022 diff --git a/powerapps-docs/maker/canvas-apps/important-changes-deprecations.md b/powerapps-docs/maker/canvas-apps/important-changes-deprecations.md index 89256ce5e4..abc00f3fcf 100644 --- a/powerapps-docs/maker/canvas-apps/important-changes-deprecations.md +++ b/powerapps-docs/maker/canvas-apps/important-changes-deprecations.md @@ -3,7 +3,7 @@ title: Important upcoming changes (deprecations) in canvas apps description: Learn about the important changes including deprecation coming soon to canvas apps. author: mduelae -ms.topic: conceptual +ms.topic: article ms.custom: ms.date: 08/29/2024 ms.subservice: canvas-maker diff --git a/powerapps-docs/maker/canvas-apps/index.yml b/powerapps-docs/maker/canvas-apps/index.yml index c201c06f4b..6da3656d2b 100644 --- a/powerapps-docs/maker/canvas-apps/index.yml +++ b/powerapps-docs/maker/canvas-apps/index.yml @@ -12,7 +12,7 @@ metadata: ms.collection: collection author: mduelae ms.author: tapanm - ms.date: 09/04/2020 + ms.date: 07/10/2025 # linkListType: architecture | concept | deploy | download | get-started | how-to-guide | learn | overview | quickstart | reference | tutorial | video | whats-new @@ -35,16 +35,16 @@ landingContent: url: /training/modules/get-started-with-powerapps/ # Card - - title: Explore and create + - title: Create a canvas app linkLists: - - linkListType: quickstart + - linkListType: how-to-guide links: - - text: Explore sample apps - url: open-and-run-a-sample-app.md - - text: Create your first app - url: get-started-test-drive.md - - text: Create a canvas app from Dataverse - url: data-platform-create-app.md + - text: Create a blank canvas app + url: create-blank-app.md + - text: Create an app from conversation + url: ai-conversations-create-app.md + - text: Create a canvas app using Dataverse + url: data-platform-create-app-scratch.md - linkListType: learn links: - text: Create canvas apps in Power Apps @@ -57,8 +57,8 @@ landingContent: links: - text: Add and configure controls url: add-configure-controls.md - - text: Screens and layouts - url: set-aspect-ratio-portrait-landscape.md + - text: Add and navigate screens + url: add-screen-context-variables.md - text: Add forms url: add-form.md - linkListType: learn @@ -129,7 +129,7 @@ landingContent: links: - text: Test using Test Studio url: test-studio.md - - text: Debug using Monitor + - text: Debug using Live monitor url: ../monitor-canvasapps.md - text: Analyze app telemetry using Application Insights url: application-insights.md diff --git a/powerapps-docs/maker/canvas-apps/inline-actions.md b/powerapps-docs/maker/canvas-apps/inline-actions.md index 1534970074..52eab33213 100644 --- a/powerapps-docs/maker/canvas-apps/inline-actions.md +++ b/powerapps-docs/maker/canvas-apps/inline-actions.md @@ -2,7 +2,7 @@ title: Use inline actions when you're building a canvas app description: Learn how to use inline actions while you’re building a canvas app in Power Apps Studio. author: tashaev -ms.topic: conceptual +ms.topic: article ms.custom: canvas ms.reviewer: mkaur ms.date: 10/29/2024 diff --git a/powerapps-docs/maker/canvas-apps/intro-maker-portal.md b/powerapps-docs/maker/canvas-apps/intro-maker-portal.md index 4094dfd965..b08532a2e2 100644 --- a/powerapps-docs/maker/canvas-apps/intro-maker-portal.md +++ b/powerapps-docs/maker/canvas-apps/intro-maker-portal.md @@ -1,13 +1,14 @@ --- -title: "Get started with Power Apps| MicrosoftDocs" +title: Get started with Power Apps| MicrosoftDocs description: How to navigate the Power Apps home page. -ms.custom: "" -ms.date: 2/13/2025 -ms.reviewer: "mkaur" +ms.custom: +ms.date: 5/29/2025 +ms.update-cycle: 180-days +ms.reviewer: mkaur ms.topic: overview -author: "mkaur" +author: "mduelae" ms.subservice: common -ms.author: "mkaur" +ms.author: mkaur search.audienceType: - maker, admin contributors: @@ -26,32 +27,33 @@ If your organization has AI enabled then it also includes the new [Copilot](ai-o Select the appropriate tab below to know more. -> [!div class="mx-imgBorder"] -> ![Navigation with new look](media/intro-maker-portal/homepage-new-look.png "Home page navigation") +:::image type="content" source="media/intro-maker-portal/homepage-new-look.png" alt-text="Screenshot of Power Apps home page." lightbox="media/intro-maker-portal/homepage-new-look.png"::: + Legend: 1. [Left navigation pane](#1--left-navigation-pane) -2. [Search](#2--search) -3. [Environment information and settings](#3--environment-information-and-settings) -4. [Copilot in Power Apps](#4---copilot-in-power-apps) -5. [Build apps](#5--build-apps) +1. [Search](#2--search) +1. [Environment information and settings](#3--environment-information-and-settings) +1. [Create a plan](#4---create-a-plan) +1. [Plans](#6--build-apps) +1. [Build Apps](#6--build-apps) ## 1 – Left navigation pane Find what you need with the left navigation pane. When you sign in to [Power Apps home page](https://make.powerapps.com) the left navigation pane shows the following menu items: -> [!div class="mx-imgBorder"] -> ![Power Apps left navigation pane.](media/intro-maker-portal/default-nav-1.png "Power Apps left navigation pane.") +:::image type="content" source="media/intro-maker-portal/default-nav-1.png" alt-text="Screenshot of Power Apps home page navigation pane." lightbox="media/intro-maker-portal/default-nav-1.png"::: Legend: 1. **Home**: Takes you to the Power Apps home page. 1. **Create**: Create apps as such as [canvas apps](/powerapps/maker/canvas-apps/), [model-driven apps](/powerapps/maker/model-driven-apps/), [chatbots](/powerapps/chatbots), and [AI models](/powerapps/use-ai-builder). 1. **Learn**: The [learn hub](../common/learn-hub.md) lets you explore documents, training material, get help from the Power Apps community, and other resources that help you to create and build Power Apps. -1. **Plans**: View and edit your plans. More information: [Use the Plan designer (preview)](../plan-designer/plan-designer.md). +1. **Plans**: View and edit your plans. More information: [Overview of Plan designer](../plan-designer/plan-designer.md). 1. **Apps**: If you've created an app or someone else has created one and shared it with you, you can play or edit it. You can also filter the list of apps based on criteria such as whether you opened it recently. +1. **AI hub**: Create and use AI models that optimize your business processes. More information: [Overview of AI Builder](/ai-builder/overview). 1. **Your most used pages such as Tables, Connections, Flows**: When you first sign in the top three pages that you use most are pinned to the left navigation pane. Use the **More** option to unpin any of these pages and pin something else. 1. **More**: Pin your most used items to the left navigation such as tables, flows, and more. 1. **Power Platform**: Explore other Power Platform products or service. @@ -74,12 +76,8 @@ You can also unpin and item by selecting the more button and then select **Unpin ### Discover all -To see all your Power Apps, from the left navigation pane, select **More** > **Discover all**. - -> [!div class="mx-imgBorder"] -> ![Discover all your Power Apps.](media/intro-maker-portal/discover-all.png "Discover all") +To see all your Power Apps, from the left navigation pane, select **More** > **Discover all**. To keep it pinned, select the ![Pin button.](media/intro-maker-portal/pin-button.png) pin button. -Select **Discover all** to see the **Discover** page on the left navigation pane. To keep in pinned, select the ![Pin button.](media/intro-maker-portal/pin-button.png) pin button. ### Move up or move down @@ -118,7 +116,7 @@ Environments can be managed using [Power Platform admin center](/power-platform/ ### Notifications -Select the bell icon to see notifications. Notifications are stored in the notification center until you dismiss them or when they expire. +To see notifications select the bell icon. Notifications are stored in the notification center until you dismiss them or when they expire. ### Settings @@ -139,41 +137,42 @@ Select the gear icon to perform tasks such as connecting to data sources, identi ### Help -In the header, select the question mark icon to find more information about either canvas apps or model-driven apps. +In the header, select the question mark icon to find more information about [Power Apps](../../index.yml) > [!div class="mx-imgBorder"] > ![List of model-driven apps with an ellipsis menu open.](media/intro-maker-portal/help-icon.png) -You'll find links to documentation, Power Apps training on Microsoft Learn, the Power Apps Community (where you can share information with users in other organizations), and the Power Apps blog (where the newest features are announced). +Find links to documentation, Power Apps training on Microsoft Learn, the Power Apps Community where you can share information with users in other organizations, and the Power Apps blog where the newest features are announced. -## 4 - Copilot in Power Apps -If your organization has [Copilot in Power Apps (preview)](ai-overview.md) enabled then you'll see Copilot assistant on the Power Apps Home screen. For more information, see [Build apps through conversation (preview)](ai-conversations-create-app.md). +## 4 - Create a plan -## 5 – Build apps +Use Plan designer to create user roles, data tables, and apps that address your business needs. Learn more in [Create a plan using Plan designer](../plan-designer/create-plan.md). -Start building apps, which provide rich business logic and workflow capabilities to transform your manual business operations into digital, automated processes. +## 5 – View and edit your plans -To create an app, select from the following options: +Use the **Plans** menu in the left navigation pane to [access and edit your plans](../plan-designer/create-plan.md#view-and-edit-plans). -- **Start with data**: Lets you upload an [Excel file](get-started-create-from-data.md), build your own table, select a [Dataverse table](data-platform-create-app.md), or choose from external data source such as [SharePoint](app-from-sharepoint.md), [Excel](./connections/connection-excel.md), or [SQL](./connections/sql-connection-overview.md) to start building your app. - - > [!NOTE] - > If your organization has [AI enabled](ai-overview.md) then you'll see AI assistant when you select **Start with data**. For more information, see [Build apps through conversation](ai-conversations-create-app.md). - -- **Start with a page design**: Select the type of app you want to create. You can also use the **Filter** option located in the top-right to narrow down templates by app type or features, such as offline use, responsive design, or embed into other Microsoft 365 products. More information: [Overview of creating apps in Power Apps](../index.md) -- **Start with an app template**: Choose from an app template including, data-centered templates for mobile apps. More information: [Create a canvas app from a template](get-started-test-drive.md) +## 6 – Build apps + +Build apps that provide rich business logic and workflow capabilities to transform manual business operations into digital, automated processes. + +To create an app, select **Create** and then choose from the following options: + +- **Start with Copilot**: [Build apps through conversation](ai-conversations-create-app.md) +- **Start with data**: [Create a canvas app using Microsoft Dataverse](data-platform-create-app-scratch.md) or [Create a canvas app based on Excel data](get-started-create-from-blank.md) +- **Start with a blank app**: [Create a blank canvas app from scratch](create-blank-app.md) +- **Start with a page design**: Select the type of app you want to create. Use the **Filter** option in the top-right to narrow templates by app type or features like offline use, responsive design, or embedding into other Microsoft 365 products. More information: [Overview of creating apps in Power Apps](../index.md). +- **Start with an app template**: Choose from app templates, including data-centered templates for mobile apps. More information: [Create a canvas app from a template](get-started-test-drive.md). > [!NOTE] > If you're trying to create an app using Dataverse but the option is unavailable, then review the [permissions table](#permissions-for-dataverse) below. -- **Your apps**: On the **Home** page, find your top six apps that you own or apps that are shared with you. You also have the option to filter and sort apps quickly to find the app you're looking for. Use the **Commands** button to perform various actions such as editing the app, viewing app details, and accessing settings. -- **My apps**: On the **Apps** page, find the apps that you own. Use the search or the filter and sort options to find the app you're looking for. Select an app and perform various actions such as edit the app, view app details, and access app setting using the commands on the command bar or use the **Commands** button. - +- **Apps**: On the **Home** page, find the apps that you own or apps that are shared with you. You also have the option to filter and sort apps quickly to find the app you're looking for. Hover over the app name to **Edit**, **Play, or select **Commands** to perform various actions such as share the app, view app details, and access app settings. ### Permissions for Dataverse -The table summarizes scenarios and outcome when you create apps that require Microsoft Dataverse. +The table summarizes scenarios and outcomes when creating apps that require Microsoft Dataverse. | **Maker has access to a developer environment** | **Maker has permission to create a developer environment** | **Maker has access to another Dataverse environment with required permissions** | **Action** | diff --git a/powerapps-docs/maker/canvas-apps/keyboard-shortcuts.md b/powerapps-docs/maker/canvas-apps/keyboard-shortcuts.md index 73a885628f..6faecc9414 100644 --- a/powerapps-docs/maker/canvas-apps/keyboard-shortcuts.md +++ b/powerapps-docs/maker/canvas-apps/keyboard-shortcuts.md @@ -3,10 +3,10 @@ title: Keyboard shortcuts for canvas apps description: Learn about the different keyboard shortcuts available to run various actions and operations within canvas apps. author: TashasEv -ms.topic: conceptual +ms.topic: article ms.custom: canvas ms.reviewer: mkaur -ms.date: 06/12/2020 +ms.date: 06/10/2025 ms.subservice: canvas-maker ms.author: tashas search.audienceType: @@ -17,7 +17,7 @@ contributors: # Keyboard shortcuts for canvas apps > [!NOTE] -> Shortcuts might vary based on keyboard layout. +> Shortcuts can vary based on keyboard layout. ## File @@ -35,7 +35,7 @@ contributors: | Shortcut | Action | |--|--| | Enter | Run the selected command | -| Tab | Move between commands on the selected tab and then to the next tab | +| Tab | Move between commands on the selected tab, then to the next tab | | Alt+I | Select the **Insert** tab | ## Editing @@ -46,13 +46,18 @@ contributors: | Ctrl+X | Cut | | Ctrl+C | Copy | | Ctrl+V | Paste | -| Ctrl+Z | Undo command | -| Ctrl+Y | Redo command | -| Ctrl+M | Add a screen | -| Ctrl+= or Ctrl+Shift+= | Zoom in | -| Ctrl+- or Ctrl+Shift+- | Zoom out | +| Ctrl+Z | Undo | +| Ctrl+Y | Redo | +| Ctrl+=, Ctrl+Shift+=, or Ctrl+Mouse wheel up | Zoom in | +| Ctrl+-, Ctrl+Shift+-, or Ctrl+Mouse wheel down | Zoom out | | Ctrl+0 | Fit canvas to page | -| Shift+Enter | Break a line in a formula | +| Enter or Shift+Enter | Select a suggestion in a formula without adding a new line (Enhanced formula bar shortcuts is turned off) | +| Enter | Select a suggestion in a formula and create a new line (Enhanced formula bar shortcuts must be turned on)| +| Shift+Enter | Create a new line in a formula without keeping the suggestion (Enhanced formula bar shortcuts must be turned on)| | + +> [!IMPORTANT] +> To use keyboard shortcuts for the formula bar, turn on **Enhanced formula bar shortcuts**. In Power Apps, go to [**Settings**](intro-maker-portal.md#settings), and then select **Power App settings**. On the **Editing** tab, turn on **Enhanced formula bar shortcuts**. + ## Preview @@ -65,24 +70,24 @@ contributors: | Shortcut | Action | |--|--| -| Tab | Select the next control | -| Shift + F11 | Sets focus to the inline action bar | -| Ctrl+Click or Shift+Click | Select multiple objects at once | -| Right arrow | Nudge the selected control to the right | -| Left arrow | Nudge the selected control to the left | -| Up arrow | Nudge the selected control up | -| Down arrow | Nudge the selected control down | +| Tab | Select the next control | +| Shift+F11 | Set focus to the inline action bar | +| Hold down Ctrl while selecting or hold down Shift while selecting | Select multiple objects at once | +| Right arrow | Move the selected control to the right | +| Left arrow | Move the selected control to the left | +| Up arrow | Move the selected control up | +| Down arrow | Move the selected control down | ## Tree view > [!NOTE] -> These shortcuts require the **Tree view** pane to have focus. +> These shortcuts work when the **Tree view** pane has focus. | Shortcut | Action | |--|--| | F2 | Rename a control | | Esc | Cancel renaming a control | -| Ctrl+G | Group/ungroup controls | +| Ctrl+G | Group or ungroup controls | | Ctrl+] | Bring a control forward | | Ctrl+[ | Send a control backward | | Ctrl+Shift+] | Bring to front | @@ -106,7 +111,7 @@ contributors: | Shortcut | Action | |--|--| | Ctrl+B | Cycle through levels of bold | -| Ctrl+I | Turn italic on or off | +| Ctrl+I | Turn italics on or off | | Ctrl+U | Add or remove underline | ## Alternate behavior @@ -115,26 +120,26 @@ contributors: |--|--| | Alt or Ctrl+Shift | 1. Before selecting a control, hide design elements so that you can interact with the controls as the app's user would.
    2. After initiating a resize or reposition of a control, holding down these keys overrides any snap points. | -Like an Excel spreadsheet, canvas apps are live and operating even when they're being edited. There's no need to change to preview mode in order to exercise your app, making the editing and test cycles much faster. But this poses a problem: How do we differentiate selecting a button control so that it can be resized from selecting a button control to exercise the logic in our app? +Like an Excel spreadsheet, canvas apps are live and running even when you're editing them. You don't need to switch to preview mode to test your app, so editing and testing are much faster. But this creates a challenge: How do you select a button control to resize it instead of selecting it to run the app logic? -When in design mode, by default, selecting an object is for editing—moving, resizing, changing properties, and otherwise configuring the object. This default can be overridden by holding down the Alt or Ctrl+Shift keys *before* initiating the selection, which treats the selection as if a user of the app had done it. +When you're in design mode, selecting an object lets you edit it—move, resize, change properties, and configure the object. To override this default, hold down the Alt or Ctrl+Shift keys *before* you select the object. This treats the selection as if a user of the app selected it. -In the following animation, a button control is first selected for editing. Adorners appear around the control and the formula bar shows the **OnSelect** property, ready to be edited. The button is then released. *With the Alt key first depressed*, the button control is again selected, but this time the **OnSelect** property is evaluated and the notification is displayed, just as if the button was selected in a running app. +In the following animation, a button control is first selected for editing. Adorners appear around the control, and the formula bar shows the **OnSelect** property, ready to edit. After you release the button, hold down the Alt key and select the button control again. This time, the **OnSelect** property runs, and the notification appears, just like when a user selects the button in a running app. -![Animation showing the effect of starting by holding down the alt key select a button control.](media/keyboard-shortcuts/alt-select.gif) +![Animation that shows holding down the Alt key before selecting a button control, which triggers the OnSelect property and displays a notification.](media/keyboard-shortcuts/alt-select.gif) -The Alt key can also be used *after* a control has been selected to override snap points for moving and resizing. The next animation shows the resize of a data card within an [**Edit form**](controls/control-form-detail.md) control. Initially, the resizing is restricted to specific snap points. Later, *without releasing the mouses button*, the Alt key is depressed along with the mouse button. The addition of the Alt key overrides the snap points and any width can be obtained with the mouse. +You can also use the Alt key *after* you select a control to override snap points when moving or resizing. The next animation shows how to resize a data card in an [**Edit form**](controls/control-form-detail.md) control. At first, resizing is limited to specific snap points. Later, *without releasing the mouse button*, hold down the Alt key. This overrides the snap points, so you can set any width with the mouse. -![Animation showing the effect of adding the alt key to the resize of a data card.](media/keyboard-shortcuts/alt-fine-control.gif) +![Animation that shows holding down the Alt key while resizing a data card in an Edit form control to override snap points.](media/keyboard-shortcuts/alt-fine-control.gif) ## Other | Shortcut | Action | |--|--| | F1 | Open documentation | -| Ctrl+F6 | Navigate to the next landmark | -| Ctrl+Shift+F6 | Navigate to the previous landmark | -| Shift+F10 | Open a shortcut menu in, for example, **Tree view** | +| Ctrl+F6 | Go to the next landmark | +| Ctrl+Shift+F6 | Go to the previous landmark | +| Shift+F10 | Open a shortcut menu, for example, in **Tree view** | diff --git a/powerapps-docs/maker/canvas-apps/license-designation.md b/powerapps-docs/maker/canvas-apps/license-designation.md index 1d3f38430a..3f617bbc5c 100644 --- a/powerapps-docs/maker/canvas-apps/license-designation.md +++ b/powerapps-docs/maker/canvas-apps/license-designation.md @@ -2,7 +2,7 @@ title: How to check license designation for an app description: Explains how to check license designation for the selected canvas app. author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: ms.subservice: canvas-maker diff --git a/powerapps-docs/maker/canvas-apps/map-component-input-fields.md b/powerapps-docs/maker/canvas-apps/map-component-input-fields.md index d78fed51cf..2e7f29f11e 100644 --- a/powerapps-docs/maker/canvas-apps/map-component-input-fields.md +++ b/powerapps-docs/maker/canvas-apps/map-component-input-fields.md @@ -3,7 +3,7 @@ title: Map input fields of a component description: Learn about how to map input fields of a component to the table or record. author: jorisdg ms.subservice: canvas-developer -ms.topic: article +ms.topic: how-to ms.date: 06/01/2022 ms.author: jorisde ms.reviewer: mkaur diff --git a/powerapps-docs/maker/canvas-apps/markup-in-mixed-reality.md b/powerapps-docs/maker/canvas-apps/markup-in-mixed-reality.md index 9de321128f..85a6409f0e 100644 --- a/powerapps-docs/maker/canvas-apps/markup-in-mixed-reality.md +++ b/powerapps-docs/maker/canvas-apps/markup-in-mixed-reality.md @@ -2,7 +2,7 @@ title: Use the Markup in MR control in Power Apps description: Paint lines in 3D or draw 3D arrows with augmented reality features in Power Apps. author: anuitz -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.date: 4/26/2022 ms.reviewer: mduelae diff --git a/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-create-agent-from-app-new-menu.png b/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-create-agent-from-app-new-menu.png new file mode 100644 index 0000000000..99a74c9c38 Binary files /dev/null and b/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-create-agent-from-app-new-menu.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-process-summary.png b/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-process-summary.png new file mode 100644 index 0000000000..0db4daeca5 Binary files /dev/null and b/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-process-summary.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-regenerate-instructions-1.png b/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-regenerate-instructions-1.png deleted file mode 100644 index f36cf6de46..0000000000 Binary files a/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-regenerate-instructions-1.png and /dev/null differ diff --git a/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-regenerate-instructions.png b/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-regenerate-instructions.png index 1312b7d204..e5ad71feca 100644 Binary files a/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-regenerate-instructions.png and b/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-regenerate-instructions.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-select-app-then-next.png b/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-select-app-then-next.png new file mode 100644 index 0000000000..6f6bb4405e Binary files /dev/null and b/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-select-app-then-next.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-select-app.png b/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-select-app.png new file mode 100644 index 0000000000..316f8714e3 Binary files /dev/null and b/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-select-app.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-suggestions.png b/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-suggestions.png new file mode 100644 index 0000000000..4c6973339e Binary files /dev/null and b/powerapps-docs/maker/canvas-apps/media/agent-builder/ab-suggestions.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/app-from-sharepoint/sample-list.png b/powerapps-docs/maker/canvas-apps/media/app-from-sharepoint/sample-list.png new file mode 100644 index 0000000000..d42ed1e439 Binary files /dev/null and b/powerapps-docs/maker/canvas-apps/media/app-from-sharepoint/sample-list.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/application-insights/correlation-output.png b/powerapps-docs/maker/canvas-apps/media/application-insights/correlation-output.png index 1936616a9b..e5a46e517f 100644 Binary files a/powerapps-docs/maker/canvas-apps/media/application-insights/correlation-output.png and b/powerapps-docs/maker/canvas-apps/media/application-insights/correlation-output.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/application-insights/expand-custom-dimensions.png b/powerapps-docs/maker/canvas-apps/media/application-insights/expand-custom-dimensions.png index c5feaadc9c..420371295d 100644 Binary files a/powerapps-docs/maker/canvas-apps/media/application-insights/expand-custom-dimensions.png and b/powerapps-docs/maker/canvas-apps/media/application-insights/expand-custom-dimensions.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/application-insights/view-app-feedback.png b/powerapps-docs/maker/canvas-apps/media/application-insights/view-app-feedback.png index 8a4391a6b0..eff14d0283 100644 Binary files a/powerapps-docs/maker/canvas-apps/media/application-insights/view-app-feedback.png and b/powerapps-docs/maker/canvas-apps/media/application-insights/view-app-feedback.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/artificial-intelligence/data-workspace-copilot.png b/powerapps-docs/maker/canvas-apps/media/artificial-intelligence/data-workspace-copilot.png index b34e754d16..35fe606e3f 100644 Binary files a/powerapps-docs/maker/canvas-apps/media/artificial-intelligence/data-workspace-copilot.png and b/powerapps-docs/maker/canvas-apps/media/artificial-intelligence/data-workspace-copilot.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/code-view/edge-clipboard-warning.png b/powerapps-docs/maker/canvas-apps/media/code-view/edge-clipboard-warning.png new file mode 100644 index 0000000000..1bbd32afe7 Binary files /dev/null and b/powerapps-docs/maker/canvas-apps/media/code-view/edge-clipboard-warning.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/copresence/coauthor-settings.png b/powerapps-docs/maker/canvas-apps/media/copresence/coauthor-settings.png new file mode 100644 index 0000000000..53942fb3a8 Binary files /dev/null and b/powerapps-docs/maker/canvas-apps/media/copresence/coauthor-settings.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/get-sessionid/navigation-option.png b/powerapps-docs/maker/canvas-apps/media/get-sessionid/navigation-option.png new file mode 100644 index 0000000000..a87b3f2bc5 Binary files /dev/null and b/powerapps-docs/maker/canvas-apps/media/get-sessionid/navigation-option.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/get-sessionid/session-details-screen.png b/powerapps-docs/maker/canvas-apps/media/get-sessionid/session-details-screen.png new file mode 100644 index 0000000000..ed045bfae1 Binary files /dev/null and b/powerapps-docs/maker/canvas-apps/media/get-sessionid/session-details-screen.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/get-sessionid/setting-option.png b/powerapps-docs/maker/canvas-apps/media/get-sessionid/setting-option.png new file mode 100644 index 0000000000..7b1c74c93a Binary files /dev/null and b/powerapps-docs/maker/canvas-apps/media/get-sessionid/setting-option.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/get-sessionid/setting-screen.png b/powerapps-docs/maker/canvas-apps/media/get-sessionid/setting-screen.png new file mode 100644 index 0000000000..456568e893 Binary files /dev/null and b/powerapps-docs/maker/canvas-apps/media/get-sessionid/setting-screen.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/default-nav-1.png b/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/default-nav-1.png index 5ab43574fe..46933a63b0 100644 Binary files a/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/default-nav-1.png and b/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/default-nav-1.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/homepage-new-look.png b/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/homepage-new-look.png index 10a796c890..d045ba887b 100644 Binary files a/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/homepage-new-look.png and b/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/homepage-new-look.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/intro_to_maker_portal_switch_directory_2.png b/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/intro_to_maker_portal_switch_directory_2.png index f20998743e..bd06d63a94 100644 Binary files a/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/intro_to_maker_portal_switch_directory_2.png and b/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/intro_to_maker_portal_switch_directory_2.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/move-up-down-4.png b/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/move-up-down-4.png index 1c1f07215b..9078f197da 100644 Binary files a/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/move-up-down-4.png and b/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/move-up-down-4.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/pin-3.png b/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/pin-3.png index af237756c2..3bc1e58ab5 100644 Binary files a/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/pin-3.png and b/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/pin-3.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/power-platform-services.png b/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/power-platform-services.png index 46aa20d701..99c82512d7 100644 Binary files a/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/power-platform-services.png and b/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/power-platform-services.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/unpin-page.png b/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/unpin-page.png index 15b6e129d0..9f269d37a0 100644 Binary files a/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/unpin-page.png and b/powerapps-docs/maker/canvas-apps/media/intro-maker-portal/unpin-page.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/test-studio-classic-pipeline-editor/variables.png b/powerapps-docs/maker/canvas-apps/media/test-studio-classic-pipeline-editor/variables.png index 7805e52a65..78bcd3abc4 100644 Binary files a/powerapps-docs/maker/canvas-apps/media/test-studio-classic-pipeline-editor/variables.png and b/powerapps-docs/maker/canvas-apps/media/test-studio-classic-pipeline-editor/variables.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/test-studio-yaml-pipeline/save-pipeline.PNG b/powerapps-docs/maker/canvas-apps/media/test-studio-yaml-pipeline/save-pipeline.PNG deleted file mode 100644 index 82a7faadfc..0000000000 Binary files a/powerapps-docs/maker/canvas-apps/media/test-studio-yaml-pipeline/save-pipeline.PNG and /dev/null differ diff --git a/powerapps-docs/maker/canvas-apps/media/test-studio-yaml-pipeline/save-pipeline.png b/powerapps-docs/maker/canvas-apps/media/test-studio-yaml-pipeline/save-pipeline.png new file mode 100644 index 0000000000..1c10d64f71 Binary files /dev/null and b/powerapps-docs/maker/canvas-apps/media/test-studio-yaml-pipeline/save-pipeline.png differ diff --git a/powerapps-docs/maker/canvas-apps/media/test-studio-yaml-pipeline/update-yaml-test-file.PNG b/powerapps-docs/maker/canvas-apps/media/test-studio-yaml-pipeline/update-yaml-test-file.PNG deleted file mode 100644 index 914657310d..0000000000 Binary files a/powerapps-docs/maker/canvas-apps/media/test-studio-yaml-pipeline/update-yaml-test-file.PNG and /dev/null differ diff --git a/powerapps-docs/maker/canvas-apps/media/test-studio-yaml-pipeline/update-yaml-test-file.png b/powerapps-docs/maker/canvas-apps/media/test-studio-yaml-pipeline/update-yaml-test-file.png new file mode 100644 index 0000000000..55b3c58c85 Binary files /dev/null and b/powerapps-docs/maker/canvas-apps/media/test-studio-yaml-pipeline/update-yaml-test-file.png differ diff --git a/powerapps-docs/maker/canvas-apps/mixed-reality-add-pins-3d-model.md b/powerapps-docs/maker/canvas-apps/mixed-reality-add-pins-3d-model.md index 601a68b23e..555960a3fd 100644 --- a/powerapps-docs/maker/canvas-apps/mixed-reality-add-pins-3d-model.md +++ b/powerapps-docs/maker/canvas-apps/mixed-reality-add-pins-3d-model.md @@ -2,7 +2,7 @@ title: Add pins to 3D objects in your canvas apps description: Add pins to 3D objects in canvas apps using Power Apps Studio. author: anuitz -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mduelae ms.date: 3/3/2022 diff --git a/powerapps-docs/maker/canvas-apps/mixed-reality-cgtrader.md b/powerapps-docs/maker/canvas-apps/mixed-reality-cgtrader.md index e5492f2135..b475717c52 100644 --- a/powerapps-docs/maker/canvas-apps/mixed-reality-cgtrader.md +++ b/powerapps-docs/maker/canvas-apps/mixed-reality-cgtrader.md @@ -2,7 +2,7 @@ title: Load 3D models from CGTrader into mixed reality controls (preview) description: Add 3D models from CGTrader into mixed reality controls in your canvas apps. author: anuitz -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mduelae ms.date: 3/3/2022 diff --git a/powerapps-docs/maker/canvas-apps/mixed-reality-component-measure-distance.md b/powerapps-docs/maker/canvas-apps/mixed-reality-component-measure-distance.md index efd39b389b..7ddd221041 100644 --- a/powerapps-docs/maker/canvas-apps/mixed-reality-component-measure-distance.md +++ b/powerapps-docs/maker/canvas-apps/mixed-reality-component-measure-distance.md @@ -2,7 +2,7 @@ title: Use the Measuring Camera control in Power Apps description: Digitally measure distances, areas, and freeform shapes in the real world with augmented reality features in Power Apps. author: anuitz -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.date: 3/4/2022 ms.reviewer: mkaur diff --git a/powerapps-docs/maker/canvas-apps/mixed-reality-component-view-3d-store.md b/powerapps-docs/maker/canvas-apps/mixed-reality-component-view-3d-store.md index 86c668c8d1..dc16c033e9 100644 --- a/powerapps-docs/maker/canvas-apps/mixed-reality-component-view-3d-store.md +++ b/powerapps-docs/maker/canvas-apps/mixed-reality-component-view-3d-store.md @@ -2,7 +2,7 @@ title: Connect 3D models to Power Apps description: Load 3D models into Power Apps from attachments, media content, direct URLs, or Base64-encoded URIs. author: anuitz -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 3/4/2022 diff --git a/powerapps-docs/maker/canvas-apps/mixed-reality-component-view-3d.md b/powerapps-docs/maker/canvas-apps/mixed-reality-component-view-3d.md index f74182154f..71967d910f 100644 --- a/powerapps-docs/maker/canvas-apps/mixed-reality-component-view-3d.md +++ b/powerapps-docs/maker/canvas-apps/mixed-reality-component-view-3d.md @@ -2,7 +2,7 @@ title: Use the 3D object control in Power Apps description: View 3D models in Power Apps. author: anuitz -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mduelae ms.date: 02/15/2022 diff --git a/powerapps-docs/maker/canvas-apps/mixed-reality-component-view-mr.md b/powerapps-docs/maker/canvas-apps/mixed-reality-component-view-mr.md index 5494e432ff..24a9135bed 100644 --- a/powerapps-docs/maker/canvas-apps/mixed-reality-component-view-mr.md +++ b/powerapps-docs/maker/canvas-apps/mixed-reality-component-view-mr.md @@ -2,7 +2,7 @@ title: Use the View in MR control in Power Apps description: View 3D models and 2D images in the real world with augmented reality features in Power Apps. author: anuitz -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mduelae ms.date: 07/05/2022 diff --git a/powerapps-docs/maker/canvas-apps/mixed-reality-component-view-shape.md b/powerapps-docs/maker/canvas-apps/mixed-reality-component-view-shape.md index 37164d1bf2..0c49e455dd 100644 --- a/powerapps-docs/maker/canvas-apps/mixed-reality-component-view-shape.md +++ b/powerapps-docs/maker/canvas-apps/mixed-reality-component-view-shape.md @@ -2,7 +2,7 @@ title: Use the View shape in MR control in Power Apps description: View a predefined 3D shape in the real world with augmented reality features in Power Apps. author: anuitz -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.date: 3/7/2022 ms.reviewer: mduelae diff --git a/powerapps-docs/maker/canvas-apps/mixed-reality-marker-detection.md b/powerapps-docs/maker/canvas-apps/mixed-reality-marker-detection.md index a0e022b507..6a4d691e3c 100644 --- a/powerapps-docs/maker/canvas-apps/mixed-reality-marker-detection.md +++ b/powerapps-docs/maker/canvas-apps/mixed-reality-marker-detection.md @@ -3,7 +3,7 @@ title: Use marker detection with mixed-reality controls description: How to use the marker detection feature of the View in MR and View shape in MR mixed-reality controls in a canvas app. author: anuitz ms.service: powerapps -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: anuitz ms.date: 06/08/2022 diff --git a/powerapps-docs/maker/canvas-apps/mixed-reality-spatial-test.md b/powerapps-docs/maker/canvas-apps/mixed-reality-spatial-test.md index 3eadbbdabc..dd80ceb851 100644 --- a/powerapps-docs/maker/canvas-apps/mixed-reality-spatial-test.md +++ b/powerapps-docs/maker/canvas-apps/mixed-reality-spatial-test.md @@ -3,7 +3,7 @@ title: Test whether an object will fit in a space using mixed reality description: Use mixed-reality controls in a canvas app to test whether objects of a given size will fit in a measured space. author: anuitz ms.service: powerapps -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: anuitz ms.date: 03/04/2022 diff --git a/powerapps-docs/maker/canvas-apps/mixed-reality-take-upload-photos.md b/powerapps-docs/maker/canvas-apps/mixed-reality-take-upload-photos.md index f407554cf4..2d5ddaef54 100644 --- a/powerapps-docs/maker/canvas-apps/mixed-reality-take-upload-photos.md +++ b/powerapps-docs/maker/canvas-apps/mixed-reality-take-upload-photos.md @@ -2,7 +2,7 @@ title: Take screenshots of 3D objects in mixed reality description: Take photos of 3D objects in the real world with augmented reality features in Power Apps. author: anuitz -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.date: 03/4/2022 ms.reviewer: mduelae diff --git a/powerapps-docs/maker/canvas-apps/monitor-app-performance.md b/powerapps-docs/maker/canvas-apps/monitor-app-performance.md index 31a88bd210..d221fc89ab 100644 --- a/powerapps-docs/maker/canvas-apps/monitor-app-performance.md +++ b/powerapps-docs/maker/canvas-apps/monitor-app-performance.md @@ -2,7 +2,7 @@ title: Monitor your canvas apps performance (preview) description: Get valuable insights and recommendations for your canvas app using Monitor. author: dalajogun -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 11/18/2024 diff --git a/powerapps-docs/maker/canvas-apps/multi-language-apps.md b/powerapps-docs/maker/canvas-apps/multi-language-apps.md index 1412213731..570ae2b912 100644 --- a/powerapps-docs/maker/canvas-apps/multi-language-apps.md +++ b/powerapps-docs/maker/canvas-apps/multi-language-apps.md @@ -3,7 +3,7 @@ title: Build a multi-language app description: Use Power Apps to build apps that that can support multiple languages. author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 01/27/2021 diff --git a/powerapps-docs/maker/canvas-apps/northwind-install.md b/powerapps-docs/maker/canvas-apps/northwind-install.md index 92735dd20d..1f0b690e72 100644 --- a/powerapps-docs/maker/canvas-apps/northwind-install.md +++ b/powerapps-docs/maker/canvas-apps/northwind-install.md @@ -3,7 +3,7 @@ title: Install Northwind Traders database and apps description: Learn about how to install the Northwind database and apps into an environment to explore relational concepts. author: gregli-msft -ms.topic: conceptual +ms.topic: install-set-up-deploy ms.custom: canvas ms.reviewer: mkaur ms.date: 06/06/2019 diff --git a/powerapps-docs/maker/canvas-apps/northwind-orders-canvas-part1.md b/powerapps-docs/maker/canvas-apps/northwind-orders-canvas-part1.md index 4663360934..c95c73233a 100644 --- a/powerapps-docs/maker/canvas-apps/northwind-orders-canvas-part1.md +++ b/powerapps-docs/maker/canvas-apps/northwind-orders-canvas-part1.md @@ -3,7 +3,7 @@ title: Create an order gallery in a canvas app description: Learn about how to create an order gallery in a canvas app to manage data for Northwind Traders. author: gregli-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 01/27/2021 diff --git a/powerapps-docs/maker/canvas-apps/northwind-orders-canvas-part2.md b/powerapps-docs/maker/canvas-apps/northwind-orders-canvas-part2.md index 02f97af882..8fa5c85b93 100644 --- a/powerapps-docs/maker/canvas-apps/northwind-orders-canvas-part2.md +++ b/powerapps-docs/maker/canvas-apps/northwind-orders-canvas-part2.md @@ -3,7 +3,7 @@ title: Create a summary form in a canvas app description: Learn about how to create an summary form in a canvas app to manage data for Northwind Traders. author: gregli-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 11/06/2019 diff --git a/powerapps-docs/maker/canvas-apps/northwind-orders-canvas-part3.md b/powerapps-docs/maker/canvas-apps/northwind-orders-canvas-part3.md index af256584bd..ff99e40108 100644 --- a/powerapps-docs/maker/canvas-apps/northwind-orders-canvas-part3.md +++ b/powerapps-docs/maker/canvas-apps/northwind-orders-canvas-part3.md @@ -3,7 +3,7 @@ title: Create a detail gallery in a canvas app description: Learn about how to create a detail gallery in a canvas app to manage data for Northwind Traders. author: gregli-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 05/13/2021 diff --git a/powerapps-docs/maker/canvas-apps/offline-apps.md b/powerapps-docs/maker/canvas-apps/offline-apps.md index f373ebb026..6d8d9bf9d8 100644 --- a/powerapps-docs/maker/canvas-apps/offline-apps.md +++ b/powerapps-docs/maker/canvas-apps/offline-apps.md @@ -3,7 +3,7 @@ title: Develop offline-capable canvas apps description: Learn about how to develop offline-capable canvas apps so that your users are productive whether they are online or offline. author: mustlaz ms.subservice: canvas-developer -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 03/18/2024 @@ -47,6 +47,8 @@ These functions are limited by the amount of available app memory because they o The functions also don't automatically resolve merge conflicts when a device comes online. Configuration on what data is saved and how to handle reconnection is up to the maker when writing expressions. +After using **LoadData** to populate a collection, that collection cannot be used to update Dataverse data which includes a lookup field. Doing so will result in the lookup field not being updated. + For updates on offline capabilities, return to this topic, and subscribe to the [Power Apps blog](https://powerapps.microsoft.com/blog/). ## Overview diff --git a/powerapps-docs/maker/canvas-apps/power-apps-ideas-train-examples.md b/powerapps-docs/maker/canvas-apps/power-apps-ideas-train-examples.md deleted file mode 100644 index 6f660d9906..0000000000 --- a/powerapps-docs/maker/canvas-apps/power-apps-ideas-train-examples.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: "Transform examples to Power Fx formulas" -description: Learn how to train Power Apps with your own examples and generate formulas using Power Apps Ideas. -author: norliu - -ms.topic: article -ms.custom: canvas -ms.date: 2/13/2025 -ms.subservice: canvas-maker -ms.author: norliu -ms.reviewer: mkaur -search.audienceType: - - maker -contributors: - - norliu - - mduelae ---- - -# Transform examples to Power Fx formulas - -> [!IMPORTANT] -> Effective February 19, 2025, the **Train with examples** feature to transform examples to Power Fx formulas is deprecated and no longer supported. We recommend using [Transform natural language to Power Fx formulas](power-apps-ideas-transform.md). For more information, see [Deprecation of Train with examples to transform examples to Power Fx formulas](/power-platform/important-changes-coming#deprecation-of-train-with-examples-to-transform-examples-to-power-fx-formulas) - -Most of us have struggled at times with manipulation of text when building apps. For help, we search online for tips and examples, or tools to test RegEx patterns. **Train with examples** uses [PROSE](https://www.microsoft.com/research/group/prose/) (Programming by Examples and Natural Language) so you can now just provide one or more desired outputs, and then Power Apps can automatically generate the formula for you. - -Let's use a simple app to show how to use this feature. You can follow [Create an app from scratch](data-platform-create-app-scratch.md) to create a sample app. In the following example, we're using the **Accounts** table in Dataverse with sample data that you can choose to install while creating the environment. You can also use your own table if you don't have sample data. - -## Work with dates in a gallery - -To work with and manipulate dates in a gallery using Power Apps Ideas: - -1. Select your target label. For this example, we'll use **Created On**. Select the date field and then select **Format data**. - - ![Power Apps Ideas demo.](media/power-apps-ideas/prose-entrypoint-c7.png "Power Apps Ideas demo.") - -1. Enter your output in the **Desired format** text box. Or use one of the listed examples, in this case **May 25, 2021**, and then press Enter. - - Select the generated formula. - - ```power-fx - Text(DateTimeValue(ThisItem.'Created On'), "mmmm d", "en-US") - ``` - - ![Select a desired format.](media/power-apps-ideas/prose-entrypoint-c7-1.png "Select a desired format.") - - The formula is updated in the formula bar. You can now check the rest of the items in your gallery to see if the formula did the manipulation that you wanted. - -## Work with text display in a gallery - -To work with text display in a gallery using Power Apps Ideas: - -1. Select your target label, such as **Account Name**, and then select **Format data**. - -1. Enter your output in the **Desired format** text box or use one of the listed examples. For example, change the Account Name from "Fourth Coffee (sample)" to "Fourth C", press Enter, and then select the generated formula. - - ```power-fx - Left(ThisItem.'Account Name', Find(" ", ThisItem.'Account Name') + 1) - ``` - - The formula is updated in the formula bar, and you can check the rest of the items in your gallery to see if the formula did the manipulation that you wanted. - -## Use Train with examples in your app - -In the above scenario, if you wanted to include the first word of the account name along with the last word's initial, the above formula would not work for all scenarios. That's because the above formula takes only the second word's initial in the name. And some account names have three or more words. - -For example, "Alpine Ski House" becomes "Alpine S", whereas to have last word's initial, it should be "Alpine H". - -To achieve this scenario, use **Add examples** by providing such examples using the **Ideas** pane: - -1. Select **Add examples** and then select one of the values from your table. Type in the desired format. - - You can add up to 20 examples but typically you only need two or three examples for Ideas to start working. - -1. Press Enter or select the arrow button (**>**) to see new ideas. - -1. Select and apply to see if it meets your needs. - - ```power-fx - First(Split(ThisItem.'Account Name', " ")).Result & Mid(Left(ThisItem.'Account Name', First(LastN(MatchAll(ThisItem.'Account Name', "\ "), 2)).StartMatch + 1), First(LastN(MatchAll(ThisItem.'Account Name', "\ "), 2)).StartMatch) - ``` - - Now you've used the **Transform examples to Power Fx formulas** capability and generated a formula using Power Apps Ideas for the specific requirement that couldn't be achieved using the natural language alone. - -## Supported and unsupported capabilities - -The following capabilities are supported: - -- Converting a single date field in a table to a different format -- Converting a single text field in a table to a different format -- Converting a single number field in a table to a different format -- Works only for label text in a gallery -- All available languages and data connectors as supported by Power Apps regions - -The following capabilities aren't supported: - -- Math functions on number fields -- Manipulating text from multiple columns -- Formatting Lookup fields -- Scenarios that include: - - Branching - - If/else patterns ([function If()](functions/function-if.md)) - -### See also - -- [Formula reference](formula-reference.md) -- [Power Apps Ideas overview](power-apps-ideas.md) -- [Transform natural language to Power Fx formulas](power-apps-ideas-transform.md) diff --git a/powerapps-docs/maker/canvas-apps/power-apps-ideas-transform.md b/powerapps-docs/maker/canvas-apps/power-apps-ideas-transform.md index aea2efa2cf..424d85c662 100644 --- a/powerapps-docs/maker/canvas-apps/power-apps-ideas-transform.md +++ b/powerapps-docs/maker/canvas-apps/power-apps-ideas-transform.md @@ -3,7 +3,7 @@ title: "Transform natural language to Power Fx formulas" description: Learn how to use Power Apps Ideas to transform natural language into Power Fx formulas. author: norliu -ms.topic: article +ms.topic: how-to ms.custom: canvas ms.date: 10/04/2022 ms.subservice: canvas-maker diff --git a/powerapps-docs/maker/canvas-apps/power-apps-ideas.md b/powerapps-docs/maker/canvas-apps/power-apps-ideas.md index 4243ed15dd..d46a87a80f 100644 --- a/powerapps-docs/maker/canvas-apps/power-apps-ideas.md +++ b/powerapps-docs/maker/canvas-apps/power-apps-ideas.md @@ -5,7 +5,7 @@ author: norliu ms.topic: article ms.custom: canvas -ms.date: 2/13/2025 +ms.date: 3/20/2025 ms.subservice: canvas-maker ms.author: norliu ms.reviewer: mkaur @@ -53,7 +53,7 @@ If you want to see Ideas again, right-click on the control to see suggested Idea ## Next steps - [Transform natural language to Power Fx formulas](power-apps-ideas-transform.md) -- + ### See also [Formula reference](formula-reference.md) diff --git a/powerapps-docs/maker/canvas-apps/power-apps-studio.md b/powerapps-docs/maker/canvas-apps/power-apps-studio.md index 91f15eecc6..c8aa452d67 100644 --- a/powerapps-docs/maker/canvas-apps/power-apps-studio.md +++ b/powerapps-docs/maker/canvas-apps/power-apps-studio.md @@ -2,10 +2,10 @@ title: Understand Power Apps Studio description: Learn the components inside Power Apps Studio. author: lancedMicrosoft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur -ms.date: 9/11/2024 +ms.date: 5/21/2025 ms.subservice: canvas-maker ms.author: mkaur search.audienceType: @@ -87,6 +87,9 @@ Takes you back to the build hub, closing the current Power Apps Studio session. - **Undo**: Undo the last action. - **Redo**: Repeat the last action. + > [!NOTE] + > You can't undo or redo data operations, such as insert or delete a datasource. + #### Cut, copy, and paste :::image type="content" source="media/studio/pa-studio-cut-copy-paste.png" alt-text="Screenshot that shows where the cut, copy, and paste controls are located in the command bar."::: @@ -321,7 +324,7 @@ Select the tree view to show the screens available in the app. Switch to the **Components** tab of **Tree view** to work with component library features. You can add new components or reuse ones from the published component libraries. For more information, see [Component library](component-library.md). -:::image type="content" source="media/studio/pa-studio-components-tab.png" alt-text="Screeshot showing the Components tab of the Tree view pane."::: +:::image type="content" source="media/studio/pa-studio-components-tab.png" alt-text="Screenshot showing the Components tab of the Tree view pane."::: For more information on adding components by selecting **+ New component**, see the [Insert](#insert) section. diff --git a/powerapps-docs/maker/canvas-apps/power-apps-yaml.md b/powerapps-docs/maker/canvas-apps/power-apps-yaml.md index 60616250f9..6bd1a1a507 100644 --- a/powerapps-docs/maker/canvas-apps/power-apps-yaml.md +++ b/powerapps-docs/maker/canvas-apps/power-apps-yaml.md @@ -4,7 +4,7 @@ description: Learn about how to view source code files for canvas apps. author: marcelbf ms.author: marcelbf ms.date: 3/18/2025 -ms.topic: conceptual +ms.topic: how-to ms.reviewer: ms.subservice: canvas-maker ms.collection: get-started @@ -95,7 +95,7 @@ You can't directly convert ***.fx.yaml** files to the new formats. To convert ol This version is used by [Code view](code-view.md) during the [preview](working-with-experimental-preview.md#preview) period. It is designed to create canvas apps in Power Apps Studio, letting you easily copy and paste controls. In this version, the source code is used in Power Apps Studio instead of being converted, like the experimental format. -The format during the preview was temporary and is no longer in use. You can paste code from the preview format. +The format during preview was temporary and is no longer in use. You can paste code from the preview format. Here are the changes made from the experimental format: diff --git a/powerapps-docs/maker/canvas-apps/powerapps-custom-visual.md b/powerapps-docs/maker/canvas-apps/powerapps-custom-visual.md index d078b8dac3..b80fe343e6 100644 --- a/powerapps-docs/maker/canvas-apps/powerapps-custom-visual.md +++ b/powerapps-docs/maker/canvas-apps/powerapps-custom-visual.md @@ -3,7 +3,7 @@ title: Power Apps visual for Power BI description: Procedure and limitations for embedding a canvas app that uses the same data source and can be filtered like other report items in Power BI. author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 03/4/2025 diff --git a/powerapps-docs/maker/canvas-apps/preview-app.md b/powerapps-docs/maker/canvas-apps/preview-app.md index eeea0b77ea..10ef6ddb31 100644 --- a/powerapps-docs/maker/canvas-apps/preview-app.md +++ b/powerapps-docs/maker/canvas-apps/preview-app.md @@ -3,7 +3,7 @@ title: Preview your canvas apps description: Preview your app in Power Apps Studio to see how the app will look for your app users. author: tashaev -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 05/18/2023 diff --git a/powerapps-docs/maker/canvas-apps/register-custom-api.md b/powerapps-docs/maker/canvas-apps/register-custom-api.md index d09bafc319..c0cfa73ea8 100644 --- a/powerapps-docs/maker/canvas-apps/register-custom-api.md +++ b/powerapps-docs/maker/canvas-apps/register-custom-api.md @@ -4,7 +4,7 @@ description: Learn about creating, using, sharing, and certifying custom connect author: lancedMicrosoft ms.subservice: canvas-developer -ms.topic: conceptual +ms.topic: article ms.custom: canvas ms.reviewer: ms.date: 05/05/2017 diff --git a/powerapps-docs/maker/canvas-apps/rename-data-source.md b/powerapps-docs/maker/canvas-apps/rename-data-source.md index 094929f875..a3b7b0992b 100644 --- a/powerapps-docs/maker/canvas-apps/rename-data-source.md +++ b/powerapps-docs/maker/canvas-apps/rename-data-source.md @@ -3,7 +3,7 @@ title: Rename Power Apps action-based data sources description: Learn about how to rename Power Apps action-based data sources. author: lancedMicrosoft -ms.topic: conceptual +ms.topic: article ms.custom: canvas ms.reviewer: mkaur ms.date: 06/29/2021 diff --git a/powerapps-docs/maker/canvas-apps/restore-an-app.md b/powerapps-docs/maker/canvas-apps/restore-an-app.md index 385536c7cf..db86605126 100644 --- a/powerapps-docs/maker/canvas-apps/restore-an-app.md +++ b/powerapps-docs/maker/canvas-apps/restore-an-app.md @@ -3,7 +3,7 @@ title: Restore your canvas app to a previous version description: Learn about how to restore a canvas app to a previous version. author: emcoope-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 10/14/2024 diff --git a/powerapps-docs/maker/canvas-apps/save-publish-app.md b/powerapps-docs/maker/canvas-apps/save-publish-app.md index 326a5939e8..6f7d28fa17 100644 --- a/powerapps-docs/maker/canvas-apps/save-publish-app.md +++ b/powerapps-docs/maker/canvas-apps/save-publish-app.md @@ -2,10 +2,11 @@ title: Save and publish canvas apps description: Step-by-step instructions for saving and publishing canvas apps. author: amchern -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur -ms.date: 11/19/2024 +ms.date: 5/27/2025 +ms.update-cycle: 180-days ms.subservice: canvas-maker ms.author: emcoope search.audienceType: @@ -20,104 +21,108 @@ ms.collection: # Save and publish canvas apps -Whenever you save changes to a canvas app, you automatically publish them only for yourself and anyone else who has permissions to edit the app. When you finish making changes, you must explicitly publish them to make them available to everyone with whom the app is shared. - -For information about how to share an app, see [Share an app](share-app.md) +When you save changes to a canvas app, those changes are saved for you and anyone else who can edit the app. To make your changes available to everyone the app is shared with, publish the app. To learn how to share an app, see [Share an app](share-app.md). ## Save your app -With your app open for editing in [Power Apps](https://make.powerapps.com), you can save in several ways: +With your app open for editing in [Power Apps](https://make.powerapps.com), you can save your work in several ways: -- Select **Save** :::image type="icon" source="media/save-publish-app/save-icon.png"::: to save any unsaved changes you made to your app. With each Save, a new version is created in App version history. +- Select **Save** :::image type="icon" source="media/save-publish-app/save-icon.png"::: to save any unsaved changes to your app. Each time you save, a new version appears in app version history. -- Or, in the dropdown menu, choose one of the following options: +- In the dropdown menu, choose one of the following options: - - **Save with version notes**: Save and add notes about your updates. + - **Save with version notes**: Save and add notes about your update. - **Save as**: Duplicate the app with a different name. - **Download a copy**: Download a local copy of the app. -## Switch AutoSave on or off - -You can also set Power Apps to automatically save every two minutes. +## Turn AutoSave on or off -1. Select **More** **...** > **Settings**. +Power Apps saves your work automatically every two minutes. - :::image type="content" source="media/save-publish-app/autosave.png" alt-text="Screenshot that shows where the ellipses points are located that opens a dropdown menu to reveal the Settings option."::: - -1. Select the **General** tab. +1. On the command bar, select **Settings**, and then go to the **General** tab. 1. In the **Auto save** section, set the **Auto save** toggle to **On** or **Off**. - :::image type="content" source="media/save-publish-app/autosave2.png" alt-text="Screenshot that shows where the Auto save toggle is located."::: + :::image type="content" source="media/save-publish-app/autosave2.png" alt-text="Screenshot of the AutoSave toggle location in Power Apps settings."::: > [!NOTE] > -> - When you publish a canvas app, your app is updated and runs on the latest version of Power Apps. Your app gets the benefit of all the latest features and performance upgrades added since you last published. If you haven’t published an update in several months, you might see an immediate performance benefit when you republish the app. -> - To retrieve app details faster during startup, some data is stored locally on user devices in the browser cache. Information stored includes app environment and connection details. This data stays stored in the browser based on browser storage limits. Users can clear stored data based on these [instructions for each browser](/troubleshoot/power-platform/power-apps/troubleshooting-startup-issues#clear-your-browser-cache). +> - When you publish a canvas app, your app updates and runs on the latest version of Power Apps. Your app gets all the latest features and performance upgrades added since you last published. If you haven't published an update in several months, you can see an immediate performance benefit when you republish the app. +> - To retrieve app details faster during startup, some data stores locally on user devices in the browser cache. Information stored includes app environment and connection details. This data stays in the browser based on browser storage limits. Users can clear stored data based on these [instructions for each browser](/troubleshoot/power-platform/power-apps/troubleshooting-startup-issues#clear-your-browser-cache). + + +## Publish your app + + +1. On the command bar, select **Publish**. + If the app isn't saved, you're prompted to save it. After you save it, select **Publish** again. + +1. Enter your app's description, and then select **Publish this version**. -## Create an app description with Copilot (preview) +### Create an app description with Copilot (preview) -If your app is in a [managed environment](/power-platform/admin/managed-environment-overview), you can use AI to help you create a description for your app. +If your app is in a [managed environment](/power-platform/admin/managed-environment-overview), you can use AI to help create a description for your app. -When you save and publish your app, on the **Getting ready to publishing** dialog box select, **Create descriptions using AI**. +When you save and publish your app, in the **Publishing** dialog box, select **Create descriptions using AI**. -You can also generate an app description by going to, **Settings** > **General**. Under **Description** select, **Create descriptions using AI**. +You can also generate an app description by going to **Settings** > **General**. Under **Description**, select **Create descriptions using AI**. -Admins can disable this feature for Managed Environments in the Power Platform admin. For more information, see [Managed Environments panel](/power-platform/admin/managed-environment-enable). +Admins can disable this feature for managed environments in Power Platform admin. For more information, see [Managed Environments panel](/power-platform/admin/managed-environment-enable). > [!NOTE] -> If a description is not added before the app is published, Copilot generates one for the app once the app is published. Makers can always go back and edit this description if Copilot didn't quite get it right. +> If you don't add a description before publishing the app, Copilot generates one after the app is published. Makers can edit this description if Copilot doesn't generate it correctly. > [!IMPORTANT] > -> - To use this capability your app must be in a [managed environment](/power-platform/admin/managed-environment-overview). -> - Preview features aren’t meant for production use and might have restricted functionality. These features are available before an official release so that customers can get early access and provide feedback. +> - To use this capability, your app must be in a [managed environment](/power-platform/admin/managed-environment-overview). +> - Preview features aren't meant for production use and can have restricted functionality. These features are available before an official release so customers get early access and provide feedback. > - For more information, go to our [preview terms](https://go.microsoft.com/fwlink/?linkid=2189520). > - This capability is powered by [Azure OpenAI Service](/azure/cognitive-services/openai/overview). -> - This capability might not be available in your region yet or be subject to usage limits or capacity throttling. -> - To understand capabilities and limitations of AI-powered and Copilot features in Power Apps, see [Responsible AI FAQs for Power Apps](../common/responsible-ai-overview.md) +> - This capability isn't available in all regions yet or can be subject to usage limits or capacity throttling. +> - To learn about capabilities and limitations of AI-powered and Copilot features in Power Apps, see [Responsible AI FAQs for Power Apps](../common/responsible-ai-overview.md) ## Identify the live version To see all versions of an app: -1. Go to [Power Apps](https://make.powerapps.com?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc) > **Apps**. -1. Select the :::image type="icon" source="media/save-publish-app/vertical-ellipses.png"::: next to an app name. -1. Select **Details**, then the **Versions** tab. +1. Go to [Power Apps](https://make.powerapps.com?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc), and in the navigation pane, select **Apps**. +1. Select the **Commands** icon :::image type="icon" source="media/save-publish-app/vertical-ellipses.png"::: next to the app name. +1. Select **Details** > **Details**. +1. Go to the **Versions** tab. -The **Live** version is published for everyone with whom the app is shared. The most recent version of any app is available only to those users who have edit permissions for it. +The **Live** version is published for everyone the app is shared with. Only users with edit permissions can use the most recent version of the app. -:::image type="content" source="media/save-publish-app/publish-portal.png" alt-text="Screenshot that shows where different versions of the app are located and how to publish a specific version." lightbox="media/save-publish-app/publish-portal.png"::: +:::image type="content" source="media/save-publish-app/publish-portal.png" alt-text="Screenshot of where different versions of the app are located and how to publish a specific version." lightbox="media/save-publish-app/publish-portal.png"::: -To publish the most recent version, select the publish icon :::image type="icon" source="media/save-publish-app/publish-icon.png"::: while in editing mode for your app. +To publish the most recent version, select the publish icon :::image type="icon" source="media/save-publish-app/publish-icon.png"::: while editing your app. > [!NOTE] > -> - New published changes of an app might take a few seconds to display when launching the app. Publish time depends on the complexity of apps, which might take a few more minutes to publish. -> - If you already have an app open while a new version is published, you must reload the app to get the latest changes. -> - To reduce wait time to access your app, the app preload capability is turned on. You can turn it off. For more information, see [Overview of creating performant apps](create-performant-apps-overview.md). +> - New published changes to an app can take a few seconds to show when you launch the app. Publish time depends on the app's complexity, and it can take a few more minutes to finish publishing. +> - If you already have an app open when a new version is published, reload the app to get the latest changes. +> - To reduce wait time when using your app, the app preload capability is on. You can turn it off. For more information, see [Overview of creating performant apps](create-performant-apps-overview.md). ## In-app notifications for an updated version of the app -If users are waiting for an app to update, they get a notification stating **A new version of this app is coming. We'll let you know when it's available.** +When users wait for an app to update, they see a notification that says **A new version of this app is coming. We'll let you know when it's available.** -When the published changes are ready, users see a notification stating **You're using an old version of this app. Refresh to use the latest version.**. Users can select the **Refresh** button to see the latest version of the app. +When the published changes are ready, users see a notification that says **You're using an old version of this app. Refresh to use the latest version.** Users select the **Refresh** button to get the latest version of the app. ### Notification availability | Scenario | Availability | | - | - | | Canvas app on web | Generally available | -| Customized SharePoint Forms | Not available | +| Customized SharePoint forms | Not available | | Canvas app embedded in Teams | Not available | | Canvas app embedded in Power BI | Not available | | Power Apps web part | Not available | -| Canvas app embedded in iframe | Generally available | +| Canvas app embedded in an iframe | Generally available | ## Next steps -- Find and run the app in a [browser](../../user/run-app-browser.md) or on a [phone](../../mobile/run-powerapps-on-mobile.md). +- Run the app in a [browser](../../user/run-app-browser.md) or on a [phone](../../mobile/run-powerapps-on-mobile.md). - [Rename an app](set-name-tile.md) from [Power Apps](https://make.powerapps.com?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc). -- [Restore an app](restore-an-app.md) if you have multiple versions of an app. +- [Restore an app](restore-an-app.md) if you have more than one version of the app. [!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/canvas-apps/search.md b/powerapps-docs/maker/canvas-apps/search.md index abe1a6606d..3be8ec47bf 100644 --- a/powerapps-docs/maker/canvas-apps/search.md +++ b/powerapps-docs/maker/canvas-apps/search.md @@ -2,7 +2,7 @@ title: Use the Search pane description: Learn how to use the Search pane inside Power Apps Studio to find text. author: TashasEv -ms.topic: conceptual +ms.topic: article ms.custom: canvas ms.reviewer: mkaur ms.date: 06/29/2022 diff --git a/powerapps-docs/maker/canvas-apps/service-request-support.md b/powerapps-docs/maker/canvas-apps/service-request-support.md index 03e7f2d80c..a56ab57c5b 100644 --- a/powerapps-docs/maker/canvas-apps/service-request-support.md +++ b/powerapps-docs/maker/canvas-apps/service-request-support.md @@ -3,7 +3,7 @@ title: Create an effective support request description: Learn how to write a clear Power Apps support request so Microsoft support can help you quickly. author: tahoon ms.subservice: troubleshoot -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: ms.date: 7/2/2024 diff --git a/powerapps-docs/maker/canvas-apps/set-aspect-ratio-portrait-landscape.md b/powerapps-docs/maker/canvas-apps/set-aspect-ratio-portrait-landscape.md index cfd789f961..787f2de175 100644 --- a/powerapps-docs/maker/canvas-apps/set-aspect-ratio-portrait-landscape.md +++ b/powerapps-docs/maker/canvas-apps/set-aspect-ratio-portrait-landscape.md @@ -3,10 +3,10 @@ title: Change screen size and orientation of canvas apps description: Step-by-step instructions for changing settings such as the screen size and the orientation of a canvas app in Power Apps. author: emcoope-MSFT -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur -ms.date: 11/13/2024 +ms.date: 5/21/2025 ms.subservice: canvas-maker ms.author: emcoope search.audienceType: @@ -81,7 +81,7 @@ Customize a canvas app by changing its screen size and orientation. | 1 | Enabled | Enabled | The screen width and height are set by the maker. The screen scales to the window size available. | | | 2 | Disabled | Enabled | Not applicable. When scale to fit is disabled, lock aspect ratio is also disabled. | | | 3 | Enabled | Disabled | In Power Apps Studio, the screen scales to the window size available. In the end-user experience, Power Apps scales to the smallest edge (width or height), and then fills the UI for the larger edge. | For apps built for mobile, we recommend makers use **lock orientation** with this setting. | -| 4 | Disabled | Disabled | App experiences can be responsive. Makers can manulipate control locations using Power Fx to set X and Y values as well as width and height. | For more information, see [Responsive layout documentation](create-responsive-layout.md) and consider using auto-layout containers. | +| 4 | Disabled | Disabled | App experiences can be responsive. Makers can manipulate control locations using Power Fx to set X and Y values as well as width and height. | For more information, see [Responsive layout documentation](create-responsive-layout.md) and consider using auto-layout containers. | ## Next steps diff --git a/powerapps-docs/maker/canvas-apps/set-name-tile.md b/powerapps-docs/maker/canvas-apps/set-name-tile.md index 3c5704877b..2092af5c85 100644 --- a/powerapps-docs/maker/canvas-apps/set-name-tile.md +++ b/powerapps-docs/maker/canvas-apps/set-name-tile.md @@ -3,7 +3,7 @@ title: Change app name and icon for canvas apps description: Step-by-step instructions for changing settings, such the app name and the icon, of a canvas app in Power Apps. author: emcoope-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 05/24/2021 diff --git a/powerapps-docs/maker/canvas-apps/share-app-data.md b/powerapps-docs/maker/canvas-apps/share-app-data.md index d76fa0f7c9..d3f1ce6105 100644 --- a/powerapps-docs/maker/canvas-apps/share-app-data.md +++ b/powerapps-docs/maker/canvas-apps/share-app-data.md @@ -3,7 +3,7 @@ title: Share Excel files used by an app description: Learn about sharing Excel files in Dropbox, OneDrive, and Google Drive. author: jamesol-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 10/16/2016 diff --git a/powerapps-docs/maker/canvas-apps/share-app-guests.md b/powerapps-docs/maker/canvas-apps/share-app-guests.md index da721d2bad..e23dd7ca53 100644 --- a/powerapps-docs/maker/canvas-apps/share-app-guests.md +++ b/powerapps-docs/maker/canvas-apps/share-app-guests.md @@ -2,10 +2,10 @@ title: Share a canvas app with guest users description: Learn about how to share canvas app with guest users. author: alaug -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur -ms.date: 8/22/2023 +ms.date: 6/27/2025 ms.subservice: canvas-maker ms.author: alaug search.audienceType: @@ -24,10 +24,10 @@ Watch this video to learn how to share an app with guests: ## Prerequisites -- In Microsoft Entra ID, enable B2B external collaboration for the tenant. More information: [Enable B2B external collaboration and manage who can invite guests](/azure/active-directory/b2b/delegate-invitations) +- In Microsoft Entra ID, enable B2B external collaboration for the tenant. More information: [Configure external collaboration settings for B2B in Microsoft Entra External ID](/entra/external-id/external-collaboration-settings-configure) > [!NOTE] - > B2B external collaboration is enabled by default. However, you need to verify that the settings weren't changed by a tenant admin. For more information about Microsoft Entra B2B, see [What is guest user access in Microsoft Entra B2B?](/azure/active-directory/b2b/what-is-b2b). + > B2B external collaboration is enabled by default. However, you need to verify that the settings weren't changed by a tenant admin. For more information about Microsoft Entra B2B, see [Overview: B2B collaboration with external guests for your workforce](/entra/external-id/what-is-b2b). - Access to an account that can add guest users to a Microsoft Entra tenant. Admins and users with the Guest Inviter role can add guests to a tenant. @@ -41,36 +41,21 @@ Watch this video to learn how to share an app with guests: ## Steps to grant guest access -1. In Microsoft Entra ID, select **New guest user**. More information: [Quickstart: Add a new guest user in Microsoft Entra ID](/azure/active-directory/b2b/b2b-quickstart-add-guest-users-portal) +1. In Microsoft Entra ID, select **New guest user**. More information: [Quickstart: Add a guest user and send an invitation](/entra/external-id/b2b-quickstart-add-guest-users-portal) ![Add a guest in Microsoft Entra ID.](media/share-app/guest_access_doc_1.png "Add a guest in Microsoft Entra ID") 2. If the guest user doesn't already have a license in their home tenant, assign a license to the guest user. - - To assign guest users from admin.microsoft.com, go to [Assign licenses to one user](/office365/admin/subscriptions-and-billing/assign-licenses-to-users). + - To assign guest users from admin.microsoft.com, go to [Add users and assign licenses at the same time](/microsoft-365/admin/add-users/add-users). - - To assign guest users from portal.azure.com, go to [Assign or remove licenses](/azure/active-directory/fundamentals/license-users-groups). + - To assign guest users from portal.azure.com, go to [Assign or remove licenses](/entra/fundamentals/licensing). > [!IMPORTANT] > You might need to disable the Microsoft 365 admin center preview to assign a license to a guest. -3. Share the canvas app by performing these steps: +3. [Share an app from Power Apps](Share an app from Power Apps) - 1. Sign in to [Power Apps](https://make.powerapps.com). - - 1. On the left pane, select **Apps**. - - 1. Select a canvas app. - - 1. On the command bar, select **Share**. - - 1. Enter an email address for a guest user from a Microsoft Entra tenant. More information: [What is guest user access in Microsoft Entra B2B?](/azure/active-directory/b2b/what-is-b2b) - - ![Share with guest.](media/share-app/guest_access_doc_2.png "Share with guest") - -After you share an app for guest access, guests can discover and access apps shared with them from the email sent to them as part of sharing. You can also share the app URL directly with the guest instead. To find the URL, go to [Power Apps](https://make.powerapps.com), select **Apps** on left pane, select the app, and then select the **Details** tab. The app URL is displayed under **Web link**. - -![Guests receive app share email.](media/share-app/guest_access_doc_4.png "Guests receive app share email") ## Considerations and limitations for guest access @@ -168,11 +153,11 @@ No. Authorization capabilities can and should be used to control which users acc ### Why can an Azure B2B user without a license access a model driven app? -The detection of a previously licensed user no longer having a license isn't immediate. If you expect a user to lose access to an app using Dataverse, their authorization to the app or data should be updated. For example, the app should be unshared with the user or Dataverse security roles should be removed from the user. +The detection of a previously licensed user no longer having a license isn't immediate. If you expect a user to lose access to an app using Dataverse, then their authorization to the app or data should be updated. For example, the app should be unshared with the user or Dataverse security roles should be removed from the user. ### Which connectors create connections in the resource tenant by default? -Users relying on Azure B2B to access an app only has implications on connectors that use Microsoft Entra ID for authentication. Some Microsoft Entra ID based connectors default to creating a connection in the resource tenant, while others default to creating a connection in the home tenant. Connectors that don't use any type of Microsoft Entra ID authentication work the same for guests and members in a tenant. The following table enumerates all connectors that do use Microsoft Entra ID authentication and default creates connections in the resource tenant. For more information on each connector as their may be restriction, see [List of all Power Apps connectors](/connectors/connector-reference/connector-reference-powerapps-connectors) +Users relying on Azure B2B to access an app only has implications on connectors that use Microsoft Entra ID for authentication. Some Microsoft Entra ID based connectors default to creating a connection in the resource tenant, while others default to creating a connection in the home tenant. Connectors that don't use any type of Microsoft Entra ID authentication work the same for guests and members in a tenant. The following table enumerates all connectors that do use Microsoft Entra ID authentication and default creates connections in the resource tenant. For more information on each connector as there might be restriction, see [List of all Power Apps connectors](/connectors/connector-reference/connector-reference-powerapps-connectors) | **Connector** | **Creates connection in resource tenant by default** | |---------------------------------------------------|------------------------------------------------------------------------| diff --git a/powerapps-docs/maker/canvas-apps/share-app-resources.md b/powerapps-docs/maker/canvas-apps/share-app-resources.md index ee20a0ef10..b65fcb83b1 100644 --- a/powerapps-docs/maker/canvas-apps/share-app-resources.md +++ b/powerapps-docs/maker/canvas-apps/share-app-resources.md @@ -3,10 +3,10 @@ title: Share resources used by canvas apps description: Understand how you share resources that your canvas app uses. author: lancedMicrosoft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur -ms.date: 02/03/2020 +ms.date: 7/8/2025 ms.subservice: canvas-maker ms.author: lanced search.audienceType: @@ -36,7 +36,7 @@ You can also share your connections, custom connectors and on-premises data gate ## Connections -Some connections (such as SQL Server with SQL or Windows authentication) are [implicitly shared](share-app-resources.md#implicit-sharing) with the app when you share the app with other users. Other connections require users to create their own connections and explictly grant security privleges (such as security roles for the Dataverse, OneDrive for Business, SQL Server with Microsoft Entra authentication). +Some connections (such as SQL Server with SQL or Windows authentication) are [implicitly shared](share-app-resources.md#implicit-sharing) with the app when you share the app with other users. Other connections require users to create their own connections and explictly grant security privileges (such as security roles for the Dataverse, OneDrive for Business, SQL Server with Microsoft Entra authentication). You can determine whether a connection is automatically shared as part of the app when you share the app with other users; allowing you to update sharing permissions. To do this, go to make.powerapps.com and select **Data** -> **Connections** from left navigation. Then select the required connection. If the **Share** button appears on top navigation or if the **Share** option displays when you select *More Commands* (...), the selected connection can be shared with other users. @@ -52,6 +52,9 @@ When you share an app that uses a connection that can be shared, the app connect If you select **Confirm** and share the chosen app with other users, the app connection is implicitly shared with those users along with the app. +> [!NOTE] +> To ensure the app works properly, the user who is sharing the app needs to have sharing permission for all connections used by the app. Without these permissions, the user won't be able to access or use the connections correctly. This applies to all app-sharing activities, including app sharing, app publishing, and solution import. + ## On-premises data gateways If you create and share an app that includes data from an on-premises source, the [on-premises data gateway](gateway-management.md) itself and certain types of connections to that gateway will be shared automatically. For any connection that isn’t shared automatically, you can share it manually (as the previous section shows) or let the app prompt users to create their own connections. To show the connection or connections with which a gateway has been configured: @@ -77,4 +80,4 @@ If you share an app that includes a flow, users who run the app will be prompted -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/canvas-apps/share-app.md b/powerapps-docs/maker/canvas-apps/share-app.md index f0156a49e1..dabbf080b4 100644 --- a/powerapps-docs/maker/canvas-apps/share-app.md +++ b/powerapps-docs/maker/canvas-apps/share-app.md @@ -2,10 +2,10 @@ title: Share a canvas app with your organization description: Learn about how to share canvas apps by giving other users in your organization the permissions to run or modify it. author: jessicaszelo -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur -ms.date: 10/31/2024 +ms.date: 5/29/2025 ms.subservice: canvas-maker ms.author: szlo search.audienceType: diff --git a/powerapps-docs/maker/canvas-apps/sharepoint-form-integration.md b/powerapps-docs/maker/canvas-apps/sharepoint-form-integration.md index c0f02d4f6d..6e5b0ea164 100644 --- a/powerapps-docs/maker/canvas-apps/sharepoint-form-integration.md +++ b/powerapps-docs/maker/canvas-apps/sharepoint-form-integration.md @@ -3,7 +3,7 @@ title: Understand SharePoint forms integration description: Learn about integration of SharePoint forms with Power Apps, and how to customize those forms. author: NickWaggoner -ms.topic: conceptual +ms.topic: concept-article ms.custom: canvas ms.reviewer: mkaur ms.date: 3/1/2025 @@ -66,6 +66,9 @@ The default generated form consists of the following controls and their correspo These defaults ensure that the form works when running within SharePoint. The defaults change the Power Apps form mode as the user interacts with it in SharePoint, and they ensure that the changes are submitted to SharePoint. +> [!NOTE] +> While you can manually copy a form from one environment to another, there is currently no automated method in Power Apps to copy a form from one environment to another. + ## Understand the SharePointIntegration control The **SharePointIntegration** control communicates user actions between SharePoint and Power Apps. diff --git a/powerapps-docs/maker/canvas-apps/sharepoint-list-integration-overview.md b/powerapps-docs/maker/canvas-apps/sharepoint-list-integration-overview.md index 901c468a4b..e5f9ac9edd 100644 --- a/powerapps-docs/maker/canvas-apps/sharepoint-list-integration-overview.md +++ b/powerapps-docs/maker/canvas-apps/sharepoint-list-integration-overview.md @@ -3,7 +3,7 @@ title: Integrate SharePoint Online into Power Apps overview description: An overview of how to integrate lists from SharePoint Online or Microsoft Lists into Microsoft Power Apps. author: NickWaggoner -ms.topic: conceptual +ms.topic: concept-article ms.reviewer: mkaur ms.date: 3/1/2025 ms.subservice: canvas-maker diff --git a/powerapps-docs/maker/canvas-apps/sharepoint-lookup-fields.md b/powerapps-docs/maker/canvas-apps/sharepoint-lookup-fields.md index 1772b52b8e..62e65e3db3 100644 --- a/powerapps-docs/maker/canvas-apps/sharepoint-lookup-fields.md +++ b/powerapps-docs/maker/canvas-apps/sharepoint-lookup-fields.md @@ -3,7 +3,7 @@ title: Link lists using a lookup column in Power Apps description: Learn about linking lists and using lookup columns in Microsoft Power Apps. author: emcoope-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: ms.date: 3/1/2025 diff --git a/powerapps-docs/maker/canvas-apps/show-current-user.md b/powerapps-docs/maker/canvas-apps/show-current-user.md index 3de94aa389..e5c01332ab 100644 --- a/powerapps-docs/maker/canvas-apps/show-current-user.md +++ b/powerapps-docs/maker/canvas-apps/show-current-user.md @@ -3,7 +3,7 @@ title: Show information about a user in a canvas app description: Learn about how to display the name and email address of the signed-in user in a canvas app. author: gregli-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 10/16/2016 diff --git a/powerapps-docs/maker/canvas-apps/show-images-text-gallery-sort-filter.md b/powerapps-docs/maker/canvas-apps/show-images-text-gallery-sort-filter.md index fae520343b..f417646263 100644 --- a/powerapps-docs/maker/canvas-apps/show-images-text-gallery-sort-filter.md +++ b/powerapps-docs/maker/canvas-apps/show-images-text-gallery-sort-filter.md @@ -3,7 +3,7 @@ title: Show, sort, and filter data in a canvas app gallery description: Learn about how to use a gallery to display images and text, and how to sort and filter the images in canvas apps. author: lancedmicrosoft -ms.topic: conceptual +ms.topic: article ms.custom: canvas ms.reviewer: mkaur ms.date: 06/02/2015 diff --git a/powerapps-docs/maker/canvas-apps/show-text-dates-times.md b/powerapps-docs/maker/canvas-apps/show-text-dates-times.md index c170d7e82d..756b80b25a 100644 --- a/powerapps-docs/maker/canvas-apps/show-text-dates-times.md +++ b/powerapps-docs/maker/canvas-apps/show-text-dates-times.md @@ -3,7 +3,7 @@ title: Show text, dates, and times in canvas apps description: Learn about how to show text, dates, and times in a canvas app. author: mduelae -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: ms.date: 02/11/2025 diff --git a/powerapps-docs/maker/canvas-apps/sign-in-to-power-apps.md b/powerapps-docs/maker/canvas-apps/sign-in-to-power-apps.md index 28f053519f..c4e6b3a1d3 100644 --- a/powerapps-docs/maker/canvas-apps/sign-in-to-power-apps.md +++ b/powerapps-docs/maker/canvas-apps/sign-in-to-power-apps.md @@ -2,10 +2,10 @@ title: Sign in to Power Apps description: Learn about signing in to Power Apps for the first time, choosing an environment, creating an app, playing or editing an app, and other common tasks. author: alaug -ms.topic: conceptual +ms.topic: how-to ms.collection: get-started ms.reviewer: -ms.date: 1/24/2025 +ms.date: 5/29/2025 ms.subservice: canvas-maker ms.author: alaug search.audienceType: diff --git a/powerapps-docs/maker/canvas-apps/studio-versions.md b/powerapps-docs/maker/canvas-apps/studio-versions.md index 61c8fc6a93..bd98bfbe44 100644 --- a/powerapps-docs/maker/canvas-apps/studio-versions.md +++ b/powerapps-docs/maker/canvas-apps/studio-versions.md @@ -3,10 +3,10 @@ title: Change authoring version for Power Apps Studio description: Learn about how to change the authoring version for Power Apps Studio. author: emcoope-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur -ms.date: 11/15/2021 +ms.date: 3/26/2025 ms.subservice: canvas-maker ms.author: emcoope search.audienceType: @@ -56,6 +56,9 @@ How you check and change the authoring version of your current Power Apps Studio You're now editing the app in the Power Apps Studio version you've selected. Since the authoring version change only persists for the current Power Apps Studio session, repeat the above steps when you want to work with the same app again. +> [!NOTE] +> You can't change the authoring version of Power Apps Studio when a you [author custom page content](../model-driven-apps/add-page-to-model-app.md#author-custom-page-content) or [edit an existing custom page](../model-driven-apps/add-page-to-model-app.md#edit-an-existing-custom-page). + ## Known limitations and workarounds - Selecting **Reload + apply version** only changes the current authoring session to the version you choose. This change doesn't persist for future sessions. New Power Apps Studio sessions always start with the default Power Apps Studio version for your environment. @@ -71,6 +74,8 @@ You're now editing the app in the Power Apps Studio version you've selected. Sin > [!NOTE] > If you choose to restore the app to a previous version, you'll lose any changes made between your latest and previous app versions. +- You cannot change authoring versions if coauthoring is enabled. + ### See also - [Setting an environment refresh cadence](/power-platform/admin/create-environment#setting-an-environment-refresh-cadence) diff --git a/powerapps-docs/maker/canvas-apps/test-studio-classic-pipeline-editor.md b/powerapps-docs/maker/canvas-apps/test-studio-classic-pipeline-editor.md index e587da44e3..441059a7ce 100644 --- a/powerapps-docs/maker/canvas-apps/test-studio-classic-pipeline-editor.md +++ b/powerapps-docs/maker/canvas-apps/test-studio-classic-pipeline-editor.md @@ -3,7 +3,7 @@ title: Automate tests with Azure Pipelines using classic editor description: Describes how to automate test suites and cases using the classic editor from Azure Pipelines. author: maustinjones -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 08/22/2022 @@ -317,4 +317,4 @@ Select **RunTestAutomation** test to drill into the details on what test case ha - [Configure pipeline using YAML](test-studio-yaml-pipeline.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/canvas-apps/test-studio-yaml-pipeline.md b/powerapps-docs/maker/canvas-apps/test-studio-yaml-pipeline.md index 4517ffa41c..6fe79a4318 100644 --- a/powerapps-docs/maker/canvas-apps/test-studio-yaml-pipeline.md +++ b/powerapps-docs/maker/canvas-apps/test-studio-yaml-pipeline.md @@ -3,7 +3,7 @@ title: Automate tests with Azure Pipelines using YAML description: Describes how to automate test suites and cases using an Azure Pipelines YAML. author: maustinjones -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 01/31/2022 @@ -217,4 +217,4 @@ Select **RunTestAutomation** to drill into the details about the failed test cas - [Working with Test Studio](working-with-test-studio.md) - [Automate tests with Azure Pipelines using classic editor](test-studio-classic-pipeline-editor.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/canvas-apps/test-studio.md b/powerapps-docs/maker/canvas-apps/test-studio.md index f060ae3338..65d41e4850 100644 --- a/powerapps-docs/maker/canvas-apps/test-studio.md +++ b/powerapps-docs/maker/canvas-apps/test-studio.md @@ -1,13 +1,13 @@ --- title: Test Studio description: Describes Test Studio with overview, terminology, best practices, and limitations. -author: ChrisBal-MSFT +author: mduelae ms.topic: conceptual ms.reviewer: mkaur -ms.date: 01/05/2022 +ms.date: 05/21/2025 ms.subservice: canvas-maker -ms.author: chrisbal +ms.author: mkaur search.audienceType: - maker contributors: @@ -90,7 +90,7 @@ When testing canvas apps using Test Studio, consider the following best practice ## Known limitations -While work to provide full control coverage in Power Apps Test Studio is in progress, the following functionality is currently unavailable: +While we work to provide full control coverage in Power Apps Test Studio is in progress, the following functionality is currently unavailable: - Components. - Code components written in the Power Apps Component Framework. diff --git a/powerapps-docs/maker/canvas-apps/untyped-and-dynamic-objects.md b/powerapps-docs/maker/canvas-apps/untyped-and-dynamic-objects.md index 4b44125b1b..363efc71c0 100644 --- a/powerapps-docs/maker/canvas-apps/untyped-and-dynamic-objects.md +++ b/powerapps-docs/maker/canvas-apps/untyped-and-dynamic-objects.md @@ -1,12 +1,12 @@ --- -title: Working with untyped and dynamic objects -description: How to work with untyped and dynamic objects. +title: Working with dynamic values +description: How to work with dynamic values. author: lancedMicrosoft ms.topic: overview ms.custom: canvas ms.collection: get-started ms.reviewer: mkaur -ms.date: 03/2/2023 +ms.date: 06/19/2025 ms.subservice: canvas-maker ms.author: lanced search.audienceType: @@ -15,48 +15,50 @@ contributors: - lancedMicrosoft - mduelae --- -# Working with untyped and dynamic objects +# Working with dynamic values -When dealing with actions in Power Apps, it's possible to encounter untyped return values or input values for some actions. Before, Power Apps would ignore untyped or dynamic input fields, and they wouldn't be visible in PowerFX expressions but now, you can work directly with these fields. Before, when a return type was untyped, Power Apps would return a Boolean value. Now, it returns an untyped object instead. +When you use actions in Power Apps, you can encounter dynamic return values or input values for some actions. Previously, Power Apps ignored dynamic input fields, and they weren't visible in Power Fx expressions. Now, you work directly with these fields. Previously, when a return type was dynamic, Power Apps returned a Boolean value. Now, it returns a dynamic value instead. > [!NOTE] -> Suppose your Power Fx expressions rely on a Boolean return value from these functions. In that case, you'll have to rewrite the formula and explicitly cast the untyped object to a Boolean. Certain functions, such as 'IfError,' don't fully support untyped objects yet. If your expression contains such a function, refer to the note at the end of this article for workarounds. +> If your Power Fx expressions rely on a Boolean return value from these functions, rewrite the formula and explicitly cast the dynamic value to a Boolean. Certain functions, like 'IfError,' don't fully support dynamic values yet. If your expression uses one of these functions, see the note at the end of this article for workarounds. -## Passing in untyped objects as parameters +## Passing in dynamic values as parameters -Certain actions necessitate an untyped object as a parameter value. If you have a Power Fx record, you can convert it to an untyped object, making it suitable for passing to the action. +Certain actions necessitate using a dynamic value as a parameter. If you have a Power Fx record, convert it to a dynamic value to pass it to the action. -In the example below, the merge action available on a Dataverse **Account** table requires several untyped arguments. To prepare, we'll define three variables to hold the TargetObject, SubordinateObject, and UpdateContextObject. We'll begin by assigning the text string **Microsoft.Dynamics.CRM.account** to a variable, which will be reuse throughout the example. +In the following example, the merge action on a Dataverse **Account** table requires several dynamic arguments. To prepare, define three variables to hold the TargetObject, SubordinateObject, and UpdateContextObject. Start by assigning the text string **Microsoft.Dynamics.CRM.account** to a variable, which you reuse throughout the example. ```power-fx Set (OdataType, “Microsoft.Dynamics.CRM.account”); ``` -Then TargetObject is assigned a Power Fx record with the properties of name, accountid, and @odata.type. We similarly assign Power Fx records to the Subordinate and UpdateContext objects as well. +Then assign TargetObject a Power Fx record with the properties name, accountid, and @odata.type. Similarly, assign Power Fx records to the Subordinate and UpdateContext objects. + ```power-fx Set (TargetObject, {name: "Test 2", accountid: "145dc2ba-85a2-ed11-aado-0022482d76a5", '@odata.type': OdataType}); Set (SubordinateObject, {name: FirstRecord.’Account name’, accountid: FirstRecord.Account, ‘@odata.type’ : OdataType }); Set (UpdateContextObject, {telephone1: FirstRecord.’Main Phone’, address1_city: FirstRecord.’Address 1 : City’, ‘@odata.type’ : OdataType }); ``` -Next, we'll create three more variables to store the untyped records after the conversion: TargetUntypedObject, SubordinateUntypedObject, and UpdateContextUntypedObject. To perform the conversion, we'll use the ParseJSON(JSON()) function on the original variables. This action will transform the Power Fx records into untyped objects. +Next, create three more variables to store the dynamic records after the conversion: TargetDynamicValue, SubordinateDynamicValue, and UpdateContextDynamicValue. To convert, use the ParseJSON(JSON()) function on the original variables. This action transforms the Power Fx records into dynamic values. ```power-fx -Set (TargetUntypedObject, ParseJSON(JSON(TargetObject))); -Set (SubordinateUntypedObject, ParseJSON(JSON(SubordinateObject))); -Set (UpdateContextUntypedObject, ParseJSON(JSON(UpdateContextObject))); +Set (TargetDynamicValue, ParseJSON(JSON(TargetObject))); +Set (SubordinateDynamicValue, ParseJSON(JSON(SubordinateObject))); +Set (UpdateContextDynamicValue, ParseJSON(JSON(UpdateContextObject))); ``` -Lastly, we call the merge action by passing in the necessary parameters, including for both untyped and typed: +Finally, call the merge action and pass in the necessary parameters for both dynamic and specific types: ```power-fx -Environment.Merge({Target: TargetUntypedObject, Subordinate: SubordinateUntypedObject, UpdateContent: UpdateContextUntypedObject, PerformParentingChecks: false }); +Environment.Merge({Target: TargetDynamicValue, Subordinate: SubordinateDynamicValue, UpdateContent: UpdateContextDynamicValue, PerformParentingChecks: false }); ``` -## Using untyped object returned via an action -If an **Action** based connector returns an object, its properties can be accessed directly, regardless of whether they've been assigned a type. However, if you intend to use a property for a specific purpose in Power Apps, such as for labeling, you'll need to cast it first. +## Using dynamic values returned via an action + +If an **Action** based connector returns an object, you can access its properties directly, even if they don't have a type. But if you want to use a property for something specific in Power Apps, like labeling, cast it first. -In the following example, the httpRequest function returns an untyped object that has been previously cast as a Boolean. +In this example, the `httpRequest` function returns a dynamic value that's already cast as a Boolean. ```power-fx Set (response, Office365Groups.HttpRequest("/v1.0/me", "GET", "")); @@ -65,24 +67,25 @@ One of the properties in the response is displayName. It can be accessed, and ca ```power-fx Text(response.displayName) ``` -Cast to the object **Text** to use it in a Power Apps label control. +Cast to the object **Text** to use it in a Power Apps label control. ## Working with Dynamic fields -Action responses now capture dynamic output, and you can utilize the method described above to access these properties. Additionally, working with dynamic input fields is also possible. +Action responses now capture dynamic output, and you can use the method described above to access these properties. You can also work with dynamic input fields. -Consider the 'GetMessageDetails' action in Microsoft Teams that has a dynamic input body parameter. Previously, this parameter could not be viewed or specified. With the recent update, you can set a variable called 'body' with the appropriate Power Fx record structure. +Consider the `GetMessageDetails` action in Microsoft Teams, which has a dynamic input `body` parameter. Previously, you couldn't view or specify this parameter. With the recent update, set a variable called `body` with the appropriate Power Fx record structure. ```power-fx -Set ( body, ParseJSON(JSON( {recipient: { groupID: “7f733b36-7c7f-4f4c-9699-0a7b7a2b3897”, channelID: “19: 085d522328fb4a439220641006f7f25@thread.tacv2”}})); +Set ( body, ParseJSON(JSON( {recipient: { groupID: “7f733b36-7c7f-4f4c-9699-0a7b7a2b3897”, channelID: “19: 085d522328fb4a439220641006f7f25@thread.tacv2”}}))); ``` Then, we can call the GetMessageDetails action and assign the response to the teamsResponse variable. ```power-fx Set (teamsResponse, MicrosoftTeams.GetMessageDetails ( 1661365068558, “channel”, body )); ``` -## Converting formulas that return untyped objects that previously returned Boolean. -Power Fx takes a limited number of untyped objects so explicit conversion may be necessary for your formula. In particular, if your formula depends on a Boolean response then you will need to convert. If you need to simply know if an error exists, you can use the IsError function: +## Converting formulas that return dynamic values that previously returned Boolean + +Power Fx takes a limited number of dynamic values so explicit conversion may be necessary for your formula. In particular, if your formula depends on a Boolean response then you need to convert. If you need to simply know if an error exists, you can use the IsError function: ```power-fx If( @@ -90,7 +93,7 @@ If( Notify("An Outlook appointment could not be found or could not be deleted") ) ``` -To access error information that is exclusively available through IfError, you must transform the untyped object into a valid type using a conversion function such as Boolean, Text, or Value. These functions will produce an error if they are given one. The following example, illustrates this: +To access error information that is exclusively available through IfError, you must transform the dynamic value into a specific type using a conversion function such as Boolean, Text, or Value. These functions will produce an error if they are given one. The following example, illustrates this: ```power-fx With({result: Office365Outlook.CalendarDeleteItemV2("Calendar", 1)}, diff --git a/powerapps-docs/maker/canvas-apps/use-line-pie-bar-chart.md b/powerapps-docs/maker/canvas-apps/use-line-pie-bar-chart.md index a2bb14bbf9..cb245012d3 100644 --- a/powerapps-docs/maker/canvas-apps/use-line-pie-bar-chart.md +++ b/powerapps-docs/maker/canvas-apps/use-line-pie-bar-chart.md @@ -3,12 +3,12 @@ title: Show data in a line, pie, or bar chart in canvas apps description: Learn about how to show categories of data as line charts, pie charts, or bar charts in a canvas app. author: fikaradz -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur -ms.date: 10/23/2016 +ms.date: 5/21/2025 ms.subservice: canvas-maker -ms.author: fikaradz +ms.author: mkaur search.audienceType: - maker contributors: @@ -43,7 +43,7 @@ You can create and use these charts within Power Apps. Let's get started. ## Import the sample data In these steps, we import the sample data into a collection, named **ProductRevenue**. -1. On the command bar selelct, **Insert** > **Media** > **Import**. +1. On the command bar select, **Insert** > **Media** > **Import**. 2. Set the control's **[OnSelect](controls/properties-core.md)** property to the following function: diff --git a/powerapps-docs/maker/canvas-apps/use-native-cds-connector.md b/powerapps-docs/maker/canvas-apps/use-native-cds-connector.md index ea844a55e7..6ec52dcdc1 100644 --- a/powerapps-docs/maker/canvas-apps/use-native-cds-connector.md +++ b/powerapps-docs/maker/canvas-apps/use-native-cds-connector.md @@ -3,7 +3,7 @@ title: Microsoft Dataverse and the improve data source experience description: Learn about upgrading native Microsoft Dataverse connector for improve data source experience. author: lancedMicrosoft -ms.topic: conceptual +ms.topic: article ms.custom: canvas ms.reviewer: mkaur ms.date: 01/24/2024 diff --git a/powerapps-docs/maker/canvas-apps/using-logic-flows.md b/powerapps-docs/maker/canvas-apps/using-logic-flows.md index d9e59ffc8a..04786d3618 100644 --- a/powerapps-docs/maker/canvas-apps/using-logic-flows.md +++ b/powerapps-docs/maker/canvas-apps/using-logic-flows.md @@ -3,7 +3,7 @@ title: Start a flow in a canvas app description: Learn about how to create a flow that performs one or more tasks after an event, such as a user selecting a button, occurs in a canvas app. author: TashasEv -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 12/17/2024 diff --git a/powerapps-docs/maker/canvas-apps/working-with-cards.md b/powerapps-docs/maker/canvas-apps/working-with-cards.md index 2130e51ed9..80e83eff76 100644 --- a/powerapps-docs/maker/canvas-apps/working-with-cards.md +++ b/powerapps-docs/maker/canvas-apps/working-with-cards.md @@ -3,10 +3,10 @@ title: Understand data cards in canvas apps description: Learn about how to use cards to collect and display information from a data source in canvas apps. author: gregli-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur -ms.date: 11/13/2020 +ms.date: 5/29/2025 ms.subservice: canvas-maker ms.author: gregli search.audienceType: @@ -19,62 +19,62 @@ contributors: **[Card](controls/control-card.md)** controls are the building blocks of the **[Edit form](controls/control-form-detail.md)** and **[Display form](controls/control-form-detail.md)** controls in canvas apps. The form represents the entire record, and each card represents a single field of that record. -You can interact with cards most easily in the right-hand pane after you select a form control in the design workspace. In that pane, you can choose which fields to show, how to show each field, and in what order to show them. This example shows an **Edit form** control in an app built from a list that's named **Assets**. +Interact with cards easily in the right-hand pane after selecting a form control in the design workspace. In that pane, you can choose which fields to show, how to show each field, and in what order to show them. For example, the image below shows an **Edit form** control in an app built from a list named **Assets**, where you can customize fields to meet your specific needs. -![First screen.](./media/working-with-cards/first-screen.png "First screen") +![Screenshot of the first screen showing an Edit form control in an app built from a list named Assets.](./media/working-with-cards/first-screen.png "First screen") -To get started with cards, see [add a form](add-form.md) and [understand data forms](working-with-forms.md). The remainder of this article goes into more detail about how cards work and how you can customize or even create your own. +Get started with cards by reading [add a form](add-form.md) and [understand data forms](working-with-forms.md). The remainder of this article explains how cards work and how to customize or create your own. ## Predefined cards -Power Apps offers a predefined set of cards for strings, numbers, and other data types. In the right-hand pane, you can see the variations available and change the card used for a field: +Power Apps offers a predefined set of cards for strings, numbers, and other data types, making it easy to tailor your app to specific data requirements. In the right pane, you see the available variations and can change the card used for a field: ![Selected card.](./media/working-with-cards/selected-card.png "Selected card") -In this example, a single-line text card is selected, but the URL's text is longer than can be shown on a single line. Let's change this to a multi-line text card to give our users more room to edit: +In this example, a single-line text card is selected, but the URL text is longer than what fits on a single line. Let's change this to a multi-line text card to give our users more room to edit: ![Multiline edit.](./media/working-with-cards/multiline-edit.png "Multiline edit") -Several fields of this data source aren't being shown, but you can show or hide a field by selecting its checkbox. This example illustrates how to show the **SecurityCode** field. +Several fields in this data source aren't shown, but you can show or hide a field by selecting its checkbox. This example shows how to display the **SecurityCode** field. ## Customize a card -Cards comprise other controls. In an **Edit form** control, the user enters data in a standard **[Text input](controls/control-text-input.md)** control that you add from the **Insert** tab. +Cards include other controls. In an **Edit form** control, the user enters data in a standard **[Text input](controls/control-text-input.md)** control that you add from the **Insert** tab. -Let's walk through an example of how to change a card's appearance by manipulating controls in it. +This article walks through an example of how to change a card's appearance by manipulating controls in it. -1. First, let's return to the card that we inserted most recently, for the **SecurityCode** field. Select this card by clicking or tapping it once: +1. First, return to the card that was inserted most recently for the **SecurityCode** field. Select this card by clicking or tapping it once: ![Select security code.](./media/working-with-cards/select-security-code.png "Select security code") 2. Select the **[Text input](controls/control-text-input.md)** control inside the card by clicking or tapping the input control itself. ![Select text input.](./media/working-with-cards/select-text-input.png "Select text input") -3. Move this control within the card by dragging the selection box, and resize the control by dragging the handles along the edge of the selection box: +3. Move the control within the card by dragging the selection box, and resize it by dragging the handles along the edge of the selection box: ![Customize text input.](./media/working-with-cards/customize-text-input.png "Customize text input") -You can resize, move, and make other modifications to controls within a card, but you can't delete it without unlocking it first. +Resize, move, and make other modifications to controls within a card, but you can't delete it without unlocking it first. ## Unlock a card -In addition to containing controls, cards themselves are controls that have properties and formulas just like any other control. When you choose to display a field on a form, the right-hand pane automatically creates the card for you and generates the needed formulas. We can see these formulas in the **Advanced** tab of the right-hand pane: +In addition to containing controls, cards themselves are controls with properties and formulas, allowing for advanced customization. When you choose to display a field on a form, the right-hand pane automatically creates the card for you and generates the needed formulas, saving you time and effort. We can see these formulas in the **Advanced** tab of the right-hand pane: ![Advanced locked.](./media/working-with-cards/advanced-locked.png "Advanced locked") -We immediately see one of the most important properties of the card: the **[DataField](controls/control-card.md)** property. This property indicates which field of the data source the user sees and can edit in this card. +You immediately see one of the most important properties of the card: the **[DataField](controls/control-card.md)** property. This property indicates which field of the data source the user sees and can edit in this card. On the **Advanced** tab, the banner at the top indicates that the properties of this card are locked. A lock icon also appears next to the **[DataField](controls/control-card.md)**, **[DisplayName](controls/control-card.md)**, and **[Required](controls/control-card.md)** properties. The right-hand pane created these formulas, and the lock prevents accidental changes to these properties. ![Lock icons.](./media/working-with-cards/lock-icons.png "Lock icons") -Click or tap the banner at the top to unlock the card so that you can modify these properties: +Select the banner at the top to unlock the card so that you can modify these properties: ![Unlocked card.](./media/working-with-cards/unlocked-card.png "Unlocked card") -Let's modify the **[DisplayName](controls/control-card.md)** to put a space between **Asset** and **ID**. By making this change, we're altering what was generated for us. In the right-hand pane, this card has a different label: +Modify the **[DisplayName](controls/control-card.md)** to put a space between **Asset** and **ID**. By making this change, we're altering what was generated for us. In the right-hand pane, this card has a different label: ![Change display name.](./media/working-with-cards/change-display-name.png "Change display name") -We've now taken control over this card and can modify it further to fit our need. But we've lost the ability to change the card from one representation to another (for example, single-line text to multi-line text) as we did before. We've transformed the predefined card into a "custom card" that we now control. +You've now taken control over this card and can modify it further to fit your need. But you've lost the ability to change the card from one representation to another (for example, single-line text to multi-line text) as you did before. You've transformed the predefined card into a "custom card" that you now control. > [!IMPORTANT] > You can't relock a card if you unlock it. To get a card back to a locked state, remove it, and reinsert it in the right-hand pane. @@ -93,7 +93,7 @@ In the formula bar, set the **Image** property of this control to *TextBox*.**Te ![Show image.](./media/working-with-cards/show-image.png "Show image") -And now we can see the images and edit their URLs. Note that we could have used **Parent.Default** as the **Image** property, but it wouldn't have updated if the user changed the URL. +Now you can see the images and edit their URLs. Note that we could have used **Parent.Default** as the **Image** property, but it wouldn't have updated if the user changed the URL. We can do the same thing on the second screen of this app, where we use a **Display form** control to display the details of a record. In this case, we may want to hide the label (set the **Visible** property of the label, not the card, to **false**) because the user won't edit the URL on that screen: @@ -102,31 +102,31 @@ We can do the same thing on the second screen of this app, where we use a **Disp ## Interact with a form After you unlock a card, you can change how it interacts with the form that contains it. -Below are some guidelines for how controls should work with their card and how the cards should work with the form. These are only guidelines. As with any control in Power Apps, you can create formulas that reference any other control in Power Apps, and that's no less true for cards and controls within cards. Be creative: you can create an app in many ways. +Here are guidelines for how controls work with their card and how cards work with the form. These guidelines help you understand how to create formulas that reference other controls, including cards and controls within cards. Be creative—you can build an app in many ways to suit your specific needs. ### DataField property -The most important property on the card is the **[DataField](controls/control-card.md)** property. This property drives validation, what field is updated, and other aspects of the card. +The most important property on the card is the **[DataField](controls/control-card.md)** property. This property controls validation, determines which field is updated, and manages other aspects of the card. ### Information flowing in As a container, the form makes **ThisItem** available to all cards within it. This record contains all of the fields for the current record of interest. -The **[Default](controls/properties-core.md)** property of every card should be set to **ThisItem**.*FieldName*. Under certain circumstances, you might want to transform this value on the way in. For example, you might want to format a string or translate the value from one language to another. +The **[Default](controls/properties-core.md)** property of every card should be set to **ThisItem**.*FieldName*. In some cases, you might transform this value as it comes in. For example, you might want to format a string or translate the value from one language to another. -Each control within the card should reference **Parent.Default** to get at the field's value. This strategy provides a level of encapsulation for the card so that the card's **[Default](controls/properties-core.md)** property can change without changing the internal formulas of the card. +Each control within the card should reference **Parent.Default** to get at the field's value. This strategy encapsulates the card, allowing the card's **[Default](controls/properties-core.md)** property to change without affecting its internal formulas. By default, **DefaultValue** and **[Required](controls/control-card.md)** properties are taken from the data source's metadata based on the **[DataField](controls/control-card.md)** property. You can override these formulas with your own logic, integrating the data source's metadata by using the **[DataSourceInfo](functions/function-datasourceinfo.md)** function. ### Information flowing out After the user modifies a record by using controls in the cards, the **[SubmitForm](functions/function-form.md)** function saves those changes to the data source. When that function runs, the form control reads the values of each card's **[DataField](controls/control-card.md)** property to know what field to change. -The form control also reads the value of each card's **[Update](controls/control-card.md)** property. This value will be stored in the data source for this field. This is the place to apply another transform, perhaps to reverse the transform that was applied in the card's **[Default](controls/properties-core.md)** formula. +The form control also reads the value of each card's **[Update](controls/control-card.md)** property. This value is stored in the data source for this field. This is the place to apply another transform, perhaps to reverse the transform that was applied in the card's **[Default](controls/properties-core.md)** formula. The **Valid** property is driven from the metadata of the data source, based on the **[DataField](controls/control-card.md)** property. It's also based on the **[Required](controls/control-card.md)** property and whether the **[Update](controls/control-card.md)** property contains a value. If the value on the **[Update](controls/control-card.md)** property isn't valid, the **Error** property provides a user-friendly error message. -If the **[DataField](controls/control-card.md)** property of a card is *blank*, the card is just a container of controls. Its **Valid** and **[Update](controls/control-card.md)** properties don't participate when the form is submitted. +If the **[DataField](controls/control-card.md)** property of a card is *blank*, the card acts as a container for controls. Its **Valid** and **[Update](controls/control-card.md)** properties don't participate when the form is submitted. ## Dissecting an example -Let's look at the controls that make up a basic data-entry card. The space between controls has been increased to show each more clearly: +Let’s explore the controls that make up a basic data-entry card. The space between controls is increased to show each more clearly, helping you understand how each component contributes to the card’s functionality: ![Dissect card.](./media/working-with-cards/dissect-card1.png "Dissect card") @@ -134,16 +134,16 @@ In this graphic, the controls within the data card have been labeled: ![Dissect cards.](./media/working-with-cards/dissect-card2.png "Dissect cards") -Four controls make this card work: +Four controls make the card work: | Name | Type | Description | | --- | --- | --- | -| **TextRequiredStar** |**[Label](controls/control-text-box.md)** control |Displays a star, which is commonly used on data-entry forms to indicate that a field is required. | -| **TextFieldDisplayName** |**[Label](controls/control-text-box.md)** control |Displays the user-friendly name of this field. This name can differ from what is in the data source's schema. | -| **InputText** |**Input text** control |Displays the initial value of the field and allows the user to change that value. | -| **TextErrorMessage** |**[Label](controls/control-text-box.md)** control |Displays a user-friendly error message to the user if a problem occurs with validation. Also ensures that the field has a value if one is required. | +| **TextRequiredStar** |**[Label](controls/control-text-box.md)** control |Shows a star, which is commonly used on data-entry forms to indicate that a field is required. | +| **TextFieldDisplayName** |**[Label](controls/control-text-box.md)** control |Shows the user-friendly name of the field. This name might differ from what is in the data source's schema. | +| **InputText** |**Input text** control |Shows the initial value of the field and lets the user change that value. | +| **TextErrorMessage** |**[Label](controls/control-text-box.md)** control |Shows a user-friendly error message to the user if a problem occurs with validation. It also ensures that the field has a value if one is required. | -To populate these controls with data, their properties can be driven from the properties of the card, through these key formulas. Note that formulas refer to a specific field. Instead, all information comes from the card. +To populate these controls with data, their properties are driven from the properties of the card through these key formulas. Formulas refer to a specific field. Instead, all information comes from the card. | Control property | Formula | Description | | --- | --- | --- | @@ -153,9 +153,9 @@ To populate these controls with data, their properties can be driven from the pr | **TextErrorMessage.Text** |**Parent.Error** |If a validation problem occurs, the card's **Error** property provides an appropriate error message. | > [!NOTE] -> The **Parent.Error** property is an output-only property that you can't set by using a formula. Therefore, this property won't appear in list of properties near the upper-left corner or in the **Properties** or **Advanced** tabs near the right edge. The formula bar suggests this property if you're writing a formula that could reference the property. +> The **Parent.Error** property is an output-only property that you can't set by using a formula. This property doesn't appear in the list of properties near the upper-left corner or in the **Properties** or **Advanced** tabs near the right edge. The formula bar suggests this property if you're writing a formula that references the property. -To pull information out of these controls and push it back into the data source, we have the following key formulas: +To pull information out of these controls and push it back into the data source, use the following key formulas: | Control name | Formula | Description | | --- | --- | --- | diff --git a/powerapps-docs/maker/canvas-apps/working-with-data-sources.md b/powerapps-docs/maker/canvas-apps/working-with-data-sources.md index 9c8f813394..c9a5d91adc 100644 --- a/powerapps-docs/maker/canvas-apps/working-with-data-sources.md +++ b/powerapps-docs/maker/canvas-apps/working-with-data-sources.md @@ -3,7 +3,7 @@ title: Understand data sources for canvas apps description: Learn about working with connections and data sources for canvas apps. author: gregli-msft -ms.topic: conceptual +ms.topic: concept-article ms.custom: canvas ms.reviewer: mkaur ms.date: 03/08/2017 diff --git a/powerapps-docs/maker/canvas-apps/working-with-experimental-preview.md b/powerapps-docs/maker/canvas-apps/working-with-experimental-preview.md index ac18a07538..59afe48446 100644 --- a/powerapps-docs/maker/canvas-apps/working-with-experimental-preview.md +++ b/powerapps-docs/maker/canvas-apps/working-with-experimental-preview.md @@ -3,10 +3,10 @@ title: Understand New, Preview, Experimental, and Retired features in canvas app description: Learn about New, Preview, Experimental, and Retired features. author: gregli-msft -ms.topic: conceptual +ms.topic: concept-article ms.custom: canvas ms.reviewer: mkaur -ms.date: 06/21/2024 +ms.date: 04/29/2025 ms.subservice: canvas-maker ms.author: gregli search.audienceType: @@ -90,7 +90,7 @@ When a feature moves from **New** to **Retired**, the meaning of its switch is o **Retired** features will eventually be removed from the product after enough time has passed and usage is low. Removals are well communicated ahead of time for breaking changes. -**Retired** features are fully documented in the [Power Apps documentation](./getting-started.md). +**Retired** features are fully documented in the [Important changes (deprecations) coming in Power Platform](/power-platform/important-changes-coming). ## Defaults diff --git a/powerapps-docs/maker/canvas-apps/working-with-flows.md b/powerapps-docs/maker/canvas-apps/working-with-flows.md index 5ff26d6789..3cfca8397d 100644 --- a/powerapps-docs/maker/canvas-apps/working-with-flows.md +++ b/powerapps-docs/maker/canvas-apps/working-with-flows.md @@ -3,7 +3,7 @@ title: Use Power Automate pane description: Learn how to use Power Automate pane to work with flows in Power Apps. author: TashasEv -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 12/17/2024 diff --git a/powerapps-docs/maker/canvas-apps/working-with-form-layout.md b/powerapps-docs/maker/canvas-apps/working-with-form-layout.md index 0d44241239..812dca370c 100644 --- a/powerapps-docs/maker/canvas-apps/working-with-form-layout.md +++ b/powerapps-docs/maker/canvas-apps/working-with-form-layout.md @@ -3,7 +3,7 @@ title: Understand data-form layout for canvas apps description: Learn about how to create great-looking form layouts in canvas apps by using rows and columns. author: gregli-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 05/11/2021 diff --git a/powerapps-docs/maker/canvas-apps/working-with-forms.md b/powerapps-docs/maker/canvas-apps/working-with-forms.md index c9ce3ed27a..e7dffa707a 100644 --- a/powerapps-docs/maker/canvas-apps/working-with-forms.md +++ b/powerapps-docs/maker/canvas-apps/working-with-forms.md @@ -3,7 +3,7 @@ title: Understand canvas-app forms description: Learn about how to add a form to a canvas app so that you can collect and display information from a data source. author: gregli-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 04/27/2016 diff --git a/powerapps-docs/maker/canvas-apps/working-with-formulas-in-depth.md b/powerapps-docs/maker/canvas-apps/working-with-formulas-in-depth.md index 8adc7e8df0..835f57c11f 100644 --- a/powerapps-docs/maker/canvas-apps/working-with-formulas-in-depth.md +++ b/powerapps-docs/maker/canvas-apps/working-with-formulas-in-depth.md @@ -3,7 +3,7 @@ title: Understand behavior formulas for canvas apps description: Reference information about working with behavior formulas, which change the state of a canvas app. author: gregli-msft -ms.topic: conceptual +ms.topic: concept-article ms.custom: canvas ms.reviewer: mkaur ms.date: 11/10/2015 diff --git a/powerapps-docs/maker/canvas-apps/working-with-formulas.md b/powerapps-docs/maker/canvas-apps/working-with-formulas.md index d8aa9fbbca..52b080c752 100644 --- a/powerapps-docs/maker/canvas-apps/working-with-formulas.md +++ b/powerapps-docs/maker/canvas-apps/working-with-formulas.md @@ -5,7 +5,7 @@ author: gregli-msft ms.custom: canvas ms.collection: get-started -ms.topic: conceptual +ms.topic: get-started ms.reviewer: mkaur ms.date: 1/15/2024 ms.subservice: canvas-maker diff --git a/powerapps-docs/maker/canvas-apps/working-with-references.md b/powerapps-docs/maker/canvas-apps/working-with-references.md index 7e3f4d9a32..e4bba0fd55 100644 --- a/powerapps-docs/maker/canvas-apps/working-with-references.md +++ b/powerapps-docs/maker/canvas-apps/working-with-references.md @@ -3,7 +3,7 @@ title: Understand record references and polymorphic lookups in canvas apps description: Learn about how to work with record references and polymorphic lookups in canvas apps. author: gregli-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 05/11/2021 diff --git a/powerapps-docs/maker/canvas-apps/working-with-rules.md b/powerapps-docs/maker/canvas-apps/working-with-rules.md index 9110fa922c..8e7757870a 100644 --- a/powerapps-docs/maker/canvas-apps/working-with-rules.md +++ b/powerapps-docs/maker/canvas-apps/working-with-rules.md @@ -3,7 +3,7 @@ title: Convert rules to expressions description: Learn about how to convert rules to expressions in canvas apps. author: gregli-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 10/23/2019 diff --git a/powerapps-docs/maker/canvas-apps/working-with-tables.md b/powerapps-docs/maker/canvas-apps/working-with-tables.md index e8ca434edc..bee046c521 100644 --- a/powerapps-docs/maker/canvas-apps/working-with-tables.md +++ b/powerapps-docs/maker/canvas-apps/working-with-tables.md @@ -3,7 +3,7 @@ title: Understand tables and records in canvas apps description: Reference information about working with tables, columns, and records in canvas apps. author: gregli-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 02/11/2025 diff --git a/powerapps-docs/maker/canvas-apps/working-with-test-studio.md b/powerapps-docs/maker/canvas-apps/working-with-test-studio.md index 83466cb4d4..d441fc5125 100644 --- a/powerapps-docs/maker/canvas-apps/working-with-test-studio.md +++ b/powerapps-docs/maker/canvas-apps/working-with-test-studio.md @@ -3,7 +3,7 @@ title: Working with Test Studio description: Describes how to use Test Studio with example for testing canvas apps. author: aengusheaney -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur ms.date: 06/04/2020 diff --git a/powerapps-docs/maker/canvas-apps/working-with-tokens.md b/powerapps-docs/maker/canvas-apps/working-with-tokens.md new file mode 100644 index 0000000000..f8336c1b1f --- /dev/null +++ b/powerapps-docs/maker/canvas-apps/working-with-tokens.md @@ -0,0 +1,42 @@ +--- +title: Working with expired tokens +description: Learn how to manage tokens in Power Apps, Logic Apps, and Power Automate to ensure seamless connections even after credential changes or token revocations. +author: lancedMicrosoft + +ms.topic: concept-article +ms.custom: canvas +ms.reviewer: mkaur +ms.date: 04/02/2025 +ms.subservice: canvas-maker +ms.author: mkaur +search.audienceType: + - maker +contributors: + - lancedMicrosoft + +--- + +# Manage expired tokens + +This article explains how tokens are managed to ensure apps continue to function smoothly when credentials change. + +API Hub handles connections differently for Power Apps, Logic App, and Power Automate. When you change your credentials, Power Apps automatically reauthenticates using a new token, while Logic Apps and Power Automate might run into issues because they use stored tokens that can become stale. + + +## Manage tokens in Power Apps + +When a connection is invoked from Power Apps, API Hub uses the OBO (on-behalf-of) token sent in the 'invoke' request from Power Apps. API Hub exchanges the OBO token for a token to the target service. The OBO token is generated and validated during each Power Apps session before invoking the connector. + +For example, if a user **changes their password**, all tokens are revoked. When Power Apps directly invokes the connection, it uses the new token in the 'invoke' request to proceed. The request to the connector succeeds without the user having to reauthenticate the connection. + +## Manage tokens in Logic Apps and Power Automate + +When a connection is invoked from Logic Apps or Power Automate, API Hub uses the stored token in the connection to exchange it for a token to the target service. + +For example, **changing passwords or enforcing an MFA policy** revokes all tokens. A Logic Apps or Power Automate SSO (single sign-on) connection call fails during token exchange because the tokens aren't marked as broken, and the token stored in the connection is stale. + +## Refresh tokens in Power Apps, Logic Apps, and Power Automate + +Power Apps automatically renews or reauthenticates any connection that is broken. However, connections aren't marked as broken when tokens are revoked. They're marked as broken when the token exchange on API Hub fails. + +Therefore, Logic Apps and Power Automate must first attempt to run the connector with expired tokens. This action causes the connection to be marked as broken. Once Power Apps encounters a broken connection, it refreshes its local cache of connections, and the connection is repaired. diff --git a/powerapps-docs/maker/canvas-apps/working-with-variables.md b/powerapps-docs/maker/canvas-apps/working-with-variables.md index 1a4cf20ea0..afbe3c30e3 100644 --- a/powerapps-docs/maker/canvas-apps/working-with-variables.md +++ b/powerapps-docs/maker/canvas-apps/working-with-variables.md @@ -3,10 +3,10 @@ title: Understand variables in canvas apps description: Reference information about working with state, context variables, and collections in canvas apps. author: gregli-msft -ms.topic: conceptual +ms.topic: how-to ms.custom: canvas ms.reviewer: mkaur -ms.date: 01/25/2025 +ms.date: 07/30/2025 ms.subservice: canvas-maker ms.author: gregli search.audienceType: @@ -184,6 +184,24 @@ Then you can simply use **Radius** anywhere that you can use a number, and it wi If you give a context variable the same name as a global variable or a collection, the context variable takes precedence. However, you can still reference the global variable or collection if you use the [disambiguation operator](functions/operators.md#disambiguation-operator) **[@Radius]**. +### Reserved variable names + +Avoid using any of the following variable names. These are names of app properties and using them can cause variable-name collisions that result in unexpected app behavior. + +- ActiveScreen +- DesignHeight +- DesignWidth +- Height +- MinScreenHeight +- MinScreenWidth +- SizeBreakpoints +- StudioVersion +- TestCaseId +- Testing +- TestSuiteId +- Theme +- Width + ## Use a context variable Let's look at how our adding machine would be created using a context variable instead of a global variable. diff --git a/powerapps-docs/maker/common/ai-app-descriptions-faq.md b/powerapps-docs/maker/common/ai-app-descriptions-faq.md index 7eae201e0c..33bf7efe1a 100644 --- a/powerapps-docs/maker/common/ai-app-descriptions-faq.md +++ b/powerapps-docs/maker/common/ai-app-descriptions-faq.md @@ -1,15 +1,17 @@ --- title: FAQ for generate app descriptions with Copilot description: FAQ that discusses generating app descriptions with Copilot and the key considerations for making use of this technology responsibly. -ms.date: 10/26/2023 +ms.date: 05/28/2025 +ms.update-cycle: 180-days ms.custom: - transparency-note -ms.topic: article +ms.topic: faq author: amchern ms.author: amchern ms.collection: - bap-ai-copilot -ms.reviewer: +ms.reviewer: matp +contributors: ASheehi1 --- # FAQ for generate app descriptions with Copilot @@ -36,21 +38,25 @@ Before releasing the Copilot feature in preview, we conducted extensive testing ## What are the limitations of generate app descriptions with Copilot? How can users minimize the impact of the generate app descriptions with Copilot limitations when using the system? - To use this capability, you must be in a Managed Environment. -- Preview features aren’t meant for production use and might have restricted functionality. These features are available before an official release so that customers can get early access and provide feedback. -- For more information, see [preview terms](https://go.microsoft.com/fwlink/?linkid=2189520). - This capability is powered by [Azure OpenAI Service](/azure/cognitive-services/openai/overview). - This capability is in process of rolling out, and might not be available in your region yet. -- This capability can be subject to usage limits or capacity throttling. +- This capability can be subject to usage limits or capacity throttling. + +### For canvas apps (preview) + +- Preview features aren’t meant for production use and might have restricted functionality. These features are available before an official release so that customers can get early access and provide feedback. +- For more information, go to [preview terms](https://go.microsoft.com/fwlink/?linkid=2189520). - Your environment must be in the United States region. -- This feature doesn’t support non-English language browsers. +- This feature doesn’t support non-English language browsers. ## What operational factors and settings allow for effective and responsible use of the system? If you get this error, **Something happened and we weren’t able to generate a description for you**, this might be due to capacity limits. We recommend you give the system some time before trying again. -## See also +## See also + - [Create a Canvas App description with Copilot (preview)](../canvas-apps/save-publish-app.md#create-an-app-description-with-copilot-preview) -- [Create a model-driven app description with Copilot (preview)](../model-driven-apps/build-first-model-driven-app.md#create-an-app-description-with-copilot-preview) +- [Create a model-driven app description with Copilot](../model-driven-apps/build-first-model-driven-app.md#create-an-app-description-with-copilot) [!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/common/ai-plugin.md b/powerapps-docs/maker/common/ai-plugin.md deleted file mode 100644 index 44d222562a..0000000000 --- a/powerapps-docs/maker/common/ai-plugin.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: AI plugins in Power Platform (preview) -description: Use Power Apps to create AI plugins. -ms.date: 11/07/2023 -author: mduelae -ms.author: mkaur -ms.reviewer: mkaur -ms.topic: how-to -ms.subservice: common -manager: tapanm -ms.custom: bap-template -search.audienceType: - - maker, admin -ms.collection: - - bap-ai-copilot ---- - -# AI plugins in Power Platform (preview) - -[This article is prerelease documentation and is subject to change.] - -The AI plugins leverage Power Platform components like flows, connectors or prompts to define a specific business behavior which can be added to a Copilot. The Copilot will use the appropriate plugin able to address the questions of an end user in the application. You can use [Power Apps](https://make.powerapps.com) to view and create AI plugins for use across Power Platform and Microsoft 365. - -With AI plugins, makers can build capabilities enabling Copilot to answer questions they wouldn’t be able to tackle by default or to enhance out-of-the-box answers. - -Use [Power Apps](https://make.powerapps.com/) to create AI plugins. You can also go to [Microsoft Copilot Studio](/microsoft-copilot-studio/copilot-plugins-overview) to create AI plugins for use across Power Platform. - -:::image type="content" source="media/ai-plugins.png" alt-text="AI plugin"::: - -> [!NOTE] -> This article introduces you to the AI plugin experience available in Power Apps interface. The experience creating AI plugins in Power Apps is same in Microsoft Copilot Studio. For detailed step-by-step instructions creating AI plugins using Power Apps or Microsoft Copilot Studio interface, see [Create AI plugins for Microsoft Copilot](/microsoft-copilot-studio/copilot-ai-plugins) - -## Types of AI plugins. - -You can create the following different types of AI plugins using Power Apps experience. - - -|ColumPlugin type |Description | -|---------|---------| -|Prompts plugins | Prompts allow generating content using natural language which includes summarizing, classifying, extracting entities, translating, assessing sentiment and much more. [Learn more](AIB prompts doc page) | -|Custom connector plugins | Custom connectors allow retrieving and updating data from external sources accessed through APIs. [Lean more](/connectors/custom-connectors) | -|Open AI plugins | Open AI plugins provide access to data sources, allowing specific data to be surfaced through AI experiences that would not normally be available through general models. [Learn more](https://platform.openai.com/docs/plugins/introduction) | -|Power Automate flow plugins | Power Automate flows allow defining custom automations. These kinds of plugins are appropriate when a Maker wants to perform several actions which are not only about accessing data or generating content. [Learn more](/power-automate) | - - -## Create AI plugins - -To create AI pluguins, go to Power Apps and choose AI plugin from the left-pane. And then, follow the guided walkthroughs as described in [Create AI plugins for Microsoft Copilot](/microsoft-copilot-studio/copilot-ai-plugins). - -## Use AI plugins -AI plugins enable adding new behaviors to Copilots across products such as MCS/PVA and Microsoft Copilot. To learn about how to use AI plugins, see [Use plugin actions in Microsoft Copilot Studio](/power-virtual-agents/advanced-plugin-actions). - -### See also - -[Building AI plugins for discovery by copilots](build-ai-plugin-for-copilot.md) diff --git a/powerapps-docs/maker/common/build-ai-plugin-for-copilot.md b/powerapps-docs/maker/common/build-ai-plugin-for-copilot.md deleted file mode 100644 index 089f8d08af..0000000000 --- a/powerapps-docs/maker/common/build-ai-plugin-for-copilot.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Building AI plugins for discovery by Copilot (preview) -description: Building AI plugins for discovery by Copilot. -ms.date: 11/07/2023 -author: mduelae -ms.author: mkaur -ms.reviewer: mkaur -ms.topic: how-to -ms.subservice: common -manager: tapanm -ms.custom: bap-template -search.audienceType: - - maker, admin -ms.collection: - - bap-ai-copilot ---- - -# Building AI plugins for discovery by Copilot (preview) - -[This article is prerelease documentation and is subject to change.] - -Microsoft Dataverse supports three types of AI plugins – Dataverse custom APIs, Dataverse Table Search, and Dataverse File Search. Before you start building AI plugins for discoverability by Copilots across Microsoft 365, you need to decide which one of the supported AI plugin types to create. - -While other AI plugin types might be added as supported by Dataverse, the steps to define plugin are the same. - -All components within AI plugins are solution-aware, and follow the standard application lifecycle management (ALM) principles. - -In general, there's two main steps in defining AI plugins. - -1. Define the core functionality that you want to expose as an AI plugin.
    - This is a prerequisite and an existing step in Dataverse about defining a custom API or a custom connector. This means that you can define an AI plugin for your existing custom APIs or custom connectors without any major changes. -1. Define the metadata of the AI plugin that can be discovered by a Copilot. -This is a new step that lets you define the metadata for your AI plugin that is used by the Copilots to discover and invoke this plugin. The process includes the following three main components: - 1. **AI plugin definition**: The metadata of your plugin. For example, **SalesAIPlugin/**. - 1. **AI plugin operation**: A list of operations supported by your plugin. For example, **GetOpportunities**, **CreateOpportunity/**. - 1. **AI plugin instance**: Controls the state of your plugin, which is **Enable** or **Disable**. - -Let's get started and define our first AI plugin. In this example, we're going to define an AI plugin of type custom API. - -> [!Note] -> A basic understanding and knowledge of application lifecycle management (ALM) in Dataverse is required to follow this example. See [Solution concepts](/power-platform/alm/solution-concepts-alm) in Power Platform ALM to learn more. - - -## Defining a Dataverse custom API as an AI plugin - -### Step 1 – Define custom API - -You can create a custom API using the Power Apps. More information: [Create a custom API in Power Apps](../../developer/data-platform/create-custom-api-maker-portal.md) - -The plugin infrastructure currently supports only custom APIs with 'IsFunction=False' and 'IsPrivate=False'. Hence, ensure that your custom API isn't a function or private API. At this point, you can test your custom API using an API client like [Insomnia](../../developer/data-platform/webapi/insomnia.md) - -### Step 2 – Define AI plugin - -Once you define the custom API, you can define the AI plugin using Power Apps. First, [Create a solution](../data-platform/create-solution.md). Once you create a solution, follow these steps to create an AI plugin: - -1. In your solution, select **New** > **More** > **Other** > **AI plugin** from the drop-down. -1. Enter the values for the required fields. - 1. **Name**: Enter a name that starts with a prefix. For example, new_myAIPlugin - 1. **PluginType**: Dataverse -1. **HumanName**, **HumanDescription**, **ModelName**, **Model Description** fields control how your plugin is discovered by the large language model (LLM). So, provide meaningful values for those for your plugins. The remaining fields you can leave blank for now. -1. Select **Save**. - -### Step 3 – Define AI operations - -Once you have defined an AI plugin, the next step is to add the operations you want the plugin to expose. This can be done by selecting **+ New AIPluginOperation** from the top menu bar. - -Enter the following fields in this form: - -- **Name**: Provide a name for your operation -- **OperationID**: this needs to be a value with a prefix like shown below -- **Custom API**: This will be a look up to the custom API you created in Step 1. -- **Description**: This field is currently used by BizChat for plugin matching, so don't leave it blank - -Select **Save and close**. If you have additional operations, you can add those following the same steps. - -:::image type="content" source="media/plugin-define-ai-operation.png" alt-text="Defile AI operations"::: - -### Step 4 – Package as a solution - -Once you add all the required plugin metadata to your solution, make sure that you add your custom API to the same solution as well. This can be done in your solution, select **Add Existing** > **More** > **Other** > **CustomAPI** from the drop-down and select the custom API you created in Step 1. - -Go to **Solutions** section in Power apps and select your solution. Then, select **Export** from the menu > select **Managed**. You can download the exported zip file and import into another test environment and test your changes. - - - diff --git a/powerapps-docs/maker/common/faq-agent-api-component.md b/powerapps-docs/maker/common/faq-agent-api-component.md new file mode 100644 index 0000000000..2a92525488 --- /dev/null +++ b/powerapps-docs/maker/common/faq-agent-api-component.md @@ -0,0 +1,51 @@ +--- +title: FAQ for Agent APIs and Agent Response component in model-driven apps +description: This FAQ provides information about the AI technology used in model-driven apps, along with key considerations and details about how AI is used, how it was tested and evaluated, and any specific limitations. +ms.date: 06/18/2025 +ms.custom: + - responsible-ai-faqs +ms.topic: article +author: adrianorth +ms.author: aorth +ms.reviewer: jdaly +--- + +# FAQ for Agent APIs and Agent Response component + +These frequently asked questions (FAQ) describe the AI impact of Agent APIs feature in model-driven apps. + +## What is Agent APIs and Agent Response component? + +Microsoft Power Apps has introduced APIs and code components designed to interface with the topics created within Microsoft Copilot Studio (MCS) from model-driven apps. These APIs are available as XRM and PCF. The code component is available in the Form Designer to be added to forms. + +## What are capabilities of the Agent APIs and Agent Response component? + +The new APIs can either call a specific topic in MCS or send a prompt that MCS orchestrates. The response from both APIs is a JSON structure the caller can use within their model driven app. The APIs are available for use in the Xrm events of model driven apps and also use within custom PCF control. + +The Agent Response component provides a simplified component to call the Agent API with a topic for MCS. The component renders the results of the MCS response in the form. + +## What is the intended use of the Agent APIs and Agent Response component? + +The APIs are intended to allow customization of model driven apps to include application calls to MCS and allow the results to be integrated into the app. It provides a simplified process to call MCS. + +## How was Agent APIs and Agent Response component evaluated? What metrics are used to measure performance? + +In our evaluations, we look at how accurately the response is from MCS. MCS responses are evaluated for satisfying Microsoft's responsible AI principles. + +## What are the limitations of Agent APIs and Agent Response component? How can users minimize the impact of the Agent APIs limitations when using the system? + +The APIs and component are optional for makers to use and makers need to consider how best to use the APIs and component within their customizations. + +## What operational factors and settings allow for effective and responsible use of the feature? + +Makers are required to ensure that the MCS topics are returning accurate and appropriate responses. Makers using the API are responsible to handle the response as part of their customization. + +In addition, makers are strongly encouraged to indicate to users where AI has been used in the user experience. This is like how Microsoft shows "AI-generated content may be incorrect". + +## See also + +- [Bring intelligence into your component using Agent Xrm APIs (preview)](../../developer/component-framework/bring-intelligence-using-agent-apis.md) +- [Bring intelligence into your app using Agent Xrm APIs (preview)](../../developer/model-driven-apps/clientapi/bring-intelligence-using-agent-apis.md) +- [Use Agent Response component in the model-driven app forms (preview)](../model-driven-apps/form-designer-add-configure-agent-response.md) + +[!INCLUDE [footer-banner](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/common/faq-agent-builder.md b/powerapps-docs/maker/common/faq-agent-builder.md index 4a1a68183e..ab75c5262b 100644 --- a/powerapps-docs/maker/common/faq-agent-builder.md +++ b/powerapps-docs/maker/common/faq-agent-builder.md @@ -1,11 +1,12 @@ --- title: FAQ about agent builder in canvas apps (preview) description: This FAQ provides information about the AI technology used in agent builder with key considerations and details about how AI is used, how it was tested and evaluated, and any specific limitations. -ms.date: 12/16/2024 +ms.date: 4/28/2025 +ms.update-cycle: 180-days author: noazarur-microsoft ms.author: noazarur ms.reviewer: mkaur -ms.topic: article +ms.topic: faq ms.subservice: common ms.custom: transparency-note - responsible-ai-faqs @@ -18,10 +19,10 @@ ms.collection: These frequently asked questions (FAQ) describe the AI impact of agent builder in canvas apps. ## What is agent builder?  -Agent builder helps users create copilot agents to automate their processes. The goal of agent builder is to help users create copilot agents using their existing applications. Agent builder takes your app metadata and the desired agent goal to create a step-by-step process the user currently takes to complete the process they're looking to automate. This process is then combined with deterministically extracted skills from the app to create a Copilot Studio copilot on the user’s behalf with instructions and actions. Once created, the user can add a trigger, edit, test, and publish the agent through Microsoft Copilot Studio. +Agent builder lets users create copilot agents to automate their processes. The goal of agent builder is to help users create copilot agents using their existing applications. Agent builder takes your app metadata and the desired agent goal to create a step-by-step process the user currently takes to complete the process they're looking to automate. This process is then combined with deterministically extracted skills from the app to create a Copilot Studio copilot on the user’s behalf with instructions, actions, triggers, and knowledge. Once created, the user can edit, test, and publish the agent through Microsoft Copilot Studio. ## What can agent builder do?  -Agent builder can help a user create an agent. Agent builder can generate suggestions for which processes within an app we can automate. Using the suggestion and/or the sentence the user provided for what the desired goal for the agent is agent builder provides a process for how the user currently completes the task. Agent builder also extracts [actions](/microsoft-copilot-studio/advanced-plugin-actions) from the app metadata. Using the process generated from agent builder and the actions extracted from agent builder the user can add a trigger, edited, tested, and publish the agent in Microsoft Copilot Studio. +Agent builder can help a user create an agent. Agent builder can generate suggestions for which processes within an app we can automate. Using the suggestion and/or the sentence the user provided for what the desired goal for the agent is agent builder provides a process for how the user currently completes the task. Agent builder also extracts [actions](/microsoft-copilot-studio/advanced-plugin-actions), [triggers](/microsoft-copilot-studio/authoring-triggers-about), and [knowledge](/microsoft-copilot-studio/knowledge-copilot-studio) from the app metadata. Using the process instructions generated from agent builder and the triggers, knowledge, and actions extracted from agent builder the user can edit, test, and publish the agent in Microsoft Copilot Studio. ## What is the intended use of agent builder? The intended use of agent builder is to create agents to automate processes with a focus on data entry. The system allows the user to automate the process of data through generating an agent that takes on the steps the user would take to accomplish the task. The system wasn't designed, and we don't recommend customers to create agents for medical, legal, or hiring purposes. Agent builder was also not designed to be used to create an agent that has nothing to do with the app or generate an agent from an app that has no content. @@ -54,7 +55,12 @@ Follow these procedures to make the most out of the feature: - “Generate reports for claims filed within a specific date range” -- Review all suggestions for accuracy and appropriateness before proceeding to the next step. +- Review all suggestions for accuracy and appropriateness before proceeding to the next step. + +## Authenticating actions after publishing +If your agent is missing authentication to perform an action or is configured to request user authentication, it sends a message to the user asking for credentials. If an agent's flow is interrupted because it can't receive information or an action failed, it can't continue the session. If you want your agent to run autonomously, each action must be configured with working maker authentication that doesn't require user input. You can also instruct your agent to not request credentials from users. + +Because triggers use maker authentication, be aware of what data potential users can access through a published agent that has triggers. See the [Data protection with triggers](/microsoft-copilot-studio/authoring-triggers-about#data-protection-for-agents-with-triggers) section for more information. ## Related information diff --git a/powerapps-docs/maker/common/faq-copilot-control.md b/powerapps-docs/maker/common/faq-copilot-control.md index 77caccb8c3..2ee3f94c82 100644 --- a/powerapps-docs/maker/common/faq-copilot-control.md +++ b/powerapps-docs/maker/common/faq-copilot-control.md @@ -1,10 +1,11 @@ --- title: FAQ for Copilot in canvas apps description: FAQ for Copilot in canvas apps. -ms.date: 8/17/2023 +ms.date: 5/28/2025 +ms.update-cycle: 180-days ms.custom: - transparency-note -ms.topic: article +ms.topic: faq author: mduelae ms.author: mkaur ms.collection: diff --git a/powerapps-docs/maker/common/faq-draft-with-copilot.md b/powerapps-docs/maker/common/faq-draft-with-copilot.md deleted file mode 100644 index 3d6a9e4590..0000000000 --- a/powerapps-docs/maker/common/faq-draft-with-copilot.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: FAQ about drafting well-written input text with Copilot -description: This FAQ provides information about the AI technology used to draft well-written input text with Copilot, along with key considerations and details about how AI is used, how it was tested and evaluated, and any specific limitations. -ms.date: 05/22/2024 -ms.custom: - - responsible-ai-faqs -ms.topic: article -author: jordanchodak -ms.author: jordanchodak -ms.reviewer: smurkute -ms.collection: - - bap-ai-copilot ---- - -# FAQ about drafting well-written input text with Copilot - -These frequently asked questions (FAQ) describe the AI impact of drafting well-written input text with Copilot in Power Apps. - -## What is Draft with Copilot? - -**Draft with Copilot** is a feature for users of Power Apps who want to create well-written input text while saving time. It surfaces in multi-line text boxes and rich text editors. - -## What are the system’s capabilities? - -It takes the user's input and uses advanced language models to generate content suggestions, correct grammar errors, and eloquently refine the user's ideas. The user can also change the tone and length of the output to fit their scenario. - -## What is the system’s intended use? - -As an AI assistant to users, it provides content suggestions and refined text based on the user's input. - -## How was Draft with Copilot evaluated? What metrics are used to measure performance? - -We evaluate the feature both qualitatively and quantitatively. To assess the quality of the feature, we're conducting studies with users to gather feedback on their experiences, thoughts about the feature's quality, and suggestions for improvement. We're also monitoring telemetry data to track the number of users who tried the feature, the success rate of the feature, and the ratio of positive feedback to negative feedback. - -Before releasing the **Draft with Copilot** feature in preview, we conducted extensive testing to ensure its functionality. If you encounter any issues with the content generated, provide feedback. Your feedback is used to enhance Microsoft's products and services. Your organization's IT admins have access to your feedback data for management purposes. For more information, read the [Privacy Statement](https://go.microsoft.com/fwlink/?linkid=2182930%22%20\t%20%22_blank). - -## What are the limitations of Draft with Copilot? How can users minimize the impact of the Draft with Copilot limitations when using the system? - -- To use this capability, you must be a premium user. -- Preview features aren’t meant for production use and may have restricted functionality. These features are available before an official release so that customers can get early access and provide feedback. -- For more information, go to [preview terms](https://go.microsoft.com/fwlink/?linkid=2189520). -- This capability is powered by [Azure OpenAI Service](/azure/cognitive-services/openai/overview). -- This capability is in process of rolling out, and may not be available in your region yet. -- This capability may be subject to usage limits or capacity throttling. -- Your environment must be in the United States region or the [**Move data across regions**](/power-platform/admin/geographical-availability-copilot) checkbox must be selected in Power Platform admin center. -- This feature doesn’t support non-English language input. - -## What operational factors and settings allow for effective and responsible use of the system? - -If you get this error, **There was a problem using this description. Try again.**, this might be due to capacity limits. We recommend that you give the system some time before trying again. It may also be that you have not given the system enough information to properly generate output. Add more details to try again. - - -[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/common/faq-field-suggestions.md b/powerapps-docs/maker/common/faq-field-suggestions.md index 9898675b42..a833a9a981 100644 --- a/powerapps-docs/maker/common/faq-field-suggestions.md +++ b/powerapps-docs/maker/common/faq-field-suggestions.md @@ -1,10 +1,11 @@ --- title: FAQs for field suggestions by Copilot description: These FAQs provide information about the AI technology that uses to get field suggestions by Copilot, along with key considerations and details about how AI is used, how it was tested and evaluated, and any specific limitations. -ms.date: 9/04/2024 +ms.date: 5/28/2025 +ms.update-cycle: 180-days ms.custom: - responsible-ai-faqs -ms.topic: article +ms.topic: faq author: norliu ms.author: norliu ms.reviewer: mkaur diff --git a/powerapps-docs/maker/common/faq-filter-with-copilot.md b/powerapps-docs/maker/common/faq-filter-with-copilot.md index 1042e8df1a..4f5bb29a7e 100644 --- a/powerapps-docs/maker/common/faq-filter-with-copilot.md +++ b/powerapps-docs/maker/common/faq-filter-with-copilot.md @@ -1,10 +1,11 @@ --- title: FAQ on filtering, sorting, and searching Power Apps galleries with Copilot description: This FAQ outlines how AI filters, sorts, and searches Power Apps galleries with Copilot, addressing its usage, testing, evaluation, and limitations. -ms.date: 05/22/2024 +ms.date: 05/25/2025 +ms.update-cycle: 180-days ms.custom: - responsible-ai-faqs -ms.topic: article +ms.topic: faq author: jordanchodak ms.author: jordanchodak ms.reviewer: smurkute diff --git a/powerapps-docs/maker/common/faq-from-filling-assistance.md b/powerapps-docs/maker/common/faq-from-filling-assistance.md index effc3f492c..0d1d7bc3f0 100644 --- a/powerapps-docs/maker/common/faq-from-filling-assistance.md +++ b/powerapps-docs/maker/common/faq-from-filling-assistance.md @@ -1,10 +1,11 @@ --- title: FAQ about form fill assistance description: This FAQ provides information about the AI technology used in the form fill assistance feature with key considerations and details about how AI is used, how it was tested and evaluated, and any specific limitations. -ms.date: 09/04/2024 +ms.date: 05/28/2025 +ms.update-cycle: 180-days ms.custom: - responsible-ai-faqs -ms.topic: article +ms.topic: faq author: MitiJ ms.author: mijosh ms.reviewer: smurkute @@ -18,15 +19,15 @@ These frequently asked questions (FAQ) describe the AI impact of form fill assis ## What is form fill assistance?  -Form fill assistance provides users AI-generated optional suggestions for fields in a form based on the data they frequently use, or based on text they have copied and used smart paste (via button or keyboard shortcut) to paste into the form. These suggestions are entirely optional, and don't get saved until the user explicitly accepts them. +Form fill assistance provides users AI-generated optional suggestions for fields in a form based on the data they frequently use, or based on text or image they have copied and used smart paste (via button or keyboard shortcut) to paste into the form, or based on the file contents the user provides through the files capability. These suggestions are entirely optional, and don't get saved until the user explicitly accepts them. ## What can form fill assistance do? -Based on user’s recent usage of the app or based on text they have copied and used smart paste (via button or keyboard shortcut) to paste into the form, optional suggestions for empty form fields are shown. The user can choose to accept, reject, or ignore these suggestions. +Based on user’s recent usage of the app, or based on text or image they have copied and used smart paste (via button or keyboard shortcut) to paste into the form, or based on the file contents the user provides through the files capability, optional suggestions for empty form fields are shown. The user can choose to accept, reject, or ignore these suggestions. Ignoring these optional suggestions is equivalent to rejecting the suggestions. Suggestions also include citations for reference by users. ## What is the intended use of form fill assistance? -Help users fill forms more efficiently by providing optional suggestions based on the user’s recent app usage or based on text they have copied and used smart paste (via button or keyboard shortcut) to paste into the form. Users always need to choose to accept these suggestions in order to save them, otherwise these suggestions automatically get discarded. +Help users fill forms more efficiently by providing optional suggestions based on the user’s recent app usage or based on text or image they have copied and used smart paste (via button or keyboard shortcut) to paste into the form, or based on the file contents the user provides through the files capability. Users always need to choose to accept these suggestions in order to save them, otherwise these suggestions automatically get discarded. ## How was form fill assistance evaluated? What metrics are used to measure performance?  @@ -42,7 +43,7 @@ Users are always required to review suggestions and explicitly accept the sugges ## How do I provide feedback? -To provide feedback about this feature, users can select the thumbs up or thumbs down button and (optional) type in comments to describe their feedback and submit. +To provide feedback about this feature, users can provide feedback by providing a compliment, reporting a problem, or making a suggestion. ## Related information diff --git a/powerapps-docs/maker/common/faq-generative-pages-model-driven.md b/powerapps-docs/maker/common/faq-generative-pages-model-driven.md new file mode 100644 index 0000000000..378d3d434b --- /dev/null +++ b/powerapps-docs/maker/common/faq-generative-pages-model-driven.md @@ -0,0 +1,54 @@ +--- +title: FAQ about generative pages in model-driven apps +description: This FAQ provides information about the AI technology used in the generative pages feature with key considerations and details about how AI is used, how it was tested and evaluated, and any specific limitations. +ms.date: 07/10/2025 +ms.custom: + - responsible-ai-faqs +ms.topic: faq +author: jasongre +ms.author: jasongre +ms.reviewer: matp +ms.collection: + - bap-ai-copilot +--- +# FAQ about generative pages in model-driven apps + +These frequently asked questions (FAQ) describe the AI impact of generative pages in model-driven apps. + +## What are generative pages? + +Generative pages simplify the app design process for model-driven app makers through AI code generation. By describing their needs in natural language, makers can create fully structured pages in their apps. The system processes these requirements and intelligently generates React code that covers both the frontend user experience and business logic, ensuring modern, consumer-grade UI experiences for enterprise applications. Makers must publish these pages before they're available to users in apps. + +## What can you do with generative pages? + +With generative pages, makers can create and refine app pages in real time through an interactive, conversational experience. They can adjust elements, layout, and functionality to perfectly match their vision. This capability helps ensure designs adhere to best practices and deliver high-quality user experiences, making the app development process more efficient and intuitive. When makers are satisfied with the generated page, they can publish them so they're available when playing the app. + +## What is the intended use of generative pages? + +The intended use of generative pages is to streamline the app design process for model-driven app makers. By leveraging AI to generate React code based on natural language descriptions, makers can quickly create pages that meet their specific requirements. This tool is designed to enhance productivity and ensure that app designs are both functional and visually appealing. + +## How were generative pages evaluated? What metrics are used to measure performance? + +In our evaluations, we measure how often the agent can generate syntactically correct code, and we also test how good the code generation is in terms of UX design and meeting functional requirements. Moreover, the agent is evaluated for satisfying Microsoft’s responsible AI principles. + +## What are the limitations of generative pages? How can users minimize the impact of generative page limitations when using the system? + +The current limitations of generative pages include: + +- Pages can only connect to Dataverse tables and perform CRUD operations. +- There's no ability to manually edit the generated code. +- Generated pages can't be moved between environments. +- Must add all needed Dataverse tables in the first prompt. +- Generative pages are only available in US environments and are not to be used in production systems yet. + +Makers can minimize the impact of these limitations by testing any generated code before publishing it to users. + +## What operational factors and settings allow for effective and responsible use of generative pages? + +Effective and responsible use of generative pages involves setting clear guidelines for app design requirements and ensuring that makers provide comprehensive descriptions. Regular training on best practices for using the tool and monitoring its performance can help maintain high standards. Additionally, incorporating user feedback and continuously improving the system based on real-world usage can enhance its effectiveness. + +Makers are always required to publish generative pages before they're made available to users. Extensive testing of any code before making it available to users in an app is always encouraged. + +## Related articles + +[Describe a page using natural language](../model-driven-apps/generative-pages.md) diff --git a/powerapps-docs/maker/common/faq-plan-designer.md b/powerapps-docs/maker/common/faq-plan-designer.md index 578f29a3c7..d4a03bf815 100644 --- a/powerapps-docs/maker/common/faq-plan-designer.md +++ b/powerapps-docs/maker/common/faq-plan-designer.md @@ -3,8 +3,11 @@ title: FAQ for the Plan designer description: FAQ that discusses the Power Apps the Plan designer and the key considerations for making use of this technology responsibly. author: norliu contributors: mduelae -ms.topic: conceptual -ms.date: 12/05/2024 +ms.custom: + - responsible-ai-faqs +ms.topic: faq +ms.date: 6/19/2025 +ms.update-cycle: 180-days ms.author: norliu ms.reviewer: mkaur ms.collection: @@ -15,43 +18,42 @@ ms.collection: ## What is the Plan designer? -The Plan Designer is an AI-powered experience that builds an end-to-end business solution in a matter of minutes. By describing a business problem in natural language, and including images such as a legacy app, process diagram, you can expect an outline of user roles and requirements; more importantly, an end-to-end Power Platform solution generated with objects like Dataverse tables, Power Apps (canvas and model-driven apps), and Power Automate flows. In the Plan designer, you can continuously iterate and refine your business requirements to produce a more precise output tailored to your specific needs. +The Plan designer is an AI-powered experience that builds an end-to-end business solution in minutes. Describe your business problem in natural language and include images, like a screenshot of a legacy app or a process diagram. The Plan designer outlines user roles and requirements, and generates a complete Power Platform solution with objects like Dataverse tables, Power Apps (canvas and model-driven apps), Power Automate cloud flows, Power Pages sites, Power BI, and Microsoft Copilot Studio agents. You can iterate and refine your business requirements in the Plan designer to get a more precise solution that fits your needs. ## What can the Plan designer do? -The Plan designer can build an end-to-end business solution based on a description of a business problem and including images such as a legacy app, process diagram. A complete plan includes an outline of user roles and requirements, an end-to-end Power Platform solution generated with objects like Dataverse tables, Power Apps (canvas and model-driven apps), and Power Automate flows. +The Plan designer builds an end-to-end business solution based on a description of a business problem and can include images, like a legacy app or process diagram. A complete plan outlines user roles and requirements, and includes an end-to-end Power Platform solution with objects like Dataverse tables, Power Apps (canvas and model-driven apps), Power Automate cloud flows, Power Pages, Power BI, and Microsoft Copilot Studio agents. ## What is the Plan designer’s intended use? -The Plan Designer is intended to allow makers to describe their business problems and receive a comprehensive plan that includes user stories, data schema, apps, and flows. This approach saves users time by eliminating the need to learn different products within the Power Platform and creating assets separately. Additionally, the plan serves as documentation for future reference +Plan designer lets makers describe their business problem and quickly get a comprehensive plan. The plan includes user stories, data schema, and apps, flows, and agents to build. This approach saves time and helps users learn and integrate different Power Platform products. + +The plan also serves as documentation that users can refer to later. ## How was the Plan designer evaluated? What metrics are used to measure performance? -We evaluate the feature both qualitatively and quantitatively. To assess the quality of the feature, we're conducting user studies with makers to gather their feedback on their experiences, thoughts about the feature's quality, and suggestions for improvement. Additionally, we're monitoring telemetry data to track the number of makers who tried the feature, the success rate of the feature, and the ratio of positive to negative feedback. Before releasing the Copilot feature in preview, we conducted extensive testing to ensure its functionality. If you encounter any issues with the content generated, provide feedback. Your feedback is used to enhance Microsoft's products and services. Your organization's IT admins have access to your feedback data for management purposes. For more information, read the [Privacy Statement](https://go.microsoft.com/fwlink/?linkid=2182930%22%20%5Ct%20%22_blank). +We evaluate the feature both qualitatively and quantitatively. To check quality, we conduct user studies with makers to get feedback on their experiences, thoughts about the feature's quality, and suggestions for improvement. Also, monitor telemetry data to track the number of makers who try the feature, the feature's success rate, and the ratio of positive to negative feedback. Before releasing the feature, run extensive testing to check its functionality. If you find any issues with the generated content, provide feedback. Microsoft uses your feedback to improve products and services. Your organization's IT admins can access your feedback data for management purposes. For more information, read the [Privacy Statement](https://go.microsoft.com/fwlink/?linkid=2182930%22%20%5Ct%20%22_blank). ## What are the limitations of the Plan designer? How can users minimize the impact of system or product name’s limitations when using the system? -- To use this capability, you must have a Microsoft Dataverse database in your environment. -- Preview features aren’t meant for production use and might have restricted functionality. These features are available before an official release so that customers can get early access and provide feedback. For more information, see preview terms. +- To use this capability, you need a Microsoft Dataverse database in your environment. - This capability is powered by Azure OpenAI Service. -- This capability is in process of rolling out, and might not be available in your region yet. - This capability can be subject to usage limits or capacity throttling. -- Your environment must be in the United States region. -- This feature doesn’t support non-English language input. -- This feature allows maximum input size of 4k tokens, including both text and images. (~ 3,000 words if your input only contains text) - +- This feature lets you use a maximum input size of 4,000 tokens, including both text and images (about 3,000 words if your input only has text). + ## What operational factors and settings allow for effective and responsible use of the Plan designer? -- Here are some tips to help you get the most out of this feature: -- Try to describe the business problems end to end clearly, including types of user that needs to be involved, what tasks they should complete. -- If you’re uploading an image, make sure in the text you explain what that image is about and explicitly ask the Plan designer to use it. For example, use the ERD attached. -- If the results you get aren't what you expected, you can keep iterating with Plan designer by keep selecting a specific part you want to edit and type in your requirement. -- You can also try using the default suggestions provided in the banner and then customize them to suit your needs. And if you still can't get the desired results, send us your feedback. +- Use these tips to get the most out of this feature: +- Clearly describe the business problems end to end, including the types of user involved and the tasks they need to finish. +- If you upload an image, explain what the image shows in the text and explicitly ask Plan designer to use it. For example, say "Use the ERD attached." +- If the results aren't what you expect, keep iterating with Plan designer by selecting the specific part you want to edit and typing your requirement. +- Try the default suggestions in the banner, then customize them to suit your needs. If you still can't get the results you want, send us your feedback. + ## How do I provide feedback on the Plan designer? -- You can provide feedback to us using the Thumbs button in the Plan designer. We can help you better if you can provide more details. -- For Early access program, you can also directly reach out to the product team by contacting them in the Teams channel Intelligent Apps Early Access Discussion. +- Select the thumbs up or thumbs down in the plan document to provide feedback on a specific section. +- Select the **Give feedback** icon in the command bar to provide general feedback on the Plan designer experience. -### See also -[Use the Plan designer (preview)](../plan-designer/plan-designer.md) +### See also +[Overview of Plan designer](../plan-designer/plan-designer.md) diff --git a/powerapps-docs/maker/common/faq-rename-control.md b/powerapps-docs/maker/common/faq-rename-control.md index 12fa526287..986c4f82c2 100644 --- a/powerapps-docs/maker/common/faq-rename-control.md +++ b/powerapps-docs/maker/common/faq-rename-control.md @@ -1,10 +1,11 @@ --- title: FAQ for rename controls in canvas apps with Copilot description: FAQ that discusses renaming canvas apps controls with Copilot. -ms.date: 11/13/2024 +ms.date: 5/25/2025 +ms.update-cycle: 180-days ms.custom: - transparency-note -ms.topic: article +ms.topic: faq author: mamali ms.author: mamali ms.reviewer: diff --git a/powerapps-docs/maker/common/faq-timeline-highlights-with-copilot.md b/powerapps-docs/maker/common/faq-timeline-highlights-with-copilot.md index 18a868a0b8..efe8533047 100644 --- a/powerapps-docs/maker/common/faq-timeline-highlights-with-copilot.md +++ b/powerapps-docs/maker/common/faq-timeline-highlights-with-copilot.md @@ -3,9 +3,9 @@ title: Responsible AI FAQ for Copilot in the timeline | MicrosoftDocs description: Learn about frequently asked questions for using Copilot in the timeline control within a model-driven app. author: lalexms ms.reviewer: matp -ms.topic: conceptual +ms.topic: faq ms.component: model -ms.date: 10/29/2024 +ms.date: 5/28/2025 ms.subservice: mda-maker ms.author: laalexan search.audienceType: diff --git a/powerapps-docs/maker/common/faq-visualize-view.md b/powerapps-docs/maker/common/faq-visualize-view.md index 34fa7c85a9..dc349ab5d2 100644 --- a/powerapps-docs/maker/common/faq-visualize-view.md +++ b/powerapps-docs/maker/common/faq-visualize-view.md @@ -1,12 +1,13 @@ --- title: FAQ about Copilot visualizations on a view (preview) description: This FAQ provides information about the AI technology used in visualizing data in a view with key considerations and details about how AI is used, how it was tested and evaluated, and any specific limitations. -ms.date: 01/24/2025 +ms.date: 05/28/2025 +ms.update-cycle: 180-days author: sriharibs-msft ms.author: srihas reviewer: shwetamurkute ms.reviewer: smurkute -ms.topic: article +ms.topic: faq ms.subservice: common ms.custom: transparency-note - responsible-ai-faqs diff --git a/powerapps-docs/maker/common/faqs-build-apps-conversation.md b/powerapps-docs/maker/common/faqs-build-apps-conversation.md index 211a7d2e73..f2e1a47344 100644 --- a/powerapps-docs/maker/common/faqs-build-apps-conversation.md +++ b/powerapps-docs/maker/common/faqs-build-apps-conversation.md @@ -1,10 +1,11 @@ --- title: FAQ for building apps and tables through conversation description: FAQ that discusses building apps through conversation and the key considerations for making use of this technology responsibly. -ms.date: 9/24/2024 +ms.date: 5/28/2025 +ms.update-cycle: 180-days ms.custom: - responsible-ai-faqs -ms.topic: article +ms.topic: faq author: franklanmsft ms.author: franklan ms.reviewer: mduelae diff --git a/powerapps-docs/maker/common/faqs-copilot-model-driven-app.md b/powerapps-docs/maker/common/faqs-copilot-model-driven-app.md index cc917ac5cd..69e633c11b 100644 --- a/powerapps-docs/maker/common/faqs-copilot-model-driven-app.md +++ b/powerapps-docs/maker/common/faqs-copilot-model-driven-app.md @@ -1,10 +1,11 @@ --- title: FAQ for Copilot chat in model-driven apps description: FAQ that discusses model-driven apps with Copilot chat and the key considerations for making use of this technology responsibly. -ms.date: 9/16/2024 +ms.date: 5/28/2025 +ms.update-cycle: 180-days ms.custom: - transparency-note -ms.topic: article +ms.topic: faq author: Mattp123 ms.author: mijosh ms.reviewer: matp diff --git a/powerapps-docs/maker/common/faqs-copilot-panel.md b/powerapps-docs/maker/common/faqs-copilot-panel.md index d65d5b1d3a..5bf085f74c 100644 --- a/powerapps-docs/maker/common/faqs-copilot-panel.md +++ b/powerapps-docs/maker/common/faqs-copilot-panel.md @@ -1,10 +1,11 @@ --- title: FAQ for edit your app with Copilot description: FAQ that discusses continuing to edit your app with Copilot and the key considerations for making use of this technology responsibly. -ms.date: 10/10/2024 +ms.date: 5/28/2025 +ms.update-cycle: 180-days ms.custom: - transparency-note -ms.topic: article +ms.topic: faq author: norliu ms.author: norliu ms.reviewer: mduelae diff --git a/powerapps-docs/maker/common/faqs-copilot-powerfx.md b/powerapps-docs/maker/common/faqs-copilot-powerfx.md index 6c1968f519..4d60bab326 100644 --- a/powerapps-docs/maker/common/faqs-copilot-powerfx.md +++ b/powerapps-docs/maker/common/faqs-copilot-powerfx.md @@ -1,10 +1,11 @@ --- title: FAQs about using Copilot with Power Fx description: FAQ that discusses Copilot and Power Fx -ms.date: 7/15/2024 +ms.date: 5/28/2025 +ms.update-cycle: 180-days ms.custom: - transparency-note -ms.topic: article +ms.topic: faq author: jorisde ms.author: jorisde ms.reviewer: mduelae diff --git a/powerapps-docs/maker/common/faqs-email-assist-rte.md b/powerapps-docs/maker/common/faqs-email-assist-rte.md index 50e889697a..5703ef9f46 100644 --- a/powerapps-docs/maker/common/faqs-email-assist-rte.md +++ b/powerapps-docs/maker/common/faqs-email-assist-rte.md @@ -1,7 +1,8 @@ --- title: FAQ about using Copilot in the rich text editor description: Learn how to effectively and responsibly use Copilot in the rich text editor to generate tailored responses to your customers with AI assistance. -ms.date: 08/11/2023 +ms.date: 05/28/2025 +ms.update-cycle: 180-days ms.custom: - responsible-ai-faqs - ai-gen-docs-bap @@ -71,4 +72,4 @@ Copilot is a powerful and helpful feature, but it isn't perfect. It has some lim ## See also -[Use Copilot in the rich text editor for email (preview)](../model-driven-apps/use-copilot-email-assist.md) +[Use Copilot in the rich text editor for email](../model-driven-apps/use-copilot-email-assist.md) diff --git a/powerapps-docs/maker/common/faqs-excel-to-table-app.md b/powerapps-docs/maker/common/faqs-excel-to-table-app.md index ecec6b8c22..47a6782812 100644 --- a/powerapps-docs/maker/common/faqs-excel-to-table-app.md +++ b/powerapps-docs/maker/common/faqs-excel-to-table-app.md @@ -1,10 +1,11 @@ --- title: FAQ for Excel to table and app description: This FAQ provides information about the AI technology that's used in Excel to table and app. This FAQ also includes key considerations and details about how AI is used, how it was tested and evaluated, and any specific limitations. -ms.date: 09/24/2024 +ms.date: 05/28/2025 +ms.update-cycle: 180-days ms.custom: - responsible-ai-faqs -ms.topic: article +ms.topic: faq author: Mattp123 ms.author: yueshu ms.reviewer: matp diff --git a/powerapps-docs/maker/common/faqs-sharepoint-list-to-table-app.md b/powerapps-docs/maker/common/faqs-sharepoint-list-to-table-app.md index a950b2717c..1500a31333 100644 --- a/powerapps-docs/maker/common/faqs-sharepoint-list-to-table-app.md +++ b/powerapps-docs/maker/common/faqs-sharepoint-list-to-table-app.md @@ -1,10 +1,11 @@ --- title: FAQ for SharePoint List to table and app description: This FAQ provides information about the AI technology that's used in SharePoint List to table and app. This FAQ also includes key considerations and details about how AI is used, how it was tested and evaluated, and any specific limitations. -ms.date: 03/21/2024 +ms.date: 05/28/2025 +ms.update-cycle: 180-days ms.custom: - responsible-ai-faqs -ms.topic: article +ms.topic: faq author: Mattp123 ms.author: yueshu ms.reviewer: matp @@ -52,4 +53,4 @@ To do this, turn on data movement across regions. More information: Enable cop ## See also -[Create with external data](../data-platform/create-edit-entities-portal.md#create-with-external-data) \ No newline at end of file +[Create with external data](../data-platform/create-edit-entities-portal.md#create-with-external-data) diff --git a/powerapps-docs/maker/common/responsible-ai-overview.md b/powerapps-docs/maker/common/responsible-ai-overview.md index 9ef6ca0402..1dc7477a9f 100644 --- a/powerapps-docs/maker/common/responsible-ai-overview.md +++ b/powerapps-docs/maker/common/responsible-ai-overview.md @@ -1,12 +1,13 @@ --- title: FAQ about using AI responsibly in Power Apps description: Find FAQ about how to use copilot AI responsibly with Power Apps to build apps through conversation, generate app descriptions, edit apps, and more. -ms.date: 11/5/2024 +ms.date: 06/18/2025 +ms.update-cycle: 180-days ms.custom: - responsible-ai-faqs - ai-gen-docs-bap - ai-gen-desc - - ai-seo-date:12/16/2024 + - ai-seo-date:5/28/2025 - bap-template ms.topic: overview author: mduelae @@ -25,7 +26,7 @@ ms.collection: - [Build apps through conversation](../canvas-apps/ai-conversations-create-app.md) - [FAQ about building apps through conversation](faqs-build-apps-conversation.md) - [Create app description for canvas apps with Copilot (preview)](../canvas-apps/save-publish-app.md#create-an-app-description-with-copilot-preview) -- [Create a model-driven app description with Copilot (preview)](../model-driven-apps/build-first-model-driven-app.md#create-an-app-description-with-copilot-preview) +- [Create a model-driven app description with Copilot](../model-driven-apps/build-first-model-driven-app.md#create-an-app-description-with-copilot) - [FAQ about generating app descriptions with Copilot](ai-app-descriptions-faq.md) - [Edit your app with Copilot (preview)](../canvas-apps/ai-edit-app.md) - [FAQ about editing your app with Copilot](faqs-copilot-panel.md) @@ -49,6 +50,10 @@ ms.collection: - [FAQ about agent builder in canvas apps](faq-agent-builder.md) - [Build an agent to automate your business process (preview)](../canvas-apps/agent-builder.md) - [FAQ for the Plan designer](faq-plan-designer.md) -- [Use the Plan designer (preview)](../plan-designer/plan-designer.md) -- [FAQ for rename controls in canvas apps with Copilot ](faq-rename-control.md) +- [Overview of Plan designer](../plan-designer/plan-designer.md) +- [FAQ for rename controls in canvas apps with Copilot](faq-rename-control.md) - [Rename controls in canvas apps with Copilot (preview)](../canvas-apps/controls/copilot-rename-controls.md) +- [FAQ for Agent APIs](faq-agent-api-component.md) +- [Bring intelligence into your component using Agent Xrm APIs (preview)](../../developer/component-framework/bring-intelligence-using-agent-apis.md) +- [Bring intelligence into your app using Agent Xrm APIs (preview)](../../developer/model-driven-apps/clientapi/bring-intelligence-using-agent-apis.md) +- [Use Agent Response component in the model-driven app forms (preview)](../model-driven-apps/form-designer-add-configure-agent-response.md) \ No newline at end of file diff --git a/powerapps-docs/maker/common/wrap/code-sign-aab-file.md b/powerapps-docs/maker/common/wrap/code-sign-aab-file.md new file mode 100644 index 0000000000..341a42cb9f --- /dev/null +++ b/powerapps-docs/maker/common/wrap/code-sign-aab-file.md @@ -0,0 +1,61 @@ +--- +title: Code signing process for AAB files +description: Learn how to manually code sign in Android App Bundle (AAB) files and convert them to APKs for debugging, including required tools and step-by-step commands. +author: komala2019 +contributors: +ms.topic: how-to +ms.date: 06/05/2025 +ms.author: koagarwa +ms.reviewer: smurkute +ms.subservice: canvas-maker +ms.custom: canvas +search.audienceType: + - maker +--- +# Code signing process for AAB file + +This article explains how to manually code sign an AAB file. + +## Prerequisite + +1. Set up [Android Studio](https://developer.android.com/studio). + +1. Install bundletool for converting AAB file to APK file. You can download the latest version from the [official site](https://github.com/google/bundletool/releases). + +1. Install jarsigner for signing in the AAB file. You can install jarsigner by downloading and setting up the [Java Development Kit (JDK)](https://www.oracle.com/java/technologies/javase-downloads.html). + +## Signing process for AAB file + +> [!NOTE] +> You need to sign the AAB file even if you select the automatic signing process in the wrap wizard. + +To sign an AAB file, follow these steps: + +1. Open a terminal or command prompt. +1. Go to the directory where `jarsigner` is installed. +1. Run the commands shown in the image. + :::image type="content" source="media/code-sign-aab-file/jarsigner-code.png" alt-text="Screenshot of command prompt showing jarsigner usage for AAB file."::: + Replace the placeholders: + - `.jks` – Path to your .jks keystore file + - `.aab` – Output file name. + - `.aab` – Unsigned .aab file. + - `` – Bundle ID used while wrapping. + +## Convert AAB to APK file for manual debugging + +To convert an AAB file to an APK file, follow these steps: + +1. Open a terminal or command prompt. +2. Run the commands shown in the screenshot. + :::image type="content" source="media/code-sign-aab-file/java-code.png" alt-text="Screenshot of command prompt showing java code for AAB file."::: + Replace the placeholders: + - `.aab` – Path to the signed AAB file. + - `` – Output directory for the .apks file. + +- Sign the APK if you use the manual signing process. For more information, see [Code sign for Android - Power Apps](/power-apps/maker/common/wrap/code-sign-android#manual-sign-the-apk-package). + + +## See also + +- [Manual code sign for iOS](code-sign-ios.md) +- [Manual code sign for Android](code-sign-android.md) \ No newline at end of file diff --git a/powerapps-docs/maker/common/wrap/code-sign-android.md b/powerapps-docs/maker/common/wrap/code-sign-android.md index ad7a1d7bc1..bd62a0b04c 100644 --- a/powerapps-docs/maker/common/wrap/code-sign-android.md +++ b/powerapps-docs/maker/common/wrap/code-sign-android.md @@ -2,7 +2,7 @@ title: Code sign for Android description: Learn how to code sign for Android for Power Apps wrap. author: komala2019 -ms.topic: article +ms.topic: how-to ms.custom: canvas ms.reviewer: smurkute ms.date: 03/12/2025 @@ -14,136 +14,189 @@ contributors: - mduelae --- -# Code sign for Android +# Code sign for Android -In this article, you'll learn about how to manually code sign for Android (APK). You need to sign your app for Android if you selected Android as one of the [platforms](overview.md#app-platforms) while creating and building your [wrap project](wrap-how-to.md#create-native-mobile-apps-for-ios-and-android-using-the-wizard). +This article explains how to manually code sign your Android (APK) app for Power Apps wrap. Sign your app for Android if you select Android as one of the [platforms](overview.md#app-platforms) when you create and build your [wrap project](wrap-how-to.md#steps-to-create-a-custom-branded-native-app-using-the-wrap-wizard). > [!IMPORTANT] -> If you'd like to sign an AAB app for Google Play distribution instead, refer to [Sign your app](https://developer.android.com/studio/publish/app-signing). +> To sign an AAB app for Google Play distribution, see [Sign your app](https://developer.android.com/studio/publish/app-signing). -## Prepare your PC +## Before you begin -You need the following information to get started: +### Required software -- Set up [Android Studio](https://developer.android.com/studio) -- Set up [OpenSSL](https://www.openssl.org/) -- Set up [apksigner tool](https://developer.android.com/studio/command-line/apksigner) +Before you begin, install and set up: -## Prerequisites +- [Android Studio](https://developer.android.com/studio) +- [OpenSSL](https://slproweb.com/products/Win32OpenSSL.html) +- [apksigner tool](https://developer.android.com/studio/command-line/apksigner) (included with Android Studio) -- Application name for creating the hash key. -- Latest APK file for signing in process. +### Prerequisites -## Generate keys +You need: +- The application name to create the hash key. +- The latest APK file to sign in. > [!NOTE] -> Skip to [sign the APK package](#manual-sign-the-apk-package) if you've already generated keys and signature hash while creating the [app registration](wrap-how-to.md#step-3-register-app). +> Use the `.jks` extension for manual signing and the `.pfx` extension for automatic signing. -We'll use **keytool.exe** (available after installing Android Studio, from the folder location "Drive:\Program Files\Android\Android Studio\jre\bin\keytool.exe") to create a certificate to sign the application package. Keytool is used to manage a keystore (database) of cryptographic keys, X.509 certificate chains, and trusted certificates. +## Generate key and signature hash -To generate a key, open a command prompt and run the following command: +> [!NOTE] +> Skip to [Manual signing](#manual-signing-of-apk-package-not-for-kv-signing) if you already generated keys and the signature hash when you created the [app registration](wrap-how-to.md#4-register-your-app). -`keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000` +### Set up environment variables +If you don't set environment variables: -Parameters: +1. Download and install Android Studio and OpenSSL. +1. Add `keytool` and `openssl` to your PATH environment variable: + - Add `C:\Program Files\Android\Android Studio\jbr\bin` to your PATH. + - Add the path of `openssl.exe` (for example, `C:\Program Files\OpenSSL-Win64\bin`) to your PATH. -- **genkey** - command to generate a key. -- **alias** - indicates the alias to be used in the future to refer to the keystore entry containing the keys that are generated. -- **keyalg** - key algorithm name. -- **keystore** - the name of the keystore you're using. -- **keysize** - the size of each key to be generated. -- **validity** - validity of the key in number of days. -Example: +## **For manual signing process** +### Generate signature hash key and certificate +Run this command in the command prompt: +``` +keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000 +``` -- If preparing Key Vault, PATH_TO_KEYSTORE should have .pfx extension. +When prompted: +1. Enter a password for your keystore. +1. Enter your name, organization, location, and other required details. +1. Confirm the information. - `keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000` +Run this command to generate key and certificate: -- If preparing for manual signing, PATH_TO_KEYSTORE should have .jks extension. +``` +keytool -exportcert -alias powerappswrap -keystore powerappswrap.jks | openssl sha1 -binary | openssl base64 +``` - `keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000` +When prompted, enter the keystore password you created earlier. +:::image type="content" source="media/code-sign-android/codeSignIn3.png" alt-text="A screenshot with keytool command using the parameters in the example shown earlier." lightbox="media/code-sign-android/codeSignIn3.png"::: -:::image type="content" source="media/code-sign-android/keytool.png" alt-text="A screenshot with keytool command using the parameters in the above example."::: +**Parameters explained:** -## Generate signature hash +| Parameter | Description | +|-----------|-------------| +| **genkey** | Command to generate a key | +| **alias** | Alias for the keystore entry | +| **keyalg** | Key algorithm name | +| **keystore** | Name of the keystore | +| **keysize** | Size of each key | +| **validity** | Validity of the key in days | +| **exportcert** | Reads the certificate from the keystore | +| **openssl** | Generates SHA1 key for Android | -> [!NOTE] -> Skip to [sign the APK package](#manual-sign-the-apk-package) if you've already generated keys and signature hash while creating the [app registration](wrap-how-to.md#step-3-register-app). +## **For automatic key vault signing process** + +### Generate signature hash key and certificate + +Run this command in the command prompt: + +``` +keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000 +``` + +When prompted: +1. Enter a password for your keystore. +1. Enter your name, organization, location, and other required details. +1. Confirm the information. -After generating the key, the **exportcert** command is used in **keytool** to export the keystore certificate. +Run this command to generate key and certificate: -`keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64` +``` +keytool -exportcert -alias powerappswrap -keystore powerappswrap.pfx | openssl sha1 -binary | openssl base64 +``` -Parameters: +When prompted, enter the keystore password you created earlier. -- **exportcert** - reads from the keystore the certificate associated with alias and stores it in the cert_file file. When no file is specified, the certificate is output to stdout. -- **alias** - the alias used while generating keys [earlier](#generate-keys). -- **keystore** - the name of the keystore you're using. -- **openssl** - generates SHA1 key for Android. +:::image type="content" source="media/code-sign-android/codeSignIn3.png" alt-text="Screenshot of keytool command using the parameters in the example shown earlier." lightbox="media/code-sign-android/codeSignIn3.png"::: -Add the generated signature hash in the **Redirect URI** while [registering the app](wrap-how-to.md#step-3-register-app). +**Parameters explained:** -### Convert SHA1 hex to Base64-encoded signature hash manually +| Parameter | Description | +|-----------|-------------| +| **genkey** | Generates a key. | +| **alias** | Alias for the keystore entry. | +| **keyalg** | Key algorithm name. | +| **keystore** | Name of the keystore. | +| **keysize** | Size of each key. | +| **validity** | Validity of the key in days. | +| **exportcert** | Reads the certificate from the keystore | +| **openssl** | Generates SHA1 key for Android | -You might see the following error if your signature hash isn't correctly encoded or unacceptable in the Azure portal: -"The signature hash must be base64-encoded SHA1." +## Manual signing of APK package (Not for KV signing) -When this error appears, try to generate the signature hash using the following steps instead: +Follow these steps if you don't use automatic sign-in during wrap or if you try to upload an AAB file for Play Store. To avoid repeating this process, use automatic sign-in when possible. -1. Run `keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE` to list the certificate information in verbose mode. -1. Copy the **SHA1** value under the **Certificate fingerprints** section from the output. Ensure that you only copy the hexadecimal value. -
    For example: `EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F` -1. Use any available "Hexadecimal to Base64" converter to convert the copied certificate fingerprint hexadecimal value into Base64 encoded value. -
    Example of the Base64 encoded value: `8CPPeLaz9etdqQyaQubcqsy2Tw=` -1. Copy the generated Base64 encoded value as the **Signature hash** in the Azure portal while [registering the app](wrap-how-to.md#step-3-register-app). +### Locate the apksigner tool -## Manual sign the APK package +1. Open Android Studio. +1. Go to **Tools** > **SDK Manager** > **Android SDK Location** to find your SDK path. +1. In the SDK directory, navigate to: + - **build-tools** > **[version number]** > find **apksigner.bat** (Windows) or **apksigner** (Mac/Linux) + - Or: **build-tools** > **[version number]** > **lib** > find **apksigner.jar** -To sign the APK package, we'll use the [apksigner tool](https://developer.android.com/studio/command-line/apksigner). This tool allows you to sign APKs and ensure that the APK package signature are verified successfully on all Android platforms supported by the APKs. +:::image type="content" source="media/code-sign-android/codeSignIn2.png" alt-text="A screenshot with apksigner location information." lightbox="media/code-sign-android/codeSignIn2.png"::: -> [!Note] -> These steps are required if you haven't wrapped the app using automatic sign-in. To avoid repeating this step, we recommend using automatic sign-in. +### Sign the APK file -### Find your apksigner +Run this command to sign your APK: -1. Check the Android SDK path in the Android Studio. -1. Select **Tool** > **SDK Manager** > **Android SDK Location**. +``` +apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK +``` - If using iOS, check the apksigner file from the **buildTools Version** directory: +**Parameters explained:** - Go to **SDK** directory > **build-tools** > **buildToolsVersion** > **lib**, and check the **apksigner.jar** file +| Parameter | Description | +|-----------|-------------| +| **ks** | Path to your keystore file (for example, `C:\Users\name\Desktop\powerappswrap.jks`) | +| **ks-key-alias** | The alias you used when generating the key (for example, `powerappswrap`) | +| **PATH_TO_APK** | Full path to your APK file (for example, `C:\Users\name\Downloads\MyApp.apk`) | -### Use the apksigner file +When prompted, enter the keystore password. -Run the following command to use the **apksigner** and sign the package: +**Example:** +``` +apksigner.bat sign --ks C:\Users\name\Desktop\powerappswrap.jks --ks-key-alias powerappswrap C:\Users\name\Desktop\MyApp.apk +``` -`apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK` +### Verify the signature -Parameters: +After signing, verify the APK signature with: +``` +apksigner.bat verify --verbose PATH_TO_APK +``` -- **ks** - path to the keystore. -- **ks-key-alias** - key alias path to APK file. +A successful verification confirms your APK is properly signed and ready for distribution. -When prompted, enter the password. +For more information, see [Android Studio command line tools: apksigner](https://developer.android.com/studio/command-line/apksigner). -More information: [Android Studio command line tools: **apksigner**](https://developer.android.com/studio/command-line/apksigner) ## Distribute the app -You can host the package on a distribution service such as [App Center](wrap-how-to.md#create-an-app-center-location-for-your-mobile-app-manually-optional). To distribute using Microsoft Intune, see [Add an Android line-of-business app to Microsoft Intune](/mem/intune/apps/lob-apps-android). To learn about giving an app access to the Intune app protection service, see [Give your app access to the Intune app protection service](/mem/intune/developer/app-sdk-get-started#give-your-app-access-to-the-intune-app-protection-service-optional). +After signing your app, you can distribute it using several methods: +### Distribution options -### See also +- **Microsoft Intune**: To distribute using Microsoft Intune, see [Add an Android line-of-business app to Microsoft Intune](/mem/intune/apps/lob-apps-android). + +- **Intune app protection**: To give your app access to the Intune app protection service, see [Give your app access to the Intune app protection service](/mem/intune/developer/app-sdk-get-started#give-your-app-access-to-the-intune-app-protection-service-optional). + +- **Direct distribution**: You can also distribute the signed APK directly to users for manual installation. + + +## See also - [Wrap overview](overview.md) - [Manually Signing the APK - Xamarin](/xamarin/android/deploy-test/signing/manually-signing-the-apk) -- [Manual code sign on iOS](code-sign-ios.md) -- [Frequently asked questions for wrap](faq.yml) -- [Troubleshoot issues with the wrap feature in Power Apps](/troubleshoot/power-platform/power-apps/manage-apps/wrap-issues) - +- [Manual code sign on iOS](code-sign-ios.md) +- [Frequently asked questions for wrap](faq.yml) +- [Troubleshoot issues with the wrap feature in Power Apps](/troubleshoot/power-platform/power-apps/manage-apps/wrap-issues) diff --git a/powerapps-docs/maker/common/wrap/code-sign-ios.md b/powerapps-docs/maker/common/wrap/code-sign-ios.md index 0f88ff706b..7b0b03f4bb 100644 --- a/powerapps-docs/maker/common/wrap/code-sign-ios.md +++ b/powerapps-docs/maker/common/wrap/code-sign-ios.md @@ -2,7 +2,7 @@ title: Manual code sign for iOS description: Learn how to manually code sign for iOS for Power Apps wrap. author: komala2019 -ms.topic: article +ms.topic: how-to ms.custom: canvas ms.reviewer: smurkute ms.date: 03/22/2024 @@ -16,192 +16,209 @@ contributors: # Manual code sign for iOS -In this article, you'll learn about how to code sign for iOS. You need to sign your app for iOS if you selected iOS as one of the [platforms](overview.md#app-platforms) while creating and building your [wrap project](wrap-how-to.md#create-native-mobile-apps-for-ios-and-android-using-the-wizard). +This article explains how to code sign for iOS. You need to sign your app for iOS if you selected iOS as one of the [platforms](overview.md#app-platforms) while creating and building your [wrap project](wrap-how-to.md#steps-to-create-a-custom-branded-native-app-using-the-wrap-wizard). - > [!Important] - > Using Xcode to digitally sign your wrapped mobile apps for iOS is not supported. Follow the instructions below to sign your wrapped mobile app packages for iOS correctly. +> [!IMPORTANT] +> Using Xcode to digitally sign your wrapped mobile apps for iOS is not supported. Follow the instructions below to sign your wrapped mobile app packages for iOS correctly. -## Prerequisites -You need the following information to get started: +## Before you begin -- App ID -- Device UDIDs (only for testing and development purpose) +### Prerequisites -You also need a macOS device to code sign for iOS. +Before you start, make sure you have: -## Prepare your Mac +- App ID +- Device UDIDs (only for testing and development purposes) +- A macOS device to code sign for iOS -Set up your Mac with the following configuration. +### Set up your Mac 1. Install **Xcode**. More information: [Xcode](https://developer.apple.com/support/xcode/) -1. Install PowerShell for macOS. More information: [Installing PowerShell on macOS](/powershell/scripting/install/installing-powershell-on-macos) -1. Enroll in [Apple Developer Program](https://developer.apple.com/programs/) -1. To distribute your apps within the organization, you need to sign up for [Apple Enterprise Developer Program](https://developer.apple.com/programs/enterprise/). +2. Install PowerShell for macOS. More information: [Installing PowerShell on macOS](/powershell/scripting/install/installing-powershell-on-macos) +3. Enroll in the [Apple Developer Program](https://developer.apple.com/programs/) +4. For organization distribution, sign up for the [Apple Enterprise Developer Program](https://developer.apple.com/programs/enterprise/) + ## Create App ID -1. Sign in to your developer account by going to and selecting the **Account** tab. +1. Sign in to your developer account at and select the **Account** tab. :::image type="content" source="media/code-sign-ios/account-tab.png" alt-text="Account tab."::: -1. Go to [**Certificates, IDs & Profiles > Identifiers**](https://developer.apple.com/account/resources/identifiers/list). +2. Go to [**Certificates, IDs & Profiles > Identifiers**](https://developer.apple.com/account/resources/identifiers/list). -1. Select **+** to create a new identifier. +3. Select **+** to create a new identifier. :::image type="content" source="media/code-sign-ios/identifier.png" alt-text="Create new identifier."::: -1. Select **App IDs**, and then select **Continue**. +4. Select **App IDs**, then select **Continue**. :::image type="content" source="media/code-sign-ios/register-identifier.png" alt-text="Register a new identifier."::: -1. Select the type as **App**, and then select **Continue**. +5. Select the type as **App**, then select **Continue**. -1. Register an **App ID**: +6. Register an **App ID**: :::image type="content" source="media/code-sign-ios/register-appid.png" alt-text="Register an App ID."::: - 1. **Description** - Name of your app. - 1. **Bundle ID** - select **Explicit Bundle ID**. - 1. Enter the bundle ID that you used while [creating the wrap project](wrap-how-to.md#step-2-target-platform). More information: [Bundle ID](overview.md#bundle-id) - 1. Enable the following capabilities: + - **Description** - Name of your app. + - **Bundle ID** - Select **Explicit Bundle ID**. + - Enter the bundle ID that you used while [creating the wrap project](wrap-how-to.md#3-choose-target-platform). More information: [Bundle ID](overview.md#bundle-id) + - Enable these capabilities: - Associated Domains - iCloud - NFC Tag Reading - Push Notifications - 1. Select **Continue**. + - Select **Continue**. -1. Review, and register the App ID. +7. Review and register the App ID. -## Create a distribution certificate - -To create a distribution certificate, create a new certificate signing request first. +## Create distribution certificate ### Create Certificate Signing Request (CSR) 1. On your Mac, go to the **Applications** folder > **Utilities** > open **Keychain Access**. -1. Select **Keychain Access** > **Certificate Assistant** > **Request a Certificate from a Certificate Authority**. +2. Select **Keychain Access** > **Certificate Assistant** > **Request a Certificate from a Certificate Authority**. :::image type="content" source="media/code-sign-ios/cert-req.png" alt-text="Request a certificate from a CA."::: -1. Fill out the **Certificate Information** as explained below, and then select **Continue**. - 1. In the **User Email Address** field, enter your Apple ID email address to identify with this certificate. - 1. In the **Common Name** field, enter your name. - 1. In the **Request** group, select **Saved to disk**. - 1. Save the file to your Mac. +3. Fill out the **Certificate Information**: + - In the **User Email Address** field, enter your Apple ID email address. + - In the **Common Name** field, enter your name. + - In the **Request** group, select **Saved to disk**. + - Save the file to your Mac. + - Select **Continue**. -## Create the distribution certificate +### Upload and install certificate 1. Sign in to your developer account at by selecting the **Account** tab. -1. Go to [Certificates, IDs & Profiles > Certificates](https://developer.apple.com/account/resources/certificates/list). +2. Go to [**Certificates, IDs & Profiles > Certificates**](https://developer.apple.com/account/resources/certificates/list). + +3. Select **+** to create a new certificate. - 1. Select **+** to create a new certificate. - 1. Select **App Store and Ad Hoc** > **Continue**. +4. Select **App Store and Ad Hoc** > **Continue**. - ![Certificates, Identifiers & Profiles](media/code-sign-ios/new-cert.png) + ![Certificates, Identifiers & Profiles](media/code-sign-ios/new-cert.png) - > [!NOTE] - > If you have an Enterprise Developer Account then you'll have the option to create an Enterprise Distribution certificate. + > [!NOTE] + > If you have an Enterprise Developer Account, you'll have the option to create an Enterprise Distribution certificate. -1. Upload the Certificate Signing Request (CSR) file that was generated in the previous steps. +5. Upload the Certificate Signing Request (CSR) file that you generated in the previous steps. :::image type="content" source="media/code-sign-ios/upload-cert.png" alt-text="Upload the certificate."::: -1. Select **Continue**, and download the certificate to your Mac. +6. Select **Continue**, and download the certificate to your Mac. + +7. Double-click the downloaded .cer file to install it in Keychain Access. -1. Double-click the downloaded .cer file to install to Keychain Access. +8. Make note of the **Name** of the certificate (usually formatted as **iPhone Distribution: Name (Team ID)**). This value is the code signing identity needed for signing. -1. Take a note of the **Name** of the certificate (usually like **iPhone Distribution: Name (Team ID)**). This value is the code signing identity that needs to be provided for signing. -## Add all the devices where the IPA needs to be installed +## Register devices for testing - > [!NOTE] - > This step is only necessary if you're distributing to app to external users. It's not required if the app is only for internal users. +> [!NOTE] +> This step is only necessary if you're distributing the app to external users. It's not required if the app is only for internal users. 1. Sign in to your developer account at by selecting the **Account** tab. -1. Go to [Certificates, IDs & Profiles > Devices](https://developer.apple.com/account/resources/devices/list). +2. Go to [**Certificates, IDs & Profiles > Devices**](https://developer.apple.com/account/resources/devices/list). -1. Select **+** to register one or more devices. +3. Select **+** to register one or more devices. -1. Enter the **Device Name** and **Device ID (UDID)**. +4. Enter the **Device Name** and **Device ID (UDID)**. :::image type="content" source="media/code-sign-ios/register-device.png" alt-text="Register a device."::: -1. Select **Save**. +5. Select **Save**. > [!TIP] - > You can also register multiple devices together by uploading a list of UDID's. + > You can register multiple devices at once by uploading a list of UDIDs. + -## Create an iOS Provisioning Profile +## Create iOS Provisioning Profile -1. Sign in to your developer account by going to and selecting the **Account** tab. +1. Sign in to your developer account at and select the **Account** tab. -1. Go to [**Certificates, IDs & Profiles > Profiles**](https://developer.apple.com/account/resources/profiles/list). +2. Go to [**Certificates, IDs & Profiles > Profiles**](https://developer.apple.com/account/resources/profiles/list). -1. Select **+** to create a new profile. +3. Select **+** to create a new profile. -1. Select **Ad Hoc** > **Continue**. +4. Select **Ad Hoc** > **Continue**. :::image type="content" source="media/code-sign-ios/ad-hoc.png" alt-text="Ad Hoc."::: > [!NOTE] - > For production testing and development purpose, use **App Store** distribution method. + > For production use, select the **App Store** distribution method. -1. Select App ID that you created earlier, and then select **Continue**. +5. Select the App ID you created earlier, then select **Continue**. :::image type="content" source="media/code-sign-ios/app-id.png" alt-text="App ID."::: -1. Select the certificate that you created earlier, and then select **Continue**. +6. Select the certificate you created earlier, then select **Continue**. :::image type="content" source="media/code-sign-ios/select-cert.png" alt-text="Select certificate."::: -1. Select all the test devices where you want to install your app, and then select **Continue**. +7. Select all the test devices where you want to install your app, then select **Continue**. :::image type="content" source="media/code-sign-ios/add-devices.png" alt-text="Add devices."::: -1. Review and name the provisioning profile. Note down the name of the provisioning profile. +8. Name your provisioning profile and note down the name. -1. Generate and download the profile to your Mac. +9. Select **Generate** and download the profile to your Mac. -1. Double-click to open the downloaded file (\*.mobileprovision) to register it with Xcode. +10. Double-click the downloaded file (*.mobileprovision) to register it with Xcode. ## Sign the iOS Archive -1. Download and unzip the **iOS-Archive.zip** file from App Center. This creates a folder named after the [Bundle ID](wrap-how-to.md#step-2-target-platform). In the example below, the Bundle ID is **com.single.wrap**. +1. Download and unzip the **iOS-Archive.zip** file from your Azure blob storage. This creates a folder named after the [Bundle ID](wrap-how-to.md#3-choose-target-platform). In the example below, the Bundle ID is **com.single.wrap**. -1. If signing with enterprise certificate, open the file **Distribution-exportOptions.plist** with Xcode and change the value for the **method** field inside the file to **enterprise**. +2. For enterprise signing only: Open the file **Distribution-exportOptions.plist** with Xcode and change the value for the **method** field to **enterprise**. - > [!NOTE] - > Enterprise signing is not supported with Key Vault signing. + > [!NOTE] + > Enterprise signing is not supported with Key Vault signing. -1. Open terminal, and change directory to the unzipped folder. +3. Open Terminal and change directory to the unzipped folder. -1. Enter `pwsh` to start PowerShell in the terminal. +4. Enter `pwsh` to start PowerShell in the terminal. -1. Run `./SignAndGenerateIPA.ps1` with the values for the "CodeSigningIdentity" and "ProvisioningProfilePath" parameters. +5. Run the PowerShell script with your certificate and provisioning profile information: + ``` + ./SignAndGenerateIPA.ps1 -CodeSigningIdentity "YOUR_CODE_SIGNING_IDENTITY" -ProvisioningProfilePath "PATH_TO_PROVISIONING_PROFILE" + ``` - > [!NOTE] - > 'CodeSigningIdentity' is the name of the certificate that was created at the Apple developer website. To look up the vaule for 'CodeSigningIdentity', right-click on the **.mobileprovision** file (this is the provisioning profile), then select **More Info**. Scroll down and select **Preview**. Your 'CodeSigningIdentity' value is stored in the **Name** field under **Certificates** in the **.mobileprovision** file. + > [!NOTE] + > To find your **CodeSigningIdentity** value, right-click on the **.mobileprovision** file, select **More Info** > **Preview**. Look for the **Name** field under **Certificates**. - > [!TIP] - > 'ProvisioningProfilePath' is the path to the provisioning profile file that you have downloaded from the Apple developer website in the previous step [**Create an iOS Provisioning Profile**](code-sign-ios.md#create-an-ios-provisioning-profile). For example, it could be located at /Users/username/Downloads/MyProvisioningProfile.mobileprovision on your computer. + > [!TIP] + > The **ProvisioningProfilePath** is the path to the .mobileprovision file you downloaded. For example: `/Users/username/Downloads/MyProvisioningProfile.mobileprovision` + + :::image type="content" source="media/code-sign-ios/powershell.png" alt-text="Run PowerShell script."::: - :::image type="content" source="media/code-sign-ios/powershell.png" alt-text="Run PowerShell script."::: +6. When the script completes, a **.ipa** file is created (for example, **com.single.wrap.ipa**). -1. When the script finishes, a **.ipa** file is created such as **com.single.wrap.ipa**. - - If the command **./SignAndGenerateIPA.ps1** fails, then delete the unzipped folder and files because they might be corrupted. Unzip **iOS-Archive.zip** again before you try to sign again. + > [!IMPORTANT] + > If the script fails, delete the unzipped folder and files as they might be corrupted. Unzip **iOS-Archive.zip** again before retrying. :::image type="content" source="media/code-sign-ios/folder-structure.png" alt-text="IPA package."::: -1. Install the **.ipa** file in the registered devices using the **Finder** app. You can also host it on a distribution service such as [App Center](wrap-how-to.md#test-and-distribute-mobile-app-package). To distribute using Microsoft Intune, see [Add an iOS/iPadOS line-of-business app to Microsoft Intune](/mem/intune/apps/lob-apps-ios). To learn about giving an app access to the Intune app protection service, see [Give your app access to the Intune app protection service](/mem/intune/developer/app-sdk-get-started#give-your-app-access-to-the-intune-app-protection-service-optional). -### See also + +## Distribute the app + +Install the **.ipa** file on registered devices using the **Finder** app. + +For enterprise distribution with Microsoft Intune: +- [Add an iOS/iPadOS line-of-business app to Microsoft Intune](/mem/intune/apps/lob-apps-ios) +- [Give your app access to the Intune app protection service](/mem/intune/developer/app-sdk-get-started#give-your-app-access-to-the-intune-app-protection-service-optional) + + + +## See also - [Wrap overview](overview.md) - [Manual code sign on Android](code-sign-android.md) - [Frequently asked questions for wrap](faq.yml) -- [Troubleshoot issues with the wrap feature in Power Apps](/troubleshoot/power-platform/power-apps/manage-apps/wrap-issues) - +- [Troubleshoot issues with the wrap feature in Power Apps](/troubleshoot/power-platform/power-apps/manage-apps/wrap-issues) diff --git a/powerapps-docs/maker/common/wrap/create-key-vault-for-code-signing.md b/powerapps-docs/maker/common/wrap/create-key-vault-for-code-signing.md index 031e0f4d5f..f59ee3f802 100644 --- a/powerapps-docs/maker/common/wrap/create-key-vault-for-code-signing.md +++ b/powerapps-docs/maker/common/wrap/create-key-vault-for-code-signing.md @@ -2,10 +2,10 @@ title: Key vault for code signing description: Learn how to configure Azure Key Vault for automated code signing of native mobile apps in wrap wizard. author: komala2019 -ms.topic: article +ms.topic: how-to ms.custom: canvas ms.reviewer: smurkute -ms.date: 5/9/2024 +ms.date: 07/09/2025 ms.subservice: canvas-maker ms.author: koagarwa search.audienceType: @@ -13,100 +13,99 @@ search.audienceType: contributors: - mduelae --- -# Azure key vault for wrap using default subscription -In order to automatically, sign your Android or iOS mobile app package during access key and [Step 2: Target platform](wrap-how-to.md#step-2-target-platform) of the wrap wizard, it's necessary to have Azure Key Vault configured. Azure Key Vault is a cloud-based service designed to provide a secure storage solution for secrets, which can include certificates, passwords, keys, and other sensitive information. To learn more about Azure Key Vault, see [Introduction to Azure Key Vault](/azure/key-vault/general/overview). +# Azure key vault for wrap +Azure key vault is a cloud-based service that securely stores secrets like certificates, passwords, keys, and other sensitive information. To learn more, see [Introduction to Azure key vault](/azure/key-vault/general/overview). Set up Azure key vault to create Azure blob storage and use the automatic signing process in wrap. -In this article, you'll learn how to use an existing Azure Key Vault or create a new [Azure portal](https://portal.azure.com). +This article explains how to use an existing Azure Key Vault or create a new one in the [Azure portal](https://portal.azure.com). ## Prerequisites - -- Microsoft Entra subscription to [create key vault](/azure/key-vault/general/quick-create-portal). -- Your subscription ID needs to be the default one. More information: [Get subscription information](/cli/azure/manage-azure-subscriptions-azure-cli?tabs=bash#get-subscription-information) + +- Microsoft Entra subscription to [create a key vault](/azure/key-vault/general/quick-create-portal). - Admin access for your tenant. -- You need to have a [Apple account](https://developer.apple.com) enrolled in Apple developer Program or Apple enterprise developer program. -- Create a [distribution certificate](code-sign-ios.md#create-the-distribution-certificate) or [ad-hoc Provisioning Profile](code-sign-ios.md#create-an-ios-provisioning-profile) or enterprise provisioning profile. +- An [Apple account](https://developer.apple.com) enrolled in the Apple Developer Program or Apple Enterprise Developer Program. +- Create a [distribution certificate](code-sign-ios.md#create-distribution-certificate), [ad-hoc provisioning profile](code-sign-ios.md#create-ios-provisioning-profile), or enterprise provisioning profile. - -## Configure key vault URI +## Configure key vault > [!IMPORTANT] -> Before configuring the Key Vault URI, you need to create an Azure Key Vault. Follow the steps listed in [Create a vault](/azure/key-vault/general/quick-create-portal#create-a-vault) to proceed further. - -1. To create a new Azure service principal for the 1P Microsoft Entra application **4e1f8dc5-5a42-45ce-a096-700fa485ba20 (WrapKeyVaultAccessApp)**, sign in to your tenant as an admin. Then, run the following script in PowerShell: - - `Connect-AzureAD -TenantId `
    - `New-AzureADServicePrincipal -AppId 4e1f8dc5-5a42-45ce-a096-700fa485ba20 -DisplayName "Wrap KeyVault Access App"` - -> [!NOTE] -> On this page, 'Wrap KeyVault Access App' is used as a proxy for the application display name, and for the client, it refers to their app display name. - -2. Follow these steps to ensure that the Service Principal representing your app, such as Wrap Key Vault Access App, has the necessary access permissions, add a **Reader** role assignment to it in the **Access Control (IAM)** of your default subscription. This should also be present in the IAM of both the subscription and the Key Vault. - - 1. On the left select **Access control (IAM)** tab and then select **Add** > **Add role assignment**. - - 2. Select the **Members** tab and then select **Job function roles**. Make sure the **Reader** role is selected. - - > [!div class="mx-imgBorder"] - > ![Select the Members tab.](media/how-to-v2/Add_members.png "Select the Members tab.") - - 4. On **Members** tab, select **Select member** and in the text box on the right enter **Wrap Key Vault Access App** and search for it. - - > [!div class="mx-imgBorder"] - > ![Search for Wrap Key Vault Access App.](media/how-to-v2/Add_role_assignment.png "Search for Wrap Key Vault Access App.") - - 5. Select **Wrap Key Vault Access App** and then select **Review + assign** to assign the **Reader** role. - - > [!div class="mx-imgBorder"] - > ![Assign Reader role to Wrap KeyVault Access App.](media/how-to-v2/Add_role_for_wrap_signing.png "Assign Reader role to Wrap KeyVault Access App.") - - -3. Create or access existing Key Vault. Make sure this Key Vault is located in the default subscription for your tenant. More information: [Create a key vault using the Azure portal](/azure/key-vault/general/quick-create-portal). - -4. Add access policies for the Key Vault. For **Secret permissions** and **Certificate permissions** make sure that **Get** and **List** permissions are selected. - - > [!div class="mx-imgBorder"] - > ![Access Policies required: Get, List for secret and certificates permissions.](media/how-to-v2/AzureKV-Access-Policy.png "Access Policies required: Get, List for secret and certificates permissions") - -5. Choose one of the following options based on your device: - - - **Android** - - Generate the .pfx file and then proceed to upload it to the certificate section of the Key Vault. More information: [Generate keys](code-sign-android.md#generate-keys) - - :::image type="content" source="media/wrap-canvas-app/wrap-1.png" alt-text="Create a cert for Android."::: - - > [!NOTE] - > Ensure that the certificate name is included in the tag step and that the password matches the one entered for the store pass parameter used in creating the .pfx file during step 2. - - - **iOS** - 1. Select the .cer into Keychain Access app to install it. For more information, see [Create the distribution certificate](code-sign-ios.md#create-the-distribution-certificate). - 2. Right-click your certificate file to export the file as a .p12 file, select **Export**, and then select the file format .p12. - 3. The iOS Certificate extension (.p12) should be renamed to **.pfx** as it's the accepted format by Key Vault - - > [!NOTE] - > When you upload to the Key Vault, you'll need to provide the password that you set in previous step for the .p12 file. - - 4. [Create the provisioning profile](code-sign-ios.md#create-an-ios-provisioning-profile) and run this command to encode it to base64: - - Mac: `base64 -i example.mobileprovision` - - Windows: `certutil -encode data.txt tmp.b64` - - 5. Upload the `base64` string obtained from the previous step to the Key Vault secret. Next, upload the .pfx file to Key Vault Certificate. - - - :::image type="content" source="media/wrap-canvas-app/wrap-2.png" alt-text="Create a cert for iOS."::: - -6. Once iOS or Android certificates are created and uploaded, add three tags with the name as the bundle ID, and the value corresponding to the name of the uploaded certificate(s). If you have already created a [bundle ID in the wrap wizard](wrap-how-to.md#step-2-target-platform), use the same one here. - - :::image type="content" source="media/wrap-canvas-app/wrap-3.png" alt-text="Add tags."::: +> Before configuring the Key Vault, you need to create an Azure Key Vault. Follow the steps in [Create a vault](/azure/key-vault/general/quick-create-portal#create-a-vault). + +1. **Create a service principal for Wrap KeyVault Access App** + + Sign in to your tenant as an admin and run the following PowerShell commands: + + ``` + Connect-AzureAD -TenantId + New-AzureADServicePrincipal -AppId 4e1f8dc5-5a42-45ce-a096-700fa485ba20 -DisplayName "Wrap KeyVault Access App" + ``` + +2. **Assign Reader role to the service principal** + + Add a **Reader** role assignment to the Wrap Key Vault Access App in the **Access Control (IAM)** of your subscription and the Key Vault. + + 1. In the Azure portal, select **Access control (IAM)** and then **Add** > **Add role assignment**. + 2. Go to the **Members** tab, select **Job function roles**, and ensure **Reader** is selected. + + > [!div class="mx-imgBorder"] + > ![Select the Members tab.](media/how-to-v2/Add_members.png "Select the Members tab.") + + 3. On the **Members** tab, select **Select member** and search for **Wrap Key Vault Access App**. + + > [!div class="mx-imgBorder"] + > ![Search for Wrap Key Vault Access App.](media/how-to-v2/Add_role_assignment.png "Search for Wrap Key Vault Access App.") + + 4. Select **Wrap Key Vault Access App** and then **Review + assign** to assign the Reader role. + + > [!div class="mx-imgBorder"] + > ![Assign Reader role to Wrap KeyVault Access App.](media/how-to-v2/Add_role_for_wrap_signing.png "Assign Reader role to Wrap KeyVault Access App.") + +3. Create or access an existing Key Vault. More information: [Create a key vault using the Azure portal](/azure/key-vault/general/quick-create-portal). + +4. **Add access policies for the Key Vault** + + For **Secret permissions** and **Certificate permissions**, select **Get** and **List**. + + > [!div class="mx-imgBorder"] + > ![Access Policies required: Get, List for secret and certificates permissions.](media/how-to-v2/AzureKV-Access-Policy.png "Access Policies required: Get, List for secret and certificates permissions") + +5. **Upload certificates and secrets** + + Choose your platform and follow the steps below: + + - **Android** + + Generate the .pfx file and upload it to the certificate section of the Key Vault. More information: [Generate keys](code-sign-android.md#generate-key-and-signature-hash) + + :::image type="content" source="media/wrap-canvas-app/wrap-1.png" alt-text="Create a cert for Android."::: + + > [!NOTE] + > Ensure the certificate name is included in the tag step and the password matches the store pass parameter used when creating the .pfx file. + + - **iOS** + + 1. Install the .cer file using Keychain Access. See [Create the distribution certificate](code-sign-ios.md#create-distribution-certificate). + 2. Export the certificate as a .p12 file, then rename the extension to **.pfx** (required by Key Vault). + 3. When uploading to Key Vault, provide the password set for the .p12 file. + 4. [Create the provisioning profile](code-sign-ios.md#create-ios-provisioning-profile) and encode it to base64: + - Mac: `base64 -i example.mobileprovision` + - Windows: `certutil -encode data.txt tmp.b64` + 5. Upload the base64 string as a Key Vault secret, then upload the .pfx file as a Key Vault certificate. + + :::image type="content" source="media/wrap-canvas-app/wrap-2.png" alt-text="Create a cert for iOS."::: + +6. **Add tags for certificates** + + After uploading iOS or Android certificates, add three tags with the name as the bundle ID and the value as the uploaded certificate name(s). Use the same bundle ID as in the [wrap wizard](wrap-how-to.md#3-choose-target-platform). + + :::image type="content" source="media/wrap-canvas-app/wrap-3.png" alt-text="Add tags."::: A video for configuring key vault is available at [How to configure access to key vault](https://www.youtube.com/watch?v=QV5xAUoJDcA&t=7s) - -## Troubleshoot -For Troubleshooting issues, see [Troubleshoot issues with the wrap feature in Power Apps](/troubleshoot/power-platform/power-apps/manage-apps-and-solutions/wrap-issues). +## Troubleshoot +For troubleshooting, see [Troubleshoot issues with the wrap feature in Power Apps](/troubleshoot/power-platform/power-apps/manage-apps-and-solutions/wrap-issues). ### See also @@ -115,5 +114,4 @@ For Troubleshooting issues, see [Troubleshoot issues with the wrap feature in Po - [Code sign for Android](code-sign-android.md) - [Code sign for Google Play Store](https://developer.android.com/studio/publish/app-signing) - [Frequently asked questions for wrap](faq.yml) -- [Troubleshoot issues with the wrap feature in Power Apps](/troubleshoot/power-platform/power-apps/manage-apps/wrap-issues) - +- [Troubleshoot issues with the wrap feature in Power Apps](/troubleshoot/power-platform/power-apps/manage-apps/wrap-issues) diff --git a/powerapps-docs/maker/common/wrap/faq.yml b/powerapps-docs/maker/common/wrap/faq.yml index 38c8be481f..bf0e18f8fa 100644 --- a/powerapps-docs/maker/common/wrap/faq.yml +++ b/powerapps-docs/maker/common/wrap/faq.yml @@ -16,21 +16,21 @@ summary: | sections: - name: General - questions: + questions: - question: | - Can single tenant customers use wrap with Power Apps? + Can single tenant customers use wrap with Power Apps? answer: | - Yes. Both single tenant and multitenant customers can use wrap. However, it's important to assign a correct account type for your app on Azure portal if you're creating a new app registration manually. See [App registration](wrap-how-to.md#register-your-app-on-azure-portal-manually-optional) for directions on how to select a correct account type to prepare your app for wrap. + Yes. Both single tenant and multitenant customers can use wrap. When registering your app manually in Azure, ensure you select the correct account type. See [App registration](wrap-how-to.md#register-your-app-on-azure-portal-manually-optional) for directions. - question: | Does the wrap feature in Power Apps support Customer-Managed Keys (CMK) or Lockbox capabilities? answer: | - No. The wrap feature in Power Apps doesn't support Customer-Managed Keys (CMK) or Lockbox capabilities. Wrap for Power Apps uses Azure DevOps build pipelines to build mobile apps. Customer assets might be exposed in the build pipeline to Microsoft service operators. + No. The wrap feature in Power Apps doesn't support Customer-Managed Keys (CMK) or Lockbox. Wrap uses Azure DevOps build pipelines, and customer assets might be exposed to Microsoft service operators during the build process. - question: | Can I create mobile apps with Power Apps? answer: | - Yes. More information: [Creating mobile apps with Power Apps](overview.md) + Yes. See [Creating mobile apps with Power Apps](overview.md). - question: | If I create a mobile app with Power Apps, does Microsoft release it for me? @@ -40,8 +40,8 @@ sections: - question: | How do I digitally sign my mobile app? answer: | - You can automatically sign your mobile app package in **Step 2: Target Platforms** step in wrap wizard. You'll need to [create and prepare your Azure Key Vault](create-key-vault-for-code-signing.md) to take advantage of automatic mobile app signing feature in wrap wizard. For information on how to code sign your app manually, see instructions here: [Android](code-sign-android.md), [iOS](code-sign-ios.md) and [Google Play Store](https://developer.android.com/studio/publish/app-signing). - + You can automatically sign your mobile app package in Step 2 of the wrap wizard if you have set up [Azure Key Vault](create-key-vault-for-code-signing.md). For manual signing, see [Android](code-sign-android.md), [iOS](code-sign-ios.md), and [Google Play Store](https://developer.android.com/studio/publish/app-signing). + - question: | Can I use Xcode to digitally sign my mobile apps for iOS? answer: | @@ -50,47 +50,47 @@ sections: - question: | How do I distribute my mobile app? answer: | - It depends on your business scenario. You can use [Microsoft Intune](/mem/intune/fundamentals/what-is-intune), [Microsoft App Center](https://visualstudio.microsoft.com/app-center/), [Google Play](https://support.google.com/googleplay/work/answer/6138458) or [Apple Business Manager](https://developer.apple.com/custom-apps/). + You can use [Microsoft Intune](/mem/intune/fundamentals/what-is-intune), [Google Play](https://support.google.com/googleplay/work/answer/6138458), or [Apple Business Manager](https://developer.apple.com/custom-apps/). - question: | How do I configure my mobile app for distribution through Microsoft Intune? answer: | - Wrap wizard automatically configures your app for distribution with [Microsoft Intune](/mem/intune/fundamentals/what-is-intune). To troubleshoot, you can manually grant all the canvas app(s) that you intend to wrap *Microsoft Mobile Application Management* API permission manually. More information: [Configure the API permissions for your app manually](wrap-how-to.md#configure-the-api-permissions-for-your-app-manually-optional). + Wrap wizard automatically configures your app for distribution with [Microsoft Intune](/mem/intune/fundamentals/what-is-intune). To troubleshoot, you can manually grant all the canvas app(s) that you intend to wrap *Microsoft Mobile Application Management* API permission manually. More information: [Configure the API permissions for your app manually](wrap-how-to.md#configure-api-permissions-manually-optional). - question: | Do I need to rewrap and redistribute my mobile app frequently? answer: | - Power Apps Mobile is [updated periodically](/power-platform/released-versions/powerapps#all-power-apps-studio-and-power-apps-mobile-versions). Hence, to ensure compatibility with the latest Power Apps release versions, benefit from bug-fixes and new platform features, we recommend that you rewrap and redistribute your mobile app to your end users at least on a monthly basis. + Power Apps Mobile is [updated periodically](/power-platform/released-versions/powerapps#all-power-apps-studio-and-power-apps-mobile-versions). To ensure compatibility and benefit from bug fixes and new features, we recommend that you rewrap and redistribute your mobile app at least monthly. - question: | Do I need to rewrap and redistribute my mobile app after making changes to the canvas app(s) included in the package? answer: | - No. Published changes to the included canvas app(s) are downloaded automatically by existing, released versions of your mobile app. However, we recommend that you rewrap and redistribute your mobile app on a [monthly basis](faq.yml#do-i-need-to-rewrap-and-redistribute-my-mobile-app-frequently-) to benefit from platform bug fixes, updates and new features. - + No. Published changes to the included canvas app(s) are downloaded automatically by existing, released versions of your mobile app. However, we recommend that you rewrap and redistribute your mobile app on a [monthly basis](faq.yml#do-i-need-to-rewrap-and-redistribute-my-mobile-app-frequently-) to benefit from platform bug fixes, updates, and new features. + - question: | - How do I update the icons and colors in my mobile app? + How do I update the icons and colors in my mobile app? answer: | - You can update icons and colors in your mobile app by rewraping your apps with new icons and colors and redistributing the updated mobile app package. - + Update icons and colors by rewrapping your apps with new assets and redistributing the updated mobile app package. + - question: | - How do I add or remove canvas apps in my wrapped mobile app? + How do I add or remove canvas apps in my wrapped mobile app? answer: | - You can add or remove canvas apps by rewraping your mobile app package with a new set of included apps and redistributing your mobile package. - + Add or remove canvas apps by rewrapping your mobile app package with the desired set of apps and redistributing your mobile package. + - question: | What are Primary and Secondary apps in the context of wrap? answer: | - Primary app provides the main experience of your mobile app. Secondary apps are bundled for performance reasons and must be linked from your primary app. See [wrap multiple canvas apps together](overview.md#wrap-multiple-canvas-apps-together). + The Primary app provides the main experience of your mobile app. Secondary apps are bundled for performance reasons and must be linked from your primary app. See [wrap multiple canvas apps together](overview.md#wrap-multiple-canvas-apps-together). - question: | What are the advantages of including Secondary apps in the bundle, if I can still Launch() them without doing so? answer: | - Including Secondary apps in the bundle provides a better Launch time performance when opening them for the first time. However, it's entirely optional to bundle Secondary apps with the Primary app. If you have many Secondary apps, you may choose to not bundle them to reduce the total size of the app bundle. + Including Secondary apps in the bundle provides better launch performance when opening them for the first time. However, it's optional. If you have many Secondary apps, you may choose not to bundle them to reduce the total app size. - question: | Can I add apps that use Power BI data to wrap? answer: | - Yes. Wrap wizard automatically configures your mobile app to be able to use Power BI. To troubleshoot, you can manually grant *Power BI* API permission to all your apps that use Power BI data. More information: [Configure the API permissions for your app manually](wrap-how-to.md#configure-the-api-permissions-for-your-app-manually-optional) + Yes. Wrap wizard automatically configures your mobile app to be able to use Power BI. To troubleshoot, you can manually grant *Power BI* API permission to all your apps that use Power BI data. More information: [Configure the API permissions for your app manually](wrap-how-to.md#configure-api-permissions-manually-optional). - question: | Can I deep link into a wrapped mobile app? @@ -98,54 +98,56 @@ sections: Yes. You can use ```ms-mobile-apps:///providers/Microsoft.PowerApps/apps/?tenantId=``` schema to deep link into your wrapped mobile apps. Refer to [Using deep links with wrapped mobile apps](wrap-deep-links.md) for more information. - question: | - Why do I see this error message when I try to open my wrapped native app on a mobile device: You can't get there from here error message + Why do I see this error message when I try to open my wrapped native app on a mobile device: You can't get there from here error message answer: | - Your organization might have **Require Approved Client App** conditional access policy that restricts access to mobile apps. To fix this issue, see, [Edit your conditional access policy](/azure/active-directory/conditional-access/migrate-approved-client-app#edit-an-existing-conditional-access-policy). - + Your organization might have a **Require Approved Client App** conditional access policy that restricts access to mobile apps. To fix this issue, see [Edit your conditional access policy](/azure/active-directory/conditional-access/migrate-approved-client-app#edit-an-existing-conditional-access-policy). + - question: | Can I create B2C mobile apps with Power Apps? answer: | - No. Power Apps is a platform for creating business applications and uses Microsoft Entra authentication. The wrap feature wraps existing canvas apps for the same set of end users. + No. Power Apps is a platform for business applications and uses Microsoft Entra authentication. The wrap feature wraps existing canvas apps for the same set of end users. - question: | - Do we need a premium license to package the app? + Do I need a premium license to package the app? answer: | No, you don't need a premium license for wrap. However, if your APK uses certain connectors, you will need to pay according to the requirements of those connectors. + - question: | Can I delete wrap projects? answer: | No, wrap projects can't be deleted but you can delete the project APK files from your storage location. - question: | - How can we ensure that customers outside the home tenant can't access the app even if we enable multitenant access during registration? + How can I ensure that customers outside the home tenant can't access the app even if I enable multitenant access during registration? answer: | - Users outside the home tenant can't access Wrap projects unless both the Azure admin and the maker explicitly share the app with the user. - The app ensures proper data separation across organizations by embedding the tenant identifier in the authentication token. - This mechanism allows the app to verify the user's tenant and grant access only to data relevant to that tenant. + Users outside the home tenant can't access wrap projects unless both the Azure admin and the maker explicitly share the app with the user. The app ensures proper data separation across organizations by embedding the tenant identifier in the authentication token. - question: | Can we allow users from outside home tenant to access wrap projects? answer: | - The Wrap App supports multi-tenancy. To enable this feature, the Azure admin must take additional steps: + The Wrap App supports multi-tenancy. To enable this feature, the Azure admin must: 1. Add users from outside the home tenant as guests in Azure. - 2. Include these guests in the Azure Conditional Access process. Additionally, the maker must share the app with these guest IDs within Power Apps. + 2. Include these guests in the Azure Conditional Access process. + 3. The maker must share the app with these guest IDs within Power Apps. - - question: | + - question: | Why am I not able to Sign into my wrapped Application? answer: | 1. Verify if the user has access to the PowerApps application. More information: [Share a canvas app with your organization](../../canvas-apps/share-app.md) 2. If access is confirmed, check the app's Azure conditional policies. Admin access is required to review these policies. More information: [View applied Conditional Access details in the Microsoft Entra activity logs](/entra/identity/monitoring-health/how-to-view-applied-conditional-access-policies#how-to-view-conditional-access-policies) 3. To troubleshoot sign-in errors, copy the correlation ID from the mobile screen where the sign-in is failing and refer [How to troubleshoot Microsoft Entra sign-in errors](/entra/identity/monitoring-health/howto-troubleshoot-sign-in-errors) to understand the error and the failing policies. 4. Check [Microsoft Entra authentication and authorization error codes](/entra/identity-platform/reference-error-codes). - + 5. One common error code is 50194 (tag- 9n555). During the app registration stage, the supported account type isn't configured for multi-tenant. Configure it to [support multi-tenant](/entra/identity-platform/howto-convert-app-to-be-multi-tenant#update-registration-to-be-multitenant). + - question: | When do you need to re-wrap? answer: | + - If you're an existing customer who has already created and successfully distributed a wrapped app, you don't need to go through the wrapping process again. To ensure users receive the latest published changes, follow the steps mentioned in [Power Apps for Makers: Get App Versions](/connectors/powerappsforappmakers/#get-app-versions). - - For new customers, we recommend re-wrapping if you have completed all the registration steps mentioned in [Use the wrap wizard to build your mobile app: Register app](wrap-how-to.md#step-3-register-app) and have either manually or automatically completed the sign-in process mentioned in [Use the wrap wizard to build your mobile app: Sign your mobile app package manually](wrap-how-to.md#sign-your-mobile-app-package-manually-optional). + - For new customers, we recommend re-wrapping if you have completed all the registration steps mentioned in [Use the wrap wizard to build your mobile app: Register app](wrap-how-to.md#4-register-your-app) and have either manually or automatically completed the sign-in process mentioned in [Use the wrap wizard to build your mobile app: Sign your mobile app package manually](wrap-how-to.md#sign-your-mobile-app-package-manually-optional). - To ensure platform changes benefit end users, we recommend re-wrapping monthly and distributing the updated app to users. - - question: | + - question: | How to find your Azure admin? answer: | - Go to the Microsoft Entra roles and administration portal. More information: [Microsoft Entra admin center](https://entra.microsoft.com/#home) @@ -153,9 +155,32 @@ sections: - Select the **Active assignments** tab. - Review the list of owners for the active assignments. + - question: | + Why is Azure key vault a mandatory step? + answer: | + The Azure key vault securely stores the access key needed for Azure blob storage. - question: | - See also + Do you need to pay for Azure key vault & Azure blob storage? + answer: | + Yes. See [Key Vault pricing](https://azure.microsoft.com/en-us/pricing/details/key-vault/#pricing). + + - question: | + What should I do if I don't have access to the resource group while creating the key vault? answer: | - [Troubleshoot issues with the wrap feature in Power Apps](/troubleshoot/power-platform/power-apps/manage-apps/wrap-issues) + Contact your Azure tenant admin to create a key vault for you or request permission. + - question: | + How can Entra B2B guest users access the wrapped apps? + answer: | + 1. Add users from outside the home tenant as guests in Azure. See [Quickstart: Add a guest user and send an invitation](/entra/external-id/b2b-quickstart-add-guest-users-portal#invite-an-external-guest-user). + 2. Include these guests in the Azure Conditional Access process. Share the app with these guest IDs in Power Apps. See [Share a canvas app with your organization](../../canvas-apps/share-app.md). + 3. Replace the app ID and the user account in the following link: `ms-mobile-apps:///providers/Microsoft.PowerApps/apps/?tenantId=` + 4. Share the link with your client. + 5. Install the APK on Android and the IPA on iOS. + 6. Open the weblink and enter the external IDs to sign in. + + - question: | + See also + answer: | + [Troubleshoot issues with the wrap feature in Power Apps](/troubleshoot/power-platform/power-apps/manage-apps/wrap-issues) diff --git a/powerapps-docs/maker/common/wrap/limitations.md b/powerapps-docs/maker/common/wrap/limitations.md index d920af2b47..2d3ff2c7c6 100644 --- a/powerapps-docs/maker/common/wrap/limitations.md +++ b/powerapps-docs/maker/common/wrap/limitations.md @@ -14,43 +14,33 @@ search.audienceType: # Benefits and limitations of Wrap -Wrap offers several benefits, effectively addressing challenges like increasing adoption rates, enhancing branding flexibility, and supporting custom distribution channels. +Wrap gives app makers benefits like improved adoption, better branding, and flexible distribution options. But it also has some limitations you need to consider. -## Benefits of Wrap +## Benefits of wrap -1. **Improved app adoption**: App makers can distribute their applications more effectively, making it easier for users to find and use the app directly by searching for its name in the App Store or Play Store and opening it. This streamlined process eliminates the need for additional steps, enhancing user experience and adoption rates. - -1. **Enhanced branding flexibility**: App makers have greater freedom to customize their app's branding, which streamlines both the distribution process and user engagement. - -1. **Custom distribution channels**: App makers now have the flexibility to distribute their apps through their own preferred channels, providing more control and potentially reaching their target audience more effectively, rather than relying solely on standard platforms like the Play Store or App Store. - -1. **Power Apps Mobile for Frontline Workers (FLWs)**: Power Apps Mobile is designed primarily for frontline workers (FLWs). To enable FLWs outside of the organization to log in, the wrap APK supports guest account logins. Follow the steps mentioned in [Frequently asked questions for wrap: Why am I not able to sign into my wrapped application?](faq.yml) to log in. - -1. **Access without MFA or Intune**: The Power Apps mobile app can be accessed without multifactor authentication (MFA) or installing Microsoft Intune if the organization's conditional policies allow it. - -1. **Offline Features**: The wrap app supports offline features. +1. **Improved app adoption**: Users easily find and use your app by searching for its name in the App Store or Play Store. This direct access streamlines the experience and increases adoption rates. +1. **Enhanced branding flexibility**: Makers customize their app's branding, improving both distribution and user engagement. +1. **Custom distribution channels**: Distribute your apps through preferred channels, so you have more control and can reach your target audience more effectively, instead of relying only on standard platforms. +1. **Power Apps mobile for frontline workers (FLWs)**: Power Apps Mobile is for frontline workers. The wrap APK lets guest accounts sign in, so frontline workers outside your organization can use it. For details, see [Frequently asked questions for wrap: Why am I not able to sign into my wrapped application?](faq.yml). +1. **Access without MFA or Intune**: You can use the Power Apps mobile app without multifactor authentication (MFA) or Microsoft Intune if your organization's conditional access policies allow it. +1. **Offline features**: Wrap apps support offline capabilities. ## Limitations of Wrap -1. **Logout button**: The sign out button option for the user is missing. +1. **Logout button**: There's no visible sign out button. > [!NOTE] - > Users can long press the indented application for which they want to sign out. To make this feature discoverable, we recommend that makers provide a notification to their users. - -1. **Push notifications**: Currently, the app does not support push notifications. - -1. **Navigation**: Wrap doesn't support navigating from a specific screen of one app to a specific screen of another app. When users attempt to navigate, only the home screen of the other app is opened. For example, consider a primary app with screens A1, A2, and A3, and a secondary app with screens B1, B2, and B3. Currently, users can only navigate from any screen in App A to the home screen of App B. Direct navigation between individual screens of App A and App B isn't supported. - -1. **APK size**: If your distribution method is via the Google Play Store, the APK file size is limited to 100 MB. We recommend creating an AAB file instead of an APK file during the wrap process, as AAB files support sizes up to 150 MB for the Play Store. - -1. **Android hardware back button**: The Android hardware back button doesn't sync coherently with the application back button. - -1. **Feedback**: Currently, users can't provide feedback inside wrap. - -1. **Surveys**: Users don't receive surveys for the wrap. - -1. **Sovereign cloud**: Wrap is currently not supported in the sovereign cloud. + > Users can select and hold the intended application to sign out. Makers should let users know about this method. +1. **Push notifications**: Push notifications aren't supported. +1. **Navigation between apps**: You can't go directly from a specific screen in one app to a specific screen in another app. Only the home screen of the other app opens. +1. **APK size limit**: APK files distributed through the Google Play Store are limited to 100 MB. To support larger apps (up to 150 MB), create an AAB file during the wrap process. +1. **Android hardware back button**: The Android hardware back button doesn't always sync with the application back button. +1. **Feedback**: You can't provide feedback in the wrap app. +1. **Surveys**: Surveys aren't available for wrap users. +1. **Sovereign cloud**: Wrap doesn't support sovereign cloud environments. +1. **Full image view (offline)**: Offline-enabled wrap apps only show image thumbnails, not full image views. +1. **VPN**: The wrap wizard doesn't support creating a wrapped app while you're connected to a VPN. Updates are in progress. ### See also - [Troubleshoot issues with the wrap feature in Power Apps](/troubleshoot/power-platform/power-apps/manage-apps-and-solutions/wrap-issues) -- [Frequently Asked Questions](faq.yml) \ No newline at end of file +- [Frequently Asked Questions](faq.yml) diff --git a/powerapps-docs/maker/common/wrap/media/code-sign-aab-file/jarsigner-code.png b/powerapps-docs/maker/common/wrap/media/code-sign-aab-file/jarsigner-code.png new file mode 100644 index 0000000000..405fbac4c2 Binary files /dev/null and b/powerapps-docs/maker/common/wrap/media/code-sign-aab-file/jarsigner-code.png differ diff --git a/powerapps-docs/maker/common/wrap/media/code-sign-aab-file/java-code.png b/powerapps-docs/maker/common/wrap/media/code-sign-aab-file/java-code.png new file mode 100644 index 0000000000..cbe5e1e93d Binary files /dev/null and b/powerapps-docs/maker/common/wrap/media/code-sign-aab-file/java-code.png differ diff --git a/powerapps-docs/maker/common/wrap/media/code-sign-android/codeSignIn1.png b/powerapps-docs/maker/common/wrap/media/code-sign-android/codeSignIn1.png new file mode 100644 index 0000000000..1ef72ab4e8 Binary files /dev/null and b/powerapps-docs/maker/common/wrap/media/code-sign-android/codeSignIn1.png differ diff --git a/powerapps-docs/maker/common/wrap/media/code-sign-android/codeSignIn2.png b/powerapps-docs/maker/common/wrap/media/code-sign-android/codeSignIn2.png new file mode 100644 index 0000000000..92003e0203 Binary files /dev/null and b/powerapps-docs/maker/common/wrap/media/code-sign-android/codeSignIn2.png differ diff --git a/powerapps-docs/maker/common/wrap/media/code-sign-android/codeSignIn3.png b/powerapps-docs/maker/common/wrap/media/code-sign-android/codeSignIn3.png new file mode 100644 index 0000000000..1fcbec3c77 Binary files /dev/null and b/powerapps-docs/maker/common/wrap/media/code-sign-android/codeSignIn3.png differ diff --git a/powerapps-docs/maker/common/wrap/media/how-to-v2/add-new-env-variable.png b/powerapps-docs/maker/common/wrap/media/how-to-v2/add-new-env-variable.png new file mode 100644 index 0000000000..6c3c12c8de Binary files /dev/null and b/powerapps-docs/maker/common/wrap/media/how-to-v2/add-new-env-variable.png differ diff --git a/powerapps-docs/maker/common/wrap/media/how-to-v2/api-permissions-2.png b/powerapps-docs/maker/common/wrap/media/how-to-v2/api-permissions-2.png index dd53684ff4..f3f733ad87 100644 Binary files a/powerapps-docs/maker/common/wrap/media/how-to-v2/api-permissions-2.png and b/powerapps-docs/maker/common/wrap/media/how-to-v2/api-permissions-2.png differ diff --git a/powerapps-docs/maker/common/wrap/media/how-to-v2/copy-resource-id.png b/powerapps-docs/maker/common/wrap/media/how-to-v2/copy-resource-id.png new file mode 100644 index 0000000000..63d86bca79 Binary files /dev/null and b/powerapps-docs/maker/common/wrap/media/how-to-v2/copy-resource-id.png differ diff --git a/powerapps-docs/maker/common/wrap/media/how-to-v2/new-app-reg-updated.png b/powerapps-docs/maker/common/wrap/media/how-to-v2/new-app-reg-updated.png index 17b88f7aca..c76574f711 100644 Binary files a/powerapps-docs/maker/common/wrap/media/how-to-v2/new-app-reg-updated.png and b/powerapps-docs/maker/common/wrap/media/how-to-v2/new-app-reg-updated.png differ diff --git a/powerapps-docs/maker/common/wrap/media/how-to-v2/redirect-uri.png b/powerapps-docs/maker/common/wrap/media/how-to-v2/redirect-uri.png new file mode 100644 index 0000000000..cc4fd0acd0 Binary files /dev/null and b/powerapps-docs/maker/common/wrap/media/how-to-v2/redirect-uri.png differ diff --git a/powerapps-docs/maker/common/wrap/media/how-to-v2/registration-multitenant.png b/powerapps-docs/maker/common/wrap/media/how-to-v2/registration-multitenant.png new file mode 100644 index 0000000000..24ca193632 Binary files /dev/null and b/powerapps-docs/maker/common/wrap/media/how-to-v2/registration-multitenant.png differ diff --git a/powerapps-docs/maker/common/wrap/media/how-to-v2/view-access-key.png b/powerapps-docs/maker/common/wrap/media/how-to-v2/view-access-key.png new file mode 100644 index 0000000000..e5ae523e95 Binary files /dev/null and b/powerapps-docs/maker/common/wrap/media/how-to-v2/view-access-key.png differ diff --git a/powerapps-docs/maker/common/wrap/media/how-to-v2/view-build.png b/powerapps-docs/maker/common/wrap/media/how-to-v2/view-build.png index 7937d94be8..8c8a8696ef 100644 Binary files a/powerapps-docs/maker/common/wrap/media/how-to-v2/view-build.png and b/powerapps-docs/maker/common/wrap/media/how-to-v2/view-build.png differ diff --git a/powerapps-docs/maker/common/wrap/overview.md b/powerapps-docs/maker/common/wrap/overview.md index 1f646d4a54..e8a73c3ea8 100644 --- a/powerapps-docs/maker/common/wrap/overview.md +++ b/powerapps-docs/maker/common/wrap/overview.md @@ -2,7 +2,7 @@ title: Overview of wrap description: Learn about the wrap functionality in Power Apps. author: komala2019 -ms.topic: article +ms.topic: conceptual ms.custom: canvas ms.reviewer: smurkute ms.date: 02/04/2025 @@ -16,137 +16,158 @@ contributors: # Overview of wrap - -The **wrap** feature in Power Apps enables you to *wrap* your canvas apps as custom-branded Android and iOS apps for native distribution to mobile users. You can distribute such wrapped native mobile apps to the end users through [Microsoft App Center](https://visualstudio.microsoft.com/app-center/), [Google Play Store](https://support.google.com/googleplay/work/answer/6138458) and [Apple Business Manager](https://developer.apple.com/custom-apps/). +The **wrap** feature in Power Apps lets you package your canvas app as a custom-branded Android or iOS app for native distribution to mobile users. Distribute these wrapped native mobile apps to users through the [Google Play Store](https://support.google.com/googleplay/work/answer/6138458), [Apple Business Manager](https://developer.apple.com/custom-apps/), or Microsoft Intune. :::image type="content" source="media/wrap-intro/wrap.png" alt-text="Canvas apps published to mobile users as mobile app package using wrap feature." border="false"::: -You can wrap a single or multiple Power Apps canvas apps in the same native mobile app package. You can use wrap feature to customize your mobile app startup experience to match the branding requirements of your organization. You can specify the app icon, splash screen image, welcome (sign in) screen image, and color palette to use in the mobile app. -You can update the wrapped mobile apps by publishing changes to the canvas app(s) that are included in the mobile package using the [Power Apps](https://make.powerapps.com) maker portal. +## Key capabilities + +With wrap, you can: +- Package one or more Power Apps canvas apps in the same native mobile app package. +- Customize your mobile app startup experience to match your organization's branding. +- Specify the app icon, splash screen image, welcome screen image, and color palette. +- Update wrapped mobile apps by publishing changes to the included canvas app through the [Power Apps](https://make.powerapps.com) maker portal. +- Distribute apps using MDM. > [!NOTE] -> All published changes to the included canvas app(s) are downloaded automatically by the existing, released versions of your wrapped mobile apps. +> All published changes to the included canvas app(s) are downloaded automatically by existing, released versions of your wrapped mobile apps. +## Benefits of wrap -**Wrap** brings native mobile application development platform (MADP) capabilities to Power Apps. +**Wrap** brings native mobile application development platform (MADP) capabilities to Power Apps: -- **No-code mobile app development**—make mobile apps with no previous experience -- **Managed mobile app builds**—we generate the app for you -- **Seamless end-to-end branding**—use your own logo and color palette -- **Multiple canvas apps support**—bundle multiple apps in a single mobile app -- **Enterprise governance with Microsoft Intune**—protect your data with app management +| Benefit | Description | +|---------|-------------| +| **No-code mobile app development** | Create mobile apps with no previous experience | +| **Managed mobile app builds** | We generate the app for you | +| **Seamless end-to-end branding** | Use your own logo and color palette | +| **Multiple canvas apps support** | Bundle multiple apps in a single mobile app | +| **Enterprise governance with Microsoft Intune** | Protect your data with app management | -> [!NOTE] -> **Wrap** is intended for distributing mobile apps to existing Power Apps users, not for public. +## Software and device requirements + +### Platforms supported + +- **iOS**: Version 14.0 or later. +- **Android**: Version 8.0 (API level 26) or later. + +### Device requirements + +- **iOS**: iPhone 6S or later, iPad 5th generation or later. +- **Android**: Any device that runs Android 8.0 or later. + +### Developer requirements + +- Microsoft Power Apps account with appropriate licenses. +- Access to Microsoft Entra ID (formerly Azure AD) for app registration. +- Azure subscription (for Azure Key Vault and Blob Storage). +- For manual code signing: + - iOS: macOS device with Xcode installed. + - Android: Windows PC with Android Studio installed. -## Understand wrap process -The **wrap** feature will *wrap* your canvas apps in a native mobile app shell and produce a mobile package. You can digitally sign and distribute this mobile package as your custom-branded Android and iOS apps to mobile users through the native distribution channels like [Google Play Store](https://support.google.com/googleplay/work/answer/6138458) and [Apple Business Manager](https://developer.apple.com/custom-apps/). +## Wrap process overview -The following section explains steps involved in using the wrap feature to create native mobile apps: +The **wrap** feature packages your canvas app in a native mobile app shell and produces a mobile package. You can digitally sign and distribute this mobile package as your custom-branded Android and iOS app through native distribution channels, like [Google Play Store](https://support.google.com/googleplay/work/answer/6138458) and [Apple Business Manager](https://developer.apple.com/custom-apps/). -:::image type="content" source="media/wrap-intro/wrap-steps.png" alt-text="Steps involved in using wrap feature to create mobile apps." border="false"::: +### Step-by-step process -1. Select your **primary canvas app** and start the wrap wizard. A primary canvas app is the app that provides the initial experience you want your mobile users to see when they launch your mobile app. Your canvas apps must be part of a solution. More information: [Add canvas app to solution](prerequisites.md#add-canvas-app-to-solution). +1. Select your **primary canvas app** and start the wrap wizard. A primary canvas app provides the initial experience users see when launching your mobile app. Your canvas apps must be part of a solution. More information: [Add canvas app to solution](prerequisites.md#add-canvas-app-to-a-solution). 1. Optionally, add **secondary canvas apps** to your mobile app in the wrap wizard. More information: [Wrapping multiple canvas apps together](#wrap-multiple-canvas-apps-together). -1. Select the **target platforms** (iOS and Android) for your mobile app. Optionally, select to **automatically code sign** your mobile app package in the wrap wizard. -1. Customize **app branding** with icons, images, and color palette to personalize your mobile app. -1. Register you app. Use an existing **app registration**, or create a new one in the wrap wizard. -1. Add **Azure blob storage account name and container name**. Use an already created **Azure blob storage** or create a new one. -1. Start the build process in **Wrap up** step to generate your custom-branded mobile app. +1. Select the **target platforms** (iOS and Android) for your mobile app. Optionally, select **automatically code sign** your mobile app package. +1. Register your app. Use an existing **app registration** or create a new one in the wrap wizard. +1. Customize **app branding** with icons, images, and a color palette to personalize your mobile app. +1. Add the **Azure blob storage account name and container name**. Use an existing **Azure blob storage** or create a new one. +1. Start the build process in the **Wrap up** step to generate your custom branded mobile app. 1. Download your mobile app from the **App blob storage location**. -1. If **automatically code sign** isn't chosen in the wrap wizard, you must **code sign** the mobile app package manually. More information: [Signing your mobile app package manually](wrap-how-to.md#sign-your-mobile-app-package-manually-optional). +1. If you don't select **automatically code sign** in the wrap wizard, code sign the mobile app package manually. More about signing your mobile app package manually: [Signing your mobile app package manually](wrap-how-to.md#sign-your-mobile-app-package-manually-optional). 1. Test the app package. 1. Distribute the app package to mobile users. + ## Wrap multiple canvas apps together -You can wrap more than one canvas apps as a single mobile app package. The mobile app package still needs a home app, called as the primary app. This app becomes the entry point for all other canvas apps included in the mobile app package, which are called as secondary apps. +You can wrap more than one canvas app into a single mobile app package. The mobile app package needs a home app, called the primary app. This app becomes the entry point for all other canvas apps included in the mobile app package, which are called secondary apps. -Secondary apps are optional. When you wrap only one canvas app, the included app is still chosen as a primary app, but the mobile app package would have no secondary apps. +Secondary apps are optional. When you wrap only one canvas app, that app is considered the primary app, and the mobile app package has no secondary apps. -As the following illustration explains, a primary app can have links to multiple secondary apps. The movement between primary and secondary apps inside such mobile app wrapped together can be managed with the [Launch()](../../canvas-apps/functions/function-param.md) function. +As shown in the illustration below, a primary app can have links to multiple secondary apps. You can manage navigation between primary and secondary apps using the [Launch()](../../canvas-apps/functions/function-param.md) function. :::image type="content" source="media/wrap-intro/primary-secondary-apps.png" alt-text="Primary and secondary apps wrapped together." border="false"::: -## Brand your mobile app - -Wrap supports customization of the mobile app bootstrap experience to match the branding requirements of your organization. You can specify the app icon, splash screen image, welcome (sign in) screen image, and color palette to use throughout the native experiences of the mobile app. - -:::image type="content" source="media/wrap-intro/wrap-branding.png" alt-text="Branding in wrap." border="false"::: - -Branding customization options are available when you're building your wrap project. More information: [Configure branding](wrap-how-to.md#step-4-configure-branding) -## Understanding wrap terminology - -Wrap involves multiple components across Power Apps, App Center, and third-party platforms such as iOS and Android. Hence, it becomes important to understand the components involved while working with wrap functionality in Power Apps. +## Brand your mobile app -### App center location +Wrap supports customization of the mobile app bootstrap experience to match your organization's branding requirements. You can specify: -Container in App Center to store the built packages for mobile app distribution. Build output types differ depending on the target platform you select. +- App icon +- Splash screen image +- Welcome (sign in) screen image +- Color palette for native experiences -| Platform | OS | Build Output file type | -|-------------------------------------------------------------|---------------------------|-------------------------------| -| **iOS** (for distribution using Apple Store) | Custom | \*.zip | -| **Android** (for distribution using all channels except Google Play Store) | Android | \*.apk | +:::image type="content" source="media/wrap-intro/wrap-branding.png" alt-text="Branding in wrap." border="false"::: -> [!NOTE] -> App Center will be discontinued from 31st March 2025. Going forward, the app binaries will be stored in your tenant's Azure Blob Storage from which you can access and distribute them through your preferred channels. The details of linking Azure Blob Storage with wrap process will be updated soon. In the interim, back up your latest APK/IPA files (if needed) and keep your Azure Blob Storage details and target location for app binaries handy. +Branding customization options are available when building your wrap project. More information: [Configure branding](wrap-how-to.md#5-configure-branding) -### Azure blob storage +--- -Container in Azure Blob Storage helps store built packages for mobile app distribution. Build output types differ depending on the target platform you select. Details about the feature will be shared before March 31, 2025. +## Wrap terminology -Input: +Wrap involves multiple components across Power Apps and third-party platforms such as iOS and Android. Understanding these components is important when working with the wrap functionality. -- [Account Name](#account-name) and [Container Name](#container-name) +### App platform(s) +Target platforms for your app during the build process. You can create builds for: -#### Account Name +- **iOS** — creates IPA package +- **Android** — creates APK package +- **Google Play Store** — creates AAB package for distribution -The account name is a unique identifier for your Azure Storage account. It's used to construct the base URI for accessing the storage account. For example, if your account name is `mystorageaccount`, the base URI would be `https://mystorageaccount.blob.core.windows.net/` +### Bundle ID -#### Container Name +The bundle ID is a unique identifier for your app that follows a reverse domain name pattern. It must contain one period (.) and no spaces. Example: `com.contoso.myapp`. -The container name is a unique identifier within a storage account that groups a set of blobs. Containers provide a way to organize blobs within a storage account. For example, if your container name is `mycontainer`, the URI for accessing blobs within this container would be `https://mystorageaccount.blob.core.windows.net/mycontainer/` +This bundle ID is used when [creating the Azure key vault for wrap](create-key-vault-for-code-signing.md) after iOS or Android certificates are created and uploaded. If you've already created the Azure key vault, verify the bundle ID in the **Tags** section of the [Azure portal](https://portal.azure.com). Use this same bundle ID in [Step 2: Target platform](wrap-how-to.md#3-choose-target-platform). +### Code signing -### App platform(s) +Code signing completes a mobile app before distribution to end users. A code-signed app assures users it comes from a known source and the app code hasn't changed since it was last signed by the trusted source. -Intended platforms for the app that you want to go through the build process for publication. You can create builds for mobile app for iOS, Android, or Google Play Store. +### Primary app -- **iOS** creates IPA package -- **Android** creates APK package -- **Google Play Store** create AAB package for distribution - -### Build the wrap project +A primary app is the entry point or home app for the mobile app experience when wrapping multiple canvas apps together. If only one canvas app is wrapped, it's considered the primary app. -Building a wrap project is a process that creates the build packages for the mobile app distribution across different platforms. This process uses the app that you registered on Microsoft identity platform and creates the builds on the given App Center location depending on the platforms you choose. The built packages include the primary and optional secondary apps packaged into one mobile app package for each platform type. +### Secondary app -### Bundle ID +Secondary apps are optional canvas apps that you wrap in the same build for mobile app distribution along with the [primary app](#primary-app). -The bundle ID is a unique identifier you create for your app. Use any bundle ID name that follows a reverse domain name pattern. A bundle ID must contain one period (.) and no spaces. For example, `com.contoso.myapp`. This bundle ID is used during the process of [creating the Azure key vault for wrap](create-key-vault-for-code-signing.md) once iOS or Android certificates are created and uploaded. If you already created the Azure key vault, verify the bundle ID in the **Tags** section of the [Azure portal](https://portal.azure.com). Use this same bundle ID in [Step 2: Target platform](wrap-how-to.md#step-2-target-platform) +### Redirect URI -### Code signing +A redirect URI (reply URL) is the location where the authorization server sends the user after successful app authorization and access token grant. The authorization server sends the code or token to the redirect URI, so registering the correct location during app registration is important. More information: [Redirect URI](/azure/active-directory/develop/reply-url) -Code signing is the process of completing a mobile app before distribution to end users. An app that is code signed assures that it comes from a known source, and the app code hasn't changed since last time it was signed by the trusted source. +--- -### Primary app +## Common issues and limitations -A primary app is the entry point or the home app for the mobile app experience when wrapping more than one canvas apps together. All other apps are considered [secondary apps](#secondary-app). If only one canvas app is wrapped and built, it's also considered the primary app. +### Known limitations -### Redirect URI +- The wrap feature only supports canvas apps (not model-driven apps) +- All canvas apps in a wrap project must be from the same environment +- Users must have a Power Apps license to use wrapped apps -A redirect URI, or reply URL, is the location where the authorization server sends the user once the app has been successfully authorized and granted an authorization code or access token. The authorization server sends the code or token to the redirect URI, so it's important you register the correct location as part of the app registration process. +### Common issues -More information: [Redirect URI](/azure/active-directory/develop/reply-url) +- **Bundle ID conflicts**: Ensure your bundle ID is unique across your organization +- **Image format issues**: All images must be in PNG format +- **Signing certificate problems**: Verify certificate validity and expiration dates +- **Azure Key Vault access**: Make sure proper permissions are configured -### Secondary app +For troubleshooting details, see [Troubleshoot issues with the wrap feature in Power Apps](/troubleshoot/power-platform/power-apps/manage-apps/wrap-issues). -Optional more canvas apps that you're wrapping in the same build for mobile app distribution along with the [primary app](#primary-app). +--- ## Next steps @@ -161,4 +182,4 @@ Optional more canvas apps that you're wrapping in the same build for mobile app - [Create your Azure Key Vault for automated code signing](create-key-vault-for-code-signing.md) - [Frequently Asked Questions](faq.yml) - [Troubleshoot issues with the wrap feature in Power Apps](/troubleshoot/power-platform/power-apps/manage-apps/wrap-issues) -- [Benefits and limitations of Wrap](limitations.md) +- [Benefits and limitations of Wrap](limitations.md) diff --git a/powerapps-docs/maker/common/wrap/prerequisites.md b/powerapps-docs/maker/common/wrap/prerequisites.md index 9868b8d533..3804450b0c 100644 --- a/powerapps-docs/maker/common/wrap/prerequisites.md +++ b/powerapps-docs/maker/common/wrap/prerequisites.md @@ -5,7 +5,7 @@ author: komala2019 ms.topic: article ms.custom: canvas ms.reviewer: smurkute -ms.date: 02/04/2025 +ms.date: 07/09/2025 ms.subservice: canvas-maker ms.author: koagarwa search.audienceType: @@ -14,67 +14,59 @@ search.audienceType: # System requirements and prerequisites for Wrap -Before you start using Wrap to create native mobile apps from your Power Apps canvas apps, ensure that your system meets the following requirements and prerequisites. - -The following list explains what you'll need before you can start using wrap feature to publish one or more canvas apps as a mobile app package. +Before you use Wrap to create native mobile apps from your Power Apps canvas apps, check that your system meets these requirements. ## Software and device requirements -- Mac device for [manual code signing with iOS](code-sign-ios.md) -- Windows PC for [manual code signing with Android](code-sign-android.md) +- You need a Mac device for [manual code signing with iOS](code-sign-ios.md). +- You need a Windows PC for [manual code signing with Android](code-sign-android.md). - To run the wrapped mobile app: - Android device with version 10 or higher - iOS device with version 14 or higher > [!NOTE] -> Developing apps for the iOS platform requires an [Apple Developer Program](https://developer.apple.com/) account. +> You need an [Apple Developer Program](https://developer.apple.com/) account to develop apps for iOS. ## Permissions and access requirements 1. You need access to: - - One or more [canvas apps](../../canvas-apps/share-app.md) to build the wrap project. - - Create azure blob storage and add the account name and container name. More information:[Create an Azure storage account](/azure/storage/common/storage-account-create?tabs=azure-portal) - - [Azure portal](https://portal.azure.com/) to create [app registration](/azure/active-directory/develop/quickstart-register-app#prerequisites) and to register your app, which should be within the same environment as your Power Apps. - -1. An Azure admin must grant you access to use the specific wrap app. More information: [API permissions](wrap-how-to.md#api-permissions). - -1. This feature requires the apps to be part of a [managed or unmanaged solution](/power-platform/alm/solution-concepts-alm#managed-and-unmanaged-solutions). If your apps aren't part of a solution already, add them to an existing or a new solution. More information: [Create a canvas app from within a solution](../../canvas-apps/add-app-solution.md#add-an-existing-canvas-app-to-a-solution). + - Azure blob storage, including the account name and container name. More information: [Create an Azure storage account](/azure/storage/common/storage-account-create?tabs=azure-portal). + - The [Azure portal](https://portal.azure.com/) to create [app registration](/azure/active-directory/develop/quickstart-register-app#prerequisites) and register your app, which should be in the same environment as your Power Apps. -1. You need an Azure key vault to perform the automatic sign-in process through Wrap wizard. Ensure that your Azure key vault is in your tenant's default subscription. If it isn't, create one using your default subscription. More information: [Create a key vault using the Azure portal](/azure/key-vault/general/quick-create-portal). +1. An Azure admin must grant you access to use the specific wrap app. More information: [API permissions](wrap-how-to.md#grant-api-permissions-as-an-azure-tenant-admin). +1. Your apps must be part of a [managed or unmanaged solution](/power-platform/alm/solution-concepts-alm#managed-and-unmanaged-solutions). If not, add them to an existing or new solution. More information: [Create a canvas app from within a solution](../../canvas-apps/add-app-solution.md#add-an-existing-canvas-app-to-a-solution). +1. You need an Azure key vault to perform the automatic sign-in process through Wrap wizard. More information: [Create a key vault using the Azure portal](/azure/key-vault/general/quick-create-portal). +1. Check the policies enabled for your application. More information: [Conditional Access policy templates](/entra/identity/conditional-access/concept-conditional-access-policy-common) +1. If multifactor authentication (MFA) is enabled, make sure MFA is enabled for the accounts you'll use to sign in, or disable the conditional access policies. - > [!NOTE] - > This step will become mandatory from March 31, 2025. +## Sign-in options in Wrap -1. Verify for the policies enabled for your application. More information: [Conditional Access policy templates](/entra/identity/conditional-access/concept-conditional-access-policy-common) +- **Manual code sign-in for Android and iOS**: This option is best for most scenarios. For Android, [generate keys](code-sign-android.md#generate-key-and-signature-hash) and [generate a signature hash](code-sign-android.md#generate-signature-hash-key-and-certificate) before you start. You need the signature hash to set up the [Redirect URI](overview.md#redirect-uri). More information: [manual code sign-in for Android](code-sign-android.md). +- **Automatic sign-in using Wrap wizard**: This option requires an Azure key vault. More information: [creating a key vault using the Azure portal](/azure/key-vault/general/quick-create-portal). -1. If multifactor authentication (MFA) is enabled, ensure that MFA is enabled for the accounts you'll use to sign in, or disable the conditional access policies. +## Add canvas app to a solution -There are two types of sign-in processes in Wrap: +Wrap requires your apps to be part of a solution. If your canvas apps aren't already in a solution, add them to an existing or new solution. -- **Manual code sign-in for Android and iOS**: This is recommended. If you're creating a mobile app package for the Android platform and plan to code sign it manually, ensure you [generate keys](code-sign-android.md#generate-keys) and then [generate a signature hash](code-sign-android.md#generate-signature-hash) before you start. You need the generated signature hash to configure the [Redirect URI](overview.md#redirect-uri). More information: [Manual code sign-in for Android](code-sign-android.md). -- **Automatic sign-in using Wrap wizard**: This involves creating an Azure key vault. More information: [Create a key vault using the Azure portal](/azure/key-vault/general/quick-create-portal). +1. In the left navigation pane, select **Solutions**. [!INCLUDE [left-navigation-pane](../../../includes/left-navigation-pane.md)] +1. Select a solution, and then select **Edit**. -## Add canvas app to solution +:::image type="content" source="media/wrap-canvas-app/select-solution.png" alt-text="Screenshot of the Solutions page with a solution selected."::: -Wrap for Power Apps requires the apps to be part of a solution. If your canvas apps aren't part of a solution already, add them to an existing or a new solution. From the left navigation pane, select **Solutions**. [!INCLUDE [left-navigation-pane](../../../includes/left-navigation-pane.md)] Select a solution and then select **Edit**. +Select **+ Add existing** from the top menu, and then select **App > Canvas app** from the dropdown. -:::image type="content" source="media/wrap-canvas-app/select-solution.png" alt-text="Select a solution."::: +:::image type="content" source="media/wrap-canvas-app/select-add-existing.png" alt-text="Screenshot of the top menu showing the Add existing option selected from the menu."::: -Choose **+ Add existing** option from the top menu and select **App > Canvas app** in the dropdown list. +Select the **Outside Dataverse** tab, select your app from the list, and then select **Add** to add the app to the solution. -:::image type="content" source="media/wrap-canvas-app/select-add-existing.png" alt-text="Select Add existing from the menu."::: - -Select **Outside Dataverse** tab and choose your app from the list. Press **Add** button to add this app to a solution. - -:::image type="content" source="media/wrap-canvas-app/add-app.png" alt-text="Select Add app to a solution."::: +:::image type="content" source="media/wrap-canvas-app/add-app.png" alt-text="Screenshot of the Outside Dataverse tab with a canvas app selected and the Add button highlighted."::: More information: [Add an app to a solution](../../canvas-apps/add-app-solution.md#add-an-existing-canvas-app-to-a-solution) - ## Next steps -[Use the wrap wizard to build your mobile app](wrap-how-to.md) +[Use the wrap wizard to build your mobile app](wrap-how-to.md) ### See also diff --git a/powerapps-docs/maker/common/wrap/wrap-how-to.md b/powerapps-docs/maker/common/wrap/wrap-how-to.md index 48f1cfee45..5659d61093 100644 --- a/powerapps-docs/maker/common/wrap/wrap-how-to.md +++ b/powerapps-docs/maker/common/wrap/wrap-how-to.md @@ -1,11 +1,11 @@ --- title: Customize and build your mobile app using the wrap wizard -description: Learn about how to use the wrap wizard to package canvas apps into a native mobile app package. +description: Learn about the steps to build and customize your mobile app using wrap wizard. author: komala2019 -ms.topic: article +ms.topic: how-to ms.custom: canvas ms.reviewer: smurkute -ms.date: 02/04/2025 +ms.date: 07/09/2025 ms.subservice: canvas-maker ms.author: koagarwa search.audienceType: @@ -14,274 +14,297 @@ contributors: - mkaur --- -# Use the wrap wizard to build your mobile app +# Wrap wizard: Step-by-step guide to building your native mobile app -Use the wrap feature to package one or more canvas apps as a single native mobile app package using the step-by-step wizard. +Use this guide to convert one or more canvas apps into a single custom-branded app package that you can deploy on Google Play and the iOS App Store. -The wrap feature in Power Apps lets you create native mobile versions of your [canvas apps](../../canvas-apps/getting-started.md) as custom-branded Android and iOS mobile apps. -You can distribute such *wrapped* native mobile apps to the end users through [Microsoft app center](https://visualstudio.microsoft.com/app-center/), [Google Play](https://support.google.com/googleplay/work/answer/6138458) or [Apple Business Manager](https://developer.apple.com/custom-apps/) or other native distribution methods. +The wrap feature in Power Apps enables you to create native mobile versions of your [canvas apps](../../canvas-apps/getting-started.md) as custom-branded Android and iOS mobile apps (IPA, APK, AAB packages). You can distribute these wrapped native mobile apps to end users through [Google Play](https://support.google.com/googleplay/work/answer/6138458), [Apple Business Manager](https://developer.apple.com/custom-apps/), or other native distribution methods. -Wrap feature allows you to create mobile apps for iOS, Android or Google Play Store: +When you update and republish your app, the wrapped app is automatically updated for users. -- iOS (IPA package) -- Android (APK package) -- For Google Play Store distribution (AAB package) -The wrap feature wraps your canvas apps in a native mobile app shell that you can digitally sign and distribute. When you update your app and republish it, the app is automatically updated. -## Create native mobile apps for iOS and Android using the wizard +## Steps to create a custom-branded native app using the wrap wizard -1. Sign in to [Power Apps](https://make.powerapps.com). +> [!VIDEO 4b04af25-b332-4286-a615-e3f36de574e0] -2. Select **Wrap**, from the left navigation pane. [!INCLUDE [left-navigation-pane](../../../includes/left-navigation-pane.md)] +### 1. Sign in and start a wrap project -3. Select the app that you want to wrap, and then select **Wrap** on the command bar. +1. Sign in to [Power Apps maker portal](https://make.powerapps.com). +2. Select **Wrap** from the left navigation pane. [!INCLUDE [left-navigation-pane](../../../includes/left-navigation-pane.md)] +3. Select the app you want to wrap, then select **Wrap** on the command bar. -### Step 1: Select apps +### 2. Select apps 1. On the **Select the app(s) to wrap** screen, select your primary and secondary app. - - **Primary app**: Select the app your end users see when the mobile app is launched. - - **Secondary app(s)**: Optional other apps that you can bundle the same build for mobile app package along with the Primary app. + - **Primary app**: The main app end users see when the mobile app launches. + - **Secondary app(s)**: Optional other apps bundled in the same mobile app package. - :::image type="content" source="media/how-to-v2/select-apps-updated.png" alt-text="Screenshot that shows the first step to select the app." lightbox="media/how-to-v2/select-apps-updated.png"::: - - > [!NOTE] - > - You can use the same Primary app in multiple wrap projects. - > - In the wrap wizard, if the **Primary app** name appears incorrect, proceed to the next step and then return to see the correct name. - -2. Select **Next**. - -### Step 2: Target platform - -1. On the **Choose mobile platform to target** screen, enter a **Bundle ID** of our choice. - - > [!NOTE] - > The **Bundle ID** is a unique identifier that you create for your app. A bundle ID must contain one period (.) and no spaces. Use this same bundle ID in step 6 when [creating the Azure key vault](create-key-vault-for-code-signing.md#configure-key-vault-uri) after generating and uploading your iOS or Android certificates. If you have already created the Azure Key Vault, verify the bundle ID in the **Tags** section of the [Azure portal](https://portal.azure.com). - -2. Under **Target platforms(s)**, select all the mobile platforms that your end users use on their mobile devices. + :::image type="content" source="media/how-to-v2/select-apps-updated.png" alt-text="Screenshot that shows the first step to select the app." lightbox="media/how-to-v2/select-apps-updated.png"::: -3. Select the **Azure Key Vault URI** from the list and select **Next**. -If you don't have any entries in **Azure Key Vault URI** list, you need to create Azure key vault first. More information: [Create a vault](/azure/key-vault/general/quick-create-portal#create-a-vault). + > [!NOTE] + > - You can use the same primary app in multiple wrap projects. + > - If the primary app name appears incorrect, proceed to the next step and return to refresh the name. -4. Create an Azure blob storage account and container name if you don't have it set up already. More information: [Create an Azure storage account](/azure/storage/common/storage-account-create?tabs=azure-portal). A video for creating an Azure storage account is available at [How to create a storage account](https://www.youtube.com/watch?v=AhuNgBafmUo&list=PLLasX02E8BPBKgXP4oflOL29TtqTzwhxR&index=6). +2. Select **Next**. -5. In your key vault in the [Azure portal](https://ms.portal.azure.com), go to **Secrets** to create Azure blob storage secret name if not done already. More information: [Add a secret to Key Vault](/azure/key-vault/secrets/quick-create-portal#add-a-secret-to-key-vault). While creating a secret, you'll need your access key. To view and copy your access key refer [View account access keys](/azure/storage/common/storage-account-keys-manage?tabs=azure-portal#view-account-access-keys). +### 3. Choose target platform -:::image type="content" source="media/how-to-v2/azure-secret-2.png" alt-text="Screenshot that shows how to create Azure secrets" lightbox="media/how-to-v2/azure-secret-2.png"::: +1. On the **Choose mobile platform to target** screen, enter a **Bundle ID**. -Enter the Azure blob storage access key in **Secret value** field. + > [!NOTE] + > The **Bundle ID** is a unique identifier for your app. It must contain one period (.) and no spaces. Use this same bundle ID when [creating the Azure key vault](create-key-vault-for-code-signing.md#configure-key-vault) after generating and uploading your iOS or Android certificates. If you have already created the Azure Key Vault, verify the bundle ID in the **Tags** section of the [Azure portal](https://portal.azure.com). -:::image type="content" source="media/how-to-v2/azure-secret-1.png" alt-text="Screenshot that shows Azure secrets" lightbox="media/how-to-v2/azure-secret-1.png"::: +2. Under **Target platform(s)**, select all the mobile platforms that your end users use on their mobile devices. -6. In your key vault in the [Azure portal](https://ms.portal.azure.com), go to **Tags**, create a new tag with the same secret value as created in the preceding step. +3. You need to have Azure key vault, to upload your build to Azure blob storage. If you haven't already created, create one. For more information see, [create an Azure key vault](create-key-vault-for-code-signing.md#configure-key-vault). Add the required tags, secrets, and certificates. Add the environment variable if not created already. -:::image type="content" source="media/how-to-v2/azure-tag.png" alt-text="Screenshot that shows Azure tags" lightbox="media/how-to-v2/azure-tag.png"::: - -7. Set the **Sign my app** toggle to **On** or **Off**. - - :::image type="content" source="media/how-to-v2/select-target-platforms-updated.png" alt-text="Screenshot that shows the second step to choose the target platform." lightbox="media/how-to-v2/select-target-platforms-updated.png"::: - -You can also code sign your mobile app package manually instead of using automatic code signing available in wrap wizard. For more information on how to code sign your app manually, see: + a. To create the environment variable, go to [Power Apps](https://make.powerapps.com) > **Solutions** > **Default solution**. Then select **New** > **More** > **Environment variable**, add the display name as "PA_Wrap_KV_ResourceID". + :::image type="content" source="media/how-to-v2/add-new-env-variable.png" alt-text="Screenshot that shows screen for adding new environment variable." lightbox="media/how-to-v2/add-new-env-variable.png"::: - - [Manual code sign for iOS](code-sign-ios.md) - - [Manual code sign for Android](code-sign-android.md) - - [Code sign for Google Play Store](https://developer.android.com/studio/publish/app-signing) + b. To add vault information to your environment variables, access the **Azure** portal as an admin. Navigate to **All Resources** > **Your Key Vault** > **Properties**, and then copy the **Resource ID**. + :::image type="content" source="media/how-to-v2/copy-resource-id.png" alt-text="Screenshot that shows resource id to be copied." lightbox="media/how-to-v2/copy-resource-id.png"::: -> [!NOTE] -> Wrap wizard provides an automatic sign-in process. However, developers familiar with mobile processes can manually sign in for their Android or iOS applications using different mechanisms for each platform. If you sign in through the manual process, you don't need to create an Azure key vault. - -6. Select **Next**. + c. To add the input to the environment variable, go to **Power Apps** > **ApplicationName** > **All** > **Environment variable**. Click the three dots, select **Edit**, add the copied value to **Default value**, and save. -### Step 3: Register app + d. To check whether the table value has been updated, go to **Power Apps** > **Tables** > **Environment variable definition** > **new_PA_Wrap_KV_ResourceID** . The value in **Default value** must be same as that of the resourceID for which you want to add the vault. + > [!NOTE] + > Guidelines for adding the input behind the environment variables for Key vault information: + > - Environment variables must not be empty or can contain multiple entries. + > - Ensure that the resourceID added is correct (verify spelling). + > - Ensure that the resourceID added has non-empty tags and includes all the tags expected with the bundle ID used in the wrap wizard. + + e. Follow the steps in [Steps for automated code signing](create-key-vault-for-code-signing.md) to create the tags, secrets, and certificates required during the automatic signing process. + +4. You need to have Azure blob storage account and container, to upload your build to Azure blob storage. If you haven't already created, create one. + - More about creating a storage account: [Create an Azure storage account](/azure/storage/common/storage-account-create?tabs=azure-portal). + - Watch a tutorial: [How to create a storage account](https://www.youtube.com/watch?v=AhuNgBafmUo&list=PLLasX02E8BPBKgXP4oflOL29TtqTzwhxR&index=6). + > [!NOTE] + > You can download the link from the wrap wizard if you don't use the blob storage mechanism. + + 1. In your key vault in the [Azure portal](https://ms.portal.azure.com), go to **Secrets** to create a secret for your Azure blob storage access key. More information: [Add a secret to key vault](/azure/key-vault/secrets/quick-create-portal#add-a-secret-to-key-vault). + :::image type="content" source="media/how-to-v2/azure-secret-2.png" alt-text="Screenshot that shows how to create Azure secrets" lightbox="media/how-to-v2/azure-secret-2.png"::: + + 2. To view and copy your access key: [View account access keys](/azure/storage/common/storage-account-keys-manage?tabs=azure-portal#view-account-access-keys) + :::image type="content" source="media/how-to-v2/view-access-key.png" alt-text="Screenshot that shows access key" lightbox="media/how-to-v2/view-access-key.png"::: + + 3. Enter the Azure blob storage access key in the **Secret value** field. + :::image type="content" source="media/how-to-v2/azure-secret-1.png" alt-text="Screenshot that shows Azure secrets" lightbox="media/how-to-v2/azure-secret-1.png"::: + + 4. In your key vault, go to **Tags** and create a new tag with the same secret value as above. + :::image type="content" source="media/how-to-v2/azure-tag.png" alt-text="Screenshot that shows Azure tags" lightbox="media/how-to-v2/azure-tag.png"::: + +5. Turn **ON** automatic app signing (Optional). + :::image type="content" source="media/how-to-v2/select-target-platforms-updated.png" alt-text="Screenshot that shows the second step to choose the target platform." lightbox="media/how-to-v2/select-target-platforms-updated.png"::: + + > [!NOTE] + > Manual signing options: + > - [Code sign for iOS](code-sign-ios.md) + > - [Code sign for Android](code-sign-android.md) + > - [Code sign for Google Play Store](https://developer.android.com/studio/publish/app-signing) + > + > You must manually sign AAB files regardless of the signing option selected in the wizard. + -On the **Register your app** screen, register your application manually in Azure to establish a trust relationship between your app and the Microsoft identity platform. More information: [Registering your app on Azure portal manually](wrap-how-to.md#register-your-app-on-azure-portal-manually-optional). +6. Select **Next**. -Your app must be registered in Microsoft Entra so that your app users can sign in. If you have already registered, find your registration in the owned registration field. +### 4. Register your app -If you don't see your registered app name in the **Owned registrations** dropdown, follow these steps. +On the **Register your app** screen, register your application in Azure to establish trust with the Microsoft identity platform. -- Select **New app registration** to create a new registration for your app automatically. -- You'll need to provide **Application name** and **Android signature hash**, as they're mandatory fields. **Application name** is required because it's the customer-facing name of the application. **Android signature hash** is necessary if you have selected Android as one of your platforms while creating and building your wrap project. +- **If you have already registered an app**: + - Find your registration in the owned registration field. - > [!NOTE] - > The format of the Android hash key is 28-digit alphanumeric hash number such as –ga0RGNYHvNM5d0SLGQfpQWAPGJ8=. - > If the signature hash key already exists, there's no need to create a new one. You can reuse the previously generated signature hash key when creating a new app registration. +- **If you do not see your registered app**: + 1. Select **New app registration** to create a new registration. + 2. Provide: + - **Application name**: The customer-facing name of your app + - **Android signature hash** (if targeting Android): A 28-character alphanumeric string + :::image type="content" source="media/how-to-v2/new-app-reg2-updated.png" alt-text="Screenshot that shows new app registration screen" lightbox="media/how-to-v2/new-app-reg2-updated.png"::: + 3. In the Microsoft Entra admin center, go to App registrations and select your app. In the Essentials section, locate Supported account types, set it to Accounts in any organizational directory (Any Microsoft Entra directory - Multitenant). + :::image type="content" source="media/how-to-v2/registration-multitenant.png" alt-text="Screenshot that shows multitenant registration screen" lightbox="media/how-to-v2/registration-multitenant.png"::: + 4. Save your changes. - :::image type="content" source="media/how-to-v2/new-app-reg2-updated.png" alt-text="Screenshot that shows new app registration screen" lightbox="media/how-to-v2/new-app-reg2-updated.png"::: + > [!NOTE] + > If the signature hash key already exists, you can reuse it. + + +#### Configure admin allowed third-party apps as an azure tenant admin + +The wrap wizard configures required API permissions automatically. To grant admin access: + +# [For Windows](#tab/windows) + +1. Open Windows PowerShell as administrator. +2. Run these commands: + ```powershell + Install-Module -Name Microsoft.PowerApps.Administration.PowerShell -AllowClobber -Force + Set-ExecutionPolicy -ExecutionPolicy RemoteSigned + Import-Module -Name Microsoft.PowerApps.Administration.PowerShell + Add-AdminAllowedThirdPartyApps + Get-AdminAllowedThirdPartyApps + ``` +3. Provide the App ID when prompted. + +# [For Mac](#tab/mac) + +1. Open Azure PowerShell as tenant admin. +2. Run these commands: + ```powershell + Install-Module -Name Microsoft.PowerApps.Administration.PowerShell -AllowClobber -Force + Import-Module -Name Microsoft.PowerApps.Administration.PowerShell + Add-AdminAllowedThirdPartyApps + Get-AdminAllowedThirdPartyApps + ``` +3. Provide the App ID when prompted. -#### Configure admin allowed third-party apps +--- -The wrap wizard configures all the required API permissions for your app automatically. You can also configure the API permissions manually if your need to troubleshoot this step. More information: [Configure the API permissions for your app manually](wrap-how-to.md#configure-the-api-permissions-for-your-app-manually-optional). +After completing these steps, the registration screen will look like this: -When you register the app, Azure admin needs to provide access to continue. Follow these steps to grant access: -- Open Windows PowerShell and run it as an administrator. -- Execute the command- `Install-Module -Name Microsoft.PowerApps.Administration.PowerShell -AllowClobber -Force`. -- Set the execution policy with: `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned`. -- Import the module using: `Import-Module -Name Microsoft.PowerApps.Administration.PowerShell`. -- Run `Add-AdminAllowedThirdPartyApps` and provide the App ID for which admin access is needed. -- Run `Get-AdminAllowedThirdPartyApps` to verify if your app name appears in the list. +:::image type="content" source="media/how-to-v2/new-app-reg-updated.png" alt-text="Screenshot that shows registration screen with green ticks for steps completed" lightbox="media/how-to-v2/new-app-reg-updated.png"::: -Once you complete the preceding steps the registration screen look like the following screenshot. +#### Grant API permissions as an Azure tenant admin - :::image type="content" source="media/how-to-v2/new-app-reg-updated.png" alt-text="Screenshot that shows registration screen with green ticks for steps completed" lightbox="media/how-to-v2/new-app-reg-updated.png"::: +Azure admin grants API permissions during registration. Make sure **DeviceManagementManagedApplication** is set to **Yes** when you grant admin consent for your app. For more information, see [Grant tenant-wide admin consent in Enterprise apps pane](/entra/identity/enterprise-apps/grant-admin-consent?pivots=portal#grant-tenant-wide-admin-consent-in-enterprise-apps-pane). + :::image type="content" source="media/how-to-v2/api-permissions-2.png" alt-text="Screenshot that shows the API permissions for the app." lightbox="media/how-to-v2/api-permissions-2.png"::: -#### API permissions +### Required API permissions -When you register the app, Azure admin also needs to grant access to API permissions for the app. Refer to the following screenshot for instructions on granting access and the reasons why API permissions are required. +| API Type | Specific API | Reason | +|----------------------------|----------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------| +| **Microsoft APIs** | Dynamics CRM | The application needs `user_impersonation` to call Dataverse for the user. | +| **APIs my organization uses** | Azure API Connections | The application needs `Runtime.All` to call any connector from Power Platform. | +| **APIs my organization uses** | PowerApps Service | The application needs the `User` permission to contact Power Apps backend services from Power Platform. | +| **APIs my organization uses** | Power BI | The application needs Power BI permissions to access or embed Power BI content. | +| **APIs my organization uses** | Microsoft Mobile Application Management | The application needs this permission because Power Apps uses Intune SDK internally. | - :::image type="content" source="media/how-to-v2/api-permissions-2.png" alt-text="Screenshot that shows the API permissions for the app." lightbox="media/how-to-v2/api-permissions-2.png"::: -> [!NOTE] -> In this step, sometimes for the new customers, only the **Application name** field is visible. The field to add the **Android signature hash** isn't displayed. To resolve this, continue to the next steps and select the **Target platform(s)** as **Android** in the **Target Platforms Step**. +For detailed steps, see [Request the permissions in the app registration portal](/azure/active-directory/develop/v2-permissions-and-consent#request-the-permissions-in-the-app-registration-portal). -### Step 4: Configure branding +Run these PowerShell commands as an Azure admin if you don't see permissions under **APIs my organization uses**: -1. On the **Configure Branding Step**, set the following look and feel options for your app: +1. Ensure the module [Microsoft Graph](https://www.powershellgallery.com/packages/Microsoft.Graph/) is available or install it: + ```powershell + Install-Module -Name Microsoft.Graph + ``` - > [!NOTE] - > All the images must be in .png format. A default image will be used if no custom images are selected. - - - **App icons**: Upload icons to use for your app. Recommended size for iOS: 1024 px by 1024 px .png image or larger. Recommended image size for Android: 432 px by 432 px .png image or larger. - - **Splash screen image**: Image that's used on the splash screen of your mobile app, while it loads. Default image used when not provided. - - **Welcome screen image**: Image that's used on the welcome (sign in) screen of your mobile app, while it loads. Default image used when not provided. - - **Background fill color**: Hexadecimal color code used for the background of the welcome screen. - - **Button fill color**: Hexadecimal color code used to fill the button color. - - **Status bar text theme**: Color for the status bar text at the top of the app. - -3. Select **Next**. +2. Grant *Azure API Connections* permission for the static AppId fe053c5f-3692-4f14-aef2-ee34fc081cae: + ```powershell + Connect-MgGraph -TenantId + New-MgServicePrincipal -AppId fe053c5f-3692-4f14-aef2-ee34fc081cae -DisplayName "Azure API Connections" + ``` -### Step 5: Manage Output +3. Grant *PowerApps Service* permission for the static AppId 475226c6-020e-4fb2-8a90-7a972cbfc1d4: + ```powershell + Connect-MgGraph -TenantId + New-MgServicePrincipal -AppId 475226c6-020e-4fb2-8a90-7a972cbfc1d4 -DisplayName "PowerApps Service" + ``` -1. Add the Azure blob storage account name and the container name created during target platform step. -1. Download the built APK/IPA from the Azure blob storage location created above after the build steps are completed. +> [!NOTE] +> If only the **Application name** field is visible, continue to the next steps and select **Android** as a target platform to display the signature hash field. +## Configure API permissions manually (optional) -:::image type="content" source="media/how-to-v2/manage-output.png" alt-text="Screenshot that shows the fifth step on how to manage the output using Azure blob storage." lightbox="media/how-to-v2/manage-output.png"::: +If you get errors, manually configure API permissions. For more information, see [Add and configure](/azure/active-directory/develop/v2-permissions-and-consent#request-the-permissions-in-the-app-registration-portal). -### Step 6: Wrap up -On the **Wrap up** screen, review the app details and then select **Build**. -After a successful build, you'll see your mobile app in the **azure blob storage location** that you have selected in the previous step. +#### Add Redirect URIs as an app admin -### View your build +1. In the Azure Portal, go to your app registration > **Authentication**. +2. Select **Add a platform** and choose **iOS** or **Android**. +3. For iOS, enter the **Bundle ID**. + For Android, enter both the **Bundle ID** and **Signature hash key**. + :::image type="content" source="media/how-to-v2/redirect-uri.png" alt-text="Screenshot that shows redirect URIs for the app." lightbox="media/how-to-v2/redirect-uri.png"::: -1. After completing the wrap-up step in wrap wizard, select the **Build** button to build your project. -1. Select **View Builds** to view your build. -1. Alternatively, go to the **Wrap projects** option in your side pane to view the build. -1. Hover over the required project, and select it. -1. The **View builds** option appears at the top header. Select it to view the build status and other options. +### 5. Configure branding -:::image type="content" source="media/how-to-v2/view-build.png" alt-text="Screenshot that shows how to view builds." lightbox="media/how-to-v2/view-build.png"::: +1. On the **Configure Branding** step, set the following options for your app: -## Test and distribute mobile app package - -Test and distribute your application. If you face any issue while testing, [check troubleshoot page.](/troubleshoot/power-platform/power-apps/manage-apps/wrap-issues) +> [!NOTE] +> All images must be in .png format. Default images will be used if no custom images are selected. - -## Register your app on Azure portal manually (optional) -You can automatically create your app registration in the wrap wizard as mentioned in [step 3](wrap-how-to.md#step-3-register-app). Or, you can manually create a new registration for your app on Azure portal. More information: [Quickstart: Register an application with the Microsoft identity platform](/azure/active-directory/develop/quickstart-register-app). +| Setting | Description | Requirements | +|---------|-------------|--------------| +| **App icons** | Icons for your app | iOS: 1024x1024 px or larger
    Android: 432x432 px or larger | +| **Splash screen image** | Image shown while the app loads | .png format | +| **Welcome screen image** | Image shown on the sign-in screen | .png format | +| **Background fill color** | Color for welcome screen background | Hexadecimal color code | +| **Button fill color** | Color for buttons | Hexadecimal color code | +| **Status bar text theme** | Color for the status bar text | Light or Dark | -> [!NOTE] -> Both single tenant and multitenant customers can use wrap to create native mobile apps based on their Power Apps canvas apps. +2. Select **Next**. -Whether you're a single or multitenant maker, you must select any of the options containing **Any Microsoft Entra directory - Multitenant** when choosing the supported account type for your app to enable it for wrap. Choose one of the following account types: - - Accounts in any organizational directory (Any Microsoft Entra directory - Multitenant) - - Accounts in any organizational directory (Any Microsoft Entra directory - Multitenant) and personal Microsoft accounts such as Skype or Xbox. +### 6. Manage output -:::image type="content" source="media/wrap-intro/AppResgistration_AccountTypes.png" alt-text="App registration - supported account types for wrap."::: +1. Enter your Azure blob storage account name and container name. +2. After the build completes, download your APK or IPA from the Azure blob storage location. +:::image type="content" source="media/how-to-v2/manage-output.png" alt-text="Screenshot that shows the fifth step on how to manage the output using Azure blob storage." lightbox="media/how-to-v2/manage-output.png"::: -> [!IMPORTANT] -> - Wrap only supports **Multitenant** account types currently. **Single tenant** account type isn't yet supported. More information on the account types: [Account types in Microsoft identity platform](/azure/active-directory/develop/v2-supported-account-types). -> - You must create a separate **Redirect URI** for each platform (iOS, Android) that you want to target. +### 7. Wrap up and build -## Configure the API permissions for your app manually (optional) +1. On the **Wrap up** screen, review your app details and select **Build**. +2. After a successful build, your app package will be available in the Azure blob storage you specified. -When you complete [step 3](wrap-how-to.md#step-3-register-app) the wrap wizard will automatically configure all the required API permissions for your app. +### View your build -If you get errors in wrap wizard, you can manually configure API permissions. More information: [Add and configure](/azure/active-directory/develop/v2-permissions-and-consent#request-the-permissions-in-the-app-registration-portal) +You can view your build in several ways: -The following API permissions are required when manually configure API permissions: +- After building, select **View Builds** +- Go to **Wrap projects** in the side pane, hover over the required project, and select it +- Select the **View builds** option in the top header -- **Microsoft APIs** - - *Dynamics CRM* -- **APIs my organization uses** - - *Azure API Connections* - - *PowerApps Service* - - *Power BI* (only required if your canvas app(s) use Power BI data) - - *Microsoft Mobile Application Management* (only required if you want to use [Microsoft Intune](/mem/intune/fundamentals/what-is-intune) for mobile app distribution) +:::image type="content" source="media/how-to-v2/view-build.png" alt-text="Screenshot that shows how to view builds." lightbox="media/how-to-v2/view-build.png"::: > [!NOTE] -> If you don't find the permissions under **APIs my organization uses**, run the following PowerShell commands as appropriate, and try again: -> - Ensure the module [Microsoft Graph](https://www.powershellgallery.com/packages/Microsoft.Graph/) is available or install it using the following command: -> ```powershell -> Install-Module -Name Microsoft.Graph -> ``` -> - Missing *Azure API Connections* permission: -> ```powershell -> Connect-MgGraph -TenantId -> New-MgServicePrincipal -AppId fe053c5f-3692-4f14-aef2-ee34fc081cae -DisplayName "Azure API Connections" -> ``` -> - Missing *PowerApps Service* permission: -> ```powershell -> Connect-MgGraph -TenantId -> New-MgServicePrincipal -AppId 475226c6-020e-4fb2-8a90-7a972cbfc1d4 -DisplayName "PowerApps Service" -> ``` - -For detailed steps, refer to [Request the permissions in the app registration portal](/azure/active-directory/develop/v2-permissions-and-consent#request-the-permissions-in-the-app-registration-portal). - -## Create an app center location for your mobile app manually (optional) +> To manually code sign an iOS app, unzip the IPA file using a Mac device. -You can manually create an app center location for your mobile app directly in app center. More information: [App center location](overview.md#app-center-location) +## Test and distribute your app -> [!TIP] -> For more information about app center, go to [Visual Studio app center documentation](/appcenter/). +Test your app and distribute it as needed. If you encounter issues, see the [troubleshooting page](/troubleshoot/power-platform/power-apps/manage-apps/wrap-issues). -1. Go to [app center](https://appcenter.ms/). -1. Sign in with your work or school account. -1. If you don't have any existing organization, select **Add new** > **Add new organization** to create a new organization. -1. Select the organization from the list on the left-pane. -1. Select **Apps** > **Add app**. -1. Enter app name. -1. Select app release type. -1. Select **Custom** OS for iOS apps, or **Android** OS for Android apps. - > [!NOTE] - > You must create separate app center containers for each platform. - -1. For **Android** OS, select **Platform** as **React Native**. +## Register your app on Azure portal manually (optional) - > [!NOTE] - > **Platform** must be **React Native** for all apps in app center. +You can create your app registration automatically in the wizard or manually in Azure. More information: [Quickstart: Register an application with the Microsoft identity platform](/azure/active-directory/develop/quickstart-register-app). - :::image type="content" source="media/wrap-canvas-app/app-center-app.png" alt-text="App center app configuration."::: +> [!NOTE] +> Both single tenant and multitenant customers can use wrap to create native mobile apps based on their Power Apps canvas apps. -1. Select **Add new app**. +When registering, select an account type containing **Any Microsoft Entra directory - Multitenant**: +- Accounts in any organizational directory (Any Microsoft Entra directory - Multitenant) +- Accounts in any organizational directory (Any Microsoft Entra directory - Multitenant) and personal Microsoft accounts such as Skype or Xbox -1. Copy the app's app center URL. You'll need it later, to configure the wrap project in Power Apps. +:::image type="content" source="media/wrap-intro/AppResgistration_AccountTypes.png" alt-text="App registration - supported account types for wrap."::: - For example, `https://appcenter.ms/orgs/Contoso-sales/apps/Sample-canvas-app-for-Android-OS/` +> [!IMPORTANT] +> - Wrap only supports **Multitenant** account types currently. The single tenant account type is not yet supported. More information: [Account types in Microsoft identity platform](/azure/active-directory/develop/v2-supported-account-types). +> - You must create a separate **Redirect URI** for each platform (iOS, Android). - :::image type="content" source="media/wrap-canvas-app/app-center-url.png" alt-text="App center URL."::: +## Sign your mobile app package manually (optional) - +You can sign your app automatically in **Step 2** or manually after building. [Code signing](overview.md#code-signing) is different for Android and iOS. -## Sign your mobile app package manually (optional) -You can automatically sign your mobile app package during wrap process in **Step 2**, but you can also do so manually after the mobile app package is build. [Code signing](overview.md#code-signing) process is different for Android and iOS devices. +**Advantages of automatic signing for iOS and Android (APK):** -- [Manual code sign for iOS](code-sign-ios.md) -- [Manual code sign for Android](code-sign-android.md) -- [Code signing for Google Play Store](https://developer.android.com/studio/publish/app-signing) +- You don't need to repeat the signing process during rewrapping. +- You don't have to wait for app developers to finish the process. +- You don't need to set up Android Studio or remember passwords. +- You don't need a Mac device for iOS signing. +| Platform | Signing Method | +|----------|---------------| +| iOS | [Manual code sign for iOS](code-sign-ios.md) | +| Android | [Manual code sign for Android](code-sign-android.md) | +| Google Play Store | [Code signing for Google Play Store](https://developer.android.com/studio/publish/app-signing) | ## See also -- [Troubleshoot issues with the wrap feature in Power Apps](/troubleshoot/power-platform/power-apps/manage-apps-and-solutions/wrap-issues) + +- [Troubleshoot issues with the wrap feature in Power Apps](/troubleshoot/power-platform/power-apps/manage-apps/wrap-issues) - [Wrap overview](overview.md) - [Manual code sign for iOS](code-sign-ios.md) - [Manual code sign for Android](code-sign-android.md) -- [Code sign for Google Play Store](https://developer.android.com/studio/publish/app-signing) - [Create your Azure Key Vault for automated code signing](create-key-vault-for-code-signing.md) -- [Frequently asked questions for wrap](faq.yml) -- [Troubleshoot issues with the wrap feature in Power Apps](/troubleshoot/power-platform/power-apps/manage-apps/wrap-issues) - +- [Frequently asked questions for wrap](faq.yml) diff --git a/powerapps-docs/maker/data-platform/EnvironmentVariables-azure-key-vault-secrets.md b/powerapps-docs/maker/data-platform/EnvironmentVariables-azure-key-vault-secrets.md index bf040f819b..9ecf653a34 100644 --- a/powerapps-docs/maker/data-platform/EnvironmentVariables-azure-key-vault-secrets.md +++ b/powerapps-docs/maker/data-platform/EnvironmentVariables-azure-key-vault-secrets.md @@ -6,13 +6,14 @@ author: caburk ms.subservice: dataverse-maker ms.author: caburk ms.reviewer: matp -ms.date: 11/19/2024 +ms.date: 03/31/2025 +ms.update-cycle: 180-days ms.topic: overview ms.collection: bap-ai-copilot search.audienceType: - maker contributors: - - shmcarth + - matapg007 - asheehi1 - Laskewitz --- @@ -58,7 +59,7 @@ Once Azure Key Vault is configured and you have a secret registered in your vaul > [!NOTE] > -> - User access validation for the secret is performed in the background. If the user doesn’t have at least read permission, this validation error is displayed: "This variable didn't save properly. User is not authorized to read secrets from 'Azure Key Vault path'." +> - User access validation for the secret is performed in the background. If the user doesn’t have at least read permission, this validation error is displayed: "This variable didn't save properly. User isn't authorized to read secrets from 'Azure Key Vault path'." > - Currently, Azure Key Vault is the only secret store that is supported with environment variables. > - The Azure Key Vault must be in the same tenant as your Power Platform subscription. @@ -85,7 +86,7 @@ Once Azure Key Vault is configured and you have a secret registered in your vaul A simple scenario to demonstrate how to use a secret obtained from Azure Key Vault is to create a Power Automate flow to use the secret to authenticate against a web service. > [!NOTE] -> The URI for the web service in this example is not a functioning web service. +> The URI for the web service in this example isn't a functioning web service. 1. Sign into [Power Apps](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc), select **Solutions**, and then open the unmanaged solution you want. [!INCLUDE [left-navigation-pane](../../includes/left-navigation-pane.md)] 1. Select **New** > **Automation** > **Cloud flow** > **Instant**. @@ -147,7 +148,7 @@ By completing the previous steps in this section, Copilot Studio now has access 1. Select **Save** to save your topic. 1. In the test pane, test your topic by using one of the start phrases of the topic where you just added the **Send a message** node with the environment variable secret. You should run into an error that looks like this: - :::image type="content" source="media/env-var-secret8.png" alt-text="Error message: Bot is not allowed to use environment variable. To add the bot to the allowed list add a tag 'AllowedBots' with value."::: + :::image type="content" source="media/env-var-secret8.png" alt-text="Error message: Bot isn't allowed to use environment variable. To add the bot to the allowed list add a tag 'AllowedBots' with value."::: This means you need to go back to Azure Key Vault and edit the secret. Leave Copilot Studio open, because you come back here later. @@ -173,10 +174,28 @@ Alternatively, you can allow all copilots in an environment access to the secret Environment variables referencing Azure Key Vault secrets are currently limited for use with Power Automate flows, Copilot Studio agents, and custom connectors. +## Integrate Azure Key Vault private link with environment variables + +Using Azure Key Vault secrets with environment variables requires configuring Azure Key Vault so that Power Platform can read the specific secrets you want to reference. This capability enables support for environment variables with Azure Key Vault secrets connecting via a private link, enhancing security and providing a more robust integration. + +1. Set up Azure Virtual Network support for Power Platform to integrate environment variables with Azure Key Vault secrets without exposing them to the public internet. For detailed instructions, go to [set up virtual network](/power-platform/admin/vnet-support-setup-configure). +1. Ensure that the Azure subscription for Key Vault and Power Platform Virtual Network are in the same tenant, as cross-tenant integration isn't supported. +1. Ensure that the user who creates the environment variables has appropriate permissions to the Azure Key Vault resource. For more details, go to [Configure the Azure key Vault](/power-apps/maker/data-platform/environmentvariables-azure-key-vault-secrets#configure-azure-key-vault) +1. Create a key vault and establish a private link connection. The steps to create the key vault should include the following actions: + + - Disable public access. + - Create a private endpoint. + - Select the virtual network and subnet where you want this private endpoint to be created. Ensure to connect the Virtual Network (virtual network) delegated to Power Platform. + - Validate the private link connectivity. + + For detailed steps, go to [Set up Virtual Network support for Power Platform](/power-platform/admin/vnet-support-setup-configure). + +1. Create [environment variables](/power-apps/maker/data-platform/environmentvariables-azure-key-vault-secrets#create-a-new-environment-variable-for-the-key-vault-secret) secrets by linking to the Azure Key Vault. + ### See also [Use data source environment variables in canvas apps](environmentvariables-data-source-canvas-apps.md)
    [Use environment variables in Power Automate solution cloud flows](environmentvariables-power-automate.md)
    [Environment variables overview.](EnvironmentVariables.md)
    -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/data-platform/EnvironmentVariables-data-source-canvas-apps.md b/powerapps-docs/maker/data-platform/EnvironmentVariables-data-source-canvas-apps.md index ceb9930533..141dfa5a65 100644 --- a/powerapps-docs/maker/data-platform/EnvironmentVariables-data-source-canvas-apps.md +++ b/powerapps-docs/maker/data-platform/EnvironmentVariables-data-source-canvas-apps.md @@ -7,7 +7,7 @@ ms.subservice: dataverse-maker ms.author: caburk ms.reviewer: matp ms.date: 01/31/2025 -ms.topic: conceptual +ms.topic: how-to search.audienceType: - maker contributors: diff --git a/powerapps-docs/maker/data-platform/access-migrate-linked-tables.md b/powerapps-docs/maker/data-platform/access-migrate-linked-tables.md index 7439caa50e..1be4195f48 100644 --- a/powerapps-docs/maker/data-platform/access-migrate-linked-tables.md +++ b/powerapps-docs/maker/data-platform/access-migrate-linked-tables.md @@ -3,7 +3,7 @@ title: System tables and columns in Dataverse and Dataverse for Teams | Microsof description: When you migrate from Access to Dataverse, you'll see columns added to tables after the migration and additional linked tables added in Access to support the columns. author: NHelgren -ms.topic: conceptual +ms.topic: article ms.custom: - model ms.reviewer: matp diff --git a/powerapps-docs/maker/data-platform/api-limits-overview.md b/powerapps-docs/maker/data-platform/api-limits-overview.md index 7ce70f25d4..e98f5809dc 100644 --- a/powerapps-docs/maker/data-platform/api-limits-overview.md +++ b/powerapps-docs/maker/data-platform/api-limits-overview.md @@ -5,7 +5,7 @@ ms.date: 01/30/2023 author: MicroSri ms.author: sriknair ms.reviewer: jdaly -ms.topic: "conceptual" +ms.topic: concept-article search.audienceType: - developer contributors: diff --git a/powerapps-docs/maker/data-platform/autonumber-fields.md b/powerapps-docs/maker/data-platform/autonumber-fields.md index 9cf73c66d0..d6973ee29d 100644 --- a/powerapps-docs/maker/data-platform/autonumber-fields.md +++ b/powerapps-docs/maker/data-platform/autonumber-fields.md @@ -4,7 +4,7 @@ description: "Understand how to create, manage, and use autonumber columns" keywords: "" ms.date: 02/26/2019 ms.custom: -ms.topic: conceptual +ms.topic: article applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/azure-synapse-incremental-updates.md b/powerapps-docs/maker/data-platform/azure-synapse-incremental-updates.md index 7cc07a1e63..7f6ef8de1a 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-incremental-updates.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-incremental-updates.md @@ -1,8 +1,8 @@ --- -title: "Query and analyze the incremental updates | MicrosoftDocs" +title: Query and analyze the incremental updates with Azure Synapse Link for Dataverse description: "Learn how to query and analyze the incremental updates made to Microsoft Dataverse data during a user-specified time interval with Power Apps and Azure Synapse Analytics" ms.custom: "" -ms.date: 03/04/2025 +ms.date: 04/29/2025 ms.reviewer: "matp" ms.suite: "" ms.tgt_pltfrm: "" @@ -16,9 +16,9 @@ ms.author: "milindav" search.audienceType: - maker --- -# Query and analyze the incremental updates +# Query and analyze the incremental updates with Azure Synapse Link for Dataverse -Microsoft Dataverse data (including data from Dynamics 365 apps and finance and operations) can continuously change through create, update, and delete transactions. With the incremental update option, you can build incremental data pipelines that apply these changes to downstream systems and databases. Synapse Link for Dataverse exports incremental data in time stamped folders that contain data changes within user-specified time intervals. +Microsoft Dataverse data (including data from Dynamics 365 apps and finance and operations) can continuously change through create, update, and delete transactions. With the incremental update option, you can build incremental data pipelines that apply these changes to downstream systems and databases. Azure Synapse Link for Dataverse exports incremental data in time stamped folders that contain data changes within user-specified time intervals. You can leverage incremental update feature for several scenarios: @@ -29,7 +29,7 @@ You can leverage incremental update feature for several scenarios: Azure Synapse Link for Dataverse also provides the option to export and maintain a replica of tables in your Azure Data Lake (Gen 2) storage. You can configure Azure Synapse Link to export incremental data in addition to exporting a replica of tables. Each configuration (known as a "Synapse Link profile") can export either tables or incremental data. While you can create multiple profiles, you can't configure both tables and incremental updates within the same profile. > [!IMPORTANT] -> An initial time stamped folder is created when you enable this feature with a copy of your data. Subsequent timestamp and table folders are created only when there is a data update during the user-specified time interval. +> An initial time stamped folder is created when you enable this feature with a copy of your data. Subsequent timestamp and table folders are created only when there's a data update during the user-specified time interval. > > Once you create a Synapse Link profile with the incremental update feature, the configuration applies to all selected tables within the Synapse Link profile. > @@ -57,15 +57,15 @@ This guide assumes that you have already met the prerequisites to create an Azur :::image type="content" source="media/azure-synapse-add-tables-settings.png" alt-text="Add tables settings"::: > [!NOTE] -> The minimum time interval is 5 minutes. That means the incremental update folder is created every five minutes and contain the changes that occurred within the time interval. This setting is also configurable after the link creation via **Manage tables**. Maximum time interval is 1140 minutes (or 24 hours). +> The minimum time interval is 5 minutes. That means the incremental update folder is created every five minutes and contain the changes that occurred within the time interval. This setting is also configurable after the link creation via **Manage tables**. Maximum time interval is 1,140 minutes (or 24 hours). > -> Ensure **Connect to your Azure Synapse workspace Azure Synapse workspace** is not checked in the first page of setup. +> Ensure **Connect to your Azure Synapse workspace Azure Synapse workspace** isn't checked in the first page of setup. > -> Incremental data in time stamped folders are stored as comma separated value text files (CSV files). You can't use the Delta conversioon feature for incremental data and obtain incremental files in a Delta parquet format. +> Incremental data in time stamped folders are stored as comma separated value text files (CSV files). You can't use the Delta conversion feature for incremental data and obtain incremental files in a Delta parquet format. ## View incremental folder at Microsoft Azure Storage -When you create a Synapse Link profile with incremental data, the system makes an initial copy of all tables and stores it in the first incremental update folder. Once the initial copy is created, the system creates subsequent update folders with changed data. If there are no changes in any of the tables selected, you will not see incremental data folders. +When you create a Synapse Link profile with incremental data, the system makes an initial copy of all tables and stores it in the first incremental update folder. Once the initial copy is created, the system creates subsequent update folders with changed data. If there are no changes in any of the tables selected, you won't see incremental data folders. To see incremental data folders in the storage account: @@ -83,15 +83,15 @@ To see incremental data folders in the storage account: You can copy incremental data into an Azure SQL Database or a data warehouse using data integration tools such as Azure Data Factory or Azure Synapse Analytics pipelines. We provide a sample data pipeline that can be used for this purpose. For more information:[Copy Dataverse data into Azure SQL](azure-synapse-link-pipelines.md). -If you're a Dynamics 365 finance and oerations apps customer transitioning from the change feeds feature you can use [Data integration sample tools provided in GitHub](https://github.com/microsoft/Dynamics-365-FastTrack-Implementation-Assets/tree/master/Analytics/DataverseLink/DataIntegration) to update existing data pipelines used with the change feeds feature. +If you're a Dynamics 365 finance and operations apps customer transitioning from the change feeds feature you can use [Data integration sample tools provided in GitHub](https://github.com/microsoft/Dynamics-365-FastTrack-Implementation-Assets/tree/master/Analytics/DataverseLink/DataIntegration) to update existing data pipelines used with the change feeds feature. You can also build your own data pipeline to consume incremental data. However, you need to consider the following best practices when designing your own pipeline: - **Consume data from previous time stamped folders only**: This way, you can avoid read-write conflicts with the Synapse Link service, which might be continuously updating data in the current folder. You can find the current folder by viewing the **Changelog/changelog.info** file. This file is a read-only file which contains a single row with the folder name that is currently updated. You shouldn't update this file as it can cause system instability. - You can view the **model.json** file located within each time stamped folder to read metadata such as column names for the data contained in table folders. Notice that each model.json file in the folder located within time stamped folders contain metadata for all the tables, not just the tables contained within the time stamped folder. - Avoid using other log files such as the Synapse.log file. This file is used for internal purposes and might not reflect accurate data. -- Consider deleting obsolete incremental folders from your Azure Data lake after you have finished processing. At present, Synapse Link maintains a lease on these files in Azure Storage to recover from any failures. The system might release the lease after some time. -- You should not modify or delete the "current folder" that is the folder contained in the **Changelog/changelog.info** file. If you change this file, system will pause processing data. +- Consider deleting obsolete incremental folders from your Azure Data lake after you have finished processing. At present, Synapse Link maintains a lease on these files in Azure Storage to recover from any failures. The system might release the lease after some time. You should only delete incremental folders that are *older than 24 hours* to avoid any conflicts with system operation. +- You shouldn't modify or delete the "current folder" that is the folder contained in the **Changelog/changelog.info** file. If you change this file, the system pauses processing data. :::image type="content" source="media/Synapse-Link-storage-change-Log-folder.png" alt-text="Incremental folders in Azure Data lake storage created by Synapse Link"::: diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-advanced-configuration.md b/powerapps-docs/maker/data-platform/azure-synapse-link-advanced-configuration.md index 58d7a620ce..15458d81c9 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-advanced-configuration.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-advanced-configuration.md @@ -6,7 +6,7 @@ ms.date: 10/28/2024 ms.reviewer: "Mattp123" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: how-to applies_to: - "powerapps" author: "sabinn-msft" diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-build-apps-with-fabric.md b/powerapps-docs/maker/data-platform/azure-synapse-link-build-apps-with-fabric.md index fba759befc..d1d4155829 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-build-apps-with-fabric.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-build-apps-with-fabric.md @@ -5,6 +5,7 @@ author: MilindaV2 ms.author: Milindav ms.reviewer: matp ms.service: powerapps +ms.subservice: dataverse-maker ms.topic: how-to ms.date: 03/10/2025 ms.custom: template-how-to diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-choices-adf.md b/powerapps-docs/maker/data-platform/azure-synapse-link-choices-adf.md index bf4b508a5f..b82725b30e 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-choices-adf.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-choices-adf.md @@ -7,7 +7,7 @@ ms.reviewer: "Mattp123" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: how-to applies_to: - "powerapps" author: "sabinn-msft" diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-choices-powerbi.md b/powerapps-docs/maker/data-platform/azure-synapse-link-choices-powerbi.md index 7b13c4fa7a..34b57fdcea 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-choices-powerbi.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-choices-powerbi.md @@ -7,7 +7,7 @@ ms.reviewer: "Mattp123" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: how-to applies_to: - "powerapps" author: "sabinn-msft" diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-choices-serverless.md b/powerapps-docs/maker/data-platform/azure-synapse-link-choices-serverless.md index cd3127ae1c..a9429fa488 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-choices-serverless.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-choices-serverless.md @@ -7,7 +7,7 @@ ms.reviewer: "Mattp123" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: how-to applies_to: - "powerapps" author: "sabinn-msft" diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-copy-mult-data-lakes.md b/powerapps-docs/maker/data-platform/azure-synapse-link-copy-mult-data-lakes.md index e2a26840e5..a1ef8628a5 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-copy-mult-data-lakes.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-copy-mult-data-lakes.md @@ -7,7 +7,7 @@ ms.reviewer: "Mattp123" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: how-to applies_to: - "powerapps" author: "sabinn-msft" diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-data-lake.md b/powerapps-docs/maker/data-platform/azure-synapse-link-data-lake.md index 983918d1fb..3d0c8362d8 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-data-lake.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-data-lake.md @@ -1,18 +1,14 @@ --- -title: "Create an Azure Synapse Link for Dataverse with Azure Data Lake in Power Apps | MicrosoftDocs" +title: "Create an Azure Synapse Link for Dataverse with Azure Data Lake in Power Apps" description: "Learn how to export table data to Azure Data Lake Storage Gen2 in Power Apps." -ms.custom: "" -ms.date: 01/15/2025 +ms.date: 04/29/2025 ms.reviewer: "Mattp123" -ms.suite: "" -ms.tgt_pltfrm: "" ms.topic: "how-to" applies_to: - "powerapps" -author: "sabinn-msft" -ms.assetid: +author: MilindaV2 ms.subservice: dataverse-maker -ms.author: "matp" +ms.author: "milindav" search.audienceType: - maker contributors: @@ -56,7 +52,7 @@ You can use the Azure Synapse Link to connect your Microsoft Dataverse data to A > [!NOTE] > As part of linking the environment to a data lake, you grant the Azure Synapse Link service access to your storage account. Ensure that you followed the [prerequisites](#prerequisites) of creating and configuring the Azure data lake storage account, and granting yourself an owner role on the storage account. Additionally, you grant the Power Platform Dataflows service access to your storage account. More information: [Self-service data prep with dataflows](self-service-data-prep-with-dataflows.md). -1. Add the tables you want to export, and then select **Save**. Only tables with change tracking enabled can be exported. More information: [Enable change tracking](/dynamics365/customer-engagement/admin/enable-change-tracking-control-data-synchronization). +1. Choose the tables you want to export either by selecting them one by one or by entering a comma separated list of tables in the search box, and then select **Save**. Only tables with the **Track changes** property can be exported. More information: [Advanced options for tables](/power-apps/maker/data-platform/create-edit-entities-portal?tabs=excel#advanced-options). ![Select tables for export.](media/export-data-lake-select-entity.png "Select tables for export") diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-dedicated.md b/powerapps-docs/maker/data-platform/azure-synapse-link-dedicated.md index 7764fe39d1..69e6cd1419 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-dedicated.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-dedicated.md @@ -7,7 +7,7 @@ ms.reviewer: "Mattp123" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: how-to applies_to: - "powerapps" author: "sabinn-msft" diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-delta-lake.md b/powerapps-docs/maker/data-platform/azure-synapse-link-delta-lake.md index 8d8fdb516c..6fdfa6a7e6 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-delta-lake.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-delta-lake.md @@ -6,35 +6,20 @@ ms.author: jasonhuang ms.reviewer: matp ms.service: powerapps ms.topic: how-to -ms.date: 03/10/2025 +ms.subservice: dataverse-maker +ms.date: 05/13/2025 ms.custom: template-how-to --- # Export Dataverse data in Delta Lake format -Use Azure Synapse Link for Dataverse to export your Microsoft Dataverse data to Azure Synapse -Analytics in Delta Lake format. Then explore your data and accelerate time to insight. This article -provides the following information and shows you how to perform the following tasks: +Use Azure Synapse Link for Dataverse to export your Microsoft Dataverse data in Delta Lake format. Delta Lake is the native format for Microsoft Fabric as well as many other tools like Azure Databricks. Exporting data in Delta lake format directly from Dataverse eliminates the need to have a separate Delta Lake conversion processes on your own and accelerates time to insight. This article provides information about this feature and shows you how to perform the following tasks: - Explains Delta Lake and Parquet and why you should export data in this format. - Export your Dataverse data to your Azure Synapse Analytics workspace in Delta Lake format with the Azure Synapse Link. - Monitor your Azure Synapse Link and data conversion. - View your data from Azure Data Lake Storage Gen2. - View your data from Synapse Workspace. - -> [!IMPORTANT] -> -> - If you're upgrading from CSV to Delta Lake with existing custom views, we recommend updating the script to replace all **partitioned** tables to **non_partitioned.** Do this by looking for instances of `_partitioned` and replace them with an empty string. -> - For the Dataverse configuration, append-only is enabled by default to export CSV data in `appendonly` mode. But the Delta Lake table will have an in-place update structure because the Delta Lake conversion comes with a periodic merge process. -> - There are no costs incurred with the creation of Spark pools. Charges are only incurred once a Spark job is executed on the target Spark pool and the Spark instance is instantiated on demand. These costs are related to the usage of Azure Synapse workspace Spark and are billed monthly. The cost of conducting Spark computing mainly depends on the time interval for incremental update and the data volumes. More information: [Azure Synapse Analytics pricing](https://azure.microsoft.com/pricing/details/synapse-analytics/) -> - It's important to take these additional costs into consideration when deciding to use this feature as they aren't optional and must be paid in order to continue using this feature. -> - End of life announced (EOLA) for Azure Synapse Runtime for Apache Spark 3.3 has been announced July 12, 2024. In accordance with the Synapse runtime for Apache Spark lifecycle policy, Azure Synapse runtime for Apache Spark 3.3 will be retired and disabled as of March 31, 2025. After the end of support date, the retired runtimes are unavailable for new Spark pools and existing workflows can't execute. Metadata will temporarily remain in the Synapse workspace. More information: [Azure Synapse Runtime for Apache Spark 3.3 (EOSA)](/azure/synapse-analytics/spark/apache-spark-33-runtime). To have your Synapse Link for Dataverse with export to Delta Lake format upgrade to Spark 3.4, do an in-place upgrade for your existing profiles. More information: [In-place upgrade to Apache Spark 3.4 with Delta Lake 2.4](/power-apps/maker/data-platform/azure-synapse-link-delta-lake#in-place-upgrade-to-apache-spark-3.4-with-delta-lake-2.4) -> - Beginning December 25, 2024, only Spark Pool version 3.4 will be supported when initially creating the link. - -> [!NOTE] -> The Azure Synapse Link status in Power Apps (make.powerapps.com) reflects the Delta Lake conversion state: -> - `Count` shows the number of records in the Delta Lake table. -> - `Last synchronized on` Datetime represents the last successful conversion timestamp. -> - `Sync status` is shown as **active** once the data sync and Delta Lake conversion complete, indicating that the data is ready for consumption. +- View your data in Microsoft Fabric. ## What is Delta Lake? @@ -54,6 +39,20 @@ Apache Parquet is the baseline format for Delta Lake, enabling you to leverage t When setting up an Azure Synapse Link for Dataverse, you can enable the **export to Delta Lake** feature and connect with a Synapse workspace and Spark pool. Azure Synapse Link exports the selected Dataverse tables in CSV format at designated time intervals, processing them through a Delta Lake conversion Spark job. Upon the completion of this conversion process, CSV data is cleaned up for storage saving. Additionally, a series of maintenance jobs are scheduled to run on a daily basis, automatically performing compaction and vacuuming processes to merge and clean up data files to further optimize storage and improve query performance. +> [!IMPORTANT] +> +> - If you're upgrading from CSV to Delta Lake with existing custom views, we recommend updating the script to replace all **partitioned** tables to **non_partitioned.** Do this by looking for instances of `_partitioned` and replace them with an empty string. +> - For the Dataverse configuration, append-only is enabled by default to export CSV data in `appendonly` mode. The Delta Lake table will have an in-place update structure because the Delta Lake conversion comes with a periodic merge process. +> - You need to provision a Spark pool (compute resources) in your own Azure subscription for Delta conversion. This Spark pool is used to perform periodic Delta conversions based on the time interval chosen by you. +> - There are no costs incurred with the creation of Spark pools. Charges are only incurred once a Spark job is executed on the target Spark pool and the Spark instance is instantiated on demand. These costs are related to the usage of Azure Synapse workspace Spark and are billed monthly. The cost of conducting Spark computing mainly depends on the time interval for incremental update and the data volumes. More information: [Azure Synapse Analytics pricing](https://azure.microsoft.com/pricing/details/synapse-analytics/) +> - You need to create a Spark pool with version 3.4. If you're already using this feature with Spark version 3.3, you need to perform an in-place upgrade for your existing profiles. More information: [In-place upgrade to Apache Spark 3.4 with Delta Lake 2.4](/power-apps/maker/data-platform/azure-synapse-link-delta-lake#in-place-upgrade-to-apache-spark-3.4-with-delta-lake-2.4) + +> [!NOTE] +> The Azure Synapse Link status in Power Apps (make.powerapps.com) reflects the Delta Lake conversion state: +> - `Count` shows the number of records in the Delta Lake table. +> - `Last synchronized on` Datetime represents the last successful conversion timestamp. +> - `Sync status` is shown as **active** once the data sync and Delta Lake conversion completes, indicating that the data is ready for consumption. + ## Prerequisites - Dataverse: You must have the Dataverse **system administrator** security role. Additionally, tables you want to export via Azure Synapse Link must have the **Track changes** property enabled. More information: [Advanced options](create-edit-entities-portal.md#advanced-options) @@ -78,9 +77,9 @@ This configuration can be considered a bootstrap step for average use cases. > [!IMPORTANT] > > - Use the Spark pool exclusively for Delta Lake conversation operation with Synapse Link for Dataverse. For optimal reliability and performance, avoid running other Spark jobs using the same Spark pool. -> - You might need to increase the number of nodes of the Spark pool if you expect a large amount of rows to be processed. If the size of the spark pool is insufficient, Delta conversion jobs might fail -> - 1 The same spark pool is used by the system to run a daily job that compacts Delta files in the lake. This option reduces the size of Delta files. In rare cases, this job might interfere with the incremental conversion job. You can increase the number of nodes to 20 in case you notice these failures, -> - You are only charged for the spark pool nodes actually utilized. Increasing the number of nodes might not result in higher charges. +> - You might need to increase the number of nodes of the Spark pool if you expect a large number of rows to be processed. If the size of the Spark pool is insufficient, Delta conversion jobs might fail +> - The same Spark pool is used by the system to run a nightly job that compacts Delta files in the lake between 11 PM and 6 AM local time. The system determines the night time to run this job based on the location of your Dataverse environment. You can't provide a specific time window. This option reduces the size of Delta files by merging files known as "compaction." In rare cases, this job might interfere with the incremental conversion job. You can increase the number of nodes to 20 in case you notice these failures. +> - You're only charged for the spark pool nodes actually utilized. Increasing the number of nodes might not result in higher charges. ## Connect Dataverse to Synapse workspace and export data in Delta Lake format @@ -122,12 +121,16 @@ bar. ## In place upgrade to Apache Spark 3.4 with Delta Lake 2.4 -### Prerequisites +In accordance with the Synapse runtime for Apache Spark lifecycle policy, Azure Synapse runtime for Apache Spark 3.3 is retired and disabled as of March 31, 2025. After the end of support date, the retired runtimes are unavailable for new Spark pools and existing workflows with Spark 3.3 pools won't be executed while metadata will temporarily remain in the Synapse workspace. More information: [Azure Synapse Runtime for Apache Spark 3.3 (EOSA)](/azure/synapse-analytics/spark/apache-spark-33-runtime). + +In order to ensure that your existing Synapse Link profiles continue to process data, you need to upgrade Synapse Link profiles to use Spark 3.4 pools using the "in-place upgrade process." -- You must have an existing Azure Synapse Link for Dataverse Delta Lake profile running with a Synapse Spark version 3.3. -- You must create a new Synapse Spark pool with Spark version 3.4, **using the same or higher nodes hardware configuration within the same Synapse workspace**. For information about how to create a Spark Pool, go to [Create new Apache Spark pool](/azure/synapse-analytics/quickstart-create-apache-spark-pool-portal#create-new-apache-spark-pool). This Spark pool should be created independent of the current 3.3 pool. +### In-place upgrade prerequisites -### In-place upgrade to Spark 3.4: +- You must have an existing Azure Synapse Link for Dataverse Delta lake profile running with a Synapse Spark version 3.3. +- You must create a new Synapse Spark pool with Spark version 3.4, **using the same or higher nodes hardware configuration within the same Synapse workspace**. For information about how to create a Spark pool, go to [Create new Apache Spark pool](/azure/synapse-analytics/quickstart-create-apache-spark-pool-portal#create-new-apache-spark-pool). This Spark pool should be created independent of the current 3.3 pool - **do not delete your Spark 3.3 pool or create a Spark 34 pool with the same name** + +### In-place upgrade to Spark 3.4 1. Sign in to Power Apps and select your preferred environment. 2. On the left navigation pane, select **Azure Synapse Link**. If the item isn’t in the left navigation pane, select **…More** and then select the item you want. @@ -135,7 +138,10 @@ bar. 4. Select the available Spark pool from the list, and select then **Update**. > [!NOTE] -> The Spark pool upgrade occurs only when a new Delta Lake conversion Spark job is triggered. Ensure you have at least one data change after selecting **Update**. +> +> - The Spark pool upgrade occurs only when a new Delta lake conversion Spark job is triggered. Ensure you have at least one data change after selecting **Update**. +> - You can delete the older Spark 3.3 pool after verifying that Delta conversion jobs use the new pool. + +## Related articles -## See also [What is Azure Synapse Link for Dataverse?](export-to-data-lake.md) diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-incremental.md b/powerapps-docs/maker/data-platform/azure-synapse-link-incremental.md index 68cb9f532c..401d96426a 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-incremental.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-incremental.md @@ -4,10 +4,9 @@ description: "Learn how to read the incremental updates of your Dataverse data." ms.custom: "" ms.date: 08/06/2021 ms.reviewer: "Mattp123" - ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: how-to applies_to: - "powerapps" author: "sabinn-msft" diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-msi.md b/powerapps-docs/maker/data-platform/azure-synapse-link-msi.md index febabfb34f..12a9273e0c 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-msi.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-msi.md @@ -8,6 +8,7 @@ ms.service: powerapps ms.topic: how-to ms.date: 09/24/2024 ms.custom: template-how-to +ms.subservice: dataverse-maker --- # Use managed identities for Azure with your Azure data lake storage @@ -152,14 +153,14 @@ Only the Dynamics 365 and Power Platform admins who were granted the reader role 1. Obtain the Dataverse environment ID. 1. Sign into the [Power Platform admin center](https://admin.powerplatform.microsoft.com). - 1. Select **Environments**, and then open your environment. + 1. Select **Manage** > **Environments**, and then open your environment. 1. In the **Details** section, copy the **Environment ID**. 1. To link to the Dataverse environment, run this PowerShell script: `./NewIdentity.ps1` 1. Provide the Dataverse environment ID. 1. Provide the **ResourceId**.
    **StatusCode = 202** indicates the link was successfully created. 1. Sign into the [Power Platform admin center](https://admin.powerplatform.microsoft.com). -1. Select **Environments**, and then open the environment you specified earlier. +1. Select **Manage** > **Environments**, and then open the environment you specified earlier. 1. In the **Recent operations** area, select **Full history** to validate the connection of the new identity. ## Configure network access to the Azure Data Lake Storage Gen2 diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-notifications.md b/powerapps-docs/maker/data-platform/azure-synapse-link-notifications.md index e6962f75f6..488ffc9923 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-notifications.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-notifications.md @@ -5,6 +5,7 @@ author: "JasonHQX" ms.author: jasonhuang ms.reviewer: matp ms.service: powerapps +ms.subservice: dataverse-maker ms.topic: how-to ms.date: 03/20/2024 ms.custom: template-how-to diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-olc.md b/powerapps-docs/maker/data-platform/azure-synapse-link-olc.md index 294577fd1c..681451ead0 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-olc.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-olc.md @@ -4,10 +4,9 @@ description: "Learn how to manage your Azure Synapse Link for Dataverse profiles ms.custom: "" ms.date: 11/01/2021 ms.reviewer: "Mattp123" - ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article applies_to: - "powerapps" author: "sabinn-msft" diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-parquet.md b/powerapps-docs/maker/data-platform/azure-synapse-link-parquet.md index c258a193fd..a9fce58612 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-parquet.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-parquet.md @@ -7,7 +7,7 @@ ms.reviewer: "Mattp123" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: how-to applies_to: - "powerapps" author: "sabinn-msft" diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-select-FnO-data.md b/powerapps-docs/maker/data-platform/azure-synapse-link-select-FnO-data.md index f51c0e22f7..4ff429037e 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-select-FnO-data.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-select-FnO-data.md @@ -1,14 +1,14 @@ --- title: Choose finance and operations data in Azure Synapse Link for Dataverse description: Learn how to choose Dynamics 365 finance and operations apps data in Microsoft Azure Synapse Link for Dataverse and work with Azure Synapse Link and Power BI. -ms.date: 03/10/2025 +ms.date: 06/24/2025 ms.reviewer: matp ms.topic: "how-to" applies_to: - "powerapps" -author: Milindav +author: swatimadhukargit ms.subservice: dataverse-maker -ms.author: Milindav +ms.author: swatim search.audienceType: - maker ms.custom: bap-template @@ -48,8 +48,6 @@ Azure Synapse Link for Dataverse offers the following features that you can use > [!NOTE] > With the availability of [Power Platform environment provisioned with ERP-based templates](/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-erp-template?tabs=PPAC), also known as *unified environments*, Microsoft offers limited support for cloud hosted environments (CHE) as of June 1, 2024. If you're using cloud hosted environments, consider moving to [Power Platform environment provisioned with ERP based templates](/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-erp-template?tabs=PPAC). -- The finance and operations apps environment must be linked with Microsoft Power Platform. More information: [Link your finance and operations environment with Microsoft Power Platform](#link-your-finance-and-operations-environment-with-microsoft-power-platform) -- Enable **Sql row version change tracking** configuration key. More information: [Add configurations in a finance and operations apps environment](#add-configurations-in-a-finance-and-operations-apps-environment). - You can't add finance and operations data to an existing storage account that's configured with Azure Synapse Link. You must have access to an Azure subscription so that you can create a new Synapse Link profile. - Depending on how you plan to consume finance and operations data, there are additional prerequisites as shown here. @@ -59,29 +57,6 @@ Azure Synapse Link for Dataverse offers the following features that you can use | **Access finance and operations tables via Synapse query**

    Finance and operations tables are saved in delta parquet format enabling better read performance. You can't choose finance and operations tables to be saved in CSV format. | Go to [Add finance and operations tables in Azure Synapse Link](#add-finance-and-operations-tables-in-azure-synapse-link) | Azure Data lake
    Azure Synapse workspace
    Azure Synapse Spark pool | | **Load incremental data changes into your own downstream data warehouse**

    The system saves incremental changes into files in CSV format. No need to bring Synapse workspace or Spark pool because your data is saved in CSV format. | Go to [Access incremental data changes from finance and operations](#access-incremental-data-changes-from-finance-and-operations)
    Also go to [Azure Synapse Link - incremental update](/power-apps/maker/data-platform/azure-synapse-incremental-updates)) | Azure data lake | - -### Link your finance and operations environment with Microsoft Power Platform - -Verify with your finance and operations systems administrator whether your finance and operations environment is linked to Power Platform. - -To confirm that the finance and operations apps environment is linked with Microsoft Power Platform, review the **Environment** page in Lifecycle Services. - -You can link with Microsoft Power Platform when you deploy the new environment. You can also link existing environments with Power platform. For more information about Microsoft Power Platform integration, go to [Enable the Microsoft Power Platform integration](/dynamics365/fin-ops-core/dev-itpro/power-platform/enable-power-platform-integration#enable-during-deploy). - -> [!NOTE] -> Dual-write setup isn't required to enable finance and operations data in Azure Synapse Link. - -### Add configurations in a finance and operations apps environment - -You must enable the **Sql row version change tracking** configuration key in your finance and operations environment. In finance and operations versions 10.0.39 (PU63) or later, this configuration key might be enabled by default. - -To enable this configuration key, you must turn on maintenance mode. More information: [Turn maintenance mode on and off in DevTest/Demo environments hosted in Customer's subscription](/dynamics365/fin-ops-core/dev-itpro/sysadmin/maintenance-mode#turn-maintenance-mode-on-and-off-in-devtestdemo-environments-hosted-in-customers-subscription). - -![Screenshot that shows the Sql row version change tracking configuration key enabled.](media/Synapse-Link-Enable-Fno-Configuration.png) - -After row version change tracking is enabled, a system event that's triggered in your environment might cause reinitialization of tables in export to data lake. If you have downstream consumption pipelines, you might have to reinitialize the pipelines. More information: [Some tables have been "initialized" without user action](/dynamics365/fin-ops-core/dev-itpro/data-entities/finance-data-azure-data-lake#some-tables-have-been-initialized-without-user-action). - - ## Add finance and operations tables in Azure Synapse Link You can enable both finance and operations tables and finance and operations entities in Azure Synapse Link for Dataverse. This section is focused on finance and operations tables. @@ -103,33 +78,48 @@ You can enable both finance and operations tables and finance and operations ent > - Finance and operations apps tables are allowed only in Azure Synapse Link. Makers can't see them in the **Tables** area in Power Apps (make.powerapps.com). > - You don't have to define finance and operations apps tables as virtual tables, and you don't have to enable change tracking for each table. > -> To include finance and operations tables in Synapse Link, you must enable the [Delta lake feature](/power-apps/maker/data-platform/azure-synapse-link-delta-lake) in your Synapse Link profile. Finance and operations table selection isn't visible if your Synapse Link profile isn't configured for Delta lake. +> - You can't add finance and operations tables into an existing Synapse Link profile that contained Dataverse tables. You need to create a new profile. Once you create a new profile, you can add tables from both finance and operations as well as Dataverse. +> +> - To include finance and operations tables in Synapse Link, you must enable the [Delta lake feature](/power-apps/maker/data-platform/azure-synapse-link-delta-lake) in your Synapse Link profile. Finance and operations table selection isn't visible if your Synapse Link profile isn't configured for Delta lake. +> +> - Delta lake conversion time interval determines how often table data is updated in delta format. For near real time updates, enter 5, 15 or 60 minutes as the desired updated time interval. Choose 1440 for daily time interval if near real-time updates aren't required. Delta conversion consumes compute resources from the Spark pool you have provided in the configuration of the Synapse Link profile. The lower the time interval, the more compute resources are consumed and you can incur more cost. You can monitor the Spark pool cost in Azure portal to see the compute cost. > -> Delta lake conversion time interval determines how often table data is updated in delta format. For near real time updates, choose 15 minutes or one hour as the desired updated time internal. Choose daily time interval if near real-time updates aren't required. Delta conversion consumes compute resources from the Spark pool you have provided in the configuration of the Synapse Link profile. The lower the time interval, the more compute resources are consumed and you can incur more cost. Open the Spark pool in Azure portal to see the compute cost. +> - The time interval chosen for Spark conversion might not reflect the actual data freshness you observe in the lake. By entering 15 minutes as the time interval, you request Delta conversion jobs to be triggered every 15 minutes in case there are data changes. Depending on the size of the Spark compute pool and the amount of incremental data available for processing, the actual data refresh observed in the lake could be more than 15 minutes. You can increase the size of the Spark pool to achieve better data refresh times. More information: [Recommended spark pool configuration](/power-apps/maker/data-platform/azure-synapse-link-delta-lake#recommended-spark-pool-configuration) > -> In the event that the system ran into an error during initial sync or updates, you'll see an error icon and a pointer to trouble-shooting documents that can be used to diagnose and resolve the error. +> - In the event that the system ran into an error during initial sync or updates, you receive an error and a link to trouble-shooting documents that can be used to diagnose and resolve the error. -### Known limitations with finance and operations tables +### Known limitations and changes to behavior -Currently, there are limitations with finance and operations tables and Azure Synapse Link. We're working to address these limitations. To learn more about the upcoming roadmap and stay in touch with the product team, join the [preview Viva Engage group](https://aka.ms/SynapseLinkforDynamics/). +If you are transitioning from export to data lake feature in finance and operations, you might find a few changes to the behavior as described here. To learn more about the upcoming roadmap and stay in touch with the product team, join the [preview Viva Engage group](https://aka.ms/SynapseLinkforDynamics/). + +- **Don't see all tables?** Microsoft continues to enable all actively used finance and operations apps tables in Azure Synapse Link with application updates. If you have a previous version of finance and operations apps, not all required tables are enabled by default. You can enable more tables yourself by extending table properties and enabling the change tracking feature. For more information about how to enable change tracking, go to [Enable row version change tracking for tables](/dynamics365/fin-ops-core/dev-itpro/data-entities/rowversion-change-track#enable-row-version-change-tracking-for-tables). +- **Don't see your custom tables?** You must enable change tracking for them. More information: [Enable row version change tracking for tables](/dynamics365/fin-ops-core/dev-itpro/data-entities/rowversion-change-track#enable-row-version-change-tracking-for-tables). If you're using a cloud hosted environment (CHE), you must perform a database sync operation to reflect the changes. +- **Special fields** such as `TimeZoneID` (TZID), binary fields in finance and operations tables aren't enabled in Azure SynapseL Link. +- **Synapse Link retains deleted rows** from finance and operations tables. You can identify and filter out deleted rows using the `isDelete` field. Go to [Working with data and metadata](#working-with-data-and-metadata) for more information. +- **Staging tables, temporary tables, and deprecated tables**, where names begin with `del_` in finance and operations apps, aren't allowed in Azure Synapse Link. +- The following tables, known as *kernel* tables in finance and operations apps, are supported by Fabric and Synapse Link. These tables are special, and you don't need to enable change tracking. Also, they're updated every 24 hours and not updated near-real time as the data doesn't change frequently: `DATAAREA`, `USERINFO`, `SECURITYROLE`, `SECURITYUSERROLE`, `SQLDICTIONARY`, `PARTITIONS`, `SECURITYPRIVILEGE`, `TIMEZONESLIST`, `SECURITYDUTY`, `SECURITYSUBROLE`, `SECURITYUSERROLECONDITION`, `DATABASELOG`, `SECURITYROLERUNTIME`, `SECURITYROLEPRIVILEGEEXPLODEDGRAPH`, `SECURITYROLEDUTYEXPLODEDGRAPH`, `TIMEZONESRULESDATA`, `SECURITYROLEEXPLODEDGRAPH`, `USERDATAAREAFILTER`, `SYSINHERITANCERELATIONS`. +- [**Master company data sharing**](/dynamics365/fin-ops-core/dev-itpro/sysadmin/srs-overview#when-to-consider-duplicate-record-versus-master-company-sharing-preview) is a preview feature in finance and operations apps. Tables that participate in the master company data sharing feature are supported with Synapse Link or Fabric link features. Data exported from these tables are keyed by all company records, not only the master company. This is done to enable simpler reporting so you don't need to use master company data sharing logic to expand data. However, if you're transitioning from previous data export solutions, you might need to filter out data from non-master companies. +- [**Table inheritance and derived tables**](/dynamicsax-2012/developer/table-inheritance-overview) are concepts in finance and operations apps. When choosing a derived table from finance and operations apps, fields from the corresponding base table currently aren't included. For example, if you choose the `DirPerson` table, a table derived from `DirPartyTable` also known as the base table, exported data contains fields from the base table `DirPartyTable` You need to select the base table in addition to the derived table if you need access to these fields. You can use [this FastTrack solution](https://github.com/microsoft/Dynamics-365-FastTrack-Implementation-Assets/tree/master/Analytics/DataverseLink/DataIntegration#derived-tables) provided on GitHub. This solution creates views, which include columns from base tables. +- **Memo fields and long descriptions of type `nVarchar(Max)`** are included in Synapse Link. However, the field size is truncated to 2,000 characters. +- **ID fields from finance and operations tables are renamed to FnO_Id** to avoid field name conflicts with Dataverse tables. +- **Fields with SQL reserved words** are renamed by attaching a trailing character. Ex. `Level` becomes `Level_` and `Resource` becomes `Resource_`. -- You must create a new Azure Synapse Link profile. You can't add finance and operations apps tables to existing Azure Synapse Link profiles. -- Don't see all tables? Microsoft continues to enable all actively used finance and operations apps tables in Azure Synapse Link with application updates. If you have a previous version of finance and operations apps, not all required tables might be enabled by default. You can enable more tables yourself by extending table properties and enabling the change tracking feature. For more information about how to enable change tracking, see [Enable row version change tracking for tables](/dynamics365/fin-ops-core/dev-itpro/data-entities/rowversion-change-track#enable-row-version-change-tracking-for-tables). -- Don't see your custom tables? You must enable change tracking for them. More information: [Enable row version change tracking for tables](/dynamics365/fin-ops-core/dev-itpro/data-entities/rowversion-change-track#enable-row-version-change-tracking-for-tables). If you're using a cloud hosted environment (CHE), you must perform a database sync operation to reflect the changes. -- You can select a maximum of 1,000 tables in an Azure Synapse Link profile. To enable more tables, create another Azure Synapse Link profile. -- If the table selected contains data columns that are secured via **AOS Authorization**, those columns are ignored and the exported data doesn't contain the column. For example in a custom table named *CustTable*, the column *TaxLicenseNum* has the metadata property **AOS Authorization** set to **Yes**. This column is ignored when *CustTable* data is exported with Azure Synapse Link. +### Recent fixes applicable to finance and operations tables + +If you are on a previous version of finance and operations, you need to update to the latest version to apply fixes to several issues. These issues and fixes are mentioned here for reference purposes only. When you update to the latest version, all fixes are applied. + +- **AOS Authorized fields**: If the table selected contains data columns that are secured via **AOS Authorization**, those columns are ignored and the exported data doesn't contain the column. For example in a custom table named *CustTable*, the column *TaxLicenseNum* has the metadata property **AOS Authorization** set to **Yes**. This column is ignored when *CustTable* data is exported with Azure Synapse Link. > [!NOTE] > Update your finance and operations environment to these versions or later to enable AOS authorized fields: > - PU 63:7.0.7198.105 > - PU 62:7.0.7120.159 > > With this update, AOS authorization fields are added to tables: - > - Incremental updates include this column. - > - Modified records show these columns and value. - > - Full refresh includes these fields and all values. - > - -- When a finance and operations table added to Azure Synapse Link is secured via [extensible data security policies](/dynamics365/fin-ops-core/dev-itpro/sysadmin/extensible-data-security-policies), the system might not export data. This issue is fixed in the latest application update. + > - Incremental updates include this column. + > - Modified records show these columns and value. + > - Full refresh includes these fields and all values. + +- **Extensible Data security**: When a finance and operations table added to Azure Synapse Link is secured via [extensible data security policies](/dynamics365/fin-ops-core/dev-itpro/sysadmin/extensible-data-security-policies), the system might not export data. This issue is fixed in the latest application update. > [!NOTE] > Available updates to finance and operations tables with Azure Synapse Link for Dataverse: > - Version 10.0.39 (PU63) cumulative update 10.0.1860.50 @@ -138,7 +128,7 @@ Currently, there are limitations with finance and operations tables and Azure Sy > > You'll need to apply a quality build where the system applies a bypass for extensible data security policies for the Azure Synapse Link service. -- If there are finance and operations app tables that exhibit [valid time stamp behavior](/dynamicsax-2012/developer/valid-time-state-tables-and-date-effective-data), only the data rows that are currently valid are exported with Azure Synapse Link. For example, the **ExchangeRate** table contains both current and previous exchange rates. Only currently valid exchange rates are exported in Azure Synapse Link. This issue is fixed in the latest application update shown here. +- **Tables with valid time stamp behavior**: If there are finance and operations app tables that exhibit [valid time stamp behavior](/dynamicsax-2012/developer/valid-time-state-tables-and-date-effective-data), only the data rows that are currently valid are exported with Azure Synapse Link. For example, the **ExchangeRate** table contains both current and previous exchange rates. Only currently valid exchange rates are exported in Azure Synapse Link. This issue is fixed in the latest application update shown here. > [!NOTE] > Available updates to finance and operations tables with Azure Synapse Link for Dataverse: > - Version 10.0.40 (PU64) platform update 7.0.7120.179 @@ -147,26 +137,40 @@ Currently, there are limitations with finance and operations tables and Azure Sy > > With this update, expired data rows are added to tables. You need to perform a full refresh to include previous rows. -- If the table selected contains data columns that are of **Array** type, those columns are ignored and the exported data doesn't contain the column. For example, in a custom table named *WHSInventTable*, columns **FilterCode** and **FilterGroup** are of type array. These columns aren't exported with Azure Synapse Link. This issue is fixed in the latest application update shown here. +- **Fields of Array type**: If the table selected contains data columns that are of **Array** type, those columns are ignored and the exported data doesn't contain the column. For example, in a custom table named *WHSInventTable*, columns **FilterCode** and **FilterGroup** are of type array. These columns aren't exported with Azure Synapse Link. This issue is fixed in the latest application update shown here. > [!NOTE] > Available updates to finance and operations tables with Azure Synapse Link for Dataverse: - > - Version 10.0.41 (PU65) platform update 7.0.7367.0 or later - > - Version 10.0.40 (PU64) platform update 7.0.7279.115 or later - > - Version 10.0.39 (PU63) platform update 7.0.7198.186 or later + > - Version 10.0.41 (PU65) platform update 7.0.7367.153 or later + > - Version 10.0.42 (PU66) platform update 7.0.7452.84 or later + > - Version 10.0.43 (PU67) platform update 7.0.7521.153 or later > > With this update, Array type fields are added to tables. You need to perform a full refresh to include previous rows. - > Array fields of Enumerated type are currently excluded from the Synapse Link and Fabric link features. - -- [Table inheritance and derived tables](/dynamicsax-2012/developer/table-inheritance-overview) are concepts in finance and operations apps. When choosing a derived table from finance and operations apps, fields from the corresponding base table currently aren't included. For example, if you choose `DirPerson` table, a table derived from `DirPartyTable` also known as the base table, exported data contains fields from the base table `DirPartyTable` You need to select the base table in addition to the derived table if you need access to these fields. You can use [this FastTrack solution](https://github.com/microsoft/Dynamics-365-FastTrack-Implementation-Assets/tree/master/Analytics/DataverseLink/DataIntegration#derived-tables) provided on GitHub. This solution creates views, which include columns from base tables. + > Above updates also contain the fix for Array fields of Enumerated data types. + +- [**Extended invoice length**](/dynamics365/finance/accounts-payable/vendor-invoices-overview#extend-invoice-number-length) is a feature enabled with finance and operations version 10.0.40 and later. + > [!NOTE] + > Extended vendor invoice number feature is enabled with updates to finance and operations tables with Azure Synapse Link for Dataverse: + > - Version 10.0.41 (PU65) platform update 7.0.7367.134 or later + > - Version 10.0.42 (PU66) platform update 7.0.7452.72 or later + > - Version 10.0.43 (PU67) platform update 7.0.7521.0 or later + +- **Deleted rows missing from derived tables** issue is addressed in updates mentioned below. When choosing a derived table from finance and operations apps. For example, if you choose the `DirPerson` table, a table derived from `DirPartyTable` also known as the base table, deleted markers from derived and base tables are missing in exported data. + > [!NOTE] + > Deleted rows missing from derived tables is enabled with updates to finance and operations tables with Azure Synapse Link for Dataverse: + > - Version 10.0.40 (PU64) platform update 7.0.7279.199 or later + > - Version 10.0.41 (PU65) platform update 7.0.7367.136 or later + > - Version 10.0.42 (PU66) platform update 7.0.7452.75 or later + +- **NULL values in finance and operations fields** aren't reflected as empty strings in exported data and might cause export failures. While NULL values are not expected to be present in finance and operations data, there might be NULL values inserted via data integration. + > [!NOTE] + > Null value handling support for exported data for finance and operations tables is enabled with: + > - Version 10.0.41 (PU65) platform update 7.0.7367.149 or later + > - Version 10.0.42 (PU66) platform update 7.0.7452.88 or later + > - Version 10.0.43 (PU67) platform update 7.0.7497.0 or later - Finance and operations apps tables added to an Azure Synapse Link profile might be removed when a back-up is restored in Dataverse. You can copy and paste a comma separated list of tables into the search box within the manage tables option to select a list of tables at once. - When a finance and operations apps database is restored, tables added to an Azure Synapse Link profile need to be reinitialized. Before reinitializing finance and operations tables, you must also restore the Dataverse database. After restoring the database, you must add finance and operations tables into the profile. You can copy and paste a comma separated list of tables into the search box within the manage tables option to select a list of tables at once. - Finance and operations apps tables included in an Azure Synapse Link profile can't be migrated to a different environment using the import and export profile feature in Azure Synapse Link. -- Special fields such as `TimeZoneID` (TZID), binary fields in finance and operations tables aren't enabled in Azure SynapseL Link. -- Staging tables, temporary tables and deprecated tables, where names begin with `del_` in finance and operations apps, aren't allowed in Azure Synapse Link. -- The following tables, known as *kernel* tables in finance and operations apps, are supported by Fabric and Synapse Link. These tables are special, and you don't need to enable change tracking. Also, they're updated every 24 hours and not updated near-real time as the data doesn't change frequently: `DATAAREA`, `USERINFO`, `SECURITYROLE`, `SECURITYUSERROLE`, `SQLDICTIONARY`, `PARTITIONS`, `SECURITYPRIVILEGE`, `TIMEZONESLIST`, `SECURITYDUTY`, `SECURITYSUBROLE`, `SECURITYUSERROLECONDITION`, `DATABASELOG`, `SECURITYROLERUNTIME`, `SECURITYROLEPRIVILEGEEXPLODEDGRAPH`, `SECURITYROLEDUTYEXPLODEDGRAPH`, `TIMEZONESRULESDATA`, `SECURITYROLEEXPLODEDGRAPH`, `USERDATAAREAFILTER`, `SYSINHERITANCERELATIONS`. -- **Access finance and operations tables via Synapse query** and **Access finance and operations tables via Microsoft Fabric** features aren't available in the China region. -- [Master company data sharing](/dynamics365/fin-ops-core/dev-itpro/sysadmin/srs-overview#when-to-consider-duplicate-record-versus-master-company-sharing-preview) is a preview feature in finance and operations apps. Tables that participate in the master company data sharing feature are currently not supported with the Synapse Link or Fabric link features. Although these tables can be selected, data exported might be associated with invalid data areas. ## Access incremental data changes from finance and operations @@ -196,7 +200,7 @@ To create an Azure Synapse Link profile with incremental data: > > Data rows that contain deleted records from Finance and Operations tables contain the `uniqueidentifier` (ID) field. They don't contain the body of the record. Your downstream data pipeline might need to look up the corresponding fields using the ID field. > -> The finance and operations table limitations are also applicable to incremental data from tables. More information: [Known limitations with finance and operations tables](#known-limitations-with-finance-and-operations-tables) +> The finance and operations table limitations are also applicable to incremental data from tables. More information:[Known limitations with finance and operations entities](#known-limitations-with-finance-and-operations-entities) ## Working with data and metadata diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-solution.md b/powerapps-docs/maker/data-platform/azure-synapse-link-solution.md index 012858194b..fe49a6c219 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-solution.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-solution.md @@ -7,7 +7,7 @@ ms.reviewer: "Mattp123" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: how-to applies_to: - "powerapps" author: "sabinn-msft" diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-synapse.md b/powerapps-docs/maker/data-platform/azure-synapse-link-synapse.md index a0c7c86e0d..f66c432917 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-synapse.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-synapse.md @@ -2,17 +2,16 @@ title: "Create an Azure Synapse Link for Dataverse with your Azure Synapse Workspace | MicrosoftDocs" description: "Learn how to export table data to Azure Synapse Analytics in Power Apps." ms.custom: "" -ms.date: 10/28/2024 +ms.date: 04/30/2025 ms.reviewer: "Mattp123" ms.suite: "" ms.tgt_pltfrm: "" ms.topic: "how-to" applies_to: - "powerapps" -author: "sabinn-msft" -ms.assetid: +author: "MilindaV2" ms.subservice: dataverse-maker -ms.author: "matp" +ms.author: "milindav" search.audienceType: - maker contributors: @@ -63,7 +62,7 @@ You can use the Azure Synapse Link to connect your Microsoft Dataverse data to A > [!NOTE] > As part of linking the environment to a data lake, you grant the Azure Synapse Link service access to your storage account. Ensure that you followed the [prerequisites](#prerequisites) of creating and configuring the Azure data lake storage account, and granting yourself an owner role on the storage account. Additionally, you grant the Power Platform Dataflows service access to your storage account. More information: [Self-service data prep with dataflows](self-service-data-prep-with-dataflows.md). -1. Add the tables you want to export, and then select **Save**. Only tables with change tracking enabled can be exported. More information: [Enable change tracking](/dynamics365/customer-engagement/admin/enable-change-tracking-control-data-synchronization). +1. Choose the tables you want to export either by selecting them one by one or by entering a comma separated list of tables in the search box, and then select **Save**. Only tables with the Track changes property enabled can be exported. More information: [Advanced options](/power-apps/maker/data-platform/create-edit-entities-portal?tabs=excel#advanced-options). ![Add tables.](media/add-tables.png "Add tables") diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-transition-FAQ.md b/powerapps-docs/maker/data-platform/azure-synapse-link-transition-FAQ.md new file mode 100644 index 0000000000..2f0e1ad75a --- /dev/null +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-transition-FAQ.md @@ -0,0 +1,126 @@ +--- +title: Frequently asked questions when transitioning from legacy data integration services to Fabric link and Azure Synapse Link for Dataverse +description: Learn how to transition from export to data lake, BYOD, and data export service to link to Microsoft Fabric and Azure Synapse Link for Microsoft Dataverse. +ms.date: 03/31/2025 +ms.reviewer: matp +ms.topic: "how-to" +applies_to: + - "powerapps" +author: Milindav +ms.subservice: dataverse-maker +ms.author: Milindav +search.audienceType: + - maker +ms.custom: bap-template +--- +# Frequently asked questions when transitioning from legacy data integration services + +This article discusses the frequently asked questions with transition from legacy data integration services to Fabric link or Azure Synapse Link for Dataverse. + +Data export service, [bring your own database (BYOD)](/dynamics365/fin-ops-core/dev-itpro/analytics/export-entities-to-your-own-database), and [export to data lake](/dynamics365/fin-ops-core/dev-itpro/data-entities/azure-data-lake-ga-version-overview) were features introduced in Dynamics 365 apps to export data for analytics and data integration scenarios. These services enabled IT admins and specialists to export data into external databases or data lakes and build data integration pipelines. While we improved these services over the years with updates, as part of unification of Dynamics 365 with the Power Platform, the same capabilities are rearchitected for these disparate services into simpler, unified experiences built into Power Apps (make.powerapps.com). The unified and improved service is called link to Azure Synapse. + +Also available is a service named link to Microsoft Fabric where you can directly integrate Microsoft Dataverse, the data platform behind Dynamics 365 as well as Power Apps with Microsoft Fabric with no-copy, no-ETL required. Whether you link to Microsoft Fabric or upgrade to Azure Synapse Link, the rearchitected services provide you with an easy ramp to benefit from AI and Copilot investments in Dataverse and Fabric. + +## What is the difference between Link to Azure Synapse and link to Fabric? + +Link to Azure Synapse and link to Fabric services are built into Dataverse, the platform powering Power Apps and all Dynamics 365 products. + +Azure Synapse Link continuously exports data from Dynamics 365 and Power Apps to your own storage account, allowing IT professionals to build and manage data integration pipelines with Azure Synapse Analytics as well as other tools. + +In contrast, link to Fabric offers a no-copy, no-ETL integration directly with Microsoft Fabric, keeping data within the Dataverse governance boundary for enhanced security. Fabric Link uses Dataverse managed storage, removing the need to configure and manage your own storage. When using link to Fabric, you might notice an increase in Dataverse storage consumption. + +Both these services operate across PowerApps, Dynamics 365 customer engagement apps like Dynamics 365 Sales, Dynamics 365 Customer Service, as well as Dynamics 365 finance and operations apps. + +| Link to Fabric | Azure Synapse Link | +|-------------------------------|------------------------------------| +| No copy, no extract, transform, load (ETL) direct integration with Fabric. | Export data to your own storage account and integrate with Azure Synapse, Fabric, and other tools. | +| Data stays in Dataverse. Users get secure access in Microsoft Fabric. | Data stays in your own storage. You manage access to users.| +| All tables chosen by default.| System administrators can choose required tables. | +| Consumes additional Dataverse storage.| Consumes your own storage and other compute and integration tools.| + +## What option should I consider if I want to use Microsoft Fabric? + +Fabric Link provides a seamless, no-copy integration with Dataverse and Microsoft Fabric, eliminating the need to manage complex data export processes. With link to Microsoft Fabric, your data stays securely within your Dataverse environment, while authorized users in Microsoft Fabric can access the data, making it easier for your team to leverage data for insights without the hassle of managing separate storage and integration solutions. This streamlined approach can lead to cost savings and more efficient data utilization, especially if you’re already using Power BI. [Go to this article](/powerapps-docs/maker/data-platform/azure-synapse-link-transition-from-FnO.md#Simplification with Fabric link) for a comparison of total cost of ownership (TCO) between link to Microsoft Fabric and link to Azure Synapse. + +Using the [Fabric Link transition tool provided by Dynamics 365 FastTrack team](https://github.com/microsoft/Dynamics-365-FastTrack-Implementation-Assets/tree/master/Analytics/DataverseLink/FabricLink_SQLAnalyticsEndpoint), you can create a Fabric data warehouse with the same data shapes as export to data lake feature and minimize the effort to transition your existing reports and data pipelines. + +## What option should I consider if I want to keep the data export solution? + +Upgrading from export to data lake to Azure Synapse Link enables you to preserve your investments with minimal changes. While Azure Synapse Link simplifies data integration by continuously exporting data in a more efficient Delta Parquet format, it provides similar outputs as export to data lake service therefore reducing the effort to switch. You can use Power BI, Microsoft Fabric as well as many non-Microsoft tools that support Delta Parquet format to work with your Dynamics 365 data. You can also secure your storage account with firewalls and enable restricted access via managed identities, ensuring secure data access and compliance. [Go to this article](/power-apps/maker/data-platform/azure-synapse-link-transition-from-fno#example-2-upgrade-to-azure-synapse-link) for a comparison of total cost of ownership (TCO) between link to Fabric and link to Azure Synapse. + +Using the [Synapse Link transition tool provided by Dynamics 365 FastTrack team](https://github.com/microsoft/Dynamics-365-FastTrack-Implementation-Assets/tree/master/Analytics/DataverseLink/VirtualDatawarehouse) you can create a Synapse workspace with similar data shapes as export to data lake feature and reduce the effort to transition your existing reports and data pipelines. + +## We don’t use Power BI or Fabric with Dynamics 365 data, can I extract change data? + +If you use Power BI or Microsoft Fabric to gain insights from your Dynamics 365 or Power Apps data, Fabric Link provides the most benefits while simplifying data integration efforts. However, if you're using non-Microsoft tools and/or use export to data lake change feeds to incrementally export data to your downstream data warehouse, you can use Synapse Link incremental data exports instead. [More information](/power-apps/maker/data-platform/azure-synapse-link-transition-from-fno#understanding-benefits--more-real-time-reporting) + +Using the [The Data integration tool provided by Dynamics 365 FastTrack team](https://github.com/microsoft/Dynamics-365-FastTrack-Implementation-Assets/tree/master/Analytics/DataverseLink/DataIntegration) you can create a pipeline to incrementally copy change data into an Azure SQL database, Synapse dedicated pool or an on-premises database. + +## Are there differences in columns/schema between Export to Data Lake and Fabric Link or Synapse Link? + +Fabric Link and Synapse Link represent a unification of legacy services built into Dynamics 365. The same capabilities are rearchitected to transform these disparate services into simpler, unified experiences built into Power Apps (make.powerapps.com). In the process, to avoid conflicts, minor changes are made to the schema. The underlying data engine behind Fabric Link and Synapse Link is the same so the changes apply both to Fabric Link and Synapse Link options: + +- Renaming SQL reserved words such as `Level_, Resource_`. +- ID field in export to data lake tables become `FnO_Id`. +- Deleted rows are included. For example, Synapse Link and Fabric Link perform what is referred to as a "soft delete." You can use the `isDelete` flag to identify deleted rows and remove them. +- TimeZoneID (TZID) fields are removed because these are legacy fields no longer used in finance and operations apps. +- Fields that contain binary data are removed. +- `nVarChar(max)` fields are included but data is truncated at 2,000 characters. + +For more information, go to [working with Finance and Operations data and metadata](/power-apps/maker/data-platform/azure-synapse-link-select-fno-data#working-with-data-and-metadata). + +Using the [Fabric Link transition tool provided by Dynamics 365 FastTrack team](https://github.com/microsoft/Dynamics-365-FastTrack-Implementation-Assets/tree/master/Analytics/DataverseLink/FabricLink_SQLAnalyticsEndpoint), you can create a Fabric data warehouse with the same data shapes as export to data lake feature and minimize the effort to transition your existing reports and data pipelines. + +Using the [Synapse Link transition tool provided by Dynamics 365 FastTrack team](https://github.com/microsoft/Dynamics-365-FastTrack-Implementation-Assets/tree/master/Analytics/DataverseLink/VirtualDatawarehouse) you can create a Synapse workspace with similar data shapes as export to data lake feature and reduce the effort to transition your existing reports and data pipelines. + +Using the [data integration tools provided by Dynamics 365 FastTrack team](https://github.com/microsoft/Dynamics-365-FastTrack-Implementation-Assets/tree/master/Analytics/DataverseLink/DataIntegration) you can create a pipeline to incrementally copy change data into an Azure SQL database, Synapse dedicated pool or an on-premises database. + +## Why are all Dataverse tables auto selected with Fabric Link, why can’t I select only the Dataverse tables I need? + +By selecting **Link to Microsoft Fabric**, the system adds all nonsystem Dataverse tables that have the **Track changes** property enabled. You can’t remove these tables as some of these tables might be used by Dynamics 365 as well as partner applications and removing them can cause the applications to fail. + +Enabling link to Fabric feature (or a Dynamics 365 application that contains insights features) might result in an increase in Dataverse database storage consumption. You can view additional storage consumption as additional files in the environment storage capacity details view in the Power Platform admin center. For example, you might notice an additional file "Account-Analytics" if you selected the "Account" table for Fabric link. Also note that the chart only displays tables consuming highest storage. You can get a list of tables using the menu on top right of the chart. + +## Export to data lake service is working well for us. Why did you retire these services? + +As part of the Dynamics 365 platform unification project, we consolidated several services that “exported data” in Dynamics 365 applications to a single service under the brand name Synapse Link for Dataverse. Using our learnings, many shortcomings of existing services were addressed in Synapse Link while maintaining same data formats – so that you can upgrade your investments with minimal disruptions. Fabric link service is a new, no-copy, no-ETL solution, which enables you to leverage innovations in Fabric without having to invest in data pipelines. It’s a “read-replica” of your data for authorized users in Fabric. + +## Why can't I find some Tables and Entities from Finance and Operations in tables in Link to Fabric or Link to Azure Synapse + +Azure Synapse Link or Fabric link enables tables where the "change tracking" property is enabled. Currently, change tracking can't be enabled for all finance and operations entities. The **Track changes** option is unavailable for entities created in finance and operations in the past for data migration. In some entities, enabling change tracking might fail with the error message **chosen entity doesn't pass the validation rules** or the **Track changes** checkbox is disabled for some entities. + +For more information about entity validation rules and how you can fix them, go to [Enable row version change tracking for data entities](/dynamics365/fin-ops-core/dev-itpro/data-entities/rowversion-change-track#enable-row-version-change-tracking-for-data-entities). You might need developer assistance to complete the steps. If the chosen entity is unavailable because of the change tracking limitation, choose the tables that comprise the data from that entity. + +You can use the [EntityUtil](https://github.com/microsoft/Dynamics-365-FastTrack-Implementation-Assets/tree/master/Analytics/DataverseLink/DataIntegration/EntityUtil) solution provided by the FastTrack team to create entity shapes using tables. + +## Is BYOD service retired? Is there a retirement date? + +As part of the Dynamics 365 platform unification project, several services that exported data in Dynamics 365 applications are consolidated. [BYOD](/dynamics365/fin-ops-core/dev-itpro/analytics/export-entities-to-your-own-database) is a service that exports entity data into a customers own Azure SQL database. While a retirement date for BYOD service hasn't been determined, we recommend that you transition to Synapse Link or Fabric link services. Fabric link service is a new, no-copy, no-ETL solution, which enables you to query your data with SQL similar to a “read-replica” of your data in Fabric. + +### Will you retire Synapse Link in the future? + +As part of the platform unification project, we have consolidated several services that exported data in Dynamics 365 applications to a service under the brand name Synapse Link for Dataverse. Fabric link, a no-copy, no-ETL solution, which enables you to leverage innovations in Fabric without having to invest in data pipelines is also available. Link to Fabric is a “read-replica” of your data for authorized users in Fabric. + +While many customers are excited to adopt Fabric, we also understand some customers want to continue to export data and build their own integration pipelines. As such, we want to enable you to export data well into the future. + +## Will export to data lake service stop since it's deprecated after November 1, 2024? + +Export to data lake service is deprecated as of November 1, 2024 and support will be limited. You can reduce the risk by beginning the transition process now. We plan to decommission export to data lake service beginning March 25, 2025 as customers transition to Synapse Link and Fabric link services. We plan to start the decommissioning process with customers who have completed the transition as well as customers who aren't actively using the service. You'll be notified before the decommission process begins and have the option to ask for a past due extension via the link [aka.ms/SynapseLinkPastDue](https://aka.ms/SynapseLinkPastDue). + +## My transition might run beyond deprecation date, is there a process to get an extension? + +Export to data lake service is deprecated as of November 1, 2024, but will continue to operate under limited support until March 25, 2025. If you haven't done so already, you should begin the transition process now. + +To help customers who might need more time to complete their transition, we introduced an in-product “past due extend” option. You can apply for a one-time “past due extension” by taking the survey the Azure Synapse Link area in Power Apps (make.powerapps.com) or the link [aka.ms/SynapseLinkPastDue](https://aka.ms/SynapseLinkPastDue). This option is available only to customers who are currently validating either Synapse Link or Fabric Link services. + +If a past due extension is approved, you receive a confirmation e-mail and the extended date is shown within the product. You can join the community and stay in touch via the forum or weekly office hours at [aka.ms/SynapseLinkforDynamics](https://aka.ms/SynapseLinkforDynamics). + +## I have completed the transition, how can I uninstall export to data lake feature? + +If you aren't using this feature in your environment, ask your finance and operations apps administrator to uninstall this feature. To uninstall, visit the environment page in life cycle services (LCS), navigate to the **Environment Add-ins** section, and then select the **Uninstall** option in the **Export to Data lake** environment add-in. + +## Related articles + +[What is Azure Synapse Link for Dataverse?](export-to-data-lake.md) + +[Link your Dataverse environment to Microsoft Fabric and unlock deep insights](azure-synapse-link-view-in-fabric.md) diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-transition-from-FnO.md b/powerapps-docs/maker/data-platform/azure-synapse-link-transition-from-FnO.md index d84019d9d2..0fef0434bc 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-transition-from-FnO.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-transition-from-FnO.md @@ -1,12 +1,12 @@ --- title: Transition from legacy data integration services to Fabric link and Azure Synapse Link for Dataverse description: Learn how to transition from Export to Data Lake, BYOD, and data export service to link to Microsoft Fabric and Azure Synapse Link for Microsoft Dataverse. -ms.date: 11/05/2024 +ms.date: 04/30/2025 ms.reviewer: matp ms.topic: "how-to" applies_to: - "powerapps" -author: Milindav +author: Milindav2 ms.subservice: dataverse-maker ms.author: Milindav search.audienceType: @@ -69,7 +69,7 @@ If your organization is already using Fabric or planning to transition in the co If you're already consuming data using Power BI, using a data warehouse, or using dataflows and notebooks to transform data, the link to Fabric feature provides immediate value. You can simplify your data integration architecture by removing the need to have your own storage account or Synapse services for Dataverse data. Instead of paying for Azure resources like storage and compute, you pay for the increase in Dataverse storage. Compute charges such as near real-time data updates and management overhead is also factored into Dataverse storage. Fabric link option is like having a near real time read-only replica of your data optimized for insights. -:::image type="content" source="media/Fabric/After-transition-fabric.png" alt-text="Data integration solution smplified with Fabric link" lightbox="media/Fabric/After-transition-fabric.png"::: +:::image type="content" source="media/Fabric/After-transition-fabric.png" alt-text="Data integration solution simplified with Fabric link" lightbox="media/Fabric/After-transition-fabric.png"::: Query this replica using T-SQL, Apache Spark, Python as well as other workloads in Fabric. You can also access this data using any tool that can consume T-SQL or can consume data from Azure Data Lake Storage. @@ -183,58 +183,15 @@ The Fabric link service updates data in Dataverse OneLake within the hour as of If you're consuming incremental data feeds from Dynamics 365 with Export to Data Lake service for near-real time data integration scenarios (example 3). Upgrade to Azure Synapse Link enables you to run the same data pipelines. -## Known issues and workarounds - -Currently, there are several limitations that are being addressed by the product team. Until we fix these limitations, use the suggested workaround. To learn more about the upcoming roadmap and stay in touch with the product team, join the preview [Viva Engage group](https://aka.ms/synapselinkfordynamics). - -|Known issue |Fixes and Workarounds | -|---------|---------| -|When adding a large number of tables at once, the system makes an initial copy of data.
    There are rare cases, especially in smaller environments and Tier-2 sandboxes, where operational workloads can slow down and initialize time might become much longer. | This might impact smaller environments with fewer Application Object Server (AOS) servers (compute resources).

    In Azure Synapse Link and Fabric link, you can add multiple tables at once by pasting a comma separated list of tables. System scales initialization workloads up and down as available compute resources at roughly two concurrent tables per AOS. System might allocate additional AOS servers on a temporary basis if your environment doesn't have sufficient compute resources.
    For example, if you have five AOS servers in your environment, the system concurrently initializes up to 10 tables.



    Update your finance and operations environment to either:
    - PU 63 cumulative update 7.0.7198.95
    -PU 62 cumulative update 7.0.7120.155.
    This update redacts `varBinary` fields and `varBinary` attachments from tables added to Azure Synapse Link and Fabric link, which reduces impact to operational workloads. | -| When adding tables, the system makes an initial copy of data. In some cases, especially with very large tables, initialization might take longer or appear stuck for several days | Update the finance and operation apps environment to either:
    - PU 63 cumulative update 7.0.7198.91
    -PU 62 cumulative update 7.0.7120.152
    This update enables faster initialization of large tables (more than 200M rows).

    We enabled indexes to enable faster data sync. In case there’s an ongoing transaction in the operational database, index creation needs to wait for completion of the transaction. The prolonged wait, sometimes due to dormant transactions, might delay the initialization process. In such cases, system administrator can detect and force index creation. | -| In case your Dataverse environment is located in an Azure region different than the one where your Fabric capacity is located, you can’t use the **Link to Fabric** feature. | As of April 30, 2024, you can link to a Fabric capacity located within the same geographic boundary, such as United States.

    Notice that you might incur networking charges in Fabric due to data transfer between Azure regions. | -| In case your Dataverse environment is located in an Azure region different than the one where your data lake or Synapse workspace is located, you can’t use the Azure Synapse Link feature. | As of April 30, 2024, you can link to a storage account located within the same geographic boundary, such as United States.

    Notice that you might incur networking charges in Azure resources like data lakes if they aren't located within the same Azure region. | -| AOS authorization is a way to secure sensitive data fields in finance and operation apps against data exfiltration scenarios.
    If the table selected contains data columns that are secured via AOS authorization, those columns are ignored and the exported data doesn't contain the column.

    For example, a custom table column *TaxLicenseNum* has the metadata property `AOS Authorization` set to **Yes**. This column is ignored | Update your finance and operations environment to these versions or later:
    - PU 63:7.0.7198.105
    - PU 62:7.0.7120.159
    With this update, AOS authorization fields are added to tables.
    - Incremental updates include this column.
    - Modified records show these columns and value.
    - Full refresh includes these fields and all values. | -| If the table selected contains data columns that are of **Array** type, those columns are ignored and the exported data doesn't contain the column.

    For example, in a table named *WHSInventTable*, columns `FilterCode` and `FilterGroup` are of type array. These columns aren't exported with Azure Synapse Link or Fabric link. | Update your finance and operations environment to these versions or later:
    - PU 65 7.0.7367.0
    - PU 64:7.0.7279.115
    - PU 63:7.0.7198.186
    With this update, Array type fields (except for Array types of Enum) are added to tables.
    - Incremental updates include this column.
    - Modified records show these columns and value.
    - A full refresh includes these fields and all values.
    - Array fields of Enumerated type are currently excluded from the Synapse Link and Fabric link features. | -| In case of finance and operations apps tables that exhibit [valid time stamp behavior](/dynamicsax-2012/developer/valid-time-state-tables-and-date-effective-data), only the data rows that are currently valid are exported with Azure Synapse Link.

    For example, the `ExchangeRate` table contains both current and previous exchange rates. Only currently valid exchange rates are exported in Azure Synapse Link. | Update your finance and operations environment to
    - Version 10.0.38 (PU62) platform update 7.0.7120.179
    - Version 10.0.39 (PU63) platform update 7.0.7198.143
    - Version 10.0.40 (PU64) platform update 7.0.7279.58

    With this update, expired data rows are added to tables. You need to perform a full refresh to include previous rows. | -|[Table inheritance and derived tables](/dynamicsax-2012/developer/table-inheritance-overview) are concepts in finance and operations apps. When choosing a derived table from finance and operations apps, columns from the corresponding base table currently aren't included.

    For example, if you choose `DirPerson` table, (a table derived from `DirPartyTable` also known as the base table), exported data contains fields from the base table `DirPartyTable`. | You need to select the base table in addition to the derived table if you need access to these columns.
    You can use [this FastTrack solution provided via GitHub](https://github.com/microsoft/Dynamics-365-FastTrack-Implementation-Assets/tree/master/Analytics/DataverseLink/DataIntegration#derived-tables). This solution creates views, which include columns from base tables. | -| Export more than 1,000 tables via Azure Synapse Link or add more than 1,000 tables to Fabric link. | If you're using Azure Synapse Link, work around this issue by creating two or more profiles that contain less than 1,000 tables.

    Expect to select more than 1,000 tables in Fabric link and in an Azure Synapse Link profile in a future update.| -| Finance and operations apps tables included in an Azure Synapse Link profile can't be migrated to a different environment using the import and export profile feature in Azure Synapse Link. | Until this issue is addressed, add the same tables into the new environment. Copy and paste a comma separated list of tables into the search box within the manage tables option to select a list of tables at once. | -| Azure Synapse Link or Fabric link enables tables where the change tracking property is enabled.
    Currently, change tracking can't be enabled for all finance and operations entities. The **Track changes** option is unavailable for entities created in finance and operations in the past for data migration.
    In some entities, enabling change tracking might fail with the error message **chosen entity doesn't pass the validation rules** or the **Track changes** checkbox is disabled for some entities.
    For more information about entity validation rules and how you can fix them, go to [Enable row version change tracking for data entities](/dynamics365/fin-ops-core/dev-itpro/data-entities/rowversion-change-track#enable-row-version-change-tracking-for-data-entities). You might need developer assistance to complete the steps. | If the chosen entity is unavailable because of the change tracking limitation, choose the tables that comprise the data from that entity.
    You can use [EntityUtil](https://github.com/microsoft/Dynamics-365-FastTrack-Implementation-Assets/tree/master/Analytics/DataverseLink/DataIntegration/EntityUtil) solution provided by the FastTrack team to create entity shapes using tables. | -| In case of a database restore operation in Dataverse, finance and operations entities enabled in Azure Synapse Link are removed. | To re-enable entities, re-enable the corresponding virtual tables for all selected entities, re-enable change tracking, and reselect the tables in Azure Synapse Link. You can copy and paste a comma separated list of tables into the search box within the manage tables option to select a list of tables at once.| -| Finance and operations apps tables added to an Azure Synapse Link profile might be removed when a back-up is restored in Dataverse. | You must add finance and operations tables into the profile after a database restore operation. Go to [Known limitations with finance and operations tables](/power-apps/maker/data-platform/azure-synapse-link-select-fno-data#known-limitations-with-finance-and-operations-tables) for details on re-enabling tables after a database restore operation.| -| [Master company data sharing](/dynamics365/fin-ops-core/dev-itpro/sysadmin/srs-overview#when-to-consider-duplicate-record-versus-master-company-sharing-preview) is a preview feature in finance and operations apps. Tables that participate in the master company data sharing feature are currently not supported with the Synapse Link or Fabric link features. Although these tables can be selected, data exported might be associated with invalid data areas. | There are no known workarounds for this issue now. | +## Limitations and changes to behavior -## Frequently asked questions - -### Export to data lake service is working well for us. Why did you retire these services? - -As part of the Dynamics 365 platform unification project, we have consolidated several services that “exported data” in Dynamics 365 applications to a single service under the brand name Synapse Link for Dataverse. Using our learnings, we addressed many shortcomings of existing services in Synapse Link while maintaining same data formats – so that you can upgrade your investments with minimal disruptions. Fabric link service is a new, no-copy, no-ETL solution, which enables you to leverage innovations in Fabric without having to invest in data pipelines. It’s a “read-replica” of your data for authorized users in Fabric. - -### Is BYOD service retired? Is there a retirement date? - -As part of the Dynamics 365 platform unification project, we have consolidated several services that “exported data” in Dynamics 365 applications. [BYOD](/dynamics365/fin-ops-core/dev-itpro/analytics/export-entities-to-your-own-database) is a service that exports entity data into customers own Azure SQL database. While we haven't yet announced a retirement date for BYOD service, our guidance is to transition to Synapse Link or Fabric link services. Fabric link service is a new, no-copy, no-ETL solution, which enables you to query your data with SQL similar to a “read-replica” of your data in Fabric. - -### Will you retire Synapse Link in the future? - -As part of the platform unification project, we have consolidated several services that “exported data” in Dynamics 365 applications to a service under the brand name Synapse Link for Dataverse. We have also introduced Fabric link, a no-copy, no-ETL solution, which enables you to leverage innovations in Fabric without having to invest in data pipelines. It’s a “read-replica” of your data for authorized users in Fabric. +You might find a few changes in table formats introduced that help avoid conflicts. More information: [Known limitations](./azure-synapse-link-select-FnO-data.md#known-limitations-and-changes-to-behavior). -While many customers are excited to adopt Fabric, we also understand some customers want to continue to export data and build their own integration pipelines. We do want to enable them to export data well into the future. +Also verify that you have the [latest updates, which address some of the known issues](./azure-synapse-link-select-FnO-data.md#recent-fixes-applicable-to-finance-and-operations-tables). To learn more about the upcoming roadmap and stay in touch with the product team, join the preview [Viva Engage group](https://aka.ms/synapselinkfordynamics). -### Will export to data lake service stop since it's deprecated after November 1, 2024? - -Export to data lake service is deprecated as of November 1, 2025 and our support will be limited. You can reduce the risk by beginning the transition process now. We plan to decommission export to data lake service beginning March 25, 2025 as customers transition to Synapse Link and Fabric link services. You can join the community and provide feedback through weekly office hours at [aka.ms/SynapseLinkforDynamics](https://aka.ms/SynapseLinkforDynamics). - -### My transition might run beyond deprecation date, is there a process to get an extension? - -Export to data lake service is deprecated as of November 1, 2024, but will continue to operate under limited support until March 25, 2025. If you haven't done so already, you should begin the transition process now. - -To help customers who might need more time to complete their transition, we have introduced an in-product “past due extend” option. You can apply for a one-time “past due extension” by taking the survey in the **Azure Synapse Link** area in Power Apps (make.powerapps.com). This option is available only to customers who are currently validating in production. - -If your past due extension request is approved, you receive a confirmation e-mail and the extended date is shown within the product. To self-extend, go the **Azure Synapse Link** area in Power Apps (make.powerapps.com). This option is applicable for each environment and is visible for environments linked to finance and operations. - -### I have completed the transition, how can I uninstall "export to data lake" feature? +## Frequently asked questions -If you aren't using this feature in your environment, ask your finance and operations apps administrator to uninstall this feature. To uninstall, visit the environment page in life cycle services (LCS), navigate to the **Environment Add-ins** section, and then select the **Uninstall** option in the **Export to Data lake** environment add-in. +Questions? you can refer to the [FAQ document published here](./azure-synapse-link-transition-FAQ.md#frequently-asked-questions-when-transitioning-from-legacy-data-integration-services). You can also join weekly office hrs, stay in touch with the product team and the customer forum by joining [Viva Engage group](https://aka.ms/synapselinkfordynamics). ## See also diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-troubleshooting-guide.md b/powerapps-docs/maker/data-platform/azure-synapse-link-troubleshooting-guide.md index 15abbe9a1e..abd4fde67e 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-troubleshooting-guide.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-troubleshooting-guide.md @@ -4,11 +4,11 @@ description: "Troubleshoot issues in Azure Synapse Link service in Power Apps." ms.custom: "" ms.date: 10/15/2024 ms.reviewer: "matp" -ms.topic: "conceptual" +ms.topic: troubleshooting-general applies_to: - "powerapps" author: "MilindaV2" -ms.subservice: troubleshoot +ms.subservice: dataverse-maker ms.author: "milindav" search.audienceType: - maker diff --git a/powerapps-docs/maker/data-platform/azure-synapse-link-view-in-fabric.md b/powerapps-docs/maker/data-platform/azure-synapse-link-view-in-fabric.md index 58181c4a76..76a961ffe7 100644 --- a/powerapps-docs/maker/data-platform/azure-synapse-link-view-in-fabric.md +++ b/powerapps-docs/maker/data-platform/azure-synapse-link-view-in-fabric.md @@ -5,8 +5,9 @@ author: MilindaV2 ms.author: Milindav ms.reviewer: matp ms.service: powerapps +ms.subservice: dataverse-maker ms.topic: how-to -ms.date: 01/15/2025 +ms.date: 05/13/2025 ms.custom: template-how-to --- # Link your Dataverse environment to Microsoft Fabric and unlock deep insights @@ -27,26 +28,15 @@ Low-code makers can build apps and automations to orchestrate business processes Watch this video to learn about accessing Dataverse data in Fabric: > [!VIDEO https://learn-video.azurefd.net/vod/player?id=ddd288c6-e47a-4bc6-974b-4fe0f1a49362] -## Prerequisites - -- A Power BI premium license or Fabric capacity within the same Azure geographical region as your Dataverse environment is required. Currently, the system supports these premium capacity SKUs: "P1", "P2", "P3", "P4", "P5", "F2", "F4", "F8", "F16", "F32", "F64", "F128", "F256", "F512", "F512", "F1024", "F2048", "DCT1", "FT1." -- If you don’t have Power BI premium license or Fabric capacity within the same geographical region, you buy a capacity or sign up for a free Fabric trial capacity. More information: [Fabric (preview) trial](/fabric/get-started/fabric-trial) - -- Your administrator can grant you access to create Fabric lakehouses and artifacts. You can find these settings in the Fabric admin portal. Go to **Tenant Settings** > **Microsoft Fabric** > **Users can create Fabric items**, **Tenant settings** > **Workspace settings** > **Create workspaces** as well as **Tenant settings** > **oneLake settings** > **Users can access data stored in OneLake with apps external to Fabric**. -- You must have the system administrator security role in the Dataverse environment. -- You must be an administrator of the Power BI workspace. You also need to be a Power BI capacity administrator to a capacity within the same geographic location as the Dataverse environment. -- To confirm whether you have access to the required premium capacity, go to [Power BI](https://app.powerbi.com), open the workspace, and select **Workspace settings** > **Premium**. Make sure that **Trial** or **Premium capacity** is selected. - :::image type="content" source="media/fabric/fabric-trial-capacity.png" alt-text="You need either Trial or Premium capacity for your Power BI workspace." lightbox="media/fabric/fabric-trial-capacity.png"::: - ## Link to Fabric from Power Apps -From the **Tables** area in Power Apps (make.powerapps.com), makers link to Fabric by selecting **Analyze** > **Link to Microsoft Fabric** on the command bar. +From the **Tables** area in Power Apps (make.powerapps.com), makers link to Fabric by selecting **Analyze** > **Link to Microsoft Fabric** on the command bar. When you select the command for the first time, a wizard driven experience links your Dataverse environment to a Fabric workspace. A Synapse lakehouse, SQL endpoint, a Power BI dataset are created and Dataverse tables are linked to the lakehouse via shortcuts. -Once the link is set up, you can grant other users access to the Fabric workspace so that they can work with Dataverse data using all Fabric workloads. The lakehouse, SQL endpoint, and Power BI dataset are updated with new data as changes occur in Dataverse. +Once the link is set up, you can grant other users access to the Fabric workspace so that they can work with Dataverse data using all Fabric workloads. The lakehouse, SQL endpoint, and Power BI dataset are updated with new data as changes occur in Dataverse. More information: [Link to Microsoft Fabric](fabric-link-to-data-platform.md) -## Direct access to your data in Microsoft OneLake +### Direct access to your data in Microsoft OneLake Link to Fabric creates a direct and secure Link between your data in Dataverse and a Fabric workspace. There's no need to provide a storage account or Synapse workspaces. When you link to Fabric from Power Apps, the system creates an optimized replica of your data in delta parquet format, the native format of Fabric and OneLake, using Dataverse storage such that your operational workloads aren't impacted. This replica is governed and secured by Dataverse and stays within the same region as your Dataverse environment while enabling Fabric workloads to operate on this data. @@ -58,7 +48,7 @@ Admins can manage tables linked to OneLake from the **Azure Synapse Link for Dat > > If you used this feature during public preview, you can continue to use the tables selected earlier. If you choose the **Link to Fabric** option in new environments (or unlink and relink existing environments), all tables are added. > -> Enabling this feature results in an increase in *Dataverse database* storage consumption. You can view additional storage consumption as additional files in the [environment storage capacity details view](/power-platform/admin/capacity-storage#environment-storage-capacity-details) in Power Platform admin center. For an example, you notice an additional file `Account-Amalytics` if you selected the `Account` table for Fabric link. Also note that the chart only displays tables consuming hightest storage. You can get a list of tables using the menu on top right of the chart. +> Enabling this feature results in an increase in **Dataverse database** storage consumption. You can view additional storage consumption in the [environment storage capacity details view](/power-platform/admin/capacity-storage#environment-storage-capacity-details) in Power Platform admin center. For an example, you notice an additional file `Account-Analytics` if you selected the `Account` table for Fabric link. Also note that the chart only displays tables consuming the most storage. You can get a complete list of tables using the menu on the top right of the chart. ## Comparing Link to Fabric with Azure Synapse Link for Dataverse @@ -77,152 +67,6 @@ This table provides a comparison between the options. You can connect existing Azure Synapse Links with Microsoft Fabric and benefit from Fabric innovations like Power BI DirectLake mode reports and integrated Spark and data pipelines. You must create an Azure Synapse Link for Dataverse profile and enable the **Delta parquet conversion for Fabric link** option. This option isn't available for Azure Synapse Link for Dataverse profiles that use the CSV output format. -## Configure your environment - -You can use an existing Dataverse environment or create a new developer environment if you want to try this feature. More information: [Create a developer environment](/power-platform/developer/create-developer-environment) - -## Link to Microsoft Fabric - -Link to Microsoft Fabric from the Power Apps **Tables** area: Select **Analyze** > **Link to Microsoft Fabric** on the command bar. - -1. Sign into [Power Apps](https://make.powerapps.com). -2. Select the environment you want, select **Tables** on the left navigation pane, and then select **Analyze** > **Link to Microsoft Fabric** on the command bar. - > [!NOTE] - > - > This feature is enabled by default on all environments. Admins can disable this feature in the Power Platform admin center in the environment feature settings. - > - > This option has moved from the **Export** menu since public preview. You can no longer select this option from the context menu for specific tables because this option applies to all tables. - > - -3. If you're linking to Fabric for the first time, a wizard appears. You can launch Fabric with the same option in subsequent runs. -4. The wizard validates your Fabric subscription settings the first time. In the event you don't have a Fabric capacity in the same geography or region as your Dataverse environment, the wizard notifies you to get a capacity in the required geography. -5. If needed, the wizard asks you to create a one time connection to Microsoft Fabric within the same step. This connection is needed to enable Fabric and Dataverse services to securely access data. You need to sign in and then save the connection to proceed. -6. The wizard asks you to select an existing Fabric workspace or to create a new one. You can expect to see shortcuts to all your tables within this workspace. -7. If you don't see workspaces, ask the system to create a workspace. Go to [Troubleshooting common issues](#troubleshooting-common-issues) if you don't see the desired workspace. -8. All Dataverse tables where the "Change tracking" property is enabled are linked to Fabric. If this environment is linked to finance and operations apps, you can add finance and operations tables later using the **Manage tables** option. More information: [Manage link to Fabric](#manage-link-to-fabric). -9. When done, select **Create** in the wizard to create the workspace, create shortcuts, and to perform the initialization for the first time. -10. When complete, Fabric lakehouse opens in a separate browser tab. - -> [!NOTE] -> -> It might take up to 60 minutes to update data in OneLake including the conversion to delta parquet format. If you selected a table that contains a lot of data, the initial load time might take longer. When you open Fabric lakehouse, the links appear as **unidentified** until the initial sync is completed. More information: [Troubleshooting common issues](#troubleshooting-common-issues) -> -> Go to [Troubleshooting common issues](#troubleshooting-common-issues) for help resolving issues. - -## Manage link to Fabric - -Admins can manage tables linked to OneLake from the **Azure Synapse Link for Dataverse** page. If this environment is linked to Fabric, you see a link called **Microsoft OneLake**. - -1. Sign into [Power Apps](https://make.powerapps.com). - > [!NOTE] - > - > This feature is enabled by default on all environments. Power Platform admins can disable this feature in the Power Platform admin center in the environment feature settings. - -2. Select **Azure Synapse Link** from the left navigation pane, and the select **Microsoft OneLake**. -3. Open Fabric by selecting **View in Microsoft Fabric**. -4. Add more table links to Fabric by selecting **Manage tables**. -5. When you add a table, the system performs an initial sync and indexes the data. When the initial sync is completed, a shortcut to OneLake is created. View the status of tables by selecting **Manage tables**. Use the **Refresh Fabric tables** option to add the newly enabled table in Fabric. You might need to review the report and downstream data flows to see that they aren't impacted by the change. - - > [!NOTE] - > If your environment is linked to a Dynamics 365 finance and operations environment, the add tables option enables you to include tables from finance and operations apps. Learn more: [Choose finance and operations data in Azure Synapse Link for Dataverse](azure-synapse-link-select-FnO-data.md) - -6. When the sync status is **Active**, as data gets updated, your data changes are shown in reports created in Fabric. -7. If a new column is added to a table that’s already added (also known as a metadata change), you can use the **Refresh Fabric tables** option to update the change in Fabric. You might need to review the report and downstream data flows to see that they aren't impacted by the change. -8. You can also **Unlink**, which removes the Fabric link to your Dataverse environment. When unlinking, the Fabric lakehouse is also removed. - -> [!NOTE] -> If you've installed Dynamics 365 apps such as Customer Insights, the tables required for the app are also included in the **Microsoft OneLake** link. -> -> Removing already added tables has been disabled since it might impact already built reports. - -## Link existing Azure Synapse Link for Dataverse links with Fabric - -You can link your existing Azure Synapse Link for Dataverse profiles with Fabric from the **Azure Synapse Link for Dataverse** area. You need to select the **Enable Parquet/Delta lake** option to enable the view in the Fabric feature for Azure Synapse Link for Dataverse profiles. - -To enable an existing link, follow these steps: - -1. Sign into [Power Apps](https://make.powerapps.com). -1. Select **Azure Synapse Link** from the left navigation. -1. Select an existing Azure Synapse Link for Dataverse profile, and then select **Link to Microsoft Fabric**. -1. You're prompted to choose a Power BI premium workspace to continue. A list of workspaces in the same region as your environment are displayed. If you don’t see a workspace in the drop-down list, you might need to create one, and then return to this task. More information [Link to Microsoft Fabric](#link-to-microsoft-fabric) -1. Select **OK**. Validations are performed and the required artifacts are created in Fabric. -1. Select **View in Microsoft Fabric** open Fabric lakehouse. -1. You can add or remove tables using by selecting **Manage tables**. When you add a table, an initial sync is performed. When the initial sync is completed, select **Refresh Fabric tables** to refresh the Dataverse shortcut added to your Fabric lakehouse. - -> [!NOTE] -> -> - Select **Enable Parquet/Delta lake** to enable the view in Fabric. -> - Existing Azure Synapse Link for Dataverse profiles where the data is saved as CSV files can't be linked to Microsoft Fabric. -> - Azure Synapse Link profiles secured with managed identities, formerly Managed Service Identity (MSI), can't be linked to Microsoft Fabric at this point in time. - -## Work with Dataverse data and generate Power BI reports - -This section describes the different ways you can work with Dataverse data in Fabric and generate reports in Power BI. - -### Work with Dataverse data in Fabric - -You can view the Azure Synapse Analytics lakehouse, SQL endpoint, and the default dataset generated by Dataverse in the Fabric workspace you chose earlier. - -When you select **Link to Microsoft Fabric**, a Dataverse generated Azure Synapse Analytics lakehouse opens. You can go to other Fabric features and work with Fabric and Power BI. - -### Explore the Dataverse generated Azure Synapse Analytics lakehouse - -The tables you selected are added to the Azure Synapse Analytics lakehouse and displayed in Power BI as shown here. These tables are linked to your Power Platform environment using **Dataverse shortcuts**. As data changes in Dataverse, the Dataverse shortcuts in Fabric reflect the latest data. - -![Dataverse generated Synapse lakehouse](media/fabric/fabric-with-dv-shortcuts-shown.png) - -Note that Dataverse manages these shortcuts. You shouldn't delete or remove these shortcuts in Fabric. If you accidentally delete a link, you can go to the **Azure Synapse Link for Dataverse** area in Power Apps and select **Refresh Fabric links** to re-create the links. - -### Explore data with SQL endpoint - -You can open SQL endpoint and query Dataverse data with SQL and generate views in Fabric. - -In Power BI, select **SQL endpoint** from the top right context menu. The data is displayed in a SQL friendly experience where you can create SQL queries and views. +## Next steps -![SQL endpoint with Dataverse generated shortcuts](media/fabric/fabric-sql-endpoint-shortcuts-shown.png) - -### Autocreate a Power BI report - -Choose the default dataset generated by Dataverse, and then select **Auto-create report**. A Power BI report with the data you have selected is created. - -:::image type="content" source="media/fabric/fabric-autocreated-report.png" alt-text="Power BI auto-created report from Dataverse data in Fabric"::: - -## Secure data and grant access to other users - -You must have the Systems Administrator security role in the Power Platform environment to enable **Link to Fabric** or **Synapse Link**. You must be an administrator of the Power BI workspace. If you want the system to create a Power BI workspace, you need to have Power BI Capacity Administrator access to a capacity within the same region as the Dataverse environment. - -The system creates a data connection between the Power Apps environment and Fabric workspace using the credentials of the user at the time of link creation. If you use the **Fabric link** option from the Power Apps **Tables** area, the system creates the connection and asks you to save. If you use the **Synapse Link** option, you must create a data connection yourself before enabling the link. - -The system uses this connection to enable Fabric users to connect to Dataverse - the data store behind the Power Platform environment. If you want to enable other users to add or remove tables to Fabric link, you need to share this data connection with other users. To share the data connection with other users: - -1. Go to Fabric.Microsoft.com and select the gear icon on top left (next to user icon). -2. On the **Settings** menu, select **Data connections and Gateways**. The available data connections are displayed. -3. Select the **Connections** tab, and then choose the data connection you created with the connection type **Dataverse**. You might see a connection that is named like **org...crm.dynamics.com**. In case you have multiple connections like this, you need to select the connection that links to the specific Power Platform environment. -4. Once you select the correct data connection, select **...** > **manage users**. Then you're shown users who have access to this connection. -5. Enter the name or email of other users who need access to data. When you select a user, specify either the **Owner** role or **Reader** role. You only need to provide reader role to enable them to consume data. The users you specify receive an e-mail confirming access to data. - -You might need to grant access to other users to this workspace so that they can work with data. Depending on the need for data access, you might need to secure the data in this workspace before you share this data with others. You can secure the lakehouse as well as tables within the lakehouse using OneLake security. More information: [OneLake security overview](/fabric/onelake/security/get-started-security) - -## Troubleshooting common issues - -If you experience an error message, here are suggestions to resolve the issue. - -| Error message | How to resolve | -|:-----------------------------------|:------------------------------| -| You must have Power BI premium or Fabric capacity in the same region {Region}. You can also get a Fabric trial.

    You won't receive this error after April 30, 2024. Instead, you're shown an error if you don't have capacity in the same geography. | You need a Power BI premium of a Fabric capacity in the same region as your Dataverse environment. Power BI premium per user capacity isn't sufficient. You can get a free trial capacity by visiting [Fabric (preview) trial](/fabric/get-started/fabric-trial).
    More information: [Prerequisites](#prerequisites) | -| Creation of Fabric workspace failed. You can try again. If this issue persists contact [Microsoft customer support](/power-platform/admin/get-help-support) with the corelation ID. | You must be a Power BI Capacity Administrator or have contributor access to a capacity within the same geography as your Dataverse environment.
    Currently, the system supports these premium capacity SKUs described in the [Prerequisites](#prerequisites).
    Verify with your Power BI Tenant admin that you have permissions to create workspaces. You can find this setting in Power BI Admin portal under **Tenant settings > workspace settings > Create workspaces**.
    If the issue isn't resolved, contact [Microsoft customer support](/power-platform/admin/get-help-support) with the provided reference ID | -| Creation of Fabric lakehouse failed. You can try again. If this issue persists contact [Microsoft customer support](/power-platform/admin/get-help-support) with the corelation ID. | Verify with your Power BI Tenant admin that you have permissions to create OneLake shortcuts. You can find this setting in Power BI Admin portal under **Admin Portal > Tenant Settings > Microsoft Fabric > Users can create Fabric items**.
    More information: [Prerequisites](#prerequisites)
    If the issue isn't resolved after several retries, you can contact [Microsoft customer support](/power-platform/admin/get-help-support) with the provided reference ID. | -| We ran into an issue, Creaton of Fabric Lakehouse failed. | Verify with your Power BI tenant admin that you have permissions to create artifacts in Fabric. You can find this setting in Power BI admin portal under **Tenant settings > oneLake settings > Users can access data stored in OneLake with apps external to Fabric**.
    More information: [Prerequisites](#prerequisites)
    If the issue isn't resolved after several retries, you can contact [Microsoft customer support](/power-platform/admin/get-help-support) with the provided reference ID. | -| Your organization doesn't appear to have Microsoft Fabric. You can get a trial. | Contact your administrator or get a trial version of Microsoft Fabric. | -|You need to get a trial version of Fabric to get started. | You need a Power BI premium of a Fabric capacity. Power BI premium per user capacity isn't sufficient. You can get a free trial capacity by visiting: [Fabric (preview) trial](/fabric/get-started/fabric-trial) | -| You need to be a system administrator to link to Fabric. | You need the system administrator security role in Dataverse to perform this operation. More information: [Security roles and privileges](/power-platform/admin/security-roles-privileges) | -| Newly added fields in tables aren't reflected in Fabric Lakehouse. | When a new field is added to a Dataverse table, the newly added column isn't added to Fabric Linked workspaces automatically. To include newly added columns, select **Synapse Link** in Power Apps (make.powerapps.com), select the Microsoft OneLake or the Azure Synapse Link profile and select **Refresh Fabric tables**. This action refreshes the table metadata in Fabric Lakehouse. | -| Error message "Unauthorized. Access to target location https://[...].crm3.dynamics.com/ denied" when accessing Dataverse tables in Fabric Lakehouse. | This error message indicates that the user accessing tables in Fabric doesn't have the required permissions to access Dataverse tables. This error might be shown even if the same user has access to the tables in Dataverse.
    The Link to Fabric wizard in Power Apps creates a data connection at the time of creating the Link to Fabric. This data connection uses credentials of the user, it's possible that:
    - The password of the user who created the connection has changed or has expired.
    - The user account of the user who created the Fabric link is inactive.
    - Other users who need to access Dataverse tables in Fabric Lakehouse don't have access to the data connection. More information: [Secure data and grant access to other users](#secure-data-and-grant-access-to-other-users) | -| Error message "A back end error occurred. The Fabric to Dataverse connection ID ... is not valid for this user. Please check that you have access to this connection, and that the connection is connected to this organization, with URL ... You can try again, if this issue persists please contact support. | This error message indicates that the user selecting the **Refresh Fabric tables** option in the Azure Synapse Link page doesn't have the required permissions. This error might be shown even when the user has access to the tables in Dataverse and is a system administrator.
    The link to Fabric wizard in Power Apps creates a data connection at the time of creating the link to Fabric. This data connection uses credentials of the user, it's possible that:
    - The password of the user who created the connection has changed or has expired.
    - The user account of the user who created the Fabric link is inactive.
    - The user performing the **Refresh Fabric tables** option doesn't have access to the data connection. More information: [Secure data and grant access to other users](#secure-data-and-grant-access-to-other-users) | -|All tables from Dataverse show as **Unidentified** in Fabric Lakehouse. | You might see this error message while your data is being initialized for the first time. If this issue persists for more than several hours, go to **Synapse Link** in Power Apps (make.powerapps.com), choose the Microsoft OneLake or the Azure Synapse Link profile and select **Refresh Fabric Links**. This refreshes the table metadata in Fabric Lakehouse. | -| Tables from Dynamics 365 finance and operations apps are missing. | System auto selects nonsystem tables with **Change tracking** property set to **Yes** when creating a Fabric Link. To select more tables, open **Microsoft OneLake** profile in **Synapse Link** and select **Manage Tables**. If you have a finance and operations environment linked to this Power Platform environment, you can also select tables from finance and operations apps. Finance and operations apps tables aren't autoselected with Fabric Link.
    More information: [Add Finance and Operations tables](/power-apps/maker/data-platform/azure-synapse-link-select-fno-data#add-finance-and-operations-tables-in-azure-synapse-link) | -| There are {.. #tables} tables enabled for change tracking in your environment. Addition of more than one thousand tables isn't supported. | Fabric link feature currently can't be enabled on environments with more than 1,000 change tracking enabled tables.
    As a workaround, select **Synapse Link** in Power Apps (make.powerapps.com) and create multiple profiles with less than 1,000 tables each. | - -## See also - -[Create virtual tables using the virtual connector provider](create-virtual-tables-using-connectors.md) +[Link to Microsoft Fabric](fabric-link-to-data-platform.md) diff --git a/powerapps-docs/maker/data-platform/behavior-format-date-time-field.md b/powerapps-docs/maker/data-platform/behavior-format-date-time-field.md index 2012575fe2..3d323fd792 100644 --- a/powerapps-docs/maker/data-platform/behavior-format-date-time-field.md +++ b/powerapps-docs/maker/data-platform/behavior-format-date-time-field.md @@ -2,11 +2,11 @@ title: "Behavior and format of the Date and Time column in Microsoft Dataverse | MicrosoftDocs" description: Understand the format of date and time columns. ms.custom: "" -ms.date: 05/28/2024 +ms.date: 06/18/2025 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" @@ -32,8 +32,8 @@ Two options are available for date and time columns. Dataverse stores all date and time values in UTC time zone. When your app displays values or processing values entered by users, Dataverse and model-driven apps can adjust for the user's time zone with these **Behavior** options. -- **User local**: Adjust values for the user's time zone. This is the default behavior. You can [change this once to another behavior](#change-user-local-behavior). -- **Time zone independent**: No time zone conversion. +- **User local**: Adjust values for the user's time zone. This is the default behavior for the **Date and time** format. You can [change this once to another behavior](#change-user-local-behavior). +- **Time zone independent**: No time zone conversion. This is the default behavior for the **Date only** format. - **Date only**: No time zone conversion. Unlike **Time zone independent**, the time portion isn't stored. The user's time zone is set in [personal options](../../user/set-personal-options.md#general-tab-options), not the system time zone in Windows, Android, iOS, or macOS. However, the [system time zone might affect client scripts that work with JavaScript Dates](#get-values-with-client-api). diff --git a/powerapps-docs/maker/data-platform/best-practices-workflow-processes.md b/powerapps-docs/maker/data-platform/best-practices-workflow-processes.md index 6b688994af..084d51c579 100644 --- a/powerapps-docs/maker/data-platform/best-practices-workflow-processes.md +++ b/powerapps-docs/maker/data-platform/best-practices-workflow-processes.md @@ -7,7 +7,7 @@ ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: best-practice applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/catalog-overview.md b/powerapps-docs/maker/data-platform/catalog-overview.md index 727ffe950f..1283a50b4e 100644 --- a/powerapps-docs/maker/data-platform/catalog-overview.md +++ b/powerapps-docs/maker/data-platform/catalog-overview.md @@ -2,11 +2,11 @@ title: "Catalog in Power Platform" description: "Use the catalog in Power Platform to managed shared components and templates so that administrators, application makers, and developers within an organization can reuse each other's work." author: derekkwanpm -ms.author: derekkwan -ms.subservice: +ms.author: matp ms.date: 09/10/2024 ms.reviewer: matp ms.topic: overview +ms.subservice: dataverse-maker contributors: - JimDaly - ChrisGarty diff --git a/powerapps-docs/maker/data-platform/common-issues-resolutions-solution-checker.md b/powerapps-docs/maker/data-platform/common-issues-resolutions-solution-checker.md index eb39e4eafa..3fa1cb29ba 100644 --- a/powerapps-docs/maker/data-platform/common-issues-resolutions-solution-checker.md +++ b/powerapps-docs/maker/data-platform/common-issues-resolutions-solution-checker.md @@ -83,13 +83,12 @@ In order to use solution checker in this organization, Administration Mode must To disable administration mode for an organization instance: 1. Sign in to the [Power Platform admin center](https://admin.powerplatform.microsoft.com/environments/). -2. Open the environment that has issues running solution checker, and then select **Edit**. - -3. Set **Administration mode** to disabled, and then select **Save**. +1. Open the environment that has issues running solution checker, and then select **Edit**. +1. Set **Administration mode** to **Disabled**, and then select **Save**. ![Disable Admin mode.](media/solution-checker-instance-disable-admin-mode.png) -4. Run solution checker again. +1. Run solution checker again. ## Solution checker fails due to missing security roles @@ -103,31 +102,30 @@ The application user for solution checker requires the following security roles To assign missing security roles to the Power Apps Checker Application user: -1. In the Power Platform admin center, navigate to your environment, then to **Users** > **app users list**. -2. Select the **'Power Apps Checker Application'** user from the list of users. +1. In the Power Platform admin center, open your environment, then select **Users** > **app users list**. +2. Select the **Power Apps Checker Application** user from the list of users. 3. Select **Edit security roles** on the command bar. 4. Select checkboxes for the roles listed above, and then select **Save**. 5. Run solution checker again. ## Solution checker fails due to restricted access mode -The application user for solution checker requires an access mode of **'Non-Interactive'** or **'Read-Write'** in order to communicate with the Dataverse organization. If the access mode has been changed to another value such as **'Administrative'**, then attempts to run analysis, download results, and run cancelation will fail. +The application user for solution checker requires an access mode of **'Non-Interactive'** or **'Read-Write'** in order to communicate with the Dataverse organization. If the access mode has been changed to another value such as **'Administrative'**, then attempts to run analysis, download results, and run cancellation will fail. -To resolve this issue, you must update the **'Power Apps Checker'** application user with 'Non-interactive' access mode. +To resolve this issue, you must update the **Power Apps Checker Application** user with 'Non-interactive' access mode. ### How to update user access mode To update the access mode for the Power Apps Checker user: -1. Open your Dataverse organization and navigate to **Settings** > **Security** > **Users**. -2. Select the **'Power Apps Checker'** user from the list of users and double-click to open the user form. -3. Scroll to the **'Administration'** > **'Client Access License (CAL) Information'** section of the form. -4. Select **'Non-interactive'** in the **Access Mode** drop-down control. +1. In Power Apps (make.powerapps.com) select you environment and then select **Settings** > **Advanced settings** > **Administration** > **Users** to open the legacy user settings. +1. Open the **Power Apps Checker Application** user from the list of users. +1. Scroll to the **Administration** > **Client Access License (CAL) Information** section of the form and select **'Non-interactive'** in the **Access Mode** drop-down control. -![Access Mode.](media/solution-checker-access-mode.png) + ![Access Mode.](media/solution-checker-access-mode.png) -5. Save and close the user form. -6. Run solution checker again. +1. Save and close the user form. +1. Run solution checker again. ## Solution Checker fails due to disabled application user @@ -135,18 +133,12 @@ The Power Apps Checker application user in the Dataverse organization containing ![Disabled user status.](media/solution-checker-disabled-application-user.png) -### How to enable the Power Apps Checker application user - -1. In the Power Platform Admin center, select the environment and go to **Settings** > **User's + Permissions** > **Users**. -2. In the **Application Users** view, select the checkmark next to the Power Apps Checker Application user. -3. On the Actions toolbar, select **Enable** - -![Enable user from view.](media/solution-checker-enable-application-user-view.png) +### How to activate the Power Apps Checker application user +1. In the Power Platform Admin center, open the environment and go to **Settings** > **User's + Permissions** > **Users**. +2. In the **Application Users** view, select the **Power Apps Checker Application** user. +3. On the command bar, select **Activate** 4. In the **Confirm User Activation** message, select **Activate**. -5. An alternative approach is to open the application user form and select **Enabled** status in the form footer. **Save** the change. - -![Enable user from form.](media/solution-checker-enable-application-user-form.png) ## Solution checker remains in a Running state for more than 30 minutes @@ -215,7 +207,7 @@ To verify and/or modify the enabled status of the PowerApps-Advisor enterprise a If a solution contains a business process flow component in draft state that has never been previously activated, then solution checker will fail to export the solution for analysis. This error isn't unique to solution checker and is caused by the business process flow having a dependency on a backing (custom) table component that doesn't get created until the business process flow is activated for the first time. This issue can also occur if a business process flow is activated from within solution explorer. -Reference [KB Article #4337537: Invalid Export - Business Process table Missing](https://support.microsoft.com/en-hk/help/4337537/invalid-export-business-process-table-missing) for details about the issue and steps to resolve. +Reference [KB Article #4337537: Invalid Export - Business Process table Missing](/previous-versions/troubleshoot/dynamics/crm/failed-export-business-process) for details about the issue and steps to resolve. ## Solution checker fails to export solutions with model-driven app components diff --git a/powerapps-docs/maker/data-platform/configure-actions.md b/powerapps-docs/maker/data-platform/configure-actions.md index 46f1e0c757..82e3acf04d 100644 --- a/powerapps-docs/maker/data-platform/configure-actions.md +++ b/powerapps-docs/maker/data-platform/configure-actions.md @@ -7,7 +7,7 @@ ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" @@ -165,7 +165,7 @@ Custom process actions have two relevant managed properties ### Is Customizable -The **Is Customizabl**e managed property controls whether on not someone who installs a managed solution containing the custom process action can edit or delete it. If wish for the custom process action to be edited or deleted when included in a managed solution, you should set this property to true. +The **Is **Is Customizable** managed property controls whether on not someone who installs a managed solution containing the custom process action can edit or delete it. If wish for the custom process action to be edited or deleted when included in a managed solution, you should set this property to true. ### Is Custom Processing Step Allowed for Other Publishers diff --git a/powerapps-docs/maker/data-platform/configure-entity-feedback.md b/powerapps-docs/maker/data-platform/configure-entity-feedback.md index 3f1bdfdfd1..d4f937895e 100644 --- a/powerapps-docs/maker/data-platform/configure-entity-feedback.md +++ b/powerapps-docs/maker/data-platform/configure-entity-feedback.md @@ -7,7 +7,7 @@ ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/configure-form-row-summary.md b/powerapps-docs/maker/data-platform/configure-form-row-summary.md index 129488f59f..a39b16765c 100644 --- a/powerapps-docs/maker/data-platform/configure-form-row-summary.md +++ b/powerapps-docs/maker/data-platform/configure-form-row-summary.md @@ -1,8 +1,9 @@ --- title: "Configure a row summary for a model-driven app main form" description: "Learn how to configure a row summary for a model-driven app main form that uses AI to let your users view key information on a form." -ms.date: 11/25/2024 -ms.subservice: mda-maker +ms.date: 05/23/2025 +ms.update-cycle: 180-days +ms.subservice: dataverse-maker ms.topic: how-to author: Mattp123 ms.author: damialajogun @@ -37,7 +38,9 @@ To enable and use this feature, the following criterion is required: Row summaries can be configured for table main forms. > [!NOTE] -> When you configure the row summary, it applies to all main forms for the table. +> +> - When you configure the row summary, it applies to all main forms for the table. +> - The case table, which is available with some Dynamics 365 apps like Dynamics 365 Customer Service, doesn't support the row summary feature. This is to prevent conflicts with the [manage case and custom record summary](/en-us/dynamics365/customer-service/administer/copilot-map-custom-fields) feature. 1. Sign in to Power Apps (make.powerapps.com) select **Tables** on the left navigation pane, and then open the table where you want to configure a row summary. [!INCLUDE [left-navigation-pane](../../includes/left-navigation-pane.md)] 1. Under **Customizations**, select **Row summary**. diff --git a/powerapps-docs/maker/data-platform/configure-workflow-steps.md b/powerapps-docs/maker/data-platform/configure-workflow-steps.md index 0f77da2755..825e51d7de 100644 --- a/powerapps-docs/maker/data-platform/configure-workflow-steps.md +++ b/powerapps-docs/maker/data-platform/configure-workflow-steps.md @@ -6,7 +6,7 @@ ms.date: 07/30/2020 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article author: "Mattp123" ms.assetid: 0b47dfd5-76db-464f-90c0-c64a0173dcdd caps.latest.revision: 18 diff --git a/powerapps-docs/maker/data-platform/create-actions.md b/powerapps-docs/maker/data-platform/create-actions.md index d29c48e9a2..8ac02b5f81 100644 --- a/powerapps-docs/maker/data-platform/create-actions.md +++ b/powerapps-docs/maker/data-platform/create-actions.md @@ -4,12 +4,11 @@ description: "Use custom process actions when you want to automate a series of c ms.custom: "" ms.date: 04/28/2021 ms.reviewer: "matp" - -ms.topic: "conceptual" -author: "msftman" +ms.topic: article +author: "Mattp123" ms.assetid: 6dbc0f10-7ac5-4685-ab74-22d24bf7102d ms.subservice: dataverse-maker -ms.author: "deonhe" +ms.author: "matp" search.audienceType: - flowmaker - enduser @@ -153,7 +152,7 @@ Custom process actions have two relevant managed properties ### Is Customizable -The **Is Customizabl**e managed property controls whether on not someone who installs a managed solution containing the custom process action can edit or delete it. If wish for the custom process action to be edited or deleted when included in a managed solution, you should set this property to true. +The **Is Customizable** managed property controls whether on not someone who installs a managed solution containing the custom process action can edit or delete it. If wish for the custom process action to be edited or deleted when included in a managed solution, you should set this property to true. ### Is Custom Processing Step Allowed for Other Publishers diff --git a/powerapps-docs/maker/data-platform/create-and-use-dataflows.md b/powerapps-docs/maker/data-platform/create-and-use-dataflows.md index fe473bb80c..b8fe3d129b 100644 --- a/powerapps-docs/maker/data-platform/create-and-use-dataflows.md +++ b/powerapps-docs/maker/data-platform/create-and-use-dataflows.md @@ -2,7 +2,7 @@ title: "Create and use dataflows in Power Apps | MicrosoftDocs" description: "Learn how to create and use dataflows in Power Apps" ms.custom: "" -ms.date: 08/06/2024 +ms.date: 04/21/2025 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" @@ -122,13 +122,19 @@ Once you’ve completed your selections and your table and its data settings are Once your tables have been defined, you should schedule the refresh frequency for each of your connected data sources. -1. Dataflows use a data refresh process to keep data up to date. In the **Power Platform Dataflow authoring tool**, you can choose to refresh your dataflow manually or automatically on a scheduled interval of your choice. To schedule a refresh automatically, select **Refresh automatically**. +Dataflows use a data refresh process to keep data up to date. In the **Power Platform Dataflow authoring tool**, you can choose to refresh your dataflow manually or automatically on a scheduled interval of your choice. - ![Refresh automatically.](media/refresh-automatically.png) +### Schedule a refresh automatically -2. Enter the dataflow refresh frequency, start date, and time, in UTC. +1. Select **Refresh automatically**. -3. Select **Create.** +2. Enter the dataflow frequency: + - **Frequency-based refresh**. Set how often in 30 minute increments, start date and time in UTC. + - **Refresh on specific days and times**. Choose time zone, frequency (daily or weekly) and time of day in 30 minute increments. + + ![Refresh automatically option.](media/refresh-automatically.png) + +3. Select **Publish.** Some organizations might want to use their own storage for creation and management of dataflows. You can integrate dataflows with Azure Data Lake Storage Gen2 if you follow the requirements to set up the storage account properly. More information: [Connect Azure Data Lake Storage Gen2 for dataflow storage](/power-query/dataflows/connect-azure-data-lake-storage-for-dataflow) diff --git a/powerapps-docs/maker/data-platform/create-connection-reference.md b/powerapps-docs/maker/data-platform/create-connection-reference.md index c81ca9fde5..2095190206 100644 --- a/powerapps-docs/maker/data-platform/create-connection-reference.md +++ b/powerapps-docs/maker/data-platform/create-connection-reference.md @@ -4,7 +4,7 @@ description: Learn how to create a connection reference. ms.custom: "" ms.date: 04/23/2024 ms.reviewer: angieandrews -ms.topic: conceptual +ms.topic: how-to author: ChrisGarty contributors: - ChrisGarty @@ -35,7 +35,7 @@ Connection references can be added to a solution in different ways: > [!NOTE] > > - Canvas apps and flows handle connections differently. Flows use connection references for all connectors, whereas canvas apps only use them for implicitly shared (non-OAuth) connections, such as SQL Server Authentication. More information: [Security and types of authentication](../canvas-apps/connections-list.md#security-and-types-of-authentication) -> - A connection reference is automatically created when you create new connections from the flow and canvas app designers. +> - A connection reference is automatically created when you create new connections from the flow designer or Power Apps Studio. > - Canvas apps and flows added from outside solutions will not automatically be upgraded to use connection references. > - Connection references get associated with canvas apps only at the time a data source is added to the app. To upgrade apps you must remove the connection from the app and then add a connection containing an associated connection reference. diff --git a/powerapps-docs/maker/data-platform/create-custom-help-pages.md b/powerapps-docs/maker/data-platform/create-custom-help-pages.md index f3529df9ba..b133249ead 100644 --- a/powerapps-docs/maker/data-platform/create-custom-help-pages.md +++ b/powerapps-docs/maker/data-platform/create-custom-help-pages.md @@ -1,8 +1,8 @@ --- -title: "Create custom help pages | MicrosoftDocs" -description: "Create custom help pages on UCI" +title: "Create custom help pages for model-driven apps" +description: "Create custom help pages with model-driven apps in Power Apps" ms.custom: "" -ms.date: 02/03/2023 +ms.date: 06/02/2025 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" @@ -11,8 +11,6 @@ applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" - "powerapps" -ms.assetid: -caps.latest.revision: author: "matthewbolanos" ms.subservice: dataverse-maker ms.author: "matp" @@ -20,47 +18,45 @@ search.audienceType: - maker --- -# Create guided help for your Unified Interface app +# Create guided help for your model-driven app Use custom help panes and guided tasks to give your Unified Interface application a custom in-product help experience that is tailored to your organization. Use custom help panes to provide table, form, and language-specific help and guidance that includes rich text, content links, images, and video links. > [!IMPORTANT] +> > - Custom help panes replace the previous learning path guided help feature used with legacy web client apps. > - Custom help panes don’t work with Unified Interface apps running on a mobile device, such as Android and iOS tablets and smartphones. ## Custom help panes and learning path -The new guided help implementation of custom help panes differs from the previous learning path guided help feature. Both features let you create custom help for your application. However, custom help panes are optimized for the most common guided help scenarios. +The new guided help implementation of custom help panes differs from the previous learning path guided help feature. Both features let you create custom help for your application. However, custom help panes are optimized for the most common guided help scenarios. + +Custom help panes provide the following key features that are not available with learning path: -Custom help panes provide the following key features that are not available with learning path: - Free-form rich text, including bullets and numbering. - Visibly linked coach marks and help balloons. - More options for video sources, including private sources. - Storage of help content in Microsoft Dataverse as part of your solution. -Custom help panes don't provide the following key features that are available with learning path: +Custom help panes don't provide the following key features that are available with learning path: + - Sequential help balloons. - Help pages per role. - Help pages for per-device form factor, such as smartphones. ## Prerequisites -To use the custom help panes feature, your environment needs the following: -- Be version 9.1.0.10300 or later. -- [Must have custom help panes enabled.](#enable-custom-help-panes-for-your-environment) +To use the custom help panes feature, your environment needs the [custom help panes environment setting enabled.](#enable-custom-help-panes-for-your-environment) ### Enable custom help panes for your environment -1. Open a model-driven app, and then on the command bar select **Settings** ![Settings.](../model-driven-apps/media/powerapps-gear.png) > **Advanced Settings**. -2. Go to **Settings** > **System** > **Administration**. -3. On the **Administration** page, select **System Settings**. -4. On the **General** tab, under **Set custom Help URL**, select **Yes** for **Enable Custom Help Panes and Guided Tasks**, and then select **OK**. - > [!div class="mx-imgBorder"] - > ![Enable custom help panes.](media/enable-custom-help-panes.png "Enable custom help panes") +1. Sign in to the Power Platform admin center at [https://admin.powerplatform.microsoft.com](https://admin.powerplatform.microsoft.com). +1. In **Settings** for the selected environment, select **Product** > **Features**. +1. Under **Help features** turn **Enable Custom Help Panes** to **On**. > [!IMPORTANT] -> - You can enable custom help panes or customizable help, but not both at the same time. Confirm that **Use custom Help for customizable tables** and **Append parameters to URL** are both set to **No**. -> - Some environments may require that you also set **Enable Learning Path** to **Yes**. +> +> You can enable custom help panes or customizable help, but not both at the same time. Confirm that **Use help for customizable entities** is set to **No**. ## Privileges required @@ -71,11 +67,13 @@ More information: [Security roles and privileges](/power-platform/admin/security ## Context-sensitive custom help -Each help pane is unique for these contexts: -- Application +Each help pane is unique for these contexts: + - Table -- Form -- Language +- Form +- Dashboard +- Language +- Application ## Help pane navigation @@ -116,6 +114,7 @@ You can insert videos and static images into your help pane. Videos and images a > Remember to copy the link URL for the video or image you want so you can paste it into your help pane. Custom help panes support the following video sources: + - Microsoft Stream (Classic) (use for private content) - YouTube - Facebook @@ -140,6 +139,7 @@ Author needs to define the target through drag and drop capability in the proper ![Drag and drop](media/drag-drop.png) > [!NOTE] +> > - Balloons and coach marks don't work well with custom components. This feature only applies to default Unified Interface UI components. > - Sequential help balloons and coachmarks are not supported yet. diff --git a/powerapps-docs/maker/data-platform/create-edit-1n-relationships-solution-explorer.md b/powerapps-docs/maker/data-platform/create-edit-1n-relationships-solution-explorer.md index 6cd59eab75..42708a9970 100644 --- a/powerapps-docs/maker/data-platform/create-edit-1n-relationships-solution-explorer.md +++ b/powerapps-docs/maker/data-platform/create-edit-1n-relationships-solution-explorer.md @@ -7,7 +7,7 @@ ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/create-edit-elastic-tables.md b/powerapps-docs/maker/data-platform/create-edit-elastic-tables.md index acf3d3d792..b3c6618981 100644 --- a/powerapps-docs/maker/data-platform/create-edit-elastic-tables.md +++ b/powerapps-docs/maker/data-platform/create-edit-elastic-tables.md @@ -2,9 +2,9 @@ title: Create and edit elastic tables description: Learn how to create an elastic Microsoft Dataverse table. ms.custom: "" -ms.date: 12/03/2024 +ms.date: 03/31/2025 author: pnghub -ms.author: gned +ms.author: olegov ms.reviewer: matp ms.topic: how-to ms.subservice: dataverse-maker @@ -13,7 +13,7 @@ ms.subservice: dataverse-maker An elastic table is a table managed by Microsoft Dataverse. Elastic tables come with the same familiar user experience and API that are offered with standard tables. They share many aspects and options with standard tables, but come with their own unique features and capabilities that are powered by Azure Cosmos DB. -As with standard tables, elastic tables are included with your Dataverse database capacity use. +Elastic tables are included with your Dataverse log capacity use. Watch this video that to learn about elastic tables. > [!VIDEO https://learn-video.azurefd.net/vod/player?id=6f859c28-12b1-4042-9502-b8a441020768 ] @@ -32,7 +32,7 @@ The requirement for Contoso's marketing application is that it must be able to i Elastic tables will automatically scale for this high throughput scenario. -For example, in the above scenario, an elastic table named *Coupon* with millions of records can be associated with Dataverse standard tables like *Contact* (customer info) and *Offer* (a custom standard table). Since the elastic tables are isolated from the standard tables, performance for the overall marketing application won't be negatively impacted. In addition, time-to-live capability with elastic table (*Coupon* in this scenario) allows removal of data automatically after fixed periods and ensure optimization of storage capacity. +For example, in the above scenario, an elastic table named *Coupon* with millions of records can be associated with Dataverse standard tables like *Contact* (customer info) and *Offer* (a custom standard table). Since the elastic tables are isolated from the standard tables, performance for the overall marketing application won't be negatively impacted. In addition, time-to-live capability with elastic table (*Coupon* in this scenario) allows removal of data automatically after fixed periods and ensure optimization of log capacity. Use elastic tables when: @@ -50,7 +50,7 @@ The choice of table should be based on the specific needs of your application. A ## Horizontal scaling and performance -As your business data grows, elastic tables provide unlimited auto scalability based on your application workload, both for storage size and throughput, such as the number of records created, updated, or deleted in a given timeframe. +As your business data grows, elastic tables provide unlimited auto scalability based on your application workload, both for size and throughput, such as the number of records created, updated, or deleted in a given timeframe. If your business scenario requires very large volume of data writes, application makers can make use of Dataverse multiple request APIs, such as `CreateMultiple`, `UpdateMultiple`, and `DeleteMultiple`, to achieve more throughput within Dataverse throttling limits. More information: [Developer guide: Bulk Operation messages](../../developer/data-platform/bulk-operations.md) and [Optimize performance for bulk operations](/power-apps/developer/data-platform/optimize-performance-create-update) diff --git a/powerapps-docs/maker/data-platform/create-edit-entities-portal.md b/powerapps-docs/maker/data-platform/create-edit-entities-portal.md index 54acd8eb85..c147c9fd67 100644 --- a/powerapps-docs/maker/data-platform/create-edit-entities-portal.md +++ b/powerapps-docs/maker/data-platform/create-edit-entities-portal.md @@ -2,7 +2,8 @@ title: "Create and edit tables using Power Apps" description: "Understand how to create and edit tables using Power Apps." author: "Mattp123" -ms.date: 01/21/2025 +ms.date: 05/27/2025 +ms.update-cycle: 180-days ms.reviewer: "" ms.topic: "how-to" ms.subservice: dataverse-maker @@ -19,9 +20,9 @@ Tables are used to model and manage business data. When you develop an app, you To create and edit tables in Dataverse, you need the following: - A Power Platform environment with Dataverse. -- Appropriate permission with either of the following privileges: - - The system customizer security role in the environment. Users with the system customizer security role can create tables and have access to view and edit standard and custom tables. Apart from self-created table records, the system customizer role doesn’t have the privileges to access table records that aren’t shared with them. More information: [Environments with a Dataverse database](/power-platform/admin/database-security#environments-with-a-dataverse-database). - - The environment maker security role with a custom security role that has Create, Read, and Write privileges to the [Entity](/power-apps/developer/data-platform/reference/about-entity-reference) table. These privileges allow the environment maker to create and edit tables in Dataverse, however a Power Platform admin must grant them data access to these tables. +- Appropriate permission that includes *both* of the following privileges: + - The system customizer security role in the environment. Note that, apart from self-created table records, the system customizer role doesn’t have the privileges to access table records that aren’t shared with them. More information: [Environments with a Dataverse database](/power-platform/admin/database-security#environments-with-a-dataverse-database). + - A system or custom security role that has Create, Read, and Write privileges to the [Entity](/power-apps/developer/data-platform/reference/about-entity-reference) table. These privileges allow the user to create and edit tables in Dataverse. Note that a Power Platform admin must grant the user data access to edit the rows of these tables. ## View tables @@ -50,13 +51,10 @@ There are several ways to create a new table: ### Create new tables -Use the table visual designer experience where you create tables, configure table relationships, and can view a diagram of your data. +Use the data workspace experience where you create tables, configure table relationships, and can view a diagram of your data. :::image type="content" source="media/table-visual-designer.png" alt-text="Visual table designer in Power Apps" lightbox="media/table-visual-designer.png"::: -> [!NOTE] -> The table visual designer currently only supports creating and editing tables. You can add existing tables to the designer, but existing tables will be in read-only mode and can only be edited in a new tab. - 1. Command bar: - **Back**. Takes you back where you were in Power Apps. @@ -66,8 +64,8 @@ Use the table visual designer experience where you create tables, configure tabl - **Create relationships**. Creates a table relationship between two tables. Select a table on the canvas and CTRL + click another table, then select **Create relationships**. More information: [Types of table relationships](create-edit-entity-relationships.md#types-of-table-relationships) (NOTE: many-to-many relationships aren't supported) - **Remove**. Deletes the table and all associated table rows when *a new table* is selected. Remove doesn't delete the table and associated rows when an existing table is selected. -2. Table visual designer canvas. On the table visual designer canvas, you can drag tables around the canvas to relocate them and select ... to invoke the table actions menu, and view a diagram of your data. -3. Table visual designer canvas actions: +2. Data workspace canvas. On the data workspace canvas, you can drag tables around the data workspace to relocate them and select ... to invoke the table actions menu, and view a diagram of your data. +3. Data workspace actions: - **+**. Zoom in to increase the size of the table objects on the canvas. - **-**. Zoom out to decrease the size of the table objects on the canvas. - **Fit view**. Resize to fit within the available space in the browser tab. @@ -79,10 +77,10 @@ Use the table visual designer experience where you create tables, configure tabl - **Remove**. Remove the table and all associated rows. If the tables is a new table, all data is deleted. For existing tables, that table is only removed from the table designer and no data is removed. 5. Table row editor. In this area, create new, edit, or delete rows, create new columns, change the table ownership type, and edit table properties. 6. Show more or less column. You can select and clear the columns to be displayed in the table card. Also displays or hides the relationship for lookup columns that connect to another table currently in the designer. -7. Add new relationship handle. Drag the handle and create a new relationship by pointing it towards another table. Some relationship types are currently not supported. More information: [Limitations using the table visual designer](#limitations-using-the-table-visual-designer) +7. Add new relationship handle. Drag the handle and create a new relationship by pointing it towards another table. Some relationship types are currently not supported. More information: [Limitations using the data workspace](#limitations-using-the-data-workspace) > [!TIP] -> Can't find the tables you created on the canvas? Select **Fit view** on the table visual designer canvas actions menu. +> Can't find the tables you created on the canvas? Select **Fit view** on the data workspace actions menu. Create a table with the visual table designer by using any of the following methods: @@ -106,17 +104,15 @@ Describe your data in natural language and Copilot generates tables along with r 3. Keep iterating with Copilot in the Copilot panel until you're satisfied with your data. More information: [Review the table](../canvas-apps/ai-conversations-create-app.md#review-the-table) 4. When you're finished, select **Save and exit**. -#### Limitations using the table visual designer +#### Limitations using the data workspace -The following data types aren't currently supported when you create a column in the table visual designer: +The following data types aren't currently supported when you create a column in the data workspace: - Rich text - Customer - Autonumber - Formula -Editing existing tables isn’t currently supported in the table visual designer. To edit an existing table, select it, and then select **View data** > **Edit** on the new tab. This opens the selected table in the traditional table designer, allowing you to edit the table. - Some relationship configurations are currently not supported. | Starting table | Targeting table | Relationship type | Status | @@ -160,7 +156,7 @@ Select **Advanced options** to display additional properties that are optional f |Property |Description| |--|--| -| **Schema name** | By default, the schema name is automatically created for you based on the display name, but you can change it. The schema name can't contain spaces and includes the customization prefix for the Dataverse solution publisher. You can't change this after the table is saved. | +| **Schema name** | By default, the schema name is automatically created for you based on the display name, but you can change it. The schema name can't contain spaces and includes the customization prefix for the Dataverse solution publisher. You can't change this after the table is saved. | |**Type** | Select the type of table. Use standard for most tables. [Activity tables](/power-apps/maker/data-platform/types-of-entities#activity-tables) are a special table that can only be owned by a user or team, but can't be owned by an organization. [Virtual tables](create-edit-virtual-entities.md) require the table be populated with data from an external source. [Elastic tables](create-edit-elastic-tables.md) should be considered when your business scenario entails very large data volumes with high throughput, storage, and low latency requirements. | |**Record ownership**|Switch the table type to Activity table to create tables that can manage tasks. The type of **Ownership** defines who can perform operations on a record.| | **Choose a table image** | You can choose whether to display an image for the table. This image is displayed in Power Apps in some design areas. Notice that the image doesn't appear in apps using the table. To display images in apps, use the image column. More information: [Image columns](types-of-fields.md#image-columns) | @@ -183,14 +179,15 @@ Select **Advanced options** to display additional properties that are optional f |**Can be taken offline** | Makes data in this table available while the Power Apps application isn't connected to a network. | |**Can be added to a queue**| Use the table with queues. Queues improve routing and sharing of work by making records for this table available in a central place that everyone can access. | -Select **Save** to continue. This action closes the **New table** panel and display the [table hub](#edit-table-components-using-the-table-hub). +Select **Save** to continue. This action closes the **New table** panel and displays the [table hub](#edit-table-components-using-the-table-hub). ### Create with external data Use an Excel file/CSV file or SharePoint list to populate a table with your data, which uses copilot to assist with the table generation. > [!NOTE] -> [Generally available](/power-platform/admin/general-availability-deployment) copilot features are enabled by default and can't be turned off. To disable them, a tenant admin must [contact support](/power-platform/admin/get-help-support). +> - [Generally available](/power-platform/admin/general-availability-deployment) copilot features are enabled by default and can't be turned off. To disable them, a tenant admin must [contact support](/power-platform/admin/get-help-support). +> - When you use create with external data, such as data from Excel or SharePoint, Power Apps initially displays only the first 20 rows of your dataset as a preview. The full dataset is ingested and made available after you save the table. 1. From the **Tables** area, on the command bar select **New table** > **Create with external data**, and then select either **File (Excel, .CSV)** or **SharePoint list**. # [File (Excel, .CSV)](#tab/excel) diff --git a/powerapps-docs/maker/data-platform/create-edit-field-portal.md b/powerapps-docs/maker/data-platform/create-edit-field-portal.md index db636adc22..f56d3a732e 100644 --- a/powerapps-docs/maker/data-platform/create-edit-field-portal.md +++ b/powerapps-docs/maker/data-platform/create-edit-field-portal.md @@ -2,12 +2,13 @@ title: "Create and edit columns in Dataverse using Power Apps" description: Learn how to create and edit table columns with Power Apps. ms.custom: "" -ms.date: 03/03/2025 +ms.date: 07/11/2025 ms.reviewer: "" ms.topic: "how-to" ms.subservice: dataverse-maker ms.author: "matp" author: "Mattp123" +ms.collection: bap-ai-copilot search.audienceType: - maker --- @@ -33,12 +34,12 @@ Several column properties are available: |**Data type**|Controls how values are stored as well as how they're formatted in some applications. Once a column is saved, you can't change the data type except for converting text columns to autonumber columns.| |**Format**|Depending on the Data type selected, you can select the format for the column data type. For example, whole number can have the format duration, language code, time zone, or none.| |**Behavior**| By default Simple is selected. Some data types support extended behavior such as [calculated or rollup](#calculated-or-rollup). | - |**Required**| A record can't be saved without data in this column. Notice that required columns on a hidden tab or section don’t block saving the record unless the same column is also in a visible tab or section on the same form. More information: [Saving rows programmatically for required columns](#saving-rows-programmatically-for-required-columns) | + |**Required**| A record can't be saved without data in this column. Required columns on a hidden tab or section don't block saving the record unless the same column is also in a visible tab or section on the same form. More information: [Saving rows programmatically for required columns](#saving-rows-programmatically-for-required-columns) | |**Searchable**| This column appears in Advanced Find and is available when customizing views. | -| **Allow form fill assistance (preview)** | This is a preview feature. When enabled, users receive suggestions generated by AI for columns that support form fill assistance in main and quick create forms. You can disable for columns that might contain sensitive information, such as email address. Requires at least one **AI form fill assistance** environment setting enabled. More information: [Use Copilot's form fill assistance feature in model-driven apps](../../user/form-filling-assistance.md) | +| **Allow form fill assistance (preview)** | This is a preview feature. When enabled, users receive suggestions generated by AI for columns that support form fill assistance in main and quick create forms. You can disable for columns that might contain sensitive information, such as email address. Requires at least one [**AI form fill assistance** environment setting](/power-platform/admin/settings-features#ai-form-fill-assistance) enabled. For more information about AI form fill assistance, go to: [Use Copilot's form fill assistance feature in model-driven apps](../../user/form-filling-assistance.md) Notice that configuring this setting creates a dependency on the AI Skill Config table (used with AI Builder) in the default solution. | |**Advanced Options**| Enter the schema name, [specify a maximum length](#max-length), [IME mode](#ime-mode), column security, auditing, can appear in dashboards, and whether the column data is sortable. | -You can set additional options depending on your choice of **Data type**. +You can set other options depending on your choice of **Data type**. ## Column data types @@ -70,7 +71,7 @@ These columns store data as a number but include different presentation and vali |Format|Description| |--|--| -|**Duration**|A number value presented as a drop-down list that contains time intervals. A user can select a predefined value from the list or type an integer value using the format: "x minutes," "x hours" or "x days." Hours and days can be entered using decimals, for example, "1.2 hours" or "1.5 days." Minute values entered must be expressible in whole minutes. Entering a decimal to represent subminute values are rounded to the nearest minute. Whole number with duration format | +|**Duration**|A number value presented as a drop-down list that contains time intervals. A user can select a predefined value from the list or type an integer value using the format: "x minutes," "x hours" or "x days." Hours and days can be entered using decimals, for example, "1.2 hours" or "1.5 days." Minute values entered must be expressible in whole minutes. Entering a decimal to represent sub-minute values are rounded to the nearest minute. Whole number with duration format | |**Timezone**|A number value presented as a drop-down list that contains a list of time zones.| |**Language code**|A number value presented as a drop-down list that contains a list of languages that have been enabled for the environment. If no other languages have been enabled, the base language will be the only option. The value saved is the Locale Identifier (LCID) value for the language.| | **None** | No special formatting will be applied for the whole number column. This is the default format. | @@ -86,7 +87,7 @@ Use these columns to store time values. You can store values as early as 1/1/175 You can also set specific **Behavior** for Date Time columns in the **Advanced options**. -- **User local** : Displays values converted to in the current user’s local time zone. This is the default for new columns. +- **User local** : Displays values converted to in the current user's local time zone. This is the default for new columns. - **Date only**: This behavior is available for the **Date Only** type. Displays values without time zone conversion. Use this for data like birthdays and anniversaries. - **Time zone independent**: Displays values without time zone conversion. @@ -106,20 +107,22 @@ More information: [Behavior and format of the Date and Time column](behavior-for | **Multiline Text**|A text value intended to be displayed in a multi-line textbox. Limited to a maximum of 1,048,576 characters. You can also set a lower [Max Length](#max-length). | |**Choice**|Displays a list of options where only one can be selected.| |**Yes/No**|Displays Yes/No where only one can be selected. You choose which labels are displayed for each option. The default values are **Yes** and **No**.| +| **Formula** | Built on Power Fx, use a formula column to perform operations that return values during fetch operations. Formula columns use the Power Fx syntax that's similar to Office Excel. More information: [Work with formula columns (preview)](formula-columns.md) | +| **Prompt** | Prompt columns allow AI prompts to be defined and the generative AI results are stored in the table column. More information: [Prompt columns](prompt-column.md) | ## Save new column -Once you have set the **Display Name**, **Name** and **Data type** properties you can select **Done** to close the **Column properties** panel. +Once you set the **Display Name**, **Name** and **Data type** properties you can select **Done** to close the **Column properties** panel. -You can continue to edit the table and add additional columns or return and continue editing this column. The columns won't be created until you select **Save Table** to save all the changes to the table. +You can continue to edit the table and add more columns or return and continue editing this column. The columns aren't created until you select **Save Table** to save all the changes to the table. ![Save Table button.](media/save-entity-button.png) -You can also select **Discard** to discard the changes you have made. +You can also select **Discard** to discard the changes you made. ## Edit a column -While viewing columns, select the column, you want to edit. You can modify the **Display Name** but you can't change the **Name** and **Data type** if you have saved changes to the table to add the column. +While viewing columns, select the column, you want to edit. You can modify the **Display Name** but you can't change the **Name** and **Data type** if you saved changes to the table to add the column. ### General properties @@ -127,12 +130,12 @@ Every column has the following properties you can change: |Property|Description| |--|--| -|**Required**|When this is selected a row can't be saved without data in this column. More information: [Saving rows programmatically for required columns](#saving-rows-programmatically-for-required-columns) | -|**Searchable**|De-select this for columns for the table that you don’t use. When a column is searchable, it appears in **Advanced Find** and is available when customizing views. Deselecting this reduces the number of options shown to people using advanced find.| +|**Required**|A record can't be saved without data in this column. Note that required columns on a hidden tab or section don't block saving the record unless the same column is also in a visible tab or section on the same form. More information: [Saving rows programmatically for required columns](#saving-rows-programmatically-for-required-columns) | +|**Searchable**|De-select this for columns for the table that you don't use. When a column is searchable, it appears in **Advanced Find** and is available when customizing views. Deselecting this reduces the number of options shown to people using advanced find.| |**Description**|Found within **Advanced Options**. Enter instructions to the user about what the column is for. These descriptions appear as tooltips for the user in model-driven apps when they hover their mouse over the label of the column.| > [!NOTE] ->**Making columns required**: Be careful when you make columns required. People will resist using the application if they can’t save rows because they lack the correct information to enter into a required column. People might enter incorrect data simply to save the row and get on with their work. +>**Making columns required**: Be careful when you make columns required. People resist using the application if they can't save rows because they lack the correct information to enter into a required column. People might enter incorrect data simply to save the row and get on with their work. > >**Set requirement dynamically**: In model-driven apps you can use business rules or form scripts to change the requirement level as the data in the row changes as people work on it. More information: [Create business rules and recommendations to apply logic in a form](../model-driven-apps/create-business-rules-recommendations-apply-logic-form.md) > @@ -144,9 +147,9 @@ For information about columns that can't be enabled for searching or sorting, go ### Saving rows programmatically for required columns -When a row is saved programmatically using web services, only the `SystemRequired` columns are enforced. Failure to set a value for `SystemRequired` columns return an error. You can’t set the `SystemRequired` level of requirement. +When a row is saved programmatically using web services, only the `SystemRequired` columns are enforced. Failure to set a value for `SystemRequired` columns return an error. You can't set the `SystemRequired` level of requirement. -Setting a column to Business Required means that the default behavior of a model-driven or canvas app will enforce this requirement in the app. The request won't be sent to the service if the column has no value. The app user is shown an error and prompted to add data to the required column before they can save the row. There are options within the app to override this behavior and allow operation to proceed if needed. +Setting a column to Business Required means that the default behavior of a model-driven or canvas app enforce this requirement in the app. The request isn't sent to the service if the column has no value. The app user is shown an error and prompted to add data to the required column before they can save the row. There are options within the app to override this behavior and allow operation to proceed if needed. ## Calculated or Rollup @@ -154,7 +157,7 @@ You can set a custom column to be a **Calculated** or a **Rollup** column. Colum ### Calculated -With a calculated column you can enter a formula to assign a value to the column. +With a calculated column, you can enter a formula to assign a value to the column. These data types can be set to calculated columns: **Currency**, **Date and Time**, **Date Only**, **Decimal Number**, **Duration**, **Email**, **Language**, **Multi Select Option Set**, **Choice**, **Text**, **Text Area**, **Ticker Symbol**, **Timezone**, **Two Options**, **URL**, and **Whole Number**. More information: [Define calculated columns to automate manual calculations](define-calculated-fields.md) @@ -182,12 +185,12 @@ When you choose **Multi Select Choice** or **Choice** data type the designer lis Choose choice type -If you choose **New choice** the default behavior is to create a new global choice. +If you choose **New choice**, the default behavior is to create a new global choice. > [!NOTE] > While you're editing options for a new global choice, the **Display name** and **Name** values are for the global choice rather than for the column. The default values match the column values, but you can edit them while you edit the global choice to be different from the column you're currently creating. -If you want to create a local choice you must select **View more** and choose **Local choice**. +If you want to create a local choice, you must select **View more** and choose **Local choice**. Local choice @@ -198,7 +201,7 @@ If you want to create a local choice you must select **View more** and choose * ## Delete a column -With the system administrator security role, you can delete any custom columns that aren’t part of a managed solution. When you delete a column, any data stored in the column is lost. The only way to recover data from a column that was deleted is to restore the database from a point before the column was deleted. +With the system administrator security role, you can delete any custom columns that aren't part of a managed solution. When you delete a column, any data stored in the column is lost. The only way to recover data from a column that was deleted is to restore the database from a point before the column was deleted. > [!NOTE] > Before you can delete a custom column, you must remove any dependencies that might exist in other solution components. @@ -219,11 +222,11 @@ Use the **Delete column** command to delete the column. After deleting the colum IME (input method editor) mode specifies how a physical keyboard can be used to enter characters for text columns. IMEs are tools provided by the operating system for composing text. They're commonly used to enter Chinese, Japanese, and Korean words. IME mode doesn't restrict the characters that users can enter. For example, when IME mode is disabled, users can still enter Japanese characters by pasting in a text input. > [!IMPORTANT] -> IME Mode is used for backward compatibility with the legacy web client and the IME Mode settings described here don’t apply to Unified Interface apps. Additionally, IME mode is supported only in Internet Explorer and partially supported in Firefox. -- **Active**: This value activates the IME initially. You can deactivate it later if desired. This is the default IME setting. -- **Auto**: When IME mode is auto, Power Apps won't interfere with the IME. -- **Disabled**: Disable IME mode to bypass the IME. This can be useful for entering alphanumeric characters in certain languages. -- **Inactive**: Power Apps will deactivate the IME initially. You can activate it later if desired. +> IME Mode is used for backward compatibility with the legacy web client and the IME Mode settings described here don't apply to Unified Interface apps. Additionally, IME mode is supported only in Internet Explorer and partially supported in Firefox. +- **Active**: This value activates the IME initially. You can deactivate it later if desired. This is the default IME setting. +- **Auto**: When IME mode is auto, Power Apps won't interfere with the IME. +- **Disabled**: Disable IME mode to bypass the IME. This can be useful for entering alphanumeric characters in certain languages. +- **Inactive**: Power Apps will deactivate the IME initially. You can activate it later if desired. ### See also [Create and edit columns for Dataverse](create-edit-fields.md)
    diff --git a/powerapps-docs/maker/data-platform/create-edit-field-solution-explorer.md b/powerapps-docs/maker/data-platform/create-edit-field-solution-explorer.md index 224e72c125..910385be16 100644 --- a/powerapps-docs/maker/data-platform/create-edit-field-solution-explorer.md +++ b/powerapps-docs/maker/data-platform/create-edit-field-solution-explorer.md @@ -2,9 +2,8 @@ title: "Create and edit columns for Microsoft Dataverse using Power Apps solution explorer | MicrosoftDocs" description: "Discover how to create and edit columns in Power Apps" ms.custom: "" -ms.date: 07/23/2020 +ms.date: 04/01/2025 ms.reviewer: "" - ms.suite: "" ms.tgt_pltfrm: "" ms.topic: "how-to" @@ -20,28 +19,23 @@ search.audienceType: --- # Create and edit columns for Microsoft Dataverse using Power Apps solution explorer - - Solution explorer provides one way to create and edit columns for Dataverse. The [Power Apps portal](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc) enables configuring the most common options, but certain options can only be set using solution explorer.
    More information: - [Create and edit columns for Dataverse](create-edit-fields.md) - [Create and edit columns for Dataverse using Power Apps portal](create-edit-field-portal.md) -## Open solution explorer - -Part of the name of any custom column you create is the customization prefix. This is set based on the solution publisher for the solution you’re working in. If you care about the customization prefix, make sure that you are working in an unmanaged solution where the customization prefix is the one you want for this table. More information: [Change the solution publisher prefix](create-solution.md#solution-publisher) - -[!INCLUDE [cc_navigate-solution-from-powerapps-portal](../../includes/cc_navigate-solution-from-powerapps-portal.md)] - +Part of the name of any custom column you create is the customization prefix. This is set based on the solution publisher for the solution you’re working in. Make sure that you're working in an unmanaged solution where the customization prefix is the one you want for this table. More information: [Change the solution publisher prefix](create-solution.md#solution-publisher) ## View columns -With solution explorer open, under **Components** expand **Tables** and select the table where you want to create or edit the column. +1. From [Power Apps](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc), select **Solutions** on the left navigation pane, and then on the toolbar select **...** > **Switch to classic**. +1. Open the unmanaged solution where you want to view a column. The classic solution explorer opens in a new browser window. +1. In the classic solution explorer, under **Components** expand **Entities**, expand the table where you want to view columns, and then select **Fields**. -![Solution explorer columns view.](media/solution-explorer-fields-view.png) + ![Solution explorer columns view.](media/solution-explorer-fields-view.png) -You can select the following views: +In the **View** drop down list you can select one of the following views: |View|Description| |--|--| @@ -51,10 +45,10 @@ You can select the following views: ## Create a column -While viewing columns, in the command bar, click **New** which will open the new column form. Some standard tables or custom tables that are included in a managed solution might not allow you to add new columns. +While viewing columns, in the command bar, select **New** which opens the new column form. Some standard tables or custom tables that are included in a managed solution might not allow you to add new columns. > [!NOTE] -> For model-driven apps you can also create a new column from the form editor. In the form editor, below the **Column Explorer** click **New Column** to create a new column. More information: [Add, configure, move, or delete columns on a form](../model-driven-apps/add-move-or-delete-fields-on-form.md) +> For model-driven apps, you can also create a new column from the form editor. In the form editor, below the **Column Explorer** select **New Column** to create a new column. More information: [Add, configure, move, or delete columns on a form](../model-driven-apps/add-move-or-delete-fields-on-form.md) ![Solution explorer new column form.](media/solution-explorer-new-field-form.png) @@ -64,51 +58,53 @@ You must enter data and confirm default values set for the following properties |--|--| |**Display Name**|The text to be displayed for the column in the user interface. You can change this after you save, but the value you enter will generate a value for the **Name** column.| |**Column Requirement**|Whether data is required in the column to save the row. More information: [Column Requirement options](#column-requirement-options)| -|**Name**|The unique name across your environment. A name will be generated for you based on the display name that you've entered, but you can edit it before saving. Once a column is created the name cannot be changed as it may be referenced in your applications or code. The name will have the customization prefix for the current solution's publisher prepended to it.| -|**Searchable**|Set this to **No** for columns for the table that you don’t use. When a column is searchable it appears in **Advanced Find** in model-driven apps and is available when customizing views. De-selecting this will reduce the number of options shown to people using advanced find.| +|**Name**|The unique name across your environment. A name is generated for you based on the display name that you've entered, but you can edit it before saving. Once a column is created the name can't be changed as it might be referenced in your applications or code. The name has the customization prefix for the current solution's publisher prepended to it.| +|**Searchable**|Set this to **No** for columns for the table that you don’t use. When a column is searchable, it appears in **Advanced Find** in model-driven apps and is available when customizing views. Deselecting this reduces the number of options shown to people using advanced find.| |**Column Security**|Whether the data in the column is secured at a higher level than the table. More information: [Column level security to control access](/dynamics365/customer-engagement/admin/field-level-security)| -|**Auditing**|Whether data for this column will be audited when the table is enabled for auditing. More information: [Audit data and user activity for security and compliance](/customer-engagement/admin/audit-data-user-activity)| +|**Auditing**|Whether data for this column is audited when the table is enabled for auditing. More information: [Manage Dataverse auditing](/power-platform/admin/manage-dataverse-auditing)| |**Description**|Enter instructions to the user about what the column is for. These descriptions appear as tooltips for the user in model-driven apps when they hover their mouse over the label of the column.| |**Appears in global filter in interactive experience**|More information: [Configure interactive experience dashboards](/dynamics365/customer-engagement/customize/configure-interactive-experience-dashboards) | |**Sortable in interactive experience dashboard**|More information: [Configure interactive experience dashboards](/dynamics365/customer-engagement/customize/configure-interactive-experience-dashboards)| -|**Data type**|Controls how values are stored as well as how they are formatted in some applications. Once a column is saved, you cannot change the data type as it may impact the data in your table. More information: [Column Data types](#column-data-types)| +|**Data type**|Controls how values are stored as well as how they're formatted in some applications. Once a column is saved, you can't change the data type as it might impact the data in your table. More information: [Column Data types](#column-data-types)| |**Column type**|Whether the column is **Simple**, **Calculated**, or **Rollup**. More information: [Column Type](#column-type)| -|**Format**|How the column will be formatted. The available formatting options depend on the **Data type**.| +|**Format**|How the column is formatted. The available formatting options depend on the **Data type**.| You can set additional options depending on your choice of **Data type**. More information: [Column Data types](#column-data-types) ## Column Requirement options There are three column requirement options: -- **Optional**: The row can be saved even if there is no data in this column. -- **Business Recommended**: The row can be saved even if there is no data in this column. However, a blue symbol appears next to the column to indicate it is important. -- **Business Required**: The row can’t be saved if there is no data in this column. + +- **Optional**: The row can be saved even if there's no data in this column. +- **Business Recommended**: The row can be saved even if there's no data in this column. However, a blue symbol appears next to the column to indicate it's important. +- **Business Required**: The row can’t be saved if there's no data in this column. > [!NOTE] -> - When a row is saved programmatically using web services, only the SystemRequired columns are enforced. Failure to set a value for SystemRequired columns will return an error. You can’t set the SystemRequired level of requirement.
    Setting a column to Business Required means that the default behavior of a model-driven or canvas app will enforce this requirement in the app. The request will not be sent to the service if the column has no value. The app user is shown an error and prompted to add data to the required column before they can save the row. There are options within the app to override this behavior and allow operation to proceed if needed. -> - Be careful when you make columns business required. People will resist using the application if they can’t save rows because they lack the correct information to enter into a required column. People may enter incorrect data simply to save the row and get on with their work. You can use business rules or form scripts to change the requirement level as the data in the row changes as people work on it. More information [Create business rules and recommendations to apply logic in a form](../model-driven-apps/create-business-rules-recommendations-apply-logic-form.md) +> +> - When a row is saved programmatically using web services, only the SystemRequired columns are enforced. Failure to set a value for SystemRequired columns return an error. You can’t set the SystemRequired level of requirement.
    Setting a column to Business Required means that the default behavior of a model-driven or canvas app will enforce this requirement in the app. The request won't be sent to the service if the column has no value. The app user is shown an error and prompted to add data to the required column before they can save the row. There are options within the app to override this behavior and allow operation to proceed if needed. +> - Be careful when you make columns business required. People will resist using the application if they can’t save rows because they lack the correct information to enter into a required column. People might enter incorrect data simply to save the row and get on with their work. You can use business rules or form scripts to change the requirement level as the data in the row changes as people work on it. More information [Create business rules and recommendations to apply logic in a form](../model-driven-apps/create-business-rules-recommendations-apply-logic-form.md) ## Column Data types There are many different types of columns, but you can only create some of them. For more information about all types of columns, see [Types of columns and column data types](types-of-fields.md). -When creating a column, **Data type** provides the following choices: +When you create a column, **Data type** provides the following choices: |Option|Description| |--|--| -|**Single Line of Text**|This column can contain up to 4,000 text characters. You can set a maximum length to be less than this. This column has several format options that will change the presentation of the text. More information: [Single line of text options](#single-line-of-text-options)| +|**Single Line of Text**|This column can contain up to 4,000 text characters. You can set a maximum length to be less than this. This column has several format options that change the presentation of the text. More information: [Single line of text options](#single-line-of-text-options)| |**Choice**|Displays a list of options where one can be selected. More information: [Choice column options](#choice-column-options)| |**MultiSelect Choice**|Displays a list of options where more than one can be selected. More information: [Choice column options](#choice-column-options)| |**Yes/No**|Displays a list of options where one of two can be selected.

    Yes/No columns don’t provide format options at the column level. But when you add one to the form you can choose to display them as radio buttons, a check box, or a select list.| |**Image**|Displays a single image per row in the application. Each table can have one image column. Image columns are always named `tableImage`.| -|**Whole Number**|Integers with a value between -2,147,483,648 and 2,147,483,647 can be in this column. This column has options that change depending on how the column is presented. More information: [Whole number options](#whole-number-choices)| +|**Whole Number**|Integers with a value between -2,147,483,648 and 2,147,483,647 can be in this column. This column has options that change depending on how the column is presented. More information: [Whole number options](#whole-number-choices)| |**Floating Point Number**|Up to 5 decimal points of precision can be used for values between -100,000,000,000 and -100,000,000,000 can be in this column. You can specify the level of precision and the maximum and minimum values. More information: [Using the right type of number](types-of-fields.md#using-the-right-type-of-number)| |**Decimal Number**|Up to 10 decimal points of precision can be used for values between -100,000,000,000 and -100,000,000,000 can be in this column. You can specify the level of precision and the maximum and minimum values. More information: [Using the right type of number](types-of-fields.md#using-the-right-type-of-number)| |**Currency**|Monetary values between -922,337,203,685,477 and 922,337,203,685,477 can be in this column. You can set a level of precision or choose to base the precision on a specific currency or a single standard precision used by the organization. More information: [Using currency columns](types-of-fields.md#using-currency-columns)| |**Multiple Lines of Text**|This column can contain up to 1,048,576 text characters. You can set the maximum length to be less than this. When you add this column to a model-driven app form, you can specify the dimensions of the column.| |**Date and Time**|Use these columns to store time values. You can store values as early as 1/1/1753 12:00 AM. More information: [Date and Time options](#date-and-time-options)| |**Lookup**|A column that allows setting a reference to a single row of a specific type of table. Some system lookup columns behave differently. More information: [Different types of lookups](types-of-fields.md#different-types-of-lookups)| -|**Customer**|A lookup column that you can use to specify a customer, which can be an account or contact. More information: [Different types of lookups](types-of-fields.md#different-types-of-lookups)| +|**Customer**|A lookup column that you can use to specify a customer, which can be an account or contact. More information: [Different types of lookups](types-of-fields.md#different-types-of-lookups)| ### Single line of text options @@ -120,10 +116,10 @@ The single line of text data type has the following format options: |**Text Area**|A text value intended to be displayed in a multi-line textbox. If you require more than 4,000 characters, use a **Multiple Lines of Text** data type.| |**Email**|A text value validated as an e-mail address and rendered as a mailto link in the column. | |**URL**|A text value validated as a URL and rendered as a link to open the URL.| -|**Ticker Symbol**|A text value for a ticker symbol that will display a link that will open to show a quote for the stock ticker symbol. | +|**Ticker Symbol**|A text value for a ticker symbol that displays a link that opens to show a quote for the stock ticker symbol. | |**Phone**|A text value validated as a phone number rendered as link to initiate a phone call by using Skype. | -You can also set a **Maximum length** to so that the system will not allow text values longer than you specify. +You can also set a **Maximum length** to so that the system won't allow text values longer than you specify. ### Choice column options @@ -141,7 +137,7 @@ When you choose **Multi Select Choice** or **Choice** data type the solution exp #### Use Existing Choice -If you to choose **Use Existing Option Set** the designer will display a list of existing *global choices* and include an **Edit** and **New** buttons to configure the global choices that this column should use. +If you to choose **Use Existing Option Set** the designer displays a list of existing *global choices* and include an **Edit** and **New** buttons to configure the global choices that this column should use. ![Configure a global choice .](media/global-option-set-solution-explorer.png) @@ -150,7 +146,6 @@ You can also configure global choices separately. More information: [Create and > [!NOTE] > If you define every choice as a global choice your list of global choices will grow and could be difficult to manage. If you know that the set of options will only be used in one place, use a local choice. - ### Whole number choices Whole number columns have the following format choices: @@ -160,7 +155,7 @@ Whole number columns have the following format choices: |**None**|A number value presented in a text box.| |**Duration**|A number value presented as a drop-down list that contains time intervals. A user can select a value from the list or type an integer value that represents the number of minutes.| |**Timezone**|A number value presented as a drop-down list that contains a list of time zones.| -|**Language**|A number value presented as a drop-down list that contains a list of languages that have been enabled for the environment. If no other languages have been enabled, the base language will be the only option. The value saved is the Locale Identifier (LCID) value for the language.| +|**Language**|A number value presented as a drop-down list that contains a list of languages that have been enabled for the environment. If no other languages have been enabled, the base language is the only option. The value saved is the Locale Identifier (LCID) value for the language.| You can also restrict the maximum or minimum allowed values. @@ -187,7 +182,7 @@ You can set a custom column **Field Type** to be a **Simple**, **Calculated**, o ### Simple -Simple means that the column is not a calculated or rollup column. +Simple means that the column isn't a calculated or rollup column. ### Calculated @@ -198,7 +193,7 @@ More information: [Define calculated columns to automate manual calculations](de ### Rollup -With a rollup column you can set aggregation functions that will run periodically to set a number value for the column. These data types can be set to calculated columns: **Currency**, **Date and Time**, **Decimal Number**, and **Whole Number**. +With a rollup column, you can set aggregation functions that run periodically to set a number value for the column. These data types can be set to calculated columns: **Currency**, **Date and Time**, **Decimal Number**, and **Whole Number**. More information: [Define rollup columns that aggregate values](define-rollup-fields.md) @@ -212,13 +207,12 @@ Once you have configured the column, use one of three commands in the command ba |**Save and Close**|Save the column definition and close the window.| |**Save Create New**|Save the column definition and open a new form to create a new column.| - -## Edit a column +## Edit a column While [viewing columns](#view-columns), select the column you want to edit. Some standard columns or custom columns that are included in a managed solution might not allow you to edit them. > [!NOTE] -> When editing a form, for any column already added to the form you can double-click the column to display the **Column Properties**. On the **Details** tab, click **Edit**. More information: [Add, configure, move, or delete columns on a form](../model-driven-apps/add-move-or-delete-fields-on-form.md) +> When editing a form, for any column already added to the form you can double-click the column to display the **Column Properties**. On the **Details** tab, select **Edit**. More information: [Add, configure, move, or delete columns on a form](../model-driven-apps/add-move-or-delete-fields-on-form.md) After you make changes to a column, you must publish customizations. @@ -240,9 +234,9 @@ When you select multiple columns to edit, the **Edit Multiple Columns** dialog b With the system administrator security role, you can delete any custom columns that aren’t part of a managed solution. When you delete a column, any data stored in the column is lost. The only way to recover data from a column that was deleted is to restore the database from a point before the column was deleted. > [!NOTE] -> Before you can delete a custom column, you must remove any dependencies that may exist in other solution components. +> Before you can delete a custom column, you must remove any dependencies that might exist in other solution components. -1. While [viewing columns](#view-columns), select a custom column that can be deleted in the list and click the ![Delete command.](../model-driven-apps/media/delete.gif) button in the command bar. +1. While [viewing columns](#view-columns), select a custom column that can be deleted in the list and select the ![Delete command.](../model-driven-apps/media/delete.gif) button in the command bar. 2. In the **Confirm Deletion** dialog, select **Delete**. > [!TIP] @@ -260,16 +254,19 @@ If you delete a lookup column, the 1:N table relationship for it will automatica ## IME Mode -IME (input method editor) mode specifies how a physical keyboard can be used to enter characters for text columns. IMEs are tools provided by the operating system for composing text. They are commonly used to enter Chinese, Japanese, and Korean words. -IME mode does not restrict the characters that users can enter. For example, when IME mode is disabled, users can still enter Japanese characters by pasting in a text input. +IME (input method editor) mode specifies how a physical keyboard can be used to enter characters for text columns. IMEs are tools provided by the operating system for composing text. They're commonly used to enter Chinese, Japanese, and Korean words. +IME mode doesn't restrict the characters that users can enter. For example, when IME mode is disabled, users can still enter Japanese characters by pasting in a text input. + > [!IMPORTANT] +> > IME Mode is used for backward compatibility with the legacy web client and the IME Mode settings described here don’t apply to Unified Interface apps. Additionally, IME mode is supported only in Internet Explorer and partially supported in Firefox. -- **Active**: This value will activate the IME initially. You can deactivate it later if desired. This is the default IME setting. -- **Auto**: When IME mode is auto, Power Apps will not interfere with the IME. +- **Active**: This value activates the IME initially. You can deactivate it later if desired. This is the default IME setting. +- **Auto**: When IME mode is auto, Power Apps won't interfere with the IME. - **Disabled**: Disable IME mode to bypass the IME. This can be useful for entering alphanumeric characters in certain languages. -- **Inactive**: Power Apps will deactivate the IME initially. You can activate it later if desired. +- **Inactive**: Power Apps deactivates the IME initially. You can activate it later if desired. + +### See also -### See also [Create and edit columns for Dataverse](create-edit-fields.md)
    [Create and edit columns for Dataverse using Power Apps portal](create-edit-field-portal.md)
    [Types of columns and column data types](types-of-fields.md)
    diff --git a/powerapps-docs/maker/data-platform/create-edit-metadata.md b/powerapps-docs/maker/data-platform/create-edit-metadata.md index 0318a0a374..43160950ea 100644 --- a/powerapps-docs/maker/data-platform/create-edit-metadata.md +++ b/powerapps-docs/maker/data-platform/create-edit-metadata.md @@ -44,7 +44,7 @@ You can't delete standard tables, columns, or table relationships. They're consi ## Limitations on creating metadata items -There's a limit to the number of tables you can create. Admins can view information about the number of tables and percent used towards the maximum in the legacy **Resources In Use** page. Go to Power Platform admin center (admin.powerplatform.com) select **Environments**, and open the environment you want. Select **Settings**, expand **Resources** select **All legacy settings**. In the legacy settings, select **Administration** > **Resources In Use**. +There's a limit to the number of tables you can create. Admins can view information about the number of tables and percent used towards the maximum in the legacy **Resources In Use** page. Go to Power Platform admin center (admin.powerplatform.com) select **Manage** > **Environments**, and open the environment you want. Select **Settings**, expand **Resources** select **All legacy settings**. In the legacy settings, select **Administration** > **Resources In Use**. Within each table there's also an upper limit on the number of columns you can create. This limit is based on the technical limitations on the amount of data that can be stored in a row of a Dataverse table and isn't viewable. It's difficult to provide a specific number because each type of column can use a different amount of space. The upper limit depends on the total space used by all the columns for the table. diff --git a/powerapps-docs/maker/data-platform/create-solution.md b/powerapps-docs/maker/data-platform/create-solution.md index 78d69380d7..7eb79ac6dc 100644 --- a/powerapps-docs/maker/data-platform/create-solution.md +++ b/powerapps-docs/maker/data-platform/create-solution.md @@ -2,7 +2,7 @@ title: "Create a solution in Power Apps | MicrosoftDocs" description: "Learn how to create a solution in Power Apps" ms.custom: "" -ms.date: 10/15/2024 +ms.date: 06/11/2025 ms.reviewer: "" ms.topic: "how-to" author: "Mattp123" @@ -28,7 +28,7 @@ To create a solution: |Field|Description| |-----------|-----------------| |**Display Name**|The name shown in the list of solutions. You can change this later.| - |**Name**|The unique name of the solution. This is generated using the value you enter in the Display Name column. You can edit this before you save the solution, but after you save the solution, you can’t change it.| + |**Name**|The unique name of the solution. Must only contain letters, numbers, and underscores. The name is generated from the allowed characters from the value you enter in the **Display Name** column. You can edit this before you save the solution, but after you save the solution, you can’t change it.| |**Publisher**|You can select the default publisher or create a new publisher. We recommend that you create a publisher for your organization to use consistently across your environments where you'll use the solution. See [Solution publisher](#solution-publisher) later in this article. | |**Version**|Enter a number for the version of your solution. This is only important if you export your solution. The version number is included in the file name when you export the solution.| diff --git a/powerapps-docs/maker/data-platform/create-virtual-tables-using-connectors.md b/powerapps-docs/maker/data-platform/create-virtual-tables-using-connectors.md index 8e52a34658..b92ec5cdaa 100644 --- a/powerapps-docs/maker/data-platform/create-virtual-tables-using-connectors.md +++ b/powerapps-docs/maker/data-platform/create-virtual-tables-using-connectors.md @@ -1,11 +1,12 @@ --- -title: "Create virtual tables using virtual connectors (Microsoft Dataverse) | Microsoft Docs" +title: "Create virtual tables using virtual connectors in Microsoft Dataverse" description: "Learn how to create virtual tables using virtual connectors in Microsoft Dataverse." -ms.date: 02/07/2025 +ms.date: 06/09/2025 ms.reviewer: matp -ms.topic: article +ms.topic: how-to author: mkannapiran ms.author: kamanick +ms.subservice: dataverse-maker search.audienceType: - maker contributors: @@ -21,15 +22,15 @@ This document covers the new experience using Power Apps (make.powerapps.com) t - SQL Server - Microsoft SharePoint -- Microsoft Fabric. More information: [Build apps and automations drive action with insights from Microsoft Fabric](azure-synapse-link-build-apps-with-fabric.md) +- Microsoft Fabric (preview) - Salesforce (preview) - Oracle (preview) - Snowflake (preview) - PostgreSQL -Except for the Excel connector provider, all virtual connector providers use a Power Platform connector. More information: [Connector reference for virtual connector providers used with virtual tables](#connector-reference-for-virtual-connector-providers-used-with-virtual-tables) +These virtual connector providers use a Power Platform connector. More information: [Connector reference for virtual connector providers used with virtual tables](#connector-reference-for-virtual-connector-providers-used-with-virtual-tables) -You can create a virtual table for Excel using the virtual connector provider by following the legacy process. More information: [Create the virtual table for Microsoft Excel](#create-the-virtual-table-for-microsoft-excel) +You can create a virtual table for Excel using a legacy process with a virtual connector provider. More information: [Create virtual tables using Excel in Microsoft Dataverse](create-virtual-tables-using-excel.md) ## Overview @@ -52,11 +53,6 @@ The underlying data source is key for allowing the provider to establish an auth When setting up the connection and connection reference for your data sources, specific information is needed. For example, the SQL Server connector needs server name, database name, the authentication method, username, password, and (optionally) gateway connection details. Each external data source needs a connection reference defined to create the virtual table. When using the Power Apps (make.powerapps.com) experience, the connection reference can be generated automatically for you unless you wish to provide custom naming. -> [!NOTE] -> -> - When you use the Excel virtual connector provider, an **Entity Catalog** table is generated by the system which provides a list of all the available tables using the table definitions (metadata) from the external data source. The entity catalog doesn't persist any information and always represents the external data source's current state. You can select tables from the entity catalog to create virtual tables. If you're working with multiple external data sources, an entity catalog is generated for each external source. -> - Currently, you must create your own connection reference when you use the Excel virtual connector provider. More information: [Create the virtual table for Microsoft Excel](#create-the-virtual-table-for-microsoft-excel) - The connector permissions enforce the ability for organizational users to access and operate on the virtual table. The connection can be shared with one user or can be shared with the entire organization. This allows users to access and operate virtual tables using a shared connection. By using security roles, virtual table access can be restricted to a specific set of users within your organization. You can even specify which roles have create, read, update, or delete privileges in this way. Application lifecycle management (ALM) is supported for virtual tables created using the virtual connector provider. You can even create the virtual tables from directly within a solution when using Power Apps (make.powerapps.com). Virtual tables should be part of a managed solution along with the connection reference to distribute the solution. The solution can have other components, such as a model-driven app that uses virtual tables. @@ -142,6 +138,8 @@ Watch a short video showing how to create a virtual table with the virtual conne - Choose a Microsoft Fabric Lakehouse from the drop-down list. All lakehouses and data warehouses within the workspace selected previously are available to choose. - Follow the instructions on your screen. More information: [Build apps and automations drive action with insights from Microsoft Fabric (preview)](azure-synapse-link-build-apps-with-fabric.md) +More information: [Build apps and automations drive action with insights from Microsoft Fabric](azure-synapse-link-build-apps-with-fabric.md) + # [Salesforce (preview)](#tab/salesforce) [!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] @@ -303,148 +301,6 @@ To learn more about supported actions and limitations with each connector, go to - [Connector reference for the Snowflake connector](/connectors/snowflakev2/) - [Connection reference for PostgreSQL connector](/connectors/postgresql/) -## Create the virtual table for Microsoft Excel - -1. Download and install the virtual connector. Go to [the Microsoft commercial marketplace](https://appsource.microsoft.com/) and search for `Virtual Connector` or select the link to download the provider: [Virtual connectors in Dataverse](https://appsource.microsoft.com/product/dynamics-365/mscrm.connector_provider?tab=Overview) - - :::image type="content" source="media/ve-virtual-connectors-provider.png" alt-text="Virtual connectors in Dataverse"::: - -1. Select **Get it now**. In the sign-in dialog, enter work or school account email. If you agree to the terms and conditions, select **Continue**. The Power Platform admin center opens automatically. - -1. Select the environment where you want to install the solution. If you agree to the terms and conditions, select **Install**. Once the installation is complete, you see the **Virtual connectors in Dataverse** app installed under **Environments -> [your environment name] -> Dynamics 365 apps**. - - :::image type="content" source="media/ve-select-the-environment.png" alt-text="Select environment to install connector"::: - -1. You should also see the **Virtual Connector Provider** solution and other solutions enabled in the Power Platform environment. - - :::image type="content" source="media/ve-select-virtual-connectors-solution.png" alt-text="Virtual connector provider solution"::: - -### Create the connection for the Excel virtual connector provider - -Watch a short video showing how to create a virtual table with the Excel virtual connector provider. - -> [!VIDEO https://learn-video.azurefd.net/vod/player?id=d418205f-afcd-4a54-903d-9ac975868f5c] - -1. Go to Power Apps (make.powerapps.com), and select the environment in which you would like to set up the virtual table. -1. In the left navigation pane, select **Connections**, and then select **New connection**. [!INCLUDE [left-navigation-pane](../../includes/left-navigation-pane.md)] -1. Select the **Microsoft Excel Online (Business) Virtual Connector** from the list of connections. -1. You're asked to provide additional details to connect to the data source. -1. Select **Create**, your current signed-in credentials will be used. - :::image type="content" source="media/ve-excel-connection.png" alt-text="Connect to Excel"::: - -### Create the connection reference - -1. Go to **Solutions**. -1. Select the **Default Solution** or any other existing solution you have in your environment to create the virtual table. -1. Select **New** and then select **Connection Reference.** -1. Enter **Display name**, select the connection you created for the **Connectors** option and then select the data connection that you've created. - - :::image type="content" source="media/ve-new-connection-reference.png" alt-text="New connection reference"::: - -### Create the data source - -Now create the virtual table data source in Dataverse. - -1. Select the **Gear icon -> Advanced Settings**. - - :::image type="content" source="media/ve-power-apps-advanced-settings.png" alt-text="Advanced Settings command"::: - -1. In the top navigation bar, select **Settings** and then **Administration**. - - :::image type="content" source="media/ve-advanced-settings-system-administration.png" alt-text="Navigate to system administration"::: - -1. Select **Virtual Entity Data Sources**. - - :::image type="content" source="media/ve-virtual-entity-data-sources-settings.png" alt-text="Virtual entity data sources settings"::: - -1. Select **New**. In the pop-up dialog, select the **Virtual Connector Data Provider**. - - :::image type="content" source="media/ve-create-new-data-source.png" alt-text="New Data source"::: - - :::image type="content" source="media/ve-select-data-provider.png" alt-text="Select Virtual Connector Data Provider"::: - -1. Name your **Data Source** and select the **Connection Reference** you created in the drop-down list. - - :::image type="content" source="media/ve-name-data-source.png" alt-text="Name data source and select connection reference"::: - - Add your Dataset Value -1. Paste in the file name including extension into the Dataset Value. Remember the file must be in the OneDrive that was used for the Connection setup. (for example: SampleData.xlsx) - - -1. Select **Save**. - -### Entity catalog - -With the connection reference and the virtual table data source setup, an **Entity Catalog** is automatically generated. The **Entity Catalog** is specific to the data source and will list all the tables that are in the respective data source. - -:::image type="content" source="media/ve-entity-catalog.png" alt-text="Entity Catalog"::: - -> [!NOTE] -> - The creation of the entity catalog is an asynchronous process. Depending on your environment, this might take a few minutes. -> - The tables displayed in the entity catalog aren't virtual tables in themselves. You need to select from this list of tables representing the external data to create virtual table in Dataverse. - -> [!TIP] -> - If the entity catalog creation takes a long time, you can check the job completion status by navigating to **Settings -> System Jobs** view. - -#### View the entity catalog - -- Select **Data** > **Tables**, and then select the entity catalog that was created. -- Select **Advanced Find** and use the **Look for:** column. The catalog includes a prefix **Entity Catalog for** followed by the connection reference (example: Entity Catalog for Adventure Works). Find the entity catalog for your respective data connection and select **Results** to display all the external data source tables. - - :::image type="content" source="media/ve-advance-find-table-catalog.png" alt-text="Advanced find table catalog"::: - - >[!Note] - > Bulk creation of virtual tables is not supported currently. Even though the entity catalog allows you to select multiple tables, you will have to select one table at a time to create virtual tables. - -1. To create a virtual table, a model driven app must be built for the entity catalog. Select the entity catalog table. - -1. Select **Create an app** in the top navigation. - - :::image type="content" source="media/entity-catalog-table-selected-table-view.jpg" alt-text="Entity catalog with a table selected, table view"::: - -1. Name the app, and then select **Create**. - - :::image type="content" source="media/Create-an-app-screen.jpg" alt-text="Create a Model Driven app screen"::: - - The app is automatically generated using the entity catalog table. - -1. Once the app is completed, you can select **Publish** to complete the app and use it later, or you can select **Play** to create your virtual table now without publishing the app. - - :::image type="content" source="media/completed-model-driven-app.jpg" alt-text="Completed model driven app"::: - - All tables from your Excel file will be provided in the app view. - -1. Select the data set you wish to use from the entity catalog, and then select **Edit** in the navigation bar. - - :::image type="content" source="media/model-driven-app-entity-catalog-view.jpg" alt-text="Model Driven app Entity Catalog view with a data set selected"::: - - Wait for the form to fully load before editing. When loaded the form appears like this: - - :::image type="content" source="media/edit-form-for-entity-catalog-model-driven-app.jpg" alt-text="Entity Catalog edit form all fields blank"::: - -1. In the provided form set the **Create** or **Refresh Entity** column to Yes. - -1. Select the **Primary Key** and **Primary Field** of the virtual entity by using the dropdown lists to find the columns you want to use. - - :::image type="content" source="media/edit-form-entity-catalog-fields-completed.jpg" alt-text="Entity Catalog edit form all fields completed"::: - -1. Save the record to create the virtual table. - - > [!Note] - > After the save completes, the form will "reset" with all fields shown as blank, this is normal. - -1. Return to the Power Apps home page and select **Data**. Your virtual table is now created with a "Custom Entity" prefix. It might take a few moments for the creation to complete. - - :::image type="content" source="media/maker-table-view-virtual-table.png" alt-text="Maker portal with virtual table selected"::: - -> [!IMPORTANT] -> -> - The provider automatically maps the primary key associated with the external data source when creating the virtual table. All CRUD operations can be performed on the generated virtual table. -> - All columns in the external data are automatically mapped to Dataverse types that are supported by the connector. You can review the virtual table details and make changes by navigating to **Settings -> Customization – Entities** view. -> - Virtual tables require there to be at least one string field to use as the **Primary Name** column. - -Once you've created a virtual table, you can work with it much the same way as any other table. You can start defining the relationships with other tables, in the environment and use them in your Power Apps and Power Automate flows. - ### See also [Setting up a virtual table relationship](setup-virtual-table-relationships.md) diff --git a/powerapps-docs/maker/data-platform/create-virtual-tables-using-excel.md b/powerapps-docs/maker/data-platform/create-virtual-tables-using-excel.md new file mode 100644 index 0000000000..e04c29fa7d --- /dev/null +++ b/powerapps-docs/maker/data-platform/create-virtual-tables-using-excel.md @@ -0,0 +1,174 @@ +--- +title: "Create a virtual table using Excel in Microsoft Dataverse" +description: "Learn how to create virtual tables using Excel in Microsoft Dataverse." +ms.date: 06/09/2025 +ms.reviewer: matp +ms.topic: how-to +author: mkannapiran +ms.author: kamanick +ms.subservice: dataverse-maker +search.audienceType: + - maker +--- +# Create a virtual table using Excel in Microsoft Dataverse + +Create a virtual table to integrate data from an Excel file located in OneDrive to use as an external data source that seamlessly represents that data as tables in Microsoft Dataverse. Virtual tables allow you to view, create, and edit external data without replicating that data in Dataverse. + +## Prerequisites + +- A Microsoft Dataverse license through Power Apps or Microsoft Dynamics 365. Microsoft 365 or Teams licenses can't be used to create virtual tables. +- The Excel file you use as the data source must be stored in OneDrive. +- The Excel file must contain data formatted as a table. +- The Excel file must contain a GUID column. More information: [Create the connection for the Excel virtual connector provider](#create-the-connection-for-the-excel-virtual-connector-provider) + +## Download and install the virtual connector provider for Excel + +1. Download and install the virtual connector. Go to [the Microsoft commercial marketplace](https://appsource.microsoft.com/) and search for `Virtual Connector` or select the link to download the provider: [Virtual connectors in Dataverse](https://appsource.microsoft.com/product/dynamics-365/mscrm.connector_provider?tab=Overview) + + :::image type="content" source="media/ve-virtual-connectors-provider.png" alt-text="Virtual connectors in Dataverse"::: + +1. Select **Get it now**. In the sign-in dialog, enter work or school account email. If you agree to the terms and conditions, select **Continue**. The Power Platform admin center opens automatically. + +1. Select the environment where you want to install the solution. If you agree to the terms and conditions, select **Install**. Once the installation is complete, you see the **Virtual connectors in Dataverse** app installed under **Environments -> [your environment name] -> Dynamics 365 apps**. + + :::image type="content" source="media/ve-select-the-environment.png" alt-text="Select environment to install connector"::: + +1. You should also see the **Virtual Connector Provider** solution and other solutions enabled in the Power Platform environment. + + :::image type="content" source="media/ve-select-virtual-connectors-solution.png" alt-text="Virtual connector provider solution"::: + +## Create the connection for the Excel virtual connector provider + +Watch a short video showing how to create a virtual table with the Excel virtual connector provider. + +> [!VIDEO https://learn-video.azurefd.net/vod/player?id=d418205f-afcd-4a54-903d-9ac975868f5c] + +1. Go to Power Apps (make.powerapps.com), and select the environment in which you would like to set up the virtual table. +1. In the left navigation pane, select **Connections**, and then select **New connection**. [!INCLUDE [left-navigation-pane](../../includes/left-navigation-pane.md)] +1. Select the **Microsoft Excel Online (Business) Virtual Connector** from the list of connections. +1. You're asked to provide additional details to connect to the data source. +1. Select **Create**, your current signed-in credentials will be used. + :::image type="content" source="media/ve-excel-connection.png" alt-text="Connect to Excel"::: + +## Create the connection reference + +You must create your own connection reference when you use the Excel virtual connector provider. + +1. Go to **Solutions**. +1. Select the **Default Solution** or any other existing solution you have in your environment to create the virtual table. +1. Select **New** and then select **Connection Reference.** +1. Enter **Display name**, select the connection you created for the **Connectors** option and then select the data connection that you've created. + + :::image type="content" source="media/ve-new-connection-reference.png" alt-text="New connection reference"::: + +## Create the data source + +Now create the virtual table data source in Dataverse. + +> [!NOTE] +> +> - When you use the Excel virtual connector provider, an **Entity Catalog** table is generated by the system which provides a list of all the available tables using the table definitions (metadata) from the external data source. The entity catalog doesn't persist any information and always represents the external data source's current state. You can select tables from the entity catalog to create virtual tables. If you're working with multiple external data sources, an entity catalog is generated for each external source. More information: [Entity catalog](#entity-catalog) + +1. Select the **Gear icon -> Advanced Settings**. + + :::image type="content" source="media/ve-power-apps-advanced-settings.png" alt-text="Advanced Settings command"::: + +1. In the top navigation bar, select **Settings** and then **Administration**. + + :::image type="content" source="media/ve-advanced-settings-system-administration.png" alt-text="Navigate to system administration"::: + +1. Select **Virtual Entity Data Sources**. + + :::image type="content" source="media/ve-virtual-entity-data-sources-settings.png" alt-text="Virtual entity data sources settings"::: + +1. Select **New**. In the pop-up dialog, select the **Virtual Connector Data Provider**. + + :::image type="content" source="media/ve-create-new-data-source.png" alt-text="New Data source"::: + + :::image type="content" source="media/ve-select-data-provider.png" alt-text="Select Virtual Connector Data Provider"::: + +1. Name your **Data Source** and select the **Connection Reference** you created in the drop-down list. + + :::image type="content" source="media/ve-name-data-source.png" alt-text="Name data source and select connection reference"::: + + Add your Dataset Value +1. Paste in the file name including extension into the Dataset Value. Remember the file must be in the OneDrive that was used for the Connection setup. (for example: SampleData.xlsx) + +1. Select **Save**. + +## Entity catalog + +With the connection reference and the virtual table data source setup, an **Entity Catalog** is automatically generated. The **Entity Catalog** is specific to the data source and will list all the tables that are in the respective data source. + +:::image type="content" source="media/ve-entity-catalog.png" alt-text="Entity Catalog"::: + +> [!NOTE] +> +> - The creation of the entity catalog is an asynchronous process. Depending on your environment, this might take a few minutes. +> - The tables displayed in the entity catalog aren't virtual tables in themselves. You need to select from this list of tables representing the external data to create virtual table in Dataverse. + +> [!TIP] +> If the entity catalog creation takes a long time, you can check the job completion status by navigating to **Settings -> System Jobs** view. + +### View the entity catalog + +- Select **Data** > **Tables**, and then select the entity catalog that was created. +- Select **Advanced Find** and use the **Look for:** column. The catalog includes a prefix **Entity Catalog for** followed by the connection reference (example: Entity Catalog for Adventure Works). Find the entity catalog for your respective data connection and select **Results** to display all the external data source tables. + + :::image type="content" source="media/ve-advance-find-table-catalog.png" alt-text="Advanced find table catalog"::: + + >[!Note] + > Bulk creation of virtual tables is not supported currently. Even though the entity catalog allows you to select multiple tables, you will have to select one table at a time to create virtual tables. + +1. To create a virtual table, a model driven app must be built for the entity catalog. Select the entity catalog table. + +1. Select **Create an app** in the top navigation. + + :::image type="content" source="media/entity-catalog-table-selected-table-view.jpg" alt-text="Entity catalog with a table selected, table view"::: + +1. Name the app, and then select **Create**. + + :::image type="content" source="media/Create-an-app-screen.jpg" alt-text="Create a Model Driven app screen"::: + + The app is automatically generated using the entity catalog table. + +1. Once the app is completed, you can select **Publish** to complete the app and use it later, or you can select **Play** to create your virtual table now without publishing the app. + + :::image type="content" source="media/completed-model-driven-app.jpg" alt-text="Completed model driven app"::: + + All tables from your Excel file will be provided in the app view. + +1. Select the data set you wish to use from the entity catalog, and then select **Edit** in the navigation bar. + + :::image type="content" source="media/model-driven-app-entity-catalog-view.jpg" alt-text="Model Driven app Entity Catalog view with a data set selected"::: + + Wait for the form to fully load before editing. When loaded the form appears like this: + + :::image type="content" source="media/edit-form-for-entity-catalog-model-driven-app.jpg" alt-text="Entity Catalog edit form all fields blank"::: + +1. In the provided form set the **Create** or **Refresh Entity** column to Yes. + +1. Select the **Primary Key** and **Primary Field** of the virtual entity by using the dropdown lists to find the columns you want to use. + + :::image type="content" source="media/edit-form-entity-catalog-fields-completed.jpg" alt-text="Entity Catalog edit form all fields completed"::: + +1. Save the record to create the virtual table. + + > [!NOTE] + > After the save completes, the form will "reset" with all fields shown as blank, this is normal. + +1. Return to the Power Apps home page and select **Data**. Your virtual table is now created with a "Custom Entity" prefix. It might take a few moments for the creation to complete. + + :::image type="content" source="media/maker-table-view-virtual-table.png" alt-text="Maker portal with virtual table selected"::: + +> [!IMPORTANT] +> +> - The provider automatically maps the primary key associated with the external data source when creating the virtual table. All CRUD operations can be performed on the generated virtual table. +> - All columns in the external data are automatically mapped to Dataverse types that are supported by the connector. You can review the virtual table details and make changes by navigating to **Settings -> Customization – Entities** view. +> - Virtual tables require there to be at least one string field to use as the **Primary Name** column. + +Once you've created a virtual table, you can work with it much the same way as any other table. You can start defining the relationships with other tables, in the environment and use them in your Power Apps and Power Automate flows. + +## Related articles + +[Create virtual tables using the virtual connector provider](create-virtual-tables-using-connectors.md) \ No newline at end of file diff --git a/powerapps-docs/maker/data-platform/custom-picklists.md b/powerapps-docs/maker/data-platform/custom-picklists.md index 759103e836..51381f3f75 100644 --- a/powerapps-docs/maker/data-platform/custom-picklists.md +++ b/powerapps-docs/maker/data-platform/custom-picklists.md @@ -1,10 +1,10 @@ --- -title: Create a choice| Microsoft Docs -description: Step-by-step instructions for how to create a choice. +title: Create a choice column +description: Step-by-step instructions for how to create a choice in Power Apps. author: lancedMicrosoft ms.component: cds ms.topic: how-to -ms.date: 03/21/2018 +ms.date: 06/02/2025 ms.subservice: dataverse-maker ms.author: lanced search.audienceType: @@ -12,7 +12,7 @@ search.audienceType: --- # Create a choice -Choice columns allow you to include dropdown lists of fixed values to a user within your app to ensure data consistency. Choice columns, were formerly referred to as option sets and are sometimes called picklists. Similar to tables, there are both standard choices or makers have the ability to create custom choice columns to use in apps. +Choice columns allow you to include dropdown lists of fixed values to a user within your app to ensure data consistency. Choice columns were formerly referred to as option sets and are sometimes called picklists. Similar to tables, there are both standard choices or makers have the ability to create custom choice columns to use in apps. Choices can be created while working from a solution in powerapps.com or on a table form in the form designer. @@ -24,37 +24,43 @@ Choices are either global or local. You can define a choice to use a set of opti ## Create a global choice within a solution -1. Sign into [powerapps.com](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc), select **Solutions**, and then open the solution you want. [!INCLUDE [left-navigation-pane](../../includes/left-navigation-pane.md)] +1. Sign into [powerapps.com](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc) select **Solutions**, and then open the solution you want. [!INCLUDE [left-navigation-pane](../../includes/left-navigation-pane.md)] 1. On the command bar, select **New** > **Choice**. 1. Enter the following properties: - - **Display name**. Enter the **Display name** for your column. The **Display name** is used when presenting this column to your users. - - **Description**. Enter an optional description of the choice column. + - **Display name**. Enter the **Display name** for your column. The **Display name** is used when presenting this column to your users. - In the **Label** field, enter the label you want displayed for the choice option. - The **Value** number represents a unique value for the option and isn't displayed in the choice column in an app. Notice there's a number generated for each **Value** automatically. We recommend that you not change this. Having a unique **Value** helps ensure that the value will be different from other option values that might be defined in other solutions and imported into your environment. - Select the color picker to the left of the **Label** if you want a color to appear for the option in model-driven app charts. - + - **Additional properties**. + - **Description**. Add a description for the option. + - **External value**. This value is used for virtual tables to map a value in an external data source with this option. + - **Hidden**. Hide the option from the choice column at runtime in apps. For more information about the limitations of this property, go to [Choice hidden property limitations](#choice-hidden-property-limitations). + > [!CAUTION] + > The Hidden property should never be used as a secure way to prevent users from viewing or editing column values. These properties only apply to app components such as model-driven app forms and views but don't have an effect on a user's data privileges. When a column is hidden, users can still access column data in other ways, such as by making Web API calls. To secure columns, use [column-level security to control access](/power-platform/admin/field-level-security). 1. Select **New choice** to create another option for the choice. 1. Repeat the previous step to until you have the options you want for the choice. 1. Expand **Advanced options** to display additional properties: - **Name**. Unique name of the global choice including the solution publisher prefix. - - **External name**. This value is used for virtual entities to map a value in an external data source with this option. + - **External type name**. This value is used for virtual tables to map a value in an external data source with this choice. - **Description**. Enter an optional description for the choice column. 1. Select **Save**. -> [!NOTE] -> After you create a global choice column the options can be made available to local choice columns, which can then be used with forms and views. +> [!IMPORTANT] +> Global choices can't be directly added to an app. After you create a global choice column the options from the choice can be made available when you create a local choice column. Local choice columns are table specific and can then be used with forms and views in an app. + +## Create a local choice to use in forms and views -## Create a local choice within a solution +Create a local choice column for a table that can be used in forms and views within a solution. -1. Sign into [powerapps.com](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc), select **Solutions**, and then open the solution you want. [!INCLUDE [left-navigation-pane](../../includes/left-navigation-pane.md)] +1. Sign into [powerapps.com](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc) select **Solutions**, and then open the solution you want. [!INCLUDE [left-navigation-pane](../../includes/left-navigation-pane.md)] -1. Open the table where you want to create the choice, and then on the command bar, select **New** > **Choice**. +1. Open the table where you want to create the local choice, and then on the command bar, select **New** > **Choice**. 1. In the **New column** panel, enter properties for the choice column. ### Configure properties for a local choice -- **Display name**. Enter the **Display name** for your column. The **Display name** is used when presenting this column to your users. +- **Display name**. Enter the **Display name** for your column. The **Display name** is used when presenting this column to your users. - **Description**. Enter an optional description of the choice column. - **Data type**. Select **Choice** > **Choice**. Select **Choice** > **Yes/No** if you want a two option single select choice field. - **Behavior**. Select calculated to enable the column to be included in calculated columns to automate manual calculations. @@ -78,45 +84,18 @@ Choices are either global or local. You can define a choice to use a set of opti Select **Save**. +Now the local choice column appears in the form and view designers to add for the table. + ## Create and edit global choices using solution explorer For information about how to create and edit global choices using the classic solution explorer, go to [Create or edit a global option set (on-premises)](/dynamics365/customerengagement/on-premises/customize/create-edit-global-option-sets). - [!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/data-platform/data-platform-complex-entities.md b/powerapps-docs/maker/data-platform/data-platform-complex-entities.md index 532a8ca0ef..83df9bd0a6 100644 --- a/powerapps-docs/maker/data-platform/data-platform-complex-entities.md +++ b/powerapps-docs/maker/data-platform/data-platform-complex-entities.md @@ -4,7 +4,7 @@ description: A list of complex tables in Microsoft Dataverse that require a Powe author: mattp123 ms.component: cds -ms.topic: conceptual +ms.topic: article ms.date: 08/28/2020 ms.subservice: dataverse-maker ms.author: matp diff --git a/powerapps-docs/maker/data-platform/data-platform-copilot.md b/powerapps-docs/maker/data-platform/data-platform-copilot.md index 9f11d6a993..400be3ce9e 100644 --- a/powerapps-docs/maker/data-platform/data-platform-copilot.md +++ b/powerapps-docs/maker/data-platform/data-platform-copilot.md @@ -4,7 +4,8 @@ description: Find out how to get more precise and relevant answers from copilots author: mattp123 ms.topic: overview ms.collection: bap-ai-copilot -ms.date: 11/20/2024 +ms.date: 05/29/2025 +ms.update-cycle: 180-days ms.reviewer: matp ms.subservice: dataverse-maker ms.author: matp diff --git a/powerapps-docs/maker/data-platform/data-platform-entity-licenses.md b/powerapps-docs/maker/data-platform/data-platform-entity-licenses.md index bff9b8652b..367f1619d2 100644 --- a/powerapps-docs/maker/data-platform/data-platform-entity-licenses.md +++ b/powerapps-docs/maker/data-platform/data-platform-entity-licenses.md @@ -3,7 +3,7 @@ title: License requirements for tables| Microsoft Docs description: An explanation of license requirements for tables with complex business logic and restricted tables in Microsoft Dataverse. author: MicroSri -ms.topic: conceptual +ms.topic: article ms.date: 08/28/2020 ms.subservice: dataverse-maker ms.author: sriknair diff --git a/powerapps-docs/maker/data-platform/data-platform-import-export.md b/powerapps-docs/maker/data-platform/data-platform-import-export.md index 3f205c2ef6..5baec2a668 100644 --- a/powerapps-docs/maker/data-platform/data-platform-import-export.md +++ b/powerapps-docs/maker/data-platform/data-platform-import-export.md @@ -4,9 +4,11 @@ description: Bulk import and export data from Excel or CSV files into tables in author: sabinn-msft ms.topic: how-to ms.component: cds -ms.date: 08/06/2024 +ms.date: 06/17/2025 ms.subservice: dataverse-maker ms.author: sabinn +ms.reviewer: matp +contributor: dingbx search.audienceType: - maker --- @@ -51,6 +53,39 @@ Copy data from your Excel or CSV file into the template that you created in the :::image type="content" source="media/data-platform-import-export/import-mapping-successful.png" alt-text="Import mapping successful"::: After the import finishes successfully, you'll see the total number of inserts and updates. +#### New import from Excel (preview) + +[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] + +The new import experience lets users import data directly from an Excel file into existing Dataverse tables using a unified UI. This experience improves upon the original import method by offering: + +- **Assisted mapping**: Uses vector-based search to provide more contextually relevant column mapping suggestions. +- **Sheet selection**: Users can choose which sheet to import from within a multi-sheet Excel file. +- **Notifications**: Real-time feedback on import status, including success, in-progress, and error states. +- **Error logs**: Downloadable logs to help users self-diagnose and resolve issues. +- **Performance improvements**: Asynchronous ingestion offers better reliability and speed for large files. + +[!INCLUDE [preview-note-pp.md](../../../shared/preview-includes/preview-note-pp.md)] + +##### Prerequisites + +To use the feature a Power Platform admin must enable the **"Import Excel to existing table with assisted mapping"** environment setting in the Power Platform admin center. Select the environment, and then select **Settings** > **Product** > **Features** and enable the **"Import Excel to existing table with assisted mapping"** setting. + +##### Import from Excel (preview) steps + +1. Go to the table you want to import data to, and then on the command bar select **Import** > **Import from Excel (Preview)**. +1. Upload your Excel file and select the sheet to import. + :::image type="content" source="./media/data-platform-import-export/import-v2-select-sheet.png" alt-text="Select the Excel sheet to import."::: +1. Map columns. A primary key is required if you want to update existing records in the table. If no primary key is selected ("None" option), then all records from the Excel sheet or CSV file are added as new records. + :::image type="content" source="./media/data-platform-import-export/import-v2-mapping.png" alt-text="Map source columns to target attributes."::: +1. Review the summary and select **Import**. + +Monitor the import status from notifications: + +- In progress: Ongoing import activity with the message **Your data is importing** displayed. +- Success: Data was processed or indexed with the message **Upload completed** displayed. +- Error: **Upload completed with some errors** displayed that includes a link to download logs for troubleshooting. + ### Option 2: Import by bringing your own source file If you're an advanced user and know the required columns for a given table for Dataverse tables, define your own Excel or CSV source file. Follow the steps in [Import the file](#import-the-file). @@ -107,8 +142,7 @@ Export data from a single table in a comma-separated value (CSV) format. 1. After the export finishes successfully, select **Download exported data** to download the CSV file to the download folder specified in your web browser. - > [!div class="mx-imgBorder"] - > ![Sample export that shows successful export with link downloadable file.](./media/data-platform-import-export/export-success.png) + :::image type="content" source="media/data-platform-import-export/export-success.png" alt-text="Sample export that shows successful export with a link to the downloadable file."::: > [!NOTE] > Exports have a 12 minute time limit. If the volume of data exported exceeds 12 minutes the export will fail. If this occurs, export data in smaller segments. diff --git a/powerapps-docs/maker/data-platform/data-platform-intro.md b/powerapps-docs/maker/data-platform/data-platform-intro.md index 4bb85ca814..3f52390c89 100644 --- a/powerapps-docs/maker/data-platform/data-platform-intro.md +++ b/powerapps-docs/maker/data-platform/data-platform-intro.md @@ -4,7 +4,7 @@ description: Introduction to Microsoft Dataverse, tables, server-side logic, sec author: mattp123 ms.topic: overview ms.collection: get-started -ms.date: 06/13/2024 +ms.date: 05/29/2025 ms.reviewer: matp ms.subservice: dataverse-maker ms.author: matp @@ -73,6 +73,7 @@ Building an app typically involves data from more than one source. Although this For more information about integrating data into the Dataverse, go to [Add data to a table in Dataverse by using Power Query](/power-query/dataflows/add-data-power-query). ## Interacting with tables + When you develop an app, you can use standard tables, custom tables, or both. Dataverse provides standard tables by default. These are designed, in accordance with best practices, to capture the most common concepts and scenarios within an organization. For a full list of tables, see the [entity reference](../../developer/data-platform/reference/about-entity-reference.md). @@ -95,9 +96,11 @@ Tables within Dataverse can take advantage of rich server-side logic and validat Dataverse has a rich security model to protect the data integrity and privacy of users while promoting efficient data access and collaboration. You can combine business units, role-based security, row-based security, and column-based security to define the overall access to information that users have in a Power Platform environment. More information: [Security in Dataverse](/power-platform/admin/wp-security) in the Power Platform admin guide ## Developer capabilities + In addition to the features available through the [Power Apps](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc) portal, Dataverse includes features for developers to programmatically access metadata and data to create tables and business logic, in addition to interacting with data. More information: [Dataverse Developer Overview](../../developer/data-platform/overview.md) ## Next steps + To get started using Dataverse: - [Create a canvas app using a Dataverse database](../canvas-apps/data-platform-create-app-scratch.md). - [Create a custom table](create-custom-entity.md) and then [create a canvas app that uses the table](../canvas-apps/data-platform-create-app.md). @@ -105,6 +108,7 @@ To get started using Dataverse: - [Use Power Query](/power-query/dataflows/add-data-power-query) to connect to an online or on-premises data source and import the data directly into Dataverse. ### See also + [Dataverse for Teams](/power-apps/teams/overview-data-platform) [!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/data-platform/data-platform-manage-fields.md b/powerapps-docs/maker/data-platform/data-platform-manage-fields.md index 390c8dd09a..d64bc4a509 100644 --- a/powerapps-docs/maker/data-platform/data-platform-manage-fields.md +++ b/powerapps-docs/maker/data-platform/data-platform-manage-fields.md @@ -75,7 +75,7 @@ For more details on the types of expressions supported and examples, see [Define 1. On [powerapps.com](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc), select **Tables** in the left navigation pane. [!INCLUDE [left-navigation-pane](../../includes/left-navigation-pane.md)] 1. Open a table. -1. In the list of columns for the table that you selected, selectp a column, and then follow one of these steps: +1. In the list of columns for the table that you selected, select a column, and then follow one of these steps: * Change one or more properties of the column. * Delete the column by clicking or tapping the ellipsis (...) near the right edge of the column, and then clicking or tapping **Delete**. diff --git a/powerapps-docs/maker/data-platform/data-platform-mcp-disable.md b/powerapps-docs/maker/data-platform/data-platform-mcp-disable.md new file mode 100644 index 0000000000..e905f75f2a --- /dev/null +++ b/powerapps-docs/maker/data-platform/data-platform-mcp-disable.md @@ -0,0 +1,45 @@ +--- +title: Disable the Dataverse model context protocol (MCP) server +description: Step-by-step instructions about how to disable a Microsoft Dataverse model context protocol server using advanced connector policies. +author: anibakore-msft +ms.component: cds +ms.topic: how-to +ms.date: 07/07/2025 +ms.subservice: dataverse-maker +ms.author: banirud +ms. reviewer: matp +search.audienceType: + - maker +--- +# Disable the Dataverse MCP server using advanced connector policies (preview) + +[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] + +Microsoft Dataverse model context protocol (MCP) is provided through the connector infrastructure. While the Dataverse connector itself is a non-blockable connector—meaning you can't disable it using traditional data loss prevention (DLP) settings within the Power Platform admin center—you can selectively disable a Dataverse MCP server by setting advanced connector policies. + +[!INCLUDE [preview-note-pp.md](../../../shared/preview-includes/preview-note-pp.md)] + +## Prerequisites + +- A Power Platform with Dataverse environment setup with MCP via connector as described in [Connect to Dataverse with model context protocol (preview)](data-platform-mcp.md). +- Power Platform administrator role in order to manage environment group and connector policies. +- The steps described in this article require that the environment be a Managed Environment. + +## Disable the Dataverse MCP server for an environment + +1. Go to the [Power Platform admin center](https://admin.powerplatform.microsoft.com/), select **Manage**, and then select **Environment groups**. +1. Select **New group** to create a new environment group or select an existing group where you want to turn off the Dataverse MCP server. +1. Open the environment group, and then on the **Rules** tab select **Advanced connector policies (preview)**. +1. Select the **Microsoft Dataverse** connector, and then select **Edit actions**. + :::image type="content" source="media/data-platform-mcp/data-platform-connector.png" alt-text="Screenshot showing where to select the Microsoft Dataverse connector and then select Edit actions" lightbox="media/data-platform-mcp/data-platform-connector.png"::: +1. Locate the action named **Dataverse MCP Server**, and turn **Off** this action as needed for your environment group. + :::image type="content" source="media/data-platform-mcp/dataverse-mcp-server-action.png" alt-text="Screenshot of the Dataverse MCP server action" lightbox="media/data-platform-mcp/dataverse-mcp-server-action.png"::: +1. Select **Save** and then select **Publish rules** to the enable the rule. + +## Related articles + +[Advanced connector policies (preview) - Power Platform](/power-platform/admin/advanced-connector-policies?tabs=new) + +[Connect to Dataverse with model context protocol (preview)](data-platform-mcp.md) + +[Connect to Dataverse with model context protocol FAQ (preview)](data-platform-mcp-faq.md) diff --git a/powerapps-docs/maker/data-platform/data-platform-mcp-faq.md b/powerapps-docs/maker/data-platform/data-platform-mcp-faq.md new file mode 100644 index 0000000000..fd9d8162a9 --- /dev/null +++ b/powerapps-docs/maker/data-platform/data-platform-mcp-faq.md @@ -0,0 +1,56 @@ +--- +title: Connect to Dataverse with model context protocol FAQ +description: Frequently asked questions about using Microsoft Dataverse with a model context protocol server. +author: sabinn-msft +ms.component: cds +ms.topic: how-to +ms.date: 05/20/2025 +ms.subservice: dataverse-maker +ms.author: sabinn +ms. reviewer: matp +search.audienceType: + - maker +--- +# Connect to Dataverse with model context protocol FAQ (preview) + +[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] + +This article provides answers to frequently asked questions about using Microsoft Dataverse with a model context protocol (MCP) server. + +> [!IMPORTANT] +> +> - This is a preview feature. +> - [!INCLUDE [cc-preview-features-definition](../../includes/cc-preview-features-definition.md)] + +## Claude doesn't show Dataverse MCP server at all. What should I do? + +Check the claude_desktop_config.json file and verify that the values are correct for your Dataverse environment. Make sure there are no extra spaces or characters in the GUID. Use a JSON editor that validates JSON format to ensure syntax correctness. + +## Why do you make a distinction between exit and close Claude desktop? + +Because **Exit** and **Close** have different effects. Exit really removes the Claude desktop app from memory and when you start it again, it’s a fresh start. Close just closes the experience but the app is still running. + +## I don’t see any authentication experience to reauthorization + +Exit Claude desktop and reopen it. Make sure you don’t have any connectivity problems. If the problem persists, check if there are any files in `C:\Users\\AppData\Local\Microsoft.PowerPlatform.Dataverse.MCP\authCache`. If so, delete all, exit Claude desktop, and then reopen Claude desktop. + +## I want to sign in with a different account but I don’t get prompted anymore + +Exit Claude desktop. Delete the folder `C:\Users\\AppData\Local\Microsoft.PowerPlatform.Dataverse.MCP\authCache`, then Reopen Claude desktop. You're prompted again for authentication. + +## I can’t authenticate. What is the problem? + +Verify that the GUID for the tenant and URL for the connection are indeed from environment you’ve set up. Go to https://make.powerapps.com and select the environment you’ve set up and verify that the tenant ID value matches the one in your Claude config file for Dataverse MCP server. + +Go to https://make.powerautomate.com and ensure you're in the right environment. Go to your connection and ensure that the URL for your connection matches the URL in the Claude config file for Dataverse MCP server. + +## I want to review MCP logs to observe what's happening. Where do I find them? + +Open the Claude desktop logs at the following locations: + +- Claude basic logs: `C:\Users\\AppData\Roaming\Claude\logs` +- Claude verbose logs: `C:\Users\\AppData\Local\Microsoft.PowerPlatform.Dataverse.MCP\logs` + +## When using Claude why do I experience out of token or that the conversation is too long and recommends to start a new conversation message? + +This is a limitation with the Claude free plan. Consider upgrading to a Claude paid plan. More information: [Claude pricing](https://www.anthropic.com/pricing) diff --git a/powerapps-docs/maker/data-platform/data-platform-mcp.md b/powerapps-docs/maker/data-platform/data-platform-mcp.md new file mode 100644 index 0000000000..e5fb5071d2 --- /dev/null +++ b/powerapps-docs/maker/data-platform/data-platform-mcp.md @@ -0,0 +1,244 @@ +--- +title: Connect to Dataverse with model context protocol (MCP) +description: Step-by-step instructions for setup, connect, and use Microsoft Dataverse with a model context protocol server. +author: sabinn-msft +ms.component: cds +ms.topic: how-to +ms.date: 07/14/2025 +ms.subservice: dataverse-maker +ms.author: sabinn +ms. reviewer: matp +contributors: MsSQLGirl +search.audienceType: + - maker +--- +# Connect to Dataverse with model context protocol (preview) + +[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] + +The Model Context Protocol (MCP) is an open protocol that enables seamless integration between LLM applications and external data sources and tools. Microsoft Dataverse can act as an MCP server, providing intelligent access to tables and records to various MCP clients like Copilot Studio agents, VS Code GitHub Copilot, Claude desktop, and many others. This integration standardizes and streamlines the interaction between AI models and Dataverse data, making it more efficient and effective for developers to apply Dataverse's rich data capabilities within their AI-driven applications. + +Once connected to the Dataverse MCP Server, you can choose from various tools in the Power Platform environment. These tools are: list tables, describe table, read data, create record, update record, list prompts, execute prompt, list knowledge sources, and retrieve knowledge. + +A Power Platform environment with Dataverse can have one MCP server. + +This article explains how to set up and use the Dataverse MCP server with Microsoft Copilot Studio, Claude desktop, or Visual Studio Code (VS Code) GitHub Copilot as an MCP client. By following the steps in this article, you can interact with Dataverse, asking natural language questions like "show me my contacts" and receive answers based on stored data. + +[!INCLUDE [preview-note-pp.md](../../../shared/preview-includes/preview-note-pp.md)] + +## Connect to Dataverse using an MCP server in Microsoft Copilot Studio + +1. Go to [Power App](https://make.powerapps.com) and select your environment from the top right environment selector. +1. From the left navigation pane, select **Agents** > **Create new agent**. [!INCLUDE [left-navigation-pane](../../includes/left-navigation-pane.md)] +1. Select **Create**. +1. Scroll down to the **Tools** section and select **+ Add tool**. +1. Select **Model Context Protocol**, and then select **Dataverse MCP Server**. + 1. If there is no existing Dataverse connection, you're prompted to do so. +1. Select **Add to agent**. + +The individual tools available on this MCP server can be viewed and modified by selecting **...** > **Edit** next to the **Dataverse MCP Server** tool. + +You can now interact with the Dataverse MCP Server tool in the **Test your agent** chat pane. Try commands like "list tables in Dataverse," "describe table account," or "how many accounts do I have." +:::image type="content" source="media/copilot-studio-mcp.png" alt-text="Dataverse MCP in Copilot Studio" lightbox="media/copilot-studio-mcp.png"::: + +## Connect to Dataverse using an MCP Server with Claude or GitHub Copilot in VS Code + +### Prerequisites + +These are the prerequisites for using a Dataverse MCP Server with Claude or GitHub Copilot in VS Code: + +1. [Create a Dataverse connection for the MCP configuration](#create-a-dataverse-connection-for-the-mcp-configuration) +1. [Install the Dataverse MCP server local proxy](#install-the-dataverse-mcp-server-local-proxy) +1. [Get the tenant ID of your Dataverse environment](#get-the-tenant-id-of-your-dataverse-environment) + +Connecting to Dataverse with an MCP Server in Copilot Studio doesn't require any of these prerequisites. + +### Create a Dataverse connection for the MCP configuration + +1. Go to [Power Automate](https://make.powerautomate.com). If necessary, change to the correct environment by selecting it from the top right. +1. Select **Connections** on the left navigation pane, and then select **+ New connection** on the command bar. +1. Type *Dataverse* in the search box, and then select the green colored **Microsoft Dataverse** connector. + :::image type="content" source="media/power-automate-connector.png" alt-text="Dataverse connector"::: +1. Complete the instructions on your screen. +1. Note the user name in the connection **Name**, this should be the same name that you used to create the environment earlier. +1. Select the connection to open it and copy the entire URL from the browser and save it. You need this URL for Claude desktop and VS Code MCP configuration. + :::image type="content" source="media/copy-entire-browser-url.png" alt-text="Copy entire browser URL" lightbox="media/copy-entire-browser-url.png"::: + +### Install the Dataverse MCP server local proxy + +These steps install the Dataverse MCP server local proxy that is used by the MCP client, such as Claude desktop or VS Code GitHub Copilot. + +1. Install the .NET SDK 8.0 either from Downloads or with this PowerShell command. + + `winget install Microsoft.DotNet.SDK.8` + +1. In the Terminal window you opened earlier, run this command to install the Microsoft.PowerPlatform.Dataverse.MCP local proxy. + + `dotnet tool install --global --add-source https://api.nuget.org/v3/index.json Microsoft.PowerPlatform.Dataverse.MCP` + +### Get the tenant ID of your Dataverse environment + +When you configure the Dataverse MCP server for either Claude Desktop or VS Code GitHub, you need to provide the `TenantID` value. + +Here’s one of the ways to get tenant ID details: + +1. Go to https://make.powerapps.com. +1. Select **Settings** (gear icon) on the top right, and then select **Session details**. +1. Copy the value of the **Tenant ID** from the Power Apps session details. Make a note of this GUID because it's used in the configuration steps later. + +### Configure and use the Dataverse MCP server in Claude + +Claude AI is a large language model (LLM) and chatbot developed by Anthropic. It excels at natural language processing and is multimodal, meaning it can process text, audio, and visual inputs. Claude can answer questions, summarize documents, generate text, and even create diagrams, animations, and code. + +#### Download Claude desktop + +If you haven't already done so, download and install Claude desktop [Download - Claude](https://claude.ai/download). + +Once you have Claude desktop installed, you can find and launch Claude from your desktop. + +#### Configure Dataverse MCP server in Claude desktop + +1. Open Claude desktop and go to **File** > **Settings**. +1. If you haven't configured any MCP servers for Claude desktop previously, you observe a **Settings** dialog. Select **Edit Config**. +1. This takes you to the Claude desktop files. Open the **claude_desktop_config.json** file with your favorite JSON editor. +1. Replace <connection URL> and <Tenant Id> with your connection URL and tenant ID. More information: [Create a Dataverse connection for the MCP configuration](#create-a-dataverse-connection-for-the-mcp-configuration) and [Get the tenant ID of your Dataverse environment](#get-the-tenant-id-of-your-dataverse-environment) + + Use a <friendly name> for your Dataverse MCP server that you can easily remember, for example: *MyDataverseMCPServer*. + +```json +{ + "mcpServers": { + "": { + "command": "Microsoft.PowerPlatform.Dataverse.MCP", + "args": [ + "--ConnectionUrl", + "", + "--MCPServerName", + "DataverseMCPServer", + "--TenantId", + "", + "--EnableHttpLogging", + "true", + "--EnableMsalLogging", + "false", + "--Debug", + "false", + "--BackendProtocol", + "HTTP" + ] + } + } + } +``` + +5. Save this file and go back to Claude desktop. +6. To restart Claude desktop and ensure that the changes take effect, select **File** > **Exit**. +7. Open Claude desktop now that the Dataverse MCP server configuration is completed from the previous step. You need to use your credentials to sign in to your Dataverse environment. +8. Verify that you can view the Dataverse MCP server and the tools by selecting **Search and tools**. You should be able to observe your friendly name of Dataverse MCP Server, *MyDataverseMCPServer* for example. + + :::image type="content" source="media/claude-connected-data-platform.png" alt-text="Claude connected to Dataverse"::: +9. Selecting the MCP server (*MyDataverseMCPServer*) allows you to view the list of tools, supported by that MCP server. + +> [!TIP] +> You can enable and disable individual tools for each MCP server registered with Claude. This gives you control over what tools to use. + +#### Interact with Dataverse MCP server in Claude desktop + +If you have data in the Dataverse environment, you can start testing your setup by asking “list tables in Dataverse,” “describe table account,” or “how many accounts do I have,” and so on. More information: [Add and remove sample data](/power-apps/developer/data-platform/sample-data) + +> [!TIP] +> If you have other MCP servers registered with Claude, it’s best to add *in Dataverse* in your prompt to be specific about which MCP server you’d like to use. + +### Configure and use your MCP client with VS Code + +This section shows you how to configure your MCP server in two ways in VS Code GitHub Copilot: reusing Dataverse MCP server configuration that you have defined for Claude desktop or creating a new Dataverse MCP configuration for your VS Code GitHub Copilot. + +If you don’t have VS Code installed, [download Visual Studio Code - Mac, Linux, Windows](https://code.visualstudio.com/download). + +#### Reuse Claude Desktop configuration + +1. In VS Code, open the command palette using Ctrl+Shift+P or **View** > **Command Palette**. Type *MCP:* and a list of relevant MCP commands are displayed, such as MCP: List Servers and MCP: Add Servers. +1. If you have configured the Dataverse MCP server as described earlier in the [Claude desktop](#configure-and-use-the-dataverse-mcp-server-in-claude) step and your VS Code MCP setting is set as `"chat.mcp.discovery.enabled": true`, VS Code is able to discover it. For example, when you choose **MCP: List Servers**, the MCP server, such as **MyDataverseMCPServer Running**, is displayed. + :::image type="content" source="media/mcp-server-running.png" alt-text="MCP Dataverse server running"::: + + If the Dataverse MCP server isn't running, select the server and then select **Start Server**. Observe the server start in the **Output** window of VS Code. + +#### Configure the Dataverse MCP server in VS Code + +These instructions help you configure a Dataverse MCP server at the user setting level. + +1. In VS Code, go to **Manage** (gear on lower left) > **Settings** or CTRL+, and then type *MCP*. +1. **Mcp** is listed under the **User** tab. Select **Edit in settings.json**. + :::image type="content" source="media/mcp-edit-vsc.png" alt-text="Edit Mcp JSON in VS Code"::: +1. Add the Dataverse MCP configuration text inside the mcp "servers" setting following the curly brace. + :::image type="content" source="media/mcp-dataverse-json.png" alt-text="JSON snippet location for MCP Dataverse"::: + + ```json + "": { + "command": "Microsoft.PowerPlatform.Dataverse.MCP", + "args": [ + "--ConnectionUrl", + "", + "--MCPServerName", + "DataverseMCPServer", + "--TenantId", + "", + "--EnableHttpLogging", + "true", + "--EnableMsalLogging", + "false", + "--Debug", + "false", + "--BackendProtocol", + "HTTP" + ] + } + ``` + +1. Replace <connection URL> and <tenant ID> from the [prerequisite steps](#prerequisites). Use a <friendly name> for your Dataverse MCP server that you can easily remember, for example: `MyDataverseMCPServerForGitHubCopilot`. + +> [!NOTE] +> When the MCP server is configured correctly in settings.json, you notice a status like **Start**. This means that syntactically, it's correct and you can start the MCP server. In case it doesn’t show **Start**, you can go to **Command Palette** (Ctrl+Shift+P), type *MCP:* and then select **MCP: List Servers**. You should observe the friendly name that you have assigned for the Dataverse MCP server so you can start the MCP server. + +#### Interact with Dataverse MCP server in VS Code GitHub Copilot + +1. In VS Code, open GitHub Copilot in Agent mode. Use CTRL+ALT+I to launch GitHub Copilot chat in VS Code. +1. From this point on, you can interact with the MCP server via Agent mode of GitHub Copilot. For example, “list tables in Dataverse,” “describe table account,” or “how many accounts do I have,” and so on. + +> [!TIP] +> If you have other MCP servers registered with GitHub Copilot, there are a few ways to help MCP Client to choose the apporpriate MCP Server. Examples: +> * add "in Dataverse" to your prompt to be specific about which MCP server you’d like to use for your question, or +> * at the beginning of the session, you can say "Use `` for this session". + +For more resources about how to use GitHub Copilot in VS Code: + +- [GitHub Copilot in VS Code](https://code.visualstudio.com/docs/copilot/overview) +- [Get started with GitHub Copilot in VS Code](https://code.visualstudio.com/docs/copilot/getting-started) +- [Getting started with Copilot Chat in VS Code](https://code.visualstudio.com/docs/copilot/chat/getting-started-chat) + +To learn how to use Visual Studio Code and MCP Severs go to this document: [Use MCP servers in VS Code (Preview)](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) + +## List of tools available in Dataverse MCP server + +The following Dataverse MCP tools are available. Your prompt in the MCP client like Claude desktop and VS Code GitHub Copilot is automatically routed to one or more of these tools. So you can ask a question like "view Accounts data," which is likely be mapped to the `read_query` tool or `retrieve_knowledge`. + +| Tool | Description | +|------------------------|--------------------------------------------------------------------------------------------------------------------------| +| `create_record` | Insert a row into a table in Dataverse and returns the GUID of the created row. | +| `describe_table` | Get the table schema of the requested table in Dataverse. | +| `execute_prompt` | Execute a prompt from the list of available predefined prompts in the environment. | +| `list_knowledge_sources` | Returns a list of knowledge sources available in Dataverse. Knowledge sources created and used in Copilot Studio agents in the same environment are shown here. | +| `list_prompts` | List predefined prompts available in the environment. | +| `list_tables` | List tables that are available in the environment | +| `read_query` | Read data from tables in Dataverse. | +| `retrieve_knowledge` | Use a preconfigured knowledge source to answer questions. | +| `update_record` | Update a row in a Dataverse table. | + +## Related articles + +[Disable a Dataverse MCP server using advanced connector policies](data-platform-mcp-disable.md) + +Learn more about MCP: + +- [Introducing the Model Context Protocol](https://www.anthropic.com/news/model-context-protocol) +- [Anthropic and Introduction - Model Context Protocol](https://modelcontextprotocol.io/introduction) diff --git a/powerapps-docs/maker/data-platform/data-platform-restricted-entities.md b/powerapps-docs/maker/data-platform/data-platform-restricted-entities.md index 22bc9b9c15..b50047d63a 100644 --- a/powerapps-docs/maker/data-platform/data-platform-restricted-entities.md +++ b/powerapps-docs/maker/data-platform/data-platform-restricted-entities.md @@ -2,7 +2,7 @@ title: Restricted tables requiring Dynamics 365 licenses | Microsoft Docs description: A list of restricted tables in Microsoft Dataverse that require Dynamics 365 licenses. author: mattp123 -ms.topic: conceptual +ms.topic: article ms.date: 05/16/2022 ms.subservice: dataverse-maker ms.author: matp diff --git a/powerapps-docs/maker/data-platform/data-retention-faq.yml b/powerapps-docs/maker/data-platform/data-retention-faq.yml index abdd1fbcae..b0a096db5a 100644 --- a/powerapps-docs/maker/data-platform/data-retention-faq.yml +++ b/powerapps-docs/maker/data-platform/data-retention-faq.yml @@ -4,11 +4,12 @@ metadata: description: Get answers to frequently asked questions about long term retention with Dataverse. author: Mattp123 ms.search.keywords: - ms.date: 09/23/2024 + ms.date: 04/11/2025 ms.author: matp ms.reviewer: contributors: gned ms.topic: faq + ms.subservice: dataverse-maker title: Dataverse long term data retention FAQ summary: This article provides information on frequently asked questions about long term data retention with Microsoft Dataverse. sections: @@ -72,7 +73,7 @@ sections: - question: In which regions is Dataverse long term retention available? answer: | - The feature is currently available in all public cloud regions and GCC. GCC High and DOD aren't currently supported. + The feature is currently available in all public cloud regions. GCC, GCC High, and DOD aren't currently supported. - question: Can data be moved from Dataverse long term store to my own data lake? answer: | diff --git a/powerapps-docs/maker/data-platform/data-retention-manage.md b/powerapps-docs/maker/data-platform/data-retention-manage.md index 2e08c9faca..5015e8f58c 100644 --- a/powerapps-docs/maker/data-platform/data-retention-manage.md +++ b/powerapps-docs/maker/data-platform/data-retention-manage.md @@ -2,9 +2,10 @@ title: Manage data retention policies in Microsoft Dataverse description: This article explains how you can view and managed existing data retention policies in Microsoft Dataverse. author: pnghub -ms.author: gned +ms.author: matp ms.reviewer: matp ms.service: powerapps +ms.subservice: dataverse-maker ms.topic: how-to ms.date: 02/29/2024 ms.custom: template-how-to diff --git a/powerapps-docs/maker/data-platform/data-retention-overview.md b/powerapps-docs/maker/data-platform/data-retention-overview.md index a6df42cfaf..51d2dbe9fc 100644 --- a/powerapps-docs/maker/data-platform/data-retention-overview.md +++ b/powerapps-docs/maker/data-platform/data-retention-overview.md @@ -2,12 +2,13 @@ title: Dataverse long term data retention overview description: Overview of long term retention for data in Microsoft Dataverse ms.service: powerapps +ms.subservice: dataverse-maker author: pnghub -ms.author: gned +ms.author: matp ms.reviewer: matp contributors: neerajatmsft ms.topic: overview -ms.date: 10/22/2024 +ms.date: 07/16/2025 ms.custom: template-overview --- # Dataverse long term data retention overview @@ -81,7 +82,7 @@ With Dataverse long term retention, data is never moved out of Dataverse. The re - *Table*, such as **Case**1 or **Contact**. - *Table-Retained*, such as **Case-Retained** and **Contact-Retained**. - 1 The case table requires a Dynamics 365 app, such as Dynamics 365 Service. + 1 The case table requires a Dynamics 365 app, such as Dynamics 365 Customer Service. - File capacity details reported: - If there are associated file attachments retained long term, the file capacity reflects the sum of the live and retained data. There will be no reduction or savings observed with file capacity after running a retention policy, which involved file attachments. @@ -107,7 +108,7 @@ Dataverse long term retention requires no additional storage purchases and it do For example: - Suppose the database capacity consumed by Contoso is 1,000 GB today and the scheduled long term retention policy was run and retains 200 GB of data with Dataverse long term retention. -- With an average compression of at lease 50%, the retained data size is 100 GB, a savings of 50% compared to when the data was in the active state. +- With an average compression of at least 50%, the retained data size is 100 GB, a savings of 50% compared to when the data was in the active state. - This implies Contoso now has 800 GB of active data and 100 GB of inactive data in Dataverse. - In this scenario, the [storage capacity reports](#storage-capacity-reports) display the database usage as 900 GB (800 GB + 100 GB). diff --git a/powerapps-docs/maker/data-platform/data-retention-set.md b/powerapps-docs/maker/data-platform/data-retention-set.md index fc47a0ede7..22fee04f85 100644 --- a/powerapps-docs/maker/data-platform/data-retention-set.md +++ b/powerapps-docs/maker/data-platform/data-retention-set.md @@ -2,9 +2,10 @@ title: Set a data retention policy for a table description: Explains how to set a data retention policy for a Microsoft Dataverse table. author: pnghub -ms.author: gned +ms.author: matp ms.reviewer: matp ms.service: powerapps +ms.subservice: dataverse-maker ms.topic: how-to ms.date: 05/10/2024 ms.custom: template-how-to diff --git a/powerapps-docs/maker/data-platform/data-retention-view.md b/powerapps-docs/maker/data-platform/data-retention-view.md index b1d95dd2b9..46dd0b06a1 100644 --- a/powerapps-docs/maker/data-platform/data-retention-view.md +++ b/powerapps-docs/maker/data-platform/data-retention-view.md @@ -2,10 +2,11 @@ title: View long term retained data in Microsoft Dataverse description: Learn how to access ready only data that is in long term storage. author: pnghub -ms.author: gned +ms.author: matp ms.reviewer: matp contributors: manasdalai ms.service: powerapps +ms.subservice: dataverse-maker ms.topic: how-to ms.date: 06/27/2024 ms.custom: template-how-to @@ -70,7 +71,7 @@ To do this, link your Dataverse environment to Fabric. More information: [Link y When your long term retention policy is run successfully, you can access the active and inactive Dataverse data. The [limitations applied to retrieval of retained data](#limitations-for-retrieval-of-retained-data) don't apply to this mode of access. -You can explore the data with SQL endpoint and query Dataverse data with SQL and generate views in Fabric. You can also create Power BI reports. More information: [Work with Dataverse data and generate Power BI reports](azure-synapse-link-view-in-fabric.md#work-with-dataverse-data-and-generate-power-bi-reports) +You can explore the data with SQL endpoint and query Dataverse data with SQL and generate views in Fabric. You can also create Power BI reports. More information: [Work with Dataverse data and generate Power BI reports](fabric-work-data-and-power-bi.md) The Dataverse table column `msft_datastate` can be used to filter the data with the SQL `WHERE` clause: diff --git a/powerapps-docs/maker/data-platform/data-validation-email-column.md b/powerapps-docs/maker/data-platform/data-validation-email-column.md index 898eceb515..4573168fa2 100644 --- a/powerapps-docs/maker/data-platform/data-validation-email-column.md +++ b/powerapps-docs/maker/data-platform/data-validation-email-column.md @@ -2,14 +2,20 @@ title: Email address validation for email columns in Dataverse description: Explains address validation for email columns with Microsoft Dataverse author: Mattp123 -ms.author: matp +ms.author: miplese ms.service: powerapps +ms.subservice: dataverse-maker ms.topic: how-to -ms.date: 08/22/2024 +ms.date: 07/01/2025 ms.custom: template-how-to --- # Email address validation for email columns (preview) +> [!IMPORTANT] +> +> - This feature is deprioritized and will not be delivered. +> - Beginning July 31, 2025, existing model-driven or canvas apps that use this email validation feature will stop displaying the validation results for the email addresses entered in forms. Any custom function or logic implemented by makers that use this specific email address control type might stop functioning and must be updated to use the standard email address control type. If you haven't developed custom functions, forms continue to work as before. + [!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] Get email address columns validated automatically in model-driven apps with no-code. With smart data validation, makers can build smarter and contextually aware next-gen apps for their workflows with better data quality. @@ -19,8 +25,8 @@ Traditionally, the existing email column type had only basic email validation. W > [!IMPORTANT] > > - This is a preview feature. -> - During preview, these regions will have email address validation feature available: Asia (East, Southeast), Australia (East, Southeast), Canada (Central, East), Europe (North, West), France (Central, South), India (Central, South), Japan (East, West), South America – Brazil (South), Switzerland (North, West), UAE (North), UK (South, West), US (East, West). -> - Smart email validation currently only works for model-driven apps. +> - During preview, these regions have email address validation feature available: Asia (East, Southeast), Australia (East, Southeast), Canada (Central, East), Europe (North, West), France (Central, South), India (Central, South), Japan (East, West), South America – Brazil (South), Switzerland (North, West), UAE (North), UK (South, West), US (East, West). +> - Smart email validation only works for model-driven apps. > - Smart email validation shows validation issues but won't block users from saving their record. Email address validation detects the following issues: @@ -55,9 +61,10 @@ Notice that the notification message **The domain is unknown** appears under the ## Known issues -- The **Enable Smart Email Address Validation Control** app setting can be enabled even though the **Data Validation** Power Platform admin center environment setting is off. In this situation, email address validation won't work. +- The **Enable Smart Email Address Validation Control** app setting can be enabled even though the **Data Validation** Power Platform admin center environment setting is off. In this situation, email address validation doesn't work. - When the form containing the control is set to read-only mode, the email column still allows editing of the value. - The email column doesn't import values when using a quick create form. For example, when you create a new parent contact record from a lead record. +- While using the `setValue()` method, the value being defined for the control doesn't render in the app. ## Next steps diff --git a/powerapps-docs/maker/data-platform/dataverse-accelerator/api-playground.md b/powerapps-docs/maker/data-platform/dataverse-accelerator/api-playground.md index b7db63a39c..4572125f54 100644 --- a/powerapps-docs/maker/data-platform/dataverse-accelerator/api-playground.md +++ b/powerapps-docs/maker/data-platform/dataverse-accelerator/api-playground.md @@ -5,6 +5,7 @@ author: denise-msft ms.author: demora ms.reviewer: matp ms.service: powerapps +ms.subservice: dataverse-maker ms.topic: how-to ms.date: 06/06/2024 ms.custom: template-how-to @@ -134,7 +135,7 @@ The tool uses the authentication token of the logged in user that is required to ### Is the API playground feature available in all environments? -The feature is delivered through the Dataverse accelerator and is available in all environments that have the app installed. The app is automatically installed in all new environments, but can also be installed in older environments by following the [install instructions](dataverse-accelerator.md#install-the-dataverse-accelerator). +The feature is delivered through the Dataverse accelerator and is available in all environments that have the app installed. The app is automatically installed in all new environments, but can also be installed in older environments by following the [install instructions](dataverse-accelerator.md#install-or-update-the-dataverse-accelerator). ## See also diff --git a/powerapps-docs/maker/data-platform/dataverse-accelerator/dataverse-accelerator.md b/powerapps-docs/maker/data-platform/dataverse-accelerator/dataverse-accelerator.md index 9560218ff3..8d73cd18e3 100644 --- a/powerapps-docs/maker/data-platform/dataverse-accelerator/dataverse-accelerator.md +++ b/powerapps-docs/maker/data-platform/dataverse-accelerator/dataverse-accelerator.md @@ -6,8 +6,9 @@ ms.author: demora ms.reviewer: matp ms.service: powerapps ms.topic: how-to -ms.date: 05/13/2024 +ms.date: 04/01/2025 ms.custom: template-how-to +ms.subservice: dataverse-maker contributors: - sriknair --- @@ -15,9 +16,9 @@ contributors: [!INCLUDE [cc-beta-prerelease-disclaimer](../../../includes/cc-beta-prerelease-disclaimer.md)] -The Microsoft Dataverse accelerator is an application that provides access to select preview features and tooling related to Dataverse development. The featured set of capabilities include early prototype experiences that represent backlog features scheduled to be in the native platform and tools for enriching Dataverse development for makers, delivered in a convenient and accessible web application built with low-code. +The Microsoft Dataverse accelerator is a model-driven application that provides access to select preview features and tooling related to Dataverse development. The featured set of capabilities include early prototype experiences that represent backlog features scheduled to be in the native platform and tools for enriching Dataverse development for makers, delivered in a convenient and accessible web application built with low-code. -![Dataverse accelerator landing page with low-code plug-in and plug-in monitoring preview features](./media/home.svg) +![Dataverse accelerator landing page with low-code plug-in and plug-in monitoring preview features](./media/dataverse-accelerator-app.png) While preview features shouldn't be used in production instances, the accelerator offers the opportunity to proactively evaluate, share feedback, and prepare for integration. Using features available with the Dataverse accelerator helps you leverage cutting-edge capabilities to enhance productivity, optimize Dataverse processes, and maintain a competitive edge in Power Platform. @@ -28,11 +29,22 @@ While preview features shouldn't be used in production instances, the accelerato The Dataverse accelerator interface adheres to the same UX and accessibility standards as any Microsoft Power Platform experience. Furthermore, it serves as a demonstration of our platform's powerful low-code capability to ship enterprise-grade applications. +## Features available with the Dataverse accelerator + +| Feature | Description | +| -- | -- | +| Low-code plug-ins | Reusable, real-time workflows that execute a specific set of commands within Dataverse. Low-code plug-ins run server-side and are triggered by personalized event handlers, defined in Power Fx. For more information about how to use this feature, go to [Low-code plug-ins](../low-code-plug-ins.md). | +| Plug-in monitor | A modern interface to surface the existing plug-in trace log table in Dataverse environments, designed for developing and debugging Dataverse plug-ins and custom APIs. For more information about how to use this feature, go to [Plug-in monitor](plugin-monitoring.md). | +| API playground | A preauthenticated software testing tool that helps makers quickly and conveniently interact with the [Dataverse Web API](/power-apps/developer/data-platform/webapi/overview). For more information about how to use this feature, go to [API playground](api-playground.md). | + +> [!NOTE] +> If all features aren't available in the Dataverse accelerator app, update the app. More information: [update the Dataverse accelerator app](#install-or-update-the-dataverse-accelerator). + ## Play the Dataverse accelerator Play the Dataverse accelerator app in any environment where it's installed. -The app is automatically available in all new Microsoft Dataverse environments. If your environment doesn't already have it, you can [install the Dataverse accelerator](#install-the-dataverse-accelerator). +The app is automatically available in all new Microsoft Dataverse environments. If your environment doesn't already have it, you can [install the Dataverse accelerator](#install-or-update-the-dataverse-accelerator). The app appears in two places: @@ -40,7 +52,7 @@ The app appears in two places: :::image type="content" source="media/apps.svg" alt-text="Power Apps app list" lightbox="media/apps.svg"::: -1. In the **Unified Interface apps** view: +1. On the Power Apps or Dynamics 365 home page. ![Power Apps Unified Client Applications View](./media/uci.svg) @@ -53,18 +65,6 @@ You must have the following privileges in your Dataverse environment: - Security role: System customizer. - App-level access to the Dataverse accelerator model driven app, such as system customizer or direct access from a security role. -### Features available with the Dataverse accelerator - -| Feature | Description | -| -- | -- | -| [Low-code plug-ins](../low-code-plug-ins.md) | Reusable, real-time workflows that execute a specific set of commands within Dataverse. Low-code plug-ins run server-side and are triggered by personalized event handlers, defined in Power Fx. | -| [Plug-in monitor](plugin-monitoring.md) | A modern interface to surface the existing plug-in trace log table in Dataverse environments, designed for developing and debugging Dataverse plug-ins and custom APIs. | -| [API playground](api-playground.md) | A preauthenticated software testing tool that helps makers quickly and conveniently interact with the [Dataverse Web API](/power-apps/developer/data-platform/webapi/overview). | - -## Manage the Dataverse accelerator app - -The Dataverse accelerator is automatically installed as a Microsoft package in all new environments. It's hosted and distributed using the App Source framework as a [Dynamics 365 app](/power-platform/admin/manage-apps). - ### Prerequisites for managing the app You must have the following security role assignment and your Dataverse environment must be the same or later than the minimum version: @@ -72,22 +72,18 @@ You must have the following security role assignment and your Dataverse environm - Security role: You must have the system administrator security role in the environment. - A Dataverse environment with minimum database (DB) version of `9.2.22122.00148`. Check the database version: - - In the [Power Platform admin center](https://admin.powerplatform.microsoft.com/) > **Environments**, and then select the environment you want. Select **Detailed view**, and under **Version** the version is displayed. + - In the [Power Platform admin center](https://admin.powerplatform.microsoft.com/) select **Manage** > **Environments**, and then select the environment you want. Select **Detailed view**, and under **Version** the version is displayed. - By using the [RetrieveVersion function](/power-apps/developer/data-platform/webapi/reference/retrieveversion) with your browser. Type `https://..dynamics.com/api/data/v9.2/RetrieveVersion` in your browser address bar and view the JSON returned. -### Install the Dataverse accelerator - -If the Dataverse accelerator isn't already installed in the environment, follow the steps to [install an app in the environment view](/power-platform/admin/manage-apps#install-an-app-in-the-environment-view) for the Dataverse Accelerator offering. - -### Update the Dataverse accelerator +## Install or update the Dataverse accelerator -If the Dataverse accelerator is already installed and you want to install the latest version, follow these steps: +If the Dataverse accelerator isn't already installed or if you want to install the latest version, Power Platform admins should follow these steps: -1. In the [Power Platform admin center](https://admin.powerplatform.microsoft.com/), select **Environments**. -1. Open the [environment-level view of apps](/power-platform/admin/manage-apps#environment-level-view-of-apps) -1. Locate the **Dataverse Accelerator** app. -1. When there's an update available, select **Update available** next to the app. -1. Follow the instructions on your screen to apply the update. +1. In the [Power Platform admin center](https://admin.powerplatform.microsoft.com/), select **Manage** > **Environments**, select the environment you want, and then select **Resources** > **Dynamics 365 apps** on the command bar. If you're using the earlier version of the admin center, expand **Resources**, and then select **Dynamics 365 apps**. +1. Find **Dataverse Accelerator** in the list. + - If **Update available** appears next to the **Dataverse Accelerator**, select the app and then select **Update**. + - Otherwise, select **Install app**, select **Dataverse Accelerator** in the list, and then select **Next**. +1. Follow the instructions on your screen to install the app or apply the update. ### Uninstall the Dataverse accelerator @@ -124,7 +120,7 @@ Yes, Dataverse accelerator is compatible with existing Power Platform environmen **How do I install Dataverse Accelerator?** -Follow the [install instructions](#install-the-dataverse-accelerator) of this article to install the Dataverse accelerator, which points to the documentation for installing any Dynamics 365 app in a Dataverse environment. +Follow the [install instructions](#install-or-update-the-dataverse-accelerator) of this article to install the Dataverse accelerator, which points to the documentation for installing any Dynamics 365 app in a Dataverse environment. **If I don't want the Dataverse accelerator installed in my environment, can I delete it?** diff --git a/powerapps-docs/maker/data-platform/dataverse-accelerator/media/dataverse-accelerator-app.png b/powerapps-docs/maker/data-platform/dataverse-accelerator/media/dataverse-accelerator-app.png new file mode 100644 index 0000000000..8f4905ffd7 Binary files /dev/null and b/powerapps-docs/maker/data-platform/dataverse-accelerator/media/dataverse-accelerator-app.png differ diff --git a/powerapps-docs/maker/data-platform/dataverse-accelerator/media/home.svg b/powerapps-docs/maker/data-platform/dataverse-accelerator/media/home.svg deleted file mode 100644 index 103960a9fe..0000000000 --- a/powerapps-docs/maker/data-platform/dataverse-accelerator/media/home.svg +++ /dev/null @@ -1,540 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/powerapps-docs/maker/data-platform/dataverse-accelerator/plugin-monitoring.md b/powerapps-docs/maker/data-platform/dataverse-accelerator/plugin-monitoring.md index bef359ce40..7c1d426b5c 100644 --- a/powerapps-docs/maker/data-platform/dataverse-accelerator/plugin-monitoring.md +++ b/powerapps-docs/maker/data-platform/dataverse-accelerator/plugin-monitoring.md @@ -8,6 +8,7 @@ ms.service: powerapps ms.topic: how-to ms.date: 05/13/2024 ms.custom: template-how-to +ms.subservice: dataverse-maker contributors: - sriknair --- @@ -145,7 +146,7 @@ Yes, the trace log viewer provides filtering capabilities, allowing users to con ### Is the plug-in monitoring feature available in all environments? -The feature is delivered through the Dataverse accelerator and is available in all environments that have the app installed. The app is automatically installed in all new environments, but can also be installed in older environments by following the [install instructions](dataverse-accelerator.md#install-the-dataverse-accelerator). +The feature is delivered through the Dataverse accelerator and is available in all environments that have the app installed. The app is automatically installed in all new environments, but can also be installed in older environments by following the [install instructions](dataverse-accelerator.md#install-or-update-the-dataverse-accelerator). ### After I enabled logging, it still shows the "Logging is turned off" screen diff --git a/powerapps-docs/maker/data-platform/define-alternate-keys-portal.md b/powerapps-docs/maker/data-platform/define-alternate-keys-portal.md index 81f8d212f6..57af41c0c0 100644 --- a/powerapps-docs/maker/data-platform/define-alternate-keys-portal.md +++ b/powerapps-docs/maker/data-platform/define-alternate-keys-portal.md @@ -1,7 +1,7 @@ --- -title: "Define alternate keys using Power Apps | MicrosoftDocs" -description: "Learn how to define alternate keys using Power Apps (make.powerapps.com)" -ms.date: 05/30/2023 +title: "Define alternate keys using Power Apps" +description: "Learn how to define alternate keys using Power Apps" +ms.date: 05/14/2025 ms.reviewer: "" ms.topic: "how-to" author: "Mattp123" @@ -12,38 +12,37 @@ search.audienceType: --- # Define alternate keys using Power Apps -Power Apps provides an easy way to view and create table alternate keys with the Microsoft Dataverse. For more information about alternate keys, see [Define alternate keys to reference rows](define-alternate-keys-reference-records.md). - -Power Apps enables configuring the most common options, but certain options can only be set using solution explorer. More information: [Define alternate keys using solution explorer](define-alternate-keys-solution-explorer.md) +Power Apps provides an easy way to view and create table alternate keys with Microsoft Dataverse. *Alternate keys* provide an efficient and accurate way of integrating data with external systems. It’s essential in cases when an external system doesn’t store the globally unique identifier (GUID) IDs that uniquely identify rows in Microsoft Dataverse. For more information about alternate keys, see [Define alternate keys to reference rows](define-alternate-keys-reference-records.md). > [!IMPORTANT] -> If the data within a column that is used in an alternate key will contain one of the following characters `/`, `#`,`<`,`>`,`*`,`%`,`&`,`:`,`\\`,`?`,`+` then `GET` or `PATCH` actions will not work. If you only need uniqueness then this approach will work, but if you need to use these keys as part of data integration then it is best to create the key on columns that won't have data with those characters. +> If the data within a column that is used in an alternate key contains one of the following characters `/`, `#`,`<`,`>`,`*`,`%`,`&`,`:`,`\\`,`?`,`+` then `GET` or `PATCH` actions won't work. If you only need uniqueness, then this approach works, but if you need to use these keys as part of data integration then it's best to create the key on columns that won't have data with those characters. ## View alternate keys -1. In Power Apps ([make.powerapps.com](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc)), select **Tables** from the left navigation pane, and then select the table that you want to view. [!INCLUDE [left-navigation-pane](../../includes/left-navigation-pane.md)] -2. Select **Keys** to view a list of any alternate keys that are defined. +1. In [Power Apps](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc), go to **Solutions** and open the solution you want. [!INCLUDE [left-navigation-pane](../../includes/left-navigation-pane.md)] +1. Select **Tables** on the left **Objects** pane, and then open the table that you want to view. +1. In the **Schema** area, select **Keys** to view a list of any alternate keys that might be defined. ## Create an alternate key 1. While [viewing alternate keys](#view-alternate-keys), select **New key**. -2. Use the panel to set a **Display name** and choose the columns to use to create the alternate key. - - The **Name** column will be populated based on the display name. +1. In the Key properties pane, enter the following information: + 1. Set a **Display name** and choose the columns to use to create the alternate key. + 1. The **Name** column is populated based on the display name. You can change it if you want. + 1. Select the columns that you want. For example, to identify an account row with an alternate key, you can use the **Account Number** column in combination with some other column, such as the **SIC Code**, which have values that shouldn't change. ![Example Alternate Key Definition.](media/alternate-key-account-number-sic-code.png) -1. Select **Done** to close the panel. -2. Select **Save table** to create the alternate key. +1. Select **Save** to create the alternate key. > [!NOTE] -> The alternate key will not be immediately available. A system job is initiated when you save the table to create database indexes to support the alternate key. +> The alternate key isn't immediately available for use. A system job is initiated when you save the table to create database indexes to support the alternate key. ## Delete an alternate key -While [viewing alternate keys](#view-alternate-keys), select the key you want to delete and choose **Delete Key** from the command bar. +While [viewing alternate keys](#view-alternate-keys), select the key you want to delete and select **Remove** > **Remove from this solution** or to delete the key from the Power Platform environment **Delete from this environment** on the command bar. -### See also +### Related articles [Developer Documentation: Work with alternate keys](../../developer/data-platform/define-alternate-keys-entity.md) diff --git a/powerapps-docs/maker/data-platform/define-alternate-keys-reference-records.md b/powerapps-docs/maker/data-platform/define-alternate-keys-reference-records.md index 7c58a32cfd..3872b108fb 100644 --- a/powerapps-docs/maker/data-platform/define-alternate-keys-reference-records.md +++ b/powerapps-docs/maker/data-platform/define-alternate-keys-reference-records.md @@ -6,7 +6,7 @@ ms.date: 12/01/2023 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/define-calculated-fields.md b/powerapps-docs/maker/data-platform/define-calculated-fields.md index 14ec3feffb..5f0126624b 100644 --- a/powerapps-docs/maker/data-platform/define-calculated-fields.md +++ b/powerapps-docs/maker/data-platform/define-calculated-fields.md @@ -228,7 +228,7 @@ You should be aware of certain conditions and limitations when working with calc [Create and edit columns](create-edit-fields.md) [Define rollup columns that aggregate values](define-rollup-fields.md) [Video: Rollup and calculated columns](https://go.microsoft.com/fwlink/p/?LinkId=517727) -[Formula, calculated, and rollup columns using code](../../developer/data-platform/calculated-rollup-attributes.md) +[Specialized columns](../../developer/data-platform/specialized-columns.md) [!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/data-platform/define-query-hierarchical-data.md b/powerapps-docs/maker/data-platform/define-query-hierarchical-data.md index efdff36bb4..06b4b8785e 100644 --- a/powerapps-docs/maker/data-platform/define-query-hierarchical-data.md +++ b/powerapps-docs/maker/data-platform/define-query-hierarchical-data.md @@ -6,7 +6,7 @@ ms.date: 08/02/2024 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/define-rollup-fields.md b/powerapps-docs/maker/data-platform/define-rollup-fields.md index e50170419f..7531cddebe 100644 --- a/powerapps-docs/maker/data-platform/define-rollup-fields.md +++ b/powerapps-docs/maker/data-platform/define-rollup-fields.md @@ -2,7 +2,7 @@ title: "Define rollup columns with Power Apps | MicrosoftDocs" description: "Learn how to define rollup columns." ms.date: 04/30/2024 -ms.topic: "conceptual" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" @@ -222,7 +222,7 @@ Certain table forms, such as Account or Contact, out-of-the-box, contain the as [Create and edit columns](create-edit-fields.md) [Define calculated columns](define-calculated-fields.md) -[Formula, calculated, and rollup columns using code](../../developer/data-platform/calculated-rollup-attributes.md) +[Specialized columns](../../developer/data-platform/specialized-columns.md) [Behavior and format of the Date and Time column](behavior-format-date-time-field.md) [Define and query hierarchically related data](define-query-hierarchical-data.md) diff --git a/powerapps-docs/maker/data-platform/define-status-reason-transitions.md b/powerapps-docs/maker/data-platform/define-status-reason-transitions.md index 824a317ef5..ea5c8b32de 100644 --- a/powerapps-docs/maker/data-platform/define-status-reason-transitions.md +++ b/powerapps-docs/maker/data-platform/define-status-reason-transitions.md @@ -7,7 +7,7 @@ ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/diagnose-solutions.md b/powerapps-docs/maker/data-platform/diagnose-solutions.md index 912de2f5a7..5ae5293b07 100644 --- a/powerapps-docs/maker/data-platform/diagnose-solutions.md +++ b/powerapps-docs/maker/data-platform/diagnose-solutions.md @@ -5,7 +5,7 @@ author: caburk ms.author: caburk ms.reviewer: matp ms.date: 07/08/2021 - +ms.subservice: dataverse-maker ms.topic: overview search.audienceType: - maker diff --git a/powerapps-docs/maker/data-platform/display-custom-icons-instead.md b/powerapps-docs/maker/data-platform/display-custom-icons-instead.md index 1d2c13fa3d..c8c4c199f8 100644 --- a/powerapps-docs/maker/data-platform/display-custom-icons-instead.md +++ b/powerapps-docs/maker/data-platform/display-custom-icons-instead.md @@ -2,9 +2,8 @@ title: "Display custom icons alongside values in list views with Power Apps | MicrosoftDocs" description: "Learn how to display custom icon graphics in a view" ms.custom: "" -ms.date: 11/20/2019 +ms.date: 06/26/2025 ms.reviewer: "" - ms.suite: "" ms.tgt_pltfrm: "" ms.topic: "how-to" @@ -22,33 +21,32 @@ search.audienceType: --- # Display custom icons alongside values in list views - - Power Apps environment administrators and customizers can add graphics to a view and establish the logic used to select a graphic based on the column value using JavaScript. The capability lets you customize list views that display icons alongside text or numerical values. This example displays custom icons in a view for the opportunity table, which is available with certain apps, such as Dynamics 365 Sales. You can display custom icons in views with other standard tables, such as the account or contact table, as well as custom tables. -> [!div class="mx-imgBorder"] -> ![All Opportunities view with Rating column displaying icons and text value.](media/icon-in-opportunity-view.png "All Opportunities view with Rating column displaying icons and text value") +:::image type="content" source="media/icon-in-opportunity-view.png" alt-text="All Opportunities view with Rating column displaying icons and text value." lightbox="media/icon-in-opportunity-view.png"::: -Custom icons in list views can display in Unified Interface, legacy web client, mobile app, and App for Outlook. +Custom icons in list views can display in model-driven apps, mobile app, and App for Outlook. > [!NOTE] -> Custom icons aren't available when the app is in mobile offline mode. +> +> - Custom icons aren't available when the app is in mobile offline mode. +> - This customization currently can only be completed by using the classic solution explorer. ## Add custom graphics and JavaScript as web resources 1. Create the new graphic files needed for your customization. We recommend an icon size of 16x16 pixels (larger images will be scaled down). -2. Write one or more JavaScript functions that establish which icons to show for which values (you'll typically need one function for each column you want to customize). Each function must accept a row data object and a language (LCID) code as input and return an array containing an image name and tooltip text. For an example function, see [Sample JavaScript function](#sample-javascript-function), later in this article. +2. Write one or more JavaScript functions that establish which icons to show for which values (you typically need one function for each column you want to customize). Each function must accept a row data object and a language (LCID) code as input and return an array containing an image name and tooltip text. For an example function, see [Sample JavaScript function](#sample-javascript-function), later in this article. -3. Sign into your environment as an administrator and open [solution explorer](../model-driven-apps/advanced-navigation.md#solution-explorer). +3. Sign into your environment and open [solution explorer](../model-driven-apps/advanced-navigation.md#solution-explorer). -4. The **Default Solution** pop-up window opens. Navigate to **Components** > **Web Resources** here. +4. The solution tab opens. Go to **Components** > **Web Resources**. -5. Now, you'll upload your custom graphics, one at a time, as web resources. Select the **New** button in the toolbar to create a new web resource. Another pop-up window opens to help you create the resource. Follow these steps: +5. Now, upload your custom graphics, one at a time, as web resources. Select **New** on the toolbar to create a new web resource. A pop-up window opens to help you create the resource. Follow these steps: - 1. Give the new resource a meaningful **Name**. This is the name that you'll use to refer to each graphic from your JavaScript code. + 1. Give the new resource a meaningful **Name**. This is the name that you use to refer to each graphic from your JavaScript code. 2. Set the **Type** to the graphic format you've used to save your graphic file (PNG, JPEG, or GIF). @@ -60,19 +58,19 @@ Custom icons in list views can display in Unified Interface, legacy web client, 6. Repeat the previous step for each graphic file that you have. -7. Now, you'll add your JavaScript as the final web resource. Select **New** on the toolbar to create a new web resource. Another pop-up window opens to help you create the resource. Do the following: +7. Now, add your JavaScript as the final web resource. Select **New** on the toolbar to create a new web resource. Another pop-up window opens to help you create the resource. Do the following: 1. Give the new resource a meaningful **Name**. 2. Set the **Type** to **Script (JScript)**. - 3. Select **Text Editor** (next to the **Type** setting) to open a text-editor window. Paste your Javascript code here and select **OK** to save it. + 3. Select **Text Editor** (next to the **Type** setting) to open a text-editor window. Paste your JavaScript code here and select **OK** to save it. 4. Add a **Display Name** and/or **Description** if you wish. 5. Select **Save** and then close the **Web Resource** window. -8. With the **Default Solution** pop-up window still open, expand the **Components** > **Tables** tree and locate the table that you want to customize. +8. With the solution tab still open, expand the **Components** > **Tables** tree and locate the table that you want to customize. 9. Expand your table and select its **Views** icon. @@ -80,7 +78,7 @@ Custom icons in list views can display in Unified Interface, legacy web client, 11. A pop-up window opens with controls for editing your selected view. It shows each column that is part of the view. Select the target column and then select the **Change Properties** in the **Common Tasks** box. The **Change Column Properties** dialog opens; make the following settings here: - - **Web Resource**: Specify the name of the web resource that you created to hold your Javascript functions (select **Browse** to choose from a list). + - **Web Resource**: Specify the name of the web resource that you created to hold your JavaScript functions (select **Browse** to choose from a list). - **Function Name**: Type the name of the function that you wrote to modify the selected column and view. @@ -92,14 +90,15 @@ Custom icons in list views can display in Unified Interface, legacy web client, 15. When you're ready, select **Publish All Customizations** to publish your changes. Then, close the **Default Solution** window. -### Sample JavaScript function +### Sample JavaScript function The JavaScript function for displaying custom icons and tooltips expects the following two arguments: the entire row object specified in layoutxml and the calling user’s Locale ID (LCID). The LCID parameter enables you to specify tooltip text in multiple languages. For more information about the languages supported by the environment, see [Enable languages](/dynamics365/customer-engagement/admin/enable-languages) and [Install or upgrade language packs](/dynamics365/customer-engagement/on-premises/install-or-upgrade-language-packs). For a list of locale ID (LCID) values that you can use in your code, see [Locale IDs assigned by Microsoft](/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c). -Assuming you will be adding custom icons for an option-set type of attribute, which has a limited set of predefined options, make sure you use the integer value of the options instead of label to avoid localization issues. +Assuming you're adding custom icons for an option-set type of attribute, which has a limited set of predefined options, make sure you use the integer value of the options instead of label to avoid localization issues. -**Note**: If it is necessary to retrieve data to determine the icon, Unified Interface supports returning a JavaScript Promise object which resolves to a boolean (similar to ribbon rules). Do not use a synchronous XMLHttpRequest (XHR) in your custom function. +> [!NOTE] +> If it's necessary to retrieve data to determine the icon, Unified Interface supports returning a JavaScript Promise object, which resolves to a boolean (similar to ribbon rules). Don't use a synchronous `XMLHttpRequest` (XHR) in your custom function. -The following sample code displays icons and tooltips based on one of three values (1: Hot, 2: Warm, 3: Cold) in the opportunityratingcode (Rating) attribute. The sample code also shows how to display localized tooltip text. For this sample to work, you must create three image web resources with 16x16 images with the following names: new_Hot, new_Warm, and new_Cold. +The sample code displays icons and tooltips based on one of three values (1: Hot, 2: Warm, 3: Cold) in the `opportunityratingcode` (Rating) attribute. The sample code also shows how to display localized tooltip text. For this sample to work, you must create three image web resources with 16x16 images with the following names: new_Hot, new_Warm, and new_Cold. > [!IMPORTANT] > This sample requires the opportunity table, which is available with Dynamics 365 Sales app. @@ -154,28 +153,25 @@ function displayIconTooltip(rowData, userLCID) { } ``` - - ## Custom icon view display behavior + ### Primary columns + In the grid list view, custom icons applied to the table primary column replace the default system-generated icon. -> [!div class="mx-imgBorder"] -> ![Primary column replaces default icon in the custom icon view.](media/mobile-primary-field-custom-icon-display.png "Primary column replaces default icon in the custom icon view") +:::image type="content" source="media/mobile-primary-field-custom-icon-display.png" alt-text="Primary column replaces default icon in the custom icon view."::: + +### Other columns -### Other columns In the grid list view, custom icons applied to a column that isn't the table primary column display as a secondary icon in addition to the default system-generated icon. -> [!div class="mx-imgBorder"] -> ![Not a table primary column custom icon view.](media/card-form-not-primary-field.png "Not a table primary column custom icon view") +:::image type="content" source="media/card-form-not-primary-field.png" alt-text="Not a table primary column custom icon view."::: ### Card forms + Custom icons replace the default system-generated icon when the view is configured to use a card form. -> [!div class="mx-imgBorder"] -> ![Card view custom icon view.](media/card-view-icon-display.png "Card view custom icon view") +:::image type="content" source="media/card-view-icon-display.png" alt-text="Card view custom icon view."::: ### See also diff --git a/powerapps-docs/maker/data-platform/edit-entities.md b/powerapps-docs/maker/data-platform/edit-entities.md index f4f9ba77c4..1ec32d0369 100644 --- a/powerapps-docs/maker/data-platform/edit-entities.md +++ b/powerapps-docs/maker/data-platform/edit-entities.md @@ -7,7 +7,7 @@ ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/edit-system-entity-messages.md b/powerapps-docs/maker/data-platform/edit-system-entity-messages.md index 69d8137a04..452f3a5654 100644 --- a/powerapps-docs/maker/data-platform/edit-system-entity-messages.md +++ b/powerapps-docs/maker/data-platform/edit-system-entity-messages.md @@ -6,7 +6,7 @@ ms.date: 11/02/2022 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/export-data-lake-faq.yml b/powerapps-docs/maker/data-platform/export-data-lake-faq.yml index 8da98ebff4..e3d4f07a2d 100644 --- a/powerapps-docs/maker/data-platform/export-data-lake-faq.yml +++ b/powerapps-docs/maker/data-platform/export-data-lake-faq.yml @@ -6,9 +6,10 @@ metadata: ms.search.keywords: ms.date: 05/06/2024 ms.author: sabinn - ms.reviewer: + ms.reviewer: matp contributors: JasonHQX ms.topic: faq + ms.subservice: dataverse-maker title: Azure Synapse Link for Dataverse FAQ summary: This article provides information on frequently asked questions about exporting Microsoft Dataverse table data to Azure Synapse Analytics and Azure Data Lake. sections: diff --git a/powerapps-docs/maker/data-platform/export-solutions.md b/powerapps-docs/maker/data-platform/export-solutions.md index 52eeae1517..c33440b578 100644 --- a/powerapps-docs/maker/data-platform/export-solutions.md +++ b/powerapps-docs/maker/data-platform/export-solutions.md @@ -6,7 +6,7 @@ ms.date: 05/26/2020 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/export-to-data-lake-data-adf.md b/powerapps-docs/maker/data-platform/export-to-data-lake-data-adf.md index b1a3eed87e..e9e7ddacb7 100644 --- a/powerapps-docs/maker/data-platform/export-to-data-lake-data-adf.md +++ b/powerapps-docs/maker/data-platform/export-to-data-lake-data-adf.md @@ -7,7 +7,7 @@ ms.reviewer: "matp" author: sabinn-msft ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: how-to applies_to: - "powerapps" ms.assetid: diff --git a/powerapps-docs/maker/data-platform/export-to-data-lake-data-powerbi.md b/powerapps-docs/maker/data-platform/export-to-data-lake-data-powerbi.md index 6ebe7f2850..1e674cad98 100644 --- a/powerapps-docs/maker/data-platform/export-to-data-lake-data-powerbi.md +++ b/powerapps-docs/maker/data-platform/export-to-data-lake-data-powerbi.md @@ -8,7 +8,7 @@ author: sabinn-msft ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: how-to applies_to: - "powerapps" ms.assetid: @@ -92,4 +92,4 @@ This section describes the prerequisites necessary to consume Dataverse data wit [Ingest Dataverse data in Azure Data Lake Storage Gen2 with Azure Data Factory](export-to-data-lake-data-adf.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/data-platform/export-to-data-lake.md b/powerapps-docs/maker/data-platform/export-to-data-lake.md index f6adaae905..54180b8aab 100644 --- a/powerapps-docs/maker/data-platform/export-to-data-lake.md +++ b/powerapps-docs/maker/data-platform/export-to-data-lake.md @@ -7,7 +7,7 @@ ms.reviewer: "Mattp123" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: concept-article applies_to: - "powerapps" author: "sabinn-msft" diff --git a/powerapps-docs/maker/data-platform/fabric-link-to-data-platform.md b/powerapps-docs/maker/data-platform/fabric-link-to-data-platform.md new file mode 100644 index 0000000000..ff40bf90b6 --- /dev/null +++ b/powerapps-docs/maker/data-platform/fabric-link-to-data-platform.md @@ -0,0 +1,117 @@ +--- +title: Configure your environment and link to Microsoft Fabric +description: This article shows you how to configure your Power Platform environment and link it to Microsoft Fabric. +author: MilindaV2 +ms.author: Milindav +ms.reviewer: matp +contributors: saviegas +ms.service: powerapps +ms.subservice: dataverse-maker +ms.topic: how-to +ms.date: 06/23/2025 +ms.custom: template-how-to +--- +# Link to Microsoft Fabric + +Microsoft Fabric integration with Microsoft Dataverse allows you to seamlessly link your Power Platform environment to Microsoft Fabric, enabling advanced data analysis and reporting capabilities. This guide provides step-by-step instructions on configuring your environment, linking it to Microsoft Fabric, and managing linked tables. + +You can use an existing Dataverse environment or create a new developer environment if you want to try this feature. More information: [Create a developer environment](/power-platform/developer/create-developer-environment) + +## Prerequisites + +- You must have the Systems Administrator security role in the Power Platform environment to enable **Link to Fabric** or **Synapse Link**. +- You must be an administrator of the Power BI workspace. +- If you want the system to create a Power BI workspace, you need to have Power BI Capacity Administrator access to a capacity within the same region as the Dataverse environment. +- A Power BI premium license or Fabric capacity within the same Azure geographical region as your Dataverse environment is required. If you don’t have Power BI premium license or Fabric capacity within the same geographical region, you can buy a capacity or sign up for a free Fabric trial capacity. More information: [Fabric (preview) trial](/fabric/get-started/fabric-trial) +- Your administrator needs to grant you access to create Fabric lakehouses and artifacts. You can find these settings in the Fabric admin portal. Go to **Tenant Settings** > **Microsoft Fabric** > **Users can create Fabric items**, **Tenant settings** > **Workspace settings** > **Create workspaces** as well as **Tenant settings** > **oneLake settings** > **Users can access data stored in OneLake with apps external to Fabric**. +- To confirm whether you have access to the required premium capacity, go to [Power BI](https://app.powerbi.com), open the workspace, and select **Workspace settings** > **Premium**. Make sure that **Trial** or **Premium capacity** is selected. + :::image type="content" source="media/fabric/fabric-trial-capacity.png" alt-text="You need either Trial or Premium capacity for your Power BI workspace." lightbox="media/fabric/fabric-trial-capacity.png"::: + +## Create a link to Fabric + +Link to Microsoft Fabric from the Power Apps **Tables** area: Select **Analyze** > **Link to Microsoft Fabric** on the command bar. + +1. Sign into [Power Apps](https://make.powerapps.com). +2. Select the environment you want, select **Tables** on the left navigation pane, and then select **Analyze** > **Link to Microsoft Fabric** on the command bar. +3. If you're linking to Fabric for the first time, a wizard appears. You can launch Fabric with the same option in subsequent runs. +4. The wizard validates your Fabric subscription settings the first time. In the event you don't have a Fabric capacity in the same geography or region as your Dataverse environment, the wizard notifies you to get a capacity in the required geography. +5. If needed, the wizard asks you to create a one time connection to Microsoft Fabric within the same step. This connection is needed to enable Fabric and Dataverse services to securely access data. You need to sign in and then save the connection to proceed. +6. The wizard asks you to select an existing Fabric workspace or to create a new one. You can expect to see shortcuts to all your tables within this workspace. +7. If you don't see workspaces, ask the system to create a workspace. Go to [Troubleshooting common issues](fabric-troubleshoot.md) if you don't see the desired workspace. +8. All Dataverse tables where the "Change tracking" property is enabled are linked to Fabric. If this environment is linked to finance and operations apps, you can add finance and operations tables later using the **Manage tables** option. More information: [Manage link to Fabric](#manage-link-to-fabric). +9. When done, select **Create** in the wizard to create the workspace, create shortcuts, and to perform the initialization for the first time. +10. When complete, Fabric lakehouse opens in a separate browser tab. + +> [!NOTE] +> +> It might take up to 60 minutes to update data in OneLake including the conversion to delta parquet format. If you selected a table that contains a lot of data, the initial load time might take longer. When you open Fabric lakehouse, the links appear as **unidentified** until the initial sync is completed. More information: [Troubleshooting common issues](fabric-troubleshoot.md) +> +> When the initial sync is complete, the system continuously refreshes updates in Dataverse in the lakehouse. It might take up to 60 minutes for the data to be refreshed especially during peak load periods. +> +> If you have more than 2,000 active Dataverse tables, Link to Fabric can fail with an error. Go to [Troubleshooting common issues](fabric-troubleshoot.md) for help resolving issues. + +## Manage link to Fabric + +Admins can manage tables linked to OneLake from the **Azure Synapse Link for Dataverse** page. If this environment is linked to Fabric, you see a link called **Microsoft OneLake**. + +1. Sign into [Power Apps](https://make.powerapps.com). + > [!NOTE] + > + > This feature is enabled by default on all environments. Power Platform admins can disable this feature in the Power Platform admin center in the environment feature settings. + +2. Select **Azure Synapse Link** from the left navigation pane, and the select **Microsoft OneLake**. +3. Open Fabric by selecting **View in Microsoft Fabric**. +4. Add more table links to Fabric by selecting **Manage tables**. +5. When you add a table, the system performs an initial sync and indexes the data. When the initial sync is completed, a shortcut to OneLake is created. View the status of tables by selecting **Manage tables**. Use the **Refresh Fabric tables** option to add the newly enabled table in Fabric. You might need to review the report and downstream data flows to see that they aren't impacted by the change. + + > [!NOTE] + > If your environment is linked to a Dynamics 365 finance and operations environment, the add tables option enables you to include tables from finance and operations apps. Learn more: [Choose finance and operations data in Azure Synapse Link for Dataverse](azure-synapse-link-select-FnO-data.md) + +6. When the sync status is **Active**, as data gets updated, your data changes are shown in reports created in Fabric. +7. If a new column is added to a table that’s already part of the profile (also known as a metadata change), you can use the **Refresh Fabric tables** option, from the command bar, to update the change in Fabric. The update occurs after the next table data change is triggered. You might need to review the report and downstream data flows to confirm that they aren't impacted by the change. +8. You can also **Unlink**, which removes the Fabric link to your Dataverse environment. When unlinking, the Fabric lakehouse is also removed. + +> [!NOTE] +> If you've installed Dynamics 365 apps such as Customer Insights, the tables required for the app are also included in the **Microsoft OneLake** link. +> +> Removing already added tables has been disabled since it might impact already built reports. + +### Share the data connection with other users + +The system creates a data connection between the Power Platform environment and Fabric workspace using the credentials of the user at the time of link creation. If you use the **Fabric link** option from the Power Apps **Tables** area, the system creates the connection and asks you to save it. If you use the **Synapse Link** option, you must create a data connection yourself before enabling the link. + +The system uses this connection to enable Fabric users to connect to Dataverse - the data store behind the Power Platform environment. If you want to enable other users to add or remove tables to Fabric link, you need to share this data connection with other users. + +1. Go to [Fabric.Microsoft.com](https://fabric.microsoft.com) and select the gear icon on top left (next to the user icon). +2. On the **Settings** menu, select **Data connections and Gateways**. The available data connections are displayed. +3. Select the **Connections** tab, and then choose the data connection you created with the connection type **Dataverse**. You might notice a connection that is named similar to **org...crm.dynamics.com**. In case you have multiple connections like this, you need to select the connection that links to the specific Power Platform environment. +4. Once you select the correct data connection, select **...** > **manage users**. Then you're shown users who have access to this connection. +5. Enter the name or email of other users who need access to data. When you select a user, specify either the **Owner** role or **Reader** role. You only need to provide reader role to enable them to consume data. The users you specify receive an e-mail confirming access to data. + +You might need to grant access to other users to this workspace so that they can work with data. Depending on the need for data access, you might need to secure the data in this workspace before you share this data with others. You can secure the lakehouse as well as tables within the lakehouse using OneLake security. More information: [OneLake security overview](/fabric/onelake/security/get-started-security) + +You can only create user based connections at this time. + +## Link existing Azure Synapse Link for Dataverse links with Fabric + +You can link your existing Azure Synapse Link for Dataverse profiles with Fabric from the **Azure Synapse Link for Dataverse** area. You need to select the **Enable Parquet/Delta lake** option to enable the view in the Fabric feature for Azure Synapse Link for Dataverse profiles. + +To enable an existing link, follow these steps: + +1. Sign into [Power Apps](https://make.powerapps.com). +1. Select **Azure Synapse Link** from the left navigation. +1. Select an existing Azure Synapse Link for Dataverse profile, and then select **Link to Microsoft Fabric**. +1. You're prompted to choose a Power BI premium workspace to continue. A list of workspaces in the same region as your environment are displayed. If you don’t see a workspace in the drop-down list, you might need to create one, and then return to this task. More information [Link to Microsoft Fabric](#link-to-microsoft-fabric) +1. Select **OK**. Validations are performed and the required artifacts are created in Fabric. +1. Select **View in Microsoft Fabric** open Fabric lakehouse. +1. You can add or remove tables using by selecting **Manage tables**. When you add a table, an initial sync is performed. When the initial sync is completed, select **Refresh Fabric tables** to refresh the Dataverse shortcut added to your Fabric lakehouse. + +> [!NOTE] +> +> - Select **Enable Parquet/Delta lake** to enable the view in Fabric. +> - Existing Azure Synapse Link for Dataverse profiles where the data is saved as CSV files can't be linked to Microsoft Fabric. +> - Azure Synapse Link profiles secured with managed identities, formerly Managed Service Identity (MSI), can't be linked to Microsoft Fabric at this point in time. + +## Next steps + +[Work with Dataverse data and generate Power BI reports](fabric-work-data-and-power-bi.md) diff --git a/powerapps-docs/maker/data-platform/fabric-troubleshoot.md b/powerapps-docs/maker/data-platform/fabric-troubleshoot.md new file mode 100644 index 0000000000..16a146ddfc --- /dev/null +++ b/powerapps-docs/maker/data-platform/fabric-troubleshoot.md @@ -0,0 +1,37 @@ +--- +title: Troubleshooting common issues with link to Fabric with Microsoft Dataverse +description: This article provides information about how to troubleshoot common issues with link to Fabric with Microsoft Dataverse +author: swatimadhukargit +ms.author: swatim +ms.reviewer: matp +ms.service: powerapps +ms.subservice: dataverse-maker +ms.topic: how-to +ms.date: 07/07/2025 +ms.custom: template-how-to +--- +# Troubleshooting common issues with link to Fabric + +If you experience an error message when using link to Fabric with Microsoft Dataverse, here are suggestions and more information about how to resolve the issue. + +| Error message | How to resolve | +|:-----------------------------------|:------------------------------| +| You must have Power BI premium or Fabric capacity in the same region {Region}. You can also get a Fabric trial.

    You won't receive this error after April 30, 2024. Instead, you're shown an error if you don't have capacity in the same geography. | You need a Power BI premium of a Fabric capacity in the same region as your Dataverse environment. Power BI premium per user capacity isn't sufficient. You can get a free trial capacity by visiting [Fabric (preview) trial](/fabric/get-started/fabric-trial).
    More information: [Prerequisites](fabric-link-to-data-platform.md#prerequisites) | +| Creation of Fabric workspace failed. You can try again. If this issue persists contact [Microsoft customer support](/power-platform/admin/get-help-support) with the corelation ID. | You must be a Power BI Capacity Administrator or have contributor access to a capacity within the same geography as your Dataverse environment.
    Currently, the system supports these premium capacity SKUs described in the [Prerequisites](fabric-link-to-data-platform.md#prerequisites).
    Verify with your Power BI Tenant admin that you have permissions to create workspaces. You can find this setting in Power BI Admin portal under **Tenant settings > workspace settings > Create workspaces**.
    If the issue isn't resolved, contact [Microsoft customer support](/power-platform/admin/get-help-support) with the provided reference ID | +| Creation of Fabric lakehouse failed. You can try again. If this issue persists contact [Microsoft customer support](/power-platform/admin/get-help-support) with the corelation ID. | Verify with your Power BI Tenant admin that you have permissions to create OneLake shortcuts. You can find this setting in Power BI Admin portal under **Admin Portal > Tenant Settings > Microsoft Fabric > Users can create Fabric items**.
    More information: [Prerequisites](fabric-link-to-data-platform.md#prerequisites)
    If the issue isn't resolved after several retries, you can contact [Microsoft customer support](/power-platform/admin/get-help-support) with the provided reference ID. | +| We ran into an issue, Creaton of Fabric Lakehouse failed. | Verify with your Power BI tenant admin that you have permissions to create artifacts in Fabric. You can find this setting in Power BI admin portal under **Tenant settings > oneLake settings > Users can access data stored in OneLake with apps external to Fabric**.
    More information: [Prerequisites](fabric-link-to-data-platform.md#prerequisites)
    If the issue isn't resolved after several retries, you can contact [Microsoft customer support](/power-platform/admin/get-help-support) with the provided reference ID. | +| Your organization doesn't appear to have Microsoft Fabric. You can get a trial. | Contact your administrator or get a trial version of Microsoft Fabric. | +|You need to get a trial version of Fabric to get started. | You need a Power BI premium of a Fabric capacity. Power BI premium per user capacity isn't sufficient. You can get a free trial capacity by visiting: [Fabric (preview) trial](/fabric/get-started/fabric-trial) | +| You need to be a system administrator to link to Fabric. | You need the system administrator security role in Dataverse to perform this operation. More information: [Security roles and privileges](/power-platform/admin/security-roles-privileges) | +| Newly added fields in tables aren't reflected in Fabric Lakehouse. | When a new field is added to a Dataverse table, the newly added column isn't added to Fabric Linked workspaces automatically. To include newly added columns, select **Synapse Link** in Power Apps (make.powerapps.com), select the Microsoft OneLake or the Azure Synapse Link profile and select **Refresh Fabric tables**. This action refreshes the table metadata in Fabric Lakehouse. | +| Error message "Unauthorized. Access to target location https://[...].crm3.dynamics.com/ denied" when accessing Dataverse tables in Fabric Lakehouse. | This error message indicates that the user accessing tables in Fabric doesn't have the required permissions to access Dataverse tables. This error might be shown even if the same user has access to the tables in Dataverse.
    The Link to Fabric wizard in Power Apps creates a data connection at the time of creating the Link to Fabric. This data connection uses credentials of the user, it's possible that:
    - The password of the user who created the connection has changed or has expired.
    - The user account of the user who created the Fabric link is inactive.
    - Other users who need to access Dataverse tables in Fabric Lakehouse don't have access to the data connection. More information: [Share the data connection with other users](fabric-link-to-data-platform.md#share-the-data-connection-with-other-users) | +| Error message "A back end error occurred. The Fabric to Dataverse connection ID ... is not valid for this user. Please check that you have access to this connection, and that the connection is connected to this organization, with URL ... You can try again, if this issue persists please contact support. | This error message indicates that the user selecting the **Refresh Fabric tables** option in the Azure Synapse Link page doesn't have the required permissions. This error might be shown even when the user has access to the tables in Dataverse and is a system administrator.
    The link to Fabric wizard in Power Apps creates a data connection at the time of creating the link to Fabric. This data connection uses credentials of the user, it's possible that:
    - The password of the user who created the connection has changed or has expired.
    - The user account of the user who created the Fabric link is inactive.
    - The user performing the **Refresh Fabric tables** option doesn't have access to the data connection. More information: [Share the data connection with other users](fabric-link-to-data-platform.md#share-the-data-connection-with-other-users) | +|All tables from Dataverse show as **Unidentified** in Fabric Lakehouse. | You might see this error message while your data is being initialized for the first time. If this issue persists for more than several hours, go to **Synapse Link** in Power Apps (make.powerapps.com), choose the Microsoft OneLake or the Azure Synapse Link profile and select **Refresh Fabric Links**. This refreshes the table metadata in Fabric Lakehouse. | +| Tables from Dynamics 365 finance and operations apps are missing. | System auto selects nonsystem tables with **Change tracking** property set to **Yes** when creating a Fabric Link. To select more tables, open **Microsoft OneLake** profile in **Synapse Link** and select **Manage Tables**. If you have a finance and operations environment linked to this Power Platform environment, you can also select tables from finance and operations apps. Finance and operations apps tables aren't autoselected with Fabric Link.
    More information: [Add Finance and Operations tables](/power-apps/maker/data-platform/azure-synapse-link-select-fno-data#add-finance-and-operations-tables-in-azure-synapse-link) | +| There are {.. #tables} tables enabled for change tracking in your environment. Addition of more than 2,000 tables isn't supported. | Fabric link feature currently can't be enabled on environments with more than 2,000 change tracking enabled tables. | + +## See also + +[Link your Dataverse environment to Microsoft Fabric and unlock deep insights](azure-synapse-link-view-in-fabric.md) + +[Link to Microsoft Fabric](fabric-link-to-data-platform.md) diff --git a/powerapps-docs/maker/data-platform/fabric-work-data-and-power-bi.md b/powerapps-docs/maker/data-platform/fabric-work-data-and-power-bi.md new file mode 100644 index 0000000000..0e1b87a3d8 --- /dev/null +++ b/powerapps-docs/maker/data-platform/fabric-work-data-and-power-bi.md @@ -0,0 +1,41 @@ +--- +title: Work with Dataverse data in Fabric and generate Power BI reports +description: This article describes how to work with Dataverse data in Microsoft Fabric and generate Power BI reports. +author: MilindaV2 +ms.author: Milindav +ms.reviewer: matp +ms.service: powerapps +ms.subservice: dataverse-maker +ms.topic: how-to +ms.date: 01/15/2025 +ms.custom: template-how-to +--- +# Work with Dataverse data and generate Power BI reports + +This section describes the different ways you can work with Microsoft Dataverse data in Microsoft Fabric and generate reports in Power BI. + +You can view the Azure Synapse Analytics lakehouse, SQL endpoint, and the default dataset generated by Dataverse in the Fabric workspace you chose earlier. + +When you select **Link to Microsoft Fabric**, a Dataverse generated Azure Synapse Analytics lakehouse opens. You can go to other Fabric features and work with Fabric and Power BI. + +## Explore the Dataverse generated Azure Synapse Analytics lakehouse + +The tables you selected are added to the Azure Synapse Analytics lakehouse and displayed in Power BI as shown here. These tables are linked to your Power Platform environment using **Dataverse shortcuts**. As data changes in Dataverse, the Dataverse shortcuts in Fabric reflect the latest data. + +![Dataverse generated Synapse lakehouse](media/fabric/fabric-with-dv-shortcuts-shown.png) + +Note that Dataverse manages these shortcuts. You shouldn't delete or remove these shortcuts in Fabric. If you accidentally delete a link, you can go to the **Azure Synapse Link for Dataverse** area in Power Apps and select **Refresh Fabric links** to re-create the links. + +## Explore data with SQL endpoint + +You can open SQL endpoint and query Dataverse data with SQL and generate views in Fabric. + +In Power BI, select **SQL endpoint** from the top right context menu. The data is displayed in a SQL friendly experience where you can create SQL queries and views. + +![SQL endpoint with Dataverse generated shortcuts](media/fabric/fabric-sql-endpoint-shortcuts-shown.png) + +## Autocreate a Power BI report + +Choose the default dataset generated by Dataverse, and then select **Auto-create report**. A Power BI report with the data you have selected is created. + +:::image type="content" source="media/fabric/fabric-autocreated-report.png" alt-text="Power BI auto-created report from Dataverse data in Fabric"::: \ No newline at end of file diff --git a/powerapps-docs/maker/data-platform/formula-column-data-types.md b/powerapps-docs/maker/data-platform/formula-column-data-types.md index 213be7f465..2dd92167e9 100644 --- a/powerapps-docs/maker/data-platform/formula-column-data-types.md +++ b/powerapps-docs/maker/data-platform/formula-column-data-types.md @@ -6,7 +6,8 @@ reviewer: mattp123 ms.topic: how-to ms.custom: ms.date: 01/06/2025 -ms.subservice: teams +ms.update-cycle: 180-days +ms.subservice: dataverse-maker ms.author: dikamath ms.reviewer: matp ms.collection: bap-ai-copilot @@ -134,6 +135,6 @@ Create a formula column that returns choice using a local choice of a simple cho [Microsoft Power Fx overview](/power-platform/power-fx/overview) -[Formula, calculated, and rollup columns using code](../../developer/data-platform/calculated-rollup-attributes.md) +[Specialized columns](../../developer/data-platform/specialized-columns.md) [Create formula columns with decimal (video)](https://youtu.be/NmpPG0_sPX0?feature=shared) diff --git a/powerapps-docs/maker/data-platform/formula-columns.md b/powerapps-docs/maker/data-platform/formula-columns.md index f003bdd9c4..352867d6a5 100644 --- a/powerapps-docs/maker/data-platform/formula-columns.md +++ b/powerapps-docs/maker/data-platform/formula-columns.md @@ -4,9 +4,10 @@ description: Learn how to create and use formula columns in Microsoft Dataverse. author: sanjeevgoyalmsft reviewer: mattp123 ms.topic: how-to -ms.custom: -ms.date: 11/19/2024 -ms.subservice: teams +ms.custom: needs-feature-review +ms.date: 06/23/2025 +ms.update-cycle: 180-days +ms.subservice: dataverse-maker ms.author: sriknair ms.reviewer: matp ms.collection: bap-ai-copilot @@ -38,7 +39,7 @@ Formula columns are columns that display a calculated value in a Microsoft Datav # [Get formula suggestions (preview)](#tab/natural-language) [!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] - a. Select the up and down arrows, and then select **Get formula suggestions**.
    + a. Select the up and down arrows, and then select **Get formula suggestions**.
    :::image type="content" source="media/formula-suggestions-selector.png" alt-text="Select the formula suggestions selector"::: b. Type your question, such as *what is the Price times Quantity*, in the **Get formula suggestions** box. More information: [Get formula suggestions (preview)](#get-formula-suggestions-preview-1) @@ -483,4 +484,4 @@ This section describes guidelines and the known limitations with formula columns [Microsoft Power Fx overview](/power-platform/power-fx/overview) -[Formula, calculated, and rollup columns using code](../../developer/data-platform/calculated-rollup-attributes.md) +[Specialized columns](../../developer/data-platform/specialized-columns.md) diff --git a/powerapps-docs/maker/data-platform/functions-overview.md b/powerapps-docs/maker/data-platform/functions-overview.md index fdf47eb76c..a169f66852 100644 --- a/powerapps-docs/maker/data-platform/functions-overview.md +++ b/powerapps-docs/maker/data-platform/functions-overview.md @@ -86,6 +86,8 @@ For more information about how to integrate from a canvas app or in a Power Auto |Design time | Makers who have system customizer security role membership or higher level role in the Power Platform environment can access all functions in that environment. Custom security roles can be used to restrict access to functions. | |Run time | When a function is invoked, it accesses the table data involved in the function definition, which includes the tables that are part of the formula in the context of the user who invoked it. | -## Next steps +## Related content + +[Learning path: Work with Power Fx functions](/training/paths/work-powerfx-functions/?WT.mc_id=power-169350) [Create and use functions in Microsoft Dataverse (preview)](functions-create.md) diff --git a/powerapps-docs/maker/data-platform/import-export-data.md b/powerapps-docs/maker/data-platform/import-export-data.md index cb09e5887f..ba366a4b10 100644 --- a/powerapps-docs/maker/data-platform/import-export-data.md +++ b/powerapps-docs/maker/data-platform/import-export-data.md @@ -6,7 +6,7 @@ ms.date: 08/06/2024 ms.reviewer: "Mattp123" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: concept-article applies_to: - "powerapps" author: "olegovanesyan" @@ -96,4 +96,4 @@ Dynamics customers who are targeting SQL Server or Azure SQL Database can use Az [Work with any type of app](work-with-any-type-app.md) -[!INCLUDE[footer-include](../../includes/footer-banner.md)] \ No newline at end of file +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/data-platform/import-translated-entity-field-text.md b/powerapps-docs/maker/data-platform/import-translated-entity-field-text.md index 22e16796c8..14a971eb37 100644 --- a/powerapps-docs/maker/data-platform/import-translated-entity-field-text.md +++ b/powerapps-docs/maker/data-platform/import-translated-entity-field-text.md @@ -6,7 +6,7 @@ ms.date: 06/19/2018 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/import-update-export-solutions.md b/powerapps-docs/maker/data-platform/import-update-export-solutions.md index 89e7a39fd2..cc602a56f3 100644 --- a/powerapps-docs/maker/data-platform/import-update-export-solutions.md +++ b/powerapps-docs/maker/data-platform/import-update-export-solutions.md @@ -4,7 +4,7 @@ description: "Learn how to import a solution in Power Apps" ms.custom: "" ms.date: 12/14/2023 ms.reviewer: "" -ms.topic: "article" +ms.topic: how-to author: "Mattp123" ms.assetid: 56363ea3-ea76-4311-9b7a-b71675e446fb caps.latest.revision: 57 diff --git a/powerapps-docs/maker/data-platform/invoke-custom-actions-workflow-dialog.md b/powerapps-docs/maker/data-platform/invoke-custom-actions-workflow-dialog.md index d465cc03e6..9d5317c1d3 100644 --- a/powerapps-docs/maker/data-platform/invoke-custom-actions-workflow-dialog.md +++ b/powerapps-docs/maker/data-platform/invoke-custom-actions-workflow-dialog.md @@ -7,7 +7,7 @@ ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/limits-tshoot-virtual-tables.md b/powerapps-docs/maker/data-platform/limits-tshoot-virtual-tables.md index 8c830b08e2..ddf24568cf 100644 --- a/powerapps-docs/maker/data-platform/limits-tshoot-virtual-tables.md +++ b/powerapps-docs/maker/data-platform/limits-tshoot-virtual-tables.md @@ -4,7 +4,8 @@ description: Understand the limitations and how to troubleshoot virtual tables. author: NHelgren ms.author: nhelgren ms.service: powerapps -ms.topic: conceptual +ms.subservice: dataverse-maker +ms.topic: troubleshooting-general ms.date: 11/22/2024 ms.custom: template-how-to contributors: diff --git a/powerapps-docs/maker/data-platform/low-code-plug-ins-powerfx.md b/powerapps-docs/maker/data-platform/low-code-plug-ins-powerfx.md index c869da6765..4083ddafe6 100644 --- a/powerapps-docs/maker/data-platform/low-code-plug-ins-powerfx.md +++ b/powerapps-docs/maker/data-platform/low-code-plug-ins-powerfx.md @@ -4,6 +4,7 @@ description: Supported Power Fx expressions for use with Microsoft Dataverse low author: Mattp123 ms.author: matp ms.service: powerapps +ms.subservice: dataverse-maker ms.topic: how-to ms.date: 08/02/2024 ms.custom: template-how-to diff --git a/powerapps-docs/maker/data-platform/low-code-plug-ins-tips.md b/powerapps-docs/maker/data-platform/low-code-plug-ins-tips.md index 9dab0b8f60..17d5539dc2 100644 --- a/powerapps-docs/maker/data-platform/low-code-plug-ins-tips.md +++ b/powerapps-docs/maker/data-platform/low-code-plug-ins-tips.md @@ -4,6 +4,7 @@ description: Describes tips and known issues when working with low-code plug-ins author: Mattp123 ms.author: matp ms.service: powerapps +ms.subservice: dataverse-maker ms.topic: how-to ms.date: 05/06/2024 ms.custom: template-how-to diff --git a/powerapps-docs/maker/data-platform/low-code-plug-ins.md b/powerapps-docs/maker/data-platform/low-code-plug-ins.md index b003c32d77..6eb458f23a 100644 --- a/powerapps-docs/maker/data-platform/low-code-plug-ins.md +++ b/powerapps-docs/maker/data-platform/low-code-plug-ins.md @@ -4,6 +4,7 @@ description: Guide to crafting low-code plug-ins in Microsoft Dataverse author: Mattp123 ms.author: matp ms.service: powerapps +ms.subservice: dataverse-maker ms.topic: how-to ms.date: 11/13/2024 ms.custom: template-how-to diff --git a/powerapps-docs/maker/data-platform/low-code-plugins-copilot-studio.md b/powerapps-docs/maker/data-platform/low-code-plugins-copilot-studio.md index 811adbf8d4..ed2604f232 100644 --- a/powerapps-docs/maker/data-platform/low-code-plugins-copilot-studio.md +++ b/powerapps-docs/maker/data-platform/low-code-plugins-copilot-studio.md @@ -5,9 +5,11 @@ author: mikefactorial ms.author: sriknair ms.reviewer: matp ms.service: powerapps +ms.subservice: dataverse-maker ms.topic: how-to -ms.date: 04/26/2024 -ms.custom: template-how-to +ms.date: 06/23/2025 +ms.update-cycle: 180-days +ms.custom: needs-feature-review ms.collection: bap-ai-copilot --- # Create low-code plug-ins to use with a copilot (preview) diff --git a/powerapps-docs/maker/data-platform/lowcode-plug-ins-examples.md b/powerapps-docs/maker/data-platform/lowcode-plug-ins-examples.md index 16f307594c..b4f069fc5b 100644 --- a/powerapps-docs/maker/data-platform/lowcode-plug-ins-examples.md +++ b/powerapps-docs/maker/data-platform/lowcode-plug-ins-examples.md @@ -4,6 +4,7 @@ description: Examples of Microsoft Dataverse low-code plug-ins author: Mattp123 ms.author: matp ms.service: powerapps +ms.subservice: dataverse-maker ms.topic: how-to ms.date: 11/10/2023 ms.custom: template-how-to diff --git a/powerapps-docs/maker/data-platform/maker-deployment-area.md b/powerapps-docs/maker/data-platform/maker-deployment-area.md index c7854d1759..b54f00dae8 100644 --- a/powerapps-docs/maker/data-platform/maker-deployment-area.md +++ b/powerapps-docs/maker/data-platform/maker-deployment-area.md @@ -1,24 +1,19 @@ --- -title: View solution deployments on the deployment page (preview) +title: View solution deployments on the deployment page description: Learn how to view pipeline deployments on the deployment page. author: asheehi1 ms.author: matp ms.topic: how-to -ms.date: 1/14/2025 +ms.date: 4/29/2025 ms.custom: template-how-to +ms.subservice: dataverse-maker --- -# View solution deployments on the deployment page (preview) +# View solution deployments on the deployment page -[!INCLUDE [production-ready-preview-powerplatform](~/../shared-content/shared/preview-includes/production-ready-preview-powerplatform.md)] - -From the **Solutions** page, makers can navigate to **Deployments** to view all of their solution deployments, across all solutions and pipelines, in one place. If their deployment began from (or was deployed to) the current environment, they are able to view its status and other details. +From the **Solutions** page, makers can navigate to **Deployments** to view all of their solution deployments, across all solutions and pipelines, in one place. If their deployment began from (or was deployed to) the current environment, they're able to view its status and other details. :::image type="content" source="media/maker-deployment-hub.png" alt-text="Screenshot of the deployment page for makers." lightbox="media/maker-deployment-hub.png"::: -> [!IMPORTANT] -> This is a preview feature. -> [!INCLUDE [cc-preview-features-definition](../../includes/cc-preview-features-definition.md)] - ## Get started When you first access the Deployment page, you notice the **Get started** section. This section currently offers several links to relevant documents designed to help makers gain a better understanding of solutions, pipelines, and the in-product Application Lifecycle Management (ALM) process. @@ -35,6 +30,14 @@ On the right of the overview, makers view their ongoing deployments. When makers At the bottom of the overview, makers view their deployment history. This section provides a comprehensive list of all deployments, including the deployment status, the solution, the pipeline, and the environment. Makers can filter this list by solution, pipeline, and environment to quickly find the deployment they're looking for. This run history view is unique. First it's filtered to only show the current user's deployments specifically to and from this environment, and second it's upleveled to show all the current user's deployments, not just involving one solution or pipeline. Selecting a deployment in this grid shows a details panel, summarizing all the deployment information and displaying the deployment notes as well. +### Retry failed deployments + +Deployments shown as **Failed** in the run history view can be deployed by selecting **Retry** in the details panel if the operation was **Deploy**. A confirmation message appears when you confirm the retry. + +## Take action with advisor-powered recommendations + +Actionable recommendations for improving ALM health within your environment is shown in the **Take action** section at the bottom of the Deployment page. These recommendations help ensure that makers are following the best practices to enable healthy ALM within the organization. + ## Why can't I see solution deployments other than those that I initiated? In order to view others' solution deployments, you must have the Deployment Pipeline Administrator security role or equivalent privileges to view other deployments. diff --git a/powerapps-docs/maker/data-platform/map-entity-fields.md b/powerapps-docs/maker/data-platform/map-entity-fields.md index db33cead7c..c4a2e988eb 100644 --- a/powerapps-docs/maker/data-platform/map-entity-fields.md +++ b/powerapps-docs/maker/data-platform/map-entity-fields.md @@ -6,7 +6,7 @@ ms.date: 09/18/2024 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/media/alternate-key-account-number-sic-code.png b/powerapps-docs/maker/data-platform/media/alternate-key-account-number-sic-code.png index 83903dc226..6904c1a98b 100644 Binary files a/powerapps-docs/maker/data-platform/media/alternate-key-account-number-sic-code.png and b/powerapps-docs/maker/data-platform/media/alternate-key-account-number-sic-code.png differ diff --git a/powerapps-docs/maker/data-platform/media/claude-connected-data-platform.png b/powerapps-docs/maker/data-platform/media/claude-connected-data-platform.png new file mode 100644 index 0000000000..51bec19baa Binary files /dev/null and b/powerapps-docs/maker/data-platform/media/claude-connected-data-platform.png differ diff --git a/powerapps-docs/maker/data-platform/media/copilot-studio-mcp.png b/powerapps-docs/maker/data-platform/media/copilot-studio-mcp.png new file mode 100644 index 0000000000..a27ed3c9af Binary files /dev/null and b/powerapps-docs/maker/data-platform/media/copilot-studio-mcp.png differ diff --git a/powerapps-docs/maker/data-platform/media/copy-entire-browser-url.png b/powerapps-docs/maker/data-platform/media/copy-entire-browser-url.png new file mode 100644 index 0000000000..daa895a55e Binary files /dev/null and b/powerapps-docs/maker/data-platform/media/copy-entire-browser-url.png differ diff --git a/powerapps-docs/maker/data-platform/media/data-platform-import-export/import-v2-mapping.png b/powerapps-docs/maker/data-platform/media/data-platform-import-export/import-v2-mapping.png new file mode 100644 index 0000000000..8c959b2d75 Binary files /dev/null and b/powerapps-docs/maker/data-platform/media/data-platform-import-export/import-v2-mapping.png differ diff --git a/powerapps-docs/maker/data-platform/media/data-platform-import-export/import-v2-select-sheet.png b/powerapps-docs/maker/data-platform/media/data-platform-import-export/import-v2-select-sheet.png new file mode 100644 index 0000000000..a352b51369 Binary files /dev/null and b/powerapps-docs/maker/data-platform/media/data-platform-import-export/import-v2-select-sheet.png differ diff --git a/powerapps-docs/maker/data-platform/media/data-platform-mcp/data-platform-connector.png b/powerapps-docs/maker/data-platform/media/data-platform-mcp/data-platform-connector.png new file mode 100644 index 0000000000..68230a278f Binary files /dev/null and b/powerapps-docs/maker/data-platform/media/data-platform-mcp/data-platform-connector.png differ diff --git a/powerapps-docs/maker/data-platform/media/data-platform-mcp/dataverse-mcp-server-action.png b/powerapps-docs/maker/data-platform/media/data-platform-mcp/dataverse-mcp-server-action.png new file mode 100644 index 0000000000..6d92407b5c Binary files /dev/null and b/powerapps-docs/maker/data-platform/media/data-platform-mcp/dataverse-mcp-server-action.png differ diff --git a/powerapps-docs/maker/data-platform/media/enable-custom-help-panes.png b/powerapps-docs/maker/data-platform/media/enable-custom-help-panes.png deleted file mode 100644 index 567cc474f6..0000000000 Binary files a/powerapps-docs/maker/data-platform/media/enable-custom-help-panes.png and /dev/null differ diff --git a/powerapps-docs/maker/data-platform/media/env-var-secret8.png b/powerapps-docs/maker/data-platform/media/env-var-secret8.png index 053efd9987..8770dab37e 100644 Binary files a/powerapps-docs/maker/data-platform/media/env-var-secret8.png and b/powerapps-docs/maker/data-platform/media/env-var-secret8.png differ diff --git a/powerapps-docs/maker/data-platform/media/mcp-dataverse-json.png b/powerapps-docs/maker/data-platform/media/mcp-dataverse-json.png new file mode 100644 index 0000000000..f0bd1a9a02 Binary files /dev/null and b/powerapps-docs/maker/data-platform/media/mcp-dataverse-json.png differ diff --git a/powerapps-docs/maker/data-platform/media/mcp-edit-vsc.png b/powerapps-docs/maker/data-platform/media/mcp-edit-vsc.png new file mode 100644 index 0000000000..33856812b4 Binary files /dev/null and b/powerapps-docs/maker/data-platform/media/mcp-edit-vsc.png differ diff --git a/powerapps-docs/maker/data-platform/media/mcp-server-running.png b/powerapps-docs/maker/data-platform/media/mcp-server-running.png new file mode 100644 index 0000000000..c289753f71 Binary files /dev/null and b/powerapps-docs/maker/data-platform/media/mcp-server-running.png differ diff --git a/powerapps-docs/maker/data-platform/media/power-automate-connector.png b/powerapps-docs/maker/data-platform/media/power-automate-connector.png new file mode 100644 index 0000000000..b10d218aab Binary files /dev/null and b/powerapps-docs/maker/data-platform/media/power-automate-connector.png differ diff --git a/powerapps-docs/maker/data-platform/media/prompt-columns/prompt-column-add-columns.png b/powerapps-docs/maker/data-platform/media/prompt-columns/prompt-column-add-columns.png new file mode 100644 index 0000000000..cdca975968 Binary files /dev/null and b/powerapps-docs/maker/data-platform/media/prompt-columns/prompt-column-add-columns.png differ diff --git a/powerapps-docs/maker/data-platform/media/prompt-columns/prompt-column-clear-prompt.png b/powerapps-docs/maker/data-platform/media/prompt-columns/prompt-column-clear-prompt.png new file mode 100644 index 0000000000..b60443f902 Binary files /dev/null and b/powerapps-docs/maker/data-platform/media/prompt-columns/prompt-column-clear-prompt.png differ diff --git a/powerapps-docs/maker/data-platform/media/prompt-columns/prompt-column-filter-attribute.png b/powerapps-docs/maker/data-platform/media/prompt-columns/prompt-column-filter-attribute.png new file mode 100644 index 0000000000..3197bcf1f6 Binary files /dev/null and b/powerapps-docs/maker/data-platform/media/prompt-columns/prompt-column-filter-attribute.png differ diff --git a/powerapps-docs/maker/data-platform/media/prompt-columns/prompt-column-knowledge.png b/powerapps-docs/maker/data-platform/media/prompt-columns/prompt-column-knowledge.png new file mode 100644 index 0000000000..49a427305a Binary files /dev/null and b/powerapps-docs/maker/data-platform/media/prompt-columns/prompt-column-knowledge.png differ diff --git a/powerapps-docs/maker/data-platform/media/refresh-automatically.png b/powerapps-docs/maker/data-platform/media/refresh-automatically.png index df48c4457e..373c8b90f1 100644 Binary files a/powerapps-docs/maker/data-platform/media/refresh-automatically.png and b/powerapps-docs/maker/data-platform/media/refresh-automatically.png differ diff --git a/powerapps-docs/maker/data-platform/media/solution-checker-enable-application-user-form.png b/powerapps-docs/maker/data-platform/media/solution-checker-enable-application-user-form.png deleted file mode 100644 index d7a86e925f..0000000000 Binary files a/powerapps-docs/maker/data-platform/media/solution-checker-enable-application-user-form.png and /dev/null differ diff --git a/powerapps-docs/maker/data-platform/media/solution-checker-enable-application-user-view.png b/powerapps-docs/maker/data-platform/media/solution-checker-enable-application-user-view.png deleted file mode 100644 index 759dce86e3..0000000000 Binary files a/powerapps-docs/maker/data-platform/media/solution-checker-enable-application-user-view.png and /dev/null differ diff --git a/powerapps-docs/maker/data-platform/media/solution-checker-instance-disable-admin-mode.png b/powerapps-docs/maker/data-platform/media/solution-checker-instance-disable-admin-mode.png index db5d59d5f3..2daeb8cc7e 100644 Binary files a/powerapps-docs/maker/data-platform/media/solution-checker-instance-disable-admin-mode.png and b/powerapps-docs/maker/data-platform/media/solution-checker-instance-disable-admin-mode.png differ diff --git a/powerapps-docs/maker/data-platform/media/synapse-workspace-network-settings.png b/powerapps-docs/maker/data-platform/media/synapse-workspace-network-settings.png index 1a9f34c62b..dfe485ea6b 100644 Binary files a/powerapps-docs/maker/data-platform/media/synapse-workspace-network-settings.png and b/powerapps-docs/maker/data-platform/media/synapse-workspace-network-settings.png differ diff --git a/powerapps-docs/maker/data-platform/migrate-access-datatypes.md b/powerapps-docs/maker/data-platform/migrate-access-datatypes.md index fcb87ec08b..e3b15eba19 100644 --- a/powerapps-docs/maker/data-platform/migrate-access-datatypes.md +++ b/powerapps-docs/maker/data-platform/migrate-access-datatypes.md @@ -2,7 +2,7 @@ title: Data types and sizes for Access data migration to Dataverse | Microsoft Docs description: Data types and sizes supported for Microsoft Access data migration to Microsoft Dataverse author: NHelgren -ms.topic: conceptual +ms.topic: article ms.custom: - model ms.reviewer: matp diff --git a/powerapps-docs/maker/data-platform/monitor-manage-processes.md b/powerapps-docs/maker/data-platform/monitor-manage-processes.md index e04eb4b33e..090a551b4e 100644 --- a/powerapps-docs/maker/data-platform/monitor-manage-processes.md +++ b/powerapps-docs/maker/data-platform/monitor-manage-processes.md @@ -6,7 +6,7 @@ ms.date: 05/14/2024 ms.reviewer: "matp" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/object-checker.md b/powerapps-docs/maker/data-platform/object-checker.md index b52a6c1112..8a8ef73593 100644 --- a/powerapps-docs/maker/data-platform/object-checker.md +++ b/powerapps-docs/maker/data-platform/object-checker.md @@ -7,6 +7,7 @@ ms.author: caburk ms.reviewer: matp ms.date: 11/13/2024 ms.topic: how-to +ms.subservice: dataverse-maker search.audienceType: - maker --- diff --git a/powerapps-docs/maker/data-platform/preferred-solution.md b/powerapps-docs/maker/data-platform/preferred-solution.md index e7b7acb11e..55d021dc1d 100644 --- a/powerapps-docs/maker/data-platform/preferred-solution.md +++ b/powerapps-docs/maker/data-platform/preferred-solution.md @@ -1,8 +1,8 @@ --- title: "Set a preferred solution | MicrosoftDocs" description: "Set your preferred solution in Power Apps." -ms.date: 11/13/2024 -ms.topic: conceptual +ms.date: 04/09/2025 +ms.topic: how-to author: Mattp123 ms.subservice: dataverse-maker ms.author: matp @@ -16,14 +16,20 @@ ms.custom: --- # Set the preferred solution -By default, unless already in the context of an unmanaged solution, all solution components are stored in the solution named Common Data Services Default Solution. Because there's no separation of components between makers and the Common Data Services Default Solution can't be exported for import to other environments, this typically isn't the best model. +By default, unless you're already in the context of an unmanaged solution when you create an object, all solution objects are stored in the solution named Common Data Services Default Solution. For most situations, you don't want to create your solution objects in either of the two Dataverse system solutions, which are the Common Data Services Solution and the Default Solution. This article explains why using the system solutions is discouraged and provides step-by-step instructions to set and manage your preferred solution. -Using preferred solutions is a way to set which solution will support each maker's edits that happen anywhere in Power Apps. It enables makers to view and update which solution they're using. After you set your preferred solution, you can create components in the solution you specify and those components will automatically be in that solution so that you control the components within the solution. Then, you can export your preferred solution and import the solution to other Microsoft Dataverse environments. +## Why not create your objects in the system solutions? + +There are a few reasons you *shouldn't* create your solution objects in either the Common Data Services Solution and the Default Solution: + +- There's no control over the separation of solution objects between makers. All objects can be viewed from the Default Solution and the Common Data Services Solution is the default solution so other makers can and likely are using it. +- The Default Solution can't be exported for import to other environments. +- You can't change the solution publisher for the Default Solution. Additionally, since the solutions already exist, you can't change the solution publisher prefix for either system solutions. More information: [Solution publisher](create-solution.md#solution-publisher) + +Using preferred solutions is a way to determine which solutions contain each maker's edits that occur in Power Apps. Setting the preferred solution enables makers to view and update which solution they're using. After you set your preferred solution, you can create objects in the solution you specify and those objects will automatically be in that solution so that you control the objects within the solution. Then, you can export your preferred solution and import the solution to other Microsoft Dataverse environments. > [!NOTE] -> -> - When your preferred solution isn't set, by default, the **Common Data Services Default Solution** is your preferred solution. If **Common Data Services Default Solution** isn't available, the solution named **Default Solution** is used as your preferred solution. You can change this to your desired solution by following the steps in this article. For more information about the **Common Data Services Default Solution** and **Default Solution**, go to [Default solutions](solutions-overview.md#default-solutions). -> - The environment setting to enable or disable this feature is no longer available now that preferred solution is generally available. +> When your preferred solution isn't set, by default, the **Common Data Services Default Solution** is your preferred solution. If **Common Data Services Default Solution** isn't available, the solution named **Default Solution** is used as your preferred solution. You can change this to your desired solution by following the steps in this article. For more information about the **Common Data Services Default Solution** and **Default Solution**, go to [Default solutions](solutions-overview.md#default-solutions). ## Prerequisites @@ -44,7 +50,7 @@ Once your preferred solution is set, notice the **preferred solution** indicator You can delete your preferred solution or a preferred solution that other makers have also set as their preferred solution. > [!WARNING] -> When you delete a preferred solution you receive a warning that includes the fallback default solution and the number of other makers who are using the same solution. Delete an active solution only when you're sure it won't impact your work or the work of other makers. +> When you delete a preferred solution, you receive a warning that includes the fallback default solution and the number of other makers who are using the same solution. Delete an active solution only when you're sure it won't impact your work or the work of other makers. > > :::image type="content" source="media/delete-preferred-solution.png" alt-text="Delete a preferred solution warning"::: @@ -52,7 +58,7 @@ You can delete your preferred solution or a preferred solution that other makers - You can't set or view the preferred solution in the classic solution explorer. - Components that are created in the classic solution explorer won't go into the preferred solution. -- Preferred solution currently doesn't work with Dataverse for Teams,cards, dataflows, AI Builder, chatbots, connections, gateways, custom connectors, Power Automate flows (limited), and canvas apps created from image or a Figma design. +- Preferred solution currently doesn't work with Dataverse for Teams, cards, dataflows, AI Builder, chatbots, connections, gateways, custom connectors, Power Automate flows (limited), and canvas apps created from image or a Figma design. - When a component is already part of an existing unmanaged solution, it will still be added to the preferred solution. ## See also diff --git a/powerapps-docs/maker/data-platform/prompt-column.md b/powerapps-docs/maker/data-platform/prompt-column.md new file mode 100644 index 0000000000..57902999b8 --- /dev/null +++ b/powerapps-docs/maker/data-platform/prompt-column.md @@ -0,0 +1,114 @@ +--- +title: "Prompt columns in Microsoft Dataverse" +description: "Understand how to create, manage, and use prompt columns with Power Apps and Dataverse." +keywords: "" +ms.date: 07/10/2025 +ms.custom: +ms.topic: article +applies_to: + - "Dynamics 365 (online)" + - "Dynamics 365 Version 9.x" + - "powerapps" +author: "paulliew" +ms.subservice: dataverse-maker +ms.author: paulliew +ms.reviewer: Mattp123 +ms.collection: bap-ai-copilot +search.audienceType: + - maker +--- +# Prompt columns (preview) + +[!INCLUDE [preview-banner](~/../shared-content/shared/preview-includes/preview-banner.md)] + +A prompt column is an AI-powered data type in Microsoft Dataverse that enables you to define natural language prompts tied to other columns in your table. The AI model processes these prompts to generate relevant responses based on specified input columns. The result is immediately stored in the prompt column, ready to be used in apps, workflows, or reports. + +The key function is that the prompt column contains generative AI results stored in the table persistently. This is how customer data is enriched using generative AI and brings value to their data. + +Example use cases: + +- Customer support: Automate responses to frequently asked questions by using AI prompts to generate accurate and timely replies based on customer inquiries stored in Dataverse. +- Content creation: Use prompts to assist in writing articles, reports, or marketing materials by generating text that aligns with the input provided. +- Data analysis: Use AI prompts to analyze complex datasets and generate insights, sentiments, extract, and classify contents or summaries that help in making informed decisions. +- Workflow automation: Integrate AI prompts into business workflows to automatically do tasks such as scheduling, reporting, and data entry. + +[!INCLUDE [preview-banner](~/../shared-content/shared/preview-includes/preview-note-pp.md)] + +## Prerequisites + +- Prompt columns use the same licensing model as AI builder prompts. More information: [Prompts overview](/ai-builder/prompts-overview#prerequisites) +- Copilot and AI Prompts features turned On in the Features area for the environment settings. More information: [Manage feature settings](/power-platform/admin/settings-features?tabs=new#copilot-preview) + +## Create a prompt column + +1. Go to [Power Apps](https://make.powerapps.com/). Select **Tables** on the left navigation pane. +1. Create a new table or open an existing table. More information: [Create a table](create-edit-entities-portal.md#create-a-table) +1. On the **Tables** page, select **New** > **Column**. +1. On the column properties page, enter a **Display name** and **Description** for your column. +1. Under the **Data type** dropdown list, select **Prompt**. +1. Clear the **Allow form fill assistance** checkbox. +1. Select **+Add new prompt**. You can create up to five prompt columns per table. +1. On the prompt column page, create a prompt. More information: [How to write an AI prompt for a prompt column](#how-to-write-an-ai-prompt-for-a-prompt-column) +1. Select **Save** on the prompt page. +1. Select **Save** on the column properties page to save your column. + +## How to write an AI prompt for a prompt column + +Crafting effective AI prompts is crucial for getting accurate and relevant responses from the AI model. You can use the prefilled prompt or write your own custom prompt. + +To clear the prefilled prompt, highlight and delete it, or select the three dots to the left of **Model**, then select **Clear prompt**. + +:::image type="content" source="media/prompt-columns/prompt-column-clear-prompt.png" alt-text="Clear prompt UI"::: + +## Write effective prompts + +Here are some best practices for writing prompts: + +- Write clear instructions. Ensure that your prompts are clear and specific. Avoid ambiguity by being precise about what you want the AI to do. For example, instead of writing *Tell me about the weather*, write *Provide a summary of today's weather in Paris*. +- Use structured language. Structured language helps the AI model understand the context and intent of the prompt better. For example, *Generate a list of top 10 marketing strategies for 2025* is more effective than *Top marketing strategies*. +- Include contextual information. Provide necessary context within the prompt to help the AI model generate more accurate responses. For example, *Based on the sales data from Q1, suggest ways to improve our marketing campaign*. Add an input column in each prompt. + +## Add input columns + +1. Replace default input text by selecting it and then select **Delete**. +1. Select **+Add content**, and then select the table. +1. The column dropdown list appears. Select the input column from the list of columns from your table, and then select **Add**. In this example, the *Customer feedback* column is selected. + :::image type="content" source="media/prompt-columns/prompt-column-add-columns.png" alt-text="Add an input column"::: + + - You can use more than one input column in each prompt. + - Input columns can’t be formula columns, file columns, image data type, or another prompt column. If you select these data types, their input value is ignored. + +1. Select **Save**. + +## Test and refine prompts + +Test your AI prompt. Create a test record with appropriate values in all your input columns for testing. For example, create a *Name* column in the table and enter some value that is used to identify the test record, such as *testing prompts*. + +1. Create or select a prompt column. +1. While editing the prompt in a prompt column, select the input column to open the **Filter knowledge** pop-up screen. +1. Select the **Filter attribute** option. + :::image type="content" source="media/prompt-columns/prompt-column-filter-attribute.png" alt-text="Filter attribute option"::: +1. Select the **Filter attribute** dropdown list and select a filter, such as *Name*. +1. Enter the value of your testing record **Name**, such as *testing prompt*. +1. Select **Close**. +1. Select **Test** and review the **Model response**. +1. Select the **Knowledge used** tab to confirm that the input came from your test record. + :::image type="content" source="media/prompt-columns/prompt-column-knowledge.png" alt-text="Knowledge used in prompt column" lightbox="media/prompt-columns/prompt-column-knowledge.png"::: +1. Modify your prompt until you get the desired results. +1. Return to the **Filter knowledge** pop-up and select **No filter** when your prompt changes are done. +1. Select **Save** to update your prompt column. + +## View prompt column results + +Create a model-driven app to view and validate your prompt column results. + +1. Go to [Power Apps](https://make.powerapps.com/), and then open an app for editing or create a new app. More information: [Create a model-driven app](../model-driven-apps/create-model-driven-app.md) +1. In the app designer, select **Edit form** to edit the table form for the table that has the prompt columns. +1. The form designer opens. Select all the input and prompt columns you want to add to the form. +1. Select **Save and publish**. +1. Go to the **Tables** area in Power Apps and select **Views**. +1. Observe the values in the records including new records that contain prompt column values. + +## Related articles + +For information about how the AI is used with this feature, go to [FAQ for prompts and text generation capabilities](/ai-builder/faqs-text-generation) \ No newline at end of file diff --git a/powerapps-docs/maker/data-platform/query-visualize-hierarchical-data.md b/powerapps-docs/maker/data-platform/query-visualize-hierarchical-data.md index 3a8782e3e0..3d8a2bc923 100644 --- a/powerapps-docs/maker/data-platform/query-visualize-hierarchical-data.md +++ b/powerapps-docs/maker/data-platform/query-visualize-hierarchical-data.md @@ -6,7 +6,7 @@ ms.date: 06/20/2018 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/set-managed-properties-for-field.md b/powerapps-docs/maker/data-platform/set-managed-properties-for-field.md index c50a3f9e08..301b435216 100644 --- a/powerapps-docs/maker/data-platform/set-managed-properties-for-field.md +++ b/powerapps-docs/maker/data-platform/set-managed-properties-for-field.md @@ -1,12 +1,12 @@ --- -title: "Set managed properties for columns in Power Apps | MicrosoftDocs" -description: "Learn how to set managed properties for a column" +title: "Set managed properties for columns in Power Apps" +description: "Learn how to set managed properties for a column in Microsoft Dataverse." ms.custom: "" -ms.date: 11/13/2024 +ms.date: 04/10/2025 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" @@ -22,20 +22,19 @@ search.audienceType: --- # Set managed properties for columns -Managed properties only apply when you include columns in a managed solution and import the solution into another environment. These settings allow a solution maker to have some control over the level of customization that people who install their managed solution can have when they customize this column. +Managed properties only apply when you export columns in a managed solution and import the solution into another environment. These settings allow a solution maker to have some control over the level of customization that people who install their managed solution can have when they customize this column. To view and set managed properties for a column, follow these steps: 1. Sign into [Power Apps](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc) and select **Solutions** from the left navigation. [!INCLUDE [left-navigation-pane](../../includes/left-navigation-pane.md)] -1. Open the solution, and then on the command bar select **Switch to classic**. -1. Expand **Entities**, expand the table you want, and then select **Fields**. +1. Open the solution, open the table you want, and then open the **Columns** area. 1. Select the column you want. -1. On the command bar select **More Actions**, and then select **Managed Properties**. +1. On the command bar select **More Actions**, and then select **Managed properties**. 1. Select the [managed properties options](#managed-properties-options) you want, and then select **Set**. ## Managed properties options -The **Can be customized** option controls all the other options. If this option is `False`, none of the other settings apply. When it is `True`, you can specify the other customization options. +The **Allow customizations** option controls all the other options. If this option is `False`, none of the other settings apply. When it is `True`, you can specify the other customization options. If the column is customizable, you set the following options to `True` or `False`. @@ -43,9 +42,9 @@ The **Can be customized** option controls all the other options. If this option - **Can change requirement level** -- **Can change Additional Properties** +- **Can change additional properties** -These options are self-explanatory. If you set all the individual options to `False`, you might as well set **Can be customized** to `False`. +These options are self-explanatory. If you set all the individual options to `False`, you might as well set **Allow customizations** to `False`. ## Next steps diff --git a/powerapps-docs/maker/data-platform/set-managed-properties-relationships.md b/powerapps-docs/maker/data-platform/set-managed-properties-relationships.md index 80479bd47e..3632d1d925 100644 --- a/powerapps-docs/maker/data-platform/set-managed-properties-relationships.md +++ b/powerapps-docs/maker/data-platform/set-managed-properties-relationships.md @@ -6,7 +6,7 @@ ms.date: 09/19/2024 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/setup-virtual-table-relationships.md b/powerapps-docs/maker/data-platform/setup-virtual-table-relationships.md index 39f0d18237..28a84571cf 100644 --- a/powerapps-docs/maker/data-platform/setup-virtual-table-relationships.md +++ b/powerapps-docs/maker/data-platform/setup-virtual-table-relationships.md @@ -4,7 +4,8 @@ description: Learn how to define relationships when using virtual tables. author: NHelgren ms.author: nhelgren ms.service: powerapps -ms.topic: conceptual +ms.subservice: dataverse-maker +ms.topic: how-to ms.date: 01/04/2023 ms.custom: template-concept --- @@ -61,4 +62,4 @@ be added to forms and views to see all associated accounts for each of the servi ## Next steps -[Create virtual tables using the virtual connector provider (preview)](create-virtual-tables-using-connectors.md) \ No newline at end of file +[Create virtual tables using the virtual connector provider (preview)](create-virtual-tables-using-connectors.md) diff --git a/powerapps-docs/maker/data-platform/sharepoint-onedrive-onenote-intro.md b/powerapps-docs/maker/data-platform/sharepoint-onedrive-onenote-intro.md index 1328fb86a9..9a6d395608 100644 --- a/powerapps-docs/maker/data-platform/sharepoint-onedrive-onenote-intro.md +++ b/powerapps-docs/maker/data-platform/sharepoint-onedrive-onenote-intro.md @@ -5,7 +5,7 @@ ms.collection: get-started author: Mattp123 ms.component: cds -ms.topic: conceptual +ms.topic: article ms.date: 08/02/2019 ms.subservice: dataverse-maker ms.author: matp diff --git a/powerapps-docs/maker/data-platform/solution-history.md b/powerapps-docs/maker/data-platform/solution-history.md index fa10f991e0..0844d3275d 100644 --- a/powerapps-docs/maker/data-platform/solution-history.md +++ b/powerapps-docs/maker/data-platform/solution-history.md @@ -4,7 +4,7 @@ description: "Learn how to view the history of a solution" keywords: ms.date: 07/16/2024 ms.custom: -ms.topic: article +ms.topic: how-to ms.assetid: author: Mattp123 ms.subservice: dataverse-maker diff --git a/powerapps-docs/maker/data-platform/solutions-overview.md b/powerapps-docs/maker/data-platform/solutions-overview.md index 652122b081..11441027cf 100644 --- a/powerapps-docs/maker/data-platform/solutions-overview.md +++ b/powerapps-docs/maker/data-platform/solutions-overview.md @@ -1,14 +1,14 @@ --- title: Solutions in Power Apps description: Provides an overview of solutions in Power Apps -ms.date: 06/05/2024 +ms.date: 05/29/2025 ms.reviewer: matp ms.topic: overview -author: "shmcarth" +author: "Mattp123" ms.assetid: ece68f5f-ad40-4bfa-975a-3e5bafb854aa caps.latest.revision: 55 ms.subservice: dataverse-maker -ms.author: "matp" +ms.author: "caburk" search.audienceType: - maker contributors: v-aangie @@ -57,25 +57,29 @@ More information: [Managed properties in the Power Platform](/power-platform/alm Within Power Apps, you can view a list of solutions by selecting **Solutions** in the left navigation. You can perform these solution tasks: - **New solution**: To locate and work with just the components you’ve customized, create a solution and do all your customization there. Then, you can easily distribute your solution to other environments. More information: [Create a solution](create-solution.md) -- **Import**: Import a solution into your environment. More information: [Import solutions](import-update-export-solutions.md) +- **Import solution**: Import a solution into your environment. More information: [Import solutions](import-update-export-solutions.md) - **Open AppSource**: [Microsoft AppSource](https://appsource.microsoft.com/) is where you can go to get solutions tailored to your industry that work with the products you already use. - **Publish all customizations**: Publish all active customizations in your environment. - **Set preferred solution**: Set your [preferred solution](preferred-solution.md) where all solution components are created in. -- **Switch to classic**: Open the classic solution explorer. - **See history**: View details about solution operations over time, such as import, export, and uninstall. More information: [View the history of a solution](solution-history.md) -- **Solution checker**: Run or review results of [solution checker](use-powerapps-checker.md) for this solution. -- **Show dependencies**: [View solution dependencies](view-component-dependencies.md) for solutions that would block uninstall of this solution. -- **Apply Upgrade**: [Apply a pending upgrade](update-solutions.md#apply-the-upgrade-or-update-in-the-target-environment) that has been initiated for a managed solution. - -Tasks available with no solution selected include: New solution, Import solution, Open AppSource, Publish all customizations, Set preferred solution. +- **Connect to Git**: Source control integration allows development teams to sync solutions and solution objects across one or more Dataverse environments using an Azure DevOps Git repository. More information: [Overview of Git integration in Power Platform](/power-platform/alm/git-integration/overview) +- **Switch to classic**: Open the classic solution explorer. -:::image type="content" source="media/solutions-area-tasks.png" alt-text="Commands available when a solution isn't selected." lightbox="media/solutions-area-tasks.png"::: +When you select a solution, additional tasks become available on the command bar. These tasks include: -Tasks available with a solution selected include: New solution, Edit, Delete, Export solution, Solution checker, Show dependencies, Set preferred solution, See history, Clone, Apply Upgrade (when upgrade is available). - -:::image type="content" source="media/solutions-area-tasks-selected.png" alt-text="Commands available when solution is selected." lightbox="media/solutions-area-tasks-selected.png"::: +- **Edit**: Edit the solution properties, such as adding or removing solution components. +- **Delete**. Delete the selected solution. +- **Create a plan**. Use Plan designer to create a plan for your existing solution. Plan designer generates a detailed document that describes your solution. The plan covers the business problem, user requirements like user roles and stories, the data model, and technologies like apps. This feature saves time when you're trying to understand a solution's content and helps makers improve an existing solution. More information: [Create a plan from a solution](../plan-designer/create-plan-from-solution.md) +- **Export solution**: Export the solution to a file that can be imported into another environment. More information: [Export solutions](export-solutions.md) +- **Deploy**. Use pipelines in Power Platform to deploy solutions to test and production environments. More information: [Overview of pipelines in Power Platform](/power-platform/alm/pipelines) +- **Solution checker**: Run or review results of [solution checker](use-powerapps-checker.md) for this solution. +- **Show dependencies**: View the solution components that have a dependency on another component. More information: [View solution dependencies](view-component-dependencies.md) for solutions that would block uninstall of this solution. +- **Set preferred solution**. Use the selected solution as your preferred solution. The preferred solution is where, if not already working in the context of a solution, all your solution components are maintained. More information: [Preferred solution](preferred-solution.md) +- **See history**. View details about solution operations over time, such as import, export, and uninstall. More information: [View the history of a solution](solution-history.md) +- **Publish to Catalog**: Publishes the solution to the catalog, making it available for other makers in your organization to use. This is useful for sharing solutions that you want others to be able to import and use in their environments. More information: [Catalog in Power Platform](catalog-overview.md) +- **Apply Upgrade**: Appears when you select a solution. [Apply a pending upgrade](update-solutions.md#apply-the-upgrade-or-update-in-the-target-environment) that has been initiated for a managed solution. -From the **Solutions** area, select a solution to view all of its objects. +From the **Solutions** area, open a solution to view all of its objects. :::image type="content" source="media/solution-all-items-list.png" alt-text="Example solution with all objects."::: diff --git a/powerapps-docs/maker/data-platform/submit-acquire-from-catalog.md b/powerapps-docs/maker/data-platform/submit-acquire-from-catalog.md index c4bee9a4bf..62bcbd1583 100644 --- a/powerapps-docs/maker/data-platform/submit-acquire-from-catalog.md +++ b/powerapps-docs/maker/data-platform/submit-acquire-from-catalog.md @@ -6,7 +6,7 @@ ms.author: yonai ms.date: 11/14/2024 ms.reviewer: matp ms.topic: how-to -ms.subservice: common +ms.subservice: dataverse-maker search.audienceType: - maker --- diff --git a/powerapps-docs/maker/data-platform/table-solution-objects.md b/powerapps-docs/maker/data-platform/table-solution-objects.md index e6f33056f4..f7fa98ac84 100644 --- a/powerapps-docs/maker/data-platform/table-solution-objects.md +++ b/powerapps-docs/maker/data-platform/table-solution-objects.md @@ -4,7 +4,7 @@ description: "Learn about tables in Dataverse that represent the structure and i ms.custom: "" ms.date: 05/18/2022 ms.reviewer: "matp" -ms.topic: "conceptual" +ms.topic: article author: "si-matthews" ms.subservice: dataverse-maker ms.author: "simatthe" diff --git a/powerapps-docs/maker/data-platform/translate-entity-label-text.md b/powerapps-docs/maker/data-platform/translate-entity-label-text.md index 57b545bab3..3951604830 100644 --- a/powerapps-docs/maker/data-platform/translate-entity-label-text.md +++ b/powerapps-docs/maker/data-platform/translate-entity-label-text.md @@ -7,7 +7,7 @@ ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/types-of-fields.md b/powerapps-docs/maker/data-platform/types-of-fields.md index 9da7af8991..399c4f7d18 100644 --- a/powerapps-docs/maker/data-platform/types-of-fields.md +++ b/powerapps-docs/maker/data-platform/types-of-fields.md @@ -1,12 +1,13 @@ --- title: "Column data types in Microsoft Dataverse | MicrosoftDocs" description: "Understand the different column data types available for your app" -ms.date: 01/06/2025 +ms.date: 07/11/2025 ms.topic: article author: "Mattp123" ms.subservice: dataverse-maker ms.author: matp ms.reviewer: matp +ms.collection: bap-ai-copilot search.audienceType: - maker --- @@ -84,6 +85,8 @@ There are three basic text column types. All values indicated here are in number |Text Area | 100 | 4000 | Accepts multiple lines of text. The number of rows displayed for the column can be configured. Use for smaller amounts of text. | |Multiline Text | 150 | 1048576 | Accepts multiple lines of text. The number of rows displayed for the column can be configured. Use when large amounts of text are needed. | +If you reduce the maximum number of characters for the column, existing data won't be truncated. The limit applies to new rows. + ## Choices You can customize forms (main, quick create, and quick view) and email templates by adding multi-select columns that are called **Choices**. When you add a choices column, you can specify multiple values that are available for users to select. When users fill out the form they can select one, multiple, or all the values displayed in a drop-down list. @@ -254,6 +257,10 @@ To create a file column, on the left pane in Power Apps select **Solutions**, op Built on Power Fx, use a formula column to perform operations that return values during fetch operations. Formula columns use the Power Fx syntax that's similar to Office Excel. More information: [Work with formula columns (preview)](formula-columns.md) +## Prompt columns + +Prompt columns allow AI prompts to be defined and the generative AI results are stored in the table column. More information: [Prompt columns](prompt-column.md) + ## Searching and sorting columns Most columns have options to enable searching or sorting of the column's contents. diff --git a/powerapps-docs/maker/data-platform/update-solutions.md b/powerapps-docs/maker/data-platform/update-solutions.md index 30d0c0bef9..a194376ca8 100644 --- a/powerapps-docs/maker/data-platform/update-solutions.md +++ b/powerapps-docs/maker/data-platform/update-solutions.md @@ -6,7 +6,7 @@ ms.date: 08/30/2023 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: upgrade-and-migration-article applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/update-translated-text.md b/powerapps-docs/maker/data-platform/update-translated-text.md index 2031a595f7..ef7a562c44 100644 --- a/powerapps-docs/maker/data-platform/update-translated-text.md +++ b/powerapps-docs/maker/data-platform/update-translated-text.md @@ -6,7 +6,7 @@ ms.date: 10/09/2023 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/use-powerapps-checker.md b/powerapps-docs/maker/data-platform/use-powerapps-checker.md index fba5347726..1a99dc7200 100644 --- a/powerapps-docs/maker/data-platform/use-powerapps-checker.md +++ b/powerapps-docs/maker/data-platform/use-powerapps-checker.md @@ -3,8 +3,8 @@ title: Improve component performance, stability, and reliability with solution c description: Use solution checker to analyze Microsoft Dataverse customizations to enhance user experience. author: Mattp123 ms.component: cds -ms.topic: article -ms.date: 07/30/2024 +ms.topic: how-to +ms.date: 06/18/2025 ms.subservice: dataverse-maker ms.author: matp ai-usage: ai-assisted @@ -184,6 +184,17 @@ The following table lists the component type, rule description, severity, and ca | Canvas App | [app-include-accessible-label](https://www.w3.org/WAI/tutorials/forms/labels/) | Use explicit labels to improve app accessibility. | Medium | Accessibility | | Canvas App | [app-include-alternative-input](https://www.w3.org/WAI/tips/developing/#ensure-that-all-interactive-elements-are-keyboard-accessible) | Ensure all interactive elements are accessible to alternative inputs. | Medium | Accessibility | | Canvas App | [app-avoid-autostart](https://digital.gov/2014/06/30/508-accessible-videos-use-a-508-compliant-video-player/) | Avoid using autostart on players within an app. | Medium | Accessibility | +| Desktop flow | [desktopflow-avoid-unsafe-password](/power-automate/desktop-flows/static-analysis#unsafe-password-security) | Passwords are managed insecurely in the flow. | High | Security | +| Desktop flow | [desktopflow-avoid-subflow-recursion](/power-automate/desktop-flows/static-analysis#recursion-between-two-subflows) | Recursive calls detected between subflows, potentially causing an infinite loop. | Medium | Design | +| Desktop flow | [desktopflow-avoid-infinite-loop](/power-automate/desktop-flows/static-analysis#infinite-loop) | Infinite loop detected in the flow, potentially causing it to run indefinitely. | Medium | Design | +| Desktop flow | [desktopflow-avoid-incomplete-if-branch](/power-automate/desktop-flows/static-analysis#incomplete-if) | Incomplete If action detected, lacking content or only containing actions in the Else branch. | Low | Design | +| Desktop flow | [desktopflow-avoid-excessive-nested-ifs](/power-automate/desktop-flows/static-analysis#nested-if-clauses) | Nested If clauses exceed five levels. | Low | Maintainability | +| Desktop flow | [desktopflow-avoid-empty-on-error-block](/power-automate/desktop-flows/static-analysis#empty-on-block-error-action) | "On block error" action is empty and not handling errors. | Low | Design | +| Desktop flow | [desktopflow-limit-argument-count](/power-automate/desktop-flows/static-analysis#threshold-on-number-of-input-and-output-variables) | Total input/output variables exceed the 25-variable limit. | Low | Maintainability | +| Desktop flow | [desktopflow-input-argument-default-value](/power-automate/desktop-flows/static-analysis#input-variable-default-values) | Input/output variables aren't using default values. | Low | Maintainability | +| Desktop flow | [desktopflow-limit-variable-name-length](/power-automate/desktop-flows/static-analysis#variable-length-exceeded) | Variable name exceeds the 25-character limit. | Low | Maintainability | +| Desktop flow | [desktopflow-avoid-excessive-wait-actions](/power-automate/desktop-flows/static-analysis#misuse-of-wait-actions) | Misuse of wait actions detected, with more than 10 wait actions causing potential bottlenecks. | Low | Performance | +| Desktop flow | [desktopflow-avoid-immense-wait-duration](/power-automate/desktop-flows/static-analysis#immense-wait-time) | Immense wait time detected, exceeding the 600-second limit for hardcoded wait actions. | Low | Performance | ### See also diff --git a/powerapps-docs/maker/data-platform/virtual-entity-odata-provider-requirements.md b/powerapps-docs/maker/data-platform/virtual-entity-odata-provider-requirements.md index c20ea307f2..1133f6261e 100644 --- a/powerapps-docs/maker/data-platform/virtual-entity-odata-provider-requirements.md +++ b/powerapps-docs/maker/data-platform/virtual-entity-odata-provider-requirements.md @@ -7,7 +7,7 @@ ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: best-practice applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/virtual-entity-walkthrough-using-odata-provider.md b/powerapps-docs/maker/data-platform/virtual-entity-walkthrough-using-odata-provider.md index fe9837afa4..64b09d8a9a 100644 --- a/powerapps-docs/maker/data-platform/virtual-entity-walkthrough-using-odata-provider.md +++ b/powerapps-docs/maker/data-platform/virtual-entity-walkthrough-using-odata-provider.md @@ -66,7 +66,7 @@ Create the data source for the OData v4 data provider that uses the OASIS Open D Leave the other columns as-is, and select **SAVE & CLOSE**. > [!TIP] -> When using your own web service, verify that the URL is valid by pasting it in to your web browser. If you want to understand the columns and data types respective to the table you are interested in, you can append `/$metadata` to the end of your URL to see the definition of tables in you web service. +> When using your own web service, verify that the URL is valid by pasting it in to your web browser. If you want to understand the columns and data types respective to the table you are interested in, you can append `/$metadata` to the end of your URL to see the definition of tables in your web service. ## Open solution explorer @@ -93,7 +93,8 @@ Part of the name of any custom table you create is the customization prefix. Thi > [!NOTE] > The OData resource path semantics uses `EntitySet` to identify the resource. In the sample OData web service, the `EntitySet` is defined as **People**. This value is used as the **External Name** for the virtual table **Person**. -1. Next to **Areas that display this entity**, select **Sales**, and then select **Save** (but don’t close the table form). +3. Next to **Areas that display this entity**, select **Sales**, and then select **Save** (but don’t close the table form). + ![Person table definition.](media/ticket-entity.png) ## Create the columns for the virtual table diff --git a/powerapps-docs/maker/data-platform/visualize-hierarchical-data.md b/powerapps-docs/maker/data-platform/visualize-hierarchical-data.md index 825a948217..0e74f66661 100644 --- a/powerapps-docs/maker/data-platform/visualize-hierarchical-data.md +++ b/powerapps-docs/maker/data-platform/visualize-hierarchical-data.md @@ -6,7 +6,7 @@ ms.date: 08/02/2024 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/data-platform/{1ADE1522-E9E2-4FF7-B8FD-6B1E5F451512}.png b/powerapps-docs/maker/data-platform/{1ADE1522-E9E2-4FF7-B8FD-6B1E5F451512}.png new file mode 100644 index 0000000000..5bfe4ad9a9 Binary files /dev/null and b/powerapps-docs/maker/data-platform/{1ADE1522-E9E2-4FF7-B8FD-6B1E5F451512}.png differ diff --git a/powerapps-docs/maker/index.md b/powerapps-docs/maker/index.md index f8c05e2353..38672da910 100644 --- a/powerapps-docs/maker/index.md +++ b/powerapps-docs/maker/index.md @@ -4,7 +4,7 @@ description: Get an introduction to creating canvas or model-driven apps in Powe author: alaug ms.subservice: common ms.topic: overview -ms.date: 1/25/2025 +ms.date: 05/06/2025 ms.author: alaug ms.reviewer: mkaur-msft searchScope: @@ -13,7 +13,7 @@ searchScope: # Overview of creating apps in Power Apps -Power Apps is a high-productivity development platform for business apps, and has four major components: +Power Apps is a high-productivity development platform for business apps, and has these major components: - Canvas apps - Model-driven apps diff --git a/powerapps-docs/maker/media/monitor/copy-connect-user-link.png b/powerapps-docs/maker/media/monitor/copy-connect-user-link.png index 9b29fb198c..2a5127fb34 100644 Binary files a/powerapps-docs/maker/media/monitor/copy-connect-user-link.png and b/powerapps-docs/maker/media/monitor/copy-connect-user-link.png differ diff --git a/powerapps-docs/maker/media/signup-for-powerapps/we-know-you.png b/powerapps-docs/maker/media/signup-for-powerapps/we-know-you.png index a4eee2c861..c89e0c91b3 100644 Binary files a/powerapps-docs/maker/media/signup-for-powerapps/we-know-you.png and b/powerapps-docs/maker/media/signup-for-powerapps/we-know-you.png differ diff --git a/powerapps-docs/maker/model-driven-apps/accessibility-app-designer-site-map-designer-my-apps-page.md b/powerapps-docs/maker/model-driven-apps/accessibility-app-designer-site-map-designer-my-apps-page.md index df410c2e55..d45c00c0a0 100644 --- a/powerapps-docs/maker/model-driven-apps/accessibility-app-designer-site-map-designer-my-apps-page.md +++ b/powerapps-docs/maker/model-driven-apps/accessibility-app-designer-site-map-designer-my-apps-page.md @@ -6,7 +6,7 @@ author: Mattp123 ms.subservice: mda-maker ms.author: matp ms.date: 05/20/2019 -ms.topic: article +ms.topic: concept-article applies_to: - Dynamics 365 (online) - Dynamics 365 Version 9.x diff --git a/powerapps-docs/maker/model-driven-apps/add-agents-to-app.md b/powerapps-docs/maker/model-driven-apps/add-agents-to-app.md new file mode 100644 index 0000000000..f280144a65 --- /dev/null +++ b/powerapps-docs/maker/model-driven-apps/add-agents-to-app.md @@ -0,0 +1,120 @@ +--- +title: "Add agents to your model-driven app" +description: Learn how to add agents to your model-driven app in Power Apps. +ms.date: 07/07/2025 +ms.reviewer: matp +ms.topic: how-to +author: adrianorth +ms.subservice: mda-maker +ms.author: aorth +contributors: Jacob-Wilkinson +ms.service: powerapps +search.audienceType: + - maker +--- +# Add agents to your model-driven app (preview) + +[!INCLUDE [preview-banner](~/../shared-content/shared/preview-includes/preview-banner.md)] + +Model-driven apps support the use of agents to enhance user productivity and automate tasks. There are two types of agents available in model-driven apps: + +- *Autonomous agents*, created in Microsoft Copilot Studio, can be added to apps for supervised execution by users. + +- *Interactive agents*, which can be created to provide custom topics, knowledge sources, and more within the model-driven app. + +:::image type="content" source="media/add-agents-to-app/app-designer-agent-tab.png" alt-text="App designer Agents pane" lightbox="media/add-agents-to-app/app-designer-agent-tab.png"::: + +> [!IMPORTANT] +> +> - This is a preview feature. +> - Preview features aren't meant for production use and might have restricted functionality. These features are subject to [supplemental terms of use](https://go.microsoft.com/fwlink/?linkid=2216214), and are available before an official release so that customers can get early access and provide feedback. +> - This feature is being gradually rolled out across regions and might not be available yet in your region. +> - To access the feature, you must use an [early release cycle environment](/power-platform/admin/early-release#create-early-release-cycle-environments) and use [https://make.preview.powerapps.com/](https://make.preview.powerapps.com/) + +Autonomous agents can be added to model-driven apps to assist users with task completion. When added to an app, these agents can be supervised by users, allowing them to validate completed tasks, intervene when errors occur, and complete tasks that the agent was unable to finish—all within the context of their regular workflows. + +[Learn more about how to supervise agents](../../user/supervise-agents-with-agent-feed.md) + +> [!IMPORTANT] +> Currently, only the owner of an agent can view and supervise that agent's data in a model-driven app. + +## Add an autonomous agent to an app + +You can add an agent to any model-driven app of your choosing. We recommend adding agents to model-driven apps that have related data. + +> [!NOTE] +> To be eligible for addition to an app, an agent must be published, have [generative AI enabled](/microsoft-copilot-studio/advanced-generative-actions), and include at least one [trigger](/microsoft-copilot-studio/authoring-triggers-about). A maker can verify an agent's eligibility to be added to an app via the right-hand properties pane where the requirements for an agent to be added to an app are displayed. The **Add to app** button is disabled for any agents that don't meet the requirements to be eligible for addition. +:::image type="content" source="media/add-agents-to-app/app-designer-properties-pane.png" alt-text="App Designer Properties pane"::: + +1. Sign in to Power Apps, select **Apps**, and then select **Edit** for the app you want to modify. +1. In the app designer, go to the **Agents** tab. +1. In the **In your environment** dropdown list all agents in your environment are displayed. Locate the agent you want to add. +1. Select **...** (more options) next to the agent, and then select **Add to app**. + :::image type="content" source="media/add-agents-to-app/app-designer-add-agent-to-app.png" alt-text="App designer add agent to app"::: +1. Verify agent feed has been added to your app with all added agents by saving, publishing, and playing your app. Previewing agent feed in the app designer isn't currently supported. +1. To view or edit the agent in Copilot Studio, select **Edit in Microsoft Copilot Studio**. + :::image type="content" source="media/add-agents-to-app/app-designer-edit-in-copilot-studio.png" alt-text="App Designer edit in Copilot Studio"::: + +> [!IMPORTANT] +> Use the **Create agent** button to open Copilot Studio for agent creation. Note that even if the agent is created through a link inside the app designer, the maker must ensure it meets all requirements to be added to the app. + +## Remove an autonomous agent from an app + +1. In the app designer, go to the **Agents** tab. +1. In the **In your app** dropdown, select **For supervision**. +1. Locate the agent you want to remove, select **...**, and then select **Remove from app**. + +> :::image type="content" source="media/add-agents-to-app/app-designer-remove-agent.png" alt-text="App designer remove agent from app"::: + +> [!NOTE] +> Removing an agent from an app doesn't remove the agent from the environment. + +## Working with an interactive agent + +The interactive agent makes a model-driven app more intelligent and relevant for your organization by adding additional topics, knowledge sources, and more. The [Copilot Chat](add-ai-copilot.md), Agent APIs, and agent response components access the topics within this agent. + +> :::image type="content" source="media/add-agents-to-app/app-designer-interactive-agent.png" alt-text="App Designer Agents pane Interactive agent"::: + +> [!NOTE] +> The interactive agent is the improved experience for **... > Configure in Copilot Studio** and is gradually rolling out. The agents created with the previous experience are now shown as the **Interactive agent**. + +### Creating an interactive agent + +When an interactive agent is created, it's named as **Copilot in Power Apps - \**. The created agent is associated with the app when saved and published. + +1. In the app designer, select the **Agents** pane. +1. Expand **In your app** > **AI capabilities**. +1. On **Interactive agent**, select **...** > **Configure**. +1. Select **Configure in Copilot Studio** to create the agent. +1. While the agent is being created, **Setting up your app's copilot** is shown in the popup. + + A new browser tab for **Copilot Studio** is opened with the new agent. + > [!NOTE] + > Pop-ups need to be enabled in your web browser to allow editing the created agent. +1. Select refresh in pane header after popup to show the created agent. + > :::image type="content" source="media/add-agents-to-app/app-designer-interactive-agent-created.png" alt-text="Interactive agent with created agent"::: +1. Switch to the **Copilot Studio** browser tab to add topics, knowledge, and so on, to the agent. +1. Save and publish the agent. +1. Switch to the app designer browser tab to save and publish the app. + +### Limitations + +The interactive agent isn't able to be defined or referenced in app designer for these Microsoft model-driven apps: + +- Connected Field Service +- Customer Insights +- Customer Service Hub +- Customer Services workspace +- Dynamics 365 App for Outlook +- Field Service +- Field Service Mobile +- Inventory Visibility +- Omni Channel Engagement Hub +- Project Operations +- Sales Hub +- Sustainability + +## Related information + +[Overview of App Designer](app-designer-overview.md)
    +[Customize Copilot Chat](customize-copilot-chat.md) diff --git a/powerapps-docs/maker/model-driven-apps/add-ai-copilot.md b/powerapps-docs/maker/model-driven-apps/add-ai-copilot.md index 2f3c911aa9..863e03eb9e 100644 --- a/powerapps-docs/maker/model-driven-apps/add-ai-copilot.md +++ b/powerapps-docs/maker/model-driven-apps/add-ai-copilot.md @@ -6,7 +6,8 @@ ms.service: powerapps ms.subservice: mda-maker ms.author: yogupt ms.reviewer: matp -ms.date: 12/05/2024 +ms.date: 05/29/2025 +ms.update-cycle: 180-days ms.topic: how-to applies_to: - "powerapps" @@ -25,12 +26,11 @@ Copilot chat for model-driven apps in Power Apps is a next-generation AI assista > > This feature is generally available in Dynamics 365 apps and is available as a preview feature in Power Apps. > -> - To use this capability, your environment must have its language set to English. > - You must allow data movement across regions for Generative AI features as a prerequisite for using Copilot in Power Apps. This step is especially important if your organization and your environment are in different regions. Learn more in [Turn on copilots and generative AI features](/power-platform/admin/geographical-availability-copilot#enable-data-movement-across-regions). -> - Preview features aren't meant for production use and may have restricted functionality. These features are available before an official release so that customers can get early access and provide feedback. +> - Preview features aren't meant for production use and might have restricted functionality. These features are available before an official release so that customers can get early access and provide feedback. > - For more information, go to our [preview terms](https://go.microsoft.com/fwlink/?linkid=2189520). > - This capability is powered by [Azure OpenAI Service](/azure/cognitive-services/openai/overview). -> - This capability may be subject to usage limits or capacity throttling. +> - This capability might be subject to usage limits or capacity throttling. When enabled, Copilot chat can be accessed through the Copilot icon in the right navigation bar in a model-driven app. The Copilot chat pane can be opened or minimized as desired. @@ -49,18 +49,16 @@ Power Platform administrators enable the Copilot chat feature in model-driven ap 1. Sign in to the Power Platform admin center at [https://admin.powerplatform.microsoft.com](https://admin.powerplatform.microsoft.com). -1. In the navigation pane, go to **Environments** and select the environment where you want to enable Copilot chat for app users in model-driven apps. Select **Settings** for this environment on the command bar. +1. In the navigation pane, go to **Manage** > **Environments** and select the environment where you want to enable Copilot chat for app users in model-driven apps. On the command bar, select **Settings**. 1. In **Settings** for the selected environment, select **Product** > **Features**. - :::image type="content" source="media/Environment_features.png" alt-text="Screenshot that shows where to set environment features."::: - 1. In the **Features** section, set the value for **Allow users to analyze data using an AI-powered chat experience in canvas and model-driven apps** to the setting that's appropriate for your environment. - **Default**. Copilot chat is *disabled for a Power Apps licensed environment and enabled for a Dynamics 365 licensed environment*. - **On**. Copilot chat is enabled for the environment regardless of the environment licensing type. - **Off**. Copilot chat is disabled for the environment regardless of environment licensing type. - :::image type="content" source="media/copilot_for_apps_users_on.png" alt-text="Screenshot that shows how to turn on Copilot in an environment."::: + :::image type="content" source="media/copilot-for-apps-users-on.png" alt-text="Screenshot that shows how to turn on Copilot in an environment."::: 1. **Save** your changes. @@ -91,6 +89,22 @@ To provide feedback to help us improve Copilot's responses, app users can select 1. Set the column to **No**, and then **Save** the table. :::image type="content" source="media/disable-mda-copilot-feedback2.png" alt-text="Screenshot that shows where to set the Allow users to provide feedback for App Copilot column to No."::: +## Region availability and language supported + +Copilot chat for model-driven apps in Power Apps is available in the regions and languages listed here. + +| Regions       | Language | +|---------------|----------| +| Asia Pacific, Australia, Brazil, Canada, Europe, France, Germany, India, Japan, Korea, Norway, Qatar, Singapore, South Africa, Sweden, Switzerland, United Arab Emirates, United Kingdom, United States | Czech, Danish, German, Greek, Finnish, French, Italian, Japanese, Korean, Dutch, Norwegian (Bokmål), Polish, Portuguese (Brazil), Russian, Swedish, Thai, Turkish, Chinese (Simplified), Spanish (Spain), Arabic, Hebrew  | + +Copilot takes into account the user's preferred UI language and localizes responses based on that. Depending on the user's preferred UI language, environment base language, and languages supported for a specific Copilot feature, the responses are localized accordingly. This table summarizes the expected behavior in different scenarios. + +| Base language of the environment | Preferred UI language of the user | Expected behavior | +|--------------------------|-----------------------------------|-----------------------------------------------------------------------------------| +| English | English | Output in English | +| English or non-English | One of the supported non-English languages | Output in the preferred UI language of the user. | +| English or non-English | An unsupported language | Output is unpredictable as the language is unsupported. The responses are mixed with English and the user language. We recommend using one of the supported Copilot languages in such cases. | + ### Known limitations 1. **Copilot for app users** allows users to retrieve information from Dataverse through read-only operations. This means that users can only view data that matches their queries and can't make any changes to the data. @@ -99,6 +113,7 @@ To provide feedback to help us improve Copilot's responses, app users can select 1. **Copilot for app users** isn't supported with the Power Apps mobile app. ## Related information + - [Customize Copilot chat in model-driven apps](../model-driven-apps/customize-copilot-chat.md) - [FAQ for Copilot chat in model-driven apps](../common/faqs-copilot-model-driven-app.md) - [Responsible AI FAQs for Power Apps](../common/responsible-ai-overview.md) diff --git a/powerapps-docs/maker/model-driven-apps/add-calendar-control.md b/powerapps-docs/maker/model-driven-apps/add-calendar-control.md index 3c9e5348bf..64f5e05ef1 100644 --- a/powerapps-docs/maker/model-driven-apps/add-calendar-control.md +++ b/powerapps-docs/maker/model-driven-apps/add-calendar-control.md @@ -1,7 +1,7 @@ --- -title: "Add the calendar control to tables in model-driven apps | MicrosoftDocs" +title: "Add the calendar control to tables in model-driven apps with Power Apps" description: "Learn how to add the calendar control to tables in model-driven apps." -ms.date: 1/23/2024 +ms.date: 5/15/2025 ms.topic: how-to author: sriharibs-msft ms.subservice: mda-maker @@ -15,11 +15,34 @@ contributors: # Add the calendar control to tables -[!INCLUDE [cc-classic-interface-control-migration](../../includes/cc-classic-interface-control-migration.md)] +The calendar control displays scheduled activities and their associated details in a calendar layout. Activities can be viewed, created, and deleted in a day, week, or month view. -The **Calendar** control displays scheduled activities and their associated details in a calendar. Activities can be viewed, created, and deleted in a day, week, or month view. System customizer or system administrator privileges are needed to add the **Calendar Control** control. +:::image type="content" source="media/calendar-control-appointments.png" alt-text="Calendar control for the appoinment table view" lightbox="media/calendar-control-appointments.png"::: -## To add the control +System customizer or system administrator privileges are needed to add the calendar control to a table. + +## Add the control using the modern app designer + +When you add the calendar control to a table, you can specify the columns that are used for the start date, end date, description, and duration. The calendar control is available in the modern app designer. + +> [!NOTE] +> When you add the control to a table view, it replaces the standard view for all views for that table. + +1. While working in the app designer on the **Pages** tab, hover over the table view and then select **Edit view** (pencil icon). +1. Open the view where you want to replace the standard view with the calendar control. + The view designer opens. +1. On the command bar select **Components**, and then select **Add a component**. +1. On the **Add a control** page, select **Calendar**. +1. On the **Add a calendar** properties page, select the table columns and clients to display the control. For example, with appointment table, you specify these columns. + - **Start date**. Select the column that is used for the start date on the calendar, such as **Start Time (Date and Time)**. + - **Description**. Select the column that is used for the description, such as **Subject (Text)**. + - **End date**. Select the column that is used for the end date on the calendar, such as **End Time (Date and Time)**. + - **Duration**: Select the column that is used for the duration on the calendar, such as **Duration (Duration)**. + :::image type="content" source="media/calendar-control-properties.png" alt-text="Properties for the calendar control"::: +1. Select **Done**, and then select **Save**. +1. To make the updated view available in model-driven apps, select **Save and publish**. + +## Add the control using the classic solution explorer 1. In the app, select the **Settings** icon, and then select **Advanced Settings**. @@ -55,9 +78,9 @@ The **Calendar** control displays scheduled activities and their associated deta ### Mobile experience -The **Calendar** control is available when working on mobile devices with a different user experience that is optimized for mobile form factors. There's a scrollable day bar for selecting which date to view. The Day/Week/Month selection dropdown isn't available on mobile devices. +The calendar* control is available when working on mobile devices with a different user experience that is optimized for mobile form factors. There's a scrollable day bar for selecting which date to view. The Day/Week/Month selection dropdown isn't available on mobile devices. -### See also +### Related articles [Work with rows in the new calendar view](../../user/calendar-view.md) diff --git a/powerapps-docs/maker/model-driven-apps/add-page-to-model-app.md b/powerapps-docs/maker/model-driven-apps/add-page-to-model-app.md index 39fbcc8ec1..5d3bcbc88c 100644 --- a/powerapps-docs/maker/model-driven-apps/add-page-to-model-app.md +++ b/powerapps-docs/maker/model-driven-apps/add-page-to-model-app.md @@ -41,12 +41,12 @@ Custom pages can be created from two places. The first is while authoring a mode :::image type="content" source="media/add-page-to-model-app/app-designer-create-new-custom-page.png" alt-text="New page select custom page"::: -1. The canvas app designer opens for page authoring. +1. Power Apps Studio opens for page authoring. > [!div class="mx-imgBorder"] - > ![Canvas designer new page](media/add-page-to-model-app/canvas-designer-new-page.png "Canvas designer new page") + > ![Power Apps Studio new page](media/add-page-to-model-app/canvas-designer-new-page.png "Power Apps Studio new page") -1. When you're finished creating your canvas app custom page, **Save**, **Publish**, and then close the canvas app designer browser tab to return to the model-driven app designer. +1. When you're finished creating your canvas app custom page, **Save**, **Publish**, and then close the Power Apps Studio browser tab to return to the model-driven app designer. ### Create new custom page from the solutions area @@ -78,7 +78,7 @@ Custom pages can be created from two places. The first is while authoring a mode 1. Save and publish the custom page. -1. Close canvas app designer. +1. Close Power Apps Studio. 1. Return to the app designer browser tab and refresh the app designer by selecting **Dismiss**. @@ -112,9 +112,9 @@ Custom pages can be created from two places. The first is while authoring a mode > [!IMPORTANT] > Currently, model-driven apps must be re-published after a custom page is published. Otherwise the model-driven app continues to use the previous published custom page. -After saving changes to a custom page in the canvas designer, the custom page must be first published by the canvas designer. Then all model-driven apps referencing that custom page need to be published. +After saving changes to a custom page in Power Apps Studio, the custom page must be first published by Power Apps Studio. Then all model-driven apps referencing that custom page need to be published. -1. From canvas designer, select **Publish** +1. From Power Apps Studio, select **Publish** 1. From app designer or solution explorer, select **Publish** on each model-driven app referencing the custom page diff --git a/powerapps-docs/maker/model-driven-apps/add-powerbi-visual.md b/powerapps-docs/maker/model-driven-apps/add-powerbi-visual.md index a0d7379415..6cac1577fa 100644 --- a/powerapps-docs/maker/model-driven-apps/add-powerbi-visual.md +++ b/powerapps-docs/maker/model-driven-apps/add-powerbi-visual.md @@ -6,6 +6,7 @@ ms.topic: tutorial author: Mattp123 ms.author: matp ms.reviewer: matp +ms.subservice: mda-maker --- # Add a Power BI visual to a model-driven app diff --git a/powerapps-docs/maker/model-driven-apps/app-access-checker.md b/powerapps-docs/maker/model-driven-apps/app-access-checker.md index 5c1bdeed63..2fce8264d6 100644 --- a/powerapps-docs/maker/model-driven-apps/app-access-checker.md +++ b/powerapps-docs/maker/model-driven-apps/app-access-checker.md @@ -7,8 +7,9 @@ ms.reviewer: matp ms.service: powerapps ms.subservice: mda-maker ms.topic: how-to -ms.date: 01/27/2025 +ms.date: 07/22/2025 ms.custom: template-how-to +contributors: kevinhiggins-ms --- # App access checker for model-driven apps @@ -33,9 +34,16 @@ Open the diagnostics page in your browser by typing https://*environmentURL*/Web - If the user has read and/or write privilege on the app module table, then all the apps are visible and **Yes** is displayed. - **License**. - If the user has appropriate licensing to play the app, **Yes** is displayed. + - Select the **details** link on either **Yes** or **No** result for each app to get information on how the user is or isn't able to access. - **Security**. - If the user has create or write privilege on the app module table, **Yes** is displayed. If the user isn't associated to one or more security roles assigned to the app, check if the user is member of a team and whether the team is associated with that security role. +## Licensing terminology and how model-driven apps are accessed + +In order for an app to be visible to a user, both the results for **License** and **Security** must be **Yes**. If a user doesn't have an appropriate license, the error message might give information about what **service plans** could be used to give access to the app. Note that **Licenses** aren't the same as service plans. A **License** is what is assigned to users in Microsoft Entra and usually has multiple service plans. For a list of all licenses and what service plans are included, go to the [licensing service plan reference](/entra/identity/users/licensing-service-plan-reference). Referencing the Microsoft Dataverse licensing error message and the service plan reference list can help diagnose user licensing issues. + +Also be aware that Dataverse caches the service plans that are assigned to users, so Microsoft Entra License assignments might not immediately reflect in Dataverse. To update the cached service plan assignments in Dataverse, have users sign out and sign back in. If the issue persists, it could be a result of Microsoft Entra caching, and the user should wait about 30 minutes, then sign out and sign back in again. + ### Example results User has access to all visible apps in the environment. @@ -64,4 +72,4 @@ If **Security** is **Yes** and **License** is **No** or **Unknown** contact Help ## Related articles -[Share a model-driven app](share-model-driven-app.md) \ No newline at end of file +[Share a model-driven app](share-model-driven-app.md) diff --git a/powerapps-docs/maker/model-driven-apps/app-building-steps.md b/powerapps-docs/maker/model-driven-apps/app-building-steps.md index 5b5e6b871a..b4261f81ca 100644 --- a/powerapps-docs/maker/model-driven-apps/app-building-steps.md +++ b/powerapps-docs/maker/model-driven-apps/app-building-steps.md @@ -6,7 +6,7 @@ author: Mattp123 ms.subservice: mda-maker ms.author: matp ms.date: 01/28/2025 -ms.topic: article +ms.topic: how-to applies_to: - PowerApps ms.assetid: 26c79c20-2987-476e-983a-406e0db13034 diff --git a/powerapps-docs/maker/model-driven-apps/app-interface-design-overview.md b/powerapps-docs/maker/model-driven-apps/app-interface-design-overview.md index 1d56cb60e0..3de7ee4833 100644 --- a/powerapps-docs/maker/model-driven-apps/app-interface-design-overview.md +++ b/powerapps-docs/maker/model-driven-apps/app-interface-design-overview.md @@ -1,37 +1,29 @@ --- title: "Model-driven app interface design overview | MicrosoftDocs" description: "An overview of the elements that influence the app design interface" - -ms.date: 11/16/2021 +ms.date: 04/22/2025 ms.reviewer: "" - ms.suite: "" ms.tgt_pltfrm: "" ms.topic: overview applies_to: - "powerapps" -author: "v-roryneary" +author: "Mattp123" ms.assetid: caps.latest.revision: 1 -ms.subservice: +ms.subservice: mda-maker ms.author: matp tags: search.audienceType: - maker - --- - # Model-driven app interface design overview -## Introduction - -App interface design includes working with table [views](model-driven-app-glossary.md#view) and [forms](model-driven-app-glossary.md#form). - -There are two experiences available when you build apps. The first, and more recent experience, involves the creation of [pages](model-driven-app-glossary.md#page). The second experience involves building an app in a more deliberate fashion. +Model-driven app interface design includes working with table [views](model-driven-app-glossary.md#view) and [forms](model-driven-app-glossary.md#form). To work with these components in your app, you create [pages](model-driven-app-glossary.md#page). -In both experiences the same thing is created, a model-driven app with a [site-map](model-driven-app-glossary.md#site-map) associated with it that describes the navigation experience within the app. +Creating pages in a model-driven app builds the app [site-map](model-driven-app-glossary.md#site-map) that describes the navigation experience within the app. -Additionally, app interface design can include changing the command bar menu in an app. +App interface design can include changing the command bar menu in an app. This article mentions the classic approach to developing apps. This includes the creation of apps in addition to working with forms, views, and other elements. @@ -41,11 +33,11 @@ Here's an overview of the model-driven app design process. Designing a model-driven app requires a range of skills. There are many [design tools](model-driven-designers.md) that enable a model-driven app to be created. At times the app maker plays the role of a database designer, a user experience customizer, and even a process designer. -Model-driven apps are essentially a selection of Dataverse [components](model-driven-app-glossary.md#component) (tables, charts, dashboards) that work alongside each other to achieve a business outcome. These components are delivered in conjunction with the Dataverse [security roles](model-driven-app-glossary.md#security-role) to create a user experience that meets the needs of members of different parts of an organization. +Model-driven apps are essentially a selection of Microsoft Dataverse [components](model-driven-app-glossary.md#component) (tables, charts, dashboards) that work alongside each other to achieve a business outcome. These components are delivered in conjunction with the Dataverse [security roles](model-driven-app-glossary.md#security-role) to create a user experience that meets the needs of members of different parts of an organization. -This means that the same app can be used by colleagues in different departments. In some cases, users will only want to review data and may only have interest in specific areas in order to complete their daily objectives. +This means that the same app can be used by colleagues in different departments. In some cases, users only want to review data and might only have interest in specific areas in order to complete their daily objectives. -The design of tables and table columns is covered under a documentation dedicated to this topic. [Learn more about creating Dataverse tables](../../maker/data-platform/entity-overview.md). +The design of tables and table columns is covered under a documentation dedicated to this article. [Learn more about creating Dataverse tables](../../maker/data-platform/entity-overview.md). ## App interface design resources diff --git a/powerapps-docs/maker/model-driven-apps/app-navigation.md b/powerapps-docs/maker/model-driven-apps/app-navigation.md index 9c1f1c7d1a..78b098a394 100644 --- a/powerapps-docs/maker/model-driven-apps/app-navigation.md +++ b/powerapps-docs/maker/model-driven-apps/app-navigation.md @@ -1,14 +1,14 @@ --- title: App navigation in model-driven apps description: Learn about app navigation in model-driven apps in Power Apps. -documentationcenter: '' author: Mattp123 editor: '' tags: '' -ms.topic: conceptual +ms.topic: article ms.component: model ms.date: 01/27/2025 ms.author: matp +ms.subservice: mda-maker search.audienceType: - maker --- diff --git a/powerapps-docs/maker/model-driven-apps/app-properties.md b/powerapps-docs/maker/model-driven-apps/app-properties.md index b97732a1f7..81ee894332 100644 --- a/powerapps-docs/maker/model-driven-apps/app-properties.md +++ b/powerapps-docs/maker/model-driven-apps/app-properties.md @@ -2,7 +2,7 @@ title: Manage model-driven app settings in the Power Apps app designer description: Learn how to manage the settings for your app using the app designer keywords: "" -ms.date: 01/27/2025 +ms.date: 05/06/2025 ms.custom: ms.topic: how-to applies_to: @@ -13,10 +13,8 @@ author: "Mattp123" ms.assetid: e773e60f-0211-4c4b-a1af-663be4997629 ms.author: matp ms.reviewer: -ms.suite: -ms.tgt_pltfrm: caps.latest.revision: 14 -topic-status: Drafting +ms.subservice: mda-maker search.audienceType: - maker contributors: @@ -36,7 +34,7 @@ You must select **Publish** to activate an app settings change. |-------------|--------------|-----------------| | **General** | **Solution** | Read-only property that displays the solution name where the app is located. | |**General** |**App name**| The friendly name for the app.| - |**General** |**Description**| The description of the app (optional). If your app is in a [managed environment](/power-platform/admin/managed-environment-overview), you can select **Create description using AI** to have Copilot generate one for you. More information: [Create an app description with Copilot (preview)](build-first-model-driven-app.md#create-an-app-description-with-copilot-preview) | + |**General** |**Description**| The description of the app (optional). If your app is in a [managed environment](/power-platform/admin/managed-environment-overview), you can select **Create description using AI** to have Copilot generate one for you. More information: [Create an app description with Copilot](build-first-model-driven-app.md#create-an-app-description-with-copilot) | |**General** | **Icon** | Change the app icon by selecting **Select icon**, to browse and select an image web resource. This icon is displayed on the preview tile of the app. More information: [Create or edit model-driven app web resources to extend an app](create-edit-web-resources.md)| | **Advanced settings** | **Unique name** | Read-only property that displays the app unique name including the publisher prefix. | | **Advanced settings** | **Welcome page** | This option allows a maker to select from the web resources available in your organization. The welcome pages created contain information that's useful to users, such as links to videos, upgrade instructions, or getting started information. The welcome page is displayed when an app is opened. Users can select **Do not show this Welcome Screen next time** on the welcome page to disable the page so it doesn't appear the next time the app starts. Notice that the **Do not show this Welcome Screen next time** option is a user-level setting and can't be controlled by administrators or app makers. More information: [Create or edit model-driven app web resources to extend an app](create-edit-web-resources.md) | @@ -59,8 +57,9 @@ Here are a few of the features available to app makers: - **Offline setup from the app designer**. [Enable your app for offline use](../../mobile/setup-mobile-offline.md#enable-your-app-for-offline-use) - **Tablet optimization for command bar**. When enabled, replaces the native command bar at the bottom of the screen with the web command bar located at the top of the screen on tablets. More information: [Tablet optimization for command bar](../../mobile/use-custom-model-driven-app-on-mobile.md#tablet-optimization-for-command-bar) - **Try the new look**. Enabled by default, this feature shows end users a "Try the new look" switch to enable the new experience. End users can switch back at any time. More information: [Modern, refreshed look for model-driven apps](../../user/modern-fluent-design.md) +- **Form fill assist toolbar**. When enabled, the form fill assist toolbar is visible at the top of a form, providing easy access to Copilot form fill assistance capabilities like smart paste and files. For more information about AI form fill assistance environment settings, go to [AI form fill assistance](/power-platform/admin/settings-features#ai-form-fill-assistance). For more information about using this feature, go to [Use Copilot's form fill assistance feature in model-driven apps](../../user/form-filling-assistance.md). -## Upcoming +## Upcoming [!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] diff --git a/powerapps-docs/maker/model-driven-apps/app-value-proposition.md b/powerapps-docs/maker/model-driven-apps/app-value-proposition.md index de99483cfb..d63bba01b3 100644 --- a/powerapps-docs/maker/model-driven-apps/app-value-proposition.md +++ b/powerapps-docs/maker/model-driven-apps/app-value-proposition.md @@ -4,25 +4,23 @@ description: "App Value Proposition" ms.collection: get-started ms.date: 09/27/2021 ms.reviewer: "" - ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article applies_to: - "powerapps" author: "Mattp123" ms.assetid: caps.latest.revision: 1 -ms.subservice: +ms.subservice: mda-maker ms.author: matp tags: search.audienceType: - maker - --- # The benefits of the model-driven approach -Model-driven apps are familiar to anyone who has worked with [Dynamics 365](model-driven-app-glossary.md#dynamics-365) apps. To others, they're a new business productivity tool. +Model-driven apps are familiar to anyone who works with [Dynamics 365](model-driven-app-glossary.md#dynamics-365) apps. To others, they're a new business productivity tool. Dynamics 365 apps, such as Dynamics 365 Sales, Dynamics 365 Marketing, or Dynamics 365 Customer Service, are essentially a set of line-of-business apps, built on [Dataverse](model-driven-app-glossary.md#dataverse). The utility of the Dynamics 365 model was recognized as being powerful and by making Dataverse fully customizable, has enabled more bespoke solutions to be created. @@ -30,8 +28,8 @@ Model-driven apps are worth considering in your organization for the following r ## Security -- The platform is reliable. It is the same as is used by Dynamics 365 apps, to cover complex business processes and govern millions of transactions in the biggest businesses in the world. -- Model-driven apps have tried and tested [application lifecycle management](model-driven-app-glossary.md#application-lifecycle-management) options. +- The platform is reliable. It's the same as is used by Dynamics 365 apps, to cover complex business processes and govern millions of transactions in the biggest businesses in the world. +- Model-driven apps include tried and tested [application lifecycle management](model-driven-app-glossary.md#application-lifecycle-management) options. - Dataverse supports a strong and flexible data security model affecting the degree to which users can interact with table records and columns. ## Extendability @@ -42,12 +40,12 @@ Model-driven apps are worth considering in your organization for the following r - Dataverse is extendable through use of Azure services, such as [Azure Synapse Link for Dataverse](../data-platform/export-to-data-lake.md). - Canvas app integration possibilities are integral to the platform. More information: [Design a custom page for your model-driven app (preview)](design-page-for-model-app.md) - Extensible with code to allow for a user experience that fits the organization more tightly. -- There is a pool of competence worldwide covering the platform through Dynamics consultants in addition to Power Platform practices. +- There's a pool of competence worldwide covering the platform through Dynamics consultants in addition to Power Platform practices. ## Usability for all - Model-driven apps are responsive by design. This means they render better on a wide range of devices. -- Model driven apps are accessible to users with disabilities including those that require screen readers. +- Model driven apps are accessible to users with disabilities including people that require screen readers. - Offline capabilities are native to model-driven apps. - Multilingual label support to ensure that your apps can be used worldwide. diff --git a/powerapps-docs/maker/model-driven-apps/app-visibility-privileges.md b/powerapps-docs/maker/model-driven-apps/app-visibility-privileges.md index 0190f6683c..770166b7df 100644 --- a/powerapps-docs/maker/model-driven-apps/app-visibility-privileges.md +++ b/powerapps-docs/maker/model-driven-apps/app-visibility-privileges.md @@ -5,7 +5,7 @@ documentationcenter: '' author: Mattp123 editor: '' tags: '' -ms.topic: conceptual +ms.topic: article ms.component: model ms.date: 03/12/2024 ms.subservice: mda-maker diff --git a/powerapps-docs/maker/model-driven-apps/build-app-three-steps.md b/powerapps-docs/maker/model-driven-apps/build-app-three-steps.md deleted file mode 100644 index 551f0f50dd..0000000000 --- a/powerapps-docs/maker/model-driven-apps/build-app-three-steps.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: "Build an app in three steps with Power Apps" -description: "This first run tutorial shows you how to build a model-driven app in just a few steps." -keywords: "" -ms.date: 04/07/2022 -ms.custom: -ms.topic: conceptual -applies_to: - - "Dynamics 365 (online)" - - "Dynamics 365 Version 9.x" - - "PowerApps" -author: "Mattp123" -ms.assetid: be93b9d7-f1c2-4ee7-8d7c-0f5c34dfa5f7 -ms.subservice: mda-maker -ms.author: matp -ms.reviewer: -ms.suite: -ms.tgt_pltfrm: -caps.latest.revision: 17 -topic-status: Drafting -search.audienceType: - - maker ---- -# Build an app in three steps (preview) - -[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] - -This interactive experience guides new makers through the creation of a model-driven app. Using the modern app designer, anyone can quickly create an app in three simple steps. - -In this experience you... - -1. Name your app. -1. Create a page and add the preselected table to the page. -1. Publish and play your app. - -:::image type="content" source="media/onboarding-new-makers.gif" alt-text="Build an app in three steps experience"::: - -> [!IMPORTANT] -> This is a preview feature. More information: [Model-driven apps and app management](../powerapps-preview-program.md#model-driven-apps-and-app-management) - -## How it works - -You'll see the **Make an app in just five minutes** banner on the Power Apps home page of your environment when these conditions are true: - -* You have permission to create a Microsoft Dataverse database in the environment. -* You haven't yet created and saved an app in the environment. - -Makers who don’t meet these conditions can experience this feature in a preview environment by adding this parameter to the end of the make.preview.powerapps.com URL: `?cdsCommon.forcePowerAppsFirstRunTour=true` - -### See also - -[Explore Power Apps for free for 30 days](../signup-for-powerapps.md) - -[What are model-driven apps in Power Apps?](model-driven-app-overview.md) - -[Steps to building a model-driven app](app-building-steps.md) diff --git a/powerapps-docs/maker/model-driven-apps/build-first-model-driven-app.md b/powerapps-docs/maker/model-driven-apps/build-first-model-driven-app.md index e949a1208b..a5bba56db7 100644 --- a/powerapps-docs/maker/model-driven-apps/build-first-model-driven-app.md +++ b/powerapps-docs/maker/model-driven-apps/build-first-model-driven-app.md @@ -1,7 +1,8 @@ --- title: "Build your first modern model-driven app with Power Apps" description: "Learn how to build your first model driven app with Power Apps" -ms.date: 01/27/2025 +ms.date: 05/06/2025 +ms.update-cycle: 180-days ms.subservice: mda-maker ms.topic: tutorial author: joel-lindstrom @@ -9,7 +10,6 @@ ms.author: matp ms.reviewer: matp ms.collection: bap-ai-copilot contributors: -- matp - jessicaszelo - asheehi --- @@ -69,21 +69,15 @@ To save without publishing, on the app designer command bar, select **Save**. To save and publish, on the app designer command bar, select **Publish**. -## Create an app description with Copilot (preview) - -[This section is prerelease documentation and is subject to change.] +## Create an app description with Copilot If your app is in a [managed environment](/power-platform/admin/managed-environment-overview), you can use AI to help you create a description for your app. > [!IMPORTANT] > -> - This is a preview feature. -> - [!INCLUDE [cc-preview-features-definition](../../includes/cc-preview-features-definition.md)] -> - For more information, go to our [preview terms](https://go.microsoft.com/fwlink/?linkid=2189520). > - To use this capability your app must be in a [managed environment](/power-platform/admin/managed-environment-overview). > - This capability is powered by [ Azure OpenAI Service](/azure/cognitive-services/openai/overview). -> - This capability is in process of rolling out, and might not be available in your region yet. -> - This capability might be subject to usage limits or capacity throttling. +> - This capability might be subject to usage limits or capacity throttling. > - To understand capabilities and limitations of AI-powered and Copilot features in Power Apps, go to [Responsible AI FAQs for Power Apps](../common/responsible-ai-overview.md) When you save and publish your app, on the **Publish** dialog box select, **Create descriptions using AI** to replace your current description or, if your app doesn't have a description, Copilot generates one for you. diff --git a/powerapps-docs/maker/model-driven-apps/command-designer-limitations.md b/powerapps-docs/maker/model-driven-apps/command-designer-limitations.md index 5cd66e7f5a..19b365d200 100644 --- a/powerapps-docs/maker/model-driven-apps/command-designer-limitations.md +++ b/powerapps-docs/maker/model-driven-apps/command-designer-limitations.md @@ -8,7 +8,7 @@ ms.reviewer: matp contributors: aansu ms.date: 02/19/2025 ms.subservice: mda-maker -ms.topic: conceptual +ms.topic: how-to search.audienceType: - maker --- diff --git a/powerapps-docs/maker/model-driven-apps/commanding-designer-use-custom-pages-as-dialogs.md b/powerapps-docs/maker/model-driven-apps/commanding-designer-use-custom-pages-as-dialogs.md index 50afbb2e1a..d0260bb85b 100644 --- a/powerapps-docs/maker/model-driven-apps/commanding-designer-use-custom-pages-as-dialogs.md +++ b/powerapps-docs/maker/model-driven-apps/commanding-designer-use-custom-pages-as-dialogs.md @@ -6,7 +6,8 @@ author: caburk ms.author: caburk ms.reviewer: matp ms.date: 05/26/2022 -ms.topic: conceptual +ms.topic: how-to +ms.subservice: mda-maker search.audienceType: - maker --- diff --git a/powerapps-docs/maker/model-driven-apps/commanding-scopes.md b/powerapps-docs/maker/model-driven-apps/commanding-scopes.md index ef126547c9..44533aaf41 100644 --- a/powerapps-docs/maker/model-driven-apps/commanding-scopes.md +++ b/powerapps-docs/maker/model-driven-apps/commanding-scopes.md @@ -7,7 +7,7 @@ ms.author: caburk ms.reviewer: matp ms.date: 11/15/2022 ms.subservice: mda-maker -ms.topic: article +ms.topic: how-to search.audienceType: - maker - developer diff --git a/powerapps-docs/maker/model-driven-apps/commanding-use-powerfx.md b/powerapps-docs/maker/model-driven-apps/commanding-use-powerfx.md index d1bfa44ae7..df7f6756af 100644 --- a/powerapps-docs/maker/model-driven-apps/commanding-use-powerfx.md +++ b/powerapps-docs/maker/model-driven-apps/commanding-use-powerfx.md @@ -6,7 +6,8 @@ author: caburk ms.author: caburk ms.reviewer: matp ms.date: 07/17/2024 -ms.topic: conceptual +ms.topic: how-to +ms.subservice: mda-maker search.audienceType: - maker --- @@ -20,7 +21,7 @@ This article covers aspects of Power Fx that are specific to commanding. Many ot - For a list of functions not supported, go to [Functions not supported](#functions-not-supported). > [!NOTE] -> Publishing Power Fx commands may take a few minutes. It might not be obvious that background operations are still running even after the publish operation appears to have completed. You may need to wait a few minutes after publishing, then refresh the app to see your changes reflected. This typically takes longer the first time a Power Fx based command is published for an app. +> Publishing Power Fx commands might take a few minutes. It might not be obvious that background operations are still running even after the publish operation appears to complete. You might need to wait a few minutes after publishing, then refresh the app to see your changes reflected. This operation typically takes longer the first time a Power Fx based command is published for an app. ## OnSelect @@ -45,7 +46,7 @@ To define visibility logic, select the command. Then select **Visibility** on th - **Item** and **AllItems** names are somewhat consistent with the ComboBox control and Gallery control, but this is a new pattern. - If there's no record selected, **Item** returns Blank (IsBlank returns true) and **AllItems** returns an empty table (IsEmpty returns true). - Null DataSource for record references (polymorphic record types). Generic functions can be called, such as Save or IsType/AsType can be used. -- **Item** is always blank if **SelectionMax** <> 1. This prevents writing formulas to just one item and not scaling to more than one. +- **Item** is always blank if **SelectionMax** <> 1. This prevents writing formulas to just one item and not scaling to more than one. ## AutoSave @@ -65,7 +66,7 @@ Patch(Accounts, Self.Selected.Item, {'Account Name': "Changed Account name"}) ### Create a related record > [!NOTE] -> If the related table is not already in the command component library you'll need to open it in canvas studio and add the data source there. +> If the related table is not already in the command component library, you need to open it in canvas studio and add the data source there. ```power-fx Patch(Tasks,Defaults(Tasks),{Regarding:Self.Selected.Item},{Subject:"Subject of the Task"}) @@ -172,7 +173,7 @@ Displays a notification **true** if the **Yes** button is pressed, and a notific A notification can be shown to app users by calling the [Notify function](../canvas-apps/functions/function-showerror.md). > [!NOTE] -> `NotificationType.Success` is not currently supported and will result in an informational notification type. +> `NotificationType.Success` isn't currently supported and results in an informational notification type. ```power-fx Notify( "Model-driven app notification message" ) diff --git a/powerapps-docs/maker/model-driven-apps/comments.md b/powerapps-docs/maker/model-driven-apps/comments.md index e798ee7342..6d07edc8e9 100644 --- a/powerapps-docs/maker/model-driven-apps/comments.md +++ b/powerapps-docs/maker/model-driven-apps/comments.md @@ -4,6 +4,7 @@ description: Comments help app makers collaborate better when working together. author: Mattp123 ms.author: "emcoope" ms.service: powerapps +ms.subservice: mda-maker ms.topic: how-to ms.date: 03/28/2023 ms.custom: template-how-to diff --git a/powerapps-docs/maker/model-driven-apps/common-field-properties-legacy.md b/powerapps-docs/maker/model-driven-apps/common-field-properties-legacy.md index 9a7c338645..9327bbc89c 100644 --- a/powerapps-docs/maker/model-driven-apps/common-field-properties-legacy.md +++ b/powerapps-docs/maker/model-driven-apps/common-field-properties-legacy.md @@ -6,7 +6,7 @@ author: Mattp123 ms.subservice: mda-maker ms.author: matp ms.date: 02/25/2020 -ms.topic: conceptual +ms.topic: article applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/model-driven-apps/copilot-chat-mda-knowledge.md b/powerapps-docs/maker/model-driven-apps/copilot-chat-mda-knowledge.md index 56b0216b9c..948bc05ed3 100644 --- a/powerapps-docs/maker/model-driven-apps/copilot-chat-mda-knowledge.md +++ b/powerapps-docs/maker/model-driven-apps/copilot-chat-mda-knowledge.md @@ -7,6 +7,7 @@ ms.subservice: mda-maker ms.author: hemantg ms.reviewer: matp ms.date: 02/21/2025 +ms.update-cycle: 180-days ms.topic: how-to applies_to: - "powerapps" diff --git a/powerapps-docs/maker/model-driven-apps/copilot-chat-mda-topics.md b/powerapps-docs/maker/model-driven-apps/copilot-chat-mda-topics.md index a8a633bb33..842eef3f34 100644 --- a/powerapps-docs/maker/model-driven-apps/copilot-chat-mda-topics.md +++ b/powerapps-docs/maker/model-driven-apps/copilot-chat-mda-topics.md @@ -7,6 +7,7 @@ ms.subservice: mda-maker ms.author: hemantg ms.reviewer: matp ms.date: 02/21/2025 +ms.update-cycle: 180-days ms.topic: how-to applies_to: - "powerapps" diff --git a/powerapps-docs/maker/model-driven-apps/copilot-chat-prompt-guide.md b/powerapps-docs/maker/model-driven-apps/copilot-chat-prompt-guide.md index 5533344494..00c9e41111 100644 --- a/powerapps-docs/maker/model-driven-apps/copilot-chat-prompt-guide.md +++ b/powerapps-docs/maker/model-driven-apps/copilot-chat-prompt-guide.md @@ -7,6 +7,7 @@ ms.subservice: mda-maker ms.author: hemantg ms.reviewer: matp ms.date: 03/07/2025 +ms.update-cycle: 180-days ms.topic: how-to applies_to: - "powerapps" diff --git a/powerapps-docs/maker/model-driven-apps/copilot-chat-send-messages.md b/powerapps-docs/maker/model-driven-apps/copilot-chat-send-messages.md index 69855437e1..c035a57263 100644 --- a/powerapps-docs/maker/model-driven-apps/copilot-chat-send-messages.md +++ b/powerapps-docs/maker/model-driven-apps/copilot-chat-send-messages.md @@ -7,6 +7,7 @@ ms.subservice: mda-maker ms.author: hemantg ms.reviewer: matp ms.date: 03/16/2025 +ms.update-cycle: 180-days ms.topic: how-to applies_to: - "powerapps" diff --git a/powerapps-docs/maker/model-driven-apps/copilot-chat-zpe-guide.md b/powerapps-docs/maker/model-driven-apps/copilot-chat-zpe-guide.md index 9331a56f21..e9a59ae81c 100644 --- a/powerapps-docs/maker/model-driven-apps/copilot-chat-zpe-guide.md +++ b/powerapps-docs/maker/model-driven-apps/copilot-chat-zpe-guide.md @@ -7,6 +7,7 @@ ms.subservice: mda-maker ms.author: hemantg ms.reviewer: matp ms.date: 03/06/2025 +ms.update-cycle: 180-days ms.topic: how-to applies_to: - "powerapps" diff --git a/powerapps-docs/maker/model-driven-apps/copilot-control.md b/powerapps-docs/maker/model-driven-apps/copilot-control.md index 3c14c97ec7..355d02fc50 100644 --- a/powerapps-docs/maker/model-driven-apps/copilot-control.md +++ b/powerapps-docs/maker/model-driven-apps/copilot-control.md @@ -5,7 +5,8 @@ author: udaykirang ms.author: udag ms.reviewer: udag ms.topic: how-to -ms.date: 08/26/2024 +ms.date: 04/30/2025 +ms.update-cycle: 180-days ms.subservice: mda-maker tags: ms.collection: bap-ai-copilot @@ -22,12 +23,6 @@ ms.custom: The Copilot control is available in the email form's rich text editor toolbar by default. You can add the Copilot control to the rich text editor in other forms by changing the editor's properties in its advanced configuration file. -> [!IMPORTANT] -> ->- This is an early access feature. You can [opt in](/power-platform/admin/opt-in-early-access-updates) to use it for testing and adoption in your environments. ->- This feature is in early access only for new organizations. Existing organizations that are already using the feature can continue to use it, even if they haven't opted in for early access. ->- This feature is available for Dynamics 365 Sales, including custom sales apps that have lead and opportunity entities added to the site map. - ## Prerequisites [Have a configuration file for the rich text editor](rich-text-editor-control.md#customize-the-rich-text-editor-control) in the form where you want to add the Copilot control. diff --git a/powerapps-docs/maker/model-driven-apps/create-add-remove-forms-views-dashboards.md b/powerapps-docs/maker/model-driven-apps/create-add-remove-forms-views-dashboards.md index be788a4deb..ce115166ab 100644 --- a/powerapps-docs/maker/model-driven-apps/create-add-remove-forms-views-dashboards.md +++ b/powerapps-docs/maker/model-driven-apps/create-add-remove-forms-views-dashboards.md @@ -13,6 +13,7 @@ applies_to: author: "Mattp123" ms.author: "emcoope" ms.reviewer: "matp" +ms.subservice: mda-maker search.audienceType: - maker --- diff --git a/powerapps-docs/maker/model-driven-apps/create-and-edit-forms.md b/powerapps-docs/maker/model-driven-apps/create-and-edit-forms.md index 5ee421eefe..1552443764 100644 --- a/powerapps-docs/maker/model-driven-apps/create-and-edit-forms.md +++ b/powerapps-docs/maker/model-driven-apps/create-and-edit-forms.md @@ -2,7 +2,8 @@ title: "Create, edit, or configure forms using the model-driven form designer | MicrosoftDocs" description: Learn how to create and edit model-driven app forms ms.custom: "" -ms.date: 10/22/2024 +ms.date: 05/29/2025 +ms.update-cycle: 180-days ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" @@ -48,13 +49,12 @@ Use the form designer to create, edit, or configure forms for model-driven apps. 1. Open a table, such as the account table, and then select the **Forms** area. 1. Select the form that you want, and then on the command bar, select **Edit**. 1. Make changes such as adding columns or [configuring properties](#form-properties). -1. When you're done making changes to the form, select **Save and Publish** > **Save only** to save the form, or select **Save and Publish** to save and have your changes available to app users. +1. When you're done making changes to the form, select **Save only** to save the form, or select **Save and Publish** to save and have your changes available to app users. ## Column suggestions by Copilot Use column suggestions by Copilot to select the best columns to display in your model-driven app form. Instead of using the default fields that Power Apps selects, makers can view suggestions from Copilot. The column suggestions are based on the form name and description. Makers review the suggestions and make adjustments as needed, saving time and improving the quality of the app. - ### Prerequisites - Prerequisites for Copilot in Power Apps features: [Copilot in Power Apps overview (preview)](../canvas-apps/ai-overview.md) diff --git a/powerapps-docs/maker/model-driven-apps/create-model-driven-app.md b/powerapps-docs/maker/model-driven-apps/create-model-driven-app.md index 3b76948763..6ca74f8bcb 100644 --- a/powerapps-docs/maker/model-driven-apps/create-model-driven-app.md +++ b/powerapps-docs/maker/model-driven-apps/create-model-driven-app.md @@ -1,8 +1,9 @@ --- -title: "Create a model-driven app using the designer | MicrosoftDocs" -description: Learn how to create a model-driven app. +title: "Create a model-driven app using the designer" +description: Learn how to create a model-driven app with Power Apps. ms.custom: "" -ms.date: 01/27/2025 +ms.date: 05/06/2025 +ms.update-cycle: 180-days ms.suite: "" ms.tgt_pltfrm: "" ms.topic: get-started @@ -43,13 +44,13 @@ For more information, go to the following articles: 1. Open an unmanaged solution or [create a new solution](../data-platform/create-solution.md). > [!NOTE] - > Unmanaged solutions can be identified when the solution has a **No** in the **Managed** column. - > + > Unmanaged solutions are displayed when the **Unmanaged** filter is selected in the **Solutions** area. + > > Although the **Default Solution** is an unmanaged solution, it is in most circumstances not recommended to create or edit customizations in the default solution. 1. Select **New** > **App** > **Model-driven app**. 1. On the **New model-driven app** dialog box, enter a **Name** and optionally, a **Description**, and then select **Create**. -1. On the command bar select **Add page**, and then on the **New page** screen, select **Dataverse table**, and then select **Next**. +1. On the command bar, select **Add page** > **Dataverse table**. 1. From the list of tables, select **Account**, select **Contact**, and then select **Add**. On the **Pages** left pane, under **Navigation** the layout for the app is displayed. @@ -59,26 +60,20 @@ On the **Pages** left pane, under **Navigation** the layout for the app is displ Notice the preview pane displays your app. When you select a component, such as the **Accounts form**, it affects what's displayed in the preview and property panes. If your environment includes data that you have access to view, that also appears in the preview. :::image type="content" source="media/create-app.png" alt-text="App created with account and contact tables." lightbox="media/create-app.png"::: -To save and publish the app, select **Save**, and then select **Publish**. +To save and publish the app, select **Save and Publish**. To see how the app runs in a full browser window, on the command bar, select **Play**. -## Create an app description with Copilot (preview) - -[This section is prerelease documentation and is subject to change.] +## Create an app description with Copilot If your app is in a [managed environment](/power-platform/admin/managed-environment-overview), you can use AI to help create a description for your app. > [!IMPORTANT] > -> - This is a preview feature. -> - [!INCLUDE [cc-preview-features-definition](../../includes/cc-preview-features-definition.md)] -> - To use this capability your app must be in a [managed environment](/power-platform/admin/managed-environment-overview). -> - Preview features aren’t meant for production use and might have restricted functionality. These features are available before an official release so that customers can get early access and provide feedback. -> - For more information, go to our [preview terms](https://go.microsoft.com/fwlink/?linkid=2189520). +> - To use this capability your app must be in a [managed environment](/power-platform/admin/managed-environment-overview). > - This capability is powered by [ Azure OpenAI Service](/azure/cognitive-services/openai/overview). > - This capability is in process of rolling out, and might not be available in your region yet. -> - This capability might be subject to usage limits or capacity throttling. +> - This capability might be subject to usage limits or capacity throttling. > - To understand capabilities and limitations of AI-powered and Copilot features in Power Apps, go to [Responsible AI FAQs for Power Apps](../common/responsible-ai-overview.md) When you save and publish your app, on the **Publish** dialog box select **Create descriptions using AI** to replace your current description or, if your app doesn't have a description, Copilot generates one for you. @@ -91,12 +86,12 @@ For information that describes the AI impact of Power Apps generate app descript The app AI-generated descriptions are managed by a setting in the Power Platform admin center. -1. Go to https://admin.powerplatform.microsoft.com/environments. +1. Go to **Environments** in the [Power Platform admin center](https://admin.powerplatform.microsoft.com/environments). 1. Select an environment, and then select **Edit managed environments**. 1. Under the section titled **Enable AI-generated app descriptions**, select or clear **AI-generated app descriptions** 1. Select **Save**. -Clear the browser cache and close any activePower Apps (make.powerapps.com) browser windows. The feature is now be enabled or disabled. +Clear the browser cache and close any active Power Apps (make.powerapps.com) browser windows. The feature is now be enabled or disabled. ## Next steps diff --git a/powerapps-docs/maker/model-driven-apps/create-or-edit-model-driven-app-view.md b/powerapps-docs/maker/model-driven-apps/create-or-edit-model-driven-app-view.md index 0087406703..ddc07f4056 100644 --- a/powerapps-docs/maker/model-driven-apps/create-or-edit-model-driven-app-view.md +++ b/powerapps-docs/maker/model-driven-apps/create-or-edit-model-driven-app-view.md @@ -1,7 +1,8 @@ --- title: "Create and edit public model-driven app views | MicrosoftDocs" description: "Learn how to create or edit public or system model-driven app views." -ms.date: 08/26/2024 +ms.date: 05/29/2025 +ms.update-cycle: 180-days ms.subservice: mda-maker ms.topic: tutorial author: jasongre @@ -29,7 +30,7 @@ Public views are available for users to display table records. App makers can cr 1. On the left navigation pane, select **Solutions**, and open the solution you want. [!INCLUDE [left-navigation-pane](../../includes/left-navigation-pane.md)] 1. Open a table, such as the account table, and then select the **Views** area. 1. Select **New view** on the command bar, and then enter a **View name**, and optionally enter a **Description**. -1. If you want to have suggestions from Copilot for the columns to create for the form based on the **View name** and **Description** values, select **Get AI generated column suggestions**. For more information about using this AI feature, go to [Column suggestions by Copilot](create-and-edit-forms.md#column-suggestions-by-copilot). +1. If you want to have suggestions from Copilot for the columns to create for the form based on the **View name** and **Description** values, select **Get AI-generated column suggestions**. For more information about using this AI feature, go to [Column suggestions by Copilot](create-and-edit-forms.md#column-suggestions-by-copilot). 1. Select **Create**. > [!NOTE] @@ -42,7 +43,7 @@ In the solution that you opened earlier, create a new table or find an existing 1. Sign in to [Power Apps](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc) and select an [environment](model-driven-app-glossary.md#environment) 1. On the left navigation pane, select **Solutions**, and open the solution you want. [!INCLUDE [left-navigation-pane](../../includes/left-navigation-pane.md)] 1. Open a table, such as the account table, and then select the **Views** area, and then open the view you that want to edit. -1. In the view designer, select **+ View column** to add additional columns needed within the view. Or, select **Table columns** in the left navigation and drag the table columns into your view. +1. In the view designer, select **+ View column** to add additional columns needed within the view. Or, in the **Table columns** left navigation pane drag the table columns onto your view. > [!TIP] > Only include the specific columns you need for the view, as larger numbers of columns in a view can cause degradation of grid performance. @@ -64,7 +65,7 @@ In the solution that you opened earlier, create a new table or find an existing > [!TIP] > It is also possible to change column order by selecting the column header and then selecting **Move Right** or **Move Left**. -1. Select **Publish** to save the view and make it available for other users in your organization. +1. Select **Save and publish** to save the view and make it available for other users in your organization. ### Next steps diff --git a/powerapps-docs/maker/model-driven-apps/create-remove-pages.md b/powerapps-docs/maker/model-driven-apps/create-remove-pages.md index 30fd568f26..47282312b3 100644 --- a/powerapps-docs/maker/model-driven-apps/create-remove-pages.md +++ b/powerapps-docs/maker/model-driven-apps/create-remove-pages.md @@ -1,10 +1,7 @@ --- title: "Work with pages in model-driven apps" description: Learn how to create, edit, and remove pages in model-driven apps. -ms.custom: "" -ms.date: 01/27/2025 -ms.suite: "" -ms.tgt_pltfrm: "" +ms.date: 07/10/2025 ms.topic: get-started applies_to: - "Dynamics 365 (online)" @@ -13,6 +10,7 @@ applies_to: author: "Mattp123" ms.author: "emcoope" ms.reviewer: "matp" +ms.subservice: mda-maker search.audienceType: - maker --- @@ -29,6 +27,7 @@ To create a page, follow these steps: 1. Sign in to [Power Apps](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc), select **Apps**, and then **Edit** the app you want. 1. In the app designer on the **Pages** tab, select **New**. 1. Select the page type, and then select **Next**: + - **Describe a page**. Use natural language to create a generative page that's generated using AI. More information: [Describe a page using natural language (preview)](generative-pages.md) - **Dataverse table**: Display records of a standard or custom table in a full-page list view. Creating a data view page also adds an associated form page for viewing and editing data on a selected record. More information: [Tables in Dataverse](../data-platform/entity-overview.md) - **Dashboard**: Display charts and tables from multiple entities to visualize data on a single page. Select one or more system, interactive, or Power BI dashboards. More information: [Create or edit model-driven app dashboards](create-edit-dashboards.md) - **Custom page**: Design and build a page that's based on a canvas app. More information: [Overview of custom pages for model-driven apps](model-app-page-overview.md) diff --git a/powerapps-docs/maker/model-driven-apps/create-site-map-app.md b/powerapps-docs/maker/model-driven-apps/create-site-map-app.md index cf67a0470c..2e4bc4082f 100644 --- a/powerapps-docs/maker/model-driven-apps/create-site-map-app.md +++ b/powerapps-docs/maker/model-driven-apps/create-site-map-app.md @@ -311,7 +311,7 @@ To create a model-driven app with the same site map items as the legacy app, the After the new model-driven app is available, the "Dynamics 365 - custom" app should be hidden for nonadmins in all environments. -1. Open [Power Platform admin center](https://admin.powerplatform.microsoft.com/) and select the environment to hide the legacy app. +1. Open [Power Platform admin center](https://admin.powerplatform.microsoft.com/) and open the environment to hide the legacy app. 1. Select **Settings > Product > Behavior**. diff --git a/powerapps-docs/maker/model-driven-apps/custom-page-localize.md b/powerapps-docs/maker/model-driven-apps/custom-page-localize.md index a9f1151c89..cfac6b0d11 100644 --- a/powerapps-docs/maker/model-driven-apps/custom-page-localize.md +++ b/powerapps-docs/maker/model-driven-apps/custom-page-localize.md @@ -5,7 +5,7 @@ ms.custom: "" ms.date: 05/26/2022 ms.reviewer: "" ms.subservice: mda-maker -ms.topic: "article" +ms.topic: how-to author: "mspilde" ms.author: "matp" search.audienceType: diff --git a/powerapps-docs/maker/model-driven-apps/customize-copilot-chat.md b/powerapps-docs/maker/model-driven-apps/customize-copilot-chat.md index fd8be07262..cc6b1e2dbd 100644 --- a/powerapps-docs/maker/model-driven-apps/customize-copilot-chat.md +++ b/powerapps-docs/maker/model-driven-apps/customize-copilot-chat.md @@ -6,7 +6,8 @@ ms.service: powerapps ms.subservice: mda-maker ms.author: hemantg ms.reviewer: matp -ms.date: 03/11/2025 +ms.date: 05/21/2025 +ms.update-cycle: 180-days ms.topic: how-to applies_to: - "powerapps" @@ -14,6 +15,7 @@ search.audienceType: - maker contributors: - makolomi + - Jacob-Wilkinson ms.collection: bap-ai-copilot ai-usage: ai-assisted --- @@ -35,21 +37,17 @@ You customize Copilot chat using [Microsoft Copilot Studio](/microsoft-copilot-s > [!NOTE] > > - Copilot Studio license and agent editing permissions are required to customize Copilot chat. -> - This feature is only available in standalone model-driven apps and [Copilot in Dynamics 365 Sales](/dynamics365/sales/extend-copilot-chat). This feature isn't yet supported for other Dynamics 365 apps. +> - This feature is only available in standalone model-driven apps, which don't include both lead and opportunity tables. This feature isn't yet supported for Dynamics 365 apps. +> - This experience has changed to use [interactive agent](add-agents-to-app.md) and is currently rolling out to regions. 1. Go to https://make.preview.powerapps.com. 1. Open your model-driven app in edit mode, and then on the left navigation bar select **...** > **Configure in Copilot Studio**. You're taken to Microsoft Copilot Studio where your app’s agent is set up. Every standalone model-driven app Copilot has its own dedicated agent available for customizations. Setting up the agent for the first time takes a few seconds. :::image type="content" source="media/mda-command-copilot-studio.png" alt-text="Open Copilot Studio to customize Copilot chat in model-driven app designer." lightbox="media/mda-command-copilot-studio.png"::: - > [!IMPORTANT] - > - If **...** doesn't appear in the left navigation pane, the feature isn't available yet in your environment. You can provision a new [early release environments](/power-platform/admin/early-release) to access the feature. This is a preview feature and only available in early release environments. 1. Customize your agent by adding [knowledge sources](copilot-chat-mda-knowledge.md) or [topics](copilot-chat-mda-topics.md). Customizing this agent only impacts the Copilot chat of the specific app it's provisioned for. :::image type="content" source="media/mda-copilot-chat-copilot-studio.png" alt-text="Model-driven-app Copilot chat in Copilot Studio" lightbox="media/mda-copilot-chat-copilot-studio.png"::: 1. **Publish** the agent after you make customizations to ensure changes are available to users. -## Known limitations - -- Copilot chat agents currently aren’t identified by the platform as a dependency. You must manually add the relevant Copilot chat agent to your model-driven app solution before export and import to another environment. -- **Configure in Copilot Studio** action can create agents with the same display name for apps that have the same initial characters in the app name. When this occurs, rename the agent while publishing to avoid confusion. +Power Apps creates a platform-owned agent named **Copilot in Power Apps** in each environment. This agent is only editable by a Power Platform environment admin and isn’t published to any channels by default. Although this agent can be viewed in Microsoft Copilot Studio, this agent shouldn't be edited since it isn't used by model-driven apps. ## Related information diff --git a/powerapps-docs/maker/model-driven-apps/deactivate-app.md b/powerapps-docs/maker/model-driven-apps/deactivate-app.md index cb42476cb7..7d6d3f8613 100644 --- a/powerapps-docs/maker/model-driven-apps/deactivate-app.md +++ b/powerapps-docs/maker/model-driven-apps/deactivate-app.md @@ -1,12 +1,12 @@ --- -title: Hide a model-driven app | MicrosoftDocs -description: Find out how to hide a model-driven app from users with Power Apps +title: Hide a model-driven app +description: Find out how to hide a model-driven app from users with Power Apps. Keywords: author: matp ms.subservice: mda-maker ms.author: ansja ms.reviewer: matp -ms.date: 08/17/2022 +ms.date: 07/15/2025 ms.topic: how-to applies_to: - "powerapps" @@ -29,8 +29,10 @@ Turn off a model-driven app to hide it from users who otherwise would be able to The **Status** of the app appears as **Off** from the solution's **Objects** view. > [!NOTE] +> > - Apps that are turned off are still visible to other users from the **Apps** area of Power Apps. > - While a model-driven app is in a turned off state, it can't be played or shared from make.powerapps.com, however direct links to the app will continue to work. +> - Managed model-driven apps can't be turned off. ## Turn on a model-driven app diff --git a/powerapps-docs/maker/model-driven-apps/define-data-model-driven-app.md b/powerapps-docs/maker/model-driven-apps/define-data-model-driven-app.md index 1b02c55b2d..2f57407f81 100644 --- a/powerapps-docs/maker/model-driven-apps/define-data-model-driven-app.md +++ b/powerapps-docs/maker/model-driven-apps/define-data-model-driven-app.md @@ -12,7 +12,7 @@ ms.subservice: mda-maker ms.author: matp ms.date: 06/27/2018 -ms.topic: conceptual +ms.topic: article search.audienceType: - maker --- diff --git a/powerapps-docs/maker/model-driven-apps/design-considerations-main-forms.md b/powerapps-docs/maker/model-driven-apps/design-considerations-main-forms.md index 96f289c874..2729aeb2db 100644 --- a/powerapps-docs/maker/model-driven-apps/design-considerations-main-forms.md +++ b/powerapps-docs/maker/model-driven-apps/design-considerations-main-forms.md @@ -7,7 +7,7 @@ ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/model-driven-apps/design-page-for-model-app.md b/powerapps-docs/maker/model-driven-apps/design-page-for-model-app.md index 71d0a1b699..c6f8f78ecf 100644 --- a/powerapps-docs/maker/model-driven-apps/design-page-for-model-app.md +++ b/powerapps-docs/maker/model-driven-apps/design-page-for-model-app.md @@ -5,7 +5,7 @@ ms.custom: "" ms.date: 01/28/2025 ms.reviewer: "" ms.subservice: mda-maker -ms.topic: "conceptual" +ms.topic: how-to author: "aorth" ms.author: "matp" search.audienceType: @@ -61,7 +61,7 @@ More information: ## Enable responsive layout with container control -Responsive custom page layouts are defined by building a hierarchy of **Horizontal layout container** and **Vertical layout container** controls. These controls are found in the canvas app designer under **Layout** on the **Insert** tab. +Responsive custom page layouts are defined by building a hierarchy of **Horizontal layout container** and **Vertical layout container** controls. These controls are found in Power Apps Studio under **Layout** on the **Insert** tab. Set the minimum screen height and width on the **App** object to prevent page level scroll bars and use a vertical body scroll bar. diff --git a/powerapps-docs/maker/model-driven-apps/design-performant-forms.md b/powerapps-docs/maker/model-driven-apps/design-performant-forms.md index bba2753061..b6a0dacd15 100644 --- a/powerapps-docs/maker/model-driven-apps/design-performant-forms.md +++ b/powerapps-docs/maker/model-driven-apps/design-performant-forms.md @@ -7,7 +7,7 @@ ms.reviewer: "Mattp123" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: how-to applies_to: - "PowerApps" author: "mspilde" diff --git a/powerapps-docs/maker/model-driven-apps/design-productive-forms.md b/powerapps-docs/maker/model-driven-apps/design-productive-forms.md index ffe50e00f1..04f3604d86 100644 --- a/powerapps-docs/maker/model-driven-apps/design-productive-forms.md +++ b/powerapps-docs/maker/model-driven-apps/design-productive-forms.md @@ -7,7 +7,7 @@ ms.reviewer: "Mattp123" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article applies_to: - "PowerApps" author: "mspilde" diff --git a/powerapps-docs/maker/model-driven-apps/embed-canvas-app-in-form.md b/powerapps-docs/maker/model-driven-apps/embed-canvas-app-in-form.md index 535da506eb..01e44fa4c5 100644 --- a/powerapps-docs/maker/model-driven-apps/embed-canvas-app-in-form.md +++ b/powerapps-docs/maker/model-driven-apps/embed-canvas-app-in-form.md @@ -6,7 +6,7 @@ ms.date: 01/22/2025 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" @@ -22,7 +22,7 @@ search.audienceType: --- # Embed a canvas app on a model-driven form -Canvas apps enable makers to easily design and create custom layouts using the low-code, WYSIWYG canvas app designer. Canvas apps also enable makers to connect and display data from over 400 data sources. +Canvas apps enable makers to easily design and create custom layouts using the low-code, WYSIWYG Power Apps Studio. Canvas apps also enable makers to connect and display data from over 400 data sources. ## Embedded canvas apps can help you build better solutions diff --git a/powerapps-docs/maker/model-driven-apps/embedded-canvas-app-customize-screen.md b/powerapps-docs/maker/model-driven-apps/embedded-canvas-app-customize-screen.md index 8f6accfe24..2ebd0987e5 100644 --- a/powerapps-docs/maker/model-driven-apps/embedded-canvas-app-customize-screen.md +++ b/powerapps-docs/maker/model-driven-apps/embedded-canvas-app-customize-screen.md @@ -28,7 +28,7 @@ You can customize the screen size (tablet layout only) and orientation of a canv 1. Follow the steps to add or edit an embedded canvas app on a model-driven form. - [Add an embedded canvas app on a model-driven form](embedded-canvas-app-add-classic-designer.md) - [Edit a canvas app embedded on a model-driven form](embedded-canvas-app-edit-classic-designer.md) -2. With the canvas app open in Power Apps Studio, select the **File** tab, select **Settings**, and then select the **Screen size + orientiation** tab to set the orientation screen and orientation of the canvas app. More information: [Change screen size and orientation of a canvas app in Power Apps](../canvas-apps/set-aspect-ratio-portrait-landscape.md) +2. With the canvas app open in Power Apps Studio, select the **File** tab, select **Settings**, and then select the **Screen size + orientation** tab to set the orientation screen and orientation of the canvas app. More information: [Change screen size and orientation of a canvas app in Power Apps](../canvas-apps/set-aspect-ratio-portrait-landscape.md) ### See also diff --git a/powerapps-docs/maker/model-driven-apps/embedded-canvas-app-guidelines.md b/powerapps-docs/maker/model-driven-apps/embedded-canvas-app-guidelines.md index 1fae1bf1ed..5b333f813b 100644 --- a/powerapps-docs/maker/model-driven-apps/embedded-canvas-app-guidelines.md +++ b/powerapps-docs/maker/model-driven-apps/embedded-canvas-app-guidelines.md @@ -6,7 +6,7 @@ ms.date: 01/10/2024 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: troubleshooting-general author: "Mattp123" ms.subservice: mda-maker ms.author: "matp" diff --git a/powerapps-docs/maker/model-driven-apps/embedded-canvas-app-properties-actions.md b/powerapps-docs/maker/model-driven-apps/embedded-canvas-app-properties-actions.md index 4df7773f29..0fc3452f00 100644 --- a/powerapps-docs/maker/model-driven-apps/embedded-canvas-app-properties-actions.md +++ b/powerapps-docs/maker/model-driven-apps/embedded-canvas-app-properties-actions.md @@ -6,7 +6,7 @@ ms.date: 03/29/2024 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/model-driven-apps/faqs-timeline-control.md b/powerapps-docs/maker/model-driven-apps/faqs-timeline-control.md index 124944763c..fd4afe837e 100644 --- a/powerapps-docs/maker/model-driven-apps/faqs-timeline-control.md +++ b/powerapps-docs/maker/model-driven-apps/faqs-timeline-control.md @@ -1,8 +1,8 @@ --- title: "FAQs for timeline control in Power Apps | MicrosoftDocs" description: "Frequently asked questions (FAQs) for the timeline control in Power Apps" -ms.date: 10/05/2023 -ms.topic: article +ms.date: 07/14/2025 +ms.topic: faq author: "lalexms" ms.subservice: mda-maker ms.author: "laalexan" @@ -17,7 +17,11 @@ search.audienceType: For instructions about how to enable and use the command checker, go to [Troubleshooting ribbon issues in Power Apps](/troubleshoot/power-platform/power-apps/create-and-use-apps/ribbon-issues) -If an error dialog box displays "We can't compete the action you've selected" when trying to use the command action for activities on a timeline, it might be that the command action is hidden by custom rules. You can confirm by checking if the same action is hidden from **Related** > **Activities**. +If you try to use the command action for activities on a timeline but the command action is hidden by custom rules, you might get the following error message: + +"We can't compete the action you've selected." + +You can check whether the action is hidden by navigating to **Related** > **Activities**. :::image type="content" source="media/related-activities.png" alt-text="Go to related activities in the timeline"::: @@ -39,7 +43,7 @@ If you can't find the command action from the related activity grid, you can fur :::image type="content" source="media/start-command-checker.png" alt-text="Start command checker"::: -1. From the command checker page that is displayed, select **Group Id: Mscrm.SubGrid.activitypointer.MainTab.Actions**, select a hidden command such as **Mark Complete (hidden)**, and then select the **Command properties** tab on the right to find out what custom rules are used to hide the command action. +1. From the command checker page that is displayed, select **Group Id: Mscrm.SubGrid.activitypointer.MainTab.Actions**, select a hidden command such as **Mark Complete (hidden)**, and then select the **Command properties** tab to find out what custom rules are used to hide the command action. :::image type="content" source="media/find-group-id.png" alt-text="Find group ID"::: @@ -54,7 +58,7 @@ Posts in the timeline are only available for Dynamics 365 app enabled Dataverse :::image type="content" source="media/faqs-timeline-control/enable-posts-csac.png" alt-text="Enable post from Customer Service admin center"::: -1. Check if the current table has the post configuration property activated. Go to **Settings** > **Activity Feeds configurations** > **Post Configurations**. In the example below, it's active for cases. +1. Check if the current table has the post configuration property activated. Go to **Settings** > **Activity Feeds configurations** > **Post Configurations**. In the following example, it's active for cases. :::image type="content" source="media/faqs-timeline-control/post-configurations-enabled.png" alt-text="Enabled post configuration for tables"::: @@ -66,9 +70,13 @@ Posts in the timeline are only available for Dynamics 365 app enabled Dataverse :::image type="content" source="media/faqs-timeline-control/enable-user-posts-property.png" alt-text="Enable user post property"::: +## Do timeline records automatically refresh? + +No. The timeline doesn’t automatically refresh records. You must manually refresh the timeline to see updates made to a record. For example, if you update a record when you reply to an email, you must manually refresh the timeline to see the updated record. + ## Why do the "Modified On" columns of my records get changed when no changes are made to them? -This can be caused by the cascading behavior with the parent record. For example, when a case is assigned to another user. Go to [Table Relationships](../data-platform/create-edit-entity-relationships.md) for information about how to configure this behavior. +The cascading behavior with the parent record can cause this scenario. For example, it can occur when a case is assigned to another user. Go to [Table Relationships](../data-platform/create-edit-entity-relationships.md) for information about how to configure this behavior. Alternatively, you can configure timeline to sort notes by their **Created on** date. More information: [Notes on timeline](set-up-timeline-control.md#notes-on-timeline) diff --git a/powerapps-docs/maker/model-driven-apps/form-component-control.md b/powerapps-docs/maker/model-driven-apps/form-component-control.md index b2a5bc04de..ee4882fdf7 100644 --- a/powerapps-docs/maker/model-driven-apps/form-component-control.md +++ b/powerapps-docs/maker/model-driven-apps/form-component-control.md @@ -1,8 +1,8 @@ --- -title: "Edit table records directly from another table’s main form | MicrosoftDocs" -description: Learn how to design a main form that can be used to edit a related table record. +title: "Edit table records directly from another table’s main form" +description: Learn how to design a main form that can be used to edit a related table record with Power Apps. ms.custom: "" -ms.date: 10/07/2024 +ms.date: 04/28/2025 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" @@ -11,7 +11,7 @@ applies_to: - "PowerApps" author: "Mattp123" ms.subservice: mda-maker -ms.author: "mspilde" +ms.author: "mijosh" search.audienceType: - maker --- @@ -83,7 +83,7 @@ This section describes form component behavior when used in a model-driven app. ### Record selection -In order for the form component control to show a form, the lookup column it's bound to needs to have a value. Otherwise, the control will show the message **Source record not selected**. One way to set the value is to add to the form a lookup control that is bound to the same lookup column as the form component control. When you use the lookup control to change the lookup column value, the form component control will show a form with the data for the new lookup column value. +In order for the form component control to show a form, the lookup column it's bound to needs to have a value. Otherwise, the control shows the message **Source record not selected**. One way to set the value is to add to the form a lookup control that is bound to the same lookup column as the form component control. When you use the lookup control to change the lookup column value, the form component control shows a form with the data for the new lookup column value. ### Column validation @@ -97,15 +97,15 @@ Once the validation stage is passed, data is sent to Dataverse for each record. ### Notifications -Notifications on the form component are aggregated into the notifications of the main form. For instance, if there are invalid columns in the form component and you try to save, the invalid column notification will appear at the top of the main form rather than in the form component. +Notifications on the form component are aggregated into the notifications of the main form. For instance, if there are invalid columns in the form component and you try to save, the invalid column notification appears at the top of the main form rather than in the form component. ### Error handling -If there are multiple errors during save, only one error will be shown to the user. If the user can make changes to fix the first error, and saves the next error will be visible. The user will need to continue saving until all errors have been resolved. +If there are multiple errors during save, only one error is shown to the user. If the user can make changes to fix the first error, and saves the next error will be visible. The user needs to continue saving until all errors are resolved. ### Changing records with unsaved changes -If there are unsaved changes in a form for a form component and a user tries to change the lookup column the form component is bound to, the user will be alerted about this change. +If there are unsaved changes in a form for a form component and a user tries to change the lookup column the form component is bound to, the user is alerted about this change. ### Client API @@ -117,7 +117,7 @@ Note the following limitations when you add the form component control to a tabl - The form component control only supports rendering main forms. Similarly, support for adding a form component control is only supported with main forms. Other form types, such as quick create, quick view, and card aren't supported. -- Forms with a business process flow aren’t currently supported in either the main table form or the related table form. If you have a form with a business process flow, you may encounter unexpected behavior. We recommend that you don't use a form component with a form that uses a business process flow. +- Forms with a business process flow aren’t currently supported in either the main table form or the related table form. If you have a form with a business process flow, you might encounter unexpected behavior. We recommend that you don't use a form component with a form that uses a business process flow. - The form component control doesn't support embedded form component controls, such as adding a form component control to a form that is used by a form component control. @@ -127,22 +127,24 @@ Note the following limitations when you add the form component control to a tabl - Using the same form for different form component controls on a single form isn't supported. -- The form that you use with a form component must be [included in your app](add-edit-app-components.md#add-a-component). If it isn't, or if the current user doesn't have access to the form, it will fall back to the top-most main form that is included in the app and available to the user (based on form order). +- The form that you use with a form component must be [included in your app](add-edit-app-components.md#add-a-component). If it isn't, or if the current user doesn't have access to the form, it falls back to the top-most main form that is included in the app and available to the user (based on form order). - All components used by the form in a form component must be [included in your app](add-edit-app-components.md#add-a-component). These components include related tables, views, and business process flows. If they aren't, they won't be available in the form or there might be unexpected behavior. - Form component controls have certain limitations when rendered in multi-session apps. Specifically, dynamically added handlers on the form component form such as `addOnSave` or `addOnChange` might not run after switching multisession tabs. -- You might notice that the timeline wall might not update when a column that is used to set the timeline wall has changed in the form component. When the page is refreshed the timeline wall will update as expected. +- You might notice that the timeline wall might not update when a column that is used to set the timeline wall has changed in the form component. When the page is refreshed the timeline wall updates as expected. - On mobile, the timeline control doesn't currently appear in the form component control. -- For subgrids, the **See all records** and **See associated records** command buttons won't be available if they're rendered inside a form component. +- For subgrids, the **See associated records** command button won't be available if the subgrid is rendered inside a form component. - Form component controls aren't supported in bulk edit dialogs. They won't appear in the form in the bulk edit dialog by default and any changes made to related table records with them won't be saved. - When duplicate records are detected when a form component control is saved, users might not be able to view the duplicates to resolve conflicts. +- Form validation only happens for the required fields that are rendered. Validation isn't possible for required fields that aren't visible or not rendered or present on another tab. + ### See also [Use custom controls for model-driven app data visualizations](use-custom-controls-data-visualizations.md) diff --git a/powerapps-docs/maker/model-driven-apps/form-designer-add-configure-agent-response.md b/powerapps-docs/maker/model-driven-apps/form-designer-add-configure-agent-response.md new file mode 100644 index 0000000000..ec7e28ba2b --- /dev/null +++ b/powerapps-docs/maker/model-driven-apps/form-designer-add-configure-agent-response.md @@ -0,0 +1,102 @@ +--- +title: "Add agent response using the form designer" +description: Learn how to add the agent response component to model forms to call Copilot Studio topics. +ms.date: 07/07/2025 +ms.reviewer: matp +ms.topic: how-to +author: adrianorth +ms.subservice: mda-maker +ms.author: aorth +search.audienceType: + - maker +--- +# Add agent response with the form designer (preview) + +[!INCLUDE [preview-banner](~/../shared-content/shared/preview-includes/preview-banner.md)] + +Add the agent response component to a model-driven app form, which can directly call a Microsoft Copilot Studio topic and display the response to the user. This builds on the [Agent API executeEvent](../../developer/component-framework/bring-intelligence-using-agent-apis.md) and simplifies usage by not requiring a new custom component. The implicit context of the app, page, and record are available in Copilot Studio. + +This component supports the following responses from Copilot Studio: + +* Markdown +* Adaptive card +* Image +* Video + +[!INCLUDE [preview-note-pp.md](../../../shared/preview-includes/preview-note-pp.md)] + +## Prerequisites + +Requires the **Allow users to analyze data using an AI-powered chat experience in canvas and model-driven apps** environment setting enabled for model-driven apps. More information: [Copilot environment settings](/power-platform/admin/settings-features?tabs=new#copilot-preview) + +## Add an agent response component to a form + +1. Open the form designer to create or edit a form. More information: [Create a form](create-and-edit-forms.md#create-a-form) or [Edit a form](create-and-edit-forms.md#edit-a-form) +1. In the form designer, select **Component** on the command bar. +1. In the Components pane, expand **Artificial Intelligence** +1. Drag **Agent Response** onto the form canvas. + + :::image type="content" source="media/form-designer-add-configure-agent-response/form-designer-components-agent-response.png" alt-text="Agent response in components pane."::: + +1. In the **Add Agent Response** dialog, enter the **Event name** from the topic in Copilot Studio in the **Static value** box. More information: [Find the event name for a topic in Copilot Studio](#find-the-event-name-for-a-topic-in-copilot-studio) + ![Configure agent response event name](media/form-designer-add-configure-agent-response/form-designer-configure-agent-response.png "Configure agent response event name") + > [!NOTE] + > The **Bind to table column** option isn't supported for this component. +1. Select **Save and publish** on the command bar. +1. Open the form in a model-driven app to test the component. + + > [!NOTE] + > The form designer preview displays the warning message "Agent Response is only available when you play the app" since live preview isn't yet supported. + +## Find the event name for a topic in Copilot Studio + +1. Open the topic in Copilot Studio and find the **Trigger** node. +1. Verify the trigger type is **A custom client event occurs** or **Event received**. +1. Within the **Trigger** node, select **Edit**. + + :::image type="content" source="media/form-designer-add-configure-agent-response/copilot-studio-topic-trigger-event.png" alt-text="Copilot Studio Trigger custom client event."::: + +1. Within the **On Event Activity properties** pane, copy the **Event name** property string value to be passed from the agent response component. More information: [Change the trigger for a topic](/microsoft-copilot-studio/authoring-triggers) + + :::image type="content" source="media/form-designer-add-configure-agent-response/copilot-studio-topic-trigger-event-properties.png" alt-text="Copilot Studio Trigger On Event property pane."::: + +## Accessing app context + +When the agent response component calls the Copilot Studio topic, it passes context for the app through a set of variables. The following are context variables available as [Copilot Studio global variables](/microsoft-copilot-studio/authoring-variables-bot). + +[!INCLUDE [app-context-table](../../developer/model-driven-apps/clientapi/includes/app-context-table.md)] + +## Accessibility + +When the Copilot Studio response is an Adaptive Card, ensure the following best practices are followed to have an accessible experience. + +- [Design best practices - Adaptive Cards](https://adaptivecards.microsoft.com/?topic=design-best-practices) +- [Image - Adaptive Cards](https://adaptivecards.microsoft.com/?topic=Image) + +## Limitations + +The following component properties are currently not supported: + +- Label +- Hide label +- Hide on phone +- Lock +- Read-only +- Component width +- Component height +- Bind to table column + +The component does not support passing additional context to MCS. If additional context is needed, create a custom PCF and use [Agent API executeEvent](../../developer/component-framework/bring-intelligence-using-agent-apis.md) + +The component isn't supported for mobile or tablets. + +## Related articles + +[FAQ for Agent APIs and Agent Response component](../../maker/common/faq-agent-api-component.md) + +[Agent API executeEvent](../../developer/component-framework/bring-intelligence-using-agent-apis.md) + +[Overview of the model-driven form designer](form-designer-overview.md)
    +[Add, configure, move, or delete components on a form](add-move-configure-or-delete-components-on-form.md) + +[!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/model-driven-apps/form-designer-add-configure-lookup.md b/powerapps-docs/maker/model-driven-apps/form-designer-add-configure-lookup.md index e9f851a02e..e5ed76e7e1 100644 --- a/powerapps-docs/maker/model-driven-apps/form-designer-add-configure-lookup.md +++ b/powerapps-docs/maker/model-driven-apps/form-designer-add-configure-lookup.md @@ -6,7 +6,7 @@ ms.date: 08/05/2022 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/model-driven-apps/form-designer-add-configure-quickview.md b/powerapps-docs/maker/model-driven-apps/form-designer-add-configure-quickview.md index 9b64f17582..04a4fef2a6 100644 --- a/powerapps-docs/maker/model-driven-apps/form-designer-add-configure-quickview.md +++ b/powerapps-docs/maker/model-driven-apps/form-designer-add-configure-quickview.md @@ -7,7 +7,7 @@ ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/model-driven-apps/form-designer-add-configure-subgrid.md b/powerapps-docs/maker/model-driven-apps/form-designer-add-configure-subgrid.md index e0ffb7204d..cb86456d74 100644 --- a/powerapps-docs/maker/model-driven-apps/form-designer-add-configure-subgrid.md +++ b/powerapps-docs/maker/model-driven-apps/form-designer-add-configure-subgrid.md @@ -6,7 +6,7 @@ ms.date: 09/20/2024 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/model-driven-apps/form-designer-header-properties.md b/powerapps-docs/maker/model-driven-apps/form-designer-header-properties.md index 112798d671..8227f3769d 100644 --- a/powerapps-docs/maker/model-driven-apps/form-designer-header-properties.md +++ b/powerapps-docs/maker/model-driven-apps/form-designer-header-properties.md @@ -6,7 +6,7 @@ ms.date: 01/06/2025 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: how-to author: "Aneesmsft" ms.subservice: mda-maker ms.author: "matp" diff --git a/powerapps-docs/maker/model-driven-apps/form-designer-properties.md b/powerapps-docs/maker/model-driven-apps/form-designer-properties.md index 91d8683926..f4b9b2595f 100644 --- a/powerapps-docs/maker/model-driven-apps/form-designer-properties.md +++ b/powerapps-docs/maker/model-driven-apps/form-designer-properties.md @@ -7,7 +7,7 @@ ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/model-driven-apps/form-properties-legacy.md b/powerapps-docs/maker/model-driven-apps/form-properties-legacy.md index 2bdd8c2dbb..4bf079cdf6 100644 --- a/powerapps-docs/maker/model-driven-apps/form-properties-legacy.md +++ b/powerapps-docs/maker/model-driven-apps/form-properties-legacy.md @@ -11,7 +11,7 @@ applies_to: ms.subservice: mda-maker ms.author: matp ms.date: 10/17/2023 -ms.topic: conceptual +ms.topic: article ms.assetid: 4ed30bb7-dca1-4de8-80f3-842152ea921a search.audienceType: - maker diff --git a/powerapps-docs/maker/model-driven-apps/generative-pages.md b/powerapps-docs/maker/model-driven-apps/generative-pages.md new file mode 100644 index 0000000000..e17429dd4b --- /dev/null +++ b/powerapps-docs/maker/model-driven-apps/generative-pages.md @@ -0,0 +1,116 @@ +--- +title: Generate a page using natural language with model-driven apps in Power Apps +description: Learn how to use natural language to create an AI-generative page to use with a model-driven app. +author: jasongre +ms.subservice: mda-maker +ms.author: jasongre +ms.reviewer: matp +ms.date: 07/25/2025 +ms.topic: how-to +applies_to: + - PowerApps +search.audienceType: + - maker +ms.collection: + - bap-ai-copilot +--- +# Generate a page using natural language (preview) + +[!INCLUDE [preview-note-pp.md](../../../shared/preview-includes/preview-banner.md)] + +Use natural language to build a *generative page* that's created using AI. Generative pages are an AI-driven experience designed to simplify, accelerate, and improve your app design process in model-driven apps. By interacting with the app agent, you create fully functional pages in your model-driven apps by describing what you need in natural language and specifying which Microsoft Dataverse tables to reference. You can even attach an image of what you’d like the page to look like. + +After you describe the page, the system then processes your requirements and specifications and intelligently generates React code that covers both the front-end user experience by selecting the right components and determining the best layout, and the corresponding business logic. Through an interactive, conversational experience, you can refine the page design in real time, adjusting elements, layout, and functionality to perfectly match your vision. + +[!INCLUDE [preview-note-pp.md](../../../shared/preview-includes/preview-note-pp.md)] + +## Prerequisites + +- The Power Platform environment must be located in the US region. +- The **Enable new AI-powered Copilot features for people who make apps** environment setting must be enabled. More information: [Copilot environment setting](/power-platform/admin/settings-features?tabs=new#copilot-preview) +- This feature is being gradually rolled out across regions and might not be available yet in your region. + +## Create a generative page in model-driven apps + +1. Sign in to [Power Apps](https://make.powerapps.com). +1. Open a model-driven app for editing. +1. In the app designer, select **Add a page** > **Describe a page**. + + A full-page generative page experience opens. +1. In the textbox, type a description of the type of page you want to create. The description should include functional requirements and optionally any UX specifications. For example, you could enter *Build a page showing Account records as a gallery of cards using a modern look and feel. Include name, entityimage on the top, and website, email, phone number. Make the gallery scrollable by using data from the Account table*. +1. Add tables and images as appropriate by selecting **Add data** > **Add table**. You can link up to six Dataverse tables. In the screenshot, the account table is added. + :::image type="content" source="media/generative-page/add-table-generative-page.png" alt-text="Add a table to the generative page" lightbox="media/generative-page/add-table-generative-page.png"::: + +1. Optionally upload an image to guide the UI of your generated page by selecting **Add data** > **Attach image**. This can be a rough napkin sketch or a higher resolution image. +1. When you're finished describing the page, select **Generate page**. + +When the agent finishes building your page, the user experience is displayed. If the user experience isn't already displayed, you can view it by selecting **Preview**. + +:::image type="content" source="media/generative-page/generated-page-user-exp.png" alt-text="A generated page user experience"::: + +## View the generated code, iterate, and publish + +Select **Code** to view the code generated by the app agent. + +> [!NOTE] +> Currently, you can't edit the generative page code. + +Refine the output by iteratively chatting with the app agent to fix errors, adjust layout, or add more functionality. + +:::image type="content" source="media/generative-page/generative-page-view-code-iterate.png" alt-text="View generative page code and iterate on the design"::: + +When you're satisfied with the generated page, select **Save and Publish** to make the page available when you play the model-driven app. + +## Limitations + +These are the current limitations of generative pages: + +- Working with data. Your page can connect to only Dataverse tables (up to 6 for a single page). You can perform create, read, update, and delete (CRUD) operations against these tables. No other data sources can be used. +- You can't edit the generated code. +- Generated pages can't be exported and imported in other Power Platform with Dataverse environments. +- The publish action is only applied to the current generative page. As such, you must select **Publish** on each generative page in your app for it to be available in the played app. +- You must add all needed Dataverse tables in the first prompt. +- Only US English is supported. +- Collaboration isn't supported. Ensure only one maker is working on a generative page at a time to avoid unintended conflicts. +- You can only access your last 5 iterations with the agent. + +## Frequently asked questions + +### Can I start designing my app in Plan Designer and then use generative pages? + +Yes, while there's currently no direct integration between Plan designer and generative pages, you can use Plan designer to define your tables and apps, and then switch to the app designer to create any desired generative pages. + +### Are there any additional fees or credits needed to use generative pages? + +No, the maker experience for generative pages (and plan designer) do not require any additional AI or message credits. + +### What kind of images work best for guiding the UI generation? + +Clear sketches or wireframes—whether hand-drawn or digital—are most effective, though whiteboard or napkin drawings can also be used. + +### Can I use generative pages with canvas apps or other app types? + +No, generative pages are currently only supported in model-driven apps. + +### Is there a way to reuse or clone a generative page across environments? + +Currently, you can't move generated pages between environments. + +### Can I edit the generated code manually? + +No. Code editing isn't currently supported. You can view the generated code, but any refinements must be made through the conversational interface with the app agent. + +## How do I give feedback on the feature? + +The best way to give feedback on generative pages is to use the thumbs up/down buttons in the chat experience that are available after each iteration. We also strongly encourage you to select **Yes** on **Share relevant content samples and additional log files** so that we can debug or attempt to recreate any issues you encountered with the feature. + +## What if I don't see generative pages enabled in my environment? + +There are two reasons you may not see the feature enabled in your environment: + +- Confirm your environment is in the US region. +- Power Platform admins should check that the **Enable new AI-powered Copilot features for people who make apps** environment setting is enabled. This setting can be found in the Power Platform admin center under environment > **Settings** > **Features**. + +## Related articles + +[FAQ about generative pages in model-driven apps](../common/faq-generative-pages-model-driven.md) diff --git a/powerapps-docs/maker/model-driven-apps/guide-staff-through-common-tasks-processes.md b/powerapps-docs/maker/model-driven-apps/guide-staff-through-common-tasks-processes.md index d380d99a16..f2142cc49a 100644 --- a/powerapps-docs/maker/model-driven-apps/guide-staff-through-common-tasks-processes.md +++ b/powerapps-docs/maker/model-driven-apps/guide-staff-through-common-tasks-processes.md @@ -7,7 +7,7 @@ ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/model-driven-apps/main-form-presentations.md b/powerapps-docs/maker/model-driven-apps/main-form-presentations.md index 1020f7e880..0f71fe34ce 100644 --- a/powerapps-docs/maker/model-driven-apps/main-form-presentations.md +++ b/powerapps-docs/maker/model-driven-apps/main-form-presentations.md @@ -6,7 +6,7 @@ ms.date: 04/19/2022 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/model-driven-apps/manage-auto-save.md b/powerapps-docs/maker/model-driven-apps/manage-auto-save.md index f86158361b..e0424f653d 100644 --- a/powerapps-docs/maker/model-driven-apps/manage-auto-save.md +++ b/powerapps-docs/maker/model-driven-apps/manage-auto-save.md @@ -2,11 +2,11 @@ title: "Disable AutoSave in a model-driven app with Power Apps | MicrosoftDocs" description: Learn how to configure AutoSave for a model-driven app in Power Apps. ms.custom: "" -ms.date: 04/18/2024 +ms.date: 04/21/2025 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" @@ -22,8 +22,6 @@ search.audienceType: AutoSave helps app users focus on their work without having to manage saving data in the form. Most people appreciate not having to explicitly save data each time they update a row, but some organizations might have customizations that were designed expecting an explicit save. For these organizations there are options to manage how AutoSave is applied. - - ## How AutoSave works By default all main forms for [Updated tables and classic tables](create-design-forms.md#updated-versus-classic-tables) have AutoSave enabled. After a row is created (initially saved), any changes made to a form are automatically saved 30 seconds after the change is made. If no changes are made in the form, the automatic save doesn't occur while the form is open. After a change is made, the 30-second period before an AutoSave begins again. If someone else has updated the same row while you're editing it, those changes are retrieved and displayed in the form when AutoSave occurs. @@ -32,31 +30,29 @@ AutoSave helps app users focus on their work without having to manage saving dat You can select this button to save the row and refresh data in the form immediately. When AutoSave is enabled the row is saved whenever you navigate away from a row or close a separate window displaying a row. There's no need for the **Save & Close** button that appears in forms for tables that aren't updated. - ## Should you disable AutoSave? -If you have plug-ins, workflows, or form scripts that execute when a row is saved, they'll run each time AutoSave occurs. This might lead to undesirable behaviors if these extensions weren't designed to work with AutoSave. Whether AutoSave is enabled or not, plug-ins, workflows, and form scripts should be designed to look for specific changes, and shouldn't execute indiscriminately for each save event. + +If you have plug-ins, workflows, or form scripts that execute when a row is saved, they run each time AutoSave occurs. This pattern might lead to undesirable behaviors if these extensions weren't designed to work with AutoSave. Whether AutoSave is enabled or not, plug-ins, workflows, and form scripts should be designed to look for specific changes, and shouldn't execute indiscriminately for each save event. -If you have auditing configured for a table, each save is treated like a separate update. If someone lingers on a form with unsaved changes for more than 30 seconds, you'll see an another entry only if they add more data after the AutoSave is performed. If you have reports that depend on auditing data and treat each save as an individual "touch" of a row, you might see an increase in the frequency of touches. If you're using this approach, you should consider that individual user behaviors make it an unreliable metric with or without AutoSave enabled. +If you have auditing configured for a table, each save is treated like a separate update. If someone lingers on a form with unsaved changes for more than 30 seconds, you observe another entry only if they add more data after the AutoSave is performed. If you have reports that depend on auditing data and treat each save as an individual "touch" of a row, you might see an increase in the frequency of touches. If you're using this approach, you should consider that individual user behaviors make it an unreliable metric with or without AutoSave enabled. - ## Disable AutoSave for the organization If you determine that AutoSave causes problems with extensions you're using, Power Platform admins can disable it for the environment. There's no setting to disable AutoSave for individual tables or forms. -1. Sign into the [Power Platform admin center](https://admin.powerplatform.microsoft.com), go to **Environments**, and then open the environment you want. +1. Sign into the [Power Platform admin center](https://admin.powerplatform.microsoft.com), go to **Manage** > **Environments**, and then open the environment you want. 1. Select **Settings** on the command bar. 1. Expand **Product**, and then select **Behavior**. 1. Under **Basic behavior**, for the **Auto save**, select **Off**. - ## Disable AutoSave for a form If you want to disable AutoSave for specific table forms, you can add code to the `OnSave` event in a table. > [!NOTE] -> By using this method, auto-save isdisabled for the form, but data will still be saved when you select the ![Auto save button.](media/auto-save-icon.png "Auto save button") button in the lower-right corner. If you attempt to navigate away from a form or close a form where data has been changed you get a prompt to save changes before you're allowed to navigate away or close the form. +> By using this method, auto-save is disabled for the form, but data is still saved when you select the ![Auto save button.](media/auto-save-icon.png "Auto save button") button in the lower-right corner. If you attempt to navigate away from a form or close a form where data was changed, you get a prompt to save changes before you're allowed to navigate away or close the form. > -> Using the below procedure causes the **Save and close** button on the form to not work, as it calls `preventDefault` on `saveMode` 2, which references **Save and Close**. You can remove the `getSaveMode() == 2` check below to avoid this, but then the form autosaves when you attempt to navigate away from the form or close the form where data has changed. The **Save and Continue** button also doesn't not work for this reason. +> Using the procedure here causes the **Save and close** button on the form to not work, as it calls `preventDefault` on `saveMode` 2, which references **Save and Close**. You can remove the `getSaveMode() == 2` check to avoid this, but then the form autosaves when you attempt to navigate away from the form or close the form where data has changed. The **Save and Continue** button also doesn't work for this reason. 1. Sign in to [Power Apps](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc). @@ -102,7 +98,7 @@ If you determine that AutoSave causes problems with extensions you're using, Pow 8. Choose **Save** to save the web resource and then close the web resource window. - 9. In the **Look Up Row** dialog the new web resource you created will be selected. Choose **Add** to close the dialog. + 9. In the **Look Up Row** dialog the new web resource you created is selected. Choose **Add** to close the dialog. 6. Configure the `OnSave` event: @@ -119,7 +115,7 @@ If you determine that AutoSave causes problems with extensions you're using, Pow 6. Check **Pass execution context as first parameter**. > [!IMPORTANT] - > If you don't do this the script will not work. + > If you don't do this the script won't work. The **Handler Properties** dialog should look like this. The customization prefix: "new_" might vary based on the customization prefix set for the default publisher for your organization. diff --git a/powerapps-docs/maker/model-driven-apps/manage-commands-in-solutions.md b/powerapps-docs/maker/model-driven-apps/manage-commands-in-solutions.md index dccc0a8b6c..66d8fa4b31 100644 --- a/powerapps-docs/maker/model-driven-apps/manage-commands-in-solutions.md +++ b/powerapps-docs/maker/model-driven-apps/manage-commands-in-solutions.md @@ -7,29 +7,35 @@ ms.author: caburk ms.reviewer: matp ms.date: 05/26/2022 ms.subservice: mda-maker -ms.topic: conceptual +ms.topic: article search.audienceType: - maker --- # Manage commands in solutions -Unlike classic commands, modern commands are treated the same as other solution components and support core solution behaviors. You can also edit existing modern commands from within a solution. +Unlike classic commands, modern commands are treated the same as other solution objects and support core solution behaviors. You can also edit existing modern commands from within a solution. + +To add commands to a solution, you add the solution objects that depend on your command actions: + +- Modern commands are a table component. When you add a command to a solution, you must add the command component. In this screenshot there's one JavaScript and one Power Fx command for the custom Classroom table that can be added as a specific object to a solution for export. + :::image type="content" source="media/commanddesigner-add-to-solution.png" alt-text="Add a command table component to a solution"::: +- Power Fx commands use a Dataverse component library. Add the component library to your solution if you plan to export it. +- JavaScript commands use a web resource. Add the web resource that includes the underlying JavaScript to run your command to the solution if you plan to export it. + +More information: [Add an existing component to a solution](../data-platform/create-solution.md#add-an-existing-component-to-a-solution) Modern commanding provides these benefits when you work with solutions: -- Add solution components that depend on your command actions. -- Block commands from being customized by using managed properties. -- View dependencies related to your modern command components. -- Troubleshoot by viewing which solutions modified the component and when using solution layers. -- Remove any unmanaged customizations if in an unhealthy state. -- Add or remove command components from a solution. + +- Block commands from being customized by using managed properties. Open the table, select **Commands**, select the command, and then on the command bar select **Advanced** > **Managed properties** to disable **Allow customizations**. +- View dependencies related to your modern command components. More information: [View dependencies for a component in Power Apps](../data-platform/view-component-dependencies.md) +- Troubleshoot by viewing which solutions modified the component and when using solution layers. More information: [Solution layers](../data-platform/solution-layers.md) +- Remove any unmanaged customizations if in an unhealthy state. More information: [Remove an unmanaged layer](../data-platform/solution-layers.md#remove-an-unmanaged-layer) - Segment solutions and build minor updates or patches that include your modern command components. - > [!div class="mx-imgBorder"] - > ![Clone a patch](media/CommandDesigner-clone-a-patch.png "Clone a patch") -- Modern command components work with solution upgrade so you can delete components by importing a new version. -- Standardized localization via export/import translations. +- Modern command components work with solution upgrade so you can delete components by importing a new version. [Upgrade or update a solution](../data-platform/update-solutions.md) +- Standardized localization via export/import translations. More information: [Translate label text](../data-platform/translate-entity-label-text.md) -### See also +## Related articles [Modern commanding overview](command-designer-overview.md) diff --git a/powerapps-docs/maker/model-driven-apps/manage-view-access.md b/powerapps-docs/maker/model-driven-apps/manage-view-access.md index e332646ea7..f74f69fb81 100644 --- a/powerapps-docs/maker/model-driven-apps/manage-view-access.md +++ b/powerapps-docs/maker/model-driven-apps/manage-view-access.md @@ -2,7 +2,7 @@ title: "Manage access to public system views" description: "Learn how to managed access with security roles to public system views for model-driven apps in Microsoft Power Apps" ms.custom: "" -ms.date: 02/19/2025 +ms.date: 07/29/2025 ms.reviewer: "matp" ms.suite: "" ms.tgt_pltfrm: "" @@ -17,19 +17,11 @@ search.audienceType: - admin - maker --- -# Manage access to public system views (preview) - -[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] +# Manage access to public system views Admins can manage views that users can access in model-driven apps with security roles. When a user plays a model-driven app, the user only has access to the system views that apply to the security roles that they're assigned to. -> [!IMPORTANT] -> -> - This is a preview feature. -> - [!INCLUDE [cc-preview-features-definition](../../includes/cc-preview-features-definition.md)] -> - From January 15 through January 31, 2025 the public preview for managing system views with security roles will be deployed to environments to make available. - -System views are special views that model-driven apps depend on, which exist for system tables or are automatically created when you create custom tables. These views have specific purposes and some additional capabilities. When a Power Platform admin manages a list of views with a security role, only those views—and the system, default view—are available in the view selector for users who are assigned to that security role. The other system views are filtered from the dropdown list. Users can still see the filtered views when they navigate to the Manage and share views option. +System views are special views that model-driven apps depend on, which exist for system tables or are automatically created when you create custom tables. These views have specific purposes and some additional capabilities. By default, all system views are for **everyone**. When a Power Platform admin manages a view with a security role, only the users who are assigned with the selected security role are able to see the view in the view selector. The other system views aren't filtered from the view selector dropdown list. Users can still access all the views when they navigate to the **Manage and share views** option. After a Power Platform admin turns on the manage table list views feature, users can set their own default view from the list of views that the admin manages and their own personal views from the Manage and share views option in a model-driven app. @@ -43,7 +35,6 @@ Data access continues to be secured with security role privileges, which means o ## Prerequisites - System administrator security role membership in the Microsoft Dataverse environment. -- By default, the manage system views feature is turned off. Turn on the `EnableRoleBasedSystemViews` setting by downloading and running the OrganizationSettingsEditor tool. More information: [How to change default environment database settings](/power-platform/admin/environment-database-settings#install-the-organizationsettingseditor-tool) - Turning on auditing is recommended, but not required. ## System views in a Dataverse environment @@ -52,7 +43,7 @@ System views are predefined views that exist for all system tables. These views ### Commonly used public view examples -You can manage the table list of views with your business users based on the users’ security role assignment. Admins select the applicable system views and manage these views with security roles. When the user navigates to a table list form, they only see the system views that were managed with the security roles that are assigned to them. +You can manage the table list of views with your business users based on the users’ security role assignment. Admins select the applicable system views and manage these views with security roles. When the user navigates to a table list form, they can access the system views that were managed with the security roles that are assigned to them. The selected system views with security role aren't visible to users who don't have the security role assigned. Examples of public views: @@ -74,9 +65,9 @@ Examples of public views: 1. Make sure you enable the table list views feature in your environment. More information: [Prerequisites](#prerequisites) 1. You manage public views with security roles. If you need to create new security roles, go to [Security roles and privileges](/power-platform/admin/security-roles-privileges) for more information about security roles. -1. Create a solution and add the tables and their corresponding views that you have managed. -1. Export the solution as managed. -1. Import the solution into your production environment. Inform your users that their system views are now filtered based on their security role assignment. +1. Create a solution and add the tables and their corresponding views that you manage. +1. Export the solution. +1. Import the solution into your production environment. Inform your users that their system views are now filtered based on their security role assignment. ## Manage public views with security roles @@ -85,7 +76,7 @@ All system views can be managed with security roles. Once they’re managed, use > [!NOTE] > System views are denoted as **Public** view type in Power Apps (make.powerapps.com). Only public views can be managed. Default public views can’t be assigned security roles for access. -To manage system views with security roles: +### Manage system views with security roles 1. Sign in to [Power Apps](https://make.powerapps.com). 1. On the left navigation pane, select **Solutions**, and then open the solution that has the table with the view you want to manage. If the item isn’t in the side panel pane, select …More and then select the item you want. @@ -99,10 +90,21 @@ To manage system views with security roles: > [!NOTE] > When you make changes to the 'EnableRoleBasedSystemViews' and **View settings**: > -> 1. Setting the OrganizationSettingsEditor tool `EnableRoleBasedSystemViews' property to **true** is effective immediately and all table views except the default table view are immediately filtered. +> 1. Setting the OrganizationSettingsEditor tool `EnableRoleBasedSystemViews' property to **true** is effective immediately. > 2. Setting a view with security roles is effective immediately after you select **Save and publish**. -> 3. Changing a view setting from 'Specify security role' to 'Everyone' can take up to 24 hours to be effective. +> 3. Changing a view setting from 'Specify security role' to 'Everyone' can take up to 24 hours to be effective or until the user signs out and back in. +> +> If you select multiple views and go to the view settings, only the first selected Views can be updated. You're required to select individual view to update the view settings. + +## Manage business unit system views with security roles + +You can create **business unit** system views by applying a filter in the view. Follow the same steps for [Manage system views with security roles](#manage-system-views-with-security-roles) to set the **Specify security roles** option to the business unit view. Then, filter the view using **Owning Business Unit** equals the business unit you want. +:::image type="content" source="media/filter-view-owning-business-unit.png" alt-text="Filter view by owning business unit to secure"::: +The users who are assigned with the security role of the business unit are able to access the view in their view selector. All other users can't access the business unit view. + +> [!NOTE] +> The security roles as listed under the **View settings** are shown from the parent business unit. Business unit level security roles are inherited from the parent business unit. When these security roles are selected, the system automatically applies the security role filtering based on the view's business unit. -### See also +### Related articles [Create or edit a model-driven app view in Power Apps](create-edit-views.md) diff --git a/powerapps-docs/maker/model-driven-apps/media/Copilot_for_apps_users_ON.png b/powerapps-docs/maker/model-driven-apps/media/Copilot_for_apps_users_ON.png deleted file mode 100644 index aea93a8bb9..0000000000 Binary files a/powerapps-docs/maker/model-driven-apps/media/Copilot_for_apps_users_ON.png and /dev/null differ diff --git a/powerapps-docs/maker/model-driven-apps/media/Environment_features.png b/powerapps-docs/maker/model-driven-apps/media/Environment_features.png deleted file mode 100644 index c29df88be5..0000000000 Binary files a/powerapps-docs/maker/model-driven-apps/media/Environment_features.png and /dev/null differ diff --git a/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-add-agent-to-app.png b/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-add-agent-to-app.png new file mode 100644 index 0000000000..af6bb2d21d Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-add-agent-to-app.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-agent-tab.png b/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-agent-tab.png new file mode 100644 index 0000000000..54fc08fbf2 Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-agent-tab.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-edit-in-copilot-studio.png b/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-edit-in-copilot-studio.png new file mode 100644 index 0000000000..2ae82f34da Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-edit-in-copilot-studio.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-interactive-agent-created.png b/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-interactive-agent-created.png new file mode 100644 index 0000000000..016eb1ce2a Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-interactive-agent-created.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-interactive-agent.png b/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-interactive-agent.png new file mode 100644 index 0000000000..a4c2da1d2c Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-interactive-agent.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-properties-pane.png b/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-properties-pane.png new file mode 100644 index 0000000000..473987e95e Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-properties-pane.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-remove-agent.png b/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-remove-agent.png new file mode 100644 index 0000000000..108d38b7e4 Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/add-agents-to-app/app-designer-remove-agent.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/add-power-apps-grid-control.png b/powerapps-docs/maker/model-driven-apps/media/add-power-apps-grid-control.png index 3853333b41..f465df6e0a 100644 Binary files a/powerapps-docs/maker/model-driven-apps/media/add-power-apps-grid-control.png and b/powerapps-docs/maker/model-driven-apps/media/add-power-apps-grid-control.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/calendar-control-appointments.png b/powerapps-docs/maker/model-driven-apps/media/calendar-control-appointments.png new file mode 100644 index 0000000000..addc340c7f Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/calendar-control-appointments.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/calendar-control-properties.png b/powerapps-docs/maker/model-driven-apps/media/calendar-control-properties.png new file mode 100644 index 0000000000..f2087596b4 Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/calendar-control-properties.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/commanddesigner-add-to-solution.png b/powerapps-docs/maker/model-driven-apps/media/commanddesigner-add-to-solution.png new file mode 100644 index 0000000000..ef588d47fe Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/commanddesigner-add-to-solution.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/copilot-for-apps-users-on.png b/powerapps-docs/maker/model-driven-apps/media/copilot-for-apps-users-on.png new file mode 100644 index 0000000000..c558be5ebc Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/copilot-for-apps-users-on.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/create-monitor-session.png b/powerapps-docs/maker/model-driven-apps/media/create-monitor-session.png index f9058d5a5f..be7343b404 100644 Binary files a/powerapps-docs/maker/model-driven-apps/media/create-monitor-session.png and b/powerapps-docs/maker/model-driven-apps/media/create-monitor-session.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/custom-green-theme-extended.png b/powerapps-docs/maker/model-driven-apps/media/custom-green-theme-extended.png new file mode 100644 index 0000000000..7234dc6960 Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/custom-green-theme-extended.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/filter-view-owning-business-unit.png b/powerapps-docs/maker/model-driven-apps/media/filter-view-owning-business-unit.png new file mode 100644 index 0000000000..2f79ecfdca Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/filter-view-owning-business-unit.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/form-designer-add-configure-agent-response/copilot-studio-topic-trigger-event-properties.png b/powerapps-docs/maker/model-driven-apps/media/form-designer-add-configure-agent-response/copilot-studio-topic-trigger-event-properties.png new file mode 100644 index 0000000000..979383d673 Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/form-designer-add-configure-agent-response/copilot-studio-topic-trigger-event-properties.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/form-designer-add-configure-agent-response/copilot-studio-topic-trigger-event.png b/powerapps-docs/maker/model-driven-apps/media/form-designer-add-configure-agent-response/copilot-studio-topic-trigger-event.png new file mode 100644 index 0000000000..dccfa3f78b Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/form-designer-add-configure-agent-response/copilot-studio-topic-trigger-event.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/form-designer-add-configure-agent-response/form-designer-components-agent-response.png b/powerapps-docs/maker/model-driven-apps/media/form-designer-add-configure-agent-response/form-designer-components-agent-response.png new file mode 100644 index 0000000000..484d851035 Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/form-designer-add-configure-agent-response/form-designer-components-agent-response.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/form-designer-add-configure-agent-response/form-designer-configure-agent-response.png b/powerapps-docs/maker/model-driven-apps/media/form-designer-add-configure-agent-response/form-designer-configure-agent-response.png new file mode 100644 index 0000000000..a1cff64cd8 Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/form-designer-add-configure-agent-response/form-designer-configure-agent-response.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/generative-page/add-table-generative-page.png b/powerapps-docs/maker/model-driven-apps/media/generative-page/add-table-generative-page.png new file mode 100644 index 0000000000..78893dce27 Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/generative-page/add-table-generative-page.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/generative-page/generated-page-user-exp.png b/powerapps-docs/maker/model-driven-apps/media/generative-page/generated-page-user-exp.png new file mode 100644 index 0000000000..79123bc7d3 Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/generative-page/generated-page-user-exp.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/generative-page/generative-page-view-code-iterate.png b/powerapps-docs/maker/model-driven-apps/media/generative-page/generative-page-view-code-iterate.png new file mode 100644 index 0000000000..f19015d163 Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/generative-page/generative-page-view-code-iterate.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/jump-bar-in-view.png b/powerapps-docs/maker/model-driven-apps/media/jump-bar-in-view.png index 2fd8952257..7aa6886716 100644 Binary files a/powerapps-docs/maker/model-driven-apps/media/jump-bar-in-view.png and b/powerapps-docs/maker/model-driven-apps/media/jump-bar-in-view.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/navigation-area.png b/powerapps-docs/maker/model-driven-apps/media/navigation-area.png index a986e3d0f9..85ddbe70f1 100644 Binary files a/powerapps-docs/maker/model-driven-apps/media/navigation-area.png and b/powerapps-docs/maker/model-driven-apps/media/navigation-area.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/new-look-setting.png b/powerapps-docs/maker/model-driven-apps/media/new-look-setting.png new file mode 100644 index 0000000000..c0e00b9a1d Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/new-look-setting.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/onboarding-new-makers.gif b/powerapps-docs/maker/model-driven-apps/media/onboarding-new-makers.gif deleted file mode 100644 index 1dc8d2a313..0000000000 Binary files a/powerapps-docs/maker/model-driven-apps/media/onboarding-new-makers.gif and /dev/null differ diff --git a/powerapps-docs/maker/model-driven-apps/media/power-apps-grid-control-editing.gif b/powerapps-docs/maker/model-driven-apps/media/power-apps-grid-control-editing.gif deleted file mode 100644 index f7dad896c7..0000000000 Binary files a/powerapps-docs/maker/model-driven-apps/media/power-apps-grid-control-editing.gif and /dev/null differ diff --git a/powerapps-docs/maker/model-driven-apps/media/power-apps-grid-control-editing.png b/powerapps-docs/maker/model-driven-apps/media/power-apps-grid-control-editing.png new file mode 100644 index 0000000000..662bc324a3 Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/power-apps-grid-control-editing.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/rich-text-column-on-form.png b/powerapps-docs/maker/model-driven-apps/media/rich-text-column-on-form.png new file mode 100644 index 0000000000..f30ae466bc Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/rich-text-column-on-form.png differ diff --git a/powerapps-docs/maker/model-driven-apps/media/rich-text-column.png b/powerapps-docs/maker/model-driven-apps/media/rich-text-column.png new file mode 100644 index 0000000000..c37d11882c Binary files /dev/null and b/powerapps-docs/maker/model-driven-apps/media/rich-text-column.png differ diff --git a/powerapps-docs/maker/model-driven-apps/model-app-faq.md b/powerapps-docs/maker/model-driven-apps/model-app-faq.md index 947d7d859d..bb4f6a6ee7 100644 --- a/powerapps-docs/maker/model-driven-apps/model-app-faq.md +++ b/powerapps-docs/maker/model-driven-apps/model-app-faq.md @@ -7,7 +7,7 @@ ms.subservice: mda-maker ms.author: alcerri ms.reviewer: matp ms.date: 01/27/2025 -ms.topic: article +ms.topic: faq applies_to: - "powerapps" search.audienceType: diff --git a/powerapps-docs/maker/model-driven-apps/model-app-page-issues.md b/powerapps-docs/maker/model-driven-apps/model-app-page-issues.md index d1f2c7e07b..41be66b581 100644 --- a/powerapps-docs/maker/model-driven-apps/model-app-page-issues.md +++ b/powerapps-docs/maker/model-driven-apps/model-app-page-issues.md @@ -2,10 +2,10 @@ title: "Known issues with custom pages in a model-driven app" description: "Find the known issue that might occur when you create a custom page." ms.custom: "" -ms.date: 02/03/2025 +ms.date: 04/16/2025 ms.reviewer: "" ms.subservice: mda-maker -ms.topic: "article" +ms.topic: troubleshooting-known-issue author: "adrianorth" ms.author: "aorth" search.audienceType: @@ -25,6 +25,8 @@ The custom page is a new page type within model-driven apps. Custom pages bring * When a custom page is modified, such as saved and published, the model-driven app isn't aware of the change. The model-driven app continues to use the last version of the custom page when the model-driven app was published. A model-driven app published through app designer, solution explorer, or **Publish all** updates all custom pages in the model-driven app. * Images, icons, and shapes aren't currently supported with Right-To-Left (RTL) languages. + +* The [App.ConfirmExit](/power-platform/power-fx/reference/object-app#confirmexit) property isn't supported in custom pages. * The ability to get the current data formats from users settings including date, time, numbers, and currency isn't supported. @@ -33,7 +35,7 @@ The custom page is a new page type within model-driven apps. Custom pages bring > [!div class="mx-imgBorder"] > ![Custom page session timeout app message bar error](media/model-app-page-overview/page-session-timeout-app-message-error.png "Custom page session timeout app message bar error") -* When a custom page with code component is opened for editing, a security dialog is shown. Selecting **Go back** on the security dialog doesn't navigate back to the parent context. The user can close the browser tab to leave the canvas app designer. +* When a custom page with code component is opened for editing, a security dialog is shown. Selecting **Go back** on the security dialog doesn't navigate back to the parent context. The user can close the browser tab to leave Power Apps Studio. * Not all canvas app controls are available with custom pages. However, custom pages support the most common canvas app controls and custom pro-dev components. For more information about what is available, see [Design a custom page for your model-driven app](design-page-for-model-app.md) diff --git a/powerapps-docs/maker/model-driven-apps/model-app-page-overview.md b/powerapps-docs/maker/model-driven-apps/model-app-page-overview.md index 5ebbebd83a..7b6cd84879 100644 --- a/powerapps-docs/maker/model-driven-apps/model-app-page-overview.md +++ b/powerapps-docs/maker/model-driven-apps/model-app-page-overview.md @@ -12,7 +12,7 @@ search.audienceType: --- # Overview of custom pages for model-driven apps -The custom page is a new page type within a model-driven app, which brings the power of canvas apps into model-driven apps. Custom pages increase the convergence of model-driven and canvas apps and can be used to add full pages, dialogs, or panes with the flexibility of the canvas designer. It also includes a low-code page authoring experience with expressions and custom Power Apps component framework controls. +The custom page is a new page type within a model-driven app, which brings the power of canvas apps into model-driven apps. Custom pages increase the convergence of model-driven and canvas apps and can be used to add full pages, dialogs, or panes with the flexibility of Power Apps Studio. It also includes a low-code page authoring experience with expressions and custom Power Apps component framework controls. This new page can be more flexible than a model-driven app form, view, or dashboard page. It lets you include one or more tables. Then, the maker can define the data and component interactions. The custom page is a separate solution element, which allows one maker to edit one custom page at a time. Like other model-driven app pages, the page state is either from the parameters passed or retrieved from persisted tables. @@ -27,7 +27,7 @@ This new page can be more flexible than a model-driven app form, view, or dashbo | Modern controls in custom pages | General Availability | [List of supported controls](design-page-for-model-app.md#supported-controls-in-a-custom-page) | Code components in custom pages | General Availability | | Monitor support for custom pages | General Availability | -| Authoring custom pages | General Availability | Modern app designer and canvas designer are expected to be used to author custom page that are supported at runtime | +| Authoring custom pages | General Availability | Modern app designer and Power Apps Studio are expected to be used to author custom page that are supported at runtime | | Canvas components in custom pages | General Availability | | Custom page in Teams model-driven app | Public preview | | Custom page in mobile online | Public preview | iOS must allow enabling “Allow cross site tracking” that can be prevented by device management | @@ -62,7 +62,7 @@ Custom pages must be created from a solution either from the modern app designer ## Custom pages are different than embedded canvas apps -A custom page enables makers to create a new page experience using the canvas app capabilities. This provides a low-code authoring experience with more flexible layouts, more control with styling options, the ability to add connector data, use expressions, and so on. Custom page authoring happens in the canvas app designer with increasing context of the model-driven app that the page runs in. +A custom page enables makers to create a new page experience using the canvas app capabilities. This provides a low-code authoring experience with more flexible layouts, more control with styling options, the ability to add connector data, use expressions, and so on. Custom page authoring happens in Power Apps Studio with increasing context of the model-driven app that the page runs in. Embedded canvas apps also use the canvas capabilities with a hosting approach that isn't as integrated as a custom page. The simpler integration of an embedded canvas app means the current limitation on number of embedded canvas apps hasn't changed. The advanced integration of the custom page addresses those limits. The embedded canvas app can only be placed on a model-driven form acting like a low-code component. More information: [Embed a canvas app on a model-driven form](embed-canvas-app-in-form.md). @@ -79,8 +79,8 @@ To migrate an existing standalone canvas app, first start by identifying a mappi 1. Create a blank custom page from the model-driven app designer. More information: [Add a custom page to your model-driven app](add-page-to-model-app.md) 1. Add a canvas app data source for data used by the screen. -1. Copy the screen from the original canvas app in the canvas designer. -1. Paste the screen into the blank custom page in the canvas designer. +1. Copy the screen from the original canvas app in Power Apps Studio. +1. Paste the screen into the blank custom page in Power Apps Studio. 1. Change the navigate calls to use the custom page name instead of the screen name. 1. Add the custom page into the model-driven app designer site map. diff --git a/powerapps-docs/maker/model-driven-apps/model-driven-app-components.md b/powerapps-docs/maker/model-driven-apps/model-driven-app-components.md index e3af140d35..44ab75dcf4 100644 --- a/powerapps-docs/maker/model-driven-apps/model-driven-app-components.md +++ b/powerapps-docs/maker/model-driven-apps/model-driven-app-components.md @@ -8,7 +8,7 @@ ms.subservice: mda-maker ms.author: matp ms.date: 01/22/2025 -ms.topic: conceptual +ms.topic: how-to search.audienceType: - maker --- @@ -43,7 +43,7 @@ These components determine how users interact with the app. |[Site map](model-driven-app-glossary.md#site-map) | Specifies the navigation for your app. | App designer | |[Form](model-driven-app-glossary.md#form) | A set of data-entry columns for a given table that matches the items that your organization tracks for the table. For example, a set of data-entry columns where users input relevant information to track a customer's previous orders along with specific requested reorder dates. | Form designer | |[View](model-driven-app-glossary.md#view) | Views define how a list of rows for a specific table is displayed in your application. A view defines the columns to display, width of each column, sort behavior, and the default filters. | View designer or app designer | -|Custom page (preview) | A canvas based page which allows flexible layout, low-code Power Fx functions, and Power Apps connector data. For more information, go to [Model-driven app custom page overview (preview)](model-app-page-overview.md) | Canvas designer | +|Custom page (preview) | A canvas based page which allows flexible layout, low-code Power Fx functions, and Power Apps connector data. For more information, go to [Model-driven app custom page overview (preview)](model-app-page-overview.md) | Power Apps Studio | ## Logic components diff --git a/powerapps-docs/maker/model-driven-apps/model-driven-designers.md b/powerapps-docs/maker/model-driven-apps/model-driven-designers.md index 9dcb4b2215..4769d78f4d 100644 --- a/powerapps-docs/maker/model-driven-apps/model-driven-designers.md +++ b/powerapps-docs/maker/model-driven-apps/model-driven-designers.md @@ -4,21 +4,18 @@ description: "Model-driven app designers" ms.collection: get-started ms.date: 09/27/2021 ms.reviewer: "" - ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: article applies_to: - "powerapps" author: "matp" ms.assetid: caps.latest.revision: 1 -ms.subservice: +ms.subservice: mda-maker ms.author: "matp" -tags: search.audienceType: - maker - --- # Meet the model-driven app designers diff --git a/powerapps-docs/maker/model-driven-apps/modern-theme-overrides.md b/powerapps-docs/maker/model-driven-apps/modern-theme-overrides.md index 40a44fed29..4a84a99270 100644 --- a/powerapps-docs/maker/model-driven-apps/modern-theme-overrides.md +++ b/powerapps-docs/maker/model-driven-apps/modern-theme-overrides.md @@ -1,8 +1,8 @@ --- -title: "Use modern themes | MicrosoftDocs" -description: Learn how to change the colors of the app header in model-driven apps with the modern look. +title: "Use modern themes in Power Apps" +description: Learn how to change the colors and font of apps including the app header in model-driven apps with the modern look in Power Apps. ms.custom: "" -ms.date: 09/05/2024 +ms.date: 05/05/2025 ms.reviewer: "matp" ms.suite: "" ms.tgt_pltfrm: "" @@ -16,85 +16,181 @@ contributors: - adrianorth --- -# Use modern themes +# Use modern themes in model-driven apps -Users of model-driven apps with the [modern, refreshed look for model-driven apps](../../user/modern-fluent-design.md) enabled experience updated styling aligned to the Microsoft Fluent 2 design system. Because this modern refreshed look comes with a new theming system, [classic theming](create-themes-organization-branding.md) isn't honored; however, makers can modify the colors used by the app header for users who have enabled the modern, refreshed look. In this article, you learn about the styling overrides available with the modern, refreshed look and how to implement them for your organization. +Users of model-driven apps with the modern, refreshed look for model-driven apps enabled experience updated styling aligned to the Microsoft Fluent 2 design system. Because this modern refreshed look comes with a new theming system, [classic theming](#see-also) isn't honored; however, makers can modify the colors used by the app to help align with their organizational branding for users who have enabled the modern, refreshed look. In this article, you learn about the styling overrides available with the modern, refreshed look and how to implement them for your organization. > [!NOTE] -> - Modern themes currently only support customizing the app header. Other customizations like customizing the business process flow control aren't available. -> - For modern themes to work the model-driven app must be using the **New look**. More information: [Modern, refreshed look for model-driven apps](../../user/modern-fluent-design.md) +> +> - Modern themes currently support providing a custom theme for the entire app and overriding the app header colors. Other customizations like customizing the business process flow control aren't available. +> - For modern themes to work, the model-driven app must be using the **New look**. More information: [Modern, refreshed look for model-driven apps](../../user/modern-fluent-design.md) -## Modify the app header colors +## Modify the app theme -With the [modern, refreshed look enabled](../../user/modern-fluent-design.md) in the app, makers can modify the colors used by the app header to align with their organizational branding. To accomplish this, you encapsulate the desired colors into an XML resource, use an app setting to point to this web resource, and then verify the color changes match expectation. +[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] -### Overview of the XML resource to use for app header colors +With the [modern, refreshed look enabled](../../user/modern-fluent-design.md) in the app, makers can create a custom theme that helps align to their organizational branding. With a custom theme you can change the app header, hyperlinks, lookups, primary buttons, active tab indicators, row selection, and hover effects. The custom theme also lets you change the font that is used in the application. To accomplish this, you encapsulate the desired theme information into an XML resource, use an app setting to point to this web resource, and then verify the new modern theme matches your expectations. -The first step to modifying the app header styling is to create an XML file with your various color selections. Later, you create an XML web resource with one or more of the following attributes defined inside an `AppHeaderColors` tag. +> [!IMPORTANT] +> +> - This is a preview feature. +> - [!INCLUDE [cc-preview-features-definition](../../includes/cc-preview-features-definition.md)] +> - The majority of the UI reflects the custom theme; however, there are still areas in the app that don't use modern theming, such as the Timeline control, lookup dropdowns, legacy grids, and audit history. + +### Overview of the custom theme XML resource + +The first step to creating a custom modern theme is to create an XML file with your desired theme parameters, with one or more of the following attributes defined inside a `CustomTheme` tag. + +- `BasePaletteColor` – The seed color (HEX code) used as a basis to generate a 16-slot color palette for the theme. +- `LockPrimary` – A boolean that determines how the selected seed color is used to generate the 16-slot color palette. + - False (Default): The palette is optimized for accessibility, but doesn't guarantee the seed color will appear in any slot of the generated palette. This is the default setting. Use the [Fluent theme generator](https://react.fluentui.dev/?path=/docs/theme-theme-designer--docs) to preview the generated palette based on your selections for `basePaletteColor`, `vibrancy`, and `hueTorsion`. + - True: The seed color is placed in primary (middle) slot of the palette. The remaining colors are generated by making the colors incrementally lighter on one side and darker on the other side. The generated palette might not meet contrast ratio accessibility requirements. +- `Font` – The font for your custom theme. The font being rendered by the custom theme is dependent on the browser and target machine’s ability to show that font. +- `Vibrancy` – An optional parameter that impacts the muteness or brightness of the palette, especially the lighter colors. The allowed values are between -100 and 100, with a default value of 0. This option is only applicable when `lockPrimary="true"`. +- `HueTorsion` – An optional parameter that impacts the tint, shade, or tone of the palette, especially the lighter colors. The allowed values are between -100 and 100, with a default value of 0. This option is only applicable when `lockPrimary="true"`. + +#### Override the palette + +Overriding individual slots in the theme palette provides the creator with full control over the slot colors, which is particularly useful when additional modifications are required beyond the standard theme parameters mentioned above. To override a specific slot, assign a value to the desired slot by its name. For instance, you can specify the HEX code for `darker70`, `primary`, or `lighter10` to tailor the appearance precisely to your preference. Setting values for all 16 slots completely overrides all the palette options described in the previous section, allowing for a highly customized and unique color scheme. + +The slot names for the palette from darkest to lightest are: `darker70`, `darker60`, `…` `<>`, `darker10`, `primary`, `lighter10`, `lighter20`, `…`, `lighter80`. Refer to the [Fluent theme](https://react.fluentui.dev/?path=/docs/theme-theme-designer--docs) designer to find out how these slots are generally used in Fluent controls. + +:::image type="content" source="../canvas-apps/controls/modern-controls/media/modern-themes-color-ramp.png" alt-text="Modern theme color slots."::: + +#### Example XML for a custom theme + +As an example, this XML specifies a custom theme that is green with a different font. + +```xml + +``` + +This XML specifies a custom theme using the alternate palette generation algorithm with an override for a single slot. + +```xml + +``` + +### Modify the app header colors + +Makers can customize the styling of the app header to deviate from the app theme. This can be done by extending the XML created for the custom modern theme with one or more of the following attributes defined inside an `AppHeaderColors` tag. - `Background` – The background color of the app header. This element must be defined for any changes to take effect. - `Foreground` – The text color of the app header. If this isn't specified, the system attempts to calculate an appropriate color that has sufficient contrast to the provided background color. - `BackgroundHover` – The background color of buttons on the app header when they're hovered over. If no value is specified, the system calculates a color based on the background color. -- `ForegroundHover` – The text color of buttons on the app header when they're hovered over. If no value is specified, the system attempts to calculate an appropriate color that has sufficient contrast to the backgroundHover color. -- `BackgroundPressed` – The background color of buttons on the app header when they're pressed. The defaulting logic is the same as backgroundHover. -- `ForegroundPressed` – The text color of buttons on the app header when they're pressed. The defaulting logic is the same as foregroundHover. -- `BackgroundSelected` – The background color of buttons on the app header when they're selected. The defaulting logic is the same as backgroundHover. -- `ForegroundSelected` – The text color of buttons on the app header when they're selected. The defaulting logic is the same as backgroundHover. +- `ForegroundHover` – The text color of buttons on the app header when they're hovered over. If no value is specified, the system attempts to calculate an appropriate color that has sufficient contrast to the `backgroundHover` color. +- `BackgroundPressed` – The background color of buttons on the app header when they're pressed. The defaulting logic is the same as `backgroundHover`. +- `ForegroundPressed` – The text color of buttons on the app header when they're pressed. The defaulting logic is the same as `foregroundHover`. +- `BackgroundSelected` – The background color of buttons on the app header when they're selected. The defaulting logic is the same as `backgroundHover`. +- `ForegroundSelected` – The text color of buttons on the app header when they're selected. The defaulting logic is the same as `backgroundHover`. -### Example XML for a modern theme +#### Example XML for a modern theme -As an example, this XML specifies a green background color for the app header with white text, with darker background colors for the various button interaction states. For optimal usability, we recommend specifying different color values for each state. +As an example, this XML extends the green custom theme with a black app header. For optimal usability, we recommend specifying different color values for each interaction state. ```xml - + + + ``` +> [!NOTE] +> These settings cause any colors specified in the **Override app header color** setting to be ignored. + ### Create the web resource 1. Using a text or XML editor, save the XML that is used to create the web resource. [Example XML for a modern theme](#example-xml-for-a-modern-theme) 1. Sign into [Power Apps](https://make.powerapps.com/). 1. Select **Solutions** on the left navigation pane, and then create a **New solution**. 1. Select **New** > **More** > **Web resource**. -1. In the New web resource property pane, enter the following values: - - **Display name**: Enter a display name, such as *XML for modern theming*. - - **Name**. Enter the unique name for the web resource. +1. Select **Choose file**, browse to and select the XML text file you created earlier. +1. In the **New web resource** property pane, enter the following values: + - **Display name**: Enter a display name, such as *Green custom theme*. + - **Name**. Accept the automatically generated or enter a unique name for the web resource. - Type: **Data (XML)** -1. Select **Choose file**, browse to, and then select the XML file you created earlier with the theme. + 1. Select **Save**. You publish this customization with the steps in the next section. -### Apply custom app header colors to apps in your environment +### Apply the custom theme to apps in your environment After you select your colors and create the web resource, follow these steps to enable this app header styling for all the apps in your environment that have the **New look** enabled. 1. In the solution you used to [create the web resource](#create-the-web-resource), select **Add existing** > **More** > **Setting**. -1. Type *Override* in the **Search** box, select **Override app header color**, select **Next**, and then select **Add**. -1. In the solution, select **Override app header color**, and then select **Edit** on the command bar. -1. On the right **Edit Override app header color** properties pane, select **Setting environment value** and enter the unique name of your web resource you created earlier. Make sure to add the publisher prefix for the web resource and don't include quotes. For example, the name might appear as *contoso_xmlfor-modern-theme* as in this example. - :::image type="content" source="media/environment-setting-theme.png" alt-text="Environment setting for a theme with web resource unique name contoso_xmlfor-modern-theme." lightbox="media/environment-setting-theme.png"::: +1. Type *custom theme* in the **Search** box, select **Custom theme definition**, select **Next**, and then select **Add**. +1. In the solution, select **Custom theme definition**, and then select **Edit** on the command bar. +1. On the right **Edit Custom theme definition** properties pane, select **New environment value** under **Setting environment value** and enter the unique name of your web resource you created earlier (observe the **Name** column in the solution for the unique name). Remove the double quotes and make sure to add the publisher prefix for the web resource. For example, the name might appear as *contoso_green-custom-theme* as in this example. + :::image type="content" source="media/environment-setting-theme.png" alt-text="Environment setting for a theme with web resource unique name contoso_green-custom-theme." lightbox="media/environment-setting-theme.png"::: 1. Select **Save**. -1. Select **Publish all customizations** on the command bar. (This command appears when no components in the solution are selected). +1. Select **Settings** on the left **Objects** pane, and then select **Publish all customizations** on the command bar. (This command appears when no components in the solution are selected). -With the [example colors](#example-xml-for-a-modern-theme), the app header should look like this when you play the app (you might need to refresh the browser tab). -:::image type="content" source="media/greenappheader-oct2023.png" alt-text="Green app header in a model-driven app" lightbox="media/greenappheader-oct2023.png"::: +Custom model-driven app using the extended green theme sample. +:::image type="content" source="media/custom-green-theme-extended.png" alt-text="Custom model-driven app using custom green theme extended with great vibes font."::: ### Verifying new app header colors -After publishing your new app header colors, you'll want to validate the app header visuals, including all the button states, to ensure everything appears as you expect and there are sufficient contrast ratios for accessibility. You should verify the following color choices: +After publishing your custom theme, you'll want to validate the application of the theme in the app to ensure everything appears as you expect. + +## Modify the app header colors only + +Makers can choose to only customize the styling of the app header to deviate from the default app theme. This can be done by following these steps: + +1. Create an XML file with your various color selections, with one or more of the attributes from [app header color overrides section](#modify-the-app-header-colors) defined inside an `AppHeaderColors` tag. +2. Create a web resource using the same process described for [custom themes](#create-the-web-resource), but be sure to give the XML resource an appropriate descriptive display name, such as *Green app header XML*. +3. Apply custom app header colors to apps in your environment by assigning this web resource to the environment or app in the **Override app header color** setting. Follow the steps from [Applying custom themes to your environment](#apply-the-custom-theme-to-apps-in-your-environment) but use the **Override app header color** setting instead. + > [!NOTE] + > Any configuration defined in the **Override app header color** setting is ignored if the **Custom theme definition** setting has been defined. +4. Verify your custom app header visuals, including all button states, to ensure everything appears as you expect and there are sufficient contrast ratios for accessibility. You should verify the following color choices: + - The desired colors are shown for the app header at rest and for each button interaction state. + - There's a minimum of a 4.5:1 contrast ratio between foreground and background colors for the rest state and each button interaction state. + +### Example XML for app header color override + +As an example, this XML specifies a green background color for the app header with white text, with darker background colors for the various button interaction states. For optimal usability, we recommend specifying different color values for each state. + +```xml + +``` -- The desired colors are shown for the app header at rest and for each button interaction state. -- There's a minimum of a 4.5:1 contrast ratio between foreground and background colors for the rest state and each button interaction state. +With this configuration, the app header should look like the following when you play the app. You might need to refresh the browser tab to display the theme. +:::image type="content" source="media/greenappheader-oct2023.png" alt-text="Green app header in a model-driven app" lightbox="media/greenappheader-oct2023.png"::: ## See also -[Modern refreshed look](../../user/modern-fluent-design.md) +[Classic theming](create-themes-organization-branding.md) +[Modern refreshed look](../../user/modern-fluent-design.md) [!INCLUDE[footer-include](../../includes/footer-banner.md)] diff --git a/powerapps-docs/maker/model-driven-apps/monitor-form-checker.md b/powerapps-docs/maker/model-driven-apps/monitor-form-checker.md index 0b100d365e..6d5efec0eb 100644 --- a/powerapps-docs/maker/model-driven-apps/monitor-form-checker.md +++ b/powerapps-docs/maker/model-driven-apps/monitor-form-checker.md @@ -6,9 +6,9 @@ ms.date: 11/13/2024 ms.reviewer: "matp" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: troubleshooting-general author: "kunalks2003" -ms.subservice: troubleshoot +ms.subservice: mda-maker ms.author: "hemantg" tags: search.audienceType: diff --git a/powerapps-docs/maker/model-driven-apps/monitor-page-checker.md b/powerapps-docs/maker/model-driven-apps/monitor-page-checker.md index a6f1dca1a1..06c10808cf 100644 --- a/powerapps-docs/maker/model-driven-apps/monitor-page-checker.md +++ b/powerapps-docs/maker/model-driven-apps/monitor-page-checker.md @@ -1,29 +1,29 @@ --- -title: Use Monitor to troubleshoot page behavior in model-driven apps with Power Apps -description: Monitor can help you debug and diagnose problems with custom pages. Discover how to troubleshoot page behavior in model-driven apps using the Monitor tool. +title: Use live monitor to troubleshoot page behavior in model-driven apps with Power Apps +description: Live monitor can help you debug and diagnose problems with custom pages. Discover how to troubleshoot page behavior in model-driven apps using the live monitor tool. ms.custom: "" -ms.date: 10/18/2024 +ms.date: 07/16/2025 ms.reviewer: "matp" ms.subservice: mda-maker ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "article" +ms.topic: troubleshooting-general author: "aorth" ms.author: "aorth" tags: search.audienceType: - maker --- -# Use Monitor to troubleshoot page behavior in model-driven apps +# Use live monitor to troubleshoot page behavior in model-driven apps -Monitor can help you debug and diagnose problems, which help you build faster, more reliable model-driven apps. Monitor provides a deep view into how an app runs by providing a log of all activities in your app as it runs. +Live monitor can help you debug and diagnose problems, which help you build faster, more reliable model-driven apps. Live monitor provides a deep view into how an app runs by providing a log of all activities in your app as it runs. > [!IMPORTANT] - > Monitor must be run on the model-driven app and not directly on a custom page. + > Live monitor must be run on the model-driven app and not directly on a custom page. -## Start a Monitor session +## Start a live monitor session -There are two ways to open a Monitor session. +There are two ways to open a live monitor session. - [From Power Apps](#from-power-apps) - [From a model-driven app](#from-a-model-driven-app) @@ -31,37 +31,37 @@ There are two ways to open a Monitor session. ### From Power Apps 1. Sign in to [Power Apps](https://make.powerapps.com/), select **Apps**. -1. Select **...** next to the model-driven app or on the global command bar, and then select **Monitor**. +1. Select **...** next to the model-driven app or on the global command bar, and then select **Live monitor**. :::image type="content" source="media/create-monitor-session.png" alt-text="Sample model-driven app"::: -1. On the Monitor page, select **Play model-driven** app on the command bar. +1. On the **Live monitor** browser tab that opens, select **Play model-driven app** on the command bar. 1. When prompted, select **Join**. -1. The app loads in a new browser tab with a message indicating the monitoring session. Switch back to the Monitor tab to view activity. +1. The app loads in a new browser tab with a message indicating the monitoring session. Switch back to the live monitor tab to view activity. :::image type="content" source="media/monitored-app-session.png" alt-text="Monitored app session with message This app is currently connected to a monitor session." lightbox="media/monitored-app-session.png"::: ### From a model-driven app 1. Play your model-driven app. 2. Add `&monitor=true` to the end of the URL in your web browser, and then refresh the page. -3. Select **Monitor** on the command bar. +3. Select **Live monitor** on the command bar. - > ![Location of Monitor button in global command bar](https://user-images.githubusercontent.com/69216748/146047014-b9428da5-138a-4ccf-b74c-b45a0a0685b9.png) + > ![Location of Live monitor button in global command bar](https://user-images.githubusercontent.com/69216748/146047014-b9428da5-138a-4ccf-b74c-b45a0a0685b9.png) ## Filter monitored activity -When you filter on a model-driven app custom page-related events in Monitor, you can get information about related tables, tables, controls, and components, such as on a custom page, in Monitor as your app runs. +When you filter on a model-driven app custom page-related events in live monitor, you can get information about related tables, tables, controls, and components, such as on a custom page, in live monitor as your app runs. :::image type="content" source="media/add-component-to-model-app/monitor-app-with-custom-page.png" alt-text="Monitoring a model-driven app that has a custom page using the canvas app gallery control" lightbox="media/add-component-to-model-app/monitor-app-with-custom-page.png"::: For example, to filter on the custom page that uses the `Gallery1` control, select the **Control** column header > **Filter by**, enter *Gallery1*, and then select **Apply**. -For more information about model-driven app monitoring, go to [Debug a model-driven app with Monitor](../monitor-modelapps.md) +For more information about model-driven app monitoring, go to [Debug a model-driven app with live monitor](../monitor-modelapps.md) -## Close a Monitor session +## Close a live monitor session To close the monitoring session, close the browser tab where the monitored model-driven app is playing. ## Next steps -[Use Monitor to troubleshoot model-driven app form behavior](monitor-form-checker.md) +[Use live monitor to troubleshoot model-driven app form behavior](monitor-form-checker.md) diff --git a/powerapps-docs/maker/model-driven-apps/page-canvas-components.md b/powerapps-docs/maker/model-driven-apps/page-canvas-components.md index 080f78465d..7206fc0d5f 100644 --- a/powerapps-docs/maker/model-driven-apps/page-canvas-components.md +++ b/powerapps-docs/maker/model-driven-apps/page-canvas-components.md @@ -40,7 +40,7 @@ This section explains how to create a canvas component that you can use in a cus ### Enable modern controls for the component library -First, enable the **Modern controls** setting in the canvas app designer. To do this, go to **File** > **Settings** > **Upcoming features** > **Experimental**. +First, enable the **Modern controls** setting in Power Apps Studio. To do this, go to **File** > **Settings** > **Upcoming features** > **Experimental**. ![Settings dialog for enabling modern controls](media/add-component-to-model-app/lib-setting-for-modern-controls.png "Settings dialog for enabling modern controls") @@ -93,4 +93,4 @@ You can evaluate and use canvas component samples from Microsoft and other Power [Overview of Power Apps connectors](../canvas-apps/connections-list.md) -[Add data connection in canvas designer](../canvas-apps/add-data-connection.md) +[Add data connection in Power Apps Studio](../canvas-apps/add-data-connection.md) diff --git a/powerapps-docs/maker/model-driven-apps/page-code-components.md b/powerapps-docs/maker/model-driven-apps/page-code-components.md index 1a7c7cff3c..5d05b0263a 100644 --- a/powerapps-docs/maker/model-driven-apps/page-code-components.md +++ b/powerapps-docs/maker/model-driven-apps/page-code-components.md @@ -1,13 +1,12 @@ --- title: "Add code components to a custom page for your model-driven app" description: "This article outlines the use of code components built by professional developers using the Power Apps component framework within a custom page." -ms.custom: "" ms.date: 05/26/2022 ms.reviewer: "" - ms.topic: "article" author: "hemantg" ms.author: "matp" +ms.subservice: mda-maker search.audienceType: - maker --- @@ -86,4 +85,4 @@ Or try some from the [Power Apps community gallery](/powerapps/developer/compone [Overview of Power Apps connectors](../canvas-apps/connections-list.md) -[Add data connection in canvas designer](../canvas-apps/add-data-connection.md) +[Add data connection in Power Apps Studio](../canvas-apps/add-data-connection.md) diff --git a/powerapps-docs/maker/model-driven-apps/page-powerfx-in-model-app.md b/powerapps-docs/maker/model-driven-apps/page-powerfx-in-model-app.md index 013a8be514..b48aa32d69 100644 --- a/powerapps-docs/maker/model-driven-apps/page-powerfx-in-model-app.md +++ b/powerapps-docs/maker/model-driven-apps/page-powerfx-in-model-app.md @@ -5,7 +5,7 @@ ms.custom: "" ms.date: 01/22/2025 ms.reviewer: "" ms.subservice: mda-maker -ms.topic: "article" +ms.topic: how-to author: "aorth" ms.author: "matp" search.audienceType: @@ -42,7 +42,7 @@ This section provides examples of navigating from a model-driven app form to a c ### Navigating from a custom page -The [Navigate function](../canvas-apps/functions/function-navigate.md) allows users to navigate either from model-driven app forms or custom pages. This function is only applicable when the custom page is running within a model-driven app. During custom page authoring or previewing in canvas designer, this function has no effect. +The [Navigate function](../canvas-apps/functions/function-navigate.md) allows users to navigate either from model-driven app forms or custom pages. This function is only applicable when the custom page is running within a model-driven app. During custom page authoring or previewing in Power Apps Studio, this function has no effect. ### Navigate to another custom page diff --git a/powerapps-docs/maker/model-driven-apps/power-apps-grid-control.md b/powerapps-docs/maker/model-driven-apps/power-apps-grid-control.md index caa746c808..a85370f420 100644 --- a/powerapps-docs/maker/model-driven-apps/power-apps-grid-control.md +++ b/powerapps-docs/maker/model-driven-apps/power-apps-grid-control.md @@ -74,7 +74,7 @@ When you configure the Power Apps read-only grid control for a table, *all* view While the Power Apps read-only grid control became the default grid experience in April 2022, you can opt your organization out of the automatic switch to this grid by following the steps here. -1. Go to the [Power Platform Admin Center](https://admin.powerplatform.com/) > Environments > Features. +1. Go to the [Power Platform Admin Center](https://admin.powerplatform.com/) **Manage** > **Environments**. Select **Settings** on the command bar, and then select **Product** > **Features**. 2. Turn off the **Enable the modern read-only grid experience** option in the **Grids and views** section. > [!NOTE] diff --git a/powerapps-docs/maker/model-driven-apps/privileges-required-customization.md b/powerapps-docs/maker/model-driven-apps/privileges-required-customization.md index 8a44ecf2b4..e10c891749 100644 --- a/powerapps-docs/maker/model-driven-apps/privileges-required-customization.md +++ b/powerapps-docs/maker/model-driven-apps/privileges-required-customization.md @@ -2,9 +2,9 @@ title: "Privileges required for customizing apps build on Dataverse | MicrosoftDocs" description: Understand the privileges required to apps built on Dataverse ms.custom: "" -ms.date: 01/21/2025 +ms.date: 04/14/2025 ms.reviewer: "matp" -ms.topic: "conceptual" +ms.topic: article ms.subservice: mda-maker ms.author: "matp" author: "Mattp123" @@ -29,7 +29,11 @@ Anyone who customizes have at least the system customizer security role associat |Has full permission to customize the system|Has full permission to customize the system| |Can view all data in the system|Can view all custom tables in the system but only view rows (records) in the account, contact, and activity tables that they create| -The difference between the system administrator and system customizer security roles is that a system administrator has read privileges on most records in the system and can see everything. Assign the system customizer role to someone who needs to perform customization tasks and has access to all the custom tables but only has access to the account, contact, and activity rows (records) they create. However, testing is an important part of customizing the system. If system customizers can’t see any data, they need to create rows (records) to test their customizations. By default, system customizers have full access to custom tables. If you want to have the same limitations that exist for system tables, you need to adjust the system customizer security role so that the access level is **User** rather than **Organization** for custom tables. +The difference between the system administrator and system customizer security roles is that a system administrator has read privileges on most records in the system and can see everything. Assign the system customizer role to someone who needs to perform customization tasks and has access to all the custom tables but only has access to the account, contact, and activity rows (records) they create. However, testing is an important part of customizing the system. If system customizers can’t see any data, they need to create rows (records) to test their customizations. By default, system customizers have full access to custom tables. If you want to have the same limitations that exist for system tables, you need to adjust the system customizer security role so that the access level is **User** rather than **Organization** for custom tables. + +### Add a security role to a user + +For information about how a Power Platform admin can add a security role to a user, go to [Add users to a security role](/power-platform/admin/security-roles-privileges?tabs=new#add-users-to-a-security-role) ## Delegate customization tasks diff --git a/powerapps-docs/maker/model-driven-apps/rdl-sandboxing.md b/powerapps-docs/maker/model-driven-apps/rdl-sandboxing.md index 1e601ee247..25e12fe725 100644 --- a/powerapps-docs/maker/model-driven-apps/rdl-sandboxing.md +++ b/powerapps-docs/maker/model-driven-apps/rdl-sandboxing.md @@ -7,7 +7,7 @@ ms.reviewer: ms.suite: ms.tgt_pltfrm: -ms.topic: conceptual +ms.topic: article applies_to: - Dynamics 365 for Customer Engagement (online) ms.assetid: 8ec72014-9f0c-4964-ac67-24419b054e91 diff --git a/powerapps-docs/maker/model-driven-apps/reporting-considerations.md b/powerapps-docs/maker/model-driven-apps/reporting-considerations.md index c234a5b993..a7f203d466 100644 --- a/powerapps-docs/maker/model-driven-apps/reporting-considerations.md +++ b/powerapps-docs/maker/model-driven-apps/reporting-considerations.md @@ -6,7 +6,7 @@ ms.date: 12/20/2023 ms.reviewer: ms.suite: ms.tgt_pltfrm: -ms.topic: conceptual +ms.topic: concept-article applies_to: - Dynamics 365 for Customer Engagement (online) - PowerApps diff --git a/powerapps-docs/maker/model-driven-apps/rich-text-editor-control.md b/powerapps-docs/maker/model-driven-apps/rich-text-editor-control.md index d12a5192f5..9941ee5564 100644 --- a/powerapps-docs/maker/model-driven-apps/rich-text-editor-control.md +++ b/powerapps-docs/maker/model-driven-apps/rich-text-editor-control.md @@ -1,9 +1,10 @@ --- title: Add the rich text editor control to a model-driven app description: Learn how to add and customize the rich text editor control in Power Apps model-driven apps to create and edit formatted text. -ms.date: 02/28/2025 +ms.date: 07/14/2025 +ms.update-cycle: 180-days ms.topic: how-to -ms.author: msomara +ms.author: saperlmu author: Mattp123 ms.reviewer: matp ms.subservice: mda-maker @@ -21,96 +22,50 @@ ms.custom: The rich text editor control is a lightweight, HTML-based editor built on the popular CKEditor. It lets you create, paste, and edit formatted text in your model-driven apps. To format text in the editor, you can [use the editor toolbar](#the-rich-text-editor-toolbar), insert HTML tags, or paste formatted text from other applications, like a web browser or Word. -You can customize the editor's appearance, features, and behavior. The control's modern text experience is shown in the following screenshot. +You can customize the editor's appearance, features, and behavior. -:::image type="content" source="./media/rich-text-control.png" alt-text="Screenshot of the default rich text editor in a model-driven app."::: - -Currently, the rich text editor is available as two different experiences: - -- Modern text editor: New experience, set by default -- Classic text editor: Original experience, to be deprecated April 18, 2025 +:::image type="content" source="./media/rich-text-control.png" alt-text="Screenshot of the default rich text editor in a model-driven app." lightbox="./media/rich-text-control.png"::: ## Modern text editor enhancements -The modern text editor is designed to align with the familiar and intuitive interfaces of Microsoft applications such as Outlook, Word, and OneNote. This experience, set by default, introduces a modern design, dark mode, high contrast themes, and a new copilot feature to enhance your text editing capabilities. - -> [!Note] -> Certain functionalities that are available in the classic rich text editor experience aren't yet available in the modern experience. Such functionalities include: -> - Configuration options, as described in this article for the classic experience -> - Mentions -> For more information, refer to [Modern text editor limitations](#modern-rich-text-editor-limitations) - -### Enable the modern rich text editor experience from the classic experience +The modern text editor is designed to align with the familiar and intuitive interfaces of Microsoft applications such as Outlook, Word, and OneNote. This experience, set by default, introduces a modern design, dark mode, high contrast themes, and a new Copilot feature to enhance your text editing capabilities. -The modern rich text editor is enabled by default, but if you're using the classic experience, complete the following steps to switch to the modern rich text editor experience. +> [!NOTE] +> The classic version of the rich text editor was deprecated as of April 2025. If you have issues with upgrading or using the modern rich text editor, contact [Microsoft Customer Support](/power-platform/admin/get-help-support). -1. In Dynamics 365, right-click the app for which you want to enable the modern rich text editor experience, and then select **OPEN IN APP DESIGNER**. Power Apps opens the App Designer. -1. On the command bar, select **Settings**. The settings page displays. -1. In the left pane, in **Settings**, select **Features**. The features page displays. -1. Set the toggle to **Yes** for any or all of the following options, depending on your needs: - - **Enable a modern RichTextEditor control experience and email descriptions**: Enables the modern rich text editor control experience for email descriptions. This setting overrides any customizations you previously made on the rich text editor's classic (default) email experience. - - **Enable a modern RichTextEditor control experience for default controls**: Enables the modern rich text editor experience for default, nonconfigured instances. - - **Enable a modern RichTextEditor control experience for notes authoring**: Enables the modern rich text editor experience for notes. This setting overrides any customizations you previously made on the rich text editor's classic (default) notes authoring experience. -1. Select **Save**. -1. In the App Designer, select **Publish**. +## Add the rich text editor control to a text column on a form -### Revert from the modern rich text editor experience to the classic experience - -If you need to revert to the classic rich text editor experience, follow the same steps in [Enable the modern rich text editor experience](#enable-the-modern-rich-text-editor-experience-from-the-classic-experience), but deselect the options you selected in Step 4. - -> [!IMPORTANT] -> After April 18, 2025, the classic rich text editor experience will no longer be available. Customers who are using the classic version will be upgraded automatically to the modern rich text editor experience. - -### Modern rich text editor limitations - -When using the modern rich text editor, consider the limitations listed in this section. For questions about feature availability, contact Microsoft support. +1. Sign in to [Power Apps](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc). +1. In the left navigation pane, select **Solutions**. +1. Open a solution and then open a table in the solution. +1. In the **Data experiences** area, select **Forms**, and then open the form that contains the text column you want to add the rich text editor to. +1. On the form designer canvas, select an existing text column. Alternatively, select **New table column** to create a new text column, enter a **Display name**, select **Text** > **Rich text** for the **Data type**, and then select **Save**. + :::image type="content" source="media/rich-text-column.png" alt-text="Rich text column"::: + > [!NOTE] + > If you want to add the rich text editor control to a column that already exists, you must first change the column's data type to **Text** (if not already a text column) and then select the **Format** using the **Rich text** option. +1. In the column **Properties** pane, expand the **Components** list, select **+ Component**, and then select **Rich Text Editor Control**. +1. In the **Add Rich Text Editor Control** pane, select **Web**, **Phone**, and **Tablet** to allow apps running on any device to use the editor. -Notes: -- Localization isn't currently supported. -- In-app notifications aren't currently supported. -- You can't use rich text editor content from any external sources like Microsoft Word, Excel, and so forth. -- Offline mode isn't currently supported. -- Only the following file types for attachments are supported: .aac, .avi, .csv, .doc, .docx, .gif, .html, .jpeg, .mid, .midi, .mp3, .mp4, .mpeg, .msg, .pdf, .png, .ppt, .pptx, .svg, .txt, .vsd, .wav, .xls, .xlsm, and .xlsx - -Knowledge management: -- A preview tab isn't currently available. + If you want to [customize the editor](#customize-the-rich-text-editor-control), enter the relative URL of its configuration file, a JavaScript web resource that contains the properties you want to change, in the **Static value** box. If you leave this field empty, the editor uses its default configuration. -Email templates and signatures: -- If you experience an issue with the way an email template renders, we recommend that you recreate it in the modern editor. Otherwise, use the classic editor. +1. Select **Done**. The rich text column is added to the form. -## Add the rich text editor control to a text column + :::image type="content" source="media/rich-text-column-on-form.png" alt-text="Screenshot of the rich text editor control on a model-driven app form." lightbox="media/rich-text-column-on-form.png"::: +1. Select **Save and publish** to apply your changes to the form. -The following configuration is available in the classic rich text editor experience. +### Add the rich text editor control to a text column -When you format a text column as rich text, the default rich text editor control is added automatically. +You can also create a column for a table that uses the rich text editor control. The following steps show you how to create a text column that can later be added to a form for a model-driven app. -1. Sign in to [Power Apps](https://make.powerapps.com/?powerappsEntities.enableColumnFormatUpdate=true&powerappsEntities.enableModernColumn=true). +1. Sign in to [Power Apps](https://make.powerapps.com/). 1. In the left navigation pane, select **Solutions**. 1. Open a solution and a table in the solution. -1. In the **Columns and data** area, select a text column. - - If the table doesn't contain a text column, select **+** (**New column)** and enter a name for the column. - -1. In **Data type**, select **>** to the right of **Text**, and then select the appropriate **Rich text** option based on whether the column contains a single line of text or multiple lines. -1. Save the column, and then add it to a form. - -## Add the rich text editor control to a text column in a form +1. In the **Schema** area, select **Columns**, and then open a text column. -The following configuration is available in the classic rich text editor experience. + If the table doesn't contain a text column, select **New column** and enter a name for the column. -1. Sign in to [Power Apps](https://make.powerapps.com/?utm_source=padocs&utm_medium=linkinadoc&utm_campaign=referralsfromdoc). -1. In the left navigation pane, select **Solutions**. -1. Open a solution and a table in the solution. -1. In the **Data experiences** area, select **Forms**, and then find the form that contains the text column you want to add the rich text editor to. -1. Select **⋮** > **Edit** > **Edit in new tab**. -1. On the form designer canvas, select, add, or create a text column. -1. In the column properties pane, expand the **Components** list, select **+ Component**, and then select **Rich Text Editor Control**. -1. In the **Add Rich Text Editor Control** pane, select **Web**, **Phone**, and **Tablet** to allow apps running on any device to use the editor. - - If you want to [customize the editor](#customize-the-rich-text-editor-control), enter the relative URL of its configuration file, a JavaScript web resource that contains the properties you want to change, in the **Static value** box. If you leave this field empty, the editor uses its default configuration. - -1. Select **Done**. -1. Select **Save and publish** to apply your changes to the form. +1. In the right pane, select **Format**, and then select **Rich text**. +1. **Save** the column. ## Customize the rich text editor control @@ -123,6 +78,10 @@ Power Apps allows you to change the properties of the rich text editor control t Up to three levels, or layers, of configuration can be applied to customize the rich text editor: 1. At the most fundamental level, every instance of the control takes its configuration from the file `RTEGlobalConfiguration_Readonly.json`. The file is read-only, so you can't change these properties directly. + + > [!Note] + > RTEGlobalConfiguration.json doesn't apply to email, knowledge articles, email templates, and signatures. + 1. At the next level, every instance of the control takes its configuration from the properties in the file `RTEGlobalConfiguration.json`, if any are present. This configuration is layered on top of the previous one, so the properties in this file *replace* the same named properties in the read-only file. 1. Finally, at the highest level, a specific instance of the control takes its configuration from a specific configuration file, if one exists. This configuration is layered on top of the previous one, so the properties in this file *replace* the same named properties in the two lower-level files. @@ -134,33 +93,34 @@ We have to add a slight qualification here. The system doesn't replace *all* pro The file `RTEGlobalConfiguration.json` contains the rich text editor's default, or global, configuration. If you're customizing the control in, say, a contact form, you might name the file something like `RTEContactFormConfiguration.json`. -1. Copy and paste the following code snippet in the file: +2. Copy and paste the following code snippet in the file: - ```json - { - "defaultSupportedProps": { - "propertyName": "value", - "propertyName": "value", - "propertyName": "value" - }, - } - ``` - - The last *propertyName:value* pair doesn't end with a comma. +```JSONCopy +{ +"defaultSupportedProps": { + "propertyName": "value", + "propertyName": "value", + "propertyName": "value" +}, +"propertyName": "value", +"propertyName": "value", +} +``` + The last *propertyName:value* pair doesn't end with a comma. -1. Replace *propertyName* and *value* with the [rich text editor control properties](#rich-text-editor-properties) you want to change. String values must be enclosed in quotation marks. +3. Replace *propertyName* and *value* with the [rich text editor control properties](#rich-text-editor-properties) you want to change. String values must be enclosed in quotation marks. We provided a few [example configurations](#example-configurations) for you, but you can define others to suit your needs. -1. In Power Apps, [create a **JavaScript (JS)** type web resource](create-edit-web-resources.md) using the JSON file you created in step 1. -1. [Add the rich text editor control to a text column in a form](#add-the-rich-text-editor-control-to-a-text-column-in-a-form), and in the **Add Rich Text Editor Control** pane > **Static value**, enter the relative URL of the JavaScript web resource. +4. In Power Apps, [create a **JavaScript (JS)** type web resource](create-edit-web-resources.md) using the JSON file you created in step 1. +5. [Add the rich text editor control to a text column on a form](#add-the-rich-text-editor-control-to-a-text-column-on-a-form), and in the **Add Rich Text Editor Control** pane > **Static value**, enter the relative URL of the JavaScript web resource. Although you can enter the absolute URL of the web resource, we recommend that you enter the relative URL. That way, the web resource still works if you import it as a solution into a different environment, provided the relative path is the same. For example, if the URL of the web resource is `https://yourorg.crm.dynamics.com/WebResources/rtecontactform`, the relative URL is */WebResources/rtecontactform*. -1. Select **Done**. -1. Select **Save and publish** to apply your changes to the form. +6. Select **Done**. +7. Select **Save and publish** to apply your changes to the form. ### Customize the rich text editor globally @@ -170,12 +130,6 @@ If your business needs require you to customize the control everywhere, specify ## Use Copilot to refine text in the editor -> [!IMPORTANT] -> ->- This feature is for early-access users. You can [opt in](/power-platform/admin/opt-in-early-access-updates) to use it for testing and adoption in your environments. ->- This feature is in early access only for new organizations. Existing organizations that are already using the feature can continue to use it, even if they didn't opt in for early access. ->- This feature is available for Dynamics 365 Sales, including custom sales apps that have lead and opportunity entities added to the site map. - Copilot uses natural language processing algorithms to help improve written content. You can [add Copilot to the rich text editor](../model-driven-apps/copilot-control.md) and then get suggestions to improve the grammar, clarity, or overall quality of your text. [Learn how to use Copilot in the rich text editor](../model-driven-apps/use-copilot-email-assist.md). ## Rich text editor properties @@ -190,87 +144,75 @@ The JSON file that determines the "look and feel" of an instance of the rich tex The following code is an example of a JSON file that contains both [`defaultSupportedProps`](#defaultsupportedprops) properties and [individual configuration properties](#individual-properties). If a property has a default value, the default value is shown. If a property doesn't have a default value, a sample value is shown to illustrate the syntax. The properties are described in the two tables that follow. ```json -"defaultSupportedProps": { - "height": 185, - "stickyStyle": { - "font-size": "9pt", - "font-family": "'Segoe UI','Helvetica Neue',sans-serif" - }, - "stickyStyles_defaultTag": "div", - "font_defaultLabel": "Segoe UI", - "fontSize_defaultLabel": "9", - "toolbarLocation": "bottom", - "toolbar": [ - [ "CopyFormatting" ], - [ "Font" ], - [ "FontSize" ], - [ "Bold" ], - [ "Italic" ], - [ "Underline" ], - [ "BGColor" ], - [ "TextColor" ], - [ "BulletedList" ], - [ "NumberedList" ], - [ "Outdent" ], - [ "Indent" ], - [ "Blockquote" ], - [ "JustifyLeft" ], - [ "JustifyCenter" ], - [ "JustifyRight" ], - [ "Link" ], - [ "Unlink" ], - [ "Subscript" ], - [ "Superscript" ], - [ "Strike" ], - [ "Image" ], - [ "BidiLtr" ], - [ "BidiRtl" ], - [ "Undo" ], - [ "Redo" ], - [ "RemoveFormat" ], - [ "Table" ] - ], - "plugins": [["button,toolbar,dialogui,dialog,autogrow,notification,clipboard,textmatch,fakeobjects,link,autolink,basicstyles,bidi,blockquote,panelbutton,panel,floatpanel,colorbutton,colordialog,listblock,richcombo,menu,contextmenu,copyformatting,enterkey,entities,popup,find,floatingspace,font,format,htmlwriter,horizontalrule,indent,indentblock,indentlist,justify,lineutils,openlink,list,liststyle,maximize,undo,menubutton,notificationaggregator,xml,ajax,pastetools,pastefromword,pastetext,preview,table,quicktable,removeformat,resize,selectall,showborders,sourcearea,specialchar,stylescombo,tab,tabletools,tableresize,tableselection,widgetselection,widget,wysiwygarea,textwatcher"]], - "extraPlugins": "accessibilityhelp,autogrow,autolink,basicstyles,bidi,blockquote,button,collapser,colorbutton,colordialog,confighelper,contextmenu,copyformatting,dialog,editorplaceholder,filebrowser,filetools,find,floatpanel,font,iframerestrictor,indentblock,justify,notification,panel,panelbutton,pastefromword,quicktable,selectall,stickystyles,superimage,tableresize,tableselection,tabletools,uploadfile,uploadimage,uploadwidget", - "removePlugins": "a11yhelp,codemirror,magicline,scayt,showborders", - "superimageImageMaxSize": 5, - "disallowedContent": "form[action]; *[formaction]; script; *[on*]", - "linkTargets": ["notSet", "_blank"], -}, -"attachmentEntity": { - "name": "msdyn_richtextfiles", - "fileAttributeName": "msdyn_fileblob" -}, -"disableContentSanitization": true, -"disableDefaultImageProcessing": false, -"disableImages": false, -"externalPlugins": [ - { - "name": "EmbedMedia", - "path": "/WebResources/msdyncrm_/myplugins/embedmedia/" - } -], -"imageEntity": { - "imageEntityName": "msdyn_richtextfiles", - "imageFileAttributeName": "msdyn_imageblob" -}, -"readOnlySettings": { - "height": 500, - "showFullScreenExpander": true -}, -"sanitizerAllowlist": { - "attributes": [], - "cssProperties": [], - "domains": [], - "protocols": [], - "tags": [] -}, -"showAsTabControl": false, -"showFullScreenExpander": false, -"showHtml": false, -"showPreview": false, -"showPreviewHeaderWarning": false, -"allowSameOriginSandbox": false +{ + "defaultSupportedProps": { + "height": 185, + "stickyStyle": { + "font-size": "12pt", + "font-family": "'Segoe UI','Helvetica Neue',sans-serif" + }, + "enterMode": 1, + "stickyStyles_defaultTag": "div", + "font_defaultLabel": "Segoe UI", + "fontSize_defaultLabel":"12", + "toolbarLocation": "top", + "toolbar": [ + [ "CopyFormatting" ], + [ "Font" ], + [ "FontSize" ], + [ "Bold" ], + [ "Italic" ], + [ "Underline" ], + [ "BGColor" ], + [ "TextColor" ], + [ "BulletedList" ], + [ "NumberedList" ], + [ "Outdent" ], + [ "Indent" ], + [ "Blockquote" ], + [ "JustifyLeft" ], + [ "JustifyCenter" ], + [ "JustifyRight" ], + [ "Link" ], + [ "Unlink" ], + [ "Subscript" ], + [ "Superscript" ], + [ "Strike" ], + [ "Image" ], + [ "BidiLtr" ], + [ "BidiRtl" ], + [ "Undo" ], + [ "Redo" ], + [ "RemoveFormat" ], + [ "Table" ] + ], + "extraPlugins": "accessibilityhelp,autogrow,autolink,basicstyles,bidi,blockquote,button,collapser,colorbutton,colordialog,confighelper,contextmenu,copyformatting,dialog,editorplaceholder,filebrowser,filetools,find,floatpanel,font,iframerestrictor,indentblock,justify,notification,panel,panelbutton,pastefromword,quicktable,selectall,stickystyles,superimage,tableresize,tableselection,tabletools,uploadfile,uploadimage,uploadwidget", + "toolbarcollapser_enableResizer": false, + "placeholder":"", + "linkTargets": ["notSet", "_blank"], + "stylesSet": "default", + "fontSize_sizes": "8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px", + "font_names": "Angsana New/'Angsana New', 'Leelawadee UI', Sathu, serif;Arial/Arial, Helvetica, sans-serif;Arial Black/'Arial Black', Arial, sans-serif;Calibri Light/'Calibri Light', 'Helvetica Light', sans-serif;Calibri/Calibri, Helvetica, sans-serif;Cambria/Cambria, Georgia, serif;Candara/Candara, Optima, sans-serif;Century Gothic/'Century Gothic', sans-serif;Comic Sans MS/'Comic Sans MS';Consolas/Consolas, Courier, monospace;Constantia/Constantia, 'Hoefler Text', serif;Corbel/Corbel, Skia, sans-serif;Cordia New/'Cordia New', 'Leelawadee UI', Silom, sans-serif;Courier New/'Courier New';DaunPenh/DaunPenh, 'Leelawadee UI', 'Khmer MN', sans-serif;Franklin Gothic Book/'Franklin Gothic Book', 'Avenir Next Condensed', sans-serif;Franklin Gothic Demi/'Franklin Gothic Demi', 'Avenir Next Condensed Demi Bold', sans-serif;Franklin Gothic Medium/'Franklin Gothic Medium', 'Avenir Next Condensed Medium', sans-serif;Garamond/Garamond, Georgia, serif;Gautami/Gautami, 'Nirmala UI', 'Telugu MN', sans-serif;Georgia/Georgia, serif;Impact/Impact, Charcoal, sans-serif;Iskoola Pota/'Iskoola Pota', 'Nirmala UI', 'Sinhala MN', sans-serif;Kalinga/Kalinga, 'Nirmala UI', 'Oriya MN', sans-serif;Kartika/Kartika, 'Nirmala UI', 'Malayalam MN', sans-serif;Latha/Latha, 'Nirmala UI', 'Tamil MN', sans-serif;Leelawadee UI/'Leelawadee UI', Thonburi, sans-serif;Lucida Console/'Lucida Console', Monaco, monospace;Lucida Handwriting/'Lucida Handwriting', 'Apple Chancery', cursive;Lucida Sans Unicode/'Lucida Sans Unicode';Mangal/Mangal, 'Nirmala UI', 'Devanagari Sangam MN', sans-serif;Nirmala UI/'Nirmala UI', sans-serif;Nyala/Nyala, Kefa, sans-serif;Palatino Linotype/'Palatino Linotype', 'Book Antiqua', Palatino, serif;Raavi/Raavi, 'Nirmala UI', 'Gurmukhi MN', sans-serif;Segoe UI/'Segoe UI', 'Helvetica Neue', sans-serif;Shruti/Shruti, 'Nirmala UI', 'Gujarati Sangam MN', sans-serif;Sitka Heading/'Sitka Heading', Cochin, serif;Sitka Text/'Sitka Text', Cochin, serif;Sylfaen/Sylfaen, Mshtakan, Menlo, serif;TW Cen MT/'TW Cen MT', 'Century Gothic', sans-serif;Tahoma/Tahoma, Geneva, sans-serif;Times New Roman/'Times New Roman', Times, serif;Times/Times, 'Times New Roman', serif;Trebuchet MS/'Trebuchet MS';Tunga/Tunga, 'Nirmala UI', 'Kannada MN', sans-serif;Verdana/Verdana, Geneva, sans-serif;Vrinda/Vrinda, 'Nirmala UI', 'Bangla MN', sans-serif;メイリオ/Meiryo, メイリオ, 'Hiragino Sans', sans-serif;仿宋/FangSong, 仿宋, STFangsong, serif;微軟正黑體/'Microsoft JhengHei', 微軟正黑體, 'Apple LiGothic', sans-serif;微软雅黑/'Microsoft YaHei', 微软雅黑, STHeiti, sans-serif;新宋体/NSimSun, 新宋体, SimSun, 宋体, SimSun-ExtB, 宋体-ExtB, STSong, serif;新細明體/PMingLiU, 新細明體, PMingLiU-ExtB, 新細明體-ExtB, 'Apple LiSung', serif;楷体/KaiTi, 楷体, STKaiti, serif;標楷體/DFKai-SB, 標楷體, BiauKai, serif;游ゴシック/'Yu Gothic', 游ゴシック, YuGothic, sans-serif;游明朝/'Yu Mincho', 游明朝, YuMincho, serif;隶书/SimLi, 隶书, 'Baoli SC', serif;黑体/SimHei, 黑体, STHeiti, sans-serif;굴림/Gulim, 굴림, 'Nanum Gothic', sans-serif;궁서/Gungsuh, 궁서, GungSeo, serif;돋움/Dotum, 돋움, AppleGothic, sans-serif;맑은 고딕/'Malgun Gothic', '맑은 고딕', AppleGothic, sans-serif;바탕/Batang, 바탕, AppleMyungjo, serif;바탕체/BatangChe, 바탕체, AppleMyungjo, serif;MS Pゴシック/'MS PGothic', 'MS Pゴシック', 'MS Gothic','MS ゴシック', 'Hiragino Kaku Gothic ProN', sans-serif;MS P明朝/'MS PMincho', 'MS P明朝', 'MS Mincho', 'MS 明朝', 'Hiragino Mincho ProN', serif", + "copyFormatting_allowRules": "b s u i em strong span p div td th ol ul li(*)[*]{*}" + }, + "readOnlySettings": { + "height": 500, + "showFullScreenExpander": true + }, + "sanitizerAllowlist": { + "attributes": [], + "cssProperties": [], + "domains": [], + "protocols": [], + "tags": [] + }, + "disableContentSanitization": true, + "disableOnLoadEditModeSanitization": true, + "disableDefaultImageProcessing": true, + "showFullScreenExpander": false, + "showAsTabControl": false, + "showHtml": false +} ``` ### defaultSupportedProps @@ -290,7 +232,6 @@ The following table describes the most commonly used properties, but you can con | extraPlugins | Appends plug-ins to the `plugins` list to load more plug-ins.
    Many plug-ins require other plug-ins to work. The rich text editor automatically adds them, and you can't use this property to override them. Use `removePlugins` instead. | See [defaultSupportedProps](#defaultsupportedprops) | | removePlugins | Lists plug-ins not to load. Use it to change which plug-ins are loaded without changing the `plugins` and `extraPlugins` lists. | See [defaultSupportedProps](#defaultsupportedprops) | | superimageImageMaxSize | Sets the maximum size in megabytes (MB) allowed for embedded images when using the superimage plug-in. | "5" | -| [disallowedContent](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_disallowed_content.html#disallowed-content-rules) | Lets you prevent users from inserting elements that you don't want to have in your content. You can disallow entire elements or by attributes, classes, and styles. | See [defaultSupportedProps](#defaultsupportedprops) | | linkTargets | Allows you to configure which link target options are available for users when they create links:
    - "notSet": No target set
    - "frame": Opens the document in the specified frame
    - popupWindow": Opens the document in a popup window
    - "_blank": Opens the document in a new window or tab
    - "_top": Opens the document in the full body of the window
    - "_self": Opens the document in the same window or tab where the link is activated
    - "_parent": Opens the document in the parent frame | "notSet", "_blank" | | | | @@ -304,7 +245,6 @@ The following table describes more properties you can use to customize the rich | disableContentSanitization | Content sanitization removes some custom attributes or tags from rich text content. It's disabled by default to allow copying and pasting of rich text content from external sources. This property applies only to edit mode. When the editor control is read-only or disabled, content is always sanitized. | true | | disableDefaultImageProcessing | By default, images that are inserted in the editor are uploaded to the `attachmentEntity` defined in the configuration. External users might lack privileges to view the content in the table. Instead, set this property to true to store images as base64 strings directly in the column configured to use the rich text editor control. | false | | disableImages | Determines whether images can be inserted in the editor. This property has highest priority. When this property is set to true, images are disabled, regardless of the value of the `imageEntity` property. | false | -| externalPlugins | Lists external plug-ins or plug-ins that you create that can be used in the rich text editor control.
    Syntax: "name": "*pluginName*", "path": "*pathToPlugin*" (the path value can be an absolute or relative URL) | None; see [defaultSupportedProps](#defaultsupportedprops) for an example | | imageEntity | To enforce more security on [images](/power-apps/developer/data-platform/image-attributes) by using a table other than the default, set this property and specify a different table.
    Syntax: "imageEntityName": "*tableName*", "imageFileAttributeName": "*attributeNameofBlobReference*" | See [defaultSupportedProps](#defaultsupportedprops) | | readOnlySettings | These properties determine the behavior of the column when viewed in a read-only or disabled state. You can specify any supported property. | None; see [defaultSupportedProps](#defaultsupportedprops) for an example | | sanitizerAllowlist | Lists other kinds of content that can be displayed in the editor. | See [defaultSupportedProps](#defaultsupportedprops) | @@ -343,42 +283,11 @@ Set this [`defaultSupportedProps` property](#defaultsupportedprops) in your [con "enterMode": 2, ``` -### Paste or create HTML 5 content only - -Although the rich text editor control works best with HTML 5 content, you can use HTML 4 tags. In some cases, however, mixing HTML 4 and HTML 5 tags can create usability challenges. To make sure all content is HTML 5, provide all the supported HTML 5 tags in the `allowedContent` property. The editor control converts any noncompliant tags to their HTML 5 equivalent. - -Set this [`defaultSupportedProps` property](#defaultsupportedprops) in your [configuration file](#levels-of-customization). Follow this value with a comma (`,`) unless it's the last property in the file. - -```json -"allowedContent": "a(*)[*]{*};abbr(*)[*]{*};address(*)[*]{*};area(*)[*]{*};article(*)[*]{*};aside(*)[*]{*};audio(*)[*]{*};b(*)[*]{*};base(*)[*]{*};bdi(*)[*]{*};bdo(*)[*]{*};blockquote(*)[*]{*};body(*)[*]{*};br(*)[*]{*};button(*)[*]{*};canvas(*)[*]{*};caption(*)[*]{*};cite(*)[*]{*};code(*)[*]{*};col(*)[*]{*};colgroup(*)[*]{*};data(*)[*]{*};datalist(*)[*]{*};dd(*)[*]{*};del(*)[*]{*};details(*)[*]{*};dfn(*)[*]{*};dialog(*)[*]{*};div(*)[*]{*};dl(*)[*]{*};dt(*)[*]{*};em(*)[*]{*};embed(*)[*]{*};fieldset(*)[*]{*};figcaption(*)[*]{*};figure(*)[*]{*};footer(*)[*]{*};form(*)[*]{*};h1(*)[*]{*};h2(*)[*]{*};h3(*)[*]{*};h4(*)[*]{*};h5(*)[*]{*};h6(*)[*]{*};head(*)[*]{*};header(*)[*]{*};hr(*)[*]{*};html(*)[*]{*};i(*)[*]{*};iframe(*)[*]{*};img(*)[*]{*};input(*)[*]{*};ins(*)[*]{*};kbd(*)[*]{*};label(*)[*]{*};legend(*)[*]{*};li(*)[*]{*};link(*)[*]{*};main(*)[*]{*};map(*)[*]{*};mark(*)[*]{*};meta(*)[*]{*};meter(*)[*]{*};nav(*)[*]{*};noscript(*)[*]{*};object(*)[*]{*};ol(*)[*]{*};optgroup(*)[*]{*};option(*)[*]{*};output(*)[*]{*};p(*)[*]{*};param(*)[*]{*};picture(*)[*]{*};pre(*)[*]{*};progress(*)[*]{*};q(*)[*]{*};rp(*)[*]{*};rt(*)[*]{*};ruby(*)[*]{*};s(*)[*]{*};samp(*)[*]{*};section(*)[*]{*};select(*)[*]{*};small(*)[*]{*};source(*)[*]{*};span(*)[*]{*};strong(*)[*]{*};style(*)[*]{*};sub(*)[*]{*};summary(*)[*]{*};sup(*)[*]{*};svg(*)[*]{*};table(*)[*]{*};tbody(*)[*]{*};td(*)[*]{*};template(*)[*]{*};textarea(*)[*]{*};tfoot(*)[*]{*};th(*)[*]{*};thead(*)[*]{*};time(*)[*]{*};title(*)[*]{*};tr(*)[*]{*};track(*)[*]{*};u(*)[*]{*};ul(*)[*]{*};var(*)[*]{*};video(*)[*]{*};wbr(*)[*]{*};", -``` - -### Paste or create plain text only - -Set these [`defaultSupportedProps` properties](#defaultsupportedprops) in your [configuration file](#levels-of-customization). Each value except the last one must be followed by a comma (`,`). - -```json -"enterMode": 2, -"shiftEnterMode": 2, -"allowedContent": "*", -"disallowedContent": "*", -"forcePasteAsPlainText": true, -"toolbar": [], -"removePlugins": "contextmenu,liststyle,openlink,tableresize,tableselection,tabletools", -``` - -Set this [individual property](#individual-properties) in your [configuration file](#levels-of-customization). Follow this value with a comma (`,`) unless it's the last property in the file. - -```json -"disableImages": true, -``` - ### Allow the editor to use the full screen Set these [individual properties](#individual-properties) in your [configuration file](#levels-of-customization). Each value except the last one must be followed by a comma (`,`). ```json -"showAsTabControl": true, "showFullScreenExpander": true, ``` @@ -442,7 +351,7 @@ Set these [`defaultSupportedProps` properties](#defaultsupportedprops) in your [ ```json "autoGrow_onStartup": false, -"autoGrow_maxHeight": 0, +"autoGrow_maxHeight": 8000, "autoGrow_minHeight": 30, "height": 30, ``` @@ -470,27 +379,6 @@ Set this [`defaultSupportedProps` property](#defaultsupportedprops) in your [con "removePlugins": "contextmenu,liststyle,openlink,tableresize,tableselection,tabletools", ``` -## Find the configuration of a rich text editor control - -If you're not sure where the configuration of an instance of the rich text editor is coming from, you can find it using your browser's developer tools. - -1. In Microsoft Edge or Google Chrome, run your model-driven app and open a form that has the rich text editor control. -1. Right-click the rich text editor content area and select **Inspect**. -1. In the inspection pane, select the **Console** tab. -1. Select the parent **Main.aspx** page in the list box on the command bar. - - :::image type="content" source="media/cke-select-parent-main.png" alt-text="Screenshot of the browser developer tools, with the Console tab and main.aspx page highlighted."::: - -1. Select the **Clear console** icon on the inspection pane command bar, and then enter **CKEDITOR.config.** in the console. - - :::image type="content" source="media/cke-clear-console.png" alt-text="Screenshot of the browser developer tools, with the Clear console icon highlighted."::: - -1. In the inspection pane console, enter **CKEDITOR.config.** to display the different configurations. - - :::image type="content" source="media/cke-configs.png" alt-text="List of CK Editor configurations."::: - -1. Select a configuration, such as **autoGrow_minHeight**, to display the current setting. - ## The rich text editor toolbar The following table describes the formatting tools that are available in the rich text editor by default. @@ -530,7 +418,7 @@ The following table describes the formatting tools that are available in the ric | ![Expand Toolbar.](media/show-more.png "Expand Toolbar")| Expand Toolbar | | When the window is too narrow to show the entire toolbar, select to expand the toolbar to a second row. | | | | | | -> [!Tip] +> [!TIP] > To use your browser's built-in spell checker, press the Ctrl key as you right-click the text you want to check. Otherwise, the right-click (context) menu provides contextual formatting for the element you select. > An alternative to your browser's built-in spell checker is the [Microsoft Editor browser extension](https://www.microsoft.com/microsoft-365/microsoft-editor). Microsoft Editor works seamlessly with the rich text editor control, and when enabled, provides fast and easy inline grammar and spell-check capabilities. @@ -558,25 +446,88 @@ The following formatting tools are available in the rich text editor when it's o - In the default rich text editor configuration, if you drag and drop an image file into the rich text editor, it uploads the inline image to the `msdyn_richtextfiles` table. For appropriate users to be able to view the inline image, make sure you apply the correct permissions to `msdyn_richtextfiles`. +## Rich text editor limitations + +When using the rich text editor, consider the limitations listed in this section. For questions about feature availability, contact [Microsoft Customer Support](/power-platform/admin/get-help-support). + +> [!IMPORTANT] +> The modern rich text editor is a new experience. For the functionality to work correctly, you must remove the classic version. Otherwise, your templates might not display correctly. + +Rich text editor limitations include the following: + +- You can't use rich text editor content from any external sources like Microsoft Word, Excel, and so forth. +- The following file types for attachments are supported out of the box: .aac, .avi, .csv, .doc, .docx, .gif, .html, .jpeg, .mid, .midi, .mp3, .mp4, .mpeg, .msg, .pdf, .png, .ppt, .pptx, .svg, .txt, .vsd, .wav, .xls, .xlsm, and .xlsx. You can configure the allowed extensions for your environment in your advanced settings by going to **Administration** > **General** > **Set blocked file extensions for attachments** and removing the extensions you want to allow. +- Non-Microsoft plugins aren't supported. + +Knowledge management: + +- A preview tab isn't currently available. + +Email templates and signatures: + +- If you experience an issue with the way an email template renders, we recommend that you recreate it in the modern editor. +- Nested HTML structures—such as deeply nested <div> or <table> elements—can cause rendering problems in the rich text editor. We recommend that you simplify the HTML structure by removing unnecessary nested <div> or <table> tags to ensure consistent rendering across clients. + ## Frequently asked questions ### Why are typed characters slow to display? If you have a lot of content in the editor, the response time can increase. Keep the content to 1 MB or less for the best performance. Spelling or grammar checks can also slow the typing performance. +### Why doesn't my content render until the editor is refreshed? + +This behavior occurs when custom code injects content into the rich text editor without triggering a re-render of the control. The rich text editor doesn’t automatically detect external updates unless it's explicitly notified. + +To work around this issue, you can do either of the following actions: + +- Use an event listener (for example, formContext.data.entity.addOnSave) to trigger a refresh after content is injected. + +- Use formContext.ui.refreshRibbon() or a similar API to force an update. + +Example: +``` +window.top.addEventListener('rteEditorReady', (event) => { +    const { parentEntity } = event.detail; + +    if (parentEntity?.typeName === 'email' && +        parentEntity?.fieldName === 'description') { + +        const descriptionAttr = Xrm.Page.getAttribute("description"); +        if (descriptionAttr) { +            descriptionAttr.setValue(emailSignature); +        } +    } +}, { once: true }); +``` +In this example, the event listener is automatically removed after the rteEditorReady event is triggered. This ensures the listener runs only once, helping to prevent memory leaks and unnecessary resource usage. + ### Why can't I upload an image? Why does the image preview fail to load? If the image file name, including the path, is long, the file might fail to upload, or the preview might not be displayed. Try shortening the file name or moving it to a location with a shorter path, and then upload it again. -### Why am I seeing HTML in my text? +### Why do I see HTML in my text? If the rich text editor control is used in a column that isn't formatted for rich text, the content appears in the underlying HTML instead of as formatted text. +### What's the size limit of HTML content? + +For the best performance, keep your HTML content to 1 MB or less. At larger sizes, you might notice slower response times for loading and editing. + :::image type="content" source="./media/html-markup-issue.png" alt-text="Screenshot of HTML appearing in the editor content area."::: -To resolve this issue, see make sure the [format of the column is set to **Rich text**](#add-the-rich-text-editor-control-to-a-text-column). +To resolve this issue, make sure the [format of the column is set to **Rich text**](#add-the-rich-text-editor-control-to-a-text-column). + +### I’ve exceeded the character limit but there are fewer characters than the limit. Why? + +The database stores the entire HTML formatting, not just the characters, which takes up extra space. + +### Why am I not seeing the modern rich text editor? + +The modern rich text editor control is part of the **New look for model-driven apps** and doesn’t appear unless the [app setting](app-properties.md) is turned on. Without the setting enabled, you might see an older version of the editor. + +:::image type="content" source="media/new-look-setting.png" alt-text="New look for model-driven apps app setting"::: -### See also +### Related information - [Create and edit columns for Microsoft Dataverse using Power Apps portal](../data-platform/create-edit-field-portal.md) - [Use Copilot in rich text editor for email](../model-driven-apps/use-copilot-email-assist.md) diff --git a/powerapps-docs/maker/model-driven-apps/run-model-driven-app.md b/powerapps-docs/maker/model-driven-apps/run-model-driven-app.md index f6be038c64..d2c7340158 100644 --- a/powerapps-docs/maker/model-driven-apps/run-model-driven-app.md +++ b/powerapps-docs/maker/model-driven-apps/run-model-driven-app.md @@ -2,7 +2,7 @@ title: How to run a model-driven app | MicrosoftDocs description: "How to run a Power Apps model-driven app" ms.custom: "" -ms.date: 08/13/2024 +ms.date: 05/06/2025 ms.reviewer: "matp" ms.suite: "" ms.tgt_pltfrm: "" @@ -60,7 +60,7 @@ When a user hovers over the app name at the top of the web browser, the app's de :::image type="content" source="media/app-description-browser.png" alt-text="hovering over the app name shows the app description"::: - If the app's description was [generated using AI](build-first-model-driven-app.md#create-an-app-description-with-copilot-preview), a disclaimer is shown. Selecting the app name opens the app switcher where the user can play another app that they have access to. +If the app's description was [generated using AI](build-first-model-driven-app.md#create-an-app-description-with-copilot), a disclaimer is shown. Selecting the app name opens the app switcher where the user can play another app that they have access to. ### See also diff --git a/powerapps-docs/maker/model-driven-apps/set-properties-chart-list-included-dashboard.md b/powerapps-docs/maker/model-driven-apps/set-properties-chart-list-included-dashboard.md index ec76c09762..47c951d7c7 100644 --- a/powerapps-docs/maker/model-driven-apps/set-properties-chart-list-included-dashboard.md +++ b/powerapps-docs/maker/model-driven-apps/set-properties-chart-list-included-dashboard.md @@ -6,7 +6,7 @@ ms.date: 02/27/2024 ms.reviewer: "" ms.suite: "" ms.tgt_pltfrm: "" -ms.topic: "conceptual" +ms.topic: how-to applies_to: - "Dynamics 365 (online)" - "Dynamics 365 Version 9.x" diff --git a/powerapps-docs/maker/model-driven-apps/set-up-timeline-control.md b/powerapps-docs/maker/model-driven-apps/set-up-timeline-control.md index 5116d69b7e..2cde70928f 100644 --- a/powerapps-docs/maker/model-driven-apps/set-up-timeline-control.md +++ b/powerapps-docs/maker/model-driven-apps/set-up-timeline-control.md @@ -2,7 +2,7 @@ title: Add and configure the timeline control in Power Apps | MicrosoftDocs description: "Learn how to add and configure the timeline control to use in a model-driven app." ms.custom: "" -ms.date: 03/05/2025 +ms.date: 05/29/2025 ms.reviewer: "matp" ms.suite: "" ms.tgt_pltfrm: "" @@ -499,12 +499,14 @@ Go to your timeline configuration in [make.powerapps.com](https://make.powerapps - Data column: Select to show the createdon or modifiedon date. - Display option: Always show, show on expand, this footer containing the createdon or modifiedon date. -## Configure mentions in notes and posts on timeline +## Configure @mentions in notes and posts on timeline -To enable mentions in notes and posts, follow the instructions provided in this article: [Use @mention for collaborating with your team using notes](/power-apps/user/use-@mentions) +To enable @mentions in notes and posts, follow the instructions provided in this article: [Use @mention for collaborating with your team using notes](/power-apps/user/use-@mentions) > [!IMPORTANT] -> The mentions feature doesn't work with Power Platform environments that were created with the **Enable Dynamics 365 apps** option set to **No**. For more information about this option, go to [Create an environment with a database](/power-platform/admin/create-environment#create-an-environment-with-a-database). +> The @mentions feature doesn't work with Power Platform environments that were created with the **Enable Dynamics 365 apps** option set to **No**. For more information about this option, go to [Create an environment with a database](/power-platform/admin/create-environment#create-an-environment-with-a-database). +>

    +> Users must have the Read privilege for the **msdyn_postconfig** entity, and the Share privilege for the entity for which they use @mentions (for example, account, contact, case, and so forth).