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. Un exemplo de dependencia é o seguinte: dado que un campo é necesario para que un formulario funcione, se algunha vez intenta executar unha acción que redundará na eliminación dese campo, o formulario deixará de funcionar.

Nota

Neste artigo, eliminar significa que o compoñente está completamente eliminado do sistema.

Neste artigo, comentamos como xestionar estas dependencias e as estratexias que pode usar para eliminar as dependencias que xa non necesita.

Dependencias de compoñentes non xestionados fronte a xestionados

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

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 única 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 eliminará 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 eliminará esa capa.
  • Desinstalar a solución 2 non causa unha eliminación do compoñente. Só se eliminará esa capa.
  • Desinstalar a solución 1 non causa unha eliminación de compoñentes, 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.

  • Desinstalar a capa activa (non xestionada) non causa unha eliminación de compoñentes. Só se eliminará esa capa. Teña en conta que non pode desinstalar a solución activa, pero pode eliminar compoñentes usando a función Eliminar a 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 ambas as capas eliminaranse.

Mostrar a páxina de dependencias

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

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

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

Diagnosticar dependencias

Teña en conta o seguinte escenario. A organización seguinte ten dúas solucións: Solución - Fluxo de traballo e Solución - Entidade personalizada.

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

O propietario da organización decidiu que xa non requiren Solución - Entidade personalizada, intentou eliminala e presentouse coa seguinte páxina:

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

Sen entrar en detalle, podemos concluír que a desinstalación da solución está intentando eliminar unha entidade chamada Entidade personalizada e tres campos: Entidade personalizada, Nome e Campo de númeroe 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 axudaralle a decidir que facer para eliminar a dependencia.

Na seguinte figura móstranse detalles da dependencia entre a Entidade (entidade personalizada) e o proceso (fluxo de traballo de proba).

Detalles da dependencia da entidade personalizada.

Con base nos datos mostrados, pode ver que o compoñente dependente pertence a unha solución chamada SolutionWorkflow. Para eliminar esta dependencia, podemos:

  • Actualizar a definición do fluxo de traballo en SolutionWorkflow eliminando calquera referencia á entidade ou aos seus compoñentes secundarios. 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.

Na seguinte figura móstranse detalles da dependencia entre a Entidade (entidade personalizada) e unha aplicación baseada en modelos (a miña aplicación).

Dependencia entre Entidade (Entidade personalizada) e App (A miña aplicación).

Con base nos datos mostrados, pode ver 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á a tentar desinstalar unha solución

Siga estes pasos:

  1. Na organización de destino, inspeccione a ligazón Capas de solución para atopar cal é a solución máis importante da lista do compoñente dependente.
  2. Na organización 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. Na organización de destino, Actualice esa solución.
  5. Intente de novo a desinstalación.

Se está 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. Na organización de destino, desinstale a solución por fases (a solución que remata en _Upgrade).
  2. Na organización de orixe, volva engadir os compoñentes necesarios á 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:

Elixir unha 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. Consulte a seguinte pantalla:

Dependencia entre o atributo new_numberfield e o fluxo de traballo do 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 de Solución - Entidade personalizada.

Non obstante, o atributo new_numberfield xa non aparece, aínda que 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 desexa eliminar as dependencias entre un atributo e un formulario, ten que editalo no editor de formularios e eliminar o atributo do formulario. A dependencia eliminarase despois de seleccionar Gardar e Publicar.

Nota

  • O comando Mostrar dependencias permíteche realizar accións para ver, eliminar a dependencia, editar o compoñente ou eliminar o compoñente. Máis información: Ver as dependencias dun compoñente
  • Tamén pode eliminar o compoñente dependente. Esa acción elimina todas as dependencias xunto co compoñente.

Para ver as dependencias dun compoñente, desde a área Solucións , abra a solución que desexe, seleccione as elipses verticais xunto ao compoñente e, a continuación, seleccione Avanzado>Mostrar dependencias.

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

  • Compoñentes dependentes: lista de compoñentes que dependen do campo seleccionado. Noutras palabras, estes compoñentes terán este campo como o seu compoñente requirido.
  • Compoñentes necesarios: lista dos compoñentes que este campo require para poder funcionar. Noutras palabras, estes compoñentes terán este campo como o seu compoñente dependente.

Dependencias de compoñentes.

Consulte tamén