Compartir por


Tutorial: Creación de una extensión de flujo de trabajo

En este tutorial se muestra 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, a veces conocido como actividad de flujo de trabajo. Las extensiones que cree de esta manera se pueden usar dentro de un flujo de trabajo, una acción personalizada o un cuadro de diálogo.

En este tutorial se usa un ejemplo muy sencillo para centrarse en los requisitos y el proceso para:

  • Creación de un proyecto de biblioteca de clases de Visual Studio
  • Agregar una clase CodeActivity
  • Definición de parámetros de entrada y salida
  • Agrega tu lógica empresarial
  • Firmar y crear el ensamblado
  • Registrar el ensamblado
  • Prueba tu ensamblaje
  • Agregar el ensamblado a una solución

Prerrequisitos

  • Una instancia de Microsoft Dataverse y privilegios de administrador
  • Descripción de cómo configurar flujos de trabajo. Más información: Flujos de trabajo clásicos de Dataverse
  • Una aplicación controlada por modelos que le permite editar cuentas.

Objetivo

En el ejemplo siguiente se creará una actividad de flujo de trabajo personalizada sencilla que se puede usar en un flujo de trabajo, un cuadro de diálogo o un proceso de acción. Más información: Configuración de fases y pasos de flujo de trabajo

Esta actividad de flujo de trabajo personalizada coincidirá con los siguientes requisitos:

  1. Aceptar un parámetro de entrada decimal
  2. Genera un valor igual al parámetro de entrada más 10.

En un flujo de trabajo para la entidad Account , se puede usar de la siguiente manera para incrementar el valor de límite de crédito mediante dos pasos:

Objetivo de este tutorial.

En el paso 1 se usa la actividad de flujo de trabajo personalizada Sample: Increment by 10 para aceptar el valor de 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 límite de crédito de la cuenta con el valor incrementado.

Paso 1: Obtener el límite de crédito incrementado de la cuenta

Cuando se agrega el primer paso, la actividad de flujo de trabajo personalizada estará disponible en un grupo Sample y tendrá el nombre Incrementar en 10.

Incremento en 10 pasos.

Al configurar el primer paso haciendo clic en el botón Establecer propiedades , se necesitará la propiedad de entrada Decimal y solo aceptará un valor decimal, como el atributo Límite de crédito de la entidad Account .

Establecer la entrada decimal.

Paso 2: Establecer el nuevo límite de crédito de la cuenta

En el segundo paso, una acción Actualizar registro asignará la salida del paso Obtener límite de crédito de cuenta incrementada para actualizar el valor límite de crédito de la cuenta con el valor incrementado.

Actualice el límite de crédito.

Creación de un proyecto de biblioteca de clases de Visual Studio

Este proyecto creará un ensamblado de flujo de trabajo simple que incrementará un valor decimal en 10.

  1. Inicie Visual Studio.

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

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

    Búsqueda de la biblioteca de clases (.NET Framework).

  4. Haga clic en Siguiente.

  5. Especifique un nombre y una ubicación para la solución.

    Configure el cuadro de diálogo del nuevo proyecto en Visual Studio 2019.

    Nota:

    Elija un nombre de 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 derecho en el proyecto y seleccione Propiedades. En la pestaña Aplicación , compruebe que .NET Framework 4.6.2 está establecido como marco de destino.

    establecer las propiedades del proyecto.

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

    Administrar paquetes NuGet.

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

    Instale el paquete NuGet Workflow Microsoft.CrmSdk.Workflow.

    Nota:

    Asegúrese de que el paquete que va a instalar 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 cuadro de diálogo Aceptación de licencia .

    Acepte el contrato de licencia.

Cambiar el nombre del archivo de clase

  1. En el Explorador de soluciones, haga clic con el botón derecho en el archivo de 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, asignaremos el nombre 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ígnele un modificador de acceso público como se muestra aquí:

    public class IncrementByTen: CodeActivity
        {
    
        }
    
  5. Agregue el método Execute desde la CodeActivity clase mediante acciones rápidas de Visual Studio o manualmente:

    Implemente la interfaz CodeActivity.

  6. La clase ahora tiene el siguiente aspecto:

    public class IncrementByTen : CodeActivity
    {
        protected override void Execute(CodeActivityContext context)
        {
            throw new NotImplementedException();
        }
    }
    

Definición de parámetros de entrada y salida

  1. Agregue un conjunto de parámetros de entrada y salida en los que 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 usan los atributos de .NET para proporcionar metadatos sobre los parámetros del ensamblado. Más información: Adición de parámetros

Agrega tu lógica empresarial

Agregue la lógica dentro del método Execute para incrementar 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 personalizados de actividad de flujo de trabajo (y de complementos) deben estar firmados. En las propiedades del proyecto, en la pestaña Firma , seleccione Firmar el ensamblado. A continuación , elija un archivo de clave de nombre seguro y seleccione la <opción Nuevo...> . No es necesario establecer una contraseña para el propósito de este tutorial. En este ejemplo hemos creado un nuevo archivo de clave de nombre seguro denominado SampleWorkflowActivity.snk

    montaje de señal.

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

Registrar el ensamblado

Los ensamblados de actividad de flujo de trabajo personalizados se registran mediante la herramienta Registro de complementos. La herramienta proporciona una interfaz gráfica de usuario y admite el registro de ensamblados 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. Abra la herramienta de registro de complementos ejecutando el comando PAC CLI pac tool prt.

  2. Seleccione +Crear nueva conexión para conectarse a su entorno de Dataverse.

  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.

    Nota:

    Si su cuenta de usuario emplea la autenticación multifactor (MFA), asegúrese de que la casilla Mostrar avanzado no esté marcada.

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

    comando de registro de ensamblaje.

  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, las únicas opciones válidas para los pasos 3 y 4 están seleccionadas y las opciones no válidas están deshabilitadas.

  3. Haga clic en Registrar complementos seleccionados. Debería ver un cuadro de diálogo de confirmación.

    cuadro de diálogo del complemento registrado.

  4. Haga clic en Aceptar para cerrar el cuadro de diálogo Registrar nuevo ensamblaje.

Configuración de nombres de actividad

  1. En la lista de Complementos Registrados y Actividades de Flujo de Trabajo Personalizadas, localice el (Ensamblado) SampleWorkflowActivity y expándalo para mostrar el (Actividad de Flujo de Trabajo) SampleWorkflow.Activity.IncrementByTen - Aislable.

  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 Description
    Description 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 ser útil al generar documentación a partir de datos extraídos de la entidad PluginType que almacena esta información.
    FriendlyName un valor de GUID IncrementByTen Nombre fácil de usar del complemento.
    Nombre SampleWorkflowActivity.IncrementByTen Incrementar en 10 Nombre del menú representado
    WorkflowActivityGroupName SampleWorkflowActivity (1.0.0.0) Ejemplo Nombre del submenú agregado al menú principal del diseñador de procesos de Dataverse.

    Nota:

    Si name y WorkflowActivityGroupName se establecen en null, la actividad personalizada no estará visible en el diseñador de procesos.

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

    Guarde las propiedades de la actividad de flujo de trabajo.

Prueba tu ensamblaje

Puede probar la nueva actividad de flujo de trabajo mediante la creación de un proceso que lo usará. Siga estos pasos para crear el proceso de flujo de trabajo descrito en la sección Objetivo anterior:

  1. Abra Power Apps

  2. Seleccione Soluciones.

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

  4. En el menú, expanda ... y elija Cambiar a clásico.

    Cambie a la interfaz de usuario clásica.

  5. Seleccione Procesos en la lista Componentes .

  6. Seleccione Nuevo y, en el cuadro de diálogo Crear proceso , escriba lo siguiente:

    Campo Importancia
    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 ejecutar este flujo de trabajo en segundo plano se ha desajustado para que este sea un flujo de trabajo en tiempo real (sincrónico). Esto hará que las pruebas sean más sencillas.

    Creación de un proceso.

  7. Haga clic en Aceptar.

  8. Aplique los cambios siguientes:

    Campo Importancia
    Ámbito Organización
    Iniciar cuando: Los campos de registro cambian seleccionado y el campo name especificado en el cuadro de diálogo.

    configuración de un flujo de trabajo de prueba.

    Nota:

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

  9. Agregue el paso siguiente:

    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 de entrada Decimal en 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 de registro de actualización.

  14. Haga clic en Establecer propiedades y establezca el valor del límite de crédito en el valor del paso Obtener límite de crédito de la cuenta incrementada .

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

    Los pasos de flujo de trabajo deben tener este aspecto:

    Flujo de trabajo completado.

  15. Haga clic en Guardar y cerrar.

  16. Para activar el flujo de trabajo, haga 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 del proceso.

    Cuadro de diálogo de confirmación de activación del proceso.

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

  19. Seleccione una cuenta.

  20. Edite el valor del campo Nombre de cuenta .

  21. Guarde el registro de la cuenta.

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

    compruebe que se incrementó el límite de crédito de la cuenta.

Agrega tu ensamblaje 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 mediante Power Apps.

  2. Seleccione Agregar existentes>Otro>Ensamblado de complementos

    Agregue el ensamblado de complemento existente.

  3. Busque el ensamblado plugin por nombre, en este caso "SampleWorkflowActivity".

  4. Seleccione el ensamblado del complemento y seleccione Agregar.

Consulte también

Extensiones de flujo de trabajo
Ejemplo: crear una actividad de flujo de trabajo personalizada
Ejemplo: Actualización del próximo cumpleaños mediante una actividad de flujo de trabajo personalizada
Ejemplo: Cálculo de una puntuación de crédito con una actividad de flujo de trabajo personalizada