From a4ed90bad686669b4e84f6153d9df3b9b2964902 Mon Sep 17 00:00:00 2001 From: Lane Swenka Date: Thu, 23 May 2024 17:28:49 -0700 Subject: [PATCH 01/63] Updates for UDE GA Updates for UDE GA --- .../finance-operations-apps-overview.md | 32 +++++------- ...ervices-environment-unified-environment.md | 18 +++---- ...eploy-new-environment-with-ERP-template.md | 32 +++++------- ...all-finance-operations-provisioning-app.md | 51 ++++++++++--------- 4 files changed, 61 insertions(+), 72 deletions(-) diff --git a/power-platform/admin/unified-experience/finance-operations-apps-overview.md b/power-platform/admin/unified-experience/finance-operations-apps-overview.md index 5a74a0eba..557e4a291 100644 --- a/power-platform/admin/unified-experience/finance-operations-apps-overview.md +++ b/power-platform/admin/unified-experience/finance-operations-apps-overview.md @@ -11,46 +11,43 @@ ms.reviewer: sericks # Unified admin experience for finance and operations apps (preview) -[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] - Users of finance and operations apps can now administer their environments, policies, licensing, and capacity in the [Power Platform admin center](https://admin.powerplatform.microsoft.com). -As part of the unification of admin experiences of finance and operations apps within Power Platform, the environment for finance and operations apps is now an application within Power Platform. Therefore, multiple Dynamics 365 applications, such as Sales, Marketing, finance and operations, and apps, flows, and websites in Power Platform can be installed and hosted in the same Power Platform environment [with a Dataverse database](/power-platform/admin/create-environment#create-an-environment-with-a-database). This unification provides a consistent and single set of lifecycle operations that an admin can perform across all artifacts. +As part of the unification of admin experiences of finance and operations apps within Power Platform, the environment for finance and operations apps is now an application within Power Platform. In this new experience, multiple Dynamics 365 applications, such as Sales, Marketing, finance and operations, as well as low-code apps, flows, and websites can be installed and hosted in the same Power Platform environment [with a Dataverse database](/power-platform/admin/create-environment#create-an-environment-with-a-database). This unification provides a consistent and single set of lifecycle operations that an admin can perform across all artifacts in a particular environment. :::image type="content" source="media/one-admin-journey.png" alt-text="Screenshot that shows the unified admin experience for finance and operations apps."::: -> [!IMPORTANT] -> -> - This is a preview feature. -> - 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. - This article gives an overview to finance and operations apps administrators who are new to the Power Platform admin center. Learn some key differences between your prior admin center called Lifecycle Services and the new experience. You can also browse more resources and articles that provide detailed information for common tasks. -To learn more about the admin unification journey, watch this video on the Microsoft Dynamics 365 Community channel on YouTube: [Video: Unified admin experience for finance and operations apps](https://www.youtube.com/embed/VPQSmtgzfjM). +To learn more about the admin unification journey, watch this video on the [Microsoft Dynamics 365 Community](https://www.youtube.com/@MSD365Community) + +> [!VIDEO https://www.youtube.com/embed/HmJIuHhx3Hg]. ## How do finance and operations apps surface in the Power Platform admin center? -There are no new environment types in the Power Platform admin center. We integrated the finance and operations apps into the Power Platform fabric. +Finance and operations apps will now have the same behavior as other Dynamics 365 apps have had within Power Platform admin center. The apps will be available to licensed customers both during new environment creation as well as installed in to an existing environment. -You can deploy the finance and operations apps within the Power Platform admin center in one of two ways. +You can deploy the finance and operations apps within the Power Platform admin center in one of the following ways: ### Option A: Create a new environment through templates -When you create a new environment in the Power Platform admin center, you can add a Dataverse database and enable Dynamics 365 apps. You see a list of environment app templates that becomes available under **Automatically deploy these apps**. This list is a group of applications preinstalled on a Dataverse database. +A template is simply a bundle of Microsoft published applications that are pre-installed on a Dataverse-based Power Platform environment. This is a means of increasing productivity as you can deploy an environment with a known configuration of apps quickly without having to install each one in the proper sequence manually. When using a template, you will always get the very latest version of each of those applications available as of that moment. + +When creating a new environment in the Power Platform admin center, you can add a Dataverse data store and choose to **Enable Dynamics 365 apps**. Then you will be presented with a list of environment templates that becomes available under **Automatically deploy these apps**. :::image type="content" source="media/new-environment-template.png" alt-text="Environment templates"::: -This list is dynamic, so you only see references to **Finance**, **Supply Chain Management**, **Commerce**, **Project Operations**, and other finance and operations apps based on the license of the admin creating the environment. For step-by-step instructions, see [Tutorial: Provision a new environment with an ERP-based template](./tutorial-deploy-new-environment-with-ERP-template.md). +This list is dynamic, so you only see references to **Finance**, **Supply Chain Management**, **Commerce**, **Project Operations**, and other finance and operations apps based on the licenses assigned to the admin creating the environment. For step-by-step instructions, see [Tutorial: Provision a new environment with an ERP-based template](./tutorial-deploy-new-environment-with-ERP-template.md). ### Option B: Install the provisioning app on an existing environment -You can install finance and operations apps on an existing Power Platform environment with a Dataverse database. Select an environment, navigate to the **Resources** > **Dynamics 365 apps** page, and select the **Dynamics 365 Finance and Operations Provisioning App**. +If you already have an environment that should function with finance and operations apps, you can simply install it instead of creating a separate environment that will require complex integration. The environment you use must support Dynamics 365 apps. As part of the install process, you will be able to pick any of the supported versions of the finance and operations apps, which is helpful if you want to get a version that is not the latest generally available version. :::image type="content" source="media/install-provisioning-app.png" alt-text="Install provisioning app"::: For step-by-step instructions, see [Tutorial: Install the Finance and Operations Provisioning App](./tutorial-install-finance-operations-provisioning-app.md). -With either option, your environment has two runtime URLs: +With either option, your environment will have two runtime URLs: - One for customer engagement apps (**Environment URL**) - One for finance and operations apps (**Finance and Operations URL**) @@ -100,14 +97,13 @@ These continually updated scenario tutorials give a walkthrough for administrato - [Unified admin trials (preview)](admin-trials.md) - [Manage storage and capacity](../finance-operations-storage-capacity.md) -### Known limitations during preview +### Known limitations As part of the preview, there are a few limitations soon to be removed, so check back often to determine their resolution. -- The environment templates don't include Project Operations. - The environment name can't exceed 20 characters—a limitation on the finance and operations runtime. -### Frequently asked questions for the public preview +### Frequently asked questions We continue to publish common questions and resolve open items before making the experience generally available (GA). diff --git a/power-platform/admin/unified-experience/tutorial-copy-lifecycle-services-environment-unified-environment.md b/power-platform/admin/unified-experience/tutorial-copy-lifecycle-services-environment-unified-environment.md index 223c32215..6bef18a3c 100644 --- a/power-platform/admin/unified-experience/tutorial-copy-lifecycle-services-environment-unified-environment.md +++ b/power-platform/admin/unified-experience/tutorial-copy-lifecycle-services-environment-unified-environment.md @@ -1,5 +1,5 @@ --- -title: "Tutorial: Copy a Lifecycle Services environment to a unified environment (preview) | Microsoft Docs" +title: "Tutorial: Copy a Lifecycle Services environment to a unified environment | Microsoft Docs" description: This tutorial will demonstrate how to perform environment copy with respect to unified environments. author: laneswenka ms.reviewer: sericks @@ -12,27 +12,21 @@ search.audienceType: - admin --- -# Tutorial: Copy a Lifecycle Services environment to a unified environment (preview) - -[!INCLUDE [preview-banner](~/../shared-content/shared/preview-includes/preview-banner.md)] +# Tutorial: Copy a Lifecycle Services environment to a unified environment Finance and operations apps have been reimagined as an application hosted by Microsoft Dataverse. A common function for administrators of finance and operations apps is to copy environments. Historically, this has been done in Microsoft Dynamics 365 Lifecycle Services, but now everything can be managed in the Power Platform admin center. In this tutorial, you'll learn how to: -- Prepare the source environment -- Copy the environment to the target +> [!div class="checklist"] +> * Prepare the source environment +> * Copy the environment to the target As an example of this scenario, a customer who operates their finance and operations apps environments through the Lifecycle Services site today would like to copy their production environment data into their new, unified, developer environment in the Power Platform admin center. -> [!IMPORTANT] -> -> - This is a preview feature. -> - 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. - ## Before you begin -The target environment in this tutorial is always a unified environment that contains finance and operations apps hosted by Microsoft Dataverse. To learn how to deploy one of these environments, see [Tutorial: Provision a new environment with an ERP-based template (preview)](./tutorial-deploy-new-environment-with-ERP-template.md). +The target environment in this tutorial is always a unified environment that contains finance and operations apps hosted by Microsoft Dataverse. To learn how to deploy one of these environments, see [Tutorial: Provision a new environment with an ERP-based template ](./tutorial-deploy-new-environment-with-ERP-template.md). The source environment in this tutorial is always a finance and operations apps environment in Lifecycle Services that was set up through the [Power Platform integration](/dynamics365/fin-ops-core/dev-itpro/power-platform/enable-power-platform-integration). diff --git a/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md b/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md index ddad531bc..9e6cb6217 100644 --- a/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md +++ b/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md @@ -1,5 +1,5 @@ --- -title: "Tutorial: Provision a new environment with an ERP-based template (preview) | Microsoft Docs" +title: "Tutorial: Provision a new environment with an ERP-based template | Microsoft Docs" description: This tutorial demonstrates how to use the Power Platform to Provision an environment with finance and operations apps installed. author: laneswenka ms.reviewer: sericks @@ -12,25 +12,19 @@ search.audienceType: - admin --- -# Tutorial: Provision a new environment with an ERP-based template (preview) - -[!INCLUDE [preview-banner](~/../shared-content/shared/preview-includes/preview-banner.md)] +# Tutorial: Provision a new environment with an ERP-based template Finance and operations apps have been reimagined as an application hosted by Microsoft Dataverse. No longer do customers need to provision their enterprise resource planning (ERP) system separately from their low-code and other Dynamics 365 platform applications. Additionally, most administrative actions in Power Platform are available through the admin center and an API-based experience. In this tutorial, learn how to: -- Go to the Power Platform admin center and create a new environment using a template based on your assigned license. -- Provision a developer-focused sandbox using PowerShell to use with X++ code. -- Delete an environment when no longer in use. +> [!div class="checklist"] +> * Go to the Power Platform admin center and create a new environment using a template based on your assigned license. +> * Provision a developer-focused sandbox using PowerShell to use with X++ code. +> * Delete an environment when no longer in use. As an example of this scenario, a customer who operates their finance and operations apps environments in Microsoft Dynamics 365 Lifecycle Services can provision one of the newer, developer-focused sandboxes in the Power Platform admin center. -> [!IMPORTANT] -> -> - This is a preview feature. -> - 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. - ## Environment provisioning The easiest way to get finance and operations apps up and running in Power Platform is to create a new environment using a template. A template is simply an efficiency in terms of creating a Dataverse-based Power Platform environment with several applications preinstalled. In this scenario, the finance and operations ERP application is installed automatically upon environment creation. @@ -49,13 +43,13 @@ All Dynamics 365 environment templates are associated with their related full us | ----------- | ----------- |----------- |----------- | | Dynamics 365 Finance| Finance (preview) | D365_FinOps_Finance | | | Dynamics 365 Supply Chain Management (preview) | Supply Chain Management (preview) | D365_FinOps_SCM | | -| Dynamics 365 Project Operations | Project Operations Integrated (preview) | D365_FinOps_ProjOps | This is not yet available in the public preview but will be soon. | -| Dynamics 365 Operations Application Partner Sandbox | Project Operations Integrated (preview) | D365_FinOps_ProjOps | This is not yet available in the public preview but will be soon. Partners may temporarily use the D365_FinOps_Finance template until this is resolved. | -| Dynamics 365 Commerce| Commerce (preview) | D365_FinOps_Commerce | This is not yet available in the public preview but will be soon. | +| Dynamics 365 Project Operations | Project Operations Integrated (preview) | D365_FinOps_ProjOps | | +| Dynamics 365 Operations Application Partner Sandbox | Project Operations Integrated (preview) | D365_FinOps_ProjOps | | +| Dynamics 365 Commerce| Commerce (preview) | D365_FinOps_Commerce | This is only available for Trials. | ### Known limitations -Be sure to check out the latest known limitations available in the overview article [Unified admin experience for finance and operations apps (preview)](finance-operations-apps-overview.md#known-limitations-during-preview). +Be sure to check out the latest known limitations available in the overview article [Unified admin experience for finance and operations apps](finance-operations-apps-overview.md#known-limitations-during-preview). ## Step-by-step provisioning guide @@ -63,8 +57,8 @@ Be sure to check out the latest known limitations available in the overview arti ### Create an environment -> [!Note] -> During public preview, this will initially not be visible in the Power Platform admin center. Instead you may provision these new environments using PowerShell on the related tab on this page. However, this will eventually be visible when non-developer sandboxes are supported for finance and operations apps. +> [!Important] +> This is only available for **Subscription-based trial** environment types. The list of environment types supported will expand over time. 1. Sign in to the [Power Platform admin center](https://admin.powerplatform.microsoft.com). 1. Select **Environments** in the navigation pane. The **Environments** page is displayed. @@ -74,7 +68,7 @@ Be sure to check out the latest known limitations available in the overview arti 1. Enter a name for the environment. Environment names don't need to be unique in Power Platform, unlike in Lifecycle Services. 1. Choose your Provisionment region. -1. From the **Type** list, select **Sandbox**. +1. From the **Type** list, select **Subscription-based Trial**. 1. Enable the Dataverse data store option, and select **Next**. 1. On the next screen, enter the Dataverse-required fields. 1. Select **Enable Dynamics 365 apps** and choose the appropriate template for your license. diff --git a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md index e21bc0c59..1260ee1dc 100644 --- a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md @@ -1,5 +1,5 @@ --- -title: "Tutorial: Install the Finance and Operations Provisioning App (preview) | Microsoft Docs" +title: "Tutorial: Install the Finance and Operations Provisioning App | Microsoft Docs" description: Learn how to install the Finance and Operations Provisioning App onto an existing Power Platform environment. author: laneswenka ms.reviewer: sericks @@ -12,24 +12,18 @@ search.audienceType: - admin --- -# Tutorial: Install the Finance and Operations Provisioning App (preview) - -[!INCLUDE [preview-banner](~/../shared-content/shared/preview-includes/preview-banner.md)] +# Tutorial: Install the Finance and Operations Provisioning App Finance and operations apps are reimagined as an application hosted by Microsoft Dataverse. Customers don't need to provision their enterprise resource planning (ERP) system separately from their low-code and other Dynamics 365 platform applications. Most administrative actions in Power Platform are available through the admin center and an API-based experience. -In this article, learn how to: +In this tutorial, you will learn how to: -- Locate an existing environment in the Power Platform admin center with other Dynamics 365 apps installed. -- Install the Finance and Operations Provisioning app to see finance and operations apps capabilities. +> [!div class="checklist"] +> * Locate an existing environment in the Power Platform admin center with other Dynamics 365 apps installed. +> * Install the Finance and Operations Provisioning app to see finance and operations apps capabilities. For example, a customer who already purchased other Dynamics 365 apps wants to add finance and operations apps capabilities to one of their existing environments. -> [!IMPORTANT] -> -> - This is a preview feature. -> - 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. - ## Prerequisites - You must have a license to install finance and operations apps in Power Platform. @@ -65,23 +59,34 @@ Limitations for an installation of the provisioning app: ### Install on an environment 1. Sign in to the [Power Platform admin center](https://admin.powerplatform.microsoft.com). -1. Select **Environments** in the navigation pane. The **Environments** list page is displayed. -1. Select a given environment that meets the prerequisite criteria. -1. Select **Dynamics 365 apps** under the **Resources** card on the environment details page. -1. Select **Install app**. -1. Locate and install the **Dynamics 365 Finance and Operations Platform Tools** app. This application provides platform support for installing ERP-based applications. -1. Locate and install the **Dynamics 365 Finance and Operations Provisioning app**. This application provides the finance and operations apps capabilities for Dynamics 365 Finance, Supply Chain Management, Project Operations, Human Resources, and Commerce workloads. +2. Select **Environments** in the navigation pane. The **Environments** list page is displayed. +3. Select a given environment that meets the prerequisite criteria. +4. Select **Dynamics 365 apps** under the **Resources** card on the environment details page. +5. Select **Install app**. +6. Locate and install the **Dynamics 365 Finance and Operations Platform Tools** app. This application provides platform support for installing ERP-based applications. It must be installed before the next step. +7. Locate and install the **Dynamics 365 Finance and Operations Provisioning app**. This application provides the finance and operations apps capabilities for Dynamics 365 Finance, Supply Chain Management, Project Operations, Human Resources, and Commerce workloads. :::image type="content" source="media/tutorial-install-app1.png" alt-text="A pop-up dialog is shown with the option to proceed to install the application or to cancel the action."::: -1. Select **OK** to go to the installation configuration page for the provisioning app. +8. Select **OK** to go to the installation configuration page for the provisioning app. :::image type="content" source="media/tutorial-install-app2.png" alt-text="A configuration page is shown with several check boxes for options to enable."::: You see options to configure the app. - **Enable Developer Tools**: This option allows you to have a developer-enabled sandbox where you can connect Visual Studio and make X++ changes. If you leave this option unchecked, you get a standard environment—sandbox or production. - **Enable Demo Data**: This option deploys the standard Contoso Demo Data with your app. - > [!NOTE] - > This option is going to be available soon. + - **Application version**: This allows you to select any of the available supported versions for install. + +9. Agree to the terms and conditions and select the **Install** button to start the installation. + +When the install is triggered, it will take roughly an hour for the operation to complete. + +## Application versions + +As mentioned in the above instructions, you will have the ability to install various supported versions of finance and operations apps. Below is a table that represents some example versions you may encounter. -1. Agree to the terms and conditions and select the **Install** button to start the installation. +| Application version | Details | Available within | +|---------------------|-------------|------------------| +| 10.0.40.2 (Preview) | This is version 10.0.40, with 3 proactive quality updates installed. It is also a preview build. | Early Access / Preview Geos Only. | +| 10.0.39.4 | This is version 10.0.39, with 5 proactive quality updates installed. | All geos. | +| 10.0.38.9 | This is version 10.0.38, with 10 proactive quality updates installed. | All geos. | - Once installed successfully, you see the Finance and Operations URL available from the environment details page. +You will notice that each application version will include its latest proactive quality update, there is no way to get an earlier build of an application version. Also, preview builds are only available in the preview geos. From 4d4c6da881438bb9fd1cfc52f2c57d493f3edf1c Mon Sep 17 00:00:00 2001 From: Lane Swenka Date: Thu, 23 May 2024 17:49:31 -0700 Subject: [PATCH 02/63] Updates for UDE GA Updates for UDE GA --- power-platform/admin/TOC.yml | 2 + .../admin/unified-experience/admin-trials.md | 12 ++--- .../finance-operations-apps-overview.md | 2 +- ...ervices-environment-unified-environment.md | 2 +- ...eploy-new-environment-with-ERP-template.md | 2 +- ...all-finance-operations-provisioning-app.md | 2 +- ...ate-finance-operations-provisioning-app.md | 54 +++++++++++++++++++ 7 files changed, 64 insertions(+), 12 deletions(-) create mode 100644 power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md diff --git a/power-platform/admin/TOC.yml b/power-platform/admin/TOC.yml index 35aaf923c..7c139076e 100644 --- a/power-platform/admin/TOC.yml +++ b/power-platform/admin/TOC.yml @@ -1086,6 +1086,8 @@ href: unified-experience/tutorial-deploy-new-environment-with-erp-template.md - name: "Tutorial: Install the Finance and Operations Provisioning apps" href: unified-experience/tutorial-install-finance-operations-provisioning-app.md + - name: "Tutorial: Update the Finance and Operations Provisioning app" + href: unified-experience/tutorial-update-finance-operations-provisioning-app.md - name: "Tutorial: Copy a Lifecycle Services environment to a unified environment" href: unified-experience/tutorial-copy-lifecycle-services-environment-unified-environment.md - name: "Admin trials for finance and operations apps" diff --git a/power-platform/admin/unified-experience/admin-trials.md b/power-platform/admin/unified-experience/admin-trials.md index 70770e560..a86daed42 100644 --- a/power-platform/admin/unified-experience/admin-trials.md +++ b/power-platform/admin/unified-experience/admin-trials.md @@ -1,26 +1,22 @@ --- -title: "Unified admin trials (preview)" +title: "Unified admin trials" description: "Subscription-based trial environments for administrators of finance and operations apps." author: laneswenka ms.topic: conceptual -ms.date: 09/13/2023 +ms.date: 05/23/2024 ms.subservice: admin ms.author: laswenka ms.reviewer: sericks --- -# Unified admin trials (preview) - -[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] +# Unified admin trials Administrators, partners, and ISVs historically have had to use cloud-hosted environments in Lifecycle Services to create demo or trial environments for finance and operations apps. This was to demonstrate the software capabilities and try out new features of the product on a low-cost basis. To improve this experience, Microsoft has made available free subscription-based trial environments for finance and operations apps, including Dynamics 365 Finance, Supply Chain Management, Project Operations, and Commerce apps. > [!IMPORTANT] -> - This is a preview feature. -> - 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. -> - The trial environments don't support development with Visual Studio. For development, you'll need a developer-focused sandbox environment. More information: [Install and configure development tools](/power-platform/developer/unified-experience/finance-operations-install-config-tools). +> The trial environments don't support development with Visual Studio. For development, you'll need a developer-focused sandbox environment. More information: [Install and configure development tools](/power-platform/developer/unified-experience/finance-operations-install-config-tools). ## Acquire a free subscription-based trial license diff --git a/power-platform/admin/unified-experience/finance-operations-apps-overview.md b/power-platform/admin/unified-experience/finance-operations-apps-overview.md index 557e4a291..ce38aee73 100644 --- a/power-platform/admin/unified-experience/finance-operations-apps-overview.md +++ b/power-platform/admin/unified-experience/finance-operations-apps-overview.md @@ -3,7 +3,7 @@ title: "Unified admin experience for finance and operations apps (preview)" description: "Overview of unified admin experiences for finance and operations apps customers in the Power Platform admin center." author: laneswenka ms.topic: overview -ms.date: 2/26/2024 +ms.date: 05/23/2024 ms.subservice: admin ms.author: laswenka ms.reviewer: sericks diff --git a/power-platform/admin/unified-experience/tutorial-copy-lifecycle-services-environment-unified-environment.md b/power-platform/admin/unified-experience/tutorial-copy-lifecycle-services-environment-unified-environment.md index 6bef18a3c..dc3db600f 100644 --- a/power-platform/admin/unified-experience/tutorial-copy-lifecycle-services-environment-unified-environment.md +++ b/power-platform/admin/unified-experience/tutorial-copy-lifecycle-services-environment-unified-environment.md @@ -5,7 +5,7 @@ author: laneswenka ms.reviewer: sericks ms.component: pa-admin ms.topic: reference -ms.date: 09/13/2023 +ms.date: 05/23/2024 ms.subservice: admin ms.author: laswenka search.audienceType: diff --git a/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md b/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md index 9e6cb6217..f6b16c78f 100644 --- a/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md +++ b/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md @@ -5,7 +5,7 @@ author: laneswenka ms.reviewer: sericks ms.component: pa-admin ms.topic: reference -ms.date: 09/29/2023 +ms.date: 05/23/2024 ms.subservice: admin ms.author: laswenka search.audienceType: diff --git a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md index 1260ee1dc..a4fd42dab 100644 --- a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md @@ -5,7 +5,7 @@ author: laneswenka ms.reviewer: sericks ms.component: pa-admin ms.topic: reference -ms.date: 09/29/2023 +ms.date: 05/23/2024 ms.subservice: admin ms.author: laswenka search.audienceType: diff --git a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md new file mode 100644 index 000000000..c670e2cdc --- /dev/null +++ b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md @@ -0,0 +1,54 @@ +--- +title: "Tutorial: Update the Finance and Operations Provisioning App | Microsoft Docs" +description: Learn how to update the Finance and Operations Provisioning App within existing Power Platform environment. +author: laneswenka +ms.reviewer: sericks +ms.component: pa-admin +ms.topic: reference +ms.date: 05/23/2024 +ms.subservice: admin +ms.author: laswenka +search.audienceType: + - admin +--- + +# Tutorial: Update the Finance and Operations Provisioning App + +Finance and operations apps are reimagined as an application hosted by Microsoft Dataverse. Customers don't need to provision their enterprise resource planning (ERP) system separately from their low-code and other Dynamics 365 platform applications. Most administrative actions in Power Platform are available through the admin center and an API-based experience. + +In this tutorial, you will learn how to: + +> [!div class="checklist"] +> * Locate an existing environment in the Power Platform admin center with Finance and Operations Provisioning App installed. +> * Update the Finance and Operations Provisioning app to a newer application version. + +For example, a customer has read that a new service update has been made available. The customer would like to update their sandbox enviornment to evaluate the new capabilities. + +## Step-by-step update guide + +### Update a sandbox environment + +1. Sign in to the [Power Platform admin center](https://admin.powerplatform.microsoft.com). +2. Select **Environments** in the navigation pane. The **Environments** list page is displayed. +3. Select a given environment that has the Finance and Operations Provisioning App already installed. +4. Select **Dynamics 365 apps** under the **Resources** card on the environment details page. +5. Find the **Dynamics 365 Finance and Operations Provisioning App** and then click on it to select it. +6. Click on the **Manage** button that will open the update experience in a new browser tab or window. + + :::image type="content" source="media/tutorial-install-app1.png" alt-text="A pop-up dialog is shown with the option to proceed to install the application or to cancel the action."::: +7. You will see options to select a new application version. The drop down list will include only versions that are higher than your currently installed version. +9. Agree to the terms and conditions and select the **Install** button to start the update. + +When the update is triggered, it will take roughly an hour for the operation to complete. + +## Application versions + +As mentioned in the above instructions, you will have the ability to install various supported versions of finance and operations apps. Below is a table that represents some example versions you may encounter. + +| Application version | Details | Available within | +|---------------------|-------------|------------------| +| 10.0.40.2 (Preview) | This is version 10.0.40, with 3 proactive quality updates installed. It is also a preview build. | Early Access / Preview Geos Only. | +| 10.0.39.4 | This is version 10.0.39, with 5 proactive quality updates installed. | All geos. | +| 10.0.38.9 | This is version 10.0.38, with 10 proactive quality updates installed. | All geos. | + +You will notice that each application version will include its latest proactive quality update, there is no way to get an earlier build of an application version. Also, preview builds are only available in the preview geos. From 2ee4e77aa7fa3951aa388ad624e683d88e9184f7 Mon Sep 17 00:00:00 2001 From: Lane Swenka Date: Thu, 23 May 2024 17:57:38 -0700 Subject: [PATCH 03/63] Unodev GA Unodev GA --- .../tutorial-install-finance-operations-provisioning-app.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md index a4fd42dab..50f7dee5c 100644 --- a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md @@ -52,7 +52,7 @@ Limitations for an installation of the provisioning app: 2. You must first install the Platform tools app before installing the Provisioning app. The detailed steps are outlined in [Install on an environment](#install-on-an-environment). > [!NOTE] - > If you don't install the Provisioning app first, you get an error such as **Please install the Dynamics 365 Finance and Operations Platform Tools application before installing the Dynamics 365 Finance and Operations Provisioning app**. You can install the missing app, and then retry the installation of the Provisioning app. + > If you don't install the Platform Tools app first, you get an error such as **Please install the Dynamics 365 Finance and Operations Platform Tools application before installing the Dynamics 365 Finance and Operations Provisioning app**. You can install the missing app, and then retry the installation of the Provisioning app. ## Step-by-step installation guide From cedad24939e9d79e690e8bcb5334ca35569ad184 Mon Sep 17 00:00:00 2001 From: Lane Swenka Date: Thu, 23 May 2024 23:26:20 -0700 Subject: [PATCH 04/63] UDE GA UDE GA --- .../tutorial-install-app-platformTools.png | Bin 0 -> 258767 bytes ...tall-finance-operations-provisioning-app.md | 9 +++++---- ...date-finance-operations-provisioning-app.md | 6 +++--- 3 files changed, 8 insertions(+), 7 deletions(-) create mode 100644 power-platform/admin/unified-experience/media/tutorial-install-app-platformTools.png diff --git a/power-platform/admin/unified-experience/media/tutorial-install-app-platformTools.png b/power-platform/admin/unified-experience/media/tutorial-install-app-platformTools.png new file mode 100644 index 0000000000000000000000000000000000000000..781ca9f7f3b87d368746061496eb265cea5b380d GIT binary patch literal 258767 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

7!7uJp3LLXyYgL|1=<*-)Tr#!61gx{rR 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 ^+kN#NAJz{*>+{oa|@aw;hNKf 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

BmCdSBEmWP@&rieO#kVgV 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 z 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 literal 0 HcmV?d00001 diff --git a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md index 50f7dee5c..af129e73b 100644 --- a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md @@ -63,7 +63,8 @@ Limitations for an installation of the provisioning app: 3. Select a given environment that meets the prerequisite criteria. 4. Select **Dynamics 365 apps** under the **Resources** card on the environment details page. 5. Select **Install app**. -6. Locate and install the **Dynamics 365 Finance and Operations Platform Tools** app. This application provides platform support for installing ERP-based applications. It must be installed before the next step. +6. Locate and install the **Dynamics 365 Finance and Operations Platform Tools** app. This application provides platform support for installing ERP-based applications. It must be installed before the next step. Note that you may see multiple entries of the same application if you have more than one license that provides access to it. Select any option with a status of *Enabled* to proceed. + :::image type="content" source="media/tutorial-install-app-platformTools.png" alt-text="A pop-up dialog is shown with the option to proceed to install the platform tools application or to cancel the action."::: 7. Locate and install the **Dynamics 365 Finance and Operations Provisioning app**. This application provides the finance and operations apps capabilities for Dynamics 365 Finance, Supply Chain Management, Project Operations, Human Resources, and Commerce workloads. :::image type="content" source="media/tutorial-install-app1.png" alt-text="A pop-up dialog is shown with the option to proceed to install the application or to cancel the action."::: 8. Select **OK** to go to the installation configuration page for the provisioning app. @@ -77,7 +78,7 @@ Limitations for an installation of the provisioning app: 9. Agree to the terms and conditions and select the **Install** button to start the installation. -When the install is triggered, it will take roughly an hour for the operation to complete. +When the install is triggered, it will take roughly an hour for the operation to complete. During the installation, you will see the Finance and Operations Provisioning App is in an **Installing** status until it completes. ## Application versions @@ -85,8 +86,8 @@ As mentioned in the above instructions, you will have the ability to install var | Application version | Details | Available within | |---------------------|-------------|------------------| -| 10.0.40.2 (Preview) | This is version 10.0.40, with 3 proactive quality updates installed. It is also a preview build. | Early Access / Preview Geos Only. | +| 10.0.40.2 (Preview) | This is version 10.0.40, with 3 proactive quality updates installed. It is also a preview build. | [Early release cycle environments](/power-platform/admin/early-release) only. | | 10.0.39.4 | This is version 10.0.39, with 5 proactive quality updates installed. | All geos. | | 10.0.38.9 | This is version 10.0.38, with 10 proactive quality updates installed. | All geos. | -You will notice that each application version will include its latest proactive quality update, there is no way to get an earlier build of an application version. Also, preview builds are only available in the preview geos. +You will notice that each application version will include its latest proactive quality update, there is no way to get an earlier build of an application version. Preview builds are only available to [Early release cycle environments](/power-platform/admin/early-release). diff --git a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md index c670e2cdc..6618fe31a 100644 --- a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md @@ -39,7 +39,7 @@ For example, a customer has read that a new service update has been made availab 7. You will see options to select a new application version. The drop down list will include only versions that are higher than your currently installed version. 9. Agree to the terms and conditions and select the **Install** button to start the update. -When the update is triggered, it will take roughly an hour for the operation to complete. +When the update is triggered, it will take roughly an hour for the operation to complete. During the update, you will see the Finance and Operations Provisioning App is in an **Installing** status until it completes. ## Application versions @@ -47,8 +47,8 @@ As mentioned in the above instructions, you will have the ability to install var | Application version | Details | Available within | |---------------------|-------------|------------------| -| 10.0.40.2 (Preview) | This is version 10.0.40, with 3 proactive quality updates installed. It is also a preview build. | Early Access / Preview Geos Only. | +| 10.0.40.2 (Preview) | This is version 10.0.40, with 3 proactive quality updates installed. It is also a preview build. | [Early release cycle environments](/power-platform/admin/early-release) only. | | 10.0.39.4 | This is version 10.0.39, with 5 proactive quality updates installed. | All geos. | | 10.0.38.9 | This is version 10.0.38, with 10 proactive quality updates installed. | All geos. | -You will notice that each application version will include its latest proactive quality update, there is no way to get an earlier build of an application version. Also, preview builds are only available in the preview geos. +You will notice that each application version will include its latest proactive quality update, there is no way to get an earlier build of an application version. Preview builds are only available to [Early release cycle environments](/power-platform/admin/early-release). \ No newline at end of file From ffa036f471308e5c988d0e3b71f8a327220d47ab Mon Sep 17 00:00:00 2001 From: Lane Swenka Date: Thu, 23 May 2024 23:33:19 -0700 Subject: [PATCH 05/63] UDE GA UDE GA --- .../media/tutorial-install-app2.png | Bin 123875 -> 79393 bytes ...all-finance-operations-provisioning-app.md | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/power-platform/admin/unified-experience/media/tutorial-install-app2.png b/power-platform/admin/unified-experience/media/tutorial-install-app2.png index 0bd790db287698b02ab2979f8c4ba7868f8a4ac9..b89e8a935e6e212ebfcb984090734a0ed8377c53 100644 GIT binary patch literal 79393 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 S7T>Ee=g-)jt~hz+_WuG(v}Vcx literal 123875 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

C_bue3?6f##k2o{UB-asfx1x) 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 ehXxJrO1ffK1)jkb_vk{~IQdSJ#cBEHr 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

apA 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 Date: Mon, 3 Jun 2024 14:37:50 -0700 Subject: [PATCH 06/63] Update to the articles with Neha and Saurabh Update to the articles with Neha and Saurabh --- ...all-finance-operations-provisioning-app.md | 20 +++++++++++-------- ...ate-finance-operations-provisioning-app.md | 6 +++--- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md index ce06c3c2d..60d3eee1e 100644 --- a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md @@ -38,21 +38,25 @@ For example, a customer who already purchased other Dynamics 365 apps wants to a - Have at least 1 GB of available Operations and Dataverse database capacities. For more information, see [Manage storage and capacity](../finance-operations-storage-capacity.md). -- You can only install finance and operations apps into a Power Platform environment created with Microsoft Dataverse. The Dataverse instance must have the **Enable Dynamics 365 apps** option enabled during creation. For more information on how to create a Dataverse instance, see [Create and manage environments in the Power Platform admin center](../create-environment.md). +- You must use an environment with the **Enable Dynamics 365 apps** enabled when the environment is created. This enabling is a prerequisite for all Dynamics 365 apps, including Sales, Customer Service, Field Service, and all finance and operations apps. + + > [!IMPORTANT] + > If you try to install without enabling Dynamics 365 apps, you receive an error such as **Dynamics 365 Finance and Operations Provisioning App isn't supported on SchemaType: Standard**. The schema isn't a visible property in Power Platform admin center and can't be changed after the environment is created. You can try installing finance and operations apps in another environment, or [Create an environment with an ERP template](./tutorial-deploy-new-environment-with-ERP-template.md). + +- You must first install the Platform tools app before installing the Provisioning app. The detailed steps are outlined in [Install on an environment](#install-on-an-environment). + + > [!IMPORTANT] + > If you don't install the Platform Tools app first, you get an error such as **Please install the Dynamics 365 Finance and Operations Platform Tools application before installing the Dynamics 365 Finance and Operations Provisioning app**. You can install the missing app, and then retry the installation of the Provisioning app. ## Known limitations Limitations for an installation of the provisioning app: -1. You must use an environment with the **Enable Dynamics 365 apps** enabled when the environment is created. This enabling is a prerequisite for all Dynamics 365 apps, including Sales, Customer Service, Field Service, and all finance and operations apps. - - > [!NOTE] - > If you try to install without enabling Dynamics 365 apps, you receive an error such as **Dynamics 365 Finance and Operations Provisioning App isn't supported on SchemaType: Standard**. The schema isn't a visible property in Power Platform admin center and can't be changed after the environment is created. You can try installing finance and operations apps in another environment, or [Create an environment with an ERP template](./tutorial-deploy-new-environment-with-ERP-template.md). +1. Environment URL length. The hostname of your Dataverse environment URL must be less than or equal to 19 characters in length, otherwise the Finance and Operations Provisioning App will fail to install. To bypass this limitation you can edit the URL of your environment to be the required length. -2. You must first install the Platform tools app before installing the Provisioning app. The detailed steps are outlined in [Install on an environment](#install-on-an-environment). +2. Finance and Operations URL missing. After the install is successful, the Finance and Operations URL may not be shown on the environment details page in Power Platform admin center. To bypass this limitation you can edit the environment and change a field such as the description to a new value. This will synchronize in the new URL value and display it on screen. - > [!NOTE] - > If you don't install the Platform Tools app first, you get an error such as **Please install the Dynamics 365 Finance and Operations Platform Tools application before installing the Dynamics 365 Finance and Operations Provisioning app**. You can install the missing app, and then retry the installation of the Provisioning app. +3. ## Step-by-step installation guide diff --git a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md index 6618fe31a..af58b5751 100644 --- a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md @@ -26,17 +26,17 @@ For example, a customer has read that a new service update has been made availab ## Step-by-step update guide -### Update a sandbox environment +### Update the application to a newer version 1. Sign in to the [Power Platform admin center](https://admin.powerplatform.microsoft.com). 2. Select **Environments** in the navigation pane. The **Environments** list page is displayed. 3. Select a given environment that has the Finance and Operations Provisioning App already installed. 4. Select **Dynamics 365 apps** under the **Resources** card on the environment details page. 5. Find the **Dynamics 365 Finance and Operations Provisioning App** and then click on it to select it. -6. Click on the **Manage** button that will open the update experience in a new browser tab or window. +6. Click on the **Manage** button that will open the update experience in a new browser tab or window. If the manage button is not available, then you are running the latest version and cannot proceed. :::image type="content" source="media/tutorial-install-app1.png" alt-text="A pop-up dialog is shown with the option to proceed to install the application or to cancel the action."::: -7. You will see options to select a new application version. The drop down list will include only versions that are higher than your currently installed version. +7. You will see options to select a new application version. The drop down list will include only versions that are higher than your currently installed version. You may see no version option to select, in that case there are no newer versions beyond what you already have installed. 9. Agree to the terms and conditions and select the **Install** button to start the update. When the update is triggered, it will take roughly an hour for the operation to complete. During the update, you will see the Finance and Operations Provisioning App is in an **Installing** status until it completes. From 05bb39f6296c99e9d7ac94eae8a423749a4810b5 Mon Sep 17 00:00:00 2001 From: Lane Swenka Date: Tue, 4 Jun 2024 07:14:42 -0700 Subject: [PATCH 07/63] Create partners-systems-implementers.md --- .../partners-systems-implementers.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 power-platform/admin/unified-experience/partners-systems-implementers.md diff --git a/power-platform/admin/unified-experience/partners-systems-implementers.md b/power-platform/admin/unified-experience/partners-systems-implementers.md new file mode 100644 index 000000000..9a7e2097c --- /dev/null +++ b/power-platform/admin/unified-experience/partners-systems-implementers.md @@ -0,0 +1,23 @@ +--- +title: "Administration for partners and systems implementers | Microsoft Docs" +description: Learn how to update the Finance and Operations Provisioning App within existing Power Platform environment. +author: laneswenka +ms.reviewer: sericks +ms.component: pa-admin +ms.topic: reference +ms.date: 05/23/2024 +ms.subservice: admin +ms.author: laswenka +search.audienceType: + - admin +--- + +# Administration for partners and systems implementers + +Microsoft Partners and Systems Implementers (SIs) play a crucial role in deploying, managing, and optimizing solutions built for finance and operations apps. With the transition of administrative capabilities to Power Platform admin center (PPAC), there are significant changes and enhancements in both technology and processes. This article provides an overview of these improvements, focusing on the key differences in terminology and processes compared to the Lifecycle Services (LCS) admin center. + +## A single, unified admin center ## + +The Power Platform Admin Center is designed to provide a unified, streamlined experience for managing all components within the Power Platform ecosystem. For Finance and Operations partners, this transition brings new administrative capabilities and processes that align more closely with the broader Power Platform and Microsoft 365 environments. + +### Key Features of Power Platform Admin Center ### \ No newline at end of file From 855f0468d2abf41e129d50f074f156c8a3fc576b Mon Sep 17 00:00:00 2001 From: "Saurabh Surana (from Dev Box)" Date: Wed, 5 Jun 2024 23:37:05 -0700 Subject: [PATCH 08/63] removed partners-systems-implementers.md from Lane's branch --- .../partners-systems-implementers.md | 23 ------------------- 1 file changed, 23 deletions(-) delete mode 100644 power-platform/admin/unified-experience/partners-systems-implementers.md diff --git a/power-platform/admin/unified-experience/partners-systems-implementers.md b/power-platform/admin/unified-experience/partners-systems-implementers.md deleted file mode 100644 index 9a7e2097c..000000000 --- a/power-platform/admin/unified-experience/partners-systems-implementers.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "Administration for partners and systems implementers | Microsoft Docs" -description: Learn how to update the Finance and Operations Provisioning App within existing Power Platform environment. -author: laneswenka -ms.reviewer: sericks -ms.component: pa-admin -ms.topic: reference -ms.date: 05/23/2024 -ms.subservice: admin -ms.author: laswenka -search.audienceType: - - admin ---- - -# Administration for partners and systems implementers - -Microsoft Partners and Systems Implementers (SIs) play a crucial role in deploying, managing, and optimizing solutions built for finance and operations apps. With the transition of administrative capabilities to Power Platform admin center (PPAC), there are significant changes and enhancements in both technology and processes. This article provides an overview of these improvements, focusing on the key differences in terminology and processes compared to the Lifecycle Services (LCS) admin center. - -## A single, unified admin center ## - -The Power Platform Admin Center is designed to provide a unified, streamlined experience for managing all components within the Power Platform ecosystem. For Finance and Operations partners, this transition brings new administrative capabilities and processes that align more closely with the broader Power Platform and Microsoft 365 environments. - -### Key Features of Power Platform Admin Center ### \ No newline at end of file From 53d8e9600099c9995c24f94608f893188f17d62f Mon Sep 17 00:00:00 2001 From: "Saurabh Surana (from Dev Box)" Date: Wed, 5 Jun 2024 23:38:34 -0700 Subject: [PATCH 09/63] fixed links and removed Preview from links and labels --- .../finance-operations-apps-overview.md | 14 ++++++-------- ...ial-deploy-new-environment-with-ERP-template.md | 2 +- .../finance-operations-dev-overview.md | 2 +- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/power-platform/admin/unified-experience/finance-operations-apps-overview.md b/power-platform/admin/unified-experience/finance-operations-apps-overview.md index ce38aee73..2faad733e 100644 --- a/power-platform/admin/unified-experience/finance-operations-apps-overview.md +++ b/power-platform/admin/unified-experience/finance-operations-apps-overview.md @@ -19,9 +19,7 @@ As part of the unification of admin experiences of finance and operations apps w This article gives an overview to finance and operations apps administrators who are new to the Power Platform admin center. Learn some key differences between your prior admin center called Lifecycle Services and the new experience. You can also browse more resources and articles that provide detailed information for common tasks. -To learn more about the admin unification journey, watch this video on the [Microsoft Dynamics 365 Community](https://www.youtube.com/@MSD365Community) - -> [!VIDEO https://www.youtube.com/embed/HmJIuHhx3Hg]. +To learn more about the admin unification journey, [watch this video](https://www.youtube.com/embed/HmJIuHhx3Hg) on the [Microsoft Dynamics 365 Community](https://www.youtube.com/@MSD365Community) ## How do finance and operations apps surface in the Power Platform admin center? @@ -92,9 +90,9 @@ The following table is a reference for each operation type and explains any nuan These continually updated scenario tutorials give a walkthrough for administrators in new experiences. -- [Tutorial: Provision a new environment with an ERP-based template (preview)](./tutorial-deploy-new-environment-with-ERP-template.md) -- [Tutorial: Copy a Lifecycle Services environment to a unified environment (preview)](./tutorial-copy-lifecycle-services-environment-unified-environment.md) -- [Unified admin trials (preview)](admin-trials.md) +- [Tutorial: Provision a new environment with an ERP-based template](./tutorial-deploy-new-environment-with-ERP-template.md) +- [Tutorial: Copy a Lifecycle Services environment to a unified environment](./tutorial-copy-lifecycle-services-environment-unified-environment.md) +- [Unified admin trials](admin-trials.md) - [Manage storage and capacity](../finance-operations-storage-capacity.md) ### Known limitations @@ -111,7 +109,7 @@ We continue to publish common questions and resolve open items before making the You can view the licenses assigned to you at [My Account - Subscriptions](https://portal.office.com/account/?ref=MeControl#subscriptions). -View the templates that allow you to deploy: [Tutorial: Provision a new environment with an ERP-based template (preview)](tutorial-deploy-new-environment-with-ERP-template.md#knowing-which-template-to-provision). +View the templates that allow you to deploy: [Tutorial: Provision a new environment with an ERP-based template](tutorial-deploy-new-environment-with-ERP-template.md#knowing-which-template-to-provision). #### I don't have any available capacity @@ -130,7 +128,7 @@ Direct SQL access isn't available at this time. However, we're working on a just ### Related articles -- [Unified developer experience for finance and operations apps (preview)](../../developer/unified-experience/finance-operations-dev-overview.md) +- [Unified developer experience for finance and operations apps](../../developer/unified-experience/finance-operations-dev-overview.md) - [Finance and operations apps documentation](/dynamics365/fin-ops-core/fin-ops/) - [Create and manage environments in the Power Platform admin center](/power-platform/admin/create-environment) - [Manage Dynamics 365 apps](/power-platform/admin/manage-apps) diff --git a/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md b/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md index f6b16c78f..982b78583 100644 --- a/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md +++ b/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md @@ -49,7 +49,7 @@ All Dynamics 365 environment templates are associated with their related full us ### Known limitations -Be sure to check out the latest known limitations available in the overview article [Unified admin experience for finance and operations apps](finance-operations-apps-overview.md#known-limitations-during-preview). +Be sure to check out the latest known limitations available in the overview article [Unified admin experience for finance and operations apps](finance-operations-apps-overview.md#known-limitations). ## Step-by-step provisioning guide diff --git a/power-platform/developer/unified-experience/finance-operations-dev-overview.md b/power-platform/developer/unified-experience/finance-operations-dev-overview.md index d7e499950..deea484b4 100644 --- a/power-platform/developer/unified-experience/finance-operations-dev-overview.md +++ b/power-platform/developer/unified-experience/finance-operations-dev-overview.md @@ -60,7 +60,7 @@ Set up Visual Studio on your local development computer. [Install and configure development tools (preview)](finance-operations-install-config-tools.md) [Write, deploy, and debug X++ code (preview)](finance-operations-debug.md) [Frequently asked questions (preview)](finance-operations-faq.md) -[Tutorial: Provision a new environment with an ERP-based template (preview)](../../admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md#tutorial-provision-a-new-environment-with-an-erp-based-template-preview) +[Tutorial: Provision a new environment with an ERP-based template (preview)](../../admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md#tutorial-provision-a-new-environment-with-an-erp-based-template) [Develop and customize home page](/dynamics365/fin-ops-core/dev-itpro/dev-tools/developer-home-page) (Dynamics 365 legacy information) [Unified admin experience for finance and operations apps (preview)](../../admin/unified-experience/finance-operations-apps-overview.md) From 737356aca4d259eef835ff31b658a74b6861dc62 Mon Sep 17 00:00:00 2001 From: "Saurabh Surana (from Dev Box)" Date: Thu, 6 Jun 2024 00:20:11 -0700 Subject: [PATCH 10/63] Addressed Acrolinx review comments --- ...ervices-environment-unified-environment.md | 18 +++++------ ...eploy-new-environment-with-ERP-template.md | 30 +++++++++---------- ...all-finance-operations-provisioning-app.md | 26 ++++++++-------- ...ate-finance-operations-provisioning-app.md | 20 ++++++------- .../finance-operations-dev-overview.md | 6 ++-- 5 files changed, 50 insertions(+), 50 deletions(-) diff --git a/power-platform/admin/unified-experience/tutorial-copy-lifecycle-services-environment-unified-environment.md b/power-platform/admin/unified-experience/tutorial-copy-lifecycle-services-environment-unified-environment.md index dc3db600f..d87307dce 100644 --- a/power-platform/admin/unified-experience/tutorial-copy-lifecycle-services-environment-unified-environment.md +++ b/power-platform/admin/unified-experience/tutorial-copy-lifecycle-services-environment-unified-environment.md @@ -1,6 +1,6 @@ --- title: "Tutorial: Copy a Lifecycle Services environment to a unified environment | Microsoft Docs" -description: This tutorial will demonstrate how to perform environment copy with respect to unified environments. +description: This tutorial demonstrates how to perform environment copy with respect to unified environments. author: laneswenka ms.reviewer: sericks ms.component: pa-admin @@ -16,7 +16,7 @@ search.audienceType: Finance and operations apps have been reimagined as an application hosted by Microsoft Dataverse. A common function for administrators of finance and operations apps is to copy environments. Historically, this has been done in Microsoft Dynamics 365 Lifecycle Services, but now everything can be managed in the Power Platform admin center. -In this tutorial, you'll learn how to: +In this tutorial, you learn how to: > [!div class="checklist"] > * Prepare the source environment @@ -26,7 +26,7 @@ As an example of this scenario, a customer who operates their finance and operat ## Before you begin -The target environment in this tutorial is always a unified environment that contains finance and operations apps hosted by Microsoft Dataverse. To learn how to deploy one of these environments, see [Tutorial: Provision a new environment with an ERP-based template ](./tutorial-deploy-new-environment-with-ERP-template.md). +The target environment in this tutorial is always a unified environment that contains finance and operations apps hosted by Microsoft Dataverse. To learn how to deploy one of these environments, see [Tutorial: Provision a new environment with an ERP-based template ](./tutorial-deploy-new-environment-with-ERP-template.md). The source environment in this tutorial is always a finance and operations apps environment in Lifecycle Services that was set up through the [Power Platform integration](/dynamics365/fin-ops-core/dev-itpro/power-platform/enable-power-platform-integration). @@ -34,12 +34,12 @@ Ensure that both the source and target environments are provisioned in the same ## Prepare the source environment -Before the source environment can be copied, you must perform several steps to ensure that data and code copy correctly to the target environment. Without performing these steps, code or data loss can occur. +Before the source environment can be copied, you must perform several steps to ensure that data and code get copied correctly to the target environment. Without performing these steps, code or data loss can occur. ### Install or update the latest Dynamics 365 Finance and Operations Platform Tools app > [!NOTE] -> This application is necessary in the source environment because it helps to store the X++ code in Microsoft Dataverse. This allows the code to copy to the target environment alongside the data. Without this, data loss can occur. +> This application is necessary in the source environment because it helps to store the X++ code in Microsoft Dataverse. This allows the code to copy to the target environment alongside the data. Without this, data loss can occur. 1. In the Power Platform admin center, select **Environments**. 2. Select the source environment from which you want to start the copy. From the **Resources** menu, select **Dynamics 365 apps**. @@ -52,7 +52,7 @@ If you see **Update Available** in the **Status** for Dynamics 365 Finance and O :::image type="content" source="media/copy-to-ode-platform-tools.png" alt-text="Dynamics 365 Finance and Operations platform tools showing an Update available status."::: -If Dynamics 365 Finance and Operations Platform Tools is not listed, select **Install App** to add this app to your organization. +If Dynamics 365 Finance and Operations Platform Tools isn't listed, select **Install App** to add this app to your organization. From the list on the right side, find and select the **Dynamics 365 Finance and Operations Platform Tools** app, select **Install**, and follow the instructions to install. @@ -74,7 +74,7 @@ This deploy command makes no changes to the finance and operations environment h 1. Install [PAC CLI](https://aka.ms/PowerAppsCLI). 2. [Authenticate and connect to source Dataverse](../../developer/cli/reference/auth.md#pac-auth-create). -3. Run the following: +3. Run the following command: ``` pac auth list @@ -86,13 +86,13 @@ pac package deploy --logConsole --package \.dll ## Begin the copy operation -In the Power Platform admin center, go to the source environment you want to copy. From there, select the **Copy** button in the top action pane. In the slider window that appears, choose to copy **Everything**, which incorporates both the Dataverse and X++ source code, as well as the data from the source. Select the **Target** environment to be the unified, developer environment. +In the Power Platform admin center, go to the source environment you want to copy. From there, select the **Copy** button in the top action pane. In the slider window that appears, choose to copy **Everything**, which incorporates both the Dataverse and X++ source code, and the data from the source. Select the **Target** environment to be the unified, developer environment. # [PowerShell](#tab/PowerShell) ## Copy via PowerShell -Load the PowerShell console and execute the following commands to generate the environment. For more information on how to install and use the PowerShell module, see [Get started with PowerShell for Power Platform Administrators](../powershell-getting-started.md). +Load the PowerShell console and execute the following commands to copy the environment. For more information on how to install and use the PowerShell module, see [Get started with PowerShell for Power Platform Administrators](../powershell-getting-started.md). ```PowerShell #Install the module diff --git a/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md b/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md index 982b78583..0263485f6 100644 --- a/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md +++ b/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md @@ -14,7 +14,7 @@ search.audienceType: # Tutorial: Provision a new environment with an ERP-based template -Finance and operations apps have been reimagined as an application hosted by Microsoft Dataverse. No longer do customers need to provision their enterprise resource planning (ERP) system separately from their low-code and other Dynamics 365 platform applications. Additionally, most administrative actions in Power Platform are available through the admin center and an API-based experience. +Finance and operations apps have been reimagined as an application hosted by Microsoft Dataverse. No longer do customers need to provision their enterprise resource planning (ERP) system separately from their low-code and other Dynamics 365 platform applications. Additionally, most administrative actions in Power Platform are available through the admin center and an API-based experience. In this tutorial, learn how to: @@ -23,21 +23,21 @@ In this tutorial, learn how to: > * Provision a developer-focused sandbox using PowerShell to use with X++ code. > * Delete an environment when no longer in use. -As an example of this scenario, a customer who operates their finance and operations apps environments in Microsoft Dynamics 365 Lifecycle Services can provision one of the newer, developer-focused sandboxes in the Power Platform admin center. +As an example of this scenario, a customer who operates their finance and operations apps environments in Microsoft Dynamics 365 Lifecycle Services can provision one of the newer, developer-focused sandboxes in the Power Platform admin center. ## Environment provisioning -The easiest way to get finance and operations apps up and running in Power Platform is to create a new environment using a template. A template is simply an efficiency in terms of creating a Dataverse-based Power Platform environment with several applications preinstalled. In this scenario, the finance and operations ERP application is installed automatically upon environment creation. +The easiest way to get finance and operations apps up and running in Power Platform is to create a new environment using a template. A template is simply an efficiency in terms of creating a Dataverse-based Power Platform environment with several applications preinstalled. In this scenario, the finance and operations ERP application is installed automatically upon environment creation. ### Before you begin -You can't provision finance and operations apps in Power Platform unless you have a license assigned that grants this permission. An example license is Dynamics 365 Finance or Dynamics 365 Supply Chain Management for customers, and Dynamics 365 Operations Application Partner Sandbox for partners and ISVs. This must be assigned by your license administrator to your user account in Microsoft Entra. You can review the licenses currently assigned to you in the Subscription table on the [MyAccount](https://portal.office.com/account/?ref=MeControl) page. +You can't provision finance and operations apps in Power Platform unless you have a license assigned that grants this permission. An example license is Dynamics 365 Finance or Dynamics 365 Supply Chain Management for customers, and Dynamics 365 Operations Application Partner Sandbox for partners and ISVs. This must be assigned by your license administrator to your user account in Microsoft Entra. You can review the licenses currently assigned to you in the Subscription table on the [MyAccount](https://portal.office.com/account/?ref=MeControl) page. -You also must have at least 1 gigabyte of available Operations and Dataverse database capacities. For more information, see [Manage storage and capacity](../finance-operations-storage-capacity.md). +You also must have at least 1 gigabyte of available Operations and Dataverse database capacities. For more information, see [Manage storage and capacity](../finance-operations-storage-capacity.md). ### Knowing which template to provision -All Dynamics 365 environment templates are associated with their related full user licenses. This means that the admin user in the Power Platform admin center must have a full license assigned to them to be able to create one of these environments, and the same holds true when using tools like PowerShell as well. Below is a table which shows the mapping between various finance and operations apps licenses and their template details. +All Dynamics 365 environment templates are associated with their related full user licenses. This means that the admin user in the Power Platform admin center must have a full license assigned to them to be able to create one of these environments, and the same holds true when using tools like PowerShell as well. Following table shows the mapping between various finance and operations apps licenses and their template details. | License | Template name | Template ID | Comments | | ----------- | ----------- |----------- |----------- | @@ -45,7 +45,7 @@ All Dynamics 365 environment templates are associated with their related full us | Dynamics 365 Supply Chain Management (preview) | Supply Chain Management (preview) | D365_FinOps_SCM | | | Dynamics 365 Project Operations | Project Operations Integrated (preview) | D365_FinOps_ProjOps | | | Dynamics 365 Operations Application Partner Sandbox | Project Operations Integrated (preview) | D365_FinOps_ProjOps | | -| Dynamics 365 Commerce| Commerce (preview) | D365_FinOps_Commerce | This is only available for Trials. | +| Dynamics 365 Commerce| Commerce (preview) | D365_FinOps_Commerce | This template is only available for Trials. | ### Known limitations @@ -58,10 +58,10 @@ Be sure to check out the latest known limitations available in the overview arti ### Create an environment > [!Important] -> This is only available for **Subscription-based trial** environment types. The list of environment types supported will expand over time. +> This is only available for **Subscription-based trial** environment types. The list of environment types supported will expand over time. 1. Sign in to the [Power Platform admin center](https://admin.powerplatform.microsoft.com). -1. Select **Environments** in the navigation pane. The **Environments** page is displayed. +1. Select **Environments** in the navigation pane. The **Environments** page is displayed. 1. Select **New**. The **New environment** pane is displayed. :::image type="content" source="media/tutorial-new-environment1.png" alt-text="Click the New button to create a new environment."::: @@ -79,7 +79,7 @@ Be sure to check out the latest known limitations available in the overview arti ### Create an environment -Load up your PowerShell console and execute the following commands to generate the environment. Note the variables so that you can change the input values as required. If you wish to use a service principal, please follow the instructions at [Creating a service principal application using PowerShell](../powershell-create-service-principal.md). +Load up your PowerShell console and execute the following commands to generate the environment. Note the variables so that you can change the input values as required. If you wish to use a service principal, follow the instructions at [Creating a service principal application using PowerShell](../powershell-create-service-principal.md). ```powershell #Install the module @@ -108,21 +108,21 @@ New-AdminPowerAppEnvironment -DisplayName "MyUniqueNameHere" -EnvironmentSku San ``` --- -In the above example, we used the **Finance** environment template. See above in this article for a table reference of all templates available by license. Also note that your environment name must be **globally unique and less than 20 characters** because that derives the environment URL. We will be adding upfront validation in the future. +In the above example, we used the **Finance** environment template. See above in this article for a table reference of all templates available by license. Also note that your environment name must be **globally unique and less than 20 characters** because that derives the environment URL. We will be adding upfront validation in the future. ## Delete the environment -In this step, delete the environment you previously created. Deleting an environment is an action commonly done by admins who want to reclaim capacity for other purposes. An environment can be deleted using the Power Platform admin center, or PowerShell as follows. +In this step, delete the environment you previously created. Deleting an environment is an action commonly done by admins who want to reclaim capacity for other purposes. An environment can be deleted using the Power Platform admin center, or PowerShell as follows. # [Power Platform admin center](#tab/PPAC) -Select a specific environment, and then select the **Delete** button in the action bar at the top of the page. +Select a specific environment, and then select the **Delete** button in the action bar at the top of the page. -Confirm that you want to delete the environment and proceed. This starts the deletion process and will eventually free up the Dataverse and Operations storage consumed by this environment for other needs. +Confirm that you want to delete the environment and proceed. This operation starts the deletion process and will eventually free up the Dataverse and Operations storage consumed by this environment for other needs. # [PowerShell](#tab/PowerShell) -Use the following script to delete the previously created environment. Set the **environmentID** appropriately. +Use the following script to delete the previously created environment. Set the **environmentID** appropriately. ```powershell #Remove the previously created environment by ID diff --git a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md index 60d3eee1e..8c1083046 100644 --- a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md @@ -16,13 +16,13 @@ search.audienceType: Finance and operations apps are reimagined as an application hosted by Microsoft Dataverse. Customers don't need to provision their enterprise resource planning (ERP) system separately from their low-code and other Dynamics 365 platform applications. Most administrative actions in Power Platform are available through the admin center and an API-based experience. -In this tutorial, you will learn how to: +In this tutorial, learn how to: > [!div class="checklist"] > * Locate an existing environment in the Power Platform admin center with other Dynamics 365 apps installed. > * Install the Finance and Operations Provisioning app to see finance and operations apps capabilities. -For example, a customer who already purchased other Dynamics 365 apps wants to add finance and operations apps capabilities to one of their existing environments. +For example, a customer who already purchased other Dynamics 365 apps wants to add finance and operations apps capabilities to one of their existing environments. ## Prerequisites @@ -52,9 +52,9 @@ For example, a customer who already purchased other Dynamics 365 apps wants to a Limitations for an installation of the provisioning app: -1. Environment URL length. The hostname of your Dataverse environment URL must be less than or equal to 19 characters in length, otherwise the Finance and Operations Provisioning App will fail to install. To bypass this limitation you can edit the URL of your environment to be the required length. +1. Environment URL length. The hostname of your Dataverse environment URL must be less than or equal to 19 characters in length, otherwise the Finance and Operations Provisioning App fails to install. To bypass this limitation, you can edit the URL of your environment to be the required length. -2. Finance and Operations URL missing. After the install is successful, the Finance and Operations URL may not be shown on the environment details page in Power Platform admin center. To bypass this limitation you can edit the environment and change a field such as the description to a new value. This will synchronize in the new URL value and display it on screen. +2. Finance and Operations URL missing. After the install is successful, the Finance and Operations URL may not be shown on the environment details page in Power Platform admin center. To bypass this limitation, you can edit the environment and change a field such as the description to a new value. This edit operation synchronizes the new URL value and display it on screen. 3. @@ -67,9 +67,9 @@ Limitations for an installation of the provisioning app: 3. Select a given environment that meets the prerequisite criteria. 4. Select **Dynamics 365 apps** under the **Resources** card on the environment details page. 5. Select **Install app**. -6. Locate and install the **Dynamics 365 Finance and Operations Platform Tools** app. This application provides platform support for installing ERP-based applications. It must be installed before the next step. Note that you may see multiple entries of the same application if you have more than one license that provides access to it. Select any option with a status of *Enabled* to proceed. +6. Locate and install the **Dynamics 365 Finance and Operations Platform Tools** app. This application provides platform support for installing ERP-based applications. It must be installed before the next step. You may see multiple entries of the same application if you have more than one license that provides access to it. Select any option with a status of *Enabled* to proceed. :::image type="content" source="media/tutorial-install-app-platformTools.png" alt-text="A pop-up dialog is shown with the option to proceed to install the platform tools application or to cancel the action."::: -7. Locate and install the **Dynamics 365 Finance and Operations Provisioning app**. This application provides the finance and operations apps capabilities for Dynamics 365 Finance, Supply Chain Management, Project Operations, Human Resources, and Commerce workloads. Note that you may see multiple entries of the same application if you have more than one license that provides access to it. Select any option with a status of *Configured* to proceed. +7. Locate and install the **Dynamics 365 Finance and Operations Provisioning app**. This application provides the finance and operations apps capabilities for Dynamics 365 Finance, Supply Chain Management, Project Operations, Human Resources, and Commerce workloads. You may see multiple entries of the same application if you have more than one license that provides access to it. Select any option with a status of *Configured* to proceed. :::image type="content" source="media/tutorial-install-app1.png" alt-text="A pop-up dialog is shown with the option to proceed to install the application or to cancel the action."::: 8. Select **OK** to go to the installation configuration page for the provisioning app. :::image type="content" source="media/tutorial-install-app2.png" alt-text="A configuration page is shown with several check boxes for options to enable."::: @@ -78,20 +78,20 @@ Limitations for an installation of the provisioning app: - **Enable Developer Tools**: This option allows you to have a developer-enabled sandbox where you can connect Visual Studio and make X++ changes. If you leave this option unchecked, you get a standard environment—sandbox or production. - **Enable Demo Data**: This option deploys the standard Contoso Demo Data with your app. - - **Application version**: This allows you to select any of the available supported versions for install. For more information, see the following section in this tutorial. + - **Application version**: You may select any of the available supported versions for install. For more information, see the following section in this tutorial. 9. Agree to the terms and conditions and select the **Install** button to start the installation. -When the install is triggered, it will take roughly an hour for the operation to complete. During the installation, you will see the Finance and Operations Provisioning App is in an **Installing** status until it completes. +When the install is triggered, it takes roughly an hour for the operation to complete. During the installation, Finance and Operations Provisioning App appears in **Installing** status until the install is completes. ## Application versions -As mentioned in the above instructions, you will have the ability to install various supported versions of finance and operations apps. Below is a table that represents some example versions you may encounter. +As mentioned in the above instructions, now you have the ability to install any of the available versions of finance and operations apps. Following table represents some example versions you may encounter. | Application version | Details | Available within | |---------------------|-------------|------------------| -| 10.0.40.2 (Preview) | This is version 10.0.40, with 3 proactive quality updates installed. It is also a preview build. | [Early release cycle environments](/power-platform/admin/early-release) only. | -| 10.0.39.4 | This is version 10.0.39, with 5 proactive quality updates installed. | All geos. | -| 10.0.38.9 | This is version 10.0.38, with 10 proactive quality updates installed. | All geos. | +| 10.0.40.2 (Preview) | Version 10.0.40, with 3 proactive quality updates installed. It's also a preview build. | [Early release cycle environments](/power-platform/admin/early-release) only. | +| 10.0.39.4 | Version 10.0.39, with 5 proactive quality updates installed. | All geos. | +| 10.0.38.9 | Version 10.0.38, with 10 proactive quality updates installed. | All geos. | -You will notice that each application version will include its latest proactive quality update, there is no way to get an earlier build of an application version. Preview builds are only available to [Early release cycle environments](/power-platform/admin/early-release). +Each application version includes its latest proactive quality update, there's no way to get an earlier build of an application version. Preview builds are only available to [Early release cycle environments](/power-platform/admin/early-release). diff --git a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md index af58b5751..e9dce627e 100644 --- a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md @@ -16,13 +16,13 @@ search.audienceType: Finance and operations apps are reimagined as an application hosted by Microsoft Dataverse. Customers don't need to provision their enterprise resource planning (ERP) system separately from their low-code and other Dynamics 365 platform applications. Most administrative actions in Power Platform are available through the admin center and an API-based experience. -In this tutorial, you will learn how to: +In this tutorial, learn how to: > [!div class="checklist"] > * Locate an existing environment in the Power Platform admin center with Finance and Operations Provisioning App installed. > * Update the Finance and Operations Provisioning app to a newer application version. -For example, a customer has read that a new service update has been made available. The customer would like to update their sandbox enviornment to evaluate the new capabilities. +For example, a customer reads that a new service update is available wants update their sandbox environment to evaluate the new capabilities. ## Step-by-step update guide @@ -33,22 +33,22 @@ For example, a customer has read that a new service update has been made availab 3. Select a given environment that has the Finance and Operations Provisioning App already installed. 4. Select **Dynamics 365 apps** under the **Resources** card on the environment details page. 5. Find the **Dynamics 365 Finance and Operations Provisioning App** and then click on it to select it. -6. Click on the **Manage** button that will open the update experience in a new browser tab or window. If the manage button is not available, then you are running the latest version and cannot proceed. +6. After Clicking on the **Manage** button, update experience opens up in a new browser tab or window. If the manage button isn't available, then you're running the latest version and can't. :::image type="content" source="media/tutorial-install-app1.png" alt-text="A pop-up dialog is shown with the option to proceed to install the application or to cancel the action."::: -7. You will see options to select a new application version. The drop down list will include only versions that are higher than your currently installed version. You may see no version option to select, in that case there are no newer versions beyond what you already have installed. +7. Options to select a new application version is shown. The drop-down list includes only versions that are higher than your currently installed version. You may see no version option to select, in that case there are no newer versions beyond current version of your environment. 9. Agree to the terms and conditions and select the **Install** button to start the update. -When the update is triggered, it will take roughly an hour for the operation to complete. During the update, you will see the Finance and Operations Provisioning App is in an **Installing** status until it completes. +When the update is triggered, it takes roughly an hour for the operation to complete. During the update, Finance and Operations Provisioning App appears in **Installing** status until the update is completes. ## Application versions -As mentioned in the above instructions, you will have the ability to install various supported versions of finance and operations apps. Below is a table that represents some example versions you may encounter. +As mentioned in the above instructions, now you have the ability to update your environment to any of the available versions of finance and operations apps. Following table represents some example versions you may encounter. | Application version | Details | Available within | |---------------------|-------------|------------------| -| 10.0.40.2 (Preview) | This is version 10.0.40, with 3 proactive quality updates installed. It is also a preview build. | [Early release cycle environments](/power-platform/admin/early-release) only. | -| 10.0.39.4 | This is version 10.0.39, with 5 proactive quality updates installed. | All geos. | -| 10.0.38.9 | This is version 10.0.38, with 10 proactive quality updates installed. | All geos. | +| 10.0.40.2 (Preview) | Version 10.0.40, with 3 proactive quality updates installed. It's also a preview build. | [Early release cycle environments](/power-platform/admin/early-release) only. | +| 10.0.39.4 | Version 10.0.39, with 5 proactive quality updates installed. | All geos. | +| 10.0.38.9 | Version 10.0.38, with 10 proactive quality updates installed. | All geos. | -You will notice that each application version will include its latest proactive quality update, there is no way to get an earlier build of an application version. Preview builds are only available to [Early release cycle environments](/power-platform/admin/early-release). \ No newline at end of file +Each application version includes its latest proactive quality update, there's no way to get an earlier build of an application version. Preview builds are only available to [Early release cycle environments](/power-platform/admin/early-release). \ No newline at end of file diff --git a/power-platform/developer/unified-experience/finance-operations-dev-overview.md b/power-platform/developer/unified-experience/finance-operations-dev-overview.md index deea484b4..57ee976bb 100644 --- a/power-platform/developer/unified-experience/finance-operations-dev-overview.md +++ b/power-platform/developer/unified-experience/finance-operations-dev-overview.md @@ -22,17 +22,17 @@ The unified developer experience consolidates the disparate developer tools and ## Typical scenario -Consider a typical scenario where a developer would create a simple app for capturing orders in Microsoft Power Apps and persisting the gathered data in Dataverse. By means of the data synchronization engines mentioned below, the data would be available for finance and operations apps to do the heavy lifting of determining whether the requested items are available and pricing, etc. The results would be available near real-time in Power Apps. +Consider a typical scenario where a developer would create a app for capturing orders in Microsoft Power Apps and persisting the gathered data in Dataverse. By means of the data synchronization engines mentioned below, the data would be available for finance and operations apps to do the heavy lifting of determining whether the requested items are available and pricing, etc. The results would be available near real-time in Power Apps. ## Finance and operations app development -Development for finance and operations apps is accomplished in Visual Studio using the Visual Studio add-in. This development environment provides everything a professional developer would expect. The unified environment runs in the cloud, and because of that we have made several changes and improvements to the way a developer works with finance and operations apps. However, existing finance and operations app developers will find that the large majority of their workflows will not be different from what they are used to. The article [Write, deploy, and debug X++ code (preview)](finance-operations-debug.md) walks you through how to build X++ code, deploy it to the cloud, execute and debug it there. All other content that you are likely to find about finance and operations app development, like how to extend existing code, is likely to still hold true. +Development for finance and operations apps is accomplished in Visual Studio using the Visual Studio add-in. This development environment provides everything a professional developer would expect. The unified environment runs in the cloud, and because of that we have made several changes and improvements to the way a developer works with finance and operations apps. However, existing finance and operations app developers finds that the large majority of their workflows won't be different from what they're used to. The article [Write, deploy, and debug X++ code (preview)](finance-operations-debug.md) walks you through how to build X++ code, deploy it to the cloud, execute and debug it there. All other content that you're likely to find about finance and operations app development, like how to extend existing code, is likely to still hold true. More information: [Install and configure development tools (preview)](finance-operations-install-config-tools.md) ## Power Platform -Power Platform is supported by a rich development ecosystem. There is a rich set of tools in Power Platform that you can leverage for development. In particular, the Dataverse relational database management system is utilized by the unified developer experience. Many unified solutions work by synchronizing data between tables in the finance and operations app database and tables (entities) in Dataverse. There are two technologies for that: dual-write, and virtual entities. +Power Platform is supported by a rich development ecosystem. There's a rich set of tools in Power Platform that you can use for development. In particular, the Dataverse relational database management system is utilized by the unified developer experience. Many unified solutions work by synchronizing data between tables in the finance and operations app database and tables (entities) in Dataverse. There are two technologies for that: dual-write, and virtual entities. More information: [Microsoft Power Platform developer documentation](../index.yml) From 31c93fab380684ff4d92f50f8ce717a4b7fb488f Mon Sep 17 00:00:00 2001 From: "Saurabh Surana (from Dev Box)" Date: Thu, 6 Jun 2024 07:59:13 -0700 Subject: [PATCH 11/63] additional changes to ERP template doc --- ...eploy-new-environment-with-ERP-template.md | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md b/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md index 0263485f6..9a6516b53 100644 --- a/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md +++ b/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md @@ -58,22 +58,9 @@ Be sure to check out the latest known limitations available in the overview arti ### Create an environment > [!Important] -> This is only available for **Subscription-based trial** environment types. The list of environment types supported will expand over time. +> New environment creation for sandbox and production environments with finance and operations apps are not available through the UI at this time but will be added in a future release. -1. Sign in to the [Power Platform admin center](https://admin.powerplatform.microsoft.com). -1. Select **Environments** in the navigation pane. The **Environments** page is displayed. -1. Select **New**. The **New environment** pane is displayed. - - :::image type="content" source="media/tutorial-new-environment1.png" alt-text="Click the New button to create a new environment."::: - -1. Enter a name for the environment. Environment names don't need to be unique in Power Platform, unlike in Lifecycle Services. -1. Choose your Provisionment region. -1. From the **Type** list, select **Subscription-based Trial**. -1. Enable the Dataverse data store option, and select **Next**. -1. On the next screen, enter the Dataverse-required fields. -1. Select **Enable Dynamics 365 apps** and choose the appropriate template for your license. - - :::image type="content" source="media/new-environment-template.png" alt-text="Enable the Dynamics 365 apps and select the appropriate template for your license."::: +If you wish to create a new environment with finance and operations apps pre-installed you can use the PowerShell tab to complete this task in a single action. Otherwise, if you require to use the UI you can follow the steps in [Tutorial: Install the Finance and Operations Provisioning App](./tutorial-install-finance-operations-provisioning-app.md). # [PowerShell](#tab/PowerShell) @@ -81,6 +68,8 @@ Be sure to check out the latest known limitations available in the overview arti Load up your PowerShell console and execute the following commands to generate the environment. Note the variables so that you can change the input values as required. If you wish to use a service principal, follow the instructions at [Creating a service principal application using PowerShell](../powershell-create-service-principal.md). +In the script below, the parameter **DevToolsEnabled** determines if your sandbox get provisioned with support for X++ development or it becomes traditional sandbox for user acceptance testing and training purposes. By setting this value to true you can do development, and by setting it to false or ommitting it you receive a traditional sandbox environment with finance and operations apps installed. + ```powershell #Install the module Install-Module -Name Microsoft.PowerApps.Administration.PowerShell From 6c9f0510d45c69cb594d5122f6e51fcc6c77e190 Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 10:51:05 -0500 Subject: [PATCH 12/63] Update admin-trials.md --- power-platform/admin/unified-experience/admin-trials.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/power-platform/admin/unified-experience/admin-trials.md b/power-platform/admin/unified-experience/admin-trials.md index a86daed42..31f1fb5ed 100644 --- a/power-platform/admin/unified-experience/admin-trials.md +++ b/power-platform/admin/unified-experience/admin-trials.md @@ -3,10 +3,11 @@ title: "Unified admin trials" description: "Subscription-based trial environments for administrators of finance and operations apps." author: laneswenka ms.topic: conceptual -ms.date: 05/23/2024 +ms.date: 06/06/2024 ms.subservice: admin ms.author: laswenka ms.reviewer: sericks + --- # Unified admin trials @@ -16,7 +17,7 @@ Administrators, partners, and ISVs historically have had to use cloud-hosted env To improve this experience, Microsoft has made available free subscription-based trial environments for finance and operations apps, including Dynamics 365 Finance, Supply Chain Management, Project Operations, and Commerce apps. > [!IMPORTANT] -> The trial environments don't support development with Visual Studio. For development, you'll need a developer-focused sandbox environment. More information: [Install and configure development tools](/power-platform/developer/unified-experience/finance-operations-install-config-tools). +> The trial environments don't support development with Visual Studio. For development, you need a developer-focused sandbox environment. More information: [Install and configure development tools](/power-platform/developer/unified-experience/finance-operations-install-config-tools). ## Acquire a free subscription-based trial license From 3f1f613745464ad4ebb2e2790e3f63c9c718c8ee Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 10:53:35 -0500 Subject: [PATCH 13/63] Update finance-operations-apps-overview.md --- .../unified-experience/finance-operations-apps-overview.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/power-platform/admin/unified-experience/finance-operations-apps-overview.md b/power-platform/admin/unified-experience/finance-operations-apps-overview.md index 2faad733e..dd9e43815 100644 --- a/power-platform/admin/unified-experience/finance-operations-apps-overview.md +++ b/power-platform/admin/unified-experience/finance-operations-apps-overview.md @@ -1,15 +1,16 @@ --- -title: "Unified admin experience for finance and operations apps (preview)" +title: Unified admin experience for finance and operations apps description: "Overview of unified admin experiences for finance and operations apps customers in the Power Platform admin center." author: laneswenka ms.topic: overview -ms.date: 05/23/2024 +ms.date: 06/06/2024 ms.subservice: admin ms.author: laswenka ms.reviewer: sericks + --- -# Unified admin experience for finance and operations apps (preview) +# Unified admin experience for finance and operations apps Users of finance and operations apps can now administer their environments, policies, licensing, and capacity in the [Power Platform admin center](https://admin.powerplatform.microsoft.com). From c74ccfc1c34cd1a2c9ef010216fd0d973a7849a7 Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 11:08:26 -0500 Subject: [PATCH 14/63] Update finance-operations-apps-overview.md --- .../finance-operations-apps-overview.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/power-platform/admin/unified-experience/finance-operations-apps-overview.md b/power-platform/admin/unified-experience/finance-operations-apps-overview.md index dd9e43815..7abb74a69 100644 --- a/power-platform/admin/unified-experience/finance-operations-apps-overview.md +++ b/power-platform/admin/unified-experience/finance-operations-apps-overview.md @@ -20,19 +20,19 @@ As part of the unification of admin experiences of finance and operations apps w This article gives an overview to finance and operations apps administrators who are new to the Power Platform admin center. Learn some key differences between your prior admin center called Lifecycle Services and the new experience. You can also browse more resources and articles that provide detailed information for common tasks. -To learn more about the admin unification journey, [watch this video](https://www.youtube.com/embed/HmJIuHhx3Hg) on the [Microsoft Dynamics 365 Community](https://www.youtube.com/@MSD365Community) +To learn more about the admin unification journey, see the [Power Platform admin center integration with Lifecyle Servcies (LCS) TechTalk](https://www.youtube.com/watch?v=HmJIuHhx3Hg). ## How do finance and operations apps surface in the Power Platform admin center? -Finance and operations apps will now have the same behavior as other Dynamics 365 apps have had within Power Platform admin center. The apps will be available to licensed customers both during new environment creation as well as installed in to an existing environment. +Finance and operations now has the same behavior as other Dynamics 365 apps have had within Power Platform admin center. The apps are available to licensed customers both during new environment creation, as well as installed in to an existing environment. You can deploy the finance and operations apps within the Power Platform admin center in one of the following ways: ### Option A: Create a new environment through templates -A template is simply a bundle of Microsoft published applications that are pre-installed on a Dataverse-based Power Platform environment. This is a means of increasing productivity as you can deploy an environment with a known configuration of apps quickly without having to install each one in the proper sequence manually. When using a template, you will always get the very latest version of each of those applications available as of that moment. +A template is simply a bundle of Microsoft published applications that are pre-installed on a Dataverse-based Power Platform environment. This is a means of increasing productivity as you can deploy an environment with a known configuration of apps quickly without having to install each one in the proper sequence manually. When using a template, you always get the very latest version of each of those applications available as of that moment. -When creating a new environment in the Power Platform admin center, you can add a Dataverse data store and choose to **Enable Dynamics 365 apps**. Then you will be presented with a list of environment templates that becomes available under **Automatically deploy these apps**. +When creating a new environment in Power Platform admin center, you can add a Dataverse data store and choose to **Enable Dynamics 365 apps**. Then you see a list of environment templates that becomes available under **Automatically deploy these apps**. :::image type="content" source="media/new-environment-template.png" alt-text="Environment templates"::: @@ -40,13 +40,13 @@ This list is dynamic, so you only see references to **Finance**, **Supply Chain ### Option B: Install the provisioning app on an existing environment -If you already have an environment that should function with finance and operations apps, you can simply install it instead of creating a separate environment that will require complex integration. The environment you use must support Dynamics 365 apps. As part of the install process, you will be able to pick any of the supported versions of the finance and operations apps, which is helpful if you want to get a version that is not the latest generally available version. +If you already have an environment that should function with finance and operations apps, you can simply install it instead of creating a separate environment that requires a complex integration. The environment you use must support Dynamics 365 apps. As part of the install process, you can pick any of the supported versions of the finance and operations apps, which is helpful if you want to get a version that is not the latest generally available version. :::image type="content" source="media/install-provisioning-app.png" alt-text="Install provisioning app"::: For step-by-step instructions, see [Tutorial: Install the Finance and Operations Provisioning App](./tutorial-install-finance-operations-provisioning-app.md). -With either option, your environment will have two runtime URLs: +With either option, your environment has two runtime URLs: - One for customer engagement apps (**Environment URL**) - One for finance and operations apps (**Finance and Operations URL**) From 18c992c74e922d6e88dda8b71da557ce3a566505 Mon Sep 17 00:00:00 2001 From: "Saurabh Surana (from Dev Box)" Date: Thu, 6 Jun 2024 09:17:48 -0700 Subject: [PATCH 15/63] added partners-systems-implementers.md from lane's branch --- .../partners-systems-implementers.md | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 power-platform/admin/unified-experience/partners-systems-implementers.md diff --git a/power-platform/admin/unified-experience/partners-systems-implementers.md b/power-platform/admin/unified-experience/partners-systems-implementers.md new file mode 100644 index 000000000..ad3130eab --- /dev/null +++ b/power-platform/admin/unified-experience/partners-systems-implementers.md @@ -0,0 +1,88 @@ +--- +title: "Administration for partners and systems implementers | Microsoft Docs" +description: Administration for partners and systems implementers +author: laneswenka +ms.reviewer: sericks +ms.component: pa-admin +ms.topic: reference +ms.date: 05/23/2024 +ms.subservice: admin +ms.author: laswenka +search.audienceType: + - admin +--- + +# Administration for partners and systems implementers + +Microsoft Partners and Systems Implementers (SIs) play a crucial role in deploying, managing, and optimizing solutions built for finance and operations apps. With the transition of administrative capabilities to Power Platform admin center (PPAC), there are significant changes and enhancements in both technology and processes. This article provides an overview of these improvements, focusing on the key differences in terminology and processes compared to the Lifecycle Services (LCS) admin center. + +## A single, unified admin center ## + +The Power Platform Admin Center is designed to provide a unified, streamlined experience for managing all components within the Power Platform ecosystem. For Finance and Operations partners, this transition brings new administrative capabilities and processes that align more closely with the broader Power Platform and Microsoft 365 environments. + +### Key Features of Power Platform Admin Center ### + +1. **Unified environment management** +- Manage environments for all Dynamics 365 workloads and low-code resources in a single place, with a single set of APIs and user interface. +- Perform lifecycle operations such as copy, backup, restore that operates on the whole environment inclusive of finance and operations apps components in a single action. +2. **User and role management** +- Assign and manage user roles and permissions across different environments. +- All users with the System Administrator role in Dataverse get the same role in finance and operations apps experiences (this experince is coming soon) +3. **License and capacity reporting** +- Review capacity consumption across various categories such as Dataverse Database and Operations Database. +- Slice consumption by environment or geography. See which tables or files are consuming most your entitlements. +- Manage add-on capabilities such as AI Builder Credits, and Per App passes. +4. **Compliance and policy** +- Implement data policies to control connector usage by low-code makers and reduce operational risk. +- Utilize advanced security features such as customer managed keys for data encryption, tenant isolation, and VNET firewalls for your Power Platform workloads. + +### Differences in terminology and process ### +As part of the transition, partners and customers can get similar end results via new approaches and using new terminology. + +**Terminology changes** +|Lifecycle Services (LCS) Terminology| Power Platform admin center Terminology| +|************************************| *********************************| +| Project | Not applicable | +| Finance and operations environment | Finance and Operations App | +| Project Owner Role | Power Platform Administrator role in Entra | +| Asset Library | Not applicable | +| Software Deployable Package | Unified package | +| Database refresh | Environment copy | +| Maintenance mode | Admin mode | + +**Process changes** +1. Environment creation +- **LCS**: Environments are deployed through LCS and are equal to exactly one app: Finance and operations. +- **PPAC**: Environments are created using templates that contain Dataverse as a baseline with many Dynamics 365 apps and low-code apps included. Every environment can contain more than one kind of app. + +2. Customization deployment +- **LCS**: Software deployable packages are built and then uploaded to the asset library. From there, they can be installed in to a sandbox and then later a snapshot of sandbox is promoted to become the compute for production environments. There's no automation for the production deployment, it must be done in LCS UI. +- **PPAC**: Unified packages are created using Power Platform CLI or our Azure DevOps tasks that contain both Dataverse solutions and X++ modules. These remain hosted offline in source control as a build artifact or on your local storage. They're installed using CLI or DevOps tasks in to any target be it a sandbox or production environment. Full automation is possible using service principal authentication. + +3. User management +- **LCS**: Project users can manage data in LCS and manage environment lifecycle. But to add users to a finance and operations apps environment it must be done inside of the environment itself. +- **PPAC**: Service-level admins and environment admins can manage resources in PPAC. They can also add/remove users from PPAC directly without needing to access the environment dataverse instance or apps. + +4. Monitoring environment health +- **LCS**: Monitoring tools were available for each sandbox and production environment. Features such as compute load, slow loading forms, and database deadlocks were available with a 15-minute delay or longer. +- **PPAC**: Application Insights is the preferred tool for application health and proactive monitoring. This is available in near-real time. + +5. Support +- **LCS**: Support requests were created from LCS from within a specific project. You could only create tickets for environments in that particular project. +- **PPAC**: Support tickets are created from PPAC for any environment in the tenant that you have access to manage. + +### Granular delegated admin privileges (GDAP) ### +Granular Delegated Admin Privileges (GDAP) provide partners with more precise control over the administrative privileges they have when managing their customers' environments. Unlike traditional Delegated Admin Privileges (DAP), which offer broad access, GDAP allows for more specific permissions, enhancing security and compliance. + +**Key Aspects of GDAP** +- **Granular Permissions**: Partners can request specific administrative permissions tailored to their role and responsibilities, reducing the risk associated with broad administrative access. +- **Enhanced Security**: By limiting access to only necessary resources and actions, GDAP enhances the security posture of both partners and customers. +- **Compliance**: GDAP aligns with regulatory and compliance requirements by ensuring that access is granted based on the principle of least privilege. + +**Requesting a Relationship with Customers** +Partners can request a GDAP relationship with their customers through the Partner Center. The process involves: +1. **Initiating a Request**: Partners submit a request specifying the required permissions and the duration of access. +2. **Customer Approval**: Customers review and approve the request, granting the specified permissions. +3. **Access Management**: Partners manage their access through the Partner Center, adjusting permissions as needed. + +For more detailed information on setting up and managing GDAP, refer to the [Granular Delegated Admin Privileges](/partner-center/gdap-introduction) documentation. \ No newline at end of file From e62c39df0f71a9ee9a618413c936760f4669fea9 Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 11:36:18 -0500 Subject: [PATCH 16/63] Update tutorial-deploy-new-environment-with-ERP-template.md --- ...eploy-new-environment-with-ERP-template.md | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md b/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md index 9a6516b53..e76a9167e 100644 --- a/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md +++ b/power-platform/admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md @@ -5,7 +5,7 @@ author: laneswenka ms.reviewer: sericks ms.component: pa-admin ms.topic: reference -ms.date: 05/23/2024 +ms.date: 06/06/2024 ms.subservice: admin ms.author: laswenka search.audienceType: @@ -18,10 +18,9 @@ Finance and operations apps have been reimagined as an application hosted by Mic In this tutorial, learn how to: -> [!div class="checklist"] -> * Go to the Power Platform admin center and create a new environment using a template based on your assigned license. -> * Provision a developer-focused sandbox using PowerShell to use with X++ code. -> * Delete an environment when no longer in use. +- Go to the Power Platform admin center and create a new environment using a template based on your assigned license. +- Provision a developer-focused sandbox using PowerShell to use with X++ code. +- Delete an environment when no longer in use. As an example of this scenario, a customer who operates their finance and operations apps environments in Microsoft Dynamics 365 Lifecycle Services can provision one of the newer, developer-focused sandboxes in the Power Platform admin center. @@ -37,7 +36,7 @@ You also must have at least 1 gigabyte of available Operations and Dataverse dat ### Knowing which template to provision -All Dynamics 365 environment templates are associated with their related full user licenses. This means that the admin user in the Power Platform admin center must have a full license assigned to them to be able to create one of these environments, and the same holds true when using tools like PowerShell as well. Following table shows the mapping between various finance and operations apps licenses and their template details. +All Dynamics 365 environment templates are associated with their related full user licenses. This means that the admin user in the Power Platform admin center must have a full license assigned to them to be able to create one of these environments, and the same holds true when using tools like PowerShell as well. The following table shows the mapping between various finance and operations apps licenses and their template details. | License | Template name | Template ID | Comments | | ----------- | ----------- |----------- |----------- | @@ -45,7 +44,7 @@ All Dynamics 365 environment templates are associated with their related full us | Dynamics 365 Supply Chain Management (preview) | Supply Chain Management (preview) | D365_FinOps_SCM | | | Dynamics 365 Project Operations | Project Operations Integrated (preview) | D365_FinOps_ProjOps | | | Dynamics 365 Operations Application Partner Sandbox | Project Operations Integrated (preview) | D365_FinOps_ProjOps | | -| Dynamics 365 Commerce| Commerce (preview) | D365_FinOps_Commerce | This template is only available for Trials. | +| Dynamics 365 Commerce| Commerce (preview) | D365_FinOps_Commerce | This template is only available for trials. | ### Known limitations @@ -58,17 +57,17 @@ Be sure to check out the latest known limitations available in the overview arti ### Create an environment > [!Important] -> New environment creation for sandbox and production environments with finance and operations apps are not available through the UI at this time but will be added in a future release. +> New environment creation for sandbox and production environments with finance and operations apps are not available through the UI at this time, but is planned for a future release. -If you wish to create a new environment with finance and operations apps pre-installed you can use the PowerShell tab to complete this task in a single action. Otherwise, if you require to use the UI you can follow the steps in [Tutorial: Install the Finance and Operations Provisioning App](./tutorial-install-finance-operations-provisioning-app.md). +If you wish to create a new environment with finance and operations apps pre-installed, you can use the PowerShell tab to complete this task in a single action. If you require the user interface (UI), you can follow the steps in [Tutorial: Install the Finance and Operations Provisioning App](./tutorial-install-finance-operations-provisioning-app.md). # [PowerShell](#tab/PowerShell) ### Create an environment -Load up your PowerShell console and execute the following commands to generate the environment. Note the variables so that you can change the input values as required. If you wish to use a service principal, follow the instructions at [Creating a service principal application using PowerShell](../powershell-create-service-principal.md). +Load up your PowerShell console and execute the following commands to generate the environment. Note the variables so that you can change the input values, as required. If you wish to use a service principal, follow the instructions at [Creating a service principal application using PowerShell](../powershell-create-service-principal.md). -In the script below, the parameter **DevToolsEnabled** determines if your sandbox get provisioned with support for X++ development or it becomes traditional sandbox for user acceptance testing and training purposes. By setting this value to true you can do development, and by setting it to false or ommitting it you receive a traditional sandbox environment with finance and operations apps installed. +In the script below, the parameter **DevToolsEnabled** determines if your sandbox environment get provisioned with support for X++ development or wether it becomes a traditional sandbox environemnt for user acceptance testing and training purposes. By setting this value to **true** you can do development, and by setting it to **false** or ommitting it, you receive a traditional sandbox environment with finance and operations apps installed. ```powershell #Install the module @@ -97,7 +96,7 @@ New-AdminPowerAppEnvironment -DisplayName "MyUniqueNameHere" -EnvironmentSku San ``` --- -In the above example, we used the **Finance** environment template. See above in this article for a table reference of all templates available by license. Also note that your environment name must be **globally unique and less than 20 characters** because that derives the environment URL. We will be adding upfront validation in the future. +In the above example, we used the **Finance** environment template. See above in this article for a table reference of all templates available by license. Also note that your environment name must be **globally unique and less than 20 characters** because that derives the environment URL. There are plans to add upfront validation in the future. ## Delete the environment In this step, delete the environment you previously created. Deleting an environment is an action commonly done by admins who want to reclaim capacity for other purposes. An environment can be deleted using the Power Platform admin center, or PowerShell as follows. @@ -106,8 +105,7 @@ In this step, delete the environment you previously created. Deleting an environ Select a specific environment, and then select the **Delete** button in the action bar at the top of the page. -Confirm that you want to delete the environment and proceed. This operation starts the deletion process and will eventually free up the Dataverse and Operations storage consumed by this environment for other needs. - +Confirm that you want to delete the environment and proceed. This operation starts the deletion process and frees up the Dataverse and Operations storage consumed by this environment for other needs. # [PowerShell](#tab/PowerShell) @@ -117,4 +115,4 @@ Use the following script to delete the previously created environment. Set the * #Remove the previously created environment by ID Remove-AdminPowerAppEnvironment -EnvironmentName [Guid] ``` ---- \ No newline at end of file +--- From 79ad3073b86ee4f948e70599e2ea04f0b79e27e1 Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 11:39:53 -0500 Subject: [PATCH 17/63] Update tutorial-copy-lifecycle-services-environment-unified-environment.md --- ...fecycle-services-environment-unified-environment.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/power-platform/admin/unified-experience/tutorial-copy-lifecycle-services-environment-unified-environment.md b/power-platform/admin/unified-experience/tutorial-copy-lifecycle-services-environment-unified-environment.md index d87307dce..da53fb5c4 100644 --- a/power-platform/admin/unified-experience/tutorial-copy-lifecycle-services-environment-unified-environment.md +++ b/power-platform/admin/unified-experience/tutorial-copy-lifecycle-services-environment-unified-environment.md @@ -5,7 +5,7 @@ author: laneswenka ms.reviewer: sericks ms.component: pa-admin ms.topic: reference -ms.date: 05/23/2024 +ms.date: 06/06/2024 ms.subservice: admin ms.author: laswenka search.audienceType: @@ -18,9 +18,9 @@ Finance and operations apps have been reimagined as an application hosted by Mic In this tutorial, you learn how to: -> [!div class="checklist"] -> * Prepare the source environment -> * Copy the environment to the target + +- Prepare the source environment +- Copy the environment to the target As an example of this scenario, a customer who operates their finance and operations apps environments through the Lifecycle Services site today would like to copy their production environment data into their new, unified, developer environment in the Power Platform admin center. @@ -118,4 +118,4 @@ Add-PowerAppsAccount -Endpoint prod -TenantID $TenantId -ApplicationId $SPNId -C Copy-PowerAppEnvironment -EnvironmentName $TargetEnvironmentID -CopyToRequestDefinition $copyToRequest ``` ---- \ No newline at end of file +--- From 7c672cb44f3455b494434e790ddb88a6493fd980 Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 12:37:57 -0500 Subject: [PATCH 18/63] Update tutorial-install-finance-operations-provisioning-app.md --- ...all-finance-operations-provisioning-app.md | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md index 8c1083046..f74fdc148 100644 --- a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md @@ -5,7 +5,7 @@ author: laneswenka ms.reviewer: sericks ms.component: pa-admin ms.topic: reference -ms.date: 05/23/2024 +ms.date: 06/06/2024 ms.subservice: admin ms.author: laswenka search.audienceType: @@ -18,9 +18,8 @@ Finance and operations apps are reimagined as an application hosted by Microsoft In this tutorial, learn how to: -> [!div class="checklist"] -> * Locate an existing environment in the Power Platform admin center with other Dynamics 365 apps installed. -> * Install the Finance and Operations Provisioning app to see finance and operations apps capabilities. +- Locate an existing environment in the Power Platform admin center with other Dynamics 365 apps installed. +- Install the Finance and Operations Provisioning app to see finance and operations apps capabilities. For example, a customer who already purchased other Dynamics 365 apps wants to add finance and operations apps capabilities to one of their existing environments. @@ -38,25 +37,23 @@ For example, a customer who already purchased other Dynamics 365 apps wants to a - Have at least 1 GB of available Operations and Dataverse database capacities. For more information, see [Manage storage and capacity](../finance-operations-storage-capacity.md). -- You must use an environment with the **Enable Dynamics 365 apps** enabled when the environment is created. This enabling is a prerequisite for all Dynamics 365 apps, including Sales, Customer Service, Field Service, and all finance and operations apps. +- You must use an environment with the **Enable Dynamics 365 apps** option turned on when the environment is created. This option is a prerequisite for all Dynamics 365 apps, including Sales, Customer Service, Field Service, and all finance and operations apps. > [!IMPORTANT] - > If you try to install without enabling Dynamics 365 apps, you receive an error such as **Dynamics 365 Finance and Operations Provisioning App isn't supported on SchemaType: Standard**. The schema isn't a visible property in Power Platform admin center and can't be changed after the environment is created. You can try installing finance and operations apps in another environment, or [Create an environment with an ERP template](./tutorial-deploy-new-environment-with-ERP-template.md). + > If you try to install without turning on the **Enable Dynamics 365 apps** option, you receive an error such as **Dynamics 365 Finance and Operations Provisioning App isn't supported on SchemaType: Standard**. The schema isn't a visible property in Power Platform admin center and can't be changed after the environment is created. You can try installing finance and operations apps in another environment, or [Create an environment with an ERP template](./tutorial-deploy-new-environment-with-ERP-template.md). -- You must first install the Platform tools app before installing the Provisioning app. The detailed steps are outlined in [Install on an environment](#install-on-an-environment). +- You must first install the platform tools app before installing the provisioning app. The detailed steps are outlined in [Install on an environment](#install-on-an-environment). > [!IMPORTANT] - > If you don't install the Platform Tools app first, you get an error such as **Please install the Dynamics 365 Finance and Operations Platform Tools application before installing the Dynamics 365 Finance and Operations Provisioning app**. You can install the missing app, and then retry the installation of the Provisioning app. + > If you don't install the platform tools app first, you get an error, such as **Please install the Dynamics 365 Finance and Operations Platform Tools application before installing the Dynamics 365 Finance and Operations Provisioning app**. You can install the missing app, and then retry the installation of the provisioning app. ## Known limitations Limitations for an installation of the provisioning app: -1. Environment URL length. The hostname of your Dataverse environment URL must be less than or equal to 19 characters in length, otherwise the Finance and Operations Provisioning App fails to install. To bypass this limitation, you can edit the URL of your environment to be the required length. +- **Environment URL length** - The hostname of your Dataverse environment URL must be less than or equal to 19 characters in length, otherwise the Finance and Operations Provisioning App fails to install. To bypass this limitation, edit the URL of your environment to be the required length. -2. Finance and Operations URL missing. After the install is successful, the Finance and Operations URL may not be shown on the environment details page in Power Platform admin center. To bypass this limitation, you can edit the environment and change a field such as the description to a new value. This edit operation synchronizes the new URL value and display it on screen. - -3. +- **Finance and Operations URL missing** - After the install is successful, the Finance and Operations URL may not be shown on the environment details page in Power Platform admin center. To bypass this limitation, edit the environment and change a field, such as the **Description** to a new value. This edit operation synchronizes the new URL value and displays it on screen. ## Step-by-step installation guide @@ -65,9 +62,9 @@ Limitations for an installation of the provisioning app: 1. Sign in to the [Power Platform admin center](https://admin.powerplatform.microsoft.com). 2. Select **Environments** in the navigation pane. The **Environments** list page is displayed. 3. Select a given environment that meets the prerequisite criteria. -4. Select **Dynamics 365 apps** under the **Resources** card on the environment details page. +4. Select **Dynamics 365 apps** in the **Resources** card on the environment details page. 5. Select **Install app**. -6. Locate and install the **Dynamics 365 Finance and Operations Platform Tools** app. This application provides platform support for installing ERP-based applications. It must be installed before the next step. You may see multiple entries of the same application if you have more than one license that provides access to it. Select any option with a status of *Enabled* to proceed. +6. Locate and install the **Dynamics 365 Finance and Operations Platform Tools** app. This application provides platform support for installing ERP-based applications. It must be installed before the next step. You may see multiple entries of the same application if you have more than one license that provides access to it. Select any option with a status of **Enabled** to proceed. :::image type="content" source="media/tutorial-install-app-platformTools.png" alt-text="A pop-up dialog is shown with the option to proceed to install the platform tools application or to cancel the action."::: 7. Locate and install the **Dynamics 365 Finance and Operations Provisioning app**. This application provides the finance and operations apps capabilities for Dynamics 365 Finance, Supply Chain Management, Project Operations, Human Resources, and Commerce workloads. You may see multiple entries of the same application if you have more than one license that provides access to it. Select any option with a status of *Configured* to proceed. :::image type="content" source="media/tutorial-install-app1.png" alt-text="A pop-up dialog is shown with the option to proceed to install the application or to cancel the action."::: From 6ae209f2484ab66f016d8e86b50e121e0b2146bb Mon Sep 17 00:00:00 2001 From: "Saurabh Surana (from Dev Box)" Date: Thu, 6 Jun 2024 10:45:16 -0700 Subject: [PATCH 19/63] added instruction to install and wait --- ...tutorial-install-finance-operations-provisioning-app.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md index f74fdc148..07126ed35 100644 --- a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md @@ -66,9 +66,10 @@ Limitations for an installation of the provisioning app: 5. Select **Install app**. 6. Locate and install the **Dynamics 365 Finance and Operations Platform Tools** app. This application provides platform support for installing ERP-based applications. It must be installed before the next step. You may see multiple entries of the same application if you have more than one license that provides access to it. Select any option with a status of **Enabled** to proceed. :::image type="content" source="media/tutorial-install-app-platformTools.png" alt-text="A pop-up dialog is shown with the option to proceed to install the platform tools application or to cancel the action."::: -7. Locate and install the **Dynamics 365 Finance and Operations Provisioning app**. This application provides the finance and operations apps capabilities for Dynamics 365 Finance, Supply Chain Management, Project Operations, Human Resources, and Commerce workloads. You may see multiple entries of the same application if you have more than one license that provides access to it. Select any option with a status of *Configured* to proceed. +7. Agree to the terms and conditions and select the **Install** button to start the installation. Please wait for the installation to finish (Status column switchs from Installing to Installed) before proceeding to the next step. +8. Locate and install the **Dynamics 365 Finance and Operations Provisioning app**. This application provides the finance and operations apps capabilities for Dynamics 365 Finance, Supply Chain Management, Project Operations, Human Resources, and Commerce workloads. You may see multiple entries of the same application if you have more than one license that provides access to it. Select any option with a status of *Configured* to proceed. :::image type="content" source="media/tutorial-install-app1.png" alt-text="A pop-up dialog is shown with the option to proceed to install the application or to cancel the action."::: -8. Select **OK** to go to the installation configuration page for the provisioning app. +9. Select **OK** to go to the installation configuration page for the provisioning app. :::image type="content" source="media/tutorial-install-app2.png" alt-text="A configuration page is shown with several check boxes for options to enable."::: You see options to configure the app. @@ -77,7 +78,7 @@ Limitations for an installation of the provisioning app: - **Enable Demo Data**: This option deploys the standard Contoso Demo Data with your app. - **Application version**: You may select any of the available supported versions for install. For more information, see the following section in this tutorial. -9. Agree to the terms and conditions and select the **Install** button to start the installation. +10. Agree to the terms and conditions and select the **Install** button to start the installation. When the install is triggered, it takes roughly an hour for the operation to complete. During the installation, Finance and Operations Provisioning App appears in **Installing** status until the install is completes. From 0c53ea379a08c5bd670d670b7c8ba49e30e208a9 Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 13:22:58 -0500 Subject: [PATCH 20/63] Update tutorial-install-finance-operations-provisioning-app.md --- ...all-finance-operations-provisioning-app.md | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md index 07126ed35..fd7c166c9 100644 --- a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md @@ -62,23 +62,27 @@ Limitations for an installation of the provisioning app: 1. Sign in to the [Power Platform admin center](https://admin.powerplatform.microsoft.com). 2. Select **Environments** in the navigation pane. The **Environments** list page is displayed. 3. Select a given environment that meets the prerequisite criteria. -4. Select **Dynamics 365 apps** in the **Resources** card on the environment details page. +4. Select **Dynamics 365 apps** in the **Resources** card on the environment's detail page. 5. Select **Install app**. -6. Locate and install the **Dynamics 365 Finance and Operations Platform Tools** app. This application provides platform support for installing ERP-based applications. It must be installed before the next step. You may see multiple entries of the same application if you have more than one license that provides access to it. Select any option with a status of **Enabled** to proceed. +6. Select the **Dynamics 365 Finance and Operations Platform Tools** app. This application provides platform support for installing ERP-based applications. It must be installed before the next step. You may see multiple entries of the same application if you have more than one license that provides access to it. Select any option with a status of **Enabled** and select **Next**. :::image type="content" source="media/tutorial-install-app-platformTools.png" alt-text="A pop-up dialog is shown with the option to proceed to install the platform tools application or to cancel the action."::: -7. Agree to the terms and conditions and select the **Install** button to start the installation. Please wait for the installation to finish (Status column switchs from Installing to Installed) before proceeding to the next step. -8. Locate and install the **Dynamics 365 Finance and Operations Provisioning app**. This application provides the finance and operations apps capabilities for Dynamics 365 Finance, Supply Chain Management, Project Operations, Human Resources, and Commerce workloads. You may see multiple entries of the same application if you have more than one license that provides access to it. Select any option with a status of *Configured* to proceed. +7. Agree to the terms and conditions and select the **Install** button to start the installation. Wait for the installation to finish—the **Status** column switchs from **Installing** to **Installed**—before proceeding to the next step. +8. Select **Install app**. +9. Select the **Dynamics 365 Finance and Operations Provisioning app**. This application provides the finance and operations apps capabilities for Dynamics 365 Finance, Supply Chain Management, Project Operations, Human Resources, and Commerce workloads. You may see multiple entries of the same application if you have more than one license that provides access to it. Select any option with a status of **Configured** and select **Next**. :::image type="content" source="media/tutorial-install-app1.png" alt-text="A pop-up dialog is shown with the option to proceed to install the application or to cancel the action."::: -9. Select **OK** to go to the installation configuration page for the provisioning app. +10. Select **OK** to go to the installation configuration page for the provisioning app. + :::image type="content" source="media/tutorial-install-app1.png" alt-text="A pop-up dialog is shown with the option to proceed to install the application or to cancel the action."::: + +11. On the **Dynamics 365 Finance and Operations Provisioning App** page, you see options to configure the app. :::image type="content" source="media/tutorial-install-app2.png" alt-text="A configuration page is shown with several check boxes for options to enable."::: - You see options to configure the app. + The options are: - - **Enable Developer Tools**: This option allows you to have a developer-enabled sandbox where you can connect Visual Studio and make X++ changes. If you leave this option unchecked, you get a standard environment—sandbox or production. - - **Enable Demo Data**: This option deploys the standard Contoso Demo Data with your app. - - **Application version**: You may select any of the available supported versions for install. For more information, see the following section in this tutorial. + - **Enable Developer Tools for Finance and Operations**: This option allows you to have a developer-enabled sandbox environment where you can connect Visual Studio and make X++ changes. If you leave this option unchecked, you get a standard, sandbox or production environment. + - **Enable Demo Data for Finance and Operations**: This option deploys the standard Contoso demo data with your app. + - **Select the version of the product to be installed**: You may select any of the available, supported versions for install. -10. Agree to the terms and conditions and select the **Install** button to start the installation. +12. Agree to the terms and conditions and select the **Install** button to start the installation. When the install is triggered, it takes roughly an hour for the operation to complete. During the installation, Finance and Operations Provisioning App appears in **Installing** status until the install is completes. From 5384f71102176377711c916061e09f9295f5d3a0 Mon Sep 17 00:00:00 2001 From: Kimberley Date: Thu, 6 Jun 2024 14:23:47 -0400 Subject: [PATCH 21/63] Remove 'contains video' from metadata title --- power-platform/guidance/adoption/capacity-and-licenses.md | 2 +- power-platform/power-fx/reference/function-filter-lookup.md | 2 +- power-platform/power-fx/reference/function-patch.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/power-platform/guidance/adoption/capacity-and-licenses.md b/power-platform/guidance/adoption/capacity-and-licenses.md index 9f98336cf..b9d8dd957 100644 --- a/power-platform/guidance/adoption/capacity-and-licenses.md +++ b/power-platform/guidance/adoption/capacity-and-licenses.md @@ -1,5 +1,5 @@ --- -title: "Plan and manage license and capacity allocations - Microsoft Power Platform (contains video) | MicrosoftDocs" +title: "Plan and manage license and capacity allocations - Microsoft Power Platform | MicrosoftDocs" description: "Find answers to questions around how to plan licensing and capacity for your organization's or team's applications or processes." author: manuelap-msft diff --git a/power-platform/power-fx/reference/function-filter-lookup.md b/power-platform/power-fx/reference/function-filter-lookup.md index eb1105db1..84a43f20d 100644 --- a/power-platform/power-fx/reference/function-filter-lookup.md +++ b/power-platform/power-fx/reference/function-filter-lookup.md @@ -1,5 +1,5 @@ --- -title: Filter, Search, and LookUp functions (contains video) +title: Filter, Search, and LookUp functions description: Reference information including syntax and examples for the Filter, Search, and LookUp functions. author: gregli-msft ms.topic: reference diff --git a/power-platform/power-fx/reference/function-patch.md b/power-platform/power-fx/reference/function-patch.md index 9492e740d..a0cba5b2e 100644 --- a/power-platform/power-fx/reference/function-patch.md +++ b/power-platform/power-fx/reference/function-patch.md @@ -1,5 +1,5 @@ --- -title: Patch function (contains video) +title: Patch function description: Reference information including syntax and examples for the Patch function. author: gregli-msft From 098144816aed0b5b5f82c23c51888f58c9fb9a60 Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 13:34:33 -0500 Subject: [PATCH 22/63] Update finance-operations-dev-overview.md --- .../unified-experience/finance-operations-dev-overview.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/power-platform/developer/unified-experience/finance-operations-dev-overview.md b/power-platform/developer/unified-experience/finance-operations-dev-overview.md index 57ee976bb..98e53b1b7 100644 --- a/power-platform/developer/unified-experience/finance-operations-dev-overview.md +++ b/power-platform/developer/unified-experience/finance-operations-dev-overview.md @@ -2,7 +2,7 @@ title: "Unified developer experience for finance and operations apps (preview)" description: Learn about developing code for finance and operations apps using the new Power Platform unified developer experience. author: pvillads -ms.date: 08/22/2023 +ms.date: 06/06/2024 ms.topic: overview ms.reviewer: pehecke ms.author: pvillads @@ -22,7 +22,7 @@ The unified developer experience consolidates the disparate developer tools and ## Typical scenario -Consider a typical scenario where a developer would create a app for capturing orders in Microsoft Power Apps and persisting the gathered data in Dataverse. By means of the data synchronization engines mentioned below, the data would be available for finance and operations apps to do the heavy lifting of determining whether the requested items are available and pricing, etc. The results would be available near real-time in Power Apps. +Consider a typical scenario where a developer would create an app for capturing orders in Microsoft Power Apps and persisting the gathered data in Dataverse. By means of the data synchronization engines mentioned below, the data would be available for finance and operations apps to do the heavy lifting of determining whether the requested items are available and pricing, and more. The results would be available near real-time in Power Apps. ## Finance and operations app development @@ -32,7 +32,7 @@ More information: [Install and configure development tools (preview)](finance-op ## Power Platform -Power Platform is supported by a rich development ecosystem. There's a rich set of tools in Power Platform that you can use for development. In particular, the Dataverse relational database management system is utilized by the unified developer experience. Many unified solutions work by synchronizing data between tables in the finance and operations app database and tables (entities) in Dataverse. There are two technologies for that: dual-write, and virtual entities. +Power Platform is supported by a rich development ecosystem. There's a rich set of tools in Power Platform that you can use for development. In particular, the Dataverse relational database management system is utilized by the unified developer experience. Many unified solutions work by synchronizing data between tables in the finance and operations app database and tables (entities) in Dataverse. There are two technologies for that: dual-write and virtual entities. More information: [Microsoft Power Platform developer documentation](../index.yml) From 91fe0483aea6b390675cf121fea65916fa3e7ecf Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 14:13:21 -0500 Subject: [PATCH 23/63] Update partners-systems-implementers.md --- .../partners-systems-implementers.md | 90 ++++++++++--------- 1 file changed, 48 insertions(+), 42 deletions(-) diff --git a/power-platform/admin/unified-experience/partners-systems-implementers.md b/power-platform/admin/unified-experience/partners-systems-implementers.md index ad3130eab..15811233b 100644 --- a/power-platform/admin/unified-experience/partners-systems-implementers.md +++ b/power-platform/admin/unified-experience/partners-systems-implementers.md @@ -1,11 +1,11 @@ --- -title: "Administration for partners and systems implementers | Microsoft Docs" -description: Administration for partners and systems implementers +title: Administration for partners and systems implementers +description: This article provides an overview and explains key differences between the Power Platform admin center and Lifecycle Services (LCS). author: laneswenka ms.reviewer: sericks ms.component: pa-admin ms.topic: reference -ms.date: 05/23/2024 +ms.date: 06/06/2024 ms.subservice: admin ms.author: laswenka search.audienceType: @@ -14,75 +14,81 @@ search.audienceType: # Administration for partners and systems implementers -Microsoft Partners and Systems Implementers (SIs) play a crucial role in deploying, managing, and optimizing solutions built for finance and operations apps. With the transition of administrative capabilities to Power Platform admin center (PPAC), there are significant changes and enhancements in both technology and processes. This article provides an overview of these improvements, focusing on the key differences in terminology and processes compared to the Lifecycle Services (LCS) admin center. +Microsoft partners and systems implementers play a crucial role in deploying, managing, and optimizing solutions built for finance and operations apps. With the transition of administrative capabilities to Power Platform admin center, there are significant changes and enhancements in both technology and processes. This article provides an overview of these improvements, focusing on the key differences in terminology and processes compared to the Lifecycle Services (LCS) admin center. -## A single, unified admin center ## +## A single, unified admin center -The Power Platform Admin Center is designed to provide a unified, streamlined experience for managing all components within the Power Platform ecosystem. For Finance and Operations partners, this transition brings new administrative capabilities and processes that align more closely with the broader Power Platform and Microsoft 365 environments. +The Power Platform admin center is designed to provide a unified, streamlined experience for managing all components within the Power Platform ecosystem. For finance and operations partners, this transition brings new administrative capabilities and processes that align more closely with the broader Power Platform and Microsoft 365 environments. -### Key Features of Power Platform Admin Center ### +### Key features of Power Platform admin center -1. **Unified environment management** -- Manage environments for all Dynamics 365 workloads and low-code resources in a single place, with a single set of APIs and user interface. -- Perform lifecycle operations such as copy, backup, restore that operates on the whole environment inclusive of finance and operations apps components in a single action. -2. **User and role management** +**Unified environment management** +- Manage environments for all Dynamics 365 workloads and low-code resources in a single place, with a single set of APIs and user interface. +- Perform lifecycle operations such as copy, backup, and restore that operates on the whole environment, inclusive of finance and operations apps components in a single action. + +**User and role management** - Assign and manage user roles and permissions across different environments. -- All users with the System Administrator role in Dataverse get the same role in finance and operations apps experiences (this experince is coming soon) -3. **License and capacity reporting** -- Review capacity consumption across various categories such as Dataverse Database and Operations Database. +- All users with the System Administrator role in Dataverse get the same role in finance and operations apps experiences. (This experince is is planned for a future release.)) + +**License and capacity reporting** +- Review capacity consumption across various categories such as Dataverse database and Operations database. - Slice consumption by environment or geography. See which tables or files are consuming most your entitlements. -- Manage add-on capabilities such as AI Builder Credits, and Per App passes. -4. **Compliance and policy** +- Manage add-on capabilities such as AI Builder credits and per app passes. + +**Compliance and policy** - Implement data policies to control connector usage by low-code makers and reduce operational risk. -- Utilize advanced security features such as customer managed keys for data encryption, tenant isolation, and VNET firewalls for your Power Platform workloads. +- Utilize advanced security features such as customer-managed keys for data encryption, tenant isolation, and VNET firewalls for your Power Platform workloads. -### Differences in terminology and process ### -As part of the transition, partners and customers can get similar end results via new approaches and using new terminology. +### Differences in terminology and process +As part of the transition, partners and customers can get similar end results through new approaches and using new terminology. -**Terminology changes** -|Lifecycle Services (LCS) Terminology| Power Platform admin center Terminology| -|************************************| *********************************| +#### Terminology changes + +|Lifecycle Services (LCS) terminology| Power Platform admin center terminology| +|------------------------------------|----------------------------------------| | Project | Not applicable | | Finance and operations environment | Finance and Operations App | -| Project Owner Role | Power Platform Administrator role in Entra | -| Asset Library | Not applicable | -| Software Deployable Package | Unified package | +| Project Owner role | Power Platform administrator role in Microsoft Entra | +| Asset library | Not applicable | +| Software deployable package | Unified package | | Database refresh | Environment copy | | Maintenance mode | Admin mode | -**Process changes** +#### Process changes + 1. Environment creation - **LCS**: Environments are deployed through LCS and are equal to exactly one app: Finance and operations. -- **PPAC**: Environments are created using templates that contain Dataverse as a baseline with many Dynamics 365 apps and low-code apps included. Every environment can contain more than one kind of app. +- **Power Platform admin center**: Environments are created using templates that contain Dataverse as a baseline with many Dynamics 365 apps and low-code apps included. Every environment can contain more than one kind of app. 2. Customization deployment -- **LCS**: Software deployable packages are built and then uploaded to the asset library. From there, they can be installed in to a sandbox and then later a snapshot of sandbox is promoted to become the compute for production environments. There's no automation for the production deployment, it must be done in LCS UI. -- **PPAC**: Unified packages are created using Power Platform CLI or our Azure DevOps tasks that contain both Dataverse solutions and X++ modules. These remain hosted offline in source control as a build artifact or on your local storage. They're installed using CLI or DevOps tasks in to any target be it a sandbox or production environment. Full automation is possible using service principal authentication. +- **LCS**: Software deployable packages are built and then uploaded to the asset library. From there, they can be installed in to a sandbox, and then later a snapshot of sandbox, is promoted to become the compute for production environments. There's no automation for the production deployment, it must be done in the LCS user interface. +- **Power Platform admin center**: Unified packages are created using Power Platform CLI or Azure DevOps tasks that contain both Dataverse solutions and X++ modules. These remain hosted offline in source control as a build artifact or on your local storage. They're installed using CLI or Azure DevOps tasks in to any target, be it a sandbox or production environment. Full automation is possible using service principal authentication. 3. User management -- **LCS**: Project users can manage data in LCS and manage environment lifecycle. But to add users to a finance and operations apps environment it must be done inside of the environment itself. -- **PPAC**: Service-level admins and environment admins can manage resources in PPAC. They can also add/remove users from PPAC directly without needing to access the environment dataverse instance or apps. +- **LCS**: Project users can manage data in LCS and manage environment lifecycle. To add users to a finance and operations apps environment, it must be done inside of the environment itself. +- **Power Platform admin center**: Service-level admins and environment admins can manage resources in PPAC. They can also add or remove users from Power Platform admin center directly without needing to access the environment's Dataverse instance or apps. 4. Monitoring environment health -- **LCS**: Monitoring tools were available for each sandbox and production environment. Features such as compute load, slow loading forms, and database deadlocks were available with a 15-minute delay or longer. -- **PPAC**: Application Insights is the preferred tool for application health and proactive monitoring. This is available in near-real time. +- **LCS**: You can use monitoring tools, were available, for each sandbox and production environment. Features such as compute load, slow loading forms, and database deadlocks were available with a 15-minute delay or longer. +- **Power Platform admin center**: Application Insights is the preferred tool for application health and proactive monitoring. This is available in near-real time. 5. Support - **LCS**: Support requests were created from LCS from within a specific project. You could only create tickets for environments in that particular project. -- **PPAC**: Support tickets are created from PPAC for any environment in the tenant that you have access to manage. +- **Power Platform admin center**: Support tickets are created from the admin center for any environment in the tenant that you have access to manage. -### Granular delegated admin privileges (GDAP) ### +### Granular delegated admin privileges Granular Delegated Admin Privileges (GDAP) provide partners with more precise control over the administrative privileges they have when managing their customers' environments. Unlike traditional Delegated Admin Privileges (DAP), which offer broad access, GDAP allows for more specific permissions, enhancing security and compliance. -**Key Aspects of GDAP** -- **Granular Permissions**: Partners can request specific administrative permissions tailored to their role and responsibilities, reducing the risk associated with broad administrative access. -- **Enhanced Security**: By limiting access to only necessary resources and actions, GDAP enhances the security posture of both partners and customers. +Key aspects of GDAP include: +- **Granular permissions**: Partners can request specific administrative permissions tailored to their role and responsibilities, reducing the risk associated with broad administrative access. +- **Enhanced security**: By limiting access to only necessary resources and actions, GDAP enhances the security posture of both partners and customers. - **Compliance**: GDAP aligns with regulatory and compliance requirements by ensuring that access is granted based on the principle of least privilege. -**Requesting a Relationship with Customers** +#### Requesting a GDAP relationship with customers Partners can request a GDAP relationship with their customers through the Partner Center. The process involves: -1. **Initiating a Request**: Partners submit a request specifying the required permissions and the duration of access. -2. **Customer Approval**: Customers review and approve the request, granting the specified permissions. + +1. **Initiating a request**: Partners submit a request specifying the required permissions and the duration of access. +2. **Customer approval**: Customers review and approve the request, granting the specified permissions. 3. **Access Management**: Partners manage their access through the Partner Center, adjusting permissions as needed. -For more detailed information on setting up and managing GDAP, refer to the [Granular Delegated Admin Privileges](/partner-center/gdap-introduction) documentation. \ No newline at end of file +For more detailed information on setting up and managing GDAP, refer to the [Granular Delegated Admin Privileges](/partner-center/gdap-introduction) documentation. From e0cf039febf6d75fc6f30cccdbc246266238e53d Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 15:15:45 -0500 Subject: [PATCH 24/63] Update tutorial-update-finance-operations-provisioning-app.md --- ...ate-finance-operations-provisioning-app.md | 55 ++++++++++--------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md index e9dce627e..d60f73ff6 100644 --- a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md @@ -1,54 +1,59 @@ --- -title: "Tutorial: Update the Finance and Operations Provisioning App | Microsoft Docs" -description: Learn how to update the Finance and Operations Provisioning App within existing Power Platform environment. +title: Tutorial: Update the Finance and Operations Provisioning app +description: Learn how to update the Finance and Operations Provisioning app within an existing Power Platform environment. author: laneswenka ms.reviewer: sericks ms.component: pa-admin ms.topic: reference -ms.date: 05/23/2024 +ms.date: 06/06/2024 ms.subservice: admin ms.author: laswenka search.audienceType: - admin --- -# Tutorial: Update the Finance and Operations Provisioning App +# Tutorial: Update the Finance and Operations Provisioning app -Finance and operations apps are reimagined as an application hosted by Microsoft Dataverse. Customers don't need to provision their enterprise resource planning (ERP) system separately from their low-code and other Dynamics 365 platform applications. Most administrative actions in Power Platform are available through the admin center and an API-based experience. +Finance and operations apps are reimagined as an application hosted by Microsoft Dataverse. Customers don't need to provision their enterprise resource planning (ERP) system separately from their low-code and other Dynamics 365 applications. Most administrative actions in Power Platform are available through the admin center and an API-based experience. In this tutorial, learn how to: -> [!div class="checklist"] -> * Locate an existing environment in the Power Platform admin center with Finance and Operations Provisioning App installed. -> * Update the Finance and Operations Provisioning app to a newer application version. +- Locate an existing environment in the Power Platform admin center with the Finance and Operations Provisioning app installed. +- Update the Finance and Operations Provisioning app to a newer application version. -For example, a customer reads that a new service update is available wants update their sandbox environment to evaluate the new capabilities. +For example, a customer reads that a new service update is available and wants to update their sandbox environment to evaluate the new capabilities. -## Step-by-step update guide - -### Update the application to a newer version +## Update the application to a newer version 1. Sign in to the [Power Platform admin center](https://admin.powerplatform.microsoft.com). 2. Select **Environments** in the navigation pane. The **Environments** list page is displayed. -3. Select a given environment that has the Finance and Operations Provisioning App already installed. -4. Select **Dynamics 365 apps** under the **Resources** card on the environment details page. -5. Find the **Dynamics 365 Finance and Operations Provisioning App** and then click on it to select it. -6. After Clicking on the **Manage** button, update experience opens up in a new browser tab or window. If the manage button isn't available, then you're running the latest version and can't. +3. Select a given environment that has the Finance and Operations Provisioning app already installed. +4. Select **Dynamics 365 apps** in the **Resources** card on the environment's details page. +5. Select the checkmark next to **Dynamics 365 Finance and Operations Provisioning App**. Then select the **More applications actions** icon (**...**) and select **Manage**. + + > [Note] + > If the **Manage** button isn't available, then you're running the latest version and no update is available. + +6. A window appears stating that a new admin page will appear. Select OK. + + :::image type="content" source="media/tutorial-install-app1.png" alt-text="A pop-up dialog is shown with the option to proceed to install the application or to cancel the action."::: + +7. The **Dynamics 365 Finance and Operations Provisioning App** update experience page is displayed in a new browser tab or window. Options to select a new application version is shown. + + The drop-down list includes only versions that are higher than your currently installed version. You may see no version option to select, in that case there are no newer versions beyond the current version of your environment. - :::image type="content" source="media/tutorial-install-app1.png" alt-text="A pop-up dialog is shown with the option to proceed to install the application or to cancel the action."::: -7. Options to select a new application version is shown. The drop-down list includes only versions that are higher than your currently installed version. You may see no version option to select, in that case there are no newer versions beyond current version of your environment. -9. Agree to the terms and conditions and select the **Install** button to start the update. +8. Agree to the terms and conditions, and then select **Install** to start the update. -When the update is triggered, it takes roughly an hour for the operation to complete. During the update, Finance and Operations Provisioning App appears in **Installing** status until the update is completes. + When the update is triggered, it takes roughly an hour for the operation to complete. During the update, Finance and Operations Provisioning app appears in **Installing** status until the update is completes. ## Application versions -As mentioned in the above instructions, now you have the ability to update your environment to any of the available versions of finance and operations apps. Following table represents some example versions you may encounter. +As mentioned in the above instructions, when you have the ability to update your environment, you must select a version of finance and operations apps. The following table represents some example versions you may encounter. | Application version | Details | Available within | |---------------------|-------------|------------------| -| 10.0.40.2 (Preview) | Version 10.0.40, with 3 proactive quality updates installed. It's also a preview build. | [Early release cycle environments](/power-platform/admin/early-release) only. | -| 10.0.39.4 | Version 10.0.39, with 5 proactive quality updates installed. | All geos. | -| 10.0.38.9 | Version 10.0.38, with 10 proactive quality updates installed. | All geos. | +| 10.0.40.2 (Preview) | Version 10.0.40, with three proactive quality updates installed. It's also a preview build. | [Early release cycle environments](/power-platform/admin/early-release) only. | +| 10.0.39.4 | Version 10.0.39, with five proactive quality updates installed. | All geos. | +| 10.0.38.9 | Version 10.0.38, with ten proactive quality updates installed. | All geos. | -Each application version includes its latest proactive quality update, there's no way to get an earlier build of an application version. Preview builds are only available to [Early release cycle environments](/power-platform/admin/early-release). \ No newline at end of file +Each application version includes its latest proactive quality update, there's no way to get an earlier build of an application version. Preview builds are only available to [Early release cycle environments](/power-platform/admin/early-release). From fe958e017ac7aecdf2d5250aecc3d609c839d428 Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 15:19:46 -0500 Subject: [PATCH 25/63] Update tutorial-update-finance-operations-provisioning-app.md --- .../tutorial-update-finance-operations-provisioning-app.md | 1 + 1 file changed, 1 insertion(+) diff --git a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md index d60f73ff6..040e462c3 100644 --- a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md @@ -10,6 +10,7 @@ ms.subservice: admin ms.author: laswenka search.audienceType: - admin + --- # Tutorial: Update the Finance and Operations Provisioning app From db177db17c565465b7dfbce98140eac71c59c943 Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 15:21:37 -0500 Subject: [PATCH 26/63] Update tutorial-update-finance-operations-provisioning-app.md --- .../tutorial-update-finance-operations-provisioning-app.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md index 040e462c3..7cce307e1 100644 --- a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md @@ -1,6 +1,6 @@ --- -title: Tutorial: Update the Finance and Operations Provisioning app -description: Learn how to update the Finance and Operations Provisioning app within an existing Power Platform environment. +title: Tutorial: Update the Finance and Operations Provisioning app +description: This tutorial demonstrates how to use the Power Platform to provision an environment with finance and operations apps installed. author: laneswenka ms.reviewer: sericks ms.component: pa-admin @@ -10,7 +10,6 @@ ms.subservice: admin ms.author: laswenka search.audienceType: - admin - --- # Tutorial: Update the Finance and Operations Provisioning app From eb6689b224545f6e8a82a35623c56d3ca95d4963 Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 15:23:01 -0500 Subject: [PATCH 27/63] Update tutorial-update-finance-operations-provisioning-app.md --- .../tutorial-update-finance-operations-provisioning-app.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md index 7cce307e1..5f1a78152 100644 --- a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md @@ -1,5 +1,5 @@ --- -title: Tutorial: Update the Finance and Operations Provisioning app +title: " Tutorial: Update the Finance and Operations Provisioning app | Microsoft Docs" description: This tutorial demonstrates how to use the Power Platform to provision an environment with finance and operations apps installed. author: laneswenka ms.reviewer: sericks From 3a61c30dd3971a4a5c150e32054379feb1995333 Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 15:31:44 -0500 Subject: [PATCH 28/63] Update tutorial-install-finance-operations-provisioning-app.md --- .../tutorial-install-finance-operations-provisioning-app.md | 1 - 1 file changed, 1 deletion(-) diff --git a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md index fd7c166c9..a310f9814 100644 --- a/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-install-finance-operations-provisioning-app.md @@ -69,7 +69,6 @@ Limitations for an installation of the provisioning app: 7. Agree to the terms and conditions and select the **Install** button to start the installation. Wait for the installation to finish—the **Status** column switchs from **Installing** to **Installed**—before proceeding to the next step. 8. Select **Install app**. 9. Select the **Dynamics 365 Finance and Operations Provisioning app**. This application provides the finance and operations apps capabilities for Dynamics 365 Finance, Supply Chain Management, Project Operations, Human Resources, and Commerce workloads. You may see multiple entries of the same application if you have more than one license that provides access to it. Select any option with a status of **Configured** and select **Next**. - :::image type="content" source="media/tutorial-install-app1.png" alt-text="A pop-up dialog is shown with the option to proceed to install the application or to cancel the action."::: 10. Select **OK** to go to the installation configuration page for the provisioning app. :::image type="content" source="media/tutorial-install-app1.png" alt-text="A pop-up dialog is shown with the option to proceed to install the application or to cancel the action."::: From f3c7ec122f7bcbbbdab5bcac2d9b30dc7a55060a Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 15:42:57 -0500 Subject: [PATCH 29/63] Update TOC.yml --- power-platform/admin/TOC.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/power-platform/admin/TOC.yml b/power-platform/admin/TOC.yml index 7c139076e..0eae74d30 100644 --- a/power-platform/admin/TOC.yml +++ b/power-platform/admin/TOC.yml @@ -1079,9 +1079,10 @@ href: connect-yammer.md - name: Unified admin experience for finance and operations apps (preview) items: - - name: Overview + - name: Overview of unified admin experience for finance and operations apps href: unified-experience/finance-operations-apps-overview.md - displayName: Overview of unified admin experience for finance and operations apps + - name: Administration for partners and systems implementers + href: unified-experience/partners-systems-implementers.md - name: "Tutorial: Provision a new environment with an ERP-based template" href: unified-experience/tutorial-deploy-new-environment-with-erp-template.md - name: "Tutorial: Install the Finance and Operations Provisioning apps" From 1225c1644788de3d0273747f739087cb8aaad61c Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 15:44:46 -0500 Subject: [PATCH 30/63] Update finance-operations-apps-overview.md --- .../unified-experience/finance-operations-apps-overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/power-platform/admin/unified-experience/finance-operations-apps-overview.md b/power-platform/admin/unified-experience/finance-operations-apps-overview.md index 7abb74a69..f6c6919dd 100644 --- a/power-platform/admin/unified-experience/finance-operations-apps-overview.md +++ b/power-platform/admin/unified-experience/finance-operations-apps-overview.md @@ -1,5 +1,5 @@ --- -title: Unified admin experience for finance and operations apps +title: Overview of unified admin experience for finance and operations apps description: "Overview of unified admin experiences for finance and operations apps customers in the Power Platform admin center." author: laneswenka ms.topic: overview @@ -10,7 +10,7 @@ ms.reviewer: sericks --- -# Unified admin experience for finance and operations apps +# Overview of unified admin experience for finance and operations apps Users of finance and operations apps can now administer their environments, policies, licensing, and capacity in the [Power Platform admin center](https://admin.powerplatform.microsoft.com). From dcdc5d94a9bed514311acaf6fde1330bd8c6b1be Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 15:48:04 -0500 Subject: [PATCH 31/63] Update tutorial-update-finance-operations-provisioning-app.md --- .../tutorial-update-finance-operations-provisioning-app.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md index 5f1a78152..df28a165f 100644 --- a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md @@ -34,7 +34,7 @@ For example, a customer reads that a new service update is available and wants t > [Note] > If the **Manage** button isn't available, then you're running the latest version and no update is available. -6. A window appears stating that a new admin page will appear. Select OK. +6. A window appears stating that a new admin page will appear. Select **OK**. :::image type="content" source="media/tutorial-install-app1.png" alt-text="A pop-up dialog is shown with the option to proceed to install the application or to cancel the action."::: From e8f856f26b73a5e8e17d352e8fb7ec103b26dc32 Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 15:50:10 -0500 Subject: [PATCH 32/63] Update partners-systems-implementers.md --- .../admin/unified-experience/partners-systems-implementers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/power-platform/admin/unified-experience/partners-systems-implementers.md b/power-platform/admin/unified-experience/partners-systems-implementers.md index 15811233b..51a99d921 100644 --- a/power-platform/admin/unified-experience/partners-systems-implementers.md +++ b/power-platform/admin/unified-experience/partners-systems-implementers.md @@ -28,7 +28,7 @@ The Power Platform admin center is designed to provide a unified, streamlined ex **User and role management** - Assign and manage user roles and permissions across different environments. -- All users with the System Administrator role in Dataverse get the same role in finance and operations apps experiences. (This experince is is planned for a future release.)) +- All users with the System Administrator role in Dataverse get the same role in finance and operations apps experiences. (This experience is is planned for a future release.) **License and capacity reporting** - Review capacity consumption across various categories such as Dataverse database and Operations database. From 7b696fbb97e022949b28ab64a22c226a020b5afd Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 15:50:34 -0500 Subject: [PATCH 33/63] Update partners-systems-implementers.md --- .../admin/unified-experience/partners-systems-implementers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/power-platform/admin/unified-experience/partners-systems-implementers.md b/power-platform/admin/unified-experience/partners-systems-implementers.md index 51a99d921..f3cc0f211 100644 --- a/power-platform/admin/unified-experience/partners-systems-implementers.md +++ b/power-platform/admin/unified-experience/partners-systems-implementers.md @@ -28,7 +28,7 @@ The Power Platform admin center is designed to provide a unified, streamlined ex **User and role management** - Assign and manage user roles and permissions across different environments. -- All users with the System Administrator role in Dataverse get the same role in finance and operations apps experiences. (This experience is is planned for a future release.) +- All users with the System Administrator role in Dataverse get the same role in finance and operations apps experiences. (This experience is planned for a future release.) **License and capacity reporting** - Review capacity consumption across various categories such as Dataverse database and Operations database. From 448b5f4e8a22c7b69f11f497bbb6a3c6b8102e61 Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 15:54:35 -0500 Subject: [PATCH 34/63] Update tutorial-update-finance-operations-provisioning-app.md --- .../tutorial-update-finance-operations-provisioning-app.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md index df28a165f..c3058a492 100644 --- a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md @@ -34,7 +34,7 @@ For example, a customer reads that a new service update is available and wants t > [Note] > If the **Manage** button isn't available, then you're running the latest version and no update is available. -6. A window appears stating that a new admin page will appear. Select **OK**. +6. A window appears stating that a new **Manage Dynamics 365 Finance and Operations Provisioning app** page will open. Select **OK**. :::image type="content" source="media/tutorial-install-app1.png" alt-text="A pop-up dialog is shown with the option to proceed to install the application or to cancel the action."::: @@ -44,7 +44,7 @@ For example, a customer reads that a new service update is available and wants t 8. Agree to the terms and conditions, and then select **Install** to start the update. - When the update is triggered, it takes roughly an hour for the operation to complete. During the update, Finance and Operations Provisioning app appears in **Installing** status until the update is completes. + When the update is triggered, it takes roughly an hour for the operation to complete. During the update, Finance and Operations Provisioning app appears in **Installing** status until the update is complete. ## Application versions From 01532d18168adebc81a8c239c87c5666d40d70e1 Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 16:00:05 -0500 Subject: [PATCH 35/63] Update finance-operations-apps-overview.md --- .../unified-experience/finance-operations-apps-overview.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/power-platform/admin/unified-experience/finance-operations-apps-overview.md b/power-platform/admin/unified-experience/finance-operations-apps-overview.md index f6c6919dd..77c8eb7e6 100644 --- a/power-platform/admin/unified-experience/finance-operations-apps-overview.md +++ b/power-platform/admin/unified-experience/finance-operations-apps-overview.md @@ -98,14 +98,10 @@ These continually updated scenario tutorials give a walkthrough for administrato ### Known limitations -As part of the preview, there are a few limitations soon to be removed, so check back often to determine their resolution. - - The environment name can't exceed 20 characters—a limitation on the finance and operations runtime. ### Frequently asked questions -We continue to publish common questions and resolve open items before making the experience generally available (GA). - #### I don't know what licenses I have assigned You can view the licenses assigned to you at [My Account - Subscriptions](https://portal.office.com/account/?ref=MeControl#subscriptions). From c3d38607441d15a3391498a9718ddfa43108b1a5 Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 16:03:40 -0500 Subject: [PATCH 36/63] Update partners-systems-implementers.md --- .../partners-systems-implementers.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/power-platform/admin/unified-experience/partners-systems-implementers.md b/power-platform/admin/unified-experience/partners-systems-implementers.md index f3cc0f211..23e5b6501 100644 --- a/power-platform/admin/unified-experience/partners-systems-implementers.md +++ b/power-platform/admin/unified-experience/partners-systems-implementers.md @@ -57,24 +57,24 @@ As part of the transition, partners and customers can get similar end results th #### Process changes 1. Environment creation -- **LCS**: Environments are deployed through LCS and are equal to exactly one app: Finance and operations. -- **Power Platform admin center**: Environments are created using templates that contain Dataverse as a baseline with many Dynamics 365 apps and low-code apps included. Every environment can contain more than one kind of app. + - **LCS**: Environments are deployed through LCS and are equal to exactly one app: Finance and operations. + - **Power Platform admin center**: Environments are created using templates that contain Dataverse as a baseline with many Dynamics 365 apps and low-code apps included. Every environment can contain more than one kind of app. 2. Customization deployment -- **LCS**: Software deployable packages are built and then uploaded to the asset library. From there, they can be installed in to a sandbox, and then later a snapshot of sandbox, is promoted to become the compute for production environments. There's no automation for the production deployment, it must be done in the LCS user interface. -- **Power Platform admin center**: Unified packages are created using Power Platform CLI or Azure DevOps tasks that contain both Dataverse solutions and X++ modules. These remain hosted offline in source control as a build artifact or on your local storage. They're installed using CLI or Azure DevOps tasks in to any target, be it a sandbox or production environment. Full automation is possible using service principal authentication. + - **LCS**: Software deployable packages are built and then uploaded to the asset library. From there, they can be installed in to a sandbox, and then later a snapshot of sandbox, is promoted to become the compute for production environments. There's no automation for the production deployment, it must be done in the LCS user interface. + - **Power Platform admin center**: Unified packages are created using Power Platform CLI or Azure DevOps tasks that contain both Dataverse solutions and X++ modules. These remain hosted offline in source control as a build artifact or on your local storage. They're installed using CLI or Azure DevOps tasks in to any target, be it a sandbox or production environment. Full automation is possible using service principal authentication. 3. User management -- **LCS**: Project users can manage data in LCS and manage environment lifecycle. To add users to a finance and operations apps environment, it must be done inside of the environment itself. -- **Power Platform admin center**: Service-level admins and environment admins can manage resources in PPAC. They can also add or remove users from Power Platform admin center directly without needing to access the environment's Dataverse instance or apps. + - **LCS**: Project users can manage data in LCS and manage environment lifecycle. To add users to a finance and operations apps environment, it must be done inside of the environment itself. + - **Power Platform admin center**: Service-level admins and environment admins can manage resources in PPAC. They can also add or remove users from Power Platform admin center directly without needing to access the environment's Dataverse instance or apps. 4. Monitoring environment health -- **LCS**: You can use monitoring tools, were available, for each sandbox and production environment. Features such as compute load, slow loading forms, and database deadlocks were available with a 15-minute delay or longer. -- **Power Platform admin center**: Application Insights is the preferred tool for application health and proactive monitoring. This is available in near-real time. + - **LCS**: You can use monitoring tools, were available, for each sandbox and production environment. Features such as compute load, slow loading forms, and database deadlocks were available with a 15-minute delay or longer. + - **Power Platform admin center**: Application Insights is the preferred tool for application health and proactive monitoring. This is available in near-real time. 5. Support -- **LCS**: Support requests were created from LCS from within a specific project. You could only create tickets for environments in that particular project. -- **Power Platform admin center**: Support tickets are created from the admin center for any environment in the tenant that you have access to manage. + - **LCS**: Support requests were created from LCS from within a specific project. You could only create tickets for environments in that particular project. + - **Power Platform admin center**: Support tickets are created from the admin center for any environment in the tenant that you have access to manage. ### Granular delegated admin privileges Granular Delegated Admin Privileges (GDAP) provide partners with more precise control over the administrative privileges they have when managing their customers' environments. Unlike traditional Delegated Admin Privileges (DAP), which offer broad access, GDAP allows for more specific permissions, enhancing security and compliance. From 73675653f5257f763a504534758d76e0ad73a511 Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 16:07:31 -0500 Subject: [PATCH 37/63] Update tutorial-update-finance-operations-provisioning-app.md --- .../tutorial-update-finance-operations-provisioning-app.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md index c3058a492..73e570d43 100644 --- a/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md +++ b/power-platform/admin/unified-experience/tutorial-update-finance-operations-provisioning-app.md @@ -31,7 +31,7 @@ For example, a customer reads that a new service update is available and wants t 4. Select **Dynamics 365 apps** in the **Resources** card on the environment's details page. 5. Select the checkmark next to **Dynamics 365 Finance and Operations Provisioning App**. Then select the **More applications actions** icon (**...**) and select **Manage**. - > [Note] + > [!Note] > If the **Manage** button isn't available, then you're running the latest version and no update is available. 6. A window appears stating that a new **Manage Dynamics 365 Finance and Operations Provisioning app** page will open. Select **OK**. From 9e9ddb0ae6f160ea5dd8bf7a8fdf4fd402714399 Mon Sep 17 00:00:00 2001 From: "Saurabh Surana (from Dev Box)" Date: Thu, 6 Jun 2024 14:22:42 -0700 Subject: [PATCH 38/63] updated finance-operations-dev-overview.md with content from public repo --- .../finance-operations-dev-overview.md | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/power-platform/developer/unified-experience/finance-operations-dev-overview.md b/power-platform/developer/unified-experience/finance-operations-dev-overview.md index 98e53b1b7..9224bfa65 100644 --- a/power-platform/developer/unified-experience/finance-operations-dev-overview.md +++ b/power-platform/developer/unified-experience/finance-operations-dev-overview.md @@ -1,5 +1,5 @@ --- -title: "Unified developer experience for finance and operations apps (preview)" +title: "Unified developer experience for finance and operations apps" description: Learn about developing code for finance and operations apps using the new Power Platform unified developer experience. author: pvillads ms.date: 06/06/2024 @@ -9,17 +9,10 @@ ms.author: pvillads ms.subservice: developer --- -# Unified developer experience for finance and operations apps (preview) - -[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] +# Unified developer experience for finance and operations apps The unified developer experience consolidates the disparate developer tools and environments across finance and operations apps and Power Platform to reduce friction and simplify working across these apps. Finance and operations apps provide a rich ecosystem for professional developers by using a metadata and code-based development environment for mission critical scenarios. Power Platform brings the ability to author solutions quickly and seamlessly using low-code development paradigms and leverages Microsoft Dataverse as the relational data store. Power Platform also adds the ability to build and deploy your solutions using a continuous integration and deployment (CI/CD) pipeline. -> [!IMPORTANT] -> - This is a preview feature. -> - 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. - - ## Typical scenario Consider a typical scenario where a developer would create an app for capturing orders in Microsoft Power Apps and persisting the gathered data in Dataverse. By means of the data synchronization engines mentioned below, the data would be available for finance and operations apps to do the heavy lifting of determining whether the requested items are available and pricing, and more. The results would be available near real-time in Power Apps. @@ -28,7 +21,7 @@ Consider a typical scenario where a developer would create an app for capturing Development for finance and operations apps is accomplished in Visual Studio using the Visual Studio add-in. This development environment provides everything a professional developer would expect. The unified environment runs in the cloud, and because of that we have made several changes and improvements to the way a developer works with finance and operations apps. However, existing finance and operations app developers finds that the large majority of their workflows won't be different from what they're used to. The article [Write, deploy, and debug X++ code (preview)](finance-operations-debug.md) walks you through how to build X++ code, deploy it to the cloud, execute and debug it there. All other content that you're likely to find about finance and operations app development, like how to extend existing code, is likely to still hold true. -More information: [Install and configure development tools (preview)](finance-operations-install-config-tools.md) +More information: [Install and configure development tools](finance-operations-install-config-tools.md) ## Power Platform @@ -57,11 +50,11 @@ Set up Visual Studio on your local development computer. ### See also -[Install and configure development tools (preview)](finance-operations-install-config-tools.md) -[Write, deploy, and debug X++ code (preview)](finance-operations-debug.md) -[Frequently asked questions (preview)](finance-operations-faq.md) -[Tutorial: Provision a new environment with an ERP-based template (preview)](../../admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md#tutorial-provision-a-new-environment-with-an-erp-based-template) -[Develop and customize home page](/dynamics365/fin-ops-core/dev-itpro/dev-tools/developer-home-page) (Dynamics 365 legacy information) -[Unified admin experience for finance and operations apps (preview)](../../admin/unified-experience/finance-operations-apps-overview.md) +[Install and configure development tools](finance-operations-install-config-tools.md) +[Write, deploy, and debug X++ code](finance-operations-debug.md) +[Frequently asked questions](finance-operations-faq.md) +[Tutorial: Provision a new environment with an ERP-based template](../../admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md#tutorial-provision-a-new-environment-with-an-erp-based-template) +[Develop and customize home page](/dynamics365/fin-ops-core/dev-itpro/dev-tools/developer-home-page) (Dynamics 365 legacy information) +[Unified admin experience for finance and operations apps](../../admin/unified-experience/finance-operations-apps-overview.md) [!INCLUDE [footer-banner](../../includes/footer-banner.md)] From 4e6b287b78da46e792e5f182f1fb5c5549ebf295 Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Thu, 6 Jun 2024 16:27:35 -0500 Subject: [PATCH 39/63] Update finance-operations-dev-overview.md --- .../finance-operations-dev-overview.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/power-platform/developer/unified-experience/finance-operations-dev-overview.md b/power-platform/developer/unified-experience/finance-operations-dev-overview.md index 9224bfa65..cae9e37be 100644 --- a/power-platform/developer/unified-experience/finance-operations-dev-overview.md +++ b/power-platform/developer/unified-experience/finance-operations-dev-overview.md @@ -50,11 +50,11 @@ Set up Visual Studio on your local development computer. ### See also -[Install and configure development tools](finance-operations-install-config-tools.md) -[Write, deploy, and debug X++ code](finance-operations-debug.md) -[Frequently asked questions](finance-operations-faq.md) -[Tutorial: Provision a new environment with an ERP-based template](../../admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md#tutorial-provision-a-new-environment-with-an-erp-based-template) -[Develop and customize home page](/dynamics365/fin-ops-core/dev-itpro/dev-tools/developer-home-page) (Dynamics 365 legacy information) -[Unified admin experience for finance and operations apps](../../admin/unified-experience/finance-operations-apps-overview.md) +- [Install and configure development tools](finance-operations-install-config-tools.md) +- [Write, deploy, and debug X++ code](finance-operations-debug.md) +- [Frequently asked questions](finance-operations-faq.md) +- [Tutorial: Provision a new environment with an ERP-based template](../../admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md#tutorial-provision-a-new-environment-with-an-erp-based-template) +- [Develop and customize home page](/dynamics365/fin-ops-core/dev-itpro/dev-tools/developer-home-page) (Dynamics 365 legacy information) +- [Unified admin experience for finance and operations apps](../../admin/unified-experience/finance-operations-apps-overview.md) [!INCLUDE [footer-banner](../../includes/footer-banner.md)] From 792d65b9873ba3a7d0ae36a93a155bb217629f6d Mon Sep 17 00:00:00 2001 From: Valeria Melechko <59487870+val-bc@users.noreply.github.com> Date: Thu, 6 Jun 2024 14:45:24 -0700 Subject: [PATCH 40/63] https://dev.azure.com/dynamicscrm/ALM/_workitems/edit/4133447 Note applied to legacy UI only, modern UI doesn't call the same API --- power-platform/admin/manage-teams.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/power-platform/admin/manage-teams.md b/power-platform/admin/manage-teams.md index 3b49fba34..cdfe2889c 100644 --- a/power-platform/admin/manage-teams.md +++ b/power-platform/admin/manage-teams.md @@ -56,9 +56,7 @@ A list of all of the teams in the environment is displayed. - **Description:** Enter a description of the team. - **Business unit:** Select the business unit from the dropdown list. - **Administrator:** Search for users in the organization. Start entering characters. - - > [!Note] - > The **Administrator** field is only for reference and it doesn't have any special processing. You can use this field to restrict who can add and remove team members by registering a [plug-in](/power-apps/developer/data-platform/plug-ins) on the [associate and disassociate](/power-apps/developer/data-platform/webapi/associate-disassociate-entities-using-web-api) APIs for the **teammembership_association** relationship. These actions can be enforced when the user is the administrator of the team. For more information, see the community [sample code](https://community.dynamics.com/crm/b/mylifemicrosoftdynamiccrm/posts/ms-dynamics-crm-associate-disassociate-message-plugin). + - **Team type:** Select the team type from the dropdown list. From d4103b766aff30789db554ff8ee193b5e665c902 Mon Sep 17 00:00:00 2001 From: Valeria Melechko <59487870+val-bc@users.noreply.github.com> Date: Thu, 6 Jun 2024 15:07:41 -0700 Subject: [PATCH 41/63] https://dev.azure.com/dynamicscrm/ALM/_workitems/edit/4133447 Updating text for new API --- power-platform/admin/manage-teams.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/power-platform/admin/manage-teams.md b/power-platform/admin/manage-teams.md index cdfe2889c..0295b7ec4 100644 --- a/power-platform/admin/manage-teams.md +++ b/power-platform/admin/manage-teams.md @@ -56,6 +56,8 @@ A list of all of the teams in the environment is displayed. - **Description:** Enter a description of the team. - **Business unit:** Select the business unit from the dropdown list. - **Administrator:** Search for users in the organization. Start entering characters. + > [!NOTE] + > The **Administrator** field is only for reference and it doesn't have any special processing. You can use this field to restrict who can add and remove team members by registering a [plug-in](/power-apps/developer/data-platform/plug-ins) on the [AddMembersTeam](/power-apps/developer/data-platform/webapi/reference/addmembersteam) API for the **teammembership_association** relationship. These actions can be enforced when the user is the administrator of the team. For more information, see the community [sample code](https://community.dynamics.com/crm/b/mylifemicrosoftdynamiccrm/posts/ms-dynamics-crm-associate-disassociate-message-plugin). - **Team type:** Select the team type from the dropdown list. From 92a639d877f4672bfc700476e2c17c5e62a5e1b8 Mon Sep 17 00:00:00 2001 From: "Manjinder (Mints)" Date: Thu, 6 Jun 2024 15:23:07 -0700 Subject: [PATCH 42/63] Create formula-reference-power-pages.md --- .../power-fx/formula-reference-power-pages.md | 334 ++++++++++++++++++ 1 file changed, 334 insertions(+) create mode 100644 power-platform/power-fx/formula-reference-power-pages.md diff --git a/power-platform/power-fx/formula-reference-power-pages.md b/power-platform/power-fx/formula-reference-power-pages.md new file mode 100644 index 000000000..94460a9be --- /dev/null +++ b/power-platform/power-fx/formula-reference-power-pages.md @@ -0,0 +1,334 @@ +--- +title: Formula reference - Power Pages +description: Reference information for all functions in Power Pages. +author: gregli-msft +ms.topic: reference +ms.custom: canvas +ms.reviewer: mkaur-msft +ms.date: 6/06/2024 +ms.subservice: power-fx +ms.author: gregli +search.audienceType: + - maker +contributors: + - mduelae + - gregli-msft + - gregli +--- + +# Formula reference - Power Pages + +In this article, learn about all the functions available in Power Pages. + + +## A + +**[Abs](reference/function-numericals.md)** – Absolute value of a number. + +**[Acos](reference/function-trig.md)** – Returns the arccosine of a number, in radians. + +**[Acot](reference/function-trig.md)** – Returns the arccotangent of a number, in radians. + +**[And](reference/function-logicals.md)** – Boolean logic AND. Returns **true** if all arguments are **true**. You can also use the [**&&** operator](reference/operators.md). + +**[Asin](reference/function-trig.md)** – Returns the arcsine of a number, in radians. + +**[Assert](reference/function-assert.md)** – Evaluates to true or false in a test. + +**[As](reference/operators.md#thisitem-thisrecord-and-as-operators)** – Names the current record in gallery, form, and record scope functions such as **ForAll**, **With**, and **Sum**. + +**[AsType](reference/function-astype-istype.md)** – Treats a record reference as a specific table type. + +**[Atan](reference/function-trig.md)** – Returns the arctangent of a number, in radians. + +**[Atan2](reference/function-trig.md)** – Returns the arctangent based on an (_x_,_y_) coordinate, in radians. + +**[Average](reference/function-aggregates.md)** – Calculates the average of a table expression or a set of arguments. + +## B + +**[Boolean](reference/function-boolean.md)** – Converts a text string, number, or untyped value to a Boolean value. + +## C + +**[Calendar](reference/function-clock-calendar.md)** – Retrieves information about the calendar for the current locale. + +**[Char](reference/function-char.md)** – Translates a character code into a string. + +**[Choices](reference/function-choices.md)** – Returns a table of the possible values for a lookup column. + +**[Clock](reference/function-clock-calendar.md)** – Retrieves information about the clock for the current locale. + +**[Coalesce](reference/function-isblank-isempty.md)** – Replaces _blank_ values while leaving non-_blank_ values unchanged. + +**[Concat](reference/function-concatenate.md)** – Concatenates strings in a data source. + +**[Concatenate](reference/function-concatenate.md)** – Concatenates strings. + +**[Count](reference/function-table-counts.md)** – Counts table records that contain numbers. + +**[Cos](reference/function-trig.md)** – Returns the cosine of an angle specified in radians. + +**[Cot](reference/function-trig.md)** – Returns the cotangent of an angle specified in radians. + +**[CountA](reference/function-table-counts.md)** – Counts table records that aren't [empty](reference/function-isblank-isempty.md). + +**[CountIf](reference/function-table-counts.md)** – Counts table records that satisfy a condition. + +**[CountRows](reference/function-table-counts.md)** – Counts table records. + +## D + +**[Date](reference/function-date-time.md)** – Returns a date/time value, based on **Year**, **Month**, and **Day** values. + +**[DateAdd](reference/function-dateadd-datediff.md)** – Adds days, months, quarters, or years to a date/time value. + +**[DateDiff](reference/function-dateadd-datediff.md)** – Subtracts two date values, and shows the result in days, months, quarters, or years. + +**[DateTime](reference/function-date-time.md)** – Returns a date/time value, based on both date and time components. + +**[DateTimeValue](reference/function-datevalue-timevalue.md)** – Converts a date and time string to a date/time value. + +**[DateValue](reference/function-datevalue-timevalue.md)** – Converts a date-only string to a date/time value. + +**[Day](reference/function-datetime-parts.md)** – Retrieves the day portion of a date/time value. + +**[Dec2Hex](reference/function-hexdec.md)** – Convert a number to a hexadecimal text string. + +**[Degrees](reference/function-trig.md)** – Converts radians to degrees. + +**[Distinct](reference/function-distinct.md)** – Summarizes records of a table, removing duplicates. + +## E + +**[EDate](reference/function-edate-eomonth.md)** – Adds or subtracts months to a date, without changing the day of the month. + +**[EncodeUrl](reference/function-encode-decode.md)** – Encodes special characters using URL encoding. + +**[EndsWith](reference/function-startswith.md)** – Checks whether a text string ends with another text string. + +**[EOMonth](reference/function-edate-eomonth.md)** – Adds or subtracts months to a date, returning the last day of that month. + +**[exactin](reference/operators.md#in-and-exactin-operators)** – Checks if a text string is contained within another text string or table, case dependent. Also used to check if a record is in a table. + +**[Exp](reference/function-numericals.md)** – Returns _e_ raised to a power. + +## F + +**[Filter](reference/function-filter-lookup.md)** – Returns a filtered table based on one or more criteria. + +**[Find](reference/function-find.md)** – Checks whether one string appears within another and returns the location. + +**[First](reference/function-first-last.md)** – Returns the first record of a table. + +**[FirstN](reference/function-first-last.md)** – Returns the first set of records (N records) of a table. + +**[ForAll](reference/function-forall.md)** – Calculates values and performs actions for all records of a table. + +## G + +**[GroupBy](reference/function-groupby.md)** – Returns a table with records grouped together. + +## H + +**[HashTags](reference/function-hashtags.md)** – Extracts the hashtags (#strings) from a string. + +**[Hex2Dec](reference/function-hexdec.md)** – Convert a hexadecimal text string to a number. + +**[Hour](reference/function-datetime-parts.md)** – Returns the hour portion of a date/time value. + + +## I + +**[If](reference/function-if.md)** – Returns one value if a condition is true and another value if not. + +**[IfError](reference/function-iferror.md)** – Detects errors and provides an alternative value or takes action. + +**[in](reference/operators.md#in-and-exactin-operators)** – Checks if a text string is contained within another text string or table, case independent. Also used to check if a record is in a table. + +**[Index](reference/function-first-last.md)** – Returns a record from a table based on ordered position. + +**[Int](reference/function-round.md)** – Rounds down to the nearest integer. + +**[IsBlank](reference/function-isblank-isempty.md)** – Checks for a [blank](reference/function-isblank-isempty.md) value. + +**[IsBlankOrError](reference/function-iferror.md)** – Checks for a [blank](reference/function-isblank-isempty.md) value or error. + +**[IsEmpty](reference/function-isblank-isempty.md)** – Checks for an empty table. + +**[IsError](reference/function-iferror.md)** – Checks for an error. + +**[IsMatch](reference/function-ismatch.md)** – Checks a string against a pattern. Regular expressions can be used. + +**[IsNumeric](reference/function-isnumeric.md)** – Checks for a numeric value. + +**[ISOWeekNum](reference/function-weeknum.md)** – Returns the ISO week number of a date/time value. + +**[IsToday](reference/function-now-today-istoday.md)** – Checks whether a date/time value is sometime today in the user's time zone. + +**[IsType](reference/function-astype-istype.md)** – Checks whether a record reference refers to a specific table type. + +**[IsUTCToday](reference/function-now-today-istoday.md)** – Checks whether a date/time value is sometime today in Coordinated Universal Time (UTC). + +## J + +**[JSON](reference/function-json.md)** – Generates a JSON text string for a table, a record, or a value. + +## L + +**[Language](reference/function-language.md)** – Returns the language tag of the current user. + +**[Last](reference/function-first-last.md)** – Returns the last record of a table. + +**[LastN](reference/function-first-last.md)** – Returns the last set of records (N records) of a table. + +**[Left](reference/function-left-mid-right.md)** – Returns the left-most portion of a string. + +**[Len](reference/function-len.md)** – Returns the length of a string. + +**[Ln](reference/function-numericals.md)** – Returns the natural log. + +**[Log](reference/function-numericals.md)** – Returns the logarithm in any base of a number. + +**[LookUp](reference/function-filter-lookup.md)** – Looks up a single record in a table based on one or more criteria. + +**[Lower](reference/function-lower-upper-proper.md)** – Converts letters in a string of text to all lowercase. + +## M + +**[Match](reference/function-ismatch.md)** – Extracts a substring based on a pattern. Regular expressions can be used. + +**[MatchAll](reference/function-ismatch.md)** – Extracts multiple substrings based on a pattern. Regular expressions can be used. + +**[Max](reference/function-aggregates.md)** – Maximum value of a table expression or a set of arguments. + +**[Mid](reference/function-left-mid-right.md)** – Returns the middle portion of a string. + +**[Min](reference/function-aggregates.md)** – Minimum value of a table expression or a set of arguments. + +**[Minute](reference/function-datetime-parts.md)** – Retrieves the minute portion of a date/time value. + +**[Mod](reference/function-mod.md)** – Returns the remainder after a dividend is divided by a divisor. + +**[Month](reference/function-datetime-parts.md)** – Retrieves the month portion of a date/time value. + +## N + +**[Not](reference/function-logicals.md)** – Boolean logic NOT. Returns **true** if its argument is **false**, and returns **false** if its argument is **true**. You can also use the [**!** operator](reference/operators.md). + +**[Now](reference/function-now-today-istoday.md)** – Returns the current date/time value in the user's time zone. + +## O + +**[Or](reference/function-logicals.md)** – Boolean logic OR. Returns **true** if any of its arguments are **true**. You can also use the [**||** operator](reference/operators.md). + +## P + +**[ParseJSON](reference/function-parsejson.md)** – Converts JSON document represented as text to an [Untyped object](untyped-object.md) value. + +**[Pi](reference/function-trig.md)** – Returns the number π. + +**[PlainText](reference/function-encode-decode.md)** – Removes HTML and XML tags from a string. + +**[Power](reference/function-numericals.md)** – Returns a number raised to a power. You can also use the [**^** operator](reference/operators.md). + +**[Proper](reference/function-lower-upper-proper.md)** – Converts the first letter of each word in a string to uppercase, and converts the rest to lowercase. + +## R + +**[Radians](reference/function-trig.md)** – Converts degrees to radians. + +**[Rand](reference/function-rand.md)** – Returns a pseudo-random number between 0 and 1. + +**[RandBetween](reference/function-rand.md)** – Returns a pseudo-random number between two numbers. + +**[Replace](reference/function-replace-substitute.md)** – Replaces part of a string with another string, by starting position of the string. + +**[RGBA](reference/function-colors.md)** – Returns a color value for a set of red, green, blue, and alpha components. + +**[Right](reference/function-left-mid-right.md)** – Returns the right-most portion of a string. + +**[Round](reference/function-round.md)** – Rounds to the closest number. + +**[RoundDown](reference/function-round.md)** – Rounds down to the largest previous number. + +**[RoundUp](reference/function-round.md)** – Rounds up to the smallest next number. + +## S + + +**[Search](reference/function-filter-lookup.md)** – Finds records in a table that contain a string in one of their columns. + +**[Second](reference/function-datetime-parts.md)** – Retrieves the second portion of a date/time value. + +**[Sin](reference/function-trig.md)** – Returns the sine of an angle specified in radians. + +**[Sort](reference/function-sort.md)** – Returns a sorted table based on a formula. + +**[SortByColumns](reference/function-sort.md)** – Returns a sorted table based on one or more columns. + +**[Split](reference/function-split.md)** – Splits a text string into a table of substrings. + +**[Sqrt](reference/function-numericals.md)** – Returns the square root of a number. + +**[StartsWith](reference/function-startswith.md)** – Checks if a text string begins with another text string. + +**[StdevP](reference/function-aggregates.md)** – Returns the standard deviation of its arguments. + +**[Substitute](reference/function-replace-substitute.md)** – Replaces part of a string with another string, by matching strings. + +**[Sum](reference/function-aggregates.md)** – Calculates the sum of a table expression or a set of arguments. + +**[Switch](reference/function-if.md)** – Matches with a set of values and then evaluates a corresponding formula. + +## T + +**[Tan](reference/function-trig.md)** – Returns the tangent of an angle specified in radians. + +**[Text](reference/function-text.md)** – Converts any value and formats a number or date/time value to a string of text. + +**[ThisRecord](reference/operators.md#thisitem-thisrecord-and-as-operators)** – Returns the record for the current item in a record scope function, such as **ForAll**, **With**, and **Sum**. + +**[Time](reference/function-date-time.md)** – Returns a date/time value, based on **Hour**, **Minute**, and **Second** values. + +**[TimeValue](reference/function-datevalue-timevalue.md)** – Converts a time-only string to a date/time value. + +**[TimeZoneOffset](reference/function-dateadd-datediff.md)** – Returns the difference between UTC and the user's local time in minutes. + +**[Today](reference/function-now-today-istoday.md)** – Returns the current date-only value. + +**[Trim](reference/function-trim.md)** – Removes extra spaces from the ends and interior of a string of text. + +**[TrimEnds](reference/function-trim.md)** – Removes extra spaces from the ends of a string of text only. + +**[Trunc](reference/function-round.md)** – Truncates the number to only the integer portion by removing any decimal portion. + +## U + +**[Upper](reference/function-lower-upper-proper.md)** – Converts letters in a string of text to all uppercase. + +**[User](reference/function-user.md)** – Returns information about the current user. + +**[UTCNow](reference/function-now-today-istoday.md)** – Returns the current date/time value in Coordinated Universal Time (UTC). + +**[UTCToday](reference/function-now-today-istoday.md)** – Returns the current date-only value in Coordinated Universal Time (UTC). + +## V + +**[Value](reference/function-value.md)** – Converts a string to a number. + +**[VarP](reference/function-aggregates.md)** – Returns the variance of its arguments. + + +## W + +**[Weekday](reference/function-datetime-parts.md)** – Retrieves the weekday portion of a date/time value. + +**[WeekNum](reference/function-weeknum.md)** – Returns the week number of a date/time value. + +**[With](reference/function-with.md)** – Calculates values and performs actions for a single record, including inline records of named values. + +## Y + +**[Year](reference/function-datetime-parts.md)** – Retrieves the year portion of a date/time value. + From 365a6269550e906649530cf60d4fd5511eea7af3 Mon Sep 17 00:00:00 2001 From: "Manjinder (Mints)" Date: Thu, 6 Jun 2024 15:25:21 -0700 Subject: [PATCH 43/63] Update formula-reference-overview.md --- power-platform/power-fx/formula-reference-overview.md | 1 + 1 file changed, 1 insertion(+) diff --git a/power-platform/power-fx/formula-reference-overview.md b/power-platform/power-fx/formula-reference-overview.md index ca51a2fd1..1ade1e321 100644 --- a/power-platform/power-fx/formula-reference-overview.md +++ b/power-platform/power-fx/formula-reference-overview.md @@ -30,6 +30,7 @@ The Power Fx formulas are available for the following Power Platform components: | Canvas apps | Canvas apps | | Power Automate | Desktop flows | | Dataverse | Formula columns, low-code plug-ins | +| Power Pages | Power Pages | | Cards for Power Apps | Cards | | Power Platform CLI | Not applicable | From 853bd2660590b1fba6628649651cf7c92ce672c1 Mon Sep 17 00:00:00 2001 From: Peter Hecke Date: Thu, 6 Jun 2024 15:26:00 -0700 Subject: [PATCH 44/63] Removed preview labeling --- .../finance-operations-debug.md | 24 +++++++++---------- .../finance-operations-dev-overview.md | 2 +- .../finance-operations-faq.md | 12 ++++------ ...finance-operations-install-config-tools.md | 24 +++++++++---------- .../finance-operations-pipeline-test.md | 23 +++++++----------- .../finance-operations-pipelines.md | 10 ++++---- .../finance-operations-product-db-access.md | 16 ++++++------- .../finance-operations-testing.md | 14 +++++------ .../finance-operations-trace-parser.md | 9 +------ 9 files changed, 54 insertions(+), 80 deletions(-) diff --git a/power-platform/developer/unified-experience/finance-operations-debug.md b/power-platform/developer/unified-experience/finance-operations-debug.md index 58b29b3f1..a2cb8896c 100644 --- a/power-platform/developer/unified-experience/finance-operations-debug.md +++ b/power-platform/developer/unified-experience/finance-operations-debug.md @@ -2,16 +2,14 @@ title: "Write, deploy, and debug X++ code" description: "Learn how to write an X++ class, deploy it, and then debug it in the unified developer experience." author: pvillads -ms.date: 08/21/2023 +ms.date: 06/06/2024 ms.topic: how-to ms.reviewer: phecke ms.author: pvillads ms.subservice: developer --- -# Write, deploy, and debug X++ code (preview) - -[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] +# Write, deploy, and debug X++ code The unified developer experience for finance and operation apps enables you to write code on your local development computer and run it inside a cloud service. There exists a separation of functionality between these two tiers (local and cloud). @@ -26,7 +24,7 @@ This article shows you how to: Let's begin by developing a runnable X++ class to use as an example. The class's only task is to log a message into the Infolog. The important thing here isn't what the runnable class does, rather it's how we compile, run, and debug it. If you want to learn about the X++ language, see the [programming reference](/dynamics365/fin-ops-core/dev-itpro/dev-ref/xpp-language-reference). -As a prerequisite, you need to have completed setting up your local Visual Studio developer environment. More information: [Install and configure development tools (preview)](finance-operations-install-config-tools.md) +As a prerequisite, you need to have completed setting up your local Visual Studio developer environment. More information: [Install and configure development tools](finance-operations-install-config-tools.md) ## Create a model @@ -53,7 +51,7 @@ We start by creating a model in Visual Studio. Create a project and X++ class in Visual Studio by following these steps. 1. Create a project in Visual Studio that contains the runnable class. The name of the class isn't important here. For this exercise, keep the default name that is FinanceOperations3. -1. Add a runnable class to the project in **Solution Explorer** by right-clicking the project and choosing **Add** > **New item**. +1. Add a runnable class to the project in **Solution Explorer** by right-clicking the project and choosing **Add** > **New item**. 1. Select a **Runnable Class** in the **Code** menu under **Dynamics 365 items**, and call it "MyRunnableClass". Visual Studio opens a window with the template for a runnable class providing a static `main` method that is called as the runnable class runs. 1. Add the following X++ code to the `main` method. Since we're only providing a token implementation here, add a call to log a string message in the Infolog: @@ -81,16 +79,16 @@ At this point you're accessing the endpoint in the cloud, so unless you are alre > [!IMPORTANT] > There are different ways to deploy your changes to the unified development environment. -> -> 1. Deploy the full model via the **Dynamics 365** > **Deploy** > **Deploy models ...** dialog. You can choose to synchronize the database if so desired. > -> 2. As part of a full build, deploy the full model. This deployment is initiated via the **Dynamics 365** > **Build models** dialog if the option to **Deploy to connected online environment** is turned on. The tool will synchronize database or not based on the **synchronize database** setting on the same **Options** tab. +> 1. Deploy the full model via the **Dynamics 365** > **Deploy** > **Deploy models ...** dialog. You can choose to synchronize the database if so desired. +> +> 2. As part of a full build, deploy the full model. This deployment is initiated via the **Dynamics 365** > **Build models** dialog if the option to **Deploy to connected online environment** is turned on. The tool will synchronize database or not based on the **synchronize database** setting on the same **Options** tab. > -> 3. As part of an incremental build from Solution Explorer, setting **Deploy changes to online environment** to true will only deploy changes since the last successful deployment or those made as part of this build. It will honor the project settings for **Synchronize database**. +> 3. As part of an incremental build from Solution Explorer, setting **Deploy changes to online environment** to true will only deploy changes since the last successful deployment or those made as part of this build. It will honor the project settings for **Synchronize database**. > -> 4. Right-click a project and choose to **Deploy model for project ...**. This will only deploy changes since last successful deployment but will not synchronize the database for the module. +> 4. Right-click a project and choose to **Deploy model for project ...**. This will only deploy changes since last successful deployment but will not synchronize the database for the module. > -> 5. Synchronize the database for all models without deploying anything new via **Dynamics 365** > **Synchronize database...**. +> 5. Synchronize the database for all models without deploying anything new via **Dynamics 365** > **Synchronize database...**. You can follow the progress of the deployment by navigating to the "FinOps Cloud Run-time" channel in the Visual Studio output window. Once that deployment is complete, you can see log information by following the link displayed in the output window. @@ -142,7 +140,7 @@ We started with using Visual Studio to create a simple runnable class. After the ### See also -[Unit testing in the unified developer experience](finance-operations-testing.md) +[Unit testing in the unified developer experience](finance-operations-testing.md) [Create and manage environments in the Power Platform admin center](/power-platform/admin/create-environment) [Manage Dynamics 365 apps](../../admin/manage-apps.md) diff --git a/power-platform/developer/unified-experience/finance-operations-dev-overview.md b/power-platform/developer/unified-experience/finance-operations-dev-overview.md index cae9e37be..1293d756b 100644 --- a/power-platform/developer/unified-experience/finance-operations-dev-overview.md +++ b/power-platform/developer/unified-experience/finance-operations-dev-overview.md @@ -19,7 +19,7 @@ Consider a typical scenario where a developer would create an app for capturing ## Finance and operations app development -Development for finance and operations apps is accomplished in Visual Studio using the Visual Studio add-in. This development environment provides everything a professional developer would expect. The unified environment runs in the cloud, and because of that we have made several changes and improvements to the way a developer works with finance and operations apps. However, existing finance and operations app developers finds that the large majority of their workflows won't be different from what they're used to. The article [Write, deploy, and debug X++ code (preview)](finance-operations-debug.md) walks you through how to build X++ code, deploy it to the cloud, execute and debug it there. All other content that you're likely to find about finance and operations app development, like how to extend existing code, is likely to still hold true. +Development for finance and operations apps is accomplished in Visual Studio using the Visual Studio add-in. This development environment provides everything a professional developer would expect. The unified environment runs in the cloud, and because of that we have made several changes and improvements to the way a developer works with finance and operations apps. However, existing finance and operations app developers finds that the large majority of their workflows won't be different from what they're used to. The article [Write, deploy, and debug X++ code](finance-operations-debug.md) walks you through how to build X++ code, deploy it to the cloud, execute and debug it there. All other content that you're likely to find about finance and operations app development, like how to extend existing code, is likely to still hold true. More information: [Install and configure development tools](finance-operations-install-config-tools.md) diff --git a/power-platform/developer/unified-experience/finance-operations-faq.md b/power-platform/developer/unified-experience/finance-operations-faq.md index 71f576bc8..6bcf68442 100644 --- a/power-platform/developer/unified-experience/finance-operations-faq.md +++ b/power-platform/developer/unified-experience/finance-operations-faq.md @@ -1,17 +1,15 @@ --- -title: "Frequently asked questions (preview)" +title: "Frequently asked questions" description: FAQs for the Power Platform unified developer experience. author: pvillads -ms.date: 05/22/2024 +ms.date: 06/06/2024 ms.topic: faq ms.reviewer: pehecke ms.author: pvillads ms.subservice: developer --- -# Frequently asked questions (preview) - -[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] +# Frequently asked questions This FAQ answers common questions regarding the unified developer experience for finance and operations apps. @@ -53,7 +51,7 @@ When this option is missing from the menu, open the Infolog from the menu and re ### How do I download again the client assets -When you connect to the unified development environment, the tool does a few checks and doesn't initiate download if the required assets were previously downloaded. In case you need to download again, simply rename/delete the child folder with the application version of the environment under %LOCALAPPDATA%\Microsoft\Dynamics365. +When you connect to the unified development environment, the tool does a few checks and doesn't initiate download if the required assets were previously downloaded. In case you need to download again, simply rename/delete the child folder with the application version of the environment under %LOCALAPPDATA%\Microsoft\Dynamics365. ### PackagesLocalDirectory extraction doesn't complete @@ -161,4 +159,4 @@ Learn more about observability: [Monitoring and telemetry using Application Insi ### See also -[Unified developer experience for finance and operations apps (preview)](finance-operations-dev-overview.md) +[Unified developer experience for finance and operations apps](finance-operations-dev-overview.md) diff --git a/power-platform/developer/unified-experience/finance-operations-install-config-tools.md b/power-platform/developer/unified-experience/finance-operations-install-config-tools.md index b19261908..510eb8bdb 100644 --- a/power-platform/developer/unified-experience/finance-operations-install-config-tools.md +++ b/power-platform/developer/unified-experience/finance-operations-install-config-tools.md @@ -1,8 +1,8 @@ --- -title: "Install and configure development tools (preview)" +title: "Install and configure development tools" description: Set up required finance and operations app development tools on your local computer. author: pvillads -ms.date: 05/30/2024 +ms.date: 06/06/2024 ms.topic: how-to ms.reviewer: pehecke ms.author: pathaku @@ -11,9 +11,7 @@ contributors: - Pankaj-Thakur --- -# Install and configure development tools (preview) - -[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] +# Install and configure development tools This article describes how to install and configure required Visual Studio finance and operations tools into your local development environment. The instructions in each section should be followed in the order presented in this article. @@ -41,7 +39,7 @@ After installing the Power Platform Tools extension for Visual Studio, follow th - **Download Dynamics 365 FinOps assets** always downloads. 1. Select the desired options in the dialog and select **Login**. - + If you need to use another account or a different online environment, don't choose to use the signed-in user. Enter the credentials for your developer user account with access to the online environment. 1. Select an available solution in the dialog, and then choose **Done**. @@ -50,7 +48,7 @@ After installing the Power Platform Tools extension for Visual Studio, follow th > [!NOTE] > If you have only one online development environment, the organization list dialog may not be shown as you would automatically connect to the environment. > :::image type="content" source="../media/unified-experience/UnoVSConnect.png" alt-text="Menu for connecting to unified environment from Visual Studio."::: - > + > > :::image type="content" source="../media/unified-experience/UnoLogin.png" alt-text="Login dialog when connecting to unified environment from Visual Studio with Show Advanced selected."::: > > If your account requires multi factor authentication, uncheck all checkboxes on login screen. @@ -60,7 +58,7 @@ After installing the Power Platform Tools extension for Visual Studio, follow th > :::image type="content" source="../media/unified-experience/UnoOption2.png" alt-text="Visual Studio> Tools> Options> Power Platform Tools to skip Discovery"::: > > :::image type="content" source="../media/unified-experience/UnoLogin2.png" alt-text="Login dialog when connecting to unified environment from Visual Studio."::: - > + > > :::image type="content" source="../media/unified-experience/UnoEnvironmentUri.png" alt-text="Dialog to obtain the Dataverse uri to the unified development environment."::: ## Download and install the finance and operations extension and metadata @@ -109,11 +107,11 @@ Unpack the `PackagesLocalDirectory.zip` file as `PackagesLocalDirectory`. We rec > This is only required when the Visual Studio output pane indicates it is. Using Windows File Explorer, from the folder specified below, open the `Microsoft.Dynamics.FinOps.ToolsVS2022.vsix` file to install the extension. -On first start of Visual Studio after updating/installing the Microsoft.Dynamics.FinOps.ToolsVS2022 VS extension, you will be prompted for elevated permissions for the extension to setup build targets, URLProtocoloHandler, etc. +On first start of Visual Studio after updating/installing the Microsoft.Dynamics.FinOps.ToolsVS2022 VS extension, you will be prompted for elevated permissions for the extension to setup build targets, URLProtocoloHandler, etc. `C:\Users\\AppData\Local\Microsoft\Dynamics365\` -### Configure the finance and operations extension +### Configure the finance and operations extension > [!NOTE] > This is not required when auto setup is enabled. @@ -123,7 +121,7 @@ To configure the extension, follow these instructions. 1. Start Visual Studio, and then select **Continue without code** from the dialog. 1. Navigate to **Extensions** > **Dynamics 365** > **Configure Metadata** for the first time. - + :::image type="content" source="../media/unified-experience/D365FinOpsConfigureMetadataMenu.png" alt-text="Configure Metadata menu"::: 1. On the configuration form, select **New** and then create a new configuration. Refer to the field descriptions provided in the [Configuration form field descriptions](#configuration-form-field-descriptions) table that follows this procedure. @@ -132,7 +130,7 @@ To configure the extension, follow these instructions. 1. Select **Save**. 2. You can similary edit a configuration. A common field to update is the folder for your own custom metadata. -3. You might also want to move your cross reference database from SQL server local db to SQL server and update the configuration +3. You might also want to move your cross reference database from SQL server local db to SQL server and update the configuration 4. You can delete stale configurations. 5. Note that only one configuration can be current or active at any given time. @@ -187,6 +185,6 @@ Start writing code, deploy, and debug. ### See also -[Unified developer experience for finance and operations apps (preview)](finance-operations-dev-overview.md) +[Unified developer experience for finance and operations apps](finance-operations-dev-overview.md) [!INCLUDE [footer-banner](../../includes/footer-banner.md)] diff --git a/power-platform/developer/unified-experience/finance-operations-pipeline-test.md b/power-platform/developer/unified-experience/finance-operations-pipeline-test.md index 07942f112..cadfaa232 100644 --- a/power-platform/developer/unified-experience/finance-operations-pipeline-test.md +++ b/power-platform/developer/unified-experience/finance-operations-pipeline-test.md @@ -1,26 +1,19 @@ --- -title: "Execute unit tests in Azure Pipelines (Preview) " +title: "Execute unit tests in Azure Pipelines" description: Learn how to set up a unit test for execution using Azure Pipelines. author: pvillads -ms.date: 05/10/2024 +ms.date: 06/06/2024 ms.topic: how-to ms.reviewer: pehecke ms.author: pvillads ms.subservice: developer --- -# Execute unit tests in Azure Pipelines (preview) - -[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] +# Execute unit tests in Azure Pipelines An Azure Pipeline build task is available that lets users execute unit tests on connected cloud runtime environments using a continuous integration/continuous delivery (CI/CD) pipeline. The "Execute Unit Tests in Unified Environment" task is included in the [Dynamics 365 Finance and Operations Tools](https://marketplace.visualstudio.com/items?itemName=Dyn365FinOps.dynamics365-finops-tools) extension. -More information: [Continuous integration and deployment (preview)](finance-operations-pipelines.md), [Build automation that uses Microsoft-hosted agents and Azure Pipelines](/dynamics365/fin-ops-core/dev-itpro/dev-tools/hosted-build-automation) - -> [!IMPORTANT] -> -> - This is a preview feature. -> - 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. +More information: [Continuous integration and deployment](finance-operations-pipelines.md), [Build automation that uses Microsoft-hosted agents and Azure Pipelines](/dynamics365/fin-ops-core/dev-itpro/dev-tools/hosted-build-automation) ## Prerequisites @@ -46,6 +39,7 @@ The output logs of the task contains information of each test executed and its o ### Creating the unit test task > [!IMPORTANT] +> > - A new version (1.*) of the task has been released. See [Update: Version 1](#update-version-1) for more information. In this next image is an example unit test being defined. A description of each form field follows. @@ -66,7 +60,7 @@ In this next image is an example unit test being defined. A description of each A new version (1.*) of the **Execute Unit Tests in Unified Environments** task is available. This version replaces the **Service Connection** authentication field. Now you can use multiple authentication mechanisms, like username/password and appId/client Secret to execute the test requests. -You can use the existing **Power Platform Set Connection Variables** task to generate the connection string in the same pipeline before using the unit test execution task. [Learn more about the details for this task](../../alm/devops-build-tool-tasks.md#power-platform-set-connection-variables) and [about connection types](../../alm/devops-build-tools.md#connection-to-environments). You can retrieve the connection string and use it in subsequent tasks by creating a reference name in the **Output Variables** section for classic pipelines. +You can use the existing **Power Platform Set Connection Variables** task to generate the connection string in the same pipeline before using the unit test execution task. [Learn more about the details for this task](../../alm/devops-build-tool-tasks.md#power-platform-set-connection-variables) and [about connection types](../../alm/devops-build-tools.md#connection-to-environments). You can retrieve the connection string and use it in subsequent tasks by creating a reference name in the **Output Variables** section for classic pipelines. The following image shows how to use the task to generate an output variable named `op` that is referenced in the subsequent unit test execution task: @@ -90,11 +84,10 @@ The following screenshot shows the same reference name used in a unit test task: :::image type="content" source="..\media\unified-experience\devexp-unitTest-task-1.png" alt-text="Version 1 of Unit test task."::: - ### See also -[Unit testing (preview)](finance-operations-testing.md) -[Continuous integration and deployment (preview)](finance-operations-pipelines.md) +[Unit testing](finance-operations-testing.md) +[Continuous integration and deployment](finance-operations-pipelines.md) [Build automation that uses Microsoft-hosted agents and Azure Pipelines](/dynamics365/fin-ops-core/dev-itpro/dev-tools/hosted-build-automation) [Unit Test Framework](/dynamicsax-2012/developer/unit-test-framework) diff --git a/power-platform/developer/unified-experience/finance-operations-pipelines.md b/power-platform/developer/unified-experience/finance-operations-pipelines.md index de15122b0..541b963c4 100644 --- a/power-platform/developer/unified-experience/finance-operations-pipelines.md +++ b/power-platform/developer/unified-experience/finance-operations-pipelines.md @@ -1,17 +1,15 @@ --- -title: "Continuous integration and deployment (preview)" +title: "Continuous integration and deployment" description: Learn how to set up continuous integration and deployment using Azure Pipelines. author: pvillads -ms.date: 08/31/2023 +ms.date: 06/06/2024 ms.topic: how-to ms.reviewer: pehecke ms.author: pvillads ms.subservice: developer --- -# Continuous integration and deployment (preview) - -[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] +# Continuous integration and deployment This article explains how to implement continuous integration and deployment (CI/CD) of Power Platform unified developer experience assets using Azure Pipelines. Specifically, how to: @@ -41,7 +39,7 @@ Optionally, you can choose to generate a separate Lifecycle Services format pack :::image type="content" source="../media/unified-experience/pipelines-add-licenses.png" alt-text="Image of Add Licenses to Deployable Package in Azure DevOps."::: -1. Once the pipeline is built, locate the published artifacts under **Related** in the **Summary** tab. +1. Once the pipeline is built, locate the published artifacts under **Related** in the **Summary** tab. :::image type="content" source="../media/unified-experience/pipelines-locate-artifacts.png" alt-text="Image of solution artifacts in Azure DevOps."::: diff --git a/power-platform/developer/unified-experience/finance-operations-product-db-access.md b/power-platform/developer/unified-experience/finance-operations-product-db-access.md index 1ac398cf2..7e239dbd3 100644 --- a/power-platform/developer/unified-experience/finance-operations-product-db-access.md +++ b/power-platform/developer/unified-experience/finance-operations-product-db-access.md @@ -2,19 +2,17 @@ title: "Request credentials to access D365 product database" description: "Learn how to request credentials to access D365 product database just in time." author: pathaku -ms.date: 05/30/2024 +ms.date: 06/06/2024 ms.topic: how-to ms.reviewer: phecke ms.author: pathaku ms.subservice: developer --- -# Request credentials to access D365 finance and operations product database (preview) +# Request credentials to access D365 finance and operations product database -[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] - -A developer at times benefits from read/write access to the product database. We enable you to request credentials just in time, right from within Visual Studio. -As explained in [Write, deploy, and debug X++ code (preview)](finance-operations-debug.md), the business data is hosted in the cloud. +A developer at times benefits from read/write access to the product database. We enable you to request credentials just in time, right from within Visual Studio. +As explained in [Write, deploy, and debug X++ code](finance-operations-debug.md), the business data is hosted in the cloud. This feature applies only to unified development environments. The developer needs to have the system administrator (sysAdmin) in the environment. To request credentials for database access, follow these steps: @@ -25,7 +23,7 @@ To request credentials for database access, follow these steps: 1. Enter the reason for requesting access credentials to the database. 1. The credentials are allowed for use only from clients using allowed IP v4 addresses so connections attempts from machines other than in the specified IPv4 range are denied by the Azure SQL firewall. 1. The dialog is prepopulated by default with only the current developer machine's public IP v4 address. -1. You may need to update this IP V4 address range in case you want to use the credentials from other machines or your developer machine has ip address allocated to it very dynamically. +1. You may need to update this IP V4 address range in case you want to use the credentials from other machines or your developer machine has ip address allocated to it very dynamically. :::image type="content" source="../media/unified-experience/UDE_SQLJitWindowRequest.png" alt-text="Visual Studio> Tools> SQL Credentials for Dynamics 365 FinOps Request window"::: 1. The dialog indicates that the access request is being processed. :::image type="content" source="../media/unified-experience/UDE_SQLJitProgress.png" alt-text="Visual Studio> Tools> SQL Credentials for Dynamics 365 FinOps Progress"::: @@ -39,8 +37,8 @@ To request credentials for database access, follow these steps: ### See also -[Write, deploy, and debug X++ code (preview)](finance-operations-debug.md) -[Unit testing in the unified developer experience](finance-operations-testing.md) +[Write, deploy, and debug X++ code](finance-operations-debug.md) +[Unit testing in the unified developer experience](finance-operations-testing.md) [Create and manage environments in the Power Platform admin center](/power-platform/admin/create-environment) [Manage Dynamics 365 apps](../../admin/manage-apps.md) [Use SQL to query data in Dataverse](/power-apps/developer/data-platform/dataverse-sql-query) diff --git a/power-platform/developer/unified-experience/finance-operations-testing.md b/power-platform/developer/unified-experience/finance-operations-testing.md index f233eac45..7354fcab9 100644 --- a/power-platform/developer/unified-experience/finance-operations-testing.md +++ b/power-platform/developer/unified-experience/finance-operations-testing.md @@ -1,17 +1,15 @@ --- -title: "Unit testing (preview)" +title: "Unit testing" description: Shows you how to create and run test cases. author: pvillads -ms.date: 08/28/2023 +ms.date: 06/06/2024 ms.topic: how-to ms.subservice: developer ms.reviewer: pehecke ms.author: pvillads --- -# Unit testing (preview) - -[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] +# Unit testing This how-to article shows you how to create and run reliable test cases. @@ -19,7 +17,7 @@ This how-to article shows you how to create and run reliable test cases. You need to have a Power Platform unified developer experience installed and configured on your local machine and a Power Platform developer-focused sandbox environment linked to it. It's important to keep the cloud and local representation of the code the same (synchronized). -More information: [Install and configure development tools (preview)](finance-operations-install-config-tools.md) +More information: [Install and configure development tools](finance-operations-install-config-tools.md) ## Key concepts @@ -34,7 +32,7 @@ You can create new test cases to test the functionality in an application. 1. On the **File** menu, select **Open** > **Project/Solution**, and then select **FleetManagement** **solution** from the desktop folder. If the solution file isn't on your computer, the steps to create it are listed in [End-to-end scenario for the Fleet Management sample application](/dynamics365/fin-ops-core/dev-itpro/dev-tools/fleet-management-sample). 1. In **Solution Explorer**, right-click the **Fleet Management** solution, select **Add**, and then select **New Project**. 1. Choose **finance and operations** as the project type to create. -1. Name this new project *FleetManagementUnitTestSample*, specify the FleetManagement folder on the desktop (C:\Users\Public\Desktop\FleetManagement) as the location, and then select **OK**. +1. Name this new project *FleetManagementUnitTestSample*, specify the FleetManagement folder on the desktop (C:\Users\Public\Desktop\FleetManagement) as the location, and then select **OK**. 1. In **Solution Explorer**, right-click the new project, and then select **Properties**. 1. Set the **Model** property to **FleetManagementUnitTests**, and then select **OK**. 1. Now add a test class containing the tests against the fleet management code. Right-click the FleetManagementUnitTestSample project, select **Add**, and then select **New Item**. @@ -143,6 +141,6 @@ Creating a test specific module helps to keep test code together and manageable. ### See also -[Write, deploy, and debug X++ code (preview)](finance-operations-debug.md) +[Write, deploy, and debug X++ code](finance-operations-debug.md) [!INCLUDE [footer-banner](../../includes/footer-banner.md)] diff --git a/power-platform/developer/unified-experience/finance-operations-trace-parser.md b/power-platform/developer/unified-experience/finance-operations-trace-parser.md index 81d05f16d..5d1a6d5ba 100644 --- a/power-platform/developer/unified-experience/finance-operations-trace-parser.md +++ b/power-platform/developer/unified-experience/finance-operations-trace-parser.md @@ -2,7 +2,7 @@ title: Diagnose issues and analyze performance using a trace parser with the unified developer experience. description: Learn how you can use a trace parser to consume traces and analyze performance in your deployment from your unified developer experience. author: pvillads -ms.date: 05/29/2024 +ms.date: 06/06/2024 ms.topic: article ms.subservice: developer ms.reviewer: pehecke @@ -11,15 +11,8 @@ ms.author: pvillads # Diagnose issues and analyze performance using the Trace Parser -[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] - This article explains how you can use the Trace Parser tool to consume traces and analyze performance in your unified developer experience deployment. The tool can visualize the execution of X++ methods and show execution call trees including the time spent in each method and the time spent for each database operation. -> [!IMPORTANT] -> -> - This is a preview feature. -> - 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. - ## Finding the Trace Parser The Trace Parser tool is a desktop application running on the development (client) machine. When you download the metadata, cross reference database, or more for a particular application version, an installation program for the Trace Parser (named TraceParser.msi) is also downloaded. Use this MSI file to install the Trace Parser tool. When the tool is started the first time, it asks for a name for the database that holds the traces. Provide a name that allows you to distinguish the trace database from other databases on your server (for example "Traces"). From 61b5a68d507325c87bb03b9bc5af98cf01d06519 Mon Sep 17 00:00:00 2001 From: "Manjinder (Mints)" Date: Thu, 6 Jun 2024 15:27:13 -0700 Subject: [PATCH 45/63] Update TOC.yml --- power-platform/power-fx/TOC.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/power-platform/power-fx/TOC.yml b/power-platform/power-fx/TOC.yml index af51a50c3..b3136fdc8 100644 --- a/power-platform/power-fx/TOC.yml +++ b/power-platform/power-fx/TOC.yml @@ -32,6 +32,8 @@ href: formula-reference-canvas-apps.md - name: Dataverse formula reference href: formula-reference-dataverse.md + - name: Power Pages formula reference + href: formula-reference-power-pages.md - name: Cards formula reference href: formula-reference-cards.md - name: Desktop flows formula reference From 16c19998ff20dc16778b49e1523f809db306340b Mon Sep 17 00:00:00 2001 From: DanaMartens <36280184+DanaMartens@users.noreply.github.com> Date: Thu, 6 Jun 2024 18:05:32 -0500 Subject: [PATCH 46/63] Update formula-reference-overview.md --- power-platform/power-fx/formula-reference-overview.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/power-platform/power-fx/formula-reference-overview.md b/power-platform/power-fx/formula-reference-overview.md index 1ade1e321..67ecbf05a 100644 --- a/power-platform/power-fx/formula-reference-overview.md +++ b/power-platform/power-fx/formula-reference-overview.md @@ -27,11 +27,11 @@ The Power Fx formulas are available for the following Power Platform components: | Power Platform component | Sub areas| | - | - | | Power Apps | Canvas apps, model-driven apps, cards | -| Canvas apps | Canvas apps | +| Canvas apps | Not applicable | | Power Automate | Desktop flows | | Dataverse | Formula columns, low-code plug-ins | -| Power Pages | Power Pages | -| Cards for Power Apps | Cards | +| Power Pages | Not applicable | +| Cards for Power Apps | Not applicable | | Power Platform CLI | Not applicable | From 0fdf72828417320f7908e2773e0107abe647b700 Mon Sep 17 00:00:00 2001 From: Pankaj-Thakur <20115956+Pankaj-Thakur@users.noreply.github.com> Date: Thu, 6 Jun 2024 16:07:45 -0700 Subject: [PATCH 47/63] Update finance-operations-debug.md from https://github.com/Pankaj-Thakur/power-platform/blob/pathaku0604 --- .../finance-operations-debug.md | 42 ++++++++++++------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/power-platform/developer/unified-experience/finance-operations-debug.md b/power-platform/developer/unified-experience/finance-operations-debug.md index a2cb8896c..cc4735541 100644 --- a/power-platform/developer/unified-experience/finance-operations-debug.md +++ b/power-platform/developer/unified-experience/finance-operations-debug.md @@ -2,10 +2,10 @@ title: "Write, deploy, and debug X++ code" description: "Learn how to write an X++ class, deploy it, and then debug it in the unified developer experience." author: pvillads -ms.date: 06/06/2024 +ms.date: 08/21/2023 ms.topic: how-to ms.reviewer: phecke -ms.author: pvillads +ms.author: pathaku ms.subservice: developer --- @@ -24,7 +24,17 @@ This article shows you how to: Let's begin by developing a runnable X++ class to use as an example. The class's only task is to log a message into the Infolog. The important thing here isn't what the runnable class does, rather it's how we compile, run, and debug it. If you want to learn about the X++ language, see the [programming reference](/dynamics365/fin-ops-core/dev-itpro/dev-ref/xpp-language-reference). -As a prerequisite, you need to have completed setting up your local Visual Studio developer environment. More information: [Install and configure development tools](finance-operations-install-config-tools.md) + +> [!IMPORTANT] +> You can learn more by watching presentation and demos done for the Dynamics 365 FastTrack Tech Talk series +> +>[Unified Development Experience for Finance and Operations | Dynamics 365 FastTrack Tech Talk](https://www.youtube.com/watch?v=OuEZ1rXkpYY) + + +## Prerequisites + +You should have access to a unified developer environment, the Visual Studio tools extensions installed and configured on your developer machine and connected to the same environment. It's important to keep the metadata changes on your developer machine deployed to the connected environment . +More information: [Install and configure development tools](finance-operations-install-config-tools.md) ## Create a model @@ -51,7 +61,7 @@ We start by creating a model in Visual Studio. Create a project and X++ class in Visual Studio by following these steps. 1. Create a project in Visual Studio that contains the runnable class. The name of the class isn't important here. For this exercise, keep the default name that is FinanceOperations3. -1. Add a runnable class to the project in **Solution Explorer** by right-clicking the project and choosing **Add** > **New item**. +1. Add a runnable class to the project in **Solution Explorer** by right-clicking the project and choosing **Add** > **New item**. 1. Select a **Runnable Class** in the **Code** menu under **Dynamics 365 items**, and call it "MyRunnableClass". Visual Studio opens a window with the template for a runnable class providing a static `main` method that is called as the runnable class runs. 1. Add the following X++ code to the `main` method. Since we're only providing a token implementation here, add a call to log a string message in the Infolog: @@ -79,18 +89,18 @@ At this point you're accessing the endpoint in the cloud, so unless you are alre > [!IMPORTANT] > There are different ways to deploy your changes to the unified development environment. +> +> 1. Deploy the full model via the **Dynamics 365** > **Deploy** > **Deploy models ...** dialog. You can choose to synchronize the database if so desired. > -> 1. Deploy the full model via the **Dynamics 365** > **Deploy** > **Deploy models ...** dialog. You can choose to synchronize the database if so desired. -> -> 2. As part of a full build, deploy the full model. This deployment is initiated via the **Dynamics 365** > **Build models** dialog if the option to **Deploy to connected online environment** is turned on. The tool will synchronize database or not based on the **synchronize database** setting on the same **Options** tab. +> 2. As part of a full build, deploy the full model. This deployment is initiated via the **Dynamics 365** > **Build models** dialog if the option to **Deploy to connected online environment** is turned on. The tool will synchronize database or not based on the **synchronize database** setting on the same **Options** tab. > -> 3. As part of an incremental build from Solution Explorer, setting **Deploy changes to online environment** to true will only deploy changes since the last successful deployment or those made as part of this build. It will honor the project settings for **Synchronize database**. +> 3. As part of an incremental build from Solution Explorer, setting **Deploy changes to online environment** to true will only deploy changes since the last successful deployment or those made as part of this build. It will honor the project settings for **Synchronize database**. > -> 4. Right-click a project and choose to **Deploy model for project ...**. This will only deploy changes since last successful deployment but will not synchronize the database for the module. +> 4. Right-click a project and choose to **Deploy model for project ...**. This will only deploy changes since last successful deployment but will not synchronize the database for the module. > -> 5. Synchronize the database for all models without deploying anything new via **Dynamics 365** > **Synchronize database...**. +> 5. Synchronize the database for all models without deploying anything new via **Dynamics 365** > **Synchronize database...**. -You can follow the progress of the deployment by navigating to the "FinOps Cloud Run-time" channel in the Visual Studio output window. Once that deployment is complete, you can see log information by following the link displayed in the output window. +You can follow the progress of the deployment by navigating to the "FinOps Cloud Runtime" drop down in the Visual Studio output window. Once that deployment is complete, you can see log information by following the link displayed in the output window. ## Debug the deployed code @@ -114,7 +124,7 @@ Let's now try that. Instead of tediously writing our own form all over again, us `https://?prt=initial&debug=vs&activityid=\&cmp=DAT&mi=SysUserSetup` -You'll now see the form that allows you to set the colors in Dynamic's open. +You'll now see the form that allows you to choose the colors. Now let's set a breakpoint in the form. @@ -123,7 +133,8 @@ Now let's set a breakpoint in the form. 1. Select the form, and select **View code** to open the editor with the source code for this form. 1. In that form, set a breakpoint in the `selectionChange` method in the ThemeChooser control. This code is triggered when the user selects a new color theme. 1. In the browser window, select one of the colored squares, let's say the red one. You'll hit the breakpoint. -1. Continue the execution by pressing F5. Another colored square is hit and the breakpoint is triggered again. +1. Continue the execution by pressing F10 or F5. Another colored square is hit and the breakpoint is triggered again. +1. You can watch the locals, set new breakpoints and do various debugging tasks. > [!IMPORTANT] > If you want to attach the debugger to the running AOS process in the unified environment use **Dynamics 365** > **Launch debugger**. @@ -136,11 +147,12 @@ Now let's set a breakpoint in the form. As a recap, here's a summary and the points to take away from this exercise. -We started with using Visual Studio to create a simple runnable class. After the compilation, the package needed to be pushed to the cloud endpoint for execution. X++ code can only be executed in the cloud, so we performed a deployment operation. Once the deployment was complete, we executed the code by setting a breakpoint and running the debugger. We then started a form from the browser, and noticed that breakpoints were hit correctly as the form was used, and we did'nt have to restart the debugger for that to happen. In fact, the debugger can be started by using the **Launch debugger** option on the **Extension** menu. You can then enter a URL in the browser and the breakpoints are hit. +We started with using Visual Studio to create a simple runnable class. After the compilation, the package needed to be pushed to the cloud endpoint for execution. X++ code can only be executed in the cloud, so we performed a deployment operation. Once the deployment was complete, we executed the code by setting a breakpoint and running the debugger. We then started a form from the browser, and noticed that breakpoints were hit correctly as the form was used, and we did not have to restart the debugger for that to happen. In fact, the debugger can be started by using the **Launch debugger** option on the **Extension** menu. You can then enter a URL in the browser, execute the scenario to debug and the breakpoints will be hit. ### See also -[Unit testing in the unified developer experience](finance-operations-testing.md) +[Unified Development Experience for Finance and Operations | Dynamics 365 FastTrack Tech Talk](https://www.youtube.com/watch?v=OuEZ1rXkpYY) +[Unit testing in the unified developer experience](finance-operations-testing.md) [Create and manage environments in the Power Platform admin center](/power-platform/admin/create-environment) [Manage Dynamics 365 apps](../../admin/manage-apps.md) From 113535f876ea25147d06f1c0c322042d5e577097 Mon Sep 17 00:00:00 2001 From: Pankaj-Thakur <20115956+Pankaj-Thakur@users.noreply.github.com> Date: Thu, 6 Jun 2024 16:09:27 -0700 Subject: [PATCH 48/63] Update finance-operations-dev-overview.md from https://github.com/Pankaj-Thakur/power-platform/blob/pathaku0604 --- .../finance-operations-dev-overview.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/power-platform/developer/unified-experience/finance-operations-dev-overview.md b/power-platform/developer/unified-experience/finance-operations-dev-overview.md index 1293d756b..8d0c18623 100644 --- a/power-platform/developer/unified-experience/finance-operations-dev-overview.md +++ b/power-platform/developer/unified-experience/finance-operations-dev-overview.md @@ -2,7 +2,7 @@ title: "Unified developer experience for finance and operations apps" description: Learn about developing code for finance and operations apps using the new Power Platform unified developer experience. author: pvillads -ms.date: 06/06/2024 +ms.date: 08/22/2023 ms.topic: overview ms.reviewer: pehecke ms.author: pvillads @@ -15,17 +15,17 @@ The unified developer experience consolidates the disparate developer tools and ## Typical scenario -Consider a typical scenario where a developer would create an app for capturing orders in Microsoft Power Apps and persisting the gathered data in Dataverse. By means of the data synchronization engines mentioned below, the data would be available for finance and operations apps to do the heavy lifting of determining whether the requested items are available and pricing, and more. The results would be available near real-time in Power Apps. +Consider a typical scenario where a developer would create a simple app for capturing orders in Microsoft Power Apps and persisting the gathered data in Dataverse. By means of the data synchronization engines mentioned below, the data would be available for finance and operations apps to do the heavy lifting of determining whether the requested items are available and pricing, etc. The results would be available near real-time in Power Apps. ## Finance and operations app development -Development for finance and operations apps is accomplished in Visual Studio using the Visual Studio add-in. This development environment provides everything a professional developer would expect. The unified environment runs in the cloud, and because of that we have made several changes and improvements to the way a developer works with finance and operations apps. However, existing finance and operations app developers finds that the large majority of their workflows won't be different from what they're used to. The article [Write, deploy, and debug X++ code](finance-operations-debug.md) walks you through how to build X++ code, deploy it to the cloud, execute and debug it there. All other content that you're likely to find about finance and operations app development, like how to extend existing code, is likely to still hold true. +Development for finance and operations apps is accomplished in Visual Studio using the Visual Studio extension. This development environment provides everything a professional developer would expect. The unified environment runs in the cloud, and because of that we have made several changes and improvements to the way a developer works with finance and operations apps. However, existing finance and operations app developers will find that the large majority of their workflows will not be different from what they are used to. The article [Write, deploy, and debug X++ code](finance-operations-debug.md) walks you through how to build X++ code, deploy it to the cloud, execute and debug it there. All other content that you are likely to find about finance and operations app development, like how to extend existing code, is likely to still hold true. More information: [Install and configure development tools](finance-operations-install-config-tools.md) ## Power Platform -Power Platform is supported by a rich development ecosystem. There's a rich set of tools in Power Platform that you can use for development. In particular, the Dataverse relational database management system is utilized by the unified developer experience. Many unified solutions work by synchronizing data between tables in the finance and operations app database and tables (entities) in Dataverse. There are two technologies for that: dual-write and virtual entities. +Power Platform is supported by a rich development ecosystem. There is a rich set of tools in Power Platform that you can leverage for development. In particular, the Dataverse relational database management system is utilized by the unified developer experience. Many unified solutions work by synchronizing data between tables in the finance and operations app database and tables (entities) in Dataverse. There are two technologies for that: dual-write, and virtual entities. More information: [Microsoft Power Platform developer documentation](../index.yml) @@ -50,11 +50,11 @@ Set up Visual Studio on your local development computer. ### See also -- [Install and configure development tools](finance-operations-install-config-tools.md) -- [Write, deploy, and debug X++ code](finance-operations-debug.md) -- [Frequently asked questions](finance-operations-faq.md) -- [Tutorial: Provision a new environment with an ERP-based template](../../admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md#tutorial-provision-a-new-environment-with-an-erp-based-template) -- [Develop and customize home page](/dynamics365/fin-ops-core/dev-itpro/dev-tools/developer-home-page) (Dynamics 365 legacy information) -- [Unified admin experience for finance and operations apps](../../admin/unified-experience/finance-operations-apps-overview.md) +[Install and configure development tools](finance-operations-install-config-tools.md) +[Write, deploy, and debug X++ code](finance-operations-debug.md) +[Frequently asked questions](finance-operations-faq.md) +[Tutorial: Provision a new environment with an ERP-based template](../../admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md#tutorial-provision-a-new-environment-with-an-erp-based-template-preview) +[Develop and customize home page](/dynamics365/fin-ops-core/dev-itpro/dev-tools/developer-home-page) (Dynamics 365 legacy information) +[Unified admin experience for finance and operations apps](../../admin/unified-experience/finance-operations-apps-overview.md) [!INCLUDE [footer-banner](../../includes/footer-banner.md)] From bf5adb9dffd648ccda8a9e145df533ee83863bc7 Mon Sep 17 00:00:00 2001 From: Pankaj-Thakur <20115956+Pankaj-Thakur@users.noreply.github.com> Date: Thu, 6 Jun 2024 16:10:18 -0700 Subject: [PATCH 49/63] Update finance-operations-faq.md from https://github.com/Pankaj-Thakur/power-platform/blob/pathaku0604 --- .../finance-operations-faq.md | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/power-platform/developer/unified-experience/finance-operations-faq.md b/power-platform/developer/unified-experience/finance-operations-faq.md index 6bcf68442..790e50452 100644 --- a/power-platform/developer/unified-experience/finance-operations-faq.md +++ b/power-platform/developer/unified-experience/finance-operations-faq.md @@ -2,7 +2,7 @@ title: "Frequently asked questions" description: FAQs for the Power Platform unified developer experience. author: pvillads -ms.date: 06/06/2024 +ms.date: 05/22/2024 ms.topic: faq ms.reviewer: pehecke ms.author: pvillads @@ -37,29 +37,28 @@ We currently don't have the capability to provision or update the environment to ## Developer setup (metadata download, configuration, connecting to an environment) -### I can't access SQL Server using my SQL Server Management Studio client running in a OneBox environment - -We don't currently have a solution for secure connection to SQL Server running behind a cloud endpoint. A TDS endpoint (like the one Dataverse has) is planned to provide read-only queries to a database from SQL Server Management Studio. There's also a JIT access that will allow you to access the data after providing authentication. - ### I connected to the environment from Visual Studio but didn't get any pop-up to download metadata -Ensure that the unified development environment you created is of type **Sandbox**. A **Trial** environment won't work. +Ensure that the unified development environment you created is a unified development environment of type **Sandbox**. A **Trial** environment won't work. ### The Configure Metadata option doesn't appear on the menu -When this option is missing from the menu, open the Infolog from the menu and retry. +When this option is missing from the menu, open the Infolog from the menu and retry. This is addressed in application version 10.0.39 and above. -### How do I download again the client assets +### How do I re download the client assets -When you connect to the unified development environment, the tool does a few checks and doesn't initiate download if the required assets were previously downloaded. In case you need to download again, simply rename/delete the child folder with the application version of the environment under %LOCALAPPDATA%\Microsoft\Dynamics365. +In Visual Studio from the **Tools** menu, select **Download Dynamics 365 FinOps assets**. ### PackagesLocalDirectory extraction doesn't complete -Use [7-Zip](https://www.7-zip.org/download.html) to extract the metadata. +You can configure settings using the Visual Studio setting **Tools** > **Options** > **Power Platform Tools**. +The option **Auto setup for Dynamics 365...** is enabled by default. This ensures you do not have to manually extract system metadata or create the metadata configuration. The tool will do this for you. The Visual Studio output pane will inform you of any user action needed. + +If you still need to, try and use [7-Zip](https://www.7-zip.org/download.html) to extract the metadata. ### The message "Please wait for update to complete" pop up keeps appearing -When a configuration is created, saved, and the dialog closed, the necessary files are updated and this popup will stop. If the dialog keeps recurring even after you open a new Visual Studio instance, the find the file PackagesLocalDirectory/bin/InstalledVersion.json in reference metadata folder and update the version to match the platform version in your environment. +When a configuration is created, saved, and the dialog closed, the necessary files are updated and this popup will stop. If the dialog keeps recurring even after you open a new Visual Studio instance, the find the file C:\Users\\AppData\Local\Microsoft\Dynamics365\\PackagesLocalDirectory\bin\InstalledVersion.json in reference metadata folder and update the version to match the platform version in your environment. ### Cross reference database validation keeps failing @@ -73,6 +72,7 @@ Ensure that your Microsoft Windows user has access to the specified SQL Server o ```powershell sqllocaldb stop MSSQLLocalDB sqllocaldb delete MSSQLLocalDB +sqllocaldb create MSSQLLocalDB -s ``` 5. Run the new SqlLocalDB.msi (2019) installer. It creates a new MSSQLLocalDB instance. @@ -93,11 +93,7 @@ This result happens when the the unified developer environment isn't ready to se ### What is the earliest version of source environment I can copy from? -Unified developer experience functionality is available for version 10.0.35 and later. Since during copy we also copy compute, if the source environment is earlier than 10.0.35 the target loses unified developer experience functionality. - -### I provisioned an environment from UI, but am unable to run unified developer experience operations - -The UI doesn't provision online environments. Only sandbox and production environments are provisioned via the UI, and unified developer experience operations aren't supported on these environments. Provision OnlineDev environments via the command line, and then run unified developer experience operations. +Unified developer experience functionality is generally available for version 10.0.39 and later. Since during copy we also copy compute, if the source environment is earlier than the target one may lose some unified developer experience features that were made available only in the more recent version. ### Is package deployment of the unit test code required for executing tests in the cloud runtime? @@ -109,7 +105,11 @@ Application Foundation and Test Essentials are required for unit test execution. ### How can I set up a pipeline that automates creation and application of a deployable package to a new environment? -Use the latest version of the Azure DevOps extension from the marketplace. It's now capable of package creation, ISV license addition, and application of the package. Refer to [Dynamics 365 Finance and Operations Tools](https://marketplace.visualstudio.com/items?itemName=Dyn365FinOps.dynamics365-finops-tools). +Use the latest version of the Azure DevOps extension from the marketplace. It's capable of package creation, ISV license addition, and application of the package. Refer to [Dynamics 365 Finance and Operations Tools](https://marketplace.visualstudio.com/items?itemName=Dyn365FinOps.dynamics365-finops-tools). + +### How can I deploy packages received from ISVs to my Unified Developer Environment? + +Place the ISV modules in a common folder and add this common parent folder of all ISV modules to the existing list of reference metadata folders in the active configuration you intend to use. Refer [Install and configure development tools](finance-operations-install-config-tools.md) ### How do I include a license and directly deploy from Visual Studio? @@ -129,7 +129,7 @@ Use **Detach All** to end debugging in place of **Stop Debugging**. ### I applied a package, but it failed. How can I do further debugging to determine the failure? -A link to download operation logs is available in the Visual Studio output pane. It's downloaded if there were failures, or if you enable the setting in **Tools> Options> Power Platform Tools**. +The package deployment could fail in various stages including DB sync, for various reasons including developer bugs. A link to download operation logs is available in the Visual Studio output pane. It's downloaded if there were failures, or if you enable the setting in **Tools> Options> Power Platform Tools**. You can also download the logs from your Dataverse organization: @@ -138,9 +138,9 @@ You can also download the logs from your Dataverse organization: - Select the app and then from left pane, select **Operation History** - Open the respective record by selecting the **Operation Name** and download the operation logs (`operationlogs.zip` file) -### How can I find out what packages are applied to my environment? +### How can I find the history of packages applied, DB sync, and other updates to my environment? -You can check the package applied to your Finance and Operations environment with the following steps: +You can check the packages applied and other updates to your Finance and Operations environment with the following steps: - Login to the Dataverse organization - Find **Finance and Operation Package Manager App** on the main page @@ -149,7 +149,9 @@ You can check the package applied to your Finance and Operations environment wit ### My operation failed, and wasn't able to find sufficient information in the logs. What information do I provide to Microsoft Support? -The correlation ID, client machine name, and timestamp are required for Microsoft to investigate. The correlation ID is in the Visual Studio output pane. Additionally, a log file named VisualStudioD365Extension*.log is generated at a path similar to C:\Users\AppData\Roaming\Microsoft Corporation\Microsoft® Visual Studio®\16.11.32802.440\VisualStudioD365Extension-2022-08-12.log. +The correlation ID, client machine name, and timestamp are required for Microsoft to investigate. The correlation ID is in the Visual Studio output pane. +The logs are also written to Microsoft.PowerPlatformVSExtension*.log files in C:\Users\\AppData\Local\Microsoft\Dynamics365\Logs. +Additionally, a log file named VisualStudioD365Extension*.log is generated at a path similar to C:\Users\AppData\Roaming\Microsoft Corporation\Microsoft® Visual Studio®\\VisualStudioD365Extension-*.log. ### How do I monitor and diagnose deployed code running in the unified environment? From b82847df484f5a72bede061befbd8cd9301ffa31 Mon Sep 17 00:00:00 2001 From: Pankaj-Thakur <20115956+Pankaj-Thakur@users.noreply.github.com> Date: Thu, 6 Jun 2024 16:11:06 -0700 Subject: [PATCH 50/63] Update finance-operations-install-config-tools.md from https://github.com/Pankaj-Thakur/power-platform/blob/pathaku0604 --- ...finance-operations-install-config-tools.md | 53 ++++++++++--------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/power-platform/developer/unified-experience/finance-operations-install-config-tools.md b/power-platform/developer/unified-experience/finance-operations-install-config-tools.md index 510eb8bdb..78d1277b0 100644 --- a/power-platform/developer/unified-experience/finance-operations-install-config-tools.md +++ b/power-platform/developer/unified-experience/finance-operations-install-config-tools.md @@ -1,8 +1,8 @@ --- -title: "Install and configure development tools" +title: "Install and configure development tools (preview)" description: Set up required finance and operations app development tools on your local computer. author: pvillads -ms.date: 06/06/2024 +ms.date: 05/30/2024 ms.topic: how-to ms.reviewer: pehecke ms.author: pathaku @@ -15,14 +15,21 @@ contributors: This article describes how to install and configure required Visual Studio finance and operations tools into your local development environment. The instructions in each section should be followed in the order presented in this article. + > [!IMPORTANT] -> As a prerequisite, you need access to a [provisioned developer-focused sandbox environment](../../admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md). -> -> The user account you'll be using for development in the sandbox environment must be assigned the System Administrator role. -> The development machine should have at least 16 GB of free space on the local system drive to download the extension and metadata. -> The development machine running Microsoft Windows 10 or 11 must have Visual Studio 2022 installed with at least the .NET desktop development workload and the Modeling SDK. -> This SDK can be selected under individual components in the Visual Studio installer. Refer to [required Visual Studio components](/dynamics365/fin-ops-core/dev-itpro/dev-tools/developer-tools-vs2017#required-visual-studio-components). -> Microsoft SQL Server Express LocalDB is installed by default with Visual Studio 2022, but you should [validate that you can connect to it with windows authentication](/sql/database-engine/configure-windows/sql-server-express-localdb?view=sql-server-ver16#start-localdb-and-connect-to-localdb). +> You can learn more by watching presentation and demos done for the Dynamics 365 FastTrack Tech Talk series +> +>[Unified Development Experience for Finance and Operations | Dynamics 365 FastTrack Tech Talk](https://www.youtube.com/watch?v=OuEZ1rXkpYY) + + +## Prerequisites + +- As a prerequisite, you need access to a [provisioned developer-focused sandbox environment](../../admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md). +- The user account you'll be using for development in the sandbox environment must be assigned the System Administrator role. +- The development machine should have at least 16 GB of free space on the local system drive to download the extension and metadata. +- The development machine running Microsoft Windows 10 or 11 must have Visual Studio 2022 installed with at least the .NET desktop development workload, the Modeling SDK and few other components. +- This SDK and other components can be selected and installed from the individual components pane in the Visual Studio installer. Refer to [required Visual Studio components](/dynamics365/fin-ops-core/dev-itpro/dev-tools/developer-tools-vs2017#required-visual-studio-components). +- Microsoft SQL Server Express LocalDB is installed by default with Visual Studio 2022, and you should [validate that you can connect to it with windows authentication](/sql/database-engine/configure-windows/sql-server-express-localdb#start-localdb-and-connect-to-localdb). ## Install the Power Platform extension for Visual Studio @@ -39,7 +46,7 @@ After installing the Power Platform Tools extension for Visual Studio, follow th - **Download Dynamics 365 FinOps assets** always downloads. 1. Select the desired options in the dialog and select **Login**. - + If you need to use another account or a different online environment, don't choose to use the signed-in user. Enter the credentials for your developer user account with access to the online environment. 1. Select an available solution in the dialog, and then choose **Done**. @@ -48,7 +55,7 @@ After installing the Power Platform Tools extension for Visual Studio, follow th > [!NOTE] > If you have only one online development environment, the organization list dialog may not be shown as you would automatically connect to the environment. > :::image type="content" source="../media/unified-experience/UnoVSConnect.png" alt-text="Menu for connecting to unified environment from Visual Studio."::: - > + > > :::image type="content" source="../media/unified-experience/UnoLogin.png" alt-text="Login dialog when connecting to unified environment from Visual Studio with Show Advanced selected."::: > > If your account requires multi factor authentication, uncheck all checkboxes on login screen. @@ -58,12 +65,12 @@ After installing the Power Platform Tools extension for Visual Studio, follow th > :::image type="content" source="../media/unified-experience/UnoOption2.png" alt-text="Visual Studio> Tools> Options> Power Platform Tools to skip Discovery"::: > > :::image type="content" source="../media/unified-experience/UnoLogin2.png" alt-text="Login dialog when connecting to unified environment from Visual Studio."::: - > + > > :::image type="content" source="../media/unified-experience/UnoEnvironmentUri.png" alt-text="Dialog to obtain the Dataverse uri to the unified development environment."::: ## Download and install the finance and operations extension and metadata -After installing the Power Platform Tools extension and connecting to the online Dataverse sandbox environment, you'll be presented with a dialog to download the finance and operations Visual Studio extension and metadata. +After installing the Power Platform Tools extension and connecting to the unified developer environment, you'll be presented with a dialog to download the finance and operations Visual Studio extension and metadata. :::image type="content" source="../media/devexp-fno-download.png" alt-text="Extension and metadata download dialog."::: @@ -106,12 +113,10 @@ Unpack the `PackagesLocalDirectory.zip` file as `PackagesLocalDirectory`. We rec > [!NOTE] > This is only required when the Visual Studio output pane indicates it is. -Using Windows File Explorer, from the folder specified below, open the `Microsoft.Dynamics.FinOps.ToolsVS2022.vsix` file to install the extension. -On first start of Visual Studio after updating/installing the Microsoft.Dynamics.FinOps.ToolsVS2022 VS extension, you will be prompted for elevated permissions for the extension to setup build targets, URLProtocoloHandler, etc. +Using Windows File Explorer, from the folder `C:\Users\\AppData\Local\Microsoft\Dynamics365\`, open the `Microsoft.Dynamics.FinOps.ToolsVS2022.vsix` file to install the extension. +On first start of Visual Studio after updating/installing the Microsoft.Dynamics.FinOps.ToolsVS2022 VS extension, you will be prompted for elevated permissions for the extension to register the URLProtocoloHandler, setup build targets, to extract compiler files, etc. -`C:\Users\\AppData\Local\Microsoft\Dynamics365\` - -### Configure the finance and operations extension +### Configure the finance and operations extension > [!NOTE] > This is not required when auto setup is enabled. @@ -121,7 +126,7 @@ To configure the extension, follow these instructions. 1. Start Visual Studio, and then select **Continue without code** from the dialog. 1. Navigate to **Extensions** > **Dynamics 365** > **Configure Metadata** for the first time. - + :::image type="content" source="../media/unified-experience/D365FinOpsConfigureMetadataMenu.png" alt-text="Configure Metadata menu"::: 1. On the configuration form, select **New** and then create a new configuration. Refer to the field descriptions provided in the [Configuration form field descriptions](#configuration-form-field-descriptions) table that follows this procedure. @@ -130,7 +135,7 @@ To configure the extension, follow these instructions. 1. Select **Save**. 2. You can similary edit a configuration. A common field to update is the folder for your own custom metadata. -3. You might also want to move your cross reference database from SQL server local db to SQL server and update the configuration +3. You might also want to move your cross reference database from SQL server local db to SQL server and update the configuration 4. You can delete stale configurations. 5. Note that only one configuration can be current or active at any given time. @@ -143,8 +148,8 @@ To configure the extension, follow these instructions. |Cross reference database server| Set to `(localdb)\.` if you're using LocalDB, or `localhost` if you're using Microsoft SQL Server.| |Cross reference database name| The name for the cross reference database. The Visual Studio extension creates one if it doesn't exist.| |Application version to restore cross reference database from| Select this. It's populated from the assets downloaded when you connected to the unified developer environment.| -|Folder for your own custom metadata| Folder where your own code is (or will be).| -|Folders for reference metadata| Should contain at least the path where you have the extracted the PackagesLocalDirectory folder mentioned in [Extract system metadata](#extract-system-metadata).| +|Folder for your own custom metadata| Folder where your own X++ modules are (or will be).| +|Folders for reference metadata| Should contain at least the path where you have the extracted the PackagesLocalDirectory folder mentioned in [Extract system metadata](#extract-system-metadata). Also where you would add folders containing other reference modules; for example those received from ISVs.| #### Troubleshooting configuration @@ -162,9 +167,9 @@ More information: [SQL Server Express LocalDB](/sql/database-engine/configure-wi > [!NOTE] > If the cross reference database does not already exist, the tool will restore the database from the backup downloaded to C:\Users\\``\AppData\Local\Microsoft\Dynamics365\\``. You'll see notifications in the Visual Studio **Output** pane. If you need to restore it again by yourself you can do so after downloading with auto setup disabled. For instructions to do a database restore refer to [Restore to SQL Server](/sql/samples/adventureworks-install-configure?tabs=ssms#restore-to-sql-server). -#### Completeing configuration +#### Completing configuration -After the configuration is saved, you might get a prompt for elevation as administrator to register the protocol handler and to extract compiler files. Go ahead and accept these prompts. +After the configuration is created after a fresh installation of the extension, you might get a prompt for elevation as administrator to register the protocol handler and to extract compiler files. Go ahead and accept these prompts. Once the configuration completes, navigate to **View** > **Application Explorer** . You should see the **Application Explorer** window open. You might have to restart Visual Studio first. From 0d1a3d210e7e14a7d6fa0f1e67431e5d5dc5b82a Mon Sep 17 00:00:00 2001 From: Pankaj-Thakur <20115956+Pankaj-Thakur@users.noreply.github.com> Date: Thu, 6 Jun 2024 16:11:38 -0700 Subject: [PATCH 51/63] Update finance-operations-pipeline-test.md from https://github.com/Pankaj-Thakur/power-platform/blob/pathaku0604/ --- .../finance-operations-pipeline-test.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/power-platform/developer/unified-experience/finance-operations-pipeline-test.md b/power-platform/developer/unified-experience/finance-operations-pipeline-test.md index cadfaa232..a5702425a 100644 --- a/power-platform/developer/unified-experience/finance-operations-pipeline-test.md +++ b/power-platform/developer/unified-experience/finance-operations-pipeline-test.md @@ -2,7 +2,7 @@ title: "Execute unit tests in Azure Pipelines" description: Learn how to set up a unit test for execution using Azure Pipelines. author: pvillads -ms.date: 06/06/2024 +ms.date: 05/10/2024 ms.topic: how-to ms.reviewer: pehecke ms.author: pvillads @@ -11,6 +11,8 @@ ms.subservice: developer # Execute unit tests in Azure Pipelines +[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] + An Azure Pipeline build task is available that lets users execute unit tests on connected cloud runtime environments using a continuous integration/continuous delivery (CI/CD) pipeline. The "Execute Unit Tests in Unified Environment" task is included in the [Dynamics 365 Finance and Operations Tools](https://marketplace.visualstudio.com/items?itemName=Dyn365FinOps.dynamics365-finops-tools) extension. More information: [Continuous integration and deployment](finance-operations-pipelines.md), [Build automation that uses Microsoft-hosted agents and Azure Pipelines](/dynamics365/fin-ops-core/dev-itpro/dev-tools/hosted-build-automation) @@ -39,7 +41,6 @@ The output logs of the task contains information of each test executed and its o ### Creating the unit test task > [!IMPORTANT] -> > - A new version (1.*) of the task has been released. See [Update: Version 1](#update-version-1) for more information. In this next image is an example unit test being defined. A description of each form field follows. @@ -60,7 +61,7 @@ In this next image is an example unit test being defined. A description of each A new version (1.*) of the **Execute Unit Tests in Unified Environments** task is available. This version replaces the **Service Connection** authentication field. Now you can use multiple authentication mechanisms, like username/password and appId/client Secret to execute the test requests. -You can use the existing **Power Platform Set Connection Variables** task to generate the connection string in the same pipeline before using the unit test execution task. [Learn more about the details for this task](../../alm/devops-build-tool-tasks.md#power-platform-set-connection-variables) and [about connection types](../../alm/devops-build-tools.md#connection-to-environments). You can retrieve the connection string and use it in subsequent tasks by creating a reference name in the **Output Variables** section for classic pipelines. +You can use the existing **Power Platform Set Connection Variables** task to generate the connection string in the same pipeline before using the unit test execution task. [Learn more about the details for this task](../../alm/devops-build-tool-tasks.md#power-platform-set-connection-variables) and [about connection types](../../alm/devops-build-tools.md#connection-to-environments). You can retrieve the connection string and use it in subsequent tasks by creating a reference name in the **Output Variables** section for classic pipelines. The following image shows how to use the task to generate an output variable named `op` that is referenced in the subsequent unit test execution task: @@ -84,6 +85,7 @@ The following screenshot shows the same reference name used in a unit test task: :::image type="content" source="..\media\unified-experience\devexp-unitTest-task-1.png" alt-text="Version 1 of Unit test task."::: + ### See also [Unit testing](finance-operations-testing.md) From 23eed75307815a06c471acf85ec6c7161a733b22 Mon Sep 17 00:00:00 2001 From: Pankaj-Thakur <20115956+Pankaj-Thakur@users.noreply.github.com> Date: Thu, 6 Jun 2024 16:13:10 -0700 Subject: [PATCH 52/63] Update finance-operations-pipelines.md from https://github.com/Pankaj-Thakur/power-platform/blob/pathaku0604 --- .../unified-experience/finance-operations-pipelines.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/power-platform/developer/unified-experience/finance-operations-pipelines.md b/power-platform/developer/unified-experience/finance-operations-pipelines.md index 541b963c4..012f9bf71 100644 --- a/power-platform/developer/unified-experience/finance-operations-pipelines.md +++ b/power-platform/developer/unified-experience/finance-operations-pipelines.md @@ -2,7 +2,7 @@ title: "Continuous integration and deployment" description: Learn how to set up continuous integration and deployment using Azure Pipelines. author: pvillads -ms.date: 06/06/2024 +ms.date: 08/31/2023 ms.topic: how-to ms.reviewer: pehecke ms.author: pvillads @@ -11,6 +11,8 @@ ms.subservice: developer # Continuous integration and deployment +[!INCLUDE [cc-beta-prerelease-disclaimer](../../includes/cc-beta-prerelease-disclaimer.md)] + This article explains how to implement continuous integration and deployment (CI/CD) of Power Platform unified developer experience assets using Azure Pipelines. Specifically, how to: - Get the latest [Dynamics 365 Finance and Operations Tools](https://marketplace.visualstudio.com/items?itemName=Dyn365FinOps.dynamics365-finops-tools) and [Power Platform Build Tools](../../alm/devops-build-tools.md#get-microsoft-power-platform-build-tools) @@ -20,7 +22,7 @@ This article explains how to implement continuous integration and deployment (CI ## Install or update the latest build tools 1. Sign into the Power Platform admin center and select the environment you want to work in. In the **Organization Settings > Extensions** menu, locate and install the “Dynamics 365 Finance and Operations Tools” shared extension. -1. Add a **Create Deployable Package** task in your build pipeline, and ensure it contains task version 1. Ensure **Add Licenses to Deployable Package** has task version 1. If you have tasks with same name, then select "View Yaml" for the task to ensure it’s a preview task. +1. Add a **Create Deployable Package** task in your build pipeline, and ensure it contains task version 1. Ensure **Add Licenses to Deployable Package** has task version 1. 1. Locate and install the Power Platform Build Tools extension from **Organization Settings > Extensions > Browse Marketplace**. 1. Download the X++ NuGet packages with the required version and add them to your artifact feed. For details on this step refer to [Build automation that uses Microsoft-hosted agents and Azure Pipelines - Finance & Operations](/dynamics365/fin-ops-core/dev-itpro/dev-tools/hosted-build-automation). @@ -39,7 +41,7 @@ Optionally, you can choose to generate a separate Lifecycle Services format pack :::image type="content" source="../media/unified-experience/pipelines-add-licenses.png" alt-text="Image of Add Licenses to Deployable Package in Azure DevOps."::: -1. Once the pipeline is built, locate the published artifacts under **Related** in the **Summary** tab. +1. Once the pipeline is built, locate the published artifacts under **Related** in the **Summary** tab. :::image type="content" source="../media/unified-experience/pipelines-locate-artifacts.png" alt-text="Image of solution artifacts in Azure DevOps."::: From 6ecdc61feaa96cb3bbad6dde69aaf8fc9a85b1b9 Mon Sep 17 00:00:00 2001 From: Pankaj-Thakur <20115956+Pankaj-Thakur@users.noreply.github.com> Date: Thu, 6 Jun 2024 16:13:48 -0700 Subject: [PATCH 53/63] Update finance-operations-product-db-access.md from https://github.com/Pankaj-Thakur/power-platform/blob/pathaku0604 --- .../finance-operations-product-db-access.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/power-platform/developer/unified-experience/finance-operations-product-db-access.md b/power-platform/developer/unified-experience/finance-operations-product-db-access.md index 7e239dbd3..7e77a5c3b 100644 --- a/power-platform/developer/unified-experience/finance-operations-product-db-access.md +++ b/power-platform/developer/unified-experience/finance-operations-product-db-access.md @@ -2,7 +2,7 @@ title: "Request credentials to access D365 product database" description: "Learn how to request credentials to access D365 product database just in time." author: pathaku -ms.date: 06/06/2024 +ms.date: 05/30/2024 ms.topic: how-to ms.reviewer: phecke ms.author: pathaku @@ -11,8 +11,8 @@ ms.subservice: developer # Request credentials to access D365 finance and operations product database -A developer at times benefits from read/write access to the product database. We enable you to request credentials just in time, right from within Visual Studio. -As explained in [Write, deploy, and debug X++ code](finance-operations-debug.md), the business data is hosted in the cloud. +A developer at times benefits from read/write access to the product database. We enable you to request credentials just in time, right from within Visual Studio. +As explained in [Write, deploy, and debug X++ code](finance-operations-debug.md), the business data is hosted in the cloud. This feature applies only to unified development environments. The developer needs to have the system administrator (sysAdmin) in the environment. To request credentials for database access, follow these steps: @@ -23,7 +23,7 @@ To request credentials for database access, follow these steps: 1. Enter the reason for requesting access credentials to the database. 1. The credentials are allowed for use only from clients using allowed IP v4 addresses so connections attempts from machines other than in the specified IPv4 range are denied by the Azure SQL firewall. 1. The dialog is prepopulated by default with only the current developer machine's public IP v4 address. -1. You may need to update this IP V4 address range in case you want to use the credentials from other machines or your developer machine has ip address allocated to it very dynamically. +1. You may need to update this IP V4 address range in case you want to use the credentials from other machines or your developer machine has ip address allocated to it very dynamically. :::image type="content" source="../media/unified-experience/UDE_SQLJitWindowRequest.png" alt-text="Visual Studio> Tools> SQL Credentials for Dynamics 365 FinOps Request window"::: 1. The dialog indicates that the access request is being processed. :::image type="content" source="../media/unified-experience/UDE_SQLJitProgress.png" alt-text="Visual Studio> Tools> SQL Credentials for Dynamics 365 FinOps Progress"::: @@ -35,10 +35,17 @@ To request credentials for database access, follow these steps: 1. Multiple users can have an active credential each, in a given environment. 1. A user can have a credential each in multiple environments. + +> [!IMPORTANT] +> You can learn more by watching presentation and demos done for the Dynamics 365 FastTrack Tech Talk series +> +>[Unified Development Experience for Finance and Operations | Dynamics 365 FastTrack Tech Talk](https://www.youtube.com/watch?v=OuEZ1rXkpYY) + + ### See also [Write, deploy, and debug X++ code](finance-operations-debug.md) -[Unit testing in the unified developer experience](finance-operations-testing.md) +[Unit testing in the unified developer experience](finance-operations-testing.md) [Create and manage environments in the Power Platform admin center](/power-platform/admin/create-environment) [Manage Dynamics 365 apps](../../admin/manage-apps.md) [Use SQL to query data in Dataverse](/power-apps/developer/data-platform/dataverse-sql-query) From 10f10c5ac5ab54a4ff7b79c4cc84ea02b282cfd0 Mon Sep 17 00:00:00 2001 From: Pankaj-Thakur <20115956+Pankaj-Thakur@users.noreply.github.com> Date: Thu, 6 Jun 2024 16:14:21 -0700 Subject: [PATCH 54/63] Update finance-operations-testing.md from https://github.com/Pankaj-Thakur/power-platform/blob/pathaku0604 --- .../unified-experience/finance-operations-testing.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/power-platform/developer/unified-experience/finance-operations-testing.md b/power-platform/developer/unified-experience/finance-operations-testing.md index 7354fcab9..1a2b8377d 100644 --- a/power-platform/developer/unified-experience/finance-operations-testing.md +++ b/power-platform/developer/unified-experience/finance-operations-testing.md @@ -2,7 +2,7 @@ title: "Unit testing" description: Shows you how to create and run test cases. author: pvillads -ms.date: 06/06/2024 +ms.date: 08/28/2023 ms.topic: how-to ms.subservice: developer ms.reviewer: pehecke @@ -32,7 +32,7 @@ You can create new test cases to test the functionality in an application. 1. On the **File** menu, select **Open** > **Project/Solution**, and then select **FleetManagement** **solution** from the desktop folder. If the solution file isn't on your computer, the steps to create it are listed in [End-to-end scenario for the Fleet Management sample application](/dynamics365/fin-ops-core/dev-itpro/dev-tools/fleet-management-sample). 1. In **Solution Explorer**, right-click the **Fleet Management** solution, select **Add**, and then select **New Project**. 1. Choose **finance and operations** as the project type to create. -1. Name this new project *FleetManagementUnitTestSample*, specify the FleetManagement folder on the desktop (C:\Users\Public\Desktop\FleetManagement) as the location, and then select **OK**. +1. Name this new project *FleetManagementUnitTestSample*, specify the FleetManagement folder on the desktop (C:\Users\Public\Desktop\FleetManagement) as the location, and then select **OK**. 1. In **Solution Explorer**, right-click the new project, and then select **Properties**. 1. Set the **Model** property to **FleetManagementUnitTests**, and then select **OK**. 1. Now add a test class containing the tests against the fleet management code. Right-click the FleetManagementUnitTestSample project, select **Add**, and then select **New Item**. From c8004d28209e00640c0a4b46bb60135ef48ee991 Mon Sep 17 00:00:00 2001 From: Pankaj-Thakur <20115956+Pankaj-Thakur@users.noreply.github.com> Date: Thu, 6 Jun 2024 16:14:54 -0700 Subject: [PATCH 55/63] Update finance-operations-trace-parser.md from https://github.com/Pankaj-Thakur/power-platform/blob/pathaku0604 --- .../unified-experience/finance-operations-trace-parser.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/power-platform/developer/unified-experience/finance-operations-trace-parser.md b/power-platform/developer/unified-experience/finance-operations-trace-parser.md index 5d1a6d5ba..178561f0f 100644 --- a/power-platform/developer/unified-experience/finance-operations-trace-parser.md +++ b/power-platform/developer/unified-experience/finance-operations-trace-parser.md @@ -2,7 +2,7 @@ title: Diagnose issues and analyze performance using a trace parser with the unified developer experience. description: Learn how you can use a trace parser to consume traces and analyze performance in your deployment from your unified developer experience. author: pvillads -ms.date: 06/06/2024 +ms.date: 05/29/2024 ms.topic: article ms.subservice: developer ms.reviewer: pehecke From 2f8973f01c1f4525d02dbbe4e3983da09bb04c94 Mon Sep 17 00:00:00 2001 From: Pankaj-Thakur <20115956+Pankaj-Thakur@users.noreply.github.com> Date: Thu, 6 Jun 2024 16:17:37 -0700 Subject: [PATCH 56/63] Update TOC.yml with https://github.com/MicrosoftDocs/power-platform/pull/2638/files --- power-platform/developer/TOC.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/power-platform/developer/TOC.yml b/power-platform/developer/TOC.yml index 7b1543a55..4607e6cfb 100644 --- a/power-platform/developer/TOC.yml +++ b/power-platform/developer/TOC.yml @@ -35,7 +35,7 @@ href: appsource\appendix-add-license-information-to-your-solution.md - name: Use Power Platform CLI with the catalog (preview) href: submit-catalog-items.md - - name: Unified developer experience for finance and operations apps (preview) + - name: Unified developer experience for finance and operations apps items: - name: Overview href: unified-experience\finance-operations-dev-overview.md From b9f1092ab5f11a56c8c196e3cbf83f16de9c20e0 Mon Sep 17 00:00:00 2001 From: Pankaj-Thakur <20115956+Pankaj-Thakur@users.noreply.github.com> Date: Thu, 6 Jun 2024 16:21:04 -0700 Subject: [PATCH 57/63] Update finance-operations-dev-overview.md with https://github.com/MicrosoftDocs/power-platform-pr/pull/8654/ --- .../unified-experience/finance-operations-dev-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/power-platform/developer/unified-experience/finance-operations-dev-overview.md b/power-platform/developer/unified-experience/finance-operations-dev-overview.md index 8d0c18623..74bb1dec6 100644 --- a/power-platform/developer/unified-experience/finance-operations-dev-overview.md +++ b/power-platform/developer/unified-experience/finance-operations-dev-overview.md @@ -15,7 +15,7 @@ The unified developer experience consolidates the disparate developer tools and ## Typical scenario -Consider a typical scenario where a developer would create a simple app for capturing orders in Microsoft Power Apps and persisting the gathered data in Dataverse. By means of the data synchronization engines mentioned below, the data would be available for finance and operations apps to do the heavy lifting of determining whether the requested items are available and pricing, etc. The results would be available near real-time in Power Apps. +Consider a typical scenario where a developer would create an app for capturing orders in Microsoft Power Apps and persisting the gathered data in Dataverse. By means of the data synchronization engines mentioned below, the data would be available for finance and operations apps to do the heavy lifting of determining whether the requested items are available and pricing and more. The results would be available near real-time in Power Apps. ## Finance and operations app development From 1c81460e4a36f88584cc29b495252cb531270902 Mon Sep 17 00:00:00 2001 From: Pankaj-Thakur <20115956+Pankaj-Thakur@users.noreply.github.com> Date: Thu, 6 Jun 2024 16:32:10 -0700 Subject: [PATCH 58/63] acrolinx updates to finance-operations-dev-overview.md for https://microsoft-ce-csi.acrolinx.cloud/api/v1/checking/scorecards/75d662fe-7c45-476a-8f54-e330e0347afc --- .../unified-experience/finance-operations-dev-overview.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/power-platform/developer/unified-experience/finance-operations-dev-overview.md b/power-platform/developer/unified-experience/finance-operations-dev-overview.md index 74bb1dec6..fb8006ce4 100644 --- a/power-platform/developer/unified-experience/finance-operations-dev-overview.md +++ b/power-platform/developer/unified-experience/finance-operations-dev-overview.md @@ -11,11 +11,11 @@ ms.subservice: developer # Unified developer experience for finance and operations apps -The unified developer experience consolidates the disparate developer tools and environments across finance and operations apps and Power Platform to reduce friction and simplify working across these apps. Finance and operations apps provide a rich ecosystem for professional developers by using a metadata and code-based development environment for mission critical scenarios. Power Platform brings the ability to author solutions quickly and seamlessly using low-code development paradigms and leverages Microsoft Dataverse as the relational data store. Power Platform also adds the ability to build and deploy your solutions using a continuous integration and deployment (CI/CD) pipeline. +The unified developer experience consolidates the disparate developer tools and environments across finance and operations apps and Power Platform. This reduces friction and simplifies working across these apps. Finance and operations apps provide a rich ecosystem for professional developers by using a metadata and code-based development environment for mission critical scenarios. Power Platform brings the ability to author solutions quickly and seamlessly using low-code development paradigms and uses Microsoft Dataverse as the relational data store. Power Platform also adds the ability to build and deploy your solutions using a continuous integration and deployment (CI/CD) pipeline. ## Typical scenario -Consider a typical scenario where a developer would create an app for capturing orders in Microsoft Power Apps and persisting the gathered data in Dataverse. By means of the data synchronization engines mentioned below, the data would be available for finance and operations apps to do the heavy lifting of determining whether the requested items are available and pricing and more. The results would be available near real-time in Power Apps. +Consider a typical scenario where a developer would create an app for capturing orders in Microsoft Power Apps and persisting the gathered data in Dataverse. With the data synchronization engines mentioned below, the data would be available for finance and operations apps to do the heavy lifting of determining whether the requested items are available and pricing and more. The results would be available near real-time in Power Apps. ## Finance and operations app development @@ -25,7 +25,7 @@ More information: [Install and configure development tools](finance-operations-i ## Power Platform -Power Platform is supported by a rich development ecosystem. There is a rich set of tools in Power Platform that you can leverage for development. In particular, the Dataverse relational database management system is utilized by the unified developer experience. Many unified solutions work by synchronizing data between tables in the finance and operations app database and tables (entities) in Dataverse. There are two technologies for that: dual-write, and virtual entities. +Power Platform is supported by a rich development ecosystem. There is a rich set of tools in Power Platform that you can use for development. In particular, the Dataverse relational database management system is utilized by the unified developer experience. Many unified solutions work by synchronizing data between tables in the finance and operations app database and tables (entities) in Dataverse. There are two technologies for that: dual-write, and virtual entities. More information: [Microsoft Power Platform developer documentation](../index.yml) From 41eb93f2de2aceea2363380bf08279895a005da7 Mon Sep 17 00:00:00 2001 From: Pankaj-Thakur <20115956+Pankaj-Thakur@users.noreply.github.com> Date: Thu, 6 Jun 2024 16:35:10 -0700 Subject: [PATCH 59/63] separate the list finance-operations-debug.md --- .../developer/unified-experience/finance-operations-debug.md | 1 + 1 file changed, 1 insertion(+) diff --git a/power-platform/developer/unified-experience/finance-operations-debug.md b/power-platform/developer/unified-experience/finance-operations-debug.md index cc4735541..32fe1e5a9 100644 --- a/power-platform/developer/unified-experience/finance-operations-debug.md +++ b/power-platform/developer/unified-experience/finance-operations-debug.md @@ -152,6 +152,7 @@ We started with using Visual Studio to create a simple runnable class. After the ### See also [Unified Development Experience for Finance and Operations | Dynamics 365 FastTrack Tech Talk](https://www.youtube.com/watch?v=OuEZ1rXkpYY) + [Unit testing in the unified developer experience](finance-operations-testing.md) [Create and manage environments in the Power Platform admin center](/power-platform/admin/create-environment) [Manage Dynamics 365 apps](../../admin/manage-apps.md) From 277ccb8358851bd7ae6eb81a3b10ea9f47fb3806 Mon Sep 17 00:00:00 2001 From: Peter Hecke Date: Thu, 6 Jun 2024 16:45:20 -0700 Subject: [PATCH 60/63] Fixed link --- .../unified-experience/finance-operations-dev-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/power-platform/developer/unified-experience/finance-operations-dev-overview.md b/power-platform/developer/unified-experience/finance-operations-dev-overview.md index 74bb1dec6..218ecf349 100644 --- a/power-platform/developer/unified-experience/finance-operations-dev-overview.md +++ b/power-platform/developer/unified-experience/finance-operations-dev-overview.md @@ -53,7 +53,7 @@ Set up Visual Studio on your local development computer. [Install and configure development tools](finance-operations-install-config-tools.md) [Write, deploy, and debug X++ code](finance-operations-debug.md) [Frequently asked questions](finance-operations-faq.md) -[Tutorial: Provision a new environment with an ERP-based template](../../admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md#tutorial-provision-a-new-environment-with-an-erp-based-template-preview) +[Tutorial: Provision a new environment with an ERP-based template](../../admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md) [Develop and customize home page](/dynamics365/fin-ops-core/dev-itpro/dev-tools/developer-home-page) (Dynamics 365 legacy information) [Unified admin experience for finance and operations apps](../../admin/unified-experience/finance-operations-apps-overview.md) From 7b8c49ffa1ca5df9d60bdb5c425ab5a879677028 Mon Sep 17 00:00:00 2001 From: Peter Hecke Date: Thu, 6 Jun 2024 16:48:13 -0700 Subject: [PATCH 61/63] Update article dates for freshness --- .../finance-operations-debug.md | 26 +++++++++---------- .../finance-operations-dev-overview.md | 2 +- .../finance-operations-faq.md | 10 +++---- ...finance-operations-install-config-tools.md | 20 +++++++------- .../finance-operations-pipeline-test.md | 6 ++--- .../finance-operations-pipelines.md | 4 +-- .../finance-operations-product-db-access.md | 14 +++++----- .../finance-operations-testing.md | 4 +-- .../finance-operations-trace-parser.md | 2 +- 9 files changed, 41 insertions(+), 47 deletions(-) diff --git a/power-platform/developer/unified-experience/finance-operations-debug.md b/power-platform/developer/unified-experience/finance-operations-debug.md index 32fe1e5a9..57bc970b6 100644 --- a/power-platform/developer/unified-experience/finance-operations-debug.md +++ b/power-platform/developer/unified-experience/finance-operations-debug.md @@ -2,7 +2,7 @@ title: "Write, deploy, and debug X++ code" description: "Learn how to write an X++ class, deploy it, and then debug it in the unified developer experience." author: pvillads -ms.date: 08/21/2023 +ms.date: 06/06/2024 ms.topic: how-to ms.reviewer: phecke ms.author: pathaku @@ -24,13 +24,11 @@ This article shows you how to: Let's begin by developing a runnable X++ class to use as an example. The class's only task is to log a message into the Infolog. The important thing here isn't what the runnable class does, rather it's how we compile, run, and debug it. If you want to learn about the X++ language, see the [programming reference](/dynamics365/fin-ops-core/dev-itpro/dev-ref/xpp-language-reference). - > [!IMPORTANT] > You can learn more by watching presentation and demos done for the Dynamics 365 FastTrack Tech Talk series -> +> >[Unified Development Experience for Finance and Operations | Dynamics 365 FastTrack Tech Talk](https://www.youtube.com/watch?v=OuEZ1rXkpYY) - ## Prerequisites You should have access to a unified developer environment, the Visual Studio tools extensions installed and configured on your developer machine and connected to the same environment. It's important to keep the metadata changes on your developer machine deployed to the connected environment . @@ -61,7 +59,7 @@ We start by creating a model in Visual Studio. Create a project and X++ class in Visual Studio by following these steps. 1. Create a project in Visual Studio that contains the runnable class. The name of the class isn't important here. For this exercise, keep the default name that is FinanceOperations3. -1. Add a runnable class to the project in **Solution Explorer** by right-clicking the project and choosing **Add** > **New item**. +1. Add a runnable class to the project in **Solution Explorer** by right-clicking the project and choosing **Add** > **New item**. 1. Select a **Runnable Class** in the **Code** menu under **Dynamics 365 items**, and call it "MyRunnableClass". Visual Studio opens a window with the template for a runnable class providing a static `main` method that is called as the runnable class runs. 1. Add the following X++ code to the `main` method. Since we're only providing a token implementation here, add a call to log a string message in the Infolog: @@ -89,16 +87,16 @@ At this point you're accessing the endpoint in the cloud, so unless you are alre > [!IMPORTANT] > There are different ways to deploy your changes to the unified development environment. -> -> 1. Deploy the full model via the **Dynamics 365** > **Deploy** > **Deploy models ...** dialog. You can choose to synchronize the database if so desired. > -> 2. As part of a full build, deploy the full model. This deployment is initiated via the **Dynamics 365** > **Build models** dialog if the option to **Deploy to connected online environment** is turned on. The tool will synchronize database or not based on the **synchronize database** setting on the same **Options** tab. +> 1. Deploy the full model via the **Dynamics 365** > **Deploy** > **Deploy models ...** dialog. You can choose to synchronize the database if so desired. +> +> 2. As part of a full build, deploy the full model. This deployment is initiated via the **Dynamics 365** > **Build models** dialog if the option to **Deploy to connected online environment** is turned on. The tool will synchronize database or not based on the **synchronize database** setting on the same **Options** tab. > -> 3. As part of an incremental build from Solution Explorer, setting **Deploy changes to online environment** to true will only deploy changes since the last successful deployment or those made as part of this build. It will honor the project settings for **Synchronize database**. +> 3. As part of an incremental build from Solution Explorer, setting **Deploy changes to online environment** to true will only deploy changes since the last successful deployment or those made as part of this build. It will honor the project settings for **Synchronize database**. > -> 4. Right-click a project and choose to **Deploy model for project ...**. This will only deploy changes since last successful deployment but will not synchronize the database for the module. +> 4. Right-click a project and choose to **Deploy model for project ...**. This will only deploy changes since last successful deployment but will not synchronize the database for the module. > -> 5. Synchronize the database for all models without deploying anything new via **Dynamics 365** > **Synchronize database...**. +> 5. Synchronize the database for all models without deploying anything new via **Dynamics 365** > **Synchronize database...**. You can follow the progress of the deployment by navigating to the "FinOps Cloud Runtime" drop down in the Visual Studio output window. Once that deployment is complete, you can see log information by following the link displayed in the output window. @@ -134,7 +132,7 @@ Now let's set a breakpoint in the form. 1. In that form, set a breakpoint in the `selectionChange` method in the ThemeChooser control. This code is triggered when the user selects a new color theme. 1. In the browser window, select one of the colored squares, let's say the red one. You'll hit the breakpoint. 1. Continue the execution by pressing F10 or F5. Another colored square is hit and the breakpoint is triggered again. -1. You can watch the locals, set new breakpoints and do various debugging tasks. +1. You can watch the locals, set new breakpoints and do various debugging tasks. > [!IMPORTANT] > If you want to attach the debugger to the running AOS process in the unified environment use **Dynamics 365** > **Launch debugger**. @@ -151,9 +149,9 @@ We started with using Visual Studio to create a simple runnable class. After the ### See also -[Unified Development Experience for Finance and Operations | Dynamics 365 FastTrack Tech Talk](https://www.youtube.com/watch?v=OuEZ1rXkpYY) +[Unified Development Experience for Finance and Operations | Dynamics 365 FastTrack Tech Talk](https://www.youtube.com/watch?v=OuEZ1rXkpYY) -[Unit testing in the unified developer experience](finance-operations-testing.md) +[Unit testing in the unified developer experience](finance-operations-testing.md) [Create and manage environments in the Power Platform admin center](/power-platform/admin/create-environment) [Manage Dynamics 365 apps](../../admin/manage-apps.md) diff --git a/power-platform/developer/unified-experience/finance-operations-dev-overview.md b/power-platform/developer/unified-experience/finance-operations-dev-overview.md index 9a9d76b04..b00b65627 100644 --- a/power-platform/developer/unified-experience/finance-operations-dev-overview.md +++ b/power-platform/developer/unified-experience/finance-operations-dev-overview.md @@ -2,7 +2,7 @@ title: "Unified developer experience for finance and operations apps" description: Learn about developing code for finance and operations apps using the new Power Platform unified developer experience. author: pvillads -ms.date: 08/22/2023 +ms.date: 06/06/2024 ms.topic: overview ms.reviewer: pehecke ms.author: pvillads diff --git a/power-platform/developer/unified-experience/finance-operations-faq.md b/power-platform/developer/unified-experience/finance-operations-faq.md index 790e50452..2e01d2278 100644 --- a/power-platform/developer/unified-experience/finance-operations-faq.md +++ b/power-platform/developer/unified-experience/finance-operations-faq.md @@ -2,7 +2,7 @@ title: "Frequently asked questions" description: FAQs for the Power Platform unified developer experience. author: pvillads -ms.date: 05/22/2024 +ms.date: 06/06/2024 ms.topic: faq ms.reviewer: pehecke ms.author: pvillads @@ -45,9 +45,9 @@ Ensure that the unified development environment you created is a unified develop When this option is missing from the menu, open the Infolog from the menu and retry. This is addressed in application version 10.0.39 and above. -### How do I re download the client assets +### How do I re download the client assets -In Visual Studio from the **Tools** menu, select **Download Dynamics 365 FinOps assets**. +In Visual Studio from the **Tools** menu, select **Download Dynamics 365 FinOps assets**. ### PackagesLocalDirectory extraction doesn't complete @@ -109,7 +109,7 @@ Use the latest version of the Azure DevOps extension from the marketplace. It's ### How can I deploy packages received from ISVs to my Unified Developer Environment? -Place the ISV modules in a common folder and add this common parent folder of all ISV modules to the existing list of reference metadata folders in the active configuration you intend to use. Refer [Install and configure development tools](finance-operations-install-config-tools.md) +Place the ISV modules in a common folder and add this common parent folder of all ISV modules to the existing list of reference metadata folders in the active configuration you intend to use. Refer [Install and configure development tools](finance-operations-install-config-tools.md) ### How do I include a license and directly deploy from Visual Studio? @@ -149,7 +149,7 @@ You can check the packages applied and other updates to your Finance and Operati ### My operation failed, and wasn't able to find sufficient information in the logs. What information do I provide to Microsoft Support? -The correlation ID, client machine name, and timestamp are required for Microsoft to investigate. The correlation ID is in the Visual Studio output pane. +The correlation ID, client machine name, and timestamp are required for Microsoft to investigate. The correlation ID is in the Visual Studio output pane. The logs are also written to Microsoft.PowerPlatformVSExtension*.log files in C:\Users\\AppData\Local\Microsoft\Dynamics365\Logs. Additionally, a log file named VisualStudioD365Extension*.log is generated at a path similar to C:\Users\AppData\Roaming\Microsoft Corporation\Microsoft® Visual Studio®\\VisualStudioD365Extension-*.log. diff --git a/power-platform/developer/unified-experience/finance-operations-install-config-tools.md b/power-platform/developer/unified-experience/finance-operations-install-config-tools.md index 78d1277b0..2f6f08602 100644 --- a/power-platform/developer/unified-experience/finance-operations-install-config-tools.md +++ b/power-platform/developer/unified-experience/finance-operations-install-config-tools.md @@ -2,7 +2,7 @@ title: "Install and configure development tools (preview)" description: Set up required finance and operations app development tools on your local computer. author: pvillads -ms.date: 05/30/2024 +ms.date: 06/06/2024 ms.topic: how-to ms.reviewer: pehecke ms.author: pathaku @@ -15,13 +15,11 @@ contributors: This article describes how to install and configure required Visual Studio finance and operations tools into your local development environment. The instructions in each section should be followed in the order presented in this article. - > [!IMPORTANT] > You can learn more by watching presentation and demos done for the Dynamics 365 FastTrack Tech Talk series -> +> >[Unified Development Experience for Finance and Operations | Dynamics 365 FastTrack Tech Talk](https://www.youtube.com/watch?v=OuEZ1rXkpYY) - ## Prerequisites - As a prerequisite, you need access to a [provisioned developer-focused sandbox environment](../../admin/unified-experience/tutorial-deploy-new-environment-with-ERP-template.md). @@ -46,7 +44,7 @@ After installing the Power Platform Tools extension for Visual Studio, follow th - **Download Dynamics 365 FinOps assets** always downloads. 1. Select the desired options in the dialog and select **Login**. - + If you need to use another account or a different online environment, don't choose to use the signed-in user. Enter the credentials for your developer user account with access to the online environment. 1. Select an available solution in the dialog, and then choose **Done**. @@ -55,7 +53,7 @@ After installing the Power Platform Tools extension for Visual Studio, follow th > [!NOTE] > If you have only one online development environment, the organization list dialog may not be shown as you would automatically connect to the environment. > :::image type="content" source="../media/unified-experience/UnoVSConnect.png" alt-text="Menu for connecting to unified environment from Visual Studio."::: - > + > > :::image type="content" source="../media/unified-experience/UnoLogin.png" alt-text="Login dialog when connecting to unified environment from Visual Studio with Show Advanced selected."::: > > If your account requires multi factor authentication, uncheck all checkboxes on login screen. @@ -65,7 +63,7 @@ After installing the Power Platform Tools extension for Visual Studio, follow th > :::image type="content" source="../media/unified-experience/UnoOption2.png" alt-text="Visual Studio> Tools> Options> Power Platform Tools to skip Discovery"::: > > :::image type="content" source="../media/unified-experience/UnoLogin2.png" alt-text="Login dialog when connecting to unified environment from Visual Studio."::: - > + > > :::image type="content" source="../media/unified-experience/UnoEnvironmentUri.png" alt-text="Dialog to obtain the Dataverse uri to the unified development environment."::: ## Download and install the finance and operations extension and metadata @@ -114,9 +112,9 @@ Unpack the `PackagesLocalDirectory.zip` file as `PackagesLocalDirectory`. We rec > This is only required when the Visual Studio output pane indicates it is. Using Windows File Explorer, from the folder `C:\Users\\AppData\Local\Microsoft\Dynamics365\`, open the `Microsoft.Dynamics.FinOps.ToolsVS2022.vsix` file to install the extension. -On first start of Visual Studio after updating/installing the Microsoft.Dynamics.FinOps.ToolsVS2022 VS extension, you will be prompted for elevated permissions for the extension to register the URLProtocoloHandler, setup build targets, to extract compiler files, etc. +On first start of Visual Studio after updating/installing the Microsoft.Dynamics.FinOps.ToolsVS2022 VS extension, you will be prompted for elevated permissions for the extension to register the URLProtocoloHandler, setup build targets, to extract compiler files, etc. -### Configure the finance and operations extension +### Configure the finance and operations extension > [!NOTE] > This is not required when auto setup is enabled. @@ -126,7 +124,7 @@ To configure the extension, follow these instructions. 1. Start Visual Studio, and then select **Continue without code** from the dialog. 1. Navigate to **Extensions** > **Dynamics 365** > **Configure Metadata** for the first time. - + :::image type="content" source="../media/unified-experience/D365FinOpsConfigureMetadataMenu.png" alt-text="Configure Metadata menu"::: 1. On the configuration form, select **New** and then create a new configuration. Refer to the field descriptions provided in the [Configuration form field descriptions](#configuration-form-field-descriptions) table that follows this procedure. @@ -135,7 +133,7 @@ To configure the extension, follow these instructions. 1. Select **Save**. 2. You can similary edit a configuration. A common field to update is the folder for your own custom metadata. -3. You might also want to move your cross reference database from SQL server local db to SQL server and update the configuration +3. You might also want to move your cross reference database from SQL server local db to SQL server and update the configuration 4. You can delete stale configurations. 5. Note that only one configuration can be current or active at any given time. diff --git a/power-platform/developer/unified-experience/finance-operations-pipeline-test.md b/power-platform/developer/unified-experience/finance-operations-pipeline-test.md index a5702425a..400548aa4 100644 --- a/power-platform/developer/unified-experience/finance-operations-pipeline-test.md +++ b/power-platform/developer/unified-experience/finance-operations-pipeline-test.md @@ -2,7 +2,7 @@ title: "Execute unit tests in Azure Pipelines" description: Learn how to set up a unit test for execution using Azure Pipelines. author: pvillads -ms.date: 05/10/2024 +ms.date: 06/06/2024 ms.topic: how-to ms.reviewer: pehecke ms.author: pvillads @@ -41,6 +41,7 @@ The output logs of the task contains information of each test executed and its o ### Creating the unit test task > [!IMPORTANT] +> > - A new version (1.*) of the task has been released. See [Update: Version 1](#update-version-1) for more information. In this next image is an example unit test being defined. A description of each form field follows. @@ -61,7 +62,7 @@ In this next image is an example unit test being defined. A description of each A new version (1.*) of the **Execute Unit Tests in Unified Environments** task is available. This version replaces the **Service Connection** authentication field. Now you can use multiple authentication mechanisms, like username/password and appId/client Secret to execute the test requests. -You can use the existing **Power Platform Set Connection Variables** task to generate the connection string in the same pipeline before using the unit test execution task. [Learn more about the details for this task](../../alm/devops-build-tool-tasks.md#power-platform-set-connection-variables) and [about connection types](../../alm/devops-build-tools.md#connection-to-environments). You can retrieve the connection string and use it in subsequent tasks by creating a reference name in the **Output Variables** section for classic pipelines. +You can use the existing **Power Platform Set Connection Variables** task to generate the connection string in the same pipeline before using the unit test execution task. [Learn more about the details for this task](../../alm/devops-build-tool-tasks.md#power-platform-set-connection-variables) and [about connection types](../../alm/devops-build-tools.md#connection-to-environments). You can retrieve the connection string and use it in subsequent tasks by creating a reference name in the **Output Variables** section for classic pipelines. The following image shows how to use the task to generate an output variable named `op` that is referenced in the subsequent unit test execution task: @@ -85,7 +86,6 @@ The following screenshot shows the same reference name used in a unit test task: :::image type="content" source="..\media\unified-experience\devexp-unitTest-task-1.png" alt-text="Version 1 of Unit test task."::: - ### See also [Unit testing](finance-operations-testing.md) diff --git a/power-platform/developer/unified-experience/finance-operations-pipelines.md b/power-platform/developer/unified-experience/finance-operations-pipelines.md index 012f9bf71..2662817fc 100644 --- a/power-platform/developer/unified-experience/finance-operations-pipelines.md +++ b/power-platform/developer/unified-experience/finance-operations-pipelines.md @@ -2,7 +2,7 @@ title: "Continuous integration and deployment" description: Learn how to set up continuous integration and deployment using Azure Pipelines. author: pvillads -ms.date: 08/31/2023 +ms.date: 06/06/2024 ms.topic: how-to ms.reviewer: pehecke ms.author: pvillads @@ -41,7 +41,7 @@ Optionally, you can choose to generate a separate Lifecycle Services format pack :::image type="content" source="../media/unified-experience/pipelines-add-licenses.png" alt-text="Image of Add Licenses to Deployable Package in Azure DevOps."::: -1. Once the pipeline is built, locate the published artifacts under **Related** in the **Summary** tab. +1. Once the pipeline is built, locate the published artifacts under **Related** in the **Summary** tab. :::image type="content" source="../media/unified-experience/pipelines-locate-artifacts.png" alt-text="Image of solution artifacts in Azure DevOps."::: diff --git a/power-platform/developer/unified-experience/finance-operations-product-db-access.md b/power-platform/developer/unified-experience/finance-operations-product-db-access.md index 7e77a5c3b..39e124cbe 100644 --- a/power-platform/developer/unified-experience/finance-operations-product-db-access.md +++ b/power-platform/developer/unified-experience/finance-operations-product-db-access.md @@ -2,7 +2,7 @@ title: "Request credentials to access D365 product database" description: "Learn how to request credentials to access D365 product database just in time." author: pathaku -ms.date: 05/30/2024 +ms.date: 06/06/2024 ms.topic: how-to ms.reviewer: phecke ms.author: pathaku @@ -11,8 +11,8 @@ ms.subservice: developer # Request credentials to access D365 finance and operations product database -A developer at times benefits from read/write access to the product database. We enable you to request credentials just in time, right from within Visual Studio. -As explained in [Write, deploy, and debug X++ code](finance-operations-debug.md), the business data is hosted in the cloud. +A developer at times benefits from read/write access to the product database. We enable you to request credentials just in time, right from within Visual Studio. +As explained in [Write, deploy, and debug X++ code](finance-operations-debug.md), the business data is hosted in the cloud. This feature applies only to unified development environments. The developer needs to have the system administrator (sysAdmin) in the environment. To request credentials for database access, follow these steps: @@ -23,7 +23,7 @@ To request credentials for database access, follow these steps: 1. Enter the reason for requesting access credentials to the database. 1. The credentials are allowed for use only from clients using allowed IP v4 addresses so connections attempts from machines other than in the specified IPv4 range are denied by the Azure SQL firewall. 1. The dialog is prepopulated by default with only the current developer machine's public IP v4 address. -1. You may need to update this IP V4 address range in case you want to use the credentials from other machines or your developer machine has ip address allocated to it very dynamically. +1. You may need to update this IP V4 address range in case you want to use the credentials from other machines or your developer machine has ip address allocated to it very dynamically. :::image type="content" source="../media/unified-experience/UDE_SQLJitWindowRequest.png" alt-text="Visual Studio> Tools> SQL Credentials for Dynamics 365 FinOps Request window"::: 1. The dialog indicates that the access request is being processed. :::image type="content" source="../media/unified-experience/UDE_SQLJitProgress.png" alt-text="Visual Studio> Tools> SQL Credentials for Dynamics 365 FinOps Progress"::: @@ -35,17 +35,15 @@ To request credentials for database access, follow these steps: 1. Multiple users can have an active credential each, in a given environment. 1. A user can have a credential each in multiple environments. - > [!IMPORTANT] > You can learn more by watching presentation and demos done for the Dynamics 365 FastTrack Tech Talk series -> +> >[Unified Development Experience for Finance and Operations | Dynamics 365 FastTrack Tech Talk](https://www.youtube.com/watch?v=OuEZ1rXkpYY) - ### See also [Write, deploy, and debug X++ code](finance-operations-debug.md) -[Unit testing in the unified developer experience](finance-operations-testing.md) +[Unit testing in the unified developer experience](finance-operations-testing.md) [Create and manage environments in the Power Platform admin center](/power-platform/admin/create-environment) [Manage Dynamics 365 apps](../../admin/manage-apps.md) [Use SQL to query data in Dataverse](/power-apps/developer/data-platform/dataverse-sql-query) diff --git a/power-platform/developer/unified-experience/finance-operations-testing.md b/power-platform/developer/unified-experience/finance-operations-testing.md index 1a2b8377d..7354fcab9 100644 --- a/power-platform/developer/unified-experience/finance-operations-testing.md +++ b/power-platform/developer/unified-experience/finance-operations-testing.md @@ -2,7 +2,7 @@ title: "Unit testing" description: Shows you how to create and run test cases. author: pvillads -ms.date: 08/28/2023 +ms.date: 06/06/2024 ms.topic: how-to ms.subservice: developer ms.reviewer: pehecke @@ -32,7 +32,7 @@ You can create new test cases to test the functionality in an application. 1. On the **File** menu, select **Open** > **Project/Solution**, and then select **FleetManagement** **solution** from the desktop folder. If the solution file isn't on your computer, the steps to create it are listed in [End-to-end scenario for the Fleet Management sample application](/dynamics365/fin-ops-core/dev-itpro/dev-tools/fleet-management-sample). 1. In **Solution Explorer**, right-click the **Fleet Management** solution, select **Add**, and then select **New Project**. 1. Choose **finance and operations** as the project type to create. -1. Name this new project *FleetManagementUnitTestSample*, specify the FleetManagement folder on the desktop (C:\Users\Public\Desktop\FleetManagement) as the location, and then select **OK**. +1. Name this new project *FleetManagementUnitTestSample*, specify the FleetManagement folder on the desktop (C:\Users\Public\Desktop\FleetManagement) as the location, and then select **OK**. 1. In **Solution Explorer**, right-click the new project, and then select **Properties**. 1. Set the **Model** property to **FleetManagementUnitTests**, and then select **OK**. 1. Now add a test class containing the tests against the fleet management code. Right-click the FleetManagementUnitTestSample project, select **Add**, and then select **New Item**. diff --git a/power-platform/developer/unified-experience/finance-operations-trace-parser.md b/power-platform/developer/unified-experience/finance-operations-trace-parser.md index 178561f0f..5d1a6d5ba 100644 --- a/power-platform/developer/unified-experience/finance-operations-trace-parser.md +++ b/power-platform/developer/unified-experience/finance-operations-trace-parser.md @@ -2,7 +2,7 @@ title: Diagnose issues and analyze performance using a trace parser with the unified developer experience. description: Learn how you can use a trace parser to consume traces and analyze performance in your deployment from your unified developer experience. author: pvillads -ms.date: 05/29/2024 +ms.date: 06/06/2024 ms.topic: article ms.subservice: developer ms.reviewer: pehecke From 969d3ed685c44f2aecaeaeb690d469f13461d721 Mon Sep 17 00:00:00 2001 From: "Manjinder (Mints)" Date: Thu, 6 Jun 2024 16:54:05 -0700 Subject: [PATCH 62/63] Revert "Adding Power Pages to formula ref" --- power-platform/power-fx/TOC.yml | 2 - .../power-fx/formula-reference-overview.md | 5 +- .../power-fx/formula-reference-power-pages.md | 334 ------------------ 3 files changed, 2 insertions(+), 339 deletions(-) delete mode 100644 power-platform/power-fx/formula-reference-power-pages.md diff --git a/power-platform/power-fx/TOC.yml b/power-platform/power-fx/TOC.yml index b3136fdc8..af51a50c3 100644 --- a/power-platform/power-fx/TOC.yml +++ b/power-platform/power-fx/TOC.yml @@ -32,8 +32,6 @@ href: formula-reference-canvas-apps.md - name: Dataverse formula reference href: formula-reference-dataverse.md - - name: Power Pages formula reference - href: formula-reference-power-pages.md - name: Cards formula reference href: formula-reference-cards.md - name: Desktop flows formula reference diff --git a/power-platform/power-fx/formula-reference-overview.md b/power-platform/power-fx/formula-reference-overview.md index 67ecbf05a..ca51a2fd1 100644 --- a/power-platform/power-fx/formula-reference-overview.md +++ b/power-platform/power-fx/formula-reference-overview.md @@ -27,11 +27,10 @@ The Power Fx formulas are available for the following Power Platform components: | Power Platform component | Sub areas| | - | - | | Power Apps | Canvas apps, model-driven apps, cards | -| Canvas apps | Not applicable | +| Canvas apps | Canvas apps | | Power Automate | Desktop flows | | Dataverse | Formula columns, low-code plug-ins | -| Power Pages | Not applicable | -| Cards for Power Apps | Not applicable | +| Cards for Power Apps | Cards | | Power Platform CLI | Not applicable | diff --git a/power-platform/power-fx/formula-reference-power-pages.md b/power-platform/power-fx/formula-reference-power-pages.md deleted file mode 100644 index 94460a9be..000000000 --- a/power-platform/power-fx/formula-reference-power-pages.md +++ /dev/null @@ -1,334 +0,0 @@ ---- -title: Formula reference - Power Pages -description: Reference information for all functions in Power Pages. -author: gregli-msft -ms.topic: reference -ms.custom: canvas -ms.reviewer: mkaur-msft -ms.date: 6/06/2024 -ms.subservice: power-fx -ms.author: gregli -search.audienceType: - - maker -contributors: - - mduelae - - gregli-msft - - gregli ---- - -# Formula reference - Power Pages - -In this article, learn about all the functions available in Power Pages. - - -## A - -**[Abs](reference/function-numericals.md)** – Absolute value of a number. - -**[Acos](reference/function-trig.md)** – Returns the arccosine of a number, in radians. - -**[Acot](reference/function-trig.md)** – Returns the arccotangent of a number, in radians. - -**[And](reference/function-logicals.md)** – Boolean logic AND. Returns **true** if all arguments are **true**. You can also use the [**&&** operator](reference/operators.md). - -**[Asin](reference/function-trig.md)** – Returns the arcsine of a number, in radians. - -**[Assert](reference/function-assert.md)** – Evaluates to true or false in a test. - -**[As](reference/operators.md#thisitem-thisrecord-and-as-operators)** – Names the current record in gallery, form, and record scope functions such as **ForAll**, **With**, and **Sum**. - -**[AsType](reference/function-astype-istype.md)** – Treats a record reference as a specific table type. - -**[Atan](reference/function-trig.md)** – Returns the arctangent of a number, in radians. - -**[Atan2](reference/function-trig.md)** – Returns the arctangent based on an (_x_,_y_) coordinate, in radians. - -**[Average](reference/function-aggregates.md)** – Calculates the average of a table expression or a set of arguments. - -## B - -**[Boolean](reference/function-boolean.md)** – Converts a text string, number, or untyped value to a Boolean value. - -## C - -**[Calendar](reference/function-clock-calendar.md)** – Retrieves information about the calendar for the current locale. - -**[Char](reference/function-char.md)** – Translates a character code into a string. - -**[Choices](reference/function-choices.md)** – Returns a table of the possible values for a lookup column. - -**[Clock](reference/function-clock-calendar.md)** – Retrieves information about the clock for the current locale. - -**[Coalesce](reference/function-isblank-isempty.md)** – Replaces _blank_ values while leaving non-_blank_ values unchanged. - -**[Concat](reference/function-concatenate.md)** – Concatenates strings in a data source. - -**[Concatenate](reference/function-concatenate.md)** – Concatenates strings. - -**[Count](reference/function-table-counts.md)** – Counts table records that contain numbers. - -**[Cos](reference/function-trig.md)** – Returns the cosine of an angle specified in radians. - -**[Cot](reference/function-trig.md)** – Returns the cotangent of an angle specified in radians. - -**[CountA](reference/function-table-counts.md)** – Counts table records that aren't [empty](reference/function-isblank-isempty.md). - -**[CountIf](reference/function-table-counts.md)** – Counts table records that satisfy a condition. - -**[CountRows](reference/function-table-counts.md)** – Counts table records. - -## D - -**[Date](reference/function-date-time.md)** – Returns a date/time value, based on **Year**, **Month**, and **Day** values. - -**[DateAdd](reference/function-dateadd-datediff.md)** – Adds days, months, quarters, or years to a date/time value. - -**[DateDiff](reference/function-dateadd-datediff.md)** – Subtracts two date values, and shows the result in days, months, quarters, or years. - -**[DateTime](reference/function-date-time.md)** – Returns a date/time value, based on both date and time components. - -**[DateTimeValue](reference/function-datevalue-timevalue.md)** – Converts a date and time string to a date/time value. - -**[DateValue](reference/function-datevalue-timevalue.md)** – Converts a date-only string to a date/time value. - -**[Day](reference/function-datetime-parts.md)** – Retrieves the day portion of a date/time value. - -**[Dec2Hex](reference/function-hexdec.md)** – Convert a number to a hexadecimal text string. - -**[Degrees](reference/function-trig.md)** – Converts radians to degrees. - -**[Distinct](reference/function-distinct.md)** – Summarizes records of a table, removing duplicates. - -## E - -**[EDate](reference/function-edate-eomonth.md)** – Adds or subtracts months to a date, without changing the day of the month. - -**[EncodeUrl](reference/function-encode-decode.md)** – Encodes special characters using URL encoding. - -**[EndsWith](reference/function-startswith.md)** – Checks whether a text string ends with another text string. - -**[EOMonth](reference/function-edate-eomonth.md)** – Adds or subtracts months to a date, returning the last day of that month. - -**[exactin](reference/operators.md#in-and-exactin-operators)** – Checks if a text string is contained within another text string or table, case dependent. Also used to check if a record is in a table. - -**[Exp](reference/function-numericals.md)** – Returns _e_ raised to a power. - -## F - -**[Filter](reference/function-filter-lookup.md)** – Returns a filtered table based on one or more criteria. - -**[Find](reference/function-find.md)** – Checks whether one string appears within another and returns the location. - -**[First](reference/function-first-last.md)** – Returns the first record of a table. - -**[FirstN](reference/function-first-last.md)** – Returns the first set of records (N records) of a table. - -**[ForAll](reference/function-forall.md)** – Calculates values and performs actions for all records of a table. - -## G - -**[GroupBy](reference/function-groupby.md)** – Returns a table with records grouped together. - -## H - -**[HashTags](reference/function-hashtags.md)** – Extracts the hashtags (#strings) from a string. - -**[Hex2Dec](reference/function-hexdec.md)** – Convert a hexadecimal text string to a number. - -**[Hour](reference/function-datetime-parts.md)** – Returns the hour portion of a date/time value. - - -## I - -**[If](reference/function-if.md)** – Returns one value if a condition is true and another value if not. - -**[IfError](reference/function-iferror.md)** – Detects errors and provides an alternative value or takes action. - -**[in](reference/operators.md#in-and-exactin-operators)** – Checks if a text string is contained within another text string or table, case independent. Also used to check if a record is in a table. - -**[Index](reference/function-first-last.md)** – Returns a record from a table based on ordered position. - -**[Int](reference/function-round.md)** – Rounds down to the nearest integer. - -**[IsBlank](reference/function-isblank-isempty.md)** – Checks for a [blank](reference/function-isblank-isempty.md) value. - -**[IsBlankOrError](reference/function-iferror.md)** – Checks for a [blank](reference/function-isblank-isempty.md) value or error. - -**[IsEmpty](reference/function-isblank-isempty.md)** – Checks for an empty table. - -**[IsError](reference/function-iferror.md)** – Checks for an error. - -**[IsMatch](reference/function-ismatch.md)** – Checks a string against a pattern. Regular expressions can be used. - -**[IsNumeric](reference/function-isnumeric.md)** – Checks for a numeric value. - -**[ISOWeekNum](reference/function-weeknum.md)** – Returns the ISO week number of a date/time value. - -**[IsToday](reference/function-now-today-istoday.md)** – Checks whether a date/time value is sometime today in the user's time zone. - -**[IsType](reference/function-astype-istype.md)** – Checks whether a record reference refers to a specific table type. - -**[IsUTCToday](reference/function-now-today-istoday.md)** – Checks whether a date/time value is sometime today in Coordinated Universal Time (UTC). - -## J - -**[JSON](reference/function-json.md)** – Generates a JSON text string for a table, a record, or a value. - -## L - -**[Language](reference/function-language.md)** – Returns the language tag of the current user. - -**[Last](reference/function-first-last.md)** – Returns the last record of a table. - -**[LastN](reference/function-first-last.md)** – Returns the last set of records (N records) of a table. - -**[Left](reference/function-left-mid-right.md)** – Returns the left-most portion of a string. - -**[Len](reference/function-len.md)** – Returns the length of a string. - -**[Ln](reference/function-numericals.md)** – Returns the natural log. - -**[Log](reference/function-numericals.md)** – Returns the logarithm in any base of a number. - -**[LookUp](reference/function-filter-lookup.md)** – Looks up a single record in a table based on one or more criteria. - -**[Lower](reference/function-lower-upper-proper.md)** – Converts letters in a string of text to all lowercase. - -## M - -**[Match](reference/function-ismatch.md)** – Extracts a substring based on a pattern. Regular expressions can be used. - -**[MatchAll](reference/function-ismatch.md)** – Extracts multiple substrings based on a pattern. Regular expressions can be used. - -**[Max](reference/function-aggregates.md)** – Maximum value of a table expression or a set of arguments. - -**[Mid](reference/function-left-mid-right.md)** – Returns the middle portion of a string. - -**[Min](reference/function-aggregates.md)** – Minimum value of a table expression or a set of arguments. - -**[Minute](reference/function-datetime-parts.md)** – Retrieves the minute portion of a date/time value. - -**[Mod](reference/function-mod.md)** – Returns the remainder after a dividend is divided by a divisor. - -**[Month](reference/function-datetime-parts.md)** – Retrieves the month portion of a date/time value. - -## N - -**[Not](reference/function-logicals.md)** – Boolean logic NOT. Returns **true** if its argument is **false**, and returns **false** if its argument is **true**. You can also use the [**!** operator](reference/operators.md). - -**[Now](reference/function-now-today-istoday.md)** – Returns the current date/time value in the user's time zone. - -## O - -**[Or](reference/function-logicals.md)** – Boolean logic OR. Returns **true** if any of its arguments are **true**. You can also use the [**||** operator](reference/operators.md). - -## P - -**[ParseJSON](reference/function-parsejson.md)** – Converts JSON document represented as text to an [Untyped object](untyped-object.md) value. - -**[Pi](reference/function-trig.md)** – Returns the number π. - -**[PlainText](reference/function-encode-decode.md)** – Removes HTML and XML tags from a string. - -**[Power](reference/function-numericals.md)** – Returns a number raised to a power. You can also use the [**^** operator](reference/operators.md). - -**[Proper](reference/function-lower-upper-proper.md)** – Converts the first letter of each word in a string to uppercase, and converts the rest to lowercase. - -## R - -**[Radians](reference/function-trig.md)** – Converts degrees to radians. - -**[Rand](reference/function-rand.md)** – Returns a pseudo-random number between 0 and 1. - -**[RandBetween](reference/function-rand.md)** – Returns a pseudo-random number between two numbers. - -**[Replace](reference/function-replace-substitute.md)** – Replaces part of a string with another string, by starting position of the string. - -**[RGBA](reference/function-colors.md)** – Returns a color value for a set of red, green, blue, and alpha components. - -**[Right](reference/function-left-mid-right.md)** – Returns the right-most portion of a string. - -**[Round](reference/function-round.md)** – Rounds to the closest number. - -**[RoundDown](reference/function-round.md)** – Rounds down to the largest previous number. - -**[RoundUp](reference/function-round.md)** – Rounds up to the smallest next number. - -## S - - -**[Search](reference/function-filter-lookup.md)** – Finds records in a table that contain a string in one of their columns. - -**[Second](reference/function-datetime-parts.md)** – Retrieves the second portion of a date/time value. - -**[Sin](reference/function-trig.md)** – Returns the sine of an angle specified in radians. - -**[Sort](reference/function-sort.md)** – Returns a sorted table based on a formula. - -**[SortByColumns](reference/function-sort.md)** – Returns a sorted table based on one or more columns. - -**[Split](reference/function-split.md)** – Splits a text string into a table of substrings. - -**[Sqrt](reference/function-numericals.md)** – Returns the square root of a number. - -**[StartsWith](reference/function-startswith.md)** – Checks if a text string begins with another text string. - -**[StdevP](reference/function-aggregates.md)** – Returns the standard deviation of its arguments. - -**[Substitute](reference/function-replace-substitute.md)** – Replaces part of a string with another string, by matching strings. - -**[Sum](reference/function-aggregates.md)** – Calculates the sum of a table expression or a set of arguments. - -**[Switch](reference/function-if.md)** – Matches with a set of values and then evaluates a corresponding formula. - -## T - -**[Tan](reference/function-trig.md)** – Returns the tangent of an angle specified in radians. - -**[Text](reference/function-text.md)** – Converts any value and formats a number or date/time value to a string of text. - -**[ThisRecord](reference/operators.md#thisitem-thisrecord-and-as-operators)** – Returns the record for the current item in a record scope function, such as **ForAll**, **With**, and **Sum**. - -**[Time](reference/function-date-time.md)** – Returns a date/time value, based on **Hour**, **Minute**, and **Second** values. - -**[TimeValue](reference/function-datevalue-timevalue.md)** – Converts a time-only string to a date/time value. - -**[TimeZoneOffset](reference/function-dateadd-datediff.md)** – Returns the difference between UTC and the user's local time in minutes. - -**[Today](reference/function-now-today-istoday.md)** – Returns the current date-only value. - -**[Trim](reference/function-trim.md)** – Removes extra spaces from the ends and interior of a string of text. - -**[TrimEnds](reference/function-trim.md)** – Removes extra spaces from the ends of a string of text only. - -**[Trunc](reference/function-round.md)** – Truncates the number to only the integer portion by removing any decimal portion. - -## U - -**[Upper](reference/function-lower-upper-proper.md)** – Converts letters in a string of text to all uppercase. - -**[User](reference/function-user.md)** – Returns information about the current user. - -**[UTCNow](reference/function-now-today-istoday.md)** – Returns the current date/time value in Coordinated Universal Time (UTC). - -**[UTCToday](reference/function-now-today-istoday.md)** – Returns the current date-only value in Coordinated Universal Time (UTC). - -## V - -**[Value](reference/function-value.md)** – Converts a string to a number. - -**[VarP](reference/function-aggregates.md)** – Returns the variance of its arguments. - - -## W - -**[Weekday](reference/function-datetime-parts.md)** – Retrieves the weekday portion of a date/time value. - -**[WeekNum](reference/function-weeknum.md)** – Returns the week number of a date/time value. - -**[With](reference/function-with.md)** – Calculates values and performs actions for a single record, including inline records of named values. - -## Y - -**[Year](reference/function-datetime-parts.md)** – Retrieves the year portion of a date/time value. - From 8db7c9a993c97cfc7faa04244cca7ac41096b8b5 Mon Sep 17 00:00:00 2001 From: Sally Erickson Date: Fri, 7 Jun 2024 07:49:10 -0500 Subject: [PATCH 63/63] Update manage-teams.md --- power-platform/admin/manage-teams.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/power-platform/admin/manage-teams.md b/power-platform/admin/manage-teams.md index 0295b7ec4..c990d3726 100644 --- a/power-platform/admin/manage-teams.md +++ b/power-platform/admin/manage-teams.md @@ -3,7 +3,7 @@ title: "Teams in Dataverse | MicrosoftDocs" description: Understand the different types of teams and how to view and manage settings. ms.component: pa-admin ms.topic: conceptual -ms.date: 05/23/2024 +ms.date: 06/06/2024 author: paulliew ms.subservice: admin ms.author: paulliew @@ -57,9 +57,8 @@ A list of all of the teams in the environment is displayed. - **Business unit:** Select the business unit from the dropdown list. - **Administrator:** Search for users in the organization. Start entering characters. > [!NOTE] - > The **Administrator** field is only for reference and it doesn't have any special processing. You can use this field to restrict who can add and remove team members by registering a [plug-in](/power-apps/developer/data-platform/plug-ins) on the [AddMembersTeam](/power-apps/developer/data-platform/webapi/reference/addmembersteam) API for the **teammembership_association** relationship. These actions can be enforced when the user is the administrator of the team. For more information, see the community [sample code](https://community.dynamics.com/crm/b/mylifemicrosoftdynamiccrm/posts/ms-dynamics-crm-associate-disassociate-message-plugin). + > The **Administrator** field is only for reference and it doesn't have any special processing. You can use this field to restrict who can add and remove team members by registering a [plug-in](/power-apps/developer/data-platform/plug-ins) on the [AddMembersTeam](/power-apps/developer/data-platform/webapi/reference/addmembersteam) API for the **teammembership_association** relationship. These actions can be enforced when the user is the administrator of the team. For more information, see the community [sample code](https://community.dynamics.com/crm/b/mylifemicrosoftdynamiccrm/posts/ms-dynamics-crm-associate-disassociate-message-plugin). - - **Team type:** Select the team type from the dropdown list. :::image type="content" source="media/dataverse-team-manage-new-team.png" alt-text="Screenshot of settings for a new Dataverse team.":::