Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 que, dado que se requiere un campo para que un formulario funcione, cuando intenta ejecutar una acción que resulta en la eliminación de ese campo, el formulario dejará de funcionar.
Otro ejemplo es cuando intentas eliminar el mapa del sitio de una aplicación basada en modelos. El sistema indica que existe una dependencia de la aplicación. La aplicación es el componente dependiente y el mapa del sitio es el componente requerido. El sistema le impide eliminar el mapa del sitio hasta que elimine la dependencia.
Nota
Eliminar significa que el componente se elimina por completo Microsoft Dataverse.
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
En primer lugar, es importante comprender que las dependencias solo impiden operaciones que eliminan un componente requerido. Las acciones que pueden eliminar un componente son diferentes, dependiendo de si está o no administrado.
Es bueno estar familiarizado con el concepto de solución y capas de componentes al describir dependencias. Si no está familiarizado, le recomendamos que lea este artículo antes de continuar: Capas de solución
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
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 la Solución 2 no causa la eliminación de un componente. Sólo se elimina 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 la Solución 3 no causa la eliminación de un componente. Sólo se elimina esa capa.
- Desinstalar la Solución 2 no causa la eliminación de un componente. Sólo se elimina esa capa.
- La desinstalación de la Solución 1 no provoca la eliminación del 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
- La desinstalación de la capa activa (no administrada) no provoca la eliminación del componente. Sólo se elimina esa capa. Tenga en cuenta que no puede desinstalar la solución activa, pero puede eliminar componentes mediante 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 se eliminan ambas capas.
Mostrar página de dependencias
El comando Mostrar dependencias enumera las dependencias de la solución o componente de solución seleccionado. Puede ser invocado:
- Seleccionando Mostrar dependencias en la página de soluciones.
- Seleccionando Avanzado>Mostrar dependencias dentro de una solución cuando se selecciona un componente de la solución.
- Intentar desinstalar una solución, lo que hace que la plataforma detecte que existen dependencias.
Desde la página Dependencias puede abrir, quitar o eliminar el componente. Más información: Ver dependencias de un componente
Diagnóstico de dependencias
Consideremos este escenario: El entorno aquí tiene dos soluciones: Solución - Flujo de trabajo y Solución - Entidad personalizada.
Un creador del entorno decide que ya no necesita Solución - Entidad personalizada. El creador intentó eliminarlo y le apareció la siguiente página:
La desinstalación de la solución intenta eliminar una tabla denominada Entidad personalizada y tres campos: Entidad personalizada, Nombre y Campo de número, 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 eliminar la dependencia.
La siguiente figura muestra los detalles de dependencia entre la tabla (entidad personalizada) y el proceso (flujo de trabajo de prueba).
Según los datos mostrados, puede observar que el componente dependiente pertenece a una solución denominada SolutionWorkflow. Para eliminar esta dependencia, puede:
- Actualice la definición del flujo de trabajo en SolutionWorkflow eliminando cualquier referencia a la tabla 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 tabla (Entidad personalizada) y una aplicación impulsada por modelos (MyApp).
Según los datos mostrados, se puede observar 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:
- En el entorno de destino, inspeccione el vínculo Capas de solución para encontrar cuál es la solución superior en la lista del componente dependiente.
- En el entorno de origen, 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 requerido. Su objetivo es eliminar cualquier referencia a los componentes necesarios en la nueva versión de la solución.
- Exporte la nueva versión de la solución.
- En el entorno de destino, Actualice esa solución.
- 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:
- En el entorno de destino, desinstale la solución preparada (la solución que termina en _Upgrade).
- En el entorno de origen, agregue nuevamente los componentes necesarios a la solución.
- Exporte la nueva versión.
- 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:
Intenta desinstalar Solución - Entidad personalizada y la operación está bloqueada por dependencias.
Comience a diagnosticar la dependencia seleccionando Capas de solución en el atributo new_numberfield. Observa la siguiente pantalla:
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:
Sin embargo, la columna new_numberfield ya no aparece en la lista, incluso si 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 una columna y un formulario, debe editarlo en el diseñador de formularios y eliminar la columna del formulario. La dependencia se elimina después de seleccionar Guardar y Publicar.
Nota
- El comando Mostrar dependencias le permite tomar medidas para ver, eliminar la dependencia, editar el componente o eliminar el componente. Más información: Ver dependencias de un componente
- El botón Ver dependencias aparece cuando intenta eliminar un componente que tiene dependencias. Aunque esta pantalla le permite ver la dependencia, no le permite realizar ninguna acción.
- Cuando se elimina el componente dependiente, la acción elimina todas las dependencias, junto con el componente.
Para ver las dependencias de un componente, desde el área Soluciones, abra la solución que desee, seleccione los tres puntos verticales junto al componente y luego seleccione Avanzado>Mostrar dependencias.
La página de dependencias tiene dos partes distintas:
- Componentes dependientes: una lista de componentes que dependen de la columna seleccionada. En otras palabras, estos componentes tienen esta columna como su componente requerido.
- Componentes necesarios: una lista de componentes que esta columna requiere para funcionar. En otras palabras, estos componentes tienen esta columna como su componente dependiente.