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:

  1. Aceptar un parámetro de entrada decimal
  2. 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 objetivo de este tutorial.

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.

El paso para 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.

Establecer coma decimal.

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.

Actualizar el límite de crédito.

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.

  1. Iniciar Visual Studio.

  2. En el menú Archivo, haga clic en Nuevo, y haga clic en Proyecto.

  3. Busque Biblioteca de clases y seleccione Biblioteca de clases (.NET Framework).

    Buscar biblioteca de clases (.NET Framework).

  4. Haga clic en Siguiente.

  5. Especificar un nombre y ubicación para la solución

    Configurar el nuevo diálogo de proyecto en Visual Studio 2019.

    Nota

    Elija el nombre del proyecto que tenga sentido para el proyecto. En este ejemplo usaremos SampleWorkflowActivity.

  6. Haga clic en Crear.

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

    establecer propiedades del proyecto.

  8. En el Explorador de soluciones, haga clic con el botón secundario en el proyecto y seleccione Administrar paquetes de NuGet. ,

    administrar paquetes nuget.

  9. Busque el paquete Microsoft.CrmSdk.Workflow NuGet e instálelo.

    Instalar el paquete de NuGet de flujo de trabajo Microsoft.CrmSdk.Workflow.

    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 ensamblado Microsoft.Xrm.Sdk.dll necesario.

  10. Debe hacer clic en Acepto en el diálogo Aceptación de licencia.

    Acepto el contrato de licencia.

Cambiar el nombre del archivo de clases

  1. En el Explorador de soluciones, haga clic con el botón secundario en el archivo Class1.cs predeterminado y seleccione Cambiar nombre.

    Cambie el nombre del archivo Class1.cs.

    Nota

    Elija un nombre de clase que tenga sentido para la actividad. En este ejemplo, llamaremos a la clase IncrementByTen.

  2. Seleccione en el cuadro de diálogo que le pregunta si desea cambiar el nombre de la clase también.

    Seleccione Sí para cambiar el nombre de la clase también.

  3. Abra el archivo IncrementByTen.cs y agregue lo siguiente usando directivas:

    using System.Activities;
    using Microsoft.Xrm.Sdk;
    using Microsoft.Xrm.Sdk.Workflow;
    
  4. 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
        {
    
        }
    
  5. Agregue el método Execute desde la clase CodeActivity mediante acciones rápidas de Visual Studio o manualmente:

    implementar interfaz codeactivity.

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

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

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

    firme el ensamblado.

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

  1. Una vez que haya descargado la herramienta de registro de complementos, haga clic en el PluginRegistration.exe para abrirla.

  2. Haga clic en Crear nueva conexión para conectarse a su instancia.

  3. Asegúrese de que Office 365 está seleccionado.

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

  5. Si su cuenta Microsoft proporciona acceso a varios entornos, seleccione Mostrar la lista de organizaciones disponibles.

    Inicio de sesión con la herramienta de registro de complementos.

  6. Haga clic en Iniciar sesión.

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

  8. Una vez que esté conectado, verá los complementos registrados existentes, las actividades de flujo de trabajo personalizadas y los proveedores de datos.

    Ver complementos existentes y activades personalizadas del flujo de trabajo.

Registrar el ensamblado

  1. Seleccione Registrar > Registrar nuevo ensamblado

    comando registrar ensamblado.

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

    cuadro de diálogo de registro de ensamblado.

    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.

  3. Haga clic en Registrar complementos seleccionados. Debe ver un diálogo de confirmación.

    diálogo de complemento registrado.

  4. Haga clic en Aceptar para cerrar el diálogo Registrar nuevo ensamblado.

Configuración de nombres de actividades

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

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

  3. Haga clic en el (icono) Guardar para guardar los cambios.

    Guarde las propiedades de actividad del flujo de trabajo.

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:

  1. AbrirPower Apps

  2. Seleccione Solución.

  3. Abra la solución Editor predeterminados de CDS.

  4. En el menú, amplíe los ... y elija Cambiar a clásica.

    Cambiar a la interfaz de usuario clásica.

  5. Seleccione Procesos en la lista Componentes

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

    Crear un proceso.

  7. Haga clic en Aceptar.

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

    configuración de un flujo de trabajo de prueba.

    Nota

    Al configurar Ámbito como Organización se crea un flujo de trabajo que puede aplicar cualquier persona de la organización.

  9. Agregue el siguiente Paso:

    Agregue el paso SampleWorkflowActivity.IncrementByTen.

  10. Establezca el paso Descripción como Obtener Límite de crédito de la cuenta incrementado y haga clic en Establecer propiedades.

  11. Establezca el valor de la propiedad Decimal input como el Límite de crédito de la cuenta con un valor predeterminado de 0.

    Establezca la propiedad de entrada decimal.

  12. Haga clic en Guardar y cerrar.

  13. Agregue un paso Actualizar registro:

    Agregue un paso Actualizar registro.

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

    Establezca el valor del límite de crédito.

    Los pasos del flujos de trabajo deben tener un aspecto similar al siguiente:

    El flujo de trabajo completado.

  15. Haga clic en Guardar y cerrar.

  16. Active el flujo de trabajo haciendo clic en Activar en el menú…

    comando activar flujo de trabajo.

  17. Y haga clic en Activar en el cuadro de diálogo Confirmación de activación de proceso.

    Diálogo Confirmación de activación de proceso.

  18. Navegue a una aplicación basada en modelos y vea una lista de cuentas.

  19. Seleccione una cuenta.

  20. Editar el valor del campo Nombre de cuenta.

  21. Guarde el registro de cuenta.

  22. Compruebe que la cuenta que editó tiene un valor de Límite de crédito aumentado en 10.

    comprobar límite de crédito de la cuenta incrementado.

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.

  1. Abra la solución no administrada a la que desea agregar el ensamblado utilizando Power Apps

  2. Seleccione Agregar existentes > Otro > Ensamblado de complementos

    Agregar ensamblado de complementos existente.

  3. Busque el ensamblado de complemento por nombre, en este caso 'SampleWorkflowActivity'.

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