Tutorial: Realizar una copia sin transacciones entre entornos
La copia del entorno para aplicaciones de finanzas y operaciones ha sido tradicionalmente una copia completa, lo que significa que incluye toda la base de datos en términos de configuración, datos maestros y transacciones. Si bien es útil para depurar situaciones específicas, esto tiene el efecto secundario de aumentar significativamente el consumo de almacenamiento tanto para aplicaciones de finanzas y operaciones de Dataverse.
En este tutorial, aprenderá a:
- Preparar el entorno de origen
- Copiar el entorno al destino
Como ejemplo de este escenario, supongamos que a un cliente le gustaría reducir su consumo de almacenamiento en su entorno de pruebas y entornos de desarrollador unificados, donde no es necesario tener el 100 % de las transacciones de producción. Para lograr esto, el cliente copia su entorno de producción directamente a su entorno de desarrollador unificado y especifica que se deben omitir las transacciones.
Antes de empezar
El entorno de destino de este tutorial es siempre un entorno unificado que contiene aplicaciones de finanzas y operaciones alojadas en Dataverse. Para aprender cómo desplegar uno de estos entornos, consulte Tutorial: Aprovisionar un nuevo entorno con una plantilla basada en ERP.
El entorno de origen en este tutorial puede ser un entorno controlado por Lifecycle Services o puede ser otro entorno unificado alojado por Dataverse.
Asegúrese de que tanto el entorno de origen como el de destino estén aprovisionados en la misma región. Para obtener información general sobre la copia de entornos, consulte Copiar un entorno.
Tablas transaccionales
Para garantizar que el entorno resultante siga funcionando una vez completada la copia, se deben borrar todas las tablas transaccionales juntas. Debido al esquema altamente normalizado de las aplicaciones de finanzas y operaciones, omitir incluso una tabla en una relación unida podría provocar un comportamiento defectuoso en la interfaz de usuario y en la lógica empresarial una vez finalizada la copia.
Al utilizar metadatos presentes en las tablas X++, todas las tablas de transacciones y sus tablas relacionadas se pueden truncar como parte de una copia sin transacciones. Esto incluye tablas personalizadas y tablas de origen ISV siempre que la propiedad Grupo de tablas sea una de las siguientes:
- Transacción (4)
- WorksheetHeader (5)
- WorksheetLine (6)
- Hoja de cálculo (9)
- TransactionHeader (10)
- TransactionLine (11)
- Almacenamiento provisional (12)
Requisitos previos
Se debe haber realizado una acción de mantenimiento en el entorno de origen después del 3 de abril de 2024, como un DBSync, instalación de un paquete de software desplegable (a través de Lifecycle Services, si corresponde) o un paquete unificado implementado a través de Power Platform CLI, si el entorno de origen es administrado por centro de administración de Power Platform.
También necesitará los detalles de los entornos de origen y de destino, incluido el ID de entorno para cada uno, en el paso siguiente.
Copiar a través de PowerShell
Cargue la consola de PowerShell y ejecute los siguientes comandos para copiar el entorno. Para obtener más información sobre cómo instalar y utilizar el módulo PowerShell, consulte Introducción a PowerShell para administradores de Power Platform.
#Install the module
Install-Module -Name Microsoft.PowerApps.Administration.PowerShell
# Set variables for your session
$TenantId = "YOUR_TENANT_GUID_FROM_Microsoft Entra ID"
$SPNId = "YOUR_AZURE_APPLICATION_REGISTRATION_CLIENT_ID"
$ClientSecret = "YOUR_AZURE_APPLICATION_CLIENT_SECRET"
$SourceEnvironmentID = "YOUR_SOURCE_ENVIRONMENT_ID_HERE"
$TargetEnvironmentID = "YOUR_TARGET_ENVIRONMENT_ID_HERE"
Write-Host "Creating a session against the Power Platform API"
Add-PowerAppsAccount -Endpoint prod -TenantID $TenantId -ApplicationId $SPNId -ClientSecret $ClientSecret
$copyToRequest = \[pscustomobject\]@{
SourceEnvironmentId = $SourceEnvironmentID
TargetEnvironmentName = "Copied from source"
CopyType = "FullCopy"
SkipAuditData: true
ExecuteAdvancedCopyForFinanceAndOperations: true
}
Copy-PowerAppEnvironment -EnvironmentName $TargetEnvironmentID -CopyToRequestDefinition $copyToRequest
El comando de PowerShell anterior ejecuta una copia completa entre el entorno de origen y de destino, lo que permite copiar el código, el software, los datos maestros y de referencia. Luego, las tablas de transacciones se truncan antes de que el entorno esté disponible para el administrador.