Eliminar dependencias

Los componentes de la solución a menudo dependen de otros componentes. No puede eliminar cualquier componente de la solución que tenga dependencia de otro componente de la solución. Las dependencias son registros creados automáticamente por el marco de soluciones para evitar que los componentes requeridos se eliminen mientras uno o más componentes dependientes aún incluyen referencias a ellos. Un ejemplo de dependencia es el siguiente: dado que se requiere un campo para que funcione un formulario, si alguna vez intenta ejecutar una acción que resultará en la eliminación de ese campo, el formulario dejará de funcionar.

Nota

En este articulo, eliminar significa que el componente queda completamente eliminado del sistema.

En este artículo, discutiremos cómo manejar estas dependencias y las estrategias que puede usar para eliminar las dependencias que ya no necesita.

Dependencias de componentes no administrados frente a componentes administrados

Primero, es importante comprender que las dependencias solo evitan operaciones que eliminarán un componente necesario. Las acciones que pueden eliminar un componente son diferentes, dependiendo de si está o no administrado.

Componentes no administrados

Estos componentes están representados por una única capa en la solución activa. Cualquier operación de Eliminar en uno de estos componentes da como resultado la eliminación completa del componente.

Componentes administrados

La eliminación de componentes administrados depende de múltiples factores: el número de capas de solución, la posición relativa de la capa que se está desinstalando y los editores de componentes. Por ejemplo, cuando se elimina un componente, considere los siguientes escenarios y cuál será el comportamiento esperado cuando desinstale las diversas capas.

Escenarios de ejemplo

Los siguientes escenarios de ejemplo ilustran lo que sucede con las capas de solución cuando se desinstalan las soluciones.

Escenario 1: desinstalar una única capa de solución

Desinstalar con una sola capa.

La desinstalación de la Solución 1 provoca la eliminación de un componente, porque es la única capa del componente.

Escenario 2: desinstalar capas de soluciones de diferentes editores

Desinstalar con dos capas: editor diferente.

  • Desinstalar la Solución 2 no causa la eliminación de un componente. Solo se eliminará esa capa.
  • La desinstalación de la Solución 1 provoca la eliminación de un componente, porquela acción sucede en la capa base. De hecho, la Solución 1 no se puede desinstalar en este escenario, porque una solución de un editor diferente extiende el componente.

Escenario 3: desinstalar varias capas de soluciones de diferentes editores

Desinstalar con múltiples capas: editor diferente.

  • Desinstalar la Solución 3 no causa la eliminación de un componente. Solo se eliminará esa capa.
  • Desinstalar la Solución 2 no causa la eliminación de un componente. Solo se eliminará esa capa.
  • La desinstalación de la Solución 1 no causa la eliminación de un componente, porque en este caso hay otra solución del mismo editor (Editor A = Editor C). La plataforma elimina la capa de la solución 1 y la reemplaza con la capa de la solución 3.

Escenario 4: desinstalar capas de solución en una personalización no administrada

Desinstalar con dos capas: personalización no administrada.

  • Desinstalar la capa Activa (no administrada) no causa la eliminación de un componente. Solo se eliminará esa capa. Tenga en cuenta que no puede desinstalar la solución Activa, pero puede eliminar componentes utilizando la función Eliminar personalización Activa.
  • Desinstalar la Solución 1 causa la eliminación de un componente. La acción ocurre en la capa base. A diferencia del escenario 2, puede desinstalar la solución 1. La solución Activa no se considera una extensión, y ambas capas se eliminarán.

Página Detalles de dependencia

La página Detalles de dependencia enumera las dependencias para la solución seleccionada. Puede ser invocado:

  • Selección de Mostrar dependencias en la página de soluciones.
  • Se intenta desinstalar una solución, lo que hará que la plataforma detecte que existen dependencias.

Ejemplo de una página Detalles de dependencia.

La página Detalles de dependencia tiene las siguientes columnas:

  • Nombre para mostrar: el nombre descriptivo del componente necesario. Cada componente puede mostrar datos ligeramente diferentes para facilitar la identificación. En la figura anterior, puede ver que la entidad solo muestra su nombre, mientras que el campo muestra su nombre y el nombre de su entidad primaria.
  • Nombre/Id.: el nombre interno del componente necesario.
  • Tipo: tipo del componente requerido.
  • Requerido por: el nombre descriptivo del componente que lo requiere (el componente dependiente). Si el componente dependiente tiene una página de personalización, su nombre se convierte en un vínculo que abre esa página.
  • Tipo dependiente: el tipo del componente dependiente.
  • Capas de soluciones: un vínculo donde puede ver más detalles sobre los componentes involucrados en la dependencia.

Nota

El componente requerido es el que desea eliminar. El componente dependiente es el que tiene referencias al componente requerido. Para eliminar una dependencia, debe realizar cambios que afecten al componente dependiente, no al componente requerido.

Diagnóstico de dependencias

Tengamos en cuenta el escenario siguiente. La siguiente organización tiene dos soluciones: Solución - Flujo de trabajo y Solución - Entidad personalizada.

Lista de soluciones con dos soluciones.

El propietario de la organización decidió que ya no se necesitaba Solución - Entidad personalizada, intentó eliminarlo y se le presentó la siguiente página:

Detalles de dependencia al intentar eliminar una solución.

Sin entrar en detalles, podemos concluir que la desinstalación de la solución está tratando de eliminar una entidad llamada Entidad personalizada y tres campos — Entidad personalizada, Nombre y Campo numérico — y los cuatro componentes tienen dependencias.

Nota

La desinstalación de la solución podría eliminar más componentes, pero como no tienen dependencias, no aparecerán en la lista.

El siguiente paso es comprobar el vínculo Capas de soluciones (columna de más a la derecha) para cada dependencia. Esto le ayudará a decidir qué hacer para quitar la dependencia.

La siguiente figura muestra detalles de dependencia entre la Entidad (Entidad personalizada) y el Proceso (Flujo de trabajo de pruebas).

Detalles de dependencia de entidad personalizada.

Según los datos que se muestran, puede ver que el componente dependiente pertenece a una solución llamada SolutionWorkflow. Para eliminar esta dependencia, podemos:

  • Actualice la definición del flujo de trabajo en SolutionWorkflow, eliminando cualquier referencia a la entidad o sus subcomponentes. Luego, Actualizar o Mejorar la solución.
  • Desinstalar la solución SolutionWorkflow.
  • Elimine el flujo de trabajo de una nueva versión de la solución SolutionWorkflow y luego realice una Actualización.

Debido a que cualquier componente dependiente puede evitar la eliminación de la solución, le recomendamos que compruebe todas las dependencias y realice todos los cambios necesarios en una sola operación.

La siguiente figura muestra detalles de dependencia entre la Entidad (Entidad personalizada) y una aplicación basada en modelo (Mi aplicación).

Dependencia entre Entidad (Entidad personalizada) y Aplicación (Mi aplicación).

Según los datos que se muestran, puede ver que el componente dependiente pertenece a una solución denominada Activa. Esto indica que la dependencia se creó al importar una solución no administrada o mediante una personalización no administrada que se ejecutó a través de la interfaz de usuario o API moderna.

Para eliminar esta dependencia, puede:

  • Edite la definición de la aplicación basada en modelo para eliminar cualquier referencia a la entidad o sus subcomponentes. Debido a que las aplicaciones basadas en modelo admiten la publicación, debe publicar sus cambios.
  • Eliminar la aplicación basada en modelo.

Nota

Desinstalar una solución no administrada no es una opción para eliminar esta dependencia, porque las soluciones no administradas son solo un medio de agrupar componentes.

Acciones para eliminar una dependencia administrada

Las dependencias administradas son aquellas en las que el componente dependiente está asociado a un solución administrada. Para resolver este tipo de dependencia, debe actuar sobre la solución donde se agregó el componente. Esa acción puede ser diferente según lo que intente hacer.

Si está intentando desinstalar una solución

Siga estos pasos:

  1. En la organización de destino, inspeccione el vínculo Capas de solución para encontrar cuál es la solución mejor en la lista del componente dependiente.
  2. En la organización fuente, prepare una nueva versión de esa solución donde la solución no contenga el componente dependiente o tenga una versión actualizada del componente dependiente que no contenga referencias al componente necesario. Su objetivo es eliminar cualquier referencia a los componentes necesarios en la nueva versión de la solución.
  3. Exporte la nueva versión de la solución.
  4. En la organización de destino, mejore esa solución.
  5. Vuelva a intentar la desinstalación.

Si está intentando actualizar una solución

En este caso, debe confirmar que deseaba eliminar el componente necesario (recuerde que las dependencias solo se aplican en los componentes que se están eliminando).

Si no desea eliminar el componente, puede corregir la nueva versión de la solución agregando nuevamente el componente, haciendo lo siguiente:

  1. En la organización de destino, desinstale la solución por etapas (la solución que termina en _Upgrade).
  2. En la organización de origen, agregue los componentes necesarios de nuevo a la solución.
  3. Exporte la nueva versión.
  4. Reintente la actualización.

Si la eliminación es intencional, debe eliminar la dependencia. Pruebe los pasos descritos en la sección anterior, "Si está intentando desinstalar una solución".

Capas y dependencias

Los componentes dependientes pueden estar en capas, por lo que es posible que deba cambiar más de una solución para eliminar por completo una dependencia. El marco de dependencia solo calcula dependencias entre las capas superiores para los componentes necesarios y dependientes. Eso significa que debe trabajar desde la parte superior hasta la parte inferior de las soluciones del componente dependiente.

Tenga en cuenta el escenario siguiente:

Elegir una solución a desinstalar.

Intenta desinstalar Solución - Entidad personalizada y la operación está bloqueada por dependencias.

Dependencias que bloquean la desinstalación de la solución.

Comience a diagnosticar la dependencia seleccionando Capas de solución en el atributo new_numberfield. Ve la siguiente pantalla:

Dependencia entre el atributo new_numberfield y el flujo de trabajo Flujo de trabajo de prueba.

Debido a que las dependencias se crean solo entre las capas superiores de cada componente, el primer paso es tratar la dependencia entre el atributo new_numberfield de SolutionCustomEntity y el flujo de trabajo Flujo de trabajo de prueba de SolutionWorkflow3.

Para quitar la dependencia, decide desinstalar SolutionWorkflow3. Lo hace, pero cuando intenta desinstalar la solución una vez más, aparece la misma página de dependencias:

Dependencias que bloquean la desinstalación de la solución: entidad personalizada.

Sin embargo, el atributo new_numberfield ya no aparece, pese a que existía en más capas.

Acciones para eliminar una dependencia no administrada

Para eliminar dependencias no administradas, debe actuar directamente sobre los componentes, no en las soluciones a las que pertenecen. Por ejemplo, si desea eliminar las dependencias entre un atributo y un formulario, debe editarlo en le Editor de formularios y eliminar el atributo del formulario. La dependencia se eliminará después de seleccionar Guardar y Publicar.

Nota

También puede eliminar el componente dependiente. Esa acción elimina todas las dependencias, junto con el componente.

Para ver las dependencias de un componente, ubíquelo en la página de personalizaciones y luego seleccione Mostrar dependencias.

Página de personalizaciones.

La página de dependencias tiene dos partes distintas:

  • Componentes dependientes: una lista de componentes que dependen del campo seleccionado. En otras palabras, estos componentes tendrán este campo como su componente requerido.
  • Componentes necesarios: una lista de componentes que este campo necesita para funcionar. En otras palabras, estos componentes tendrán este campo como su componente dependiente.

Dependencias de componente.

Campo y flujo de trabajo

Para eliminar dependencias entre campos (atributos) y flujos de trabajo (procesos), ubique el flujo de trabajo en la página de personalizaciones.

Cuando vea los detalles del flujo de trabajo, busque la referencia al componente del que ya no desea que dependa el flujo de trabajo. En este ejemplo, puede ver el campo Campo numérico referenciado en un paso del proceso.

Encontrar la dependencia del flujo de trabajo.

Elimine (o cambie) el paso y luego guarde el flujo de trabajo.

Campo y vista

Para eliminar dependencias entre campos (atributos) y vistas (consultas guardadas), localice la vista en la página de personalizaciones.

En el editor de campo, busque la referencia al componente del que ya no desea que dependa la vista. En este ejemplo, verá que el campo Campo numérico se utiliza como columna de selección y como filtro.

Editar vista.

Elimine ambos, guarde y luego publique la vista.

Entidad y aplicaciones basadas en modelo

Para eliminar las dependencias entre entidades y aplicaciones basadas en modelo (Módulo de aplicaciones), localice la aplicación en la lista Aplicaciones de la interfaz de usuario moderna.

Lista de aplicaciones.

En el diseñador de aplicaciones, localice la referencia al componente del que ya no desea que dependa la aplicación. En este ejemplo, aparece la entidad Entidad personalizada en Vista de entidad.

Diseñador de aplicaciones.

Además, inspeccione el mapa del sitio asociado con la aplicación, porque es probable que encuentre referencias allí.

Diseñador del mapa del sitio.

Quite todas las referencias y luego guarde y publique tanto la aplicación como el mapa del sitio.

Nota

Después de ser editados, los componentes se pueden agregar a las soluciones administradas y transportarse a otras organizaciones para eliminar las dependencias administradas.

Vea también

Conceptos de soluciones
Capas de soluciones
Seguimiento de las dependencias de los componentes de la solución

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).