Registrar un complemento

Después de escribir y compilar un complemento, debe registrarse con el marco de trabajo de eventos para que se ejecute cuando Dataverse procese una entidad (fila de tabla) o mensaje (operación) específicos. Para registrar un complemento con el marco de eventos de Dataverse se requiere el uso de una herramienta: Herramienta de registro de complementos (PRT) o la extensión de Power Platform Tools para Visual Studio.

El PRT crea registros de objetos de Dataverse y admite la edición de esos registros. En este artículo se describe cómo registrar un ensamblado y un paso de complemento, agregar un ensamblado a una solución y realizar otras operaciones comunes relacionadas con complementos con la herramienta Registro de complemento.

La extensión Visual Studio proporciona un entorno de desarrollo con más funciones y cubre todo el proceso de desarrollo de codificación, implementación y depuración/perfilado. Para obtener información sobre el uso de la extensión Power Platform Tools para Visual Studio, consulte el inicio rápido.

Acerca de la herramienta de registro de complementos

La herramienta de registro de complementos (PRT) admite el registro de ensamblajes de complementos, pasos de procesamiento de mensajes y otros tipos de objetos con Dataverse. PRT es una de varias herramientas de Dataverse disponibles para descargar desde NuGet.org. Siga las instrucciones en Herramientas de desarrollo de Dataverse para descargar PRT y, opcionalmente, otras herramientas de desarrollo.

Después de descargar el PRT, siga las instrucciones de Conéctese usando la herramienta de registro de complementos para conectar la herramienta a su entorno objetivo Dataverse donde su complemento se va a registrar.

La ventena principal de la herramienta de registro de complementos

Registro de ensamblados

Registrar un ensamblado incluye la carga del ensamblado a la base de datos de Dataverse, que gestiona la herramienta. Consulte las instrucciones que se encuentran en Registrar el ensamblado en el Tutorial: Escribir y registrar un complemento

Nota

Encontrará opciones relacionadas con el modo aislado y ubicación para el ensamblado. Estos hacen referencia a opciones que se aplican a implementaciones locales. Dataverse no está disponible para implementaciones locales, por lo que usted siempre aceptará las opciones predeterminadas de Espacio aislado y Base de datos para estas opciones.

Cuando se carga un ensamblado, se almacena en la tabla PluginAssembly. La mayoría de las propiedades se establecen utilizando la reflexión del ensamblado importado. Los bytes codificados en base64 del conjunto se almacenan en la columna Content. Mientras ve las Propiedades del ensamblado en la PRT, solo puede editar Descripción value. Todas las clases compiladas dentro del ensamblado que implementan la interfaz IPlugin o derivan de CodeActivity se registran automáticamente.

Ver ensamblados registrados

Puede ver información sobre los ensamblajes de complementos registrados en el Explorador de soluciones clásico de Power Apps, en Soluciones en el panel de navegación izquierdo de Power Apps y en la vista de ensamblaje PRT. Para acceder al Explorador de soluciones en Power Apps, elija Soluciones y luego elija Cambiar a clásico en la barra de herramientas. Para acceder a la solución predeterminada desde Power Apps, elija Soluciones, seleccione "Solución predeterminada" en la lista y luego elija Ensamblados de complementos dentro del panel izquierdo Objetos.

Nota

Cada ensamblado que registre se agregará a la Solución predeterminada, que no debe confundirse con la Solución predeterminada Common Data Services. Para obtener más información acerca de soluciones, vea Introducción a soluciones

Agregar el ensamblado a una solución

Como se describe en Ver ensamblados registrados, el registro de ensamblados que ha creado se agregó a la Solución predeterminada del sistema. Debe agregar el ensamblado a una solución no administrada para poder distribuirla a otras organizaciones. El PRT no permite especificar una solución al registrar un ensamblado o pasos.

Para obtener más información sobre las soluciones y cómo crear una, consulte Información general de las soluciones y Crear una solución. Una vez que haya creado una solución, puede agregarle el ensamblado del complemento en Power Apps si elige primero la solución en la lista de soluciones y luego elige Agregar existente > Más > Desarrollador > Ensamblado de complemento.

Nota

Los registros de pasos existentes o posteriores (vea la siguiente sección) no se agregan a la solución no administrada que incluye los ensamblados de complementos. Debe agregar cada paso registrado a la solución por separado. Más información: Agregar paso a solución

Registro de pasos

Cuando un ensamblado se carga o actualiza, las clases que implementen IPlugin estarán disponibles en la PRT. Use las instrucciones en Registrar un nuevo paso en el Tutorial: Escribir y registrar un complemento para crear un nuevo registro de paso.

Al registrar una paso, hay muchas opciones de registro disponibles para usted que dependen de la fase de la canalización de eventos y la tipo de la operación en la que quiera registrar su código.

Campos de información de configuración general

Campo Description
Publicación PRT autocompletará nombres de mensaje disponibles en el sistema. Más información: Usar mensajes con SDK para .NET
Entidad principal PRT completará automáticamente las tablas válidas que se apliquen al mensaje seleccionado. Estos mensajes tienen un parámetro Target que acepta un tipo Entity o EntityReference. Si se aplican tablas válidas, debe establecer este valor de campo cuando desee limitar el número de veces que se llama al complemento.
Si lo deja en blanco para los mensajes de la tabla principal como Update, Delete, Retrieve y RetrieveMultiple o cualquier mensaje que se pueda aplicar con el mensaje, el complemento se invocará para todas las tablas que admitan este mensaje.
Entidad secundaria Este campo se mantiene para la compatibilidad con versiones anteriores para los mensajes obsoletos que aceptaban una matriz de EntityReference como el parámetro Target. Este campo no se suele usar más.
Atributos de filtro Con el mensaje Update o OnExternalUpdated, cuando configura la Entidad principal, el filtrado de columnas limita la ejecución del complemento a los casos en los que las columnas seleccionadas se incluyen en la actualización. Establecer este campo esta es una práctica recomendada para rendimiento. No incluya la clave principal de la entidad en los atributos de filtrado. La clave principal siempre se incluye en las operaciones de actualización, por lo que al hacerlo se negarán todos los demás atributos filtrados.
Controlador de eventos Este valor de campo se rellenará en función del nombre del ensamblado y de la clase del complemento.
Nombre del paso Nombre del paso. Se indica previamente un valor en función de la configuración del paso, pero este valor puede ser reemplazado.
Ejecutar en contexto de usuario Proporciona opciones para aplicar suplantación para el paso. El valor predeterminado es Usuario que llama. Si el usuario que llama no tiene privilegios para realizar operaciones en el paso, es posible que necesite configurar este valor de campo como un usuario que tiene estos privilegios. Más información: Establecer la suplantación de identidad del usuario para un paso
Pedido de ejecución Pueden registrarse múltiples pasos para la misma fase del mismo mensaje. El número en este campo determina el orden en que se aplicarán, de menor a mayor.
Nota: debe establecer esta opción para controlar el orden en el que los complementos se aplican en la fase. No se recomienda para aceptar simplemente el valor predeterminado. El orden de ejecución real de los complementos con el mismo valor de Orden de ejecución (para la misma etapa, tabla y mensaje) no está garantizado y puede ser aleatorio.
Descripción Descripción del paso. Este valor se rellena previamente pero puede sobrescribirse.

Fase de canalización de eventos de ejecución

Elija la fase de la canalización de eventos que mejor se adapte al objetivo del complemento.

Opción Descripción
PreValidation Para la operación inicial, esta fase se producirá antes de la operación del sistema principal.

Esto brinda una oportunidad para incluir lógica para cancelar la operación antes de la transacción de la base de datos.

Las operaciones posteriores desencadenadas por extensiones registradas en otras fases pasarán esta fase, pero se incluirán en la transacción de las extensiones de llamada.

Esta fase tiene lugar antes de las comprobaciones de seguridad que se realizan para comprobar que el usuario que hace la llamada o que ha iniciado sesión tiene el permiso adecuado para realizar la operación prevista.
PreOperation Se produce antes de la operación del sistema principal y dentro de la transacción de la base de datos.

Si desea cambiar cualquier valor de una entidad incluida en el mensaje, debe hacerlo aquí.

Evite cancelar una operación aquí. La cancelación desencadenará una reversión de la transacción y tendrá una impacto importante en el rendimiento.
PostOperation Se produce después de la operación del sistema principal y dentro de la transacción de la base de datos.

Use esta fase para modificar cualquier propiedad del mensaje antes de que se devuelva al autor de la llamada.

Evite aplicar cambios en una entidad incluida en el mensaje, porque esto desencadenará a un nuevo evento Actualizar.

Dentro de la fase PostOperation puede registrar pasos que han usar el modo de ejecución asincrónico. Estos pasos se ejecutarán fuera de la transacción de la base de datos mediante el servicio asincrónico.

Debe usar el modo asincrónico al registrar su complemento si el complemento está diseñado para realizar una operación de actualización y está registrado en el mensaje Create de la entidad Usuario (SystemUser).

Más información: Servicio asincrónico

Más información: Canalización de ejecución de eventos

Modo de ejecución

Hay dos modos de ejecución: asincrónico y sincrónico.

Opción Descripción
Asincrónico El contexto de ejecución y la definición de la lógica de negocios que se aplicará pasa al trabajo del sistema que se ejecutará después de que la operación se complete.
Sincrónico Los complementos se ejecutan inmediatamente según la fase de ejecución y el orden de ejecución. La operación completa esperará hasta que se complete.

Los complementos asincrónicos solo pueden registrarse para la fase PostOperation. Para obtener más información sobre el funcionamiento de los trabajos del sistema, consulte Servicio asincrónico

Escenarios especiales de registro de pasos

Hay ciertos escenarios en los que la combinación de un registro de pasos y una tabla no es obvia. Este es el resultado de cómo el sistema está diseñado internamente donde hay una relación especial entre tablas u operaciones. La siguiente información identifica estos casos y proporciona una guía de registro de pasos.

  • Existen algunos casos donde los complementos registrados para el evento Actualizar se pueden llamar dos veces. Más información: Comportamiento de operaciones de actualización especializadas
  • Registre un paso de complemento en cuenta o contacto cuando desee manejar cambios de datos en los registros customeraddress, leadaddress, publisheraddress o competitoraddress.

Implementación

Opción Description
Servidor El complemento se ejecutará en el servidor de Dataverse.
Desconectado El complemento se ejecutará en el cliente de Dynamics 365 for Outlook cuando el usuario esté en modo sin conexión.

Establecer datos de configuración

Los campos Configuración insegura y Configuración segura de la PRT le permiten especificar datos de configuración para pasar al complemento para un paso específico.

Nota

Los datos de configuración segura no se incluyen con el registro de pasos cuando exporta una solución.

Puede escribir el complemento para que acepte valores de cadena en el constructor para utilizar estos datos para controlar cómo el complemento debe funcionar para el paso. Más información: Pasar datos de configuración al complemento

Definir imágenes de entidad

Dentro de su complemento, es posible que desee hacer referencia a los valores de propiedad de la tabla principal que no se incluyeron en una operación. Por ejemplo, en una operación Update es posible que desee conocer cuál era un valor antes de que cambiara, pero el contexto de ejecución no proporciona esta información, solo incluye el valor cambiado.

Si su paso de complemento está registrado en las etapas PreValidation o PreOperation de la canalización de ejecución, podría utilizar el servicio Organización para recuperar el valor actual de la propiedad, pero esto no es una buena práctica para el rendimiento. Un ejercicio mejor es definir una imagen previa de la entidad con el registro del paso del ensamblado. Esto capturará una "instantánea" de la tabla con los campos que le interesan tal y como existían antes de la operación, que podrá utilizar para comparar con los valores modificados.

Importante

El comportamiento predeterminado al crear una imagen de entidad es seleccionar todas las columnas. No use este comportamiento predeterminado. Esto podrá afectar negativamente al rendimiento. Solo incluya aquellas columnas que son requeridas por la lógica de su complemento.

Mensajes que admiten imágenes de la entidad

En Dataverse, solo los mensajes siguientes admiten imágenes de la entidad:

Mensaje Propiedad de clases de solicitud Descripción
Assign Target La tabla asignada.
Create Target La tabla creada.
Delete Target La tabla eliminada.
DeliverIncoming EmailId Identificador de correo electrónico entregado.
DeliverPromote EmailId Identificador de correo electrónico entregado.
Merge Target o SubordinateId La tabla principal, en la que se fusionan los datos de la tabla secundaria o de la tabla secundaria que se fusiona con la tabla principal.
Route Target El elemento que se enruta.
Send FaxId, EmailId o TemplateId El elemento que se envía.
SetState EntityMoniker La tabla para la que se establece el estado.
Update Target La tabla actualizada.

Tipos de imágenes de la entidad

Existen dos tipos de imágenes de la entidad: Imagen previa y Imagen posterior. Cuando se configuran, estas imágenes estarán disponibles en el contexto de ejecución como propiedades PreEntityImages y PostEntityImages respectivamente. Como sugieren los nombres, estas instantáneas representan el aspecto de la tabla antes y después de la operación. Cuando configure una imagen de entidad, definirá un valor de alias* de tabla que será el valor clave que utilizará para acceder a una imagen de entidad específica desde las propiedades PreEntityImages o PostEntityImages.

Disponibilidad de imágenes

Cuando configura una imagen de entidad, es importante que reconozca que el tipo de imágenes de entidad disponibles depende de la etapa del paso registrado y el tipo de operación. Por ejemplo:

  • No puede tener una Imagen previa para el mensaje de Create porque la tabla todavía no existe.
  • No puede tener una Imagen posterior para el mensaje de Delete porque la tabla ya no existirá.
  • Solo puede tener una Imagen posterior para los pasos registrados en PostOperation de la canalización de ejecución porque no hay forma de saber cuáles serán las propiedades de la tabla hasta que se complete la transacción.
  • Para una operación Update que se registra en la fase PostOperation puede tener una Imagen previa Y una Imagen posterior.

Agregar imagen de la entidad

Use la extensión Power Platform Tools para Visual Studio para agregar una imagen de entidad a un paso de complemento.

Alternativamente, puede usar la herramienta de registro de complementos para agregar una imagen de entidad a un paso siguiendo las instrucciones en Tutorial: actualizar un complemento en la sección Agregar una imagen.

Agregar paso a solución

Como se ha indicado en Agregar el ensamblado a una solución, los Ensamblados de complemento son componentes de la solución que se pueden agregar a una solución no administrada. Los Pasos de procesamiento de mensajes de SDK son también componentes de la solución y también se deben agregar a una solución no administrada para distribuir.

El procedimiento para agregar un paso a una solución es similar a agregar un ensamblado. Utilizará el comando Agregar existente para moverlo a la solución no administrada deseada. La única diferencia es que si intenta agregar un paso pero aún no ha agregado el ensamblado que contiene la clase utilizada en el paso, se le pedirá que agregue los componentes necesarios que faltan.

Diálogo Faltan componentes necesarios.

Si encuentra esto, debe seleccionar Aceptar normalmente para llevar el ensamblado con la solución no administrada. La única vez que no seleccionaría esto es si su solución está diseñada para ser instalada en un entorno en el que ya está instalada otra solución que contiene el conjunto.

Del mismo modo, debe tener en cuenta que eliminar el conjunto de la solución no eliminará ningún paso que dependa de él.

Establecer la suplantación de usuario para un paso

Con la herramienta de registro de complementos ejecutándose e iniciando sesión en el entorno de destino Dataverse, puede proceder a establecer o cambiar el registro de un paso de complemento. En esta sección, discutiremos cómo cambiar el usuario en cuyo nombre el complemento realizará sus operaciones. Es decir, el usuario efectivo que realiza las operaciones de datos iniciadas por el complemento. Por defecto, el usuario que llama (el usuario que invocó una operación en Dataverse) es el propietario de dichas operaciones. Sin embargo, se puede especificar un usuario diferente en el registro del paso. Necesitará tener el rol de seguridad de Administrador del sistema o de Personalizador del sistema para realizar esta operación.

Para configurar el contexto del usuario en un paso de complemento:

  1. Expanda el nodo de ensamblaje del complemento de destino en la vista de ensamblaje hasta que vea el nodo de registro (Paso) deseado.
  2. Elija el nodo de paso y luego elija Actualizar en el menú contextual o en la barra de herramientas.
  3. Elija un usuario de la lista desplegable de usuarios disponibles junto a la etiqueta Ejecutar en el contexto del usuario.
  4. Elija Paso de actualización.

Más información: Suplantar a un usuario

Actualizar un ensamblado

Cuando cambie y reconstruya un ensamblado que haya registrado previamente, tendrá que actualizarlo. Consulte el paso Actualizar el registro de ensamblado del complementos en el Tutorial: Actualizar un complemento para conocer los pasos.

Versiones de ensamblado

Si va a realizar cambios en un ensamblado de complemento que forma parte de una solución administrada que se ha implementado, debe tener en cuenta el impacto que pueden tener sus cambios cuando actualice esa solución administrada. La versión del ensamblado controlará el comportamiento.

Pueden crearse versiones de los ensamblados del complemento con un formato semántico de control de versiones de major.minor.build.revision definido en el archivo Assembly.info del proyecto de Microsoft Visual Studio. Según la parte del número de versión de ensamblado que se cambie en una solución más reciente, se aplica el siguiente comportamiento cuando se actualiza una solución existente a través de la importación.

  • Se modifica el número de versión de compilación o de ensamblado de revisión

    Esto se considera una actualización en contexto. La versión anterior del ensamblado desaparece cuando se importa la solución que contiene el ensamblado actualizado. Los pasos preexistentes de la solución anterior cambian automáticamente para hacer referencia a la versión más reciente del ensamblado.

  • Se modifica el número de versión principal o secundaria del ensamblado

    Cuando se importa una solución actualizada que contiene el ensamblado revisado, el ensamblado se considera un conjunto diferente a la versión anterior de ese conjunto en la solución existente. Los pasos de registro de complementos de la solución existente continuarán haciendo referencia a la versión anterior del ensamblado. Si desea que los pasos de registro de complementos existentes para el montaje anterior apunten al ensamblado revisado, tendrá que utilizar la herramienta de registro de complementos para cambiar manualmente la configuración de los pasos para que hagan referencia al tipo de ensamblado revisado. Esto debe hacerse antes de exportar el ensamblado actualizado a una solución para importación posterior.

Anule el registre o deshabilite componentes de complementos

Puede anular el registro o deshabilitar los complementos y sus componentes mediante la herramienta de registro de complementos (PRT).

Importante

Ya no es posible anular el registro o deshabilitar Microsoft o los complementos y pasos del sistema listos para usar. Anteriormente, podía anular el registro o deshabilitar algunos de Microsoft.* y otros complementos del sistema listos para usar. Hemos cambiado este comportamiento para que ya no lo permita. El cambio en la funcionalidad se realizó porque anular el registro o deshabilitar estos complementos o pasos puede hacer que las características del producto no funcionen como se esperaba. Si necesita anular el registro o deshabilitar dicho complemento o paso, presente una solicitud de soporte técnico de Microsoft.

Deshabilitar o habilitar un paso de complemento

Con la herramienta de registro de complementos ejecutándose e iniciando sesión en el entorno de destino Dataverse, puede proceder a deshabilitar o habilitar paso de complemento. Al deshabilitar un paso, se evita que el complemento se ejecute cuando Dataverse procesa la combinación de entidad y mensaje especificada en el registro del paso.

Importante

Deshabilitar un complemento puede afectar negativamente la funcionalidad de su aplicación, una solución o el sistema Dataverse. Asegúrese de comprender las implicaciones antes de continuar.

Para deshabilitar o habilitar un paso de complemento registrado:

  1. Expanda el nodo de ensamblaje del complemento de destino en la vista de ensamblaje hasta que vea el nodo de registro de paso deseado.
  2. Elija el nodo de paso y luego elija Habilitar o Deshabilitar en el menú contextual o en la barra de herramientas.

Deshabilitar un paso usando la herramienta de registro de complementos.

También puede deshabilitar o habilitar pasos en la interfaz de usuario del explorador de soluciones de Dataverse heredada mediante las opciones de comandos Activar y Desactivar.

Cambiar un paso de complemento en el Explorador de soluciones heredado.

Anular el registro de componentes

PRT proporciona comandos para anular el registro de ensamblados, tipos, pasos e imágenes. Consulte las instrucciones de Anular registro de ensamblado, complemento y paso en el Tutorial: Actualizar un complemento para conocer el procedimiento.

Estas son operaciones de borrado en las tablas PluginAssembly, PluginType, SdkMessageProcessingStep y SdkMessageProcessingStepImage.

También puede eliminar Ensamblados de complementos y Pasos de procesamiento de mensajes de SDK en el explorador de soluciones para lograr los mismos resultados. En la figura siguiente se muestra una solución personalizada llamada Solución predeterminada de Common Data Service.

Eliminar el paso en el Explorador de soluciones.

Nota

No puede eliminar (desregistrar) cualquier Ensamblados de complementos mientras haya Pasos de procesamiento de mensajes de SDK existentes que dependen de ellos. Las imágenes de la entidad no están disponibles para eliminar por separado, pero se eliminarán cuando se eliminen los pasos que los usan.

Pasos siguientes

Depuración de complementos

Consulte también

Escriba complementos para ampliar los procesos de negocio
Escribir un complemento
Tutorial: Escribir y registrar un complemento
Tutorial: Depurar un complemento
Tutorial: Actualizar un complemento

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).