Seguimiento de las dependencias de los componentes de la soluciónDependency tracking for solution components

Las soluciones están hechas de componentes de soluciones.Solutions are made of solution components. Usará el área Soluciones en Common Data Service para crear o agregar componentes de la solución.You’ll use the Solutions area in Common Data Service to create or add solution components. Puede realizar estas acciones mediante programación usando el mensaje de AddSolutionComponentRequest o cualquier mensaje que cree o actualice componentes de la solución que incluyen un parámetro de SolutionUniqueName.You can perform these actions programmatically by using the AddSolutionComponentRequest message or any messages that create or update solution components that include a SolutionUniqueName parameter.

Los componentes de la solución a menudo dependen de otros componentes.Solution components often depend on other solution components. No puede eliminar cualquier componente de la solución que tenga dependencia de otro componente de la solución.You can’t delete any solution component that has dependencies on another solution component. Por ejemplo, una cinta personalizada requiere normalmente recursos web de imagen o de script para mostrar iconos y realizar acciones mediante scripts.For example, a customized ribbon typically requires image or script web resources to display icons and perform actions using scripts. Mientras la cinta personalizada esté en la solución, serán necesarios los recursos web específicos que use.As long as the customized ribbon is in the solution, the specific web resources it uses are required. Para poder eliminar los recursos web debe quitar las referencias a ellos en la cinta personalizada.Before you can delete the web resources you must remove references to them in the customized ribbon. Estas dependencias de componentes de solución se pueden ver en la aplicación haciendo clic en Mostrar dependencias.These solution component dependencies can be viewed in the application by clicking Show Dependencies.

Este tema describe los tipos de componentes de la solución que se puede incluir en sus soluciones y cómo dependen unos de otros.This topic describes the types of solution components you can include in your solutions and how they depend on each other.

Todos los componentes de la soluciónAll solution components

La lista completa de tipos de componentes de soluciones disponibles se encuentra en el conjunto de opciones globales del sistema componenttype.The complete list of available solutions component types is located in the system componenttype global option set. El intervalo de valores admitidos para esta propiedad está disponible al incluir el archivo OptionSets.cs o OptionSets.vb en el proyecto.The supported range of values for this property is available by including the file OptionSets.cs or OptionSets.vb in your project. Sin embargo, muchos de los tipos de componentes de la solución que se muestran aquí son solamente para uso interno y la lista no proporciona información sobre las relaciones entre los componentes de la solución.However, many of the solution component types listed there are for internal use only and the list doesn’t provide information about the relationships between solution components.

Dependencias de los componentes de soluciónSolution component dependencies

Las dependencias de los componentes de la solución ayudan a garantizar una experiencia confiable cuando trabaja con soluciones.Solution component dependencies help make sure you have a reliable experience working with solutions. Evitan que las acciones que normalmente se realizan incumplan de forma accidental las personalizaciones definidas en una solución.They prevent actions that you normally perform from unintentionally breaking customizations defined in a solution. Estas dependencias son las que permiten que una solución administrada se instale y desinstale simplemente importando o eliminando una solución.These dependencies are what allow a managed solution to be installed and uninstalled simply by importing or deleting a solution.

El marco de soluciones realiza un seguimiento automático de las dependencias de los componentes de la solución.The solutions framework automatically tracks dependencies for solution components. Cada función de un componente de la solución calcula automáticamente las dependencias con otros componentes del sistema.Every operation on a solution component automatically calculates any dependencies to other components in the system. La información de dependencia se usa para mantener la integridad del sistema y evitar operaciones que pueden llevar a un estado incoherente.The dependency information is used to maintain the integrity of the system and prevent operations that could lead to an inconsistent state.

Como resultado del seguimiento de la dependencia se aplican los siguientes comportamientos:As a result of dependency tracking the following behaviors are enforced:

  • Se evita la eliminación de un componente si otro componente del sistema depende de él.Deletion of a component is prevented if another component in the system depends on it.

  • La exportación de una solución advierte al usuario si hay componentes que faltan que pueden provocar un error al importar la solución en otro sistema.Export of a solution warns the user if there are any missing components that could cause failure when importing that solution in another system.

    Las advertencias durante la exportación pueden ignorarse si el desarrollador de la solución pretende que esta se instale únicamente en una organización donde se espera que existan componentes dependientes.Warnings during export can be ignored if the solution developer intends that the solution is only to be installed in an organization where dependent components are expected to exist. Por ejemplo, cuando se crea una solución que se ha diseñado para instalarse sobre una solución "base" instalada anteriormente.For example, when you create a solution that is designed to be installed over a pre-installed ”base” solution.

  • La importación de una solución es incorrecta si todos los componentes necesarios no se incluyen en la solución y tampoco existen en el sistema de destino.Import of a solution fails if all required components aren’t included in the solution and also don’t exist in the target system.

    • Además, al importar una solución administrada todos los componentes requeridos deben coincidir con el tipo de paquete de la solución.Additionally, when you import a managed solution all required components must match the package type of the solution. Un componente de una solución administrada puede depender solo de otro componente administrado.A component in a managed solution can only depend on another managed component.

    Existen tres tipos de dependencias de componentes de solución:There are three types of solution component dependencies:

    Elemento interno de la soluciónSolution Internal
    Las dependencias internas las administra Common Data Service.Internal dependencies are managed by Common Data Service. Existen cuando un componente de la solución en particular no puede existir sin otro componente de la solución.They exist when a particular solution component can’t exist without another solution component.

    PublicadoPublished
    Las dependencias públicas se crean cuando dos componentes de la solución se relacionan mutuamente y luego se publican.Published dependencies are created when two solution components are related to each other and then published. Para eliminar este tipo de dependencia, debe eliminarse la asociación y, a continuación, se deben volver a publicar las entidades.To remove this type of dependency, the association must be removed and the entities published again.

    Sin publicarUnpublished
    Las dependencias sin publicar se aplican a la versión sin publicar de un componente de la solución publicable se va a actualizar.Unpublished dependencies apply to the unpublished version of a publishable solution component that is being updated. Una vez que se publique el componente de la solución, se convierte en una dependencia publicada.After the solution component is published, it becomes a published dependency.

    Las dependencias internas de la solución son dependencias en las que las acciones con un componente de la solución necesitan una acción para otro componente de la solución.Solution internal dependencies are dependencies where actions with a solution component require an action for another solution component. Por ejemplo, si se elimina una entidad, se espera que se eliminen con ella todos sus atributos.For example, if you delete an entity, you should expect that all the entity attributes will be deleted with it. También se eliminarán todas las relaciones con otras entidades.Any entity relationships with other entities will also be deleted.

    Sin embargo, una dependencia interna puede llevar a una dependencia publicada y seguir necesitando intervención manual.However, an internal dependency may lead to a published dependency and still require manual intervention. Por ejemplo, si incluye un campo de búsqueda en un formulario de entidad y luego elimina la entidad primaria de la relación, no podrá completar esa eliminación hasta que quite el campo de búsqueda del formulario de entidad relacionado y luego publique el formulario.For example, if you include a lookup field on an entity form and then delete the primary entity in the relationship, you can’t complete that deletion until you remove the lookup field from the related entity form and then publish the form.

    Cuando realiza acciones mediante programación con soluciones, puede usar los mensajes relacionados con la entidad Dependency.When you perform actions programmatically with solutions, you can use messages related to the Dependency entity. Consulte Entidad de dependencia para ver los mensajes que puede usar para identificar las dependencias que pueden existir antes de eliminar un componente o desinstalar una solución.See Dependency Entity for messages you can use to identify dependencies that may exist before you delete a component or uninstall a solution.

Buscar dependencias de los componentes de la soluciónCheck for solution component dependencies

Cuando edite soluciones es posible que descubra que no puede eliminar un componente de la solución porque tiene una dependencia publicada con otro.When you edit solutions you may find that you can’t delete a solution component because it has a published dependency with another solution component. O bien, es posible que no pueda desinstalar una solución administrada porque uno de los componentes de la solución administrada se ha utilizado en una personalización de otra solución no administrada.Or, you may not be able to uninstall a managed solution because one of the components in the managed solution has been used in a customization in another unmanaged solution.

La siguiente tabla muestra los mensajes que puede usar para recuperar datos de dependencias de componentes de la solución.The following table lists the messages that you can use to retrieve data about solution component dependencies.

MensajeMessage DescripciónDescription
RetrieveDependentComponentsRequest Devuelve una lista de las dependencias de los componentes de la solución que dependen directamente de un componente de la solución.Returns a list of dependencies for solution components that directly depend on a solution component.

Por ejemplo, cuando se usa este mensaje para un componente de la solución global de conjunto de opciones, los registros de dependencia para los componentes de la solución que representan cualquier atributo de conjunto de opciones que hace referencia al componente de la solución global de conjunto de opciones se devuelven.For example, when you use this message for a global option set solution component, dependency records for solution components representing any option set attributes that reference the global option set solution component are returned.

Cuando se usa este mensaje para el registro de componentes de la solución para la entidad de cuenta, los registros de dependencia para todos los componentes de la solución que representan atributos, vistas y formularios usados para esa entidad se devuelven.When you use this message for the solution component record for the account entity, dependency records for all of the solution components representing attributes, views, and forms used for that entity are returned.
RetrieveRequiredComponentsRequest Devuelve una lista de las dependencias para los componentes de la solución de las que depende directamente otro componente de la solución.Returns a list of the dependencies for solution components that another solution component directly depends on. Este mensaje proporciona el reverso del mensaje de RetrieveDependentComponentsRequest.This message provides the reverse of the RetrieveDependentComponentsRequest message.
RetrieveDependenciesForDeleteRequest Devuelve una lista de todas las dependencias para los componentes de la solución que podrían evitar la eliminación de un componente de la solución.Returns a list of all the dependencies for solution components that could prevent deleting a solution component.
RetrieveDependenciesForUninstallRequest Devuelve una lista de todas las dependencias para los componentes de la solución que podrían evitar la desinstalación de una solución administrada.Returns a list of all the dependencies for solution components that could prevent uninstalling a managed solution.

Componentes comunes de la soluciónCommon Solution components

Estos son los componentes de la solución que se muestran en la aplicación y los componentes con lo que trabajará directamente al agregar o quitar componentes de la solución con la página de la solución.These are the solution components displayed in the application and the components that you’ll work with directly when adding or removing solution components using the solution page. Cada uno de los demás tipos de componentes de la solución dependerán de uno o más de estos componentes de la solución para existir.Each of the other types of solution components will depend on one or more of these solution components to exist.

Cintas de opciones de la aplicación (RibbonCustomization)Application Ribbons (RibbonCustomization) Entidad (Entity)Entity (Entity) Informe (Report)Report (Report)
Plantilla de artículo (KBArticleTemplate)Article Template (KBArticleTemplate) Perfil de seguridad de campo (FieldSecurityProfile)Field Security Profile (FieldSecurityProfile) Paso de procesamiento del mensaje del SDK (SDKMessageProcessingStep)SDK Message Processing Step (SDKMessageProcessingStep)
Rol de conexión (ConnectionRole)Connection Role (ConnectionRole) Plantilla de combinación de correspondencia (MailMergeTemplate)Mail Merge Template (MailMergeTemplate) Rol de seguridad (rol)Security Role (Role)
Plantilla de contrato (ContractTemplate)Contract Template (ContractTemplate) Conjunto de opciones (OptionSet)Option Set (OptionSet) Extremo de servicio (ServiceEndpoint)Service Endpoint (ServiceEndpoint)
Panel o formulario de entidad (SystemForm)Dashboard or Entity Form (SystemForm) Ensamblado de complemento (PluginAssembly)Plug-in Assembly (PluginAssembly) Mapa del sitio (SiteMap)Site Map (SiteMap)
Plantilla de correo electrónico (EmailTemplate)Email Template (EmailTemplate) Proceso (flujo de trabajo)Process (Workflow) Recurso web (WebResource)Web Resource (WebResource)

Cintas de opciones de la aplicación (RibbonCustomization)Application ribbons (RibbonCustomization)

Personalizaciones de cinta de opciones para las plantillas de la cinta de opciones de la entidad y la cinta de opciones de la aplicación.Ribbon customizations for the application ribbon and entity ribbon templates. Las cintas de opciones de la aplicación no incluyen definiciones de cintas en el nivel de la entidad o del formulario.Application ribbons don’t include definitions of ribbons at the entity or form level.

Las cintas de opciones de la aplicación personalizadas con frecuencia tienen publicadas dependencias de recursos web.Custom application ribbons frequently have published dependencies on web resources. Los recursos web se usan para definir iconos botón y funciones JavaScript para controlar cuándo se muestran los elementos de la cinta de opciones o qué acciones se realizan cuando se usa un determinado control de la cinta de opciones.Web resources are used to define ribbon button icons and JavaScript functions to control when ribbon elements are displayed or what actions are performed when a particular ribbon control is used. Las dependencias se crean únicamente cuando las definiciones de la cinta usan la directiva de $webresource: para asociar el recurso web a la cinta de opciones.Dependencies are only created when the ribbon definitions use the $webresource: directive to associate the web resource to the ribbon. Más información: Directiva $webresource.More information: $webresource directive

Plantilla de artículo (KBArticleTemplate)Article template (KBArticleTemplate)

La plantilla que contiene los atributos estándar de un artículo.Template that contains the standard attributes of an article. Siempre existe una dependencia interna entre la plantilla de artículo y la entidad KbArticle.There is always an internal dependency between the article template and the KbArticle entity.

Rol de conexión (ConnectionRole)Connection role (ConnectionRole)

Rol que describe una relación entre dos registros.Role describing a relationship between a two records. Cada rol de conexión define qué tipos de registros de la entidad se pueden vincular con el rol de conexión.Each connection role defines what types of entity records can be linked using the connection role. Se crea una dependencia publicada entre el rol de conexión y la entidad.This creates a published dependency between the connection role and the entity.

Plantilla de contrato (ContractTemplate)Contract template (ContractTemplate)

La plantilla que contiene los atributos estándar de un contrato.Template that contains the standard attributes of a contract. Siempre existe una dependencia interna entre la plantilla de contrato y la entidad de contrato.There is always an internal dependency between the contract template and the contract entity.

Panel o formulario de entidad (SystemForm)Dashboard or entity form (SystemForm)

Los registros de la entidad del formulario del sistema se usan para definir los paneles y formularios de entidad.System form entity records are used to define dashboards and entity forms. Cuando se usa un SystemForm como formulario de entidad hay una dependencia interna en la entidad.When a SystemForm is used as an entity form there is an internal dependency on the entity. Cuando se usa un SystemForm como panel, no hay ninguna dependencia interna.When a SystemForm is used as a dashboard there are no internal dependencies. Los paneles y los formularios de entidad habitualmente tienen dependencias publicadas relacionadas con su contenido.Both entity forms and dashboards commonly have published dependencies related to their content. Un formulario de entidad puede tener campos de búsqueda que dependen de una relación de entidad.An entity form may have lookup fields that depend on an entity relationship. Los paneles y formularios de entidad pueden contener gráficos o subcuadrículas que crearán una dependencia publicada en una vista, que tiene una dependencia interna de una entidad.Both dashboards and entity forms may contain charts or subgrids that will create a published dependency on a view, which then has an internal dependency on an entity. Una dependencia publicada de recursos web se puede crear debido al contenido que aparece en el panel o el formulario o cuando un formulario contiene las bibliotecas de JavaScript.A published dependency on web resources can be created because of content displayed within the dashboard or form or when a form contains JavaScript libraries. Los formularios de entidad tienen dependencias publicadas de cualquier atributo que se muestre como campo del formulario.Entity forms have published dependencies on any attributes that are displayed as fields in the form.

Plantilla de correo electrónico (EmailTemplate)Email template (EmailTemplate)

Plantilla que contiene los atributos estándar de un mensaje de correo electrónico.Template that contains the standard attributes of an email message. Una plantilla de correo electrónico normalmente incluye los campos que insertan datos de atributos de entidad especificados.An email template typically includes fields that insert data from specified entity attributes. Una plantilla de correo electrónico se puede vincular a una entidad específica cuando se crea de forma que puede haber una dependencia interna en la entidad.An email template can be linked to a specific entity when it is created so there can be an internal dependency on the entity. Una plantilla de correo electrónico global no está asociada con una entidad específica, pero puede tener dependencias publicadas en los atributos de entidad usados para proporcionar datos.A global email template isn’t associated with a specific entity, but it may have published dependencies on entity attributes used to provide data. Con frecuencia se configura un proceso (flujo de trabajo) para enviar un correo electrónico usando una plantilla de correo electrónico que crea una dependencia publicada con el flujo de trabajo.A process (workflow) frequently is configured to send an email using an email template creating a published dependency with the workflow.

Entidad (Entity)Entity (Entity)

La estructura primaria usada para modelar y administrar datos en Common Data Service.The primary structure used to model and manage data in Common Data Service. Los gráficos, los formularios, las relaciones de entidad, las vistas y los atributos asociados a una entidad se eliminan automáticamente cuando se elimina la entidad debido a las dependencias internas entre ellos.Charts, forms, entity relationships, views, and attributes associated with an entity are deleted automatically when the entity is deleted because of the internal dependencies between them. Las entidades con frecuencia tienen publicadas dependencias con procesos, paneles y plantillas de correo electrónico.Entities frequently have published dependencies with processes, dashboards, and email templates.

Perfil de seguridad de campo (FieldSecurityProfile)Field security profile (FieldSecurityProfile)

Perfil que define el nivel de acceso para los atributos protegidos.Profile that defines the access level for secured attributes.

Plantilla de combinación de correspondencia (MailMergeTemplate)Mail merge template (MailMergeTemplate)

Plantilla que contiene los atributos estándar de un documento de combinación de correspondencia.Template that contains the standard attributes of a mail merge document. Una plantilla de combinación de correspondencia tiene una dependencia publicada de la entidad con la que está asociada.A mail merge template has a published dependency on the entity it’s associated with.

Conjuntos de opciones (OptionSet)Option set (OptionSet)

Un conjunto de opciones define un conjunto de opciones.An option set defines a set of options. Un atributo de lista desplegable usa un conjunto de opciones para definir las opciones que proporciona.A picklist attribute uses an option set to define the options provided. Varios atributos de lista desplegable pueden usar un solo conjunto de opciones global de modo que las opciones que proporcionen sean siempre las mismas y pueden mantenerse en un solo lugar.Several picklist attributes may use a global option set so that the options they provide are always the same and can be maintained in one place. Una dependencia publicada se produce cuando un atributo de lista desplegable hace referencia a un conjunto de opciones globales.A published dependency occurs when a picklist attribute references a global option set. No puede eliminar un conjunto de opciones globales que esté usando un atributo de lista desplegable.You can’t delete a global option set that is being used by a picklist attribute.

Ensamblado de complemento (PluginAssembly)Plug-in assembly (PluginAssembly)

Ensamblado que contiene uno o más tipos de complementos.Assembly that contains one or more plug-in types. Los complementos se registran en los eventos asociados normalmente con una entidad.Plug-ins are registered to events that are typically associated with an entity. Esto crea una dependencia publicada.This creates a published dependency.

Proceso (flujo de trabajo)Process (Workflow)

Conjunto de reglas lógicas que define los pasos necesarios para automatizar un proceso, una tarea o un conjunto de acciones empresariales específicos que se deben realizar.Set of logical rules that define the steps necessary to automate a specific business process, task, or set of actions to be performed. Los procesos proporcionan una amplia gama de acciones que crean dependencias publicadas en cualquier otro componente de la solución al que hace referencia el proceso.Processes provide a wide range of actions that create published dependencies on any other solution component referenced by the process. Cada proceso tiene también una dependencia publicada de la entidad con la que está asociada.Each process also has a published dependency on the entity it’s associated with.

Informe (Report)Report (Report)

Resumen de datos en un diseño fácil de leer.Data summary in an easy-to-read layout. Un informe publicó dependencias de los datos de la entidad o del atributo incluidos en el informe.A report has published dependencies on any entity or attribute data included in the report. Cada informe también debe asociarse con una categoría de informes que cree una dependencia interna de un componente de la solución llamado categoría relacionada del informe (ReportCategory).Each report must also be associated with a Report category creating an internal dependency on a solution component called Report Related Category (ReportCategory). Los informes se pueden configurar para ser subinformes que crean una dependencia publicada con el informe primario.Reports may be configured to be subreports creating a published dependency with the parent report.

Paso de procesamiento del mensaje de SDK (SDKMessageProcessingStep)SDK message processing step (SDKMessageProcessingStep)

Fase de la canalización de ejecuciones que debe ejecutar un complemento.Stage in the execution pipeline that a plug-in is to execute.

Rol de seguridad (rol)Security role (Role)

Agrupación de privilegios de seguridad.Grouping of security privileges. Se asignan a los usuarios roles que autorizan su acceso al sistema Common Data Service.Users are assigned roles that authorize their access to the Common Data Service system. Los formularios de entidad se pueden asociar con roles de seguridad específicos para controlar quién puede ver el formulario.Entity forms can be associated with specific security roles to control who can view the form. Esto crea una dependencia publicada entre el rol de seguridad y el formulario.This creates a published dependency between the security role and the form.

Nota

Solo los roles de seguridad de la unidad de negocio de la organización se pueden agregar a una solución.Only security roles from the organization business unit can be added to a solution. Solo un usuario con acceso de lectura a estos roles de seguridad puede agregarlos a una solución.Only a user with read access to those security roles can add them to a solution.

Extremo de servicio (ServiceEndpoint)Service endpoint (ServiceEndpoint)

Extremo de servicio que puede contactarse.Service endpoint that can be contacted.

Mapa del sitio (SiteMap)Site map (SiteMap)

Datos de XML usados para controlar el panel de navegación de la aplicación.XML data used to control the application navigation pane. El mapa del sitio se puede vincular para mostrar un recurso web HTML o un icono del mapa del sitio puede usar un recurso web de imagen.The site map may be linked to display an HTML web resource or an icon in the site map may use an image web resource. Cuando la directiva de $webresource: se usa para establecer estas asociaciones se crea una dependencia publicada.When the $webresource: directive is used to establish these associations a published dependency is created. Más información: Directiva $webresource.More information: $webresource directive

Recurso web (WebResource)Web resource (WebResource)

Datos equivalentes a los archivos que se usan en el desarrollo web.Data equivalent to files used in web development. Los recursos web proporcionan los componentes de cliente que se usan para proporcionar elementos de la interfaz de usuario personalizados.Web resources provide client-side components that are used to provide custom user interface elements. Los recursos web pueden haber publicado dependencias con formularios de entidad, cintas y el mapa del sitio.Web resources may have published dependencies with entity forms, ribbons and the SiteMap. Cuando la directiva de $webresource: se usa para establecer asociaciones en una cinta o el mapa del sitio, se crea una dependencia publicada.When the $webresource: directive is used to establish associations in a ribbon or the SiteMap, a published dependency is created. Para obtener más información, consulte Directiva $webresource.For more information, see $webresource directive.

Nota

Los recursos web pueden depender de otros recursos web basándose en los vínculos relativos.Web resources may depend on other web resources based on relative links. Por ejemplo, un recurso web HTML puede usar un recurso web de CSS o de script.For example, an HTML web resource may use a CSS or script web resource. Un recurso web de Silverlight mostrado fuera de un gráfico o formulario de entidad debe tener un recurso web HTML para alojarlo.A Silverlight web resource displayed outside of an entity form or chart must have an HTML web resource to host it. Estas dependencias no se siguen como dependencias de solución.These dependencies aren’t tracked as solution dependencies.

Vea tambiénSee also

Eliminar dependencias Removing dependencies
Empaquetar y distribuir extensiones con soluciones de Dynamics 365 Package and Distribute Extensions with Dynamics 365 Solutions
Introducción a las soluciones Introduction to Solutions
Planear el desarrollo de la solución Plan For Solution Development
Crear, exportar o importar una solución no administrada Create, Export, or Import an Unmanaged Solution
Crear, instalar y actualizar una solución administrada Create, install, and update a managed solution
Crear, instalar y actualizar una solución administrada Create, Install, and Update a Managed Solution
Desinstalar o eliminar una solución Uninstall or Delete a solution
Entidades de soluciónSolution entities