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}" );
}
}