Tutorial: Crear extensión de flujo de trabajo
Este tutorial mostrará el proceso para ampliar el diseñador de flujos de trabajo para agregar actividades personalizadas y lógica mediante un ensamblado de flujo de trabajo, conocido a veces como actividad de flujo de trabajo. Las extensiones que cree de esta manera se pueden usar en un flujo de trabajo, una acción personalizada, o un diálogo.
Este tutorial usa un ejemplo muy sencillo para centrarse en los requisitos y el proceso para:
- Crear un proyecto de biblioteca de clases de Visual Studio
- Agregar una clase CodeActivity
- Definir parámetros de entrada y salida
- Adición de lógica de negocios
- Firmar y crear el ensamblado
- Registrar el ensamblado
- Probar el ensamblado
- Agregar el ensamblado a una solución
Requisitos previos
- Una instancia y privilegios de administrador de Microsoft Dataverse
- Descripción de cómo configurar flujos de trabajo. Más información: Flujos de trabajo de Dataverse clásico
- Una aplicación basada en modelos que le permite editar cuentas.
Objetivo
El siguiente ejemplo creará una actividad de flujo de trabajo personalizada simple que se puede usar en un flujo de trabajo, un diálogo, o un proceso de acción. Más información: Configurar fases y pasos del flujo de trabajo
Esta actividad de flujo de trabajo personalizada cumplirá los siguientes requisitos:
- Aceptar un parámetro de entrada decimal
- Generar un valor igual al parámetro de entrada más 10.
En un flujo de trabajo para la entidad Cuenta puede usarse de la forma siguiente para aumentar el valor de Límite de crédito mediante dos pasos:
El paso 1 usa la actividad de flujo de trabajo personalizada Ejemplo: Incrementar en 10 para aceptar el valor Límite de crédito de la cuenta e incrementarlo en 10. El Paso 2 usa la acción Actualizar registro para actualizar el valor de Límite de crédito de la cuenta con el valor incrementado.
Paso 1: Obtener Límite de crédito de la cuenta incrementado
Cuando se agrega el primer paso, la actividad de flujo de trabajo personalizada estará disponible en un grupo Ejemplo y tendrá el nombre Incrementar en 10.
Al configurar el primer paso haciendo clic en el botón Establecer propiedades, se requerirá la propiedad Decimal input y solo aceptará un valor decimal, como el atributo Límite de crédito de la entidad Cuenta.
Paso 2: Establecer nuevo límite de crédito de la cuenta
En el segundo, una acción Actualizar registro asignará la salida del paso Obtener Límite de crédito de la cuenta incrementado para actualizar el valor del límite del Crédito de la cuenta con el valor incrementado.
Crear un proyecto de biblioteca de clases de Visual Studio
Este proyecto creará un ensamblado de flujo de trabajo simple que aumentará un valor decimal por 10.
Iniciar Visual Studio.
En el menú Archivo, haga clic en Nuevo, y haga clic en Proyecto.
Busque Biblioteca de clases y seleccione Biblioteca de clases (.NET Framework).
Haga clic en Siguiente.
Especificar un nombre y ubicación para la solución
Nota
Elija el nombre del proyecto que tenga sentido para el proyecto. En este ejemplo usaremos
SampleWorkflowActivity
.Haga clic en Crear.
En el Explorador de soluciones, haga clic con el botón secundario en el proyecto y seleccione Propiedades. En la pestaña Aplicación, compruebe que .NET Framework 4.6.2 se define como marco de trabajo de destino.
En el Explorador de soluciones, haga clic con el botón secundario en el proyecto y seleccione Administrar paquetes de NuGet. ,
Busque el paquete Microsoft.CrmSdk.Workflow NuGet e instálelo.
Nota
Asegúrese de que el paquete que instale es propiedad de crmsdk. Este paquete incluirá el
Microsoft.Xrm.Workflow.dll
e incluirá una dependencia en el paquete Microsoft.CrmSdk.CoreAssemblies para que también se incluya el ensambladoMicrosoft.Xrm.Sdk.dll
necesario.Debe hacer clic en Acepto en el diálogo Aceptación de licencia.
Cambiar el nombre del archivo de clases
En el Explorador de soluciones, haga clic con el botón secundario en el archivo Class1.cs predeterminado y seleccione Cambiar nombre.
Nota
Elija un nombre de clase que tenga sentido para la actividad. En este ejemplo, llamaremos a la clase
IncrementByTen
.Seleccione Sí en el cuadro de diálogo que le pregunta si desea cambiar el nombre de la clase también.
Abra el archivo IncrementByTen.cs y agregue lo siguiente usando directivas:
using System.Activities; using Microsoft.Xrm.Sdk; using Microsoft.Xrm.Sdk.Workflow;
Haga que la clase herede de la clase CodeActivity y asígnela un modificador de acceso público como se indica a continuación:
public class IncrementByTen: CodeActivity { }
Agregue el método Execute desde la clase
CodeActivity
mediante acciones rápidas de Visual Studio o manualmente:La clase ahora tiene esta apariencia:
public class IncrementByTen : CodeActivity { protected override void Execute(CodeActivityContext context) { throw new NotImplementedException(); } }
Definir parámetros de entrada y salida
Agregue un conjunto de parámetros de entrada y de salida donde el valor el valor del parámetro de salida será el valor del parámetro de entrada incrementado en 10.
public class IncrementByTen : CodeActivity { [RequiredArgument] [Input("Decimal input")] public InArgument<decimal> DecInput { get; set; } [Output("Decimal output")] public OutArgument<decimal> DecOutput { get; set; } protected override void Execute(CodeActivityContext context) { } }
Nota
Observe cómo se utilizan Atributos .NET para proporcionar metadatos sobre los parámetros en el ensamblado. Más información: Agregar parámetros
Adición de lógica de negocios
Agregue la lógica en el método Execute para aplicar la lógica para aumentar el valor de entrada en 10.
protected override void Execute(CodeActivityContext context)
{
decimal input = DecInput.Get(context);
DecOutput.Set(context, input + 10);
}
Firmar y crear el ensamblado
Los ensamblados de actividad personalizada de flujo de trabajo (y los complementos) se deben firmar. En las propiedades del proyecto, en la pestaña Firma seleccione Firmar el ensamblado. En Elija un archivo de clave de alta seguridad:, seleccione la opción <Nuevo...>. No es necesario establecer una contraseña a los efectos de este tutorial. Para este ejemplo hemos creado un nuevo archivo de clave de alta seguridad denominado
SampleWorkflowActivity.snk
Cree la solución en modo de depuración y compruebe que el ensamblado
SampleWorkflowActivity.dll
está en la carpeta/bin/Debug
.
Nota
Mientras desarrolla un ensamblado es válido usar la configuración de compilación de Depuración. Al implementar el ensamblado en un servidor de producción o en una solución, debe usar la configuración de compilación de Versión.
Registrar el ensamblado
Los ensamblados personalizados de actividades de flujo de trabajo se registran mediante la herramienta de registro de complementos. La herramienta proporciona una interfaz gráfica de usuario y admite el registro de ensamblajes que contienen complementos o actividades de flujo de trabajo personalizadas. Para obtener la herramienta de registro de complementos, consulte Herramientas de desarrollo de Dataverse.
Conéctese usando la herramienta de registro de complementos
Una vez que haya descargado la herramienta de registro de complementos, haga clic en el
PluginRegistration.exe
para abrirla.Haga clic en Crear nueva conexión para conectarse a su instancia.
Asegúrese de que Office 365 está seleccionado.
Si se está conectando usando una cuenta Microsoft diferente a la que está usando actualmente, haga clic en Mostrar opciones avanzadas e ingrese sus credenciales. De lo contrario, deje Iniciar sesión como el usuario actual seleccionado.
Si su cuenta Microsoft proporciona acceso a varios entornos, seleccione Mostrar la lista de organizaciones disponibles.
Haga clic en Iniciar sesión.
Si ha seleccionado Mostrar la lista de organizaciones disponibles, seleccione la organización con la que quiere conectarse y haga clic en Iniciar sesión.
Una vez que esté conectado, verá los complementos registrados existentes, las actividades de flujo de trabajo personalizadas y los proveedores de datos.
Registrar el ensamblado
Seleccione Registrar > Registrar nuevo ensamblado
En el cuadro de diálogo Registrar nuevo ensamblado, haga clic en el botón de puntos suspensivos (…) y vaya al
SampleWorkflowActivity.dll
en la carpeta/bin/Debug
.Nota
Nota: Con Dataverse se seleccionan las únicas opciones válidas para los pasos 3 y 4 y se deshabilitan las opciones no válidas.
Haga clic en Registrar complementos seleccionados. Debe ver un diálogo de confirmación.
Haga clic en Aceptar para cerrar el diálogo Registrar nuevo ensamblado.
Configuración de nombres de actividades
En la lista de Complementos registrados y actividades personalizadas del flujo de trabajo, busque (Assembly) SampleWorkflowActivity y expándalo para mostrar el (Workflow Activity) SampleWorkflow.Activity.IncrementByTen - Isolatable.
Seleccione la (Workflow Activity) SampleWorkflow.Activity.IncrementByTen - Isolatable y en el área Propiedades edite las Propiedades editables usando los valores de la tabla siguiente:
Campo editable Valor original Valor nuevo Descripción Descripción Devuelve el valor del parámetro de entrada más 10. No es visible en la interfaz de usuario del diseñador de procesos, pero puede resultar útil al generar documentación de los datos extraídos de la entidad PluginType que almacena esta información. FriendlyName un valor de GUID IncrementByTen Nombre descriptivo para el complemento. Nombre SampleWorkflowActivity.IncrementByTen Incrementar en 10 El nombre del menú representado WorkflowActivityGroupName SampleWorkflowActivity (1.0.0.0) Ejemplo El nombre del submenú agregado al menú principal del diseñador del proceso de Dataverse. Nota
Si el Nombre y WorkflowActivityGroupName están establecidas como null, la actividad personalizada no será visible en el diseñador de procesos.
Haga clic en el (icono) Guardar para guardar los cambios.
Probar el ensamblado
Puede probar la nueva actividad de flujo de trabajo creando un proceso que la use. Use estos pasos para crear el proceso de flujo de trabajo descrito en la sección Objetivo anterior:
AbrirPower Apps
Seleccione Solución.
Abra la solución Editor predeterminados de CDS.
En el menú, amplíe los ... y elija Cambiar a clásica.
Seleccione Procesos en la lista Componentes
Seleccione Nuevo y en el diálogo Crear proceso escriba lo siguiente:
Campo Value Nombre del proceso Prueba de SampleWorkflowActivity.IncrementByTen Categoría Flujo de trabajo Entidad Cuenta Ejecutar este flujo de trabajo en segundo plano (recomendado) anulada la selección Nota
La opción de Ejecutar este flujo de trabajo en segundo plano se ha vuelto a seleccionar para convertir esto en un flujo de trabajo ( sincrónico) en tiempo real. Esto facilitará las pruebas.
Haga clic en Aceptar.
Aplique los cambios siguientes:
Campo valor Scope Organización Iniciar cuando: Cambio en los campos de registro seleccionada y el campo name
especificado en el diálogo.Nota
Al configurar Ámbito como Organización se crea un flujo de trabajo que puede aplicar cualquier persona de la organización.
Agregue el siguiente Paso:
Establezca el paso Descripción como Obtener Límite de crédito de la cuenta incrementado y haga clic en Establecer propiedades.
Establezca el valor de la propiedad Decimal input como el Límite de crédito de la cuenta con un valor predeterminado de 0.
Haga clic en Guardar y cerrar.
Agregue un paso Actualizar registro:
Haga clic en Establecer propiedades y establezca el valor del Límite de crédito como el valor del paso Obtener Límite de crédito de la cuenta incrementado.
Los pasos del flujos de trabajo deben tener un aspecto similar al siguiente:
Haga clic en Guardar y cerrar.
Active el flujo de trabajo haciendo clic en Activar en el menú…
Y haga clic en Activar en el cuadro de diálogo Confirmación de activación de proceso.
Navegue a una aplicación basada en modelos y vea una lista de cuentas.
Seleccione una cuenta.
Editar el valor del campo Nombre de cuenta.
Guarde el registro de cuenta.
Compruebe que la cuenta que editó tiene un valor de Límite de crédito aumentado en 10.
Agregar el ensamblado a una solución
Para distribuir una actividad de flujo de trabajo personalizada en una solución, debe agregar el ensamblado registrado que lo contiene a una solución no administrada.
Abra la solución no administrada a la que desea agregar el ensamblado utilizando Power Apps
Seleccione Agregar existentes > Otro > Ensamblado de complementos
Busque el ensamblado de complemento por nombre, en este caso 'SampleWorkflowActivity'.
Seleccione el ensamblado de complemento y seleccione Agregar.
Vea también
Extensiones de flujo de trabajo
Ejemplo: crear una actividad de flujo de trabajo personalizada
Ejemplo: actualizar el siguiente cumpleaños con una actividad de flujo de trabajo personalizada
Ejemplo: Calcular una puntuación de crédito con una actividad de flujo de trabajo personalizada
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).