Skip to main content

Notifications

Community site session details

Community site session details

Session Id :
Microsoft Dynamics 365 | Integration, Dataverse...
Under review by Community Managers

Under review

Thank you for your post! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Desasociar registros N:N con plugin

Posted on by 19
Buenas.
Tengo una TablaA que está relacionada con 3 tablas con relaciones N:N. Cuando creo un registro en TablaA, a través de un flujo de power automate, relacciono la TablaA con las otras 3.
Esto funciona perfecto.  Tenía el problema que al borrar el registro de TablaA, daba un error de constraint por las tablas relaccionadas.

He creado un plugin para desasociar las 3 tablas asociadas a la TablaA antes de que se borre el registro.  

El problema que tengo ahora, es que el plugin funcina correctamente pero al ver los registros de las tablas relacionadas, veo que hay una que sigue manteniendo los registros.
 
Lo curioso, es que me deja borrar el registro de la TablaA sin dar error de constraint
 
¿Qué puede estar pasando?
 
Este es el código que uso para desasociar.
 
private void EliminarRelacionesNN( EntityReference entityRef, IOrganizationService service, List<string> relationshipName )
{
    try
    {
        foreach ( string relationship in relationshipName )
        {
            tracingService.Trace( $"Target: {entityRef.LogicalName};  Relación: {relationship}" );
            // Crear la solicitud para eliminar TODAS las asociaciones N:N
            var disassociateRequest = new DisassociateRequest
            {
                Target = entityRef,                                     // Tabla desde la que se está eliminando
                Relationship = new Relationship( relationship ),        // Nombre de la relación
                RelatedEntities = new EntityReferenceCollection( )      // Se eliminan todas las relaciones
            };

            // Ejecutar la eliminación de las relaciones N:N
            var resultado = service.Execute( disassociateRequest );
            tracingService.Trace( $"Eliminación correcta de la entidad: {relationship}" );
        }
    }
    catch ( Exception ex )
    {
        tracingService.Trace( $"Error borrando tablas relacionadas: {ex.Message}" );
        throw new InvalidPluginExecutionException( $"Error FOREACH borrando tabla relacionadas: {ex.Message}" );
    }
}

Helpful resources

Quick Links

🌸 Community Spring Festival 2025 Challenge 🌸

WIN Power Platform Community Conference 2025 tickets!

Announcing Our 2025 Season 1 Super Users!

A new season of Super Users has arrived, and we are so grateful for the daily…

Kudos to the February Top 10 Community Stars!

Thanks for all your good work in the Community!

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 293,309 Super User 2025 Season 1

#2
Martin Dráb Profile Picture

Martin Dráb 232,160 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156 Moderator

Leaderboard

Product updates

Dynamics 365 release plans