Compartir a través de


Crear sus propios mensajes

Microsoft Dataverse expone las API usando mensajes. Hay muchos mensajes listos para usar disponibles para que los use. Los mensajes personalizados se utilizan normalmente para agregar una nueva funcionalidad específica de dominio para combinar múltiples solicitudes de mensajes en una sola solicitud. Por ejemplo, en un centro de atención telefónica de soporte técnico, es posible que desee combinar los mensajes Create, Assigny Update en un único mensaje nuevo Escalate.

Ahora hay dos formas de definir mensajes personalizados:

Método de mensaje personalizado Descripción
Acción de proceso personalizada También conocidas simplemente como Acciones personalizadas, han formado parte de Dataverse durante muchos años. Las acciones de proceso personalizadas proporcionan una forma sin código de definir un mensaje personalizado mediante el diseñador de flujo de trabajo. La lógica de estos flujos de trabajo también se puede ampliar con código mediante el uso de actividades de flujo de trabajo personalizadas. Más información: Usar acciones de proceso personalizadas con código
API personalizada Amplía el concepto de acciones personalizadas para proporcionar a los desarrolladores capacidades no limitadas por el diseñador de flujo de trabajo. Más información: Crear y usar API personalizadas

Muchos desarrolladores han estado creando acciones de proceso personalizadas simplemente para crear nuevos mensajes sin implementar ninguna lógica en el diseñador de flujo de trabajo. En su lugar, registran complementos para el mensaje creado por la acción personalizada para implementar toda su lógica. La característica API personalizada hace que este patrón sea una capacidad de primera clase para que los desarrolladores amplíen Dataverse sin depender del diseñador de flujo de trabajo ni de la tecnología de la que depende.

Comparar la acción del proceso personalizada y la API personalizada

La siguiente tabla describe algunas de las diferentes capacidades.

Funcionalidad Acción de proceso personalizada API personalizada Descripción
Lógica declarativa con flujo de trabajo No Las acciones de flujo de trabajo pueden tener la lógica definida sin escribir código utilizando el diseñador de flujos de trabajo clásico.
Las API personalizadas requieren un complemento escrito en .NET para implementar la lógica que se aplica en el servidor.
Requerir privilegio específico No Con la API personalizada, puede designar que un usuario deba tener un privilegio específico para llamar al mensaje. Si el usuario no tiene ese privilegio a través de sus roles de seguridad o pertenencia al equipo, se devolverá un error.
Definir la lógica de operación principal con código Con las acciones de proceso personalizadas, la operación principal procesa definición de flujo de trabajo, que puede incluir actividades de flujo de trabajo personalizadas. El código de estas actividades de flujo de trabajo personalizadas se procesa en la operación principal, junto con cualquier otra lógica del flujo de trabajo.
Cuando la acción del proceso personalizado no contiene ninguna actividad de flujo de trabajo personalizada, los desarrolladores frecuentemente agregan lógica a la etapa posterior a la operación en la canalización de eventos para definir la lógica.

Con la API personalizada, el creador de mensajes simplemente asocia su tipo de complemento con la API personalizada para proporcionar la lógica de operación principal.
Más información: Canalización de ejecución de eventos
Bloquear extensión mediante otros complementos Con acciones de proceso personalizadas, establezca la propiedad administrada IsCustomProcessingStepAllowedForOtherPublishers en true si desea permitir que se ejecuten complementos de terceros cuando se registren en el mensaje para su acción de proceso personalizado. Cuando se establece en false, solo se ejecutarán complementos del mismo editor de soluciones cuando se registre un paso de complemento para el mensaje.

Para la API personalizada, configure AllowedCustomProcessingStepType para controlar si se pueden registrar pasos de complementos o si solo se pueden registrar complementos asincrónicos. Más información: Seleccionar un tipo de paso de procesamiento personalizado
Hacer privado un mensaje No Cuando crea un mensaje mediante una acción de proceso personalizada, se expone públicamente en el punto de conexión para que cualquier otra persona lo descubra y use. Si alguien más depende del mensaje que usted creó, su código se romperá si elimina, cambia el nombre o cambia la firma del parámetro de entrada o salida en el futuro.

Si no tiene la intención de que nadie más use su mensaje, puede marcarlo como mensaje privado. Esto indicará que no admite que otros usen el mensaje que crea y no se incluirá en las definiciones de funciones o acciones disponibles expuestas por la definición del $metadata service de la API web. Las clases para llamar a estos mensajes no se generarán utilizando herramientas de generación de código, pero seguirá pudiendo utilizarlas. Más información: Cuándo hacer que su API personalizada sea privada
Nombres y descripciones localizables No Si bien las acciones de proceso personalizadas proporcionan un nombre descriptivo para la acción personalizada y cualquier parámetro de entrada y salida que utilice, estos valores no se pueden localizar. Con la API personalizada, puede proporcionar nombres y descripciones localizables. Estas cadenas localizadas se pueden vincular a controles que proporcionan una interfaz de usuario para usar el mensaje. Más información: Valores de etiqueta localizados
Crear función OData No La API web de Dataverse es un servicio web OData. OData proporciona dos tipos de operaciones: Acciones & Funciones.
  • Una Acción es una operación que realiza cambios en los datos del sistema. Se invoca mediante el método Http POST y los parámetros se pasan en el cuerpo de la solicitud.
  • Una Función es una operación que no modifica los datos, por ejemplo, una operación que simplemente recupera datos. Se invoca mediante un método Http GET y los parámetros se pasan en la URL de la solicitud

Las acciones de proceso personalizadas son siempre acciones. La API personalizada ofrece la opción de definir funciones personalizadas.
Más información: Cuándo crear una función
Crear una operación global no vinculada a una tabla Ambos brindan la capacidad de definir un mensaje global no vinculado a una tabla.
Vincular una operación a una tabla Ambos ofrecen la capacidad de pasar una referencia a un registro de tabla específico al vincularlo a una tabla.
Vincular una operación a una colección de tablas No La vinculación de una operación a una colección de tablas permite otra forma de definir la firma para la API personalizada. Si bien esto no pasa una colección de entidades como parámetro de entrada, restringe el contexto de la operación a ese tipo de colección de tablas. Use esto cuando su operación trabaje con una colección de un tipo específico de tabla o su operación devolverá una colección de ese tipo.
Redactar o modificar una API personalizada editando una solución No ISV que crean y mantienen productos que funcionan con Power Platform aplican prácticas ALM que involucran soluciones. Los datos de una solución comúnmente se registran en un repositorio de código fuente y un desarrollador que aplica los cambios los verifica.

Una acción de proceso personalizada se define mediante un documento XAML Windows Workflow Foundation que se transporta como parte de una solución. Sin embargo, no se admite la creación de definiciones de flujo de trabajo nuevas ni la edición de existentes fuera del diseñador de flujos de trabajo.

Las definiciones de API personalizadas son componentes dependientes de la solución incluidos en una solución a través de un conjunto de carpetas y documentos XML. Estos archivos y la estructura de archivos permiten transportar la API de un entorno a otro. Debido a que se trata de archivos de texto sin formato, se pueden realizar cambios en ellos o se pueden definir nuevas API trabajando con estos archivos. Se admite este método de definir API personalizadas. Más información: Crear una API personalizada con archivos de solución.
Sujeto a un límite de tiempo de 2 minutos No Un complemento que implementa la operación principal de una API personalizada está sujeto al límite de tiempo de 2 minutos para completar la ejecución.

Una acción de proceso personalizada no está técnicamente limitada a dos minutos. Si un paso en la lógica de flujo de trabajo contiene una actividad de flujo de trabajo personalizado, esa parte se limitará a dos minutos. Pero todo el flujo de trabajo no puede ejecutarse indefinidamente. Existen otras limitaciones que harán que fallen las acciones de procesos personalizadas de ejecución prolongada. Más información: Observar las acciones de ejecución de larga duración

Pasos siguientes

Usar acciones de proceso personalizadas con código
Crear y usar API personalizadas

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