Visión xeral da eliminación de dependencias

Os compoñentes das solucións adoitan depender doutros compoñentes das solucións. Non pode eliminar ningún compoñente da solución con dependencias doutro compoñente da solución. As dependencias son rexistros creados automaticamente polo marco de solucións para evitar que se eliminen os compoñentes necesarios mentres un ou varios compoñentes dependentes aínda inclúen referencias a eles.

Algúns exemplos dunha dependencia son os seguintes: dado que un campo é necesario para que un formulario funcione, cando se intenta executar unha acción que provoca a eliminación dese campo, o formulario deixará de funcionar.

Outro exemplo é cando intentas eliminar o mapa do sitio para unha aplicación baseada en modelos. O sistema indica que existe unha dependencia na aplicación. A aplicación é o compoñente dependente e o mapa do sitio é o compoñente obrigatorio. O sistema impide que elimines o mapa do sitio ata que elimines a dependencia.

O sistema detecta unha dependencia onde a aplicación depende do mapa do sitio.

Nota

Eliminar significa que o compoñente se elimina completamente de Microsoft Dataverse.

Neste artigo, analizamos como xestionar estas dependencias e as estratexias que podes empregar para eliminar as dependencias que xa non necesitas.

Dependencias de compoñentes non xestionados fronte a xestionados

En primeiro lugar, é importante entender que as dependencias só impiden as operacións que eliminan un compoñente requirido. As accións que poden eliminar un compoñente son diferentes, dependendo de se non son xestionados ou si.

É bo estar familiarizado co concepto de capas de solucións e compoñentes ao describir dependencias. Se non estás familiarizado/a, recomendámosche que leas este artigo antes de continuar: Capas de solución

Compoñentes non xestionados

Estes compoñentes están representados por unha soa capa na solución activa. Calquera operación de Eliminar nun compoñente orixina a eliminación completa do compoñente.

Compoñentes xestionados

A eliminación de compoñentes xestionados depende de varios factores: o número de capas da solución, a posición relativa da capa que se está a desinstalar e os editores de compoñentes. Por exemplo, cando se elimine un compoñente, considere os seguintes escenarios e cal será o comportamento esperado cando desinstale as distintas capas.

Exemplos de escenario

Os seguintes exemplos de escenarios ilustran o que pasa coas capas de solución cando se desinstalan as solucións.

Escenario 1: Desinstalar unha única capa de solución

Desinstalar cunha soa capa.

Desinstalar a solución 1 provoca unha eliminación do compoñente porque é a única capa do compoñente.

Escenario 2: desinstalar as capas de solución de diferentes editores

Desinstalar con dúas capas: editor diferente.

  • Desinstalar a solución 2 non causa unha eliminación do compoñente. Só se elimina esa capa.
  • Desinstalar a solución 1 provoca unha eliminación do compoñente porque a acción prodúcese na capa base. De feito, a solución 1 non se pode desinstalar neste escenario, porque unha solución dun editor diferente estende o compoñente.

Escenario 3: desinstalar varias capas de solución de diferentes editores

Desinstalar con varias capas: editor diferente.

  • Desinstalar a solución 3 non causa unha eliminación do compoñente. Só se elimina esa capa.
  • Desinstalar a solución 2 non causa unha eliminación do compoñente. Só se elimina esa capa.
  • A desinstalación da Solución 1 non provoca a eliminación dun compoñente, porque neste caso hai outra solución do mesmo editor (Editor A = Editor C). A plataforma elimina a capa da Solución 1 e substitúea pola capa da Solución 3.

Escenario 4: Desinstale as capas de solución nunha personalización non xestionada

Desinstalar con dúas capas: personalización non xestionada.

  • A desinstalación da capa activa (non xestionada) non provoca a eliminación dun compoñente. Só se elimina esa capa. Ten en conta que non podes desinstalar a solución activa, pero si que podes eliminar compoñentes mediante a funcionalidade Eliminar personalización activa .
  • Desinstalar a solución 1 causa unha eliminación do compoñente. A acción ocorre na capa base. A diferenza do escenario 2, pode desinstalar a solución 1. A solución activa non se considera unha extensión e elimínanse ambas capas.

Mostrar a páxina de dependencias

O comando Mostrar dependencias enumera as dependencias da solución ou do compoñente da solución seleccionado. Pódese invocar do seguinte modo:

  • Seleccionando Mostrar dependencias na páxina da solución.
  • Selección Avanzado>Mostrar dependencias dentro dunha solución cando se selecciona un compoñente da solución.
  • Tentando desinstalar unha solución, o que fai que a plataforma detecte que existen dependencias.

Desde a páxina Dependencias podes abrir, eliminar ou suprimir o compoñente. Máis información: Ver dependencias dun compoñente

Diagnosticar dependencias

Considere este escenario. O entorno aquí ten dúas solucións: Solución - Fluxo de traballo e Solución - Entidade personalizada.

Lista de solucións con dúas solucións.

Un creador do ambiente decide que xa non precisa Solución - Entidade personalizada. O creador intentou eliminalo e presentouse a seguinte páxina:

Detalles da dependencia despois de tentar eliminar unha solución.

A desinstalación da solución está a tentar eliminar unha táboa chamada Entidade personalizada e tres campos:Entidade personalizada, Nome e Campo numérico, e os catro compoñentes teñen dependencias.

Nota

Desinstalar a solución pode eliminar máis compoñentes, pero porque non teñen dependencias, non aparecerán na lista.

O seguinte paso é comprobar a ligazón Capas de solución (columna máis á dereita) para cada dependencia. Iso axúdache a decidir que facer para eliminar a dependencia.

A seguinte figura mostra os detalles da dependencia entre a táboa (entidade personalizada) e o proceso (fluxo de traballo de proba).

Detalles de dependencia de táboas personalizadas.

En función dos datos mostrados, pódese observar que o compoñente dependente pertence a unha solución chamada SolutionWorkflow. Para eliminar esta dependencia, pode:

  • Actualiza a definición do fluxo de traballo en SolutionWorkflow eliminando calquera referencia á táboa ou aos seus subcompoñentes. A continuación, Actualizar ou Mellorar a solución.
  • Desinstalar a solución SolutionWorkflow.
  • Elimine o fluxo de traballo dunha nova versión da solución SolutionWorkflow e, a continuación, realice unha Actualización.

Dado que calquera compoñente dependente pode evitar a eliminación da solución, recomendámoslle comprobar todas as dependencias e facer todos os cambios necesarios nunha única operación.

A seguinte figura mostra os detalles da dependencia entre a táboa (Entidade personalizada) e unha aplicación baseada en modelos (A miña aplicación).

Dependencia entre a táboa (entidade personalizada) e a aplicación (a miña aplicación).

En función dos datos mostrados, pódese observar que o compoñente dependente pertence a unha solución chamada Activa. Isto indica que a dependencia foi creada importando unha solución non administrada ou a través dunha personalización non administrada que se executou a través da interface de usuario moderna ou API.

Para eliminar esta dependencia, pode:

  • Editar a definición da aplicación baseada en modelos para eliminar calquera referencia á entidade ou aos seus compoñentes secundarios. Debido a que as aplicacións baseadas en modelos admiten a publicación, debe publicar os cambios.
  • Eliminar a aplicación controlada por modelos.

Nota

Desinstalar unha solución non xestionada non é unha opción para eliminar esta dependencia, porque as solucións non xestionadas son só un medio para agrupar compoñentes.

Accións para eliminar unha dependencia xestionada

As dependencias xestionadas son aquelas nas que o compoñente dependente está asociado a unha solución administrada. Para resolver este tipo de dependencia, debe actuar coa solución onde se engadiu o compoñente. Esa acción pode ser diferente dependendo do que estea intentando facer.

Se estás a tentar desinstalar unha solución

Siga estes pasos:

  1. No contorno de destino, inspeccione a ligazón Capas de solución para atopar cal é a solución superior na lista do compoñente dependente.
  2. No ambiente de orixe, prepare unha nova versión desa solución onde a solución non conteña o compoñente dependente ou teña unha versión actualizada do compoñente dependente que non conteña referencias ao compoñente requirido. O seu obxectivo é eliminar calquera referencia aos compoñentes necesarios na nova versión da solución.
  3. Exporte a nova versión da solución.
  4. No entorno de destino, actualiza esa solución.
  5. Intente de novo a desinstalación.

Se estás a tentar actualizar unha solución

Neste caso, ten que confirmar que quería eliminar o compoñente requirido (lembre que as dependencias só se aplican nos compoñentes que se están eliminando).

Se non quería eliminar o compoñente, pode solucionar a nova versión da solución engadindo o compoñente de novo facendo isto:

  1. No ambiente de destino, desinstale a solución provisional (a solución que remata en _Upgrade).
  2. No ambiente de orixe, engada os compoñentes necesarios de volta á solución.
  3. Exporte a nova versión.
  4. Volva intentar a actualización.

Se a eliminación é intencionada, debe eliminar a dependencia. Probe os pasos descritos na sección anterior, se está a tentar desinstalar unha solución.

Capas e dependencias

Os compoñentes dependentes poden estar en capas, polo que pode ter que cambiar máis dunha solución para eliminar completamente unha dependencia. O marco de dependencia só calcula dependencias entre as capas superiores para os compoñentes necesarios e dependentes. Isto significa que necesita traballar da parte superior á parte inferior das solucións do compoñente dependente.

Teña en conta o seguinte procedemento:

Escolla dunha solución para desinstalar.

Intenta desinstalar Solución - Entidade personalizada e a operación será bloqueada por dependencias.

Dependencias que bloquean a desinstalación da solución.

Comece por diagnosticar a dependencia seleccionando Capas de solución no atributo new_numberfield. Observas a seguinte pantalla:

Dependencia entre o atributo new_numberfield e o fluxo de traballo de proba.

Debido a que as dependencias créanse só entre as capas superiores de cada compoñente, o primeiro paso é tratar coa dependencia entre o atributo new_numberfield en SolutionCustomEntity e no Fluxo de traballo de proba en SolutionWorkflow3.

Para eliminar a dependencia, decide desinstalar SolutionWorkflow3. Fai iso, pero cando intenta desinstalar a solución, móstrase a mesma páxina de dependencias:

Dependencias que bloquean a desinstalación da Solución: entidade personalizada.

Non obstante, o novo_campo_numérico a columna xa non aparece na lista, mesmo se existise en máis capas.

Accións para eliminar unha dependencia non xestionada

Para eliminar dependencias non xestionadas, cómpre actuar directamente sobre os compoñentes, e non nas solucións ás que pertencen. Por exemplo, se queres eliminar as dependencias entre unha columna e un formulario, debes editalo no deseñador de formularios e eliminar a columna do formulario. A dependencia elimínase despois de seleccionar Gardar e Publicar.

Nota

  • O/A Mostrar dependencias O comando permíteche realizar accións para ver, eliminar a dependencia, editar o compoñente ou borralo. Máis información: Ver dependencias dun compoñente
  • O botón Ver dependencias aparece cando se tenta eliminar un compoñente que ten dependencias. Aínda que esta pantalla che permite ver a dependencia, non che permite realizar ningunha acción.
  • Ao eliminar o compoñente dependente, a acción elimina todas as dependencias, xunto co compoñente.

Para ver as dependencias dun compoñente, na área Solucións , abra a solución que desexe, seleccione os puntos suspensivos verticais xunto ao compoñente e, a seguir, seleccione Avanzado>Mostrar dependencias.

A páxina de dependencias ten dúas partes diferenciadas:

  • Compoñentes dependentes: Unha lista de compoñentes que dependen da columna seleccionada. Noutras palabras, estes compoñentes teñen esta columna como compoñente obrigatorio.
  • Compoñentes necesarios: Unha lista dos compoñentes que esta columna require para funcionar. Noutras palabras, estes compoñentes teñen esta columna como o seu compoñente dependente.

Dependencias de compoñentes.

Pasos seguintes