Compartir a través de


Cómo crear acciones personalizadas en Power Automate para escritorio

Mejore la productividad, la reutilización y la extensibilidad con acciones personalizadas en Power Automate para escritorio. Este artículo analiza cómo las acciones personalizadas en Power Automate para escritorio pueden ayudar a los creadores a crear sus propias acciones reutilizables que se pueden utilizar en múltiples flujos. Los creadores crean acciones personalizadas componiendo una secuencia de pasos o funciones en una nueva acción. Las acciones personalizadas se crean utilizando el SDK Power Automate para acciones de escritorio, que proporciona un conjunto de API que permiten a los creadores crear acciones personalizadas utilizando el lenguaje .NET C#. Las acciones personalizadas también se pueden compartir con otros usuarios a través de la sección de acciones personalizadas en Power Automate (make.powerautomate.com). En este artículo, encontrará tutoriales detallados sobre cómo crear, desarrollar, implementar, usar y actualizar acciones personalizadas.

Importante

Si bien se admiten las funciones esenciales utilizadas para crear acciones personalizadas, las soluciones, los recursos y los scripts de muestra proporcionados que se mencionan aquí sirven como ejemplo de implementación de estas funciones y no incluyen soporte.

Introducción

Capacidad de acciones personalizadas en Power Automate para escritorio le permite crear sus propias acciones reutilizables que se pueden utilizar en múltiples flujos de escritorio. Las acciones personalizadas le ahorran tiempo y esfuerzo al permitirle reutilizar acciones complejas o utilizadas con frecuencia sin tener que volver a crearlas cada vez que crea un nuevo flujo. Los creadores pueden aplicar sus habilidades y conocimientos existentes para crear acciones personalizadas que se integren con otros sistemas y servicios. Además, los desarrolladores profesionales pueden empaquetar las funciones o bibliotecas de códigos existentes para realizar una nueva acción personalizada que resulte en una mayor reutilización de los activos de la organización.

Puede crear acciones personalizadas componiendo una secuencia de métodos o funciones en una nueva acción. Una vez que cree una acción personalizada, úsela en cualquier flujo de escritorio arrastrándola y soltándola en el lienzo de diseño de Power Automate para escritorio.

Las acciones personalizadas se pueden compartir con otros usuarios a través de la sección de acciones personalizadas en Power Automate, que proporciona un repositorio central para compartir y descubrir acciones personalizadas. Esto significa que los usuarios pueden beneficiarse de la experiencia y el conocimiento de otros miembros de la organización y pueden encontrar y utilizar fácilmente acciones personalizadas creadas por otros creadores.

En general, las acciones personalizadas en Power Automate para escritorio proporcionan una manera poderosa de ampliar la funcionalidad del producto, agilizar el proceso de creación de flujo y fomentar la colaboración y la innovación dentro de la organización.

Requisitos previos

Crear sus propias acciones personalizadas

  1. Abra Visual Studio para crear un nuevo proyecto usando la plantilla de Biblioteca de clase (.NET Framework). Captura de pantalla del cuadro de diálogo Crear proyecto C#

  2. Configure su nuevo proyecto con un nombre de proyecto, una ubicación de archivo y establezca el Marco como .NET Framework 4.7.2.

    Nota

    Asegúrese de seguir las convenciones de nomenclatura. Más información: Convenciones de nombres de módulos personalizados

    Captura de pantalla de los detalles de la biblioteca de clases Crear C#.

  3. En Visual Studio, seleccione Herramientas>Administrador de paquetes NuGet>Consola de administrador de paquetes.

    Captura del administrador de paquetes .NET.

  4. Abra una ventana de PowerShell e instale el paquete NuGet PowerAutomate.Desktop.Actions.SDK usando este comando de PowerShell.

    Find-Package Microsoft.PowerPlatform.PowerAutomate.Desktop.Actions.SDK
    NuGet\Install-Package Microsoft.PowerPlatform.PowerAutomate.Desktop.Actions.SDK
    
  5. Siga los pasos en Crear acciones personalizadas para crear el archivo de clase para su acción personalizada.

Información que puede utilizar como referencia para su acción

Archivo de solución de referencia: Solución del módulo .NET

Acción: escribir un mensaje en un archivo local.

Parámetros de entrada: nombre del archivo, mensaje para escribir en el archivo.

Parámetros de salida: Código de estado: verdadero si se realizó correctamente y falso si no se realizó correctamente.

Definición de clase:

using System;
using System.IO;
using Microsoft.PowerPlatform.PowerAutomate.Desktop.Actions.SDK;
using Microsoft.PowerPlatform.PowerAutomate.Desktop.Actions.SDK.Attributes;

namespace ModulesLogEvent
{
    [Action(Id = "LogEventToFile" , Order = 1, Category = "Logging")]
    [Throws("LogEventError")]
    public class LogEventToFile : ActionBase
    { 
        [InputArgument]
        public string LogFileName { get; set; }

        [InputArgument]
        public string LogMessage { get; set; }

        [OutputArgument]
        public bool StatusCode { get; set; }
    
        public override void Execute(ActionContext context)
        {
            try
            {           
                    // To append all of the text to the file
                    File.AppendAllText(LogFileName, LogMessage);
                    StatusCode = true;  
            }
            catch (Exception e)
            {
                if (e is ActionException) throw;

                throw new ActionException("LogEventError", e.Message, e.InnerException);
            }
        }
    }
}

Recursos

En esta tabla se enumeran las descripciones y los nombres descriptivos de los parámetros de un Resources.resx archivo.

Nombre valor Comentario
LogEventToFile_Description Acción personalizada para registrar el mensaje en el archivo proporcionado Descripción de la acción
LogEventToFile_FriendlyName LogEventToFile Nombre de acción
LogEventToFile_LogFileName_Description Parámetro de entrada o tipo de texto Descripción para la acción de entrada
LogEventToFile_LogFileName_FriendlyName LogFileName Nombre de entrada de acción
LogEventToFile_LogMessage_Description Parámetro de entrada o tipo de texto Descripción para la acción de entrada
LogEventToFile_LogMessage_FriendlyName LogMessage Nombre de entrada de acción
LogEventToFile_StatusCode_Description Parámetro de salida de tipo booleano Descripción para la acción de salida
LogEventToFile_StatusCode_FriendlyName LogMessage Acción outputName
ModulesLogEvent_Description Módulo para gestionar eventos de registro Descripción del módulo
ModulesLogEvent_FriendlyName LogEvent Nombre del módulo

Cree el paquete e implemente su acción personalizada

Cree el paquete e impleméntelo en Power Automate.

  1. Adquiera el certificado digital para poder firmar el archivo DLL de acción personalizada.

    Importante

    Los certificados autofirmados son solo para fines de prueba y no se recomiendan para uso en producción. Para la implementación organizacional de acciones personalizadas en su entorno, le recomendamos que utilice un certificado digital fiable que siga las pautas de su organización.

    Propina

    Para agilizar el proceso de desarrollo y uso de acciones personalizadas para Power Automate para escritorio en toda su organización, puede incluir un certificado digital fiable con el instalador de Power Automate para escritorio que se distribuye a través de SCCM/Appstore. > Esto permitirá que el certificado se instale automáticamente tanto en los fabricantes como en las máquinas en tiempo de ejecución desatendidas que requieran Power Automate para escritorio, sin necesidad de acciones adicionales.

    Para este ejemplo, se utiliza un certificado autofirmado.

    1. Cree un certificado autofirmado utilizando este script.

      $certPFXFileName="C:\PADCustomAction\PADCustomActionCert.pfx";
      $certCERFileName="C:\PADCustomAction\PADCustomActionCert.cer";
      $certStoreLocation="Cert:\LocalMachine\AuthRoot";
      $certname = "PADCustomActionSelfSignCert"
      ##Create certificate
      $cert = New-SelfSignedCertificate -CertStoreLocation Cert:\CurrentUser\My -Type CodeSigningCert  -Subject "CN=$certname" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256
      $mypwd = ConvertTo-SecureString -String <YOUR CERT PASSWORD GOES HERE> -Force -AsPlainText
      ##Export certificate
      $certPFXFile = Export-PfxCertificate -Cert $cert -FilePath $certPFXFileName -Password $mypwd
      $certCERFile = Export-Certificate -Cert $cert -FilePath $certCERFileName -Type CERT -Verbose -Force
      
    2. Importe el certificado al almacén de certificados usando este comando.

      ##Import certificate
      Import-Certificate -CertStoreLocation $certStoreLocation -FilePath $certCERFile
      
    3. Valide que el certificado importado aparezca en Entidades de certificación raíz de confianza>Certificados en el complemento Certificados de Microsoft Manager Console (MMC).

  2. Finalice el módulo personalizado creado firmando el archivo DLL utilizando un certificado confiable. Utilice el símbolo del sistema del desarrollador de Visual Studio para utilizar Signtool para esta actividad.

    Signtool sign /f "C:/PADActions/PADCustomActionCert.pfx" /p <YOURCERTPASSWORD> /fd SHA256 "C:/PADActions/PADCustomActionEventLog/Modules.LogEvent.dll"
    
  3. Para implementar la acción personalizada, cree el contenido del paquete en un archivo contenedor (.cab) mediante este script de PowerShell.

    .\BuildCAB.ps1 "C:/PADActions/PADCustomActionEventLog" "C:/PADActions/PADCustomActionEventLog" PADCustomActionEventLog.cab
    

    Vaya al archivo de script de muestra BuildCAB.ps1

  4. Firme el archivo archivador generado utilizando Signtool.

    Signtool sign /f "C:/PADActions/PADCustomActionCert.pfx" /p <YOURCERTPASSWORD> /fd SHA256 "C:/PADActions/PADCustomActionEventLog/PADCustomActionEventLog.cab"
    
  5. Vaya a la sección Power Automate acción personalizada para cargar la acción personalizada que creó. Proporcione el nombre, la descripción y el archivo contenedor y luego seleccione Cargar.

    Captura de pantalla de la importación de paquete de acciones personalizadas (archivo CAB) en el portal Power Automate

    Recibirá una notificación cuando la acción se cargue con éxito.

Siguiendo estos pasos, el módulo de acción personalizado se empaqueta en un archivo contenedor y se firma con un certificado confiable. Además, el archivo contenedor de acciones personalizadas se carga en la biblioteca de acciones personalizadas en Power Automate.

Más información: Cargar acciones personalizadas

Utilice su actividad de acción personalizada en el flujo de escritorio usando Power Automate para escritorio

  1. Cree un flujo de escritorio nuevo y seleccione la Biblioteca de activos en el diseñador.

    Captura de pantalla de Navegar a la biblioteca de recursos en Power Automate para escritorio

  2. Inspeccione la acción personalizada disponible en la biblioteca de recursos. Observe la acción creada previamente y cargada en la sección de acciones personalizadas de Power Automate.

    Seleccione Agregar para agregar esta acción personalizada a la sección Acciones del diseñador.

    Captura de pantalla de Agregar acción personalizada desde la biblioteca de recursos

  3. Valide que la acción personalizada se haya agregado correctamente. Búsquelo en la barra de búsqueda Acciones en el diseñador de Power Automate para escritorio.

    Captura de pantalla de la acción personalizada Buscar de Power Automate para escritorio

  4. Arrastre la acción personalizada o haga doble clic en ella para agregarla al flujo del escritorio.

  5. Proporcione los parámetros de entrada y pasos adicionales para probar la acción personalizada.

    Captura de pantalla de los parámetros de entrada para la acción personalizada

    Flujo de escritorio de muestra usando la acción personalizada.

    Captura de del Uso de acción personalizada en el flujo de escritorio

  6. Pruebe el flujo para ver la acción personalizada funcionando en tiempo real.

    Acción de prueba personalizada en el flujo de escritorio

Nota

Importe el certificado utilizado para firmar el archivo contenedor a la máquina utilizada para crear flujos de escritorio con acciones personalizadas y a cada una de las máquinas en tiempo de ejecución que ejecutarán los flujos de escritorio.

Siguiendo estos pasos, se creó una acción personalizada, el módulo se empaquetó en un archivo contenedor, se firmó con un certificado fiable y se cargó en la biblioteca de acciones personalizadas en Power Automate, un flujo de escritorio para utilizar la acción personalizada creada y probada para una ejecución exitosa.

Actualizar y volver a implementar la acción personalizada

Actualice la funcionalidad de la acción personalizada para reflejar la capacidad actualizada siguiendo estos pasos.

  1. Actualice el archivo de clase en la solución Visual Studio con nueva funcionalidad de acción. Más información: Solución de módulo .NET actualizada

    Modificó la firma del archivo de clase para incluir un tercer parámetro de entrada como se muestra.

    using System;
    using System.IO;
    using Microsoft.PowerPlatform.PowerAutomate.Desktop.Actions.SDK;
    using Microsoft.PowerPlatform.PowerAutomate.Desktop.Actions.SDK.Attributes;
    
    namespace ModulesLogEvent
    {
     [Action(Id = "LogEventToFile" , Order = 1, Category = "Logging")]
     [Throws("LogEventError")]
     public class LogEventToFile : ActionBase
     { 
         [InputArgument]
         public string LogFileName { get; set; }
    
         [InputArgument]
         public string LogMessage { get; set; }
    
         [InputArgument]
         public string LogLevel { get; set; }
    
         [OutputArgument]
         public bool StatusCode { get; set; }
    
         public override void Execute(ActionContext context)
         {
             try
             {
                     // To append all of the text to the file
                     File.AppendAllText(LogFileName, LogLevel + ": " + LogMessage);
                     StatusCode = true;
             }
             catch (Exception e)
             {
                 if (e is ActionException) throw;
    
                 throw new ActionException("LogEventError", e.Message, e.InnerException);
             }
         }
      }
    }
    
  2. Utilice pasos similares descritos anteriormente donde firma el archivo DLL, crea el archivo contenedor, firma el archivo contenedor y carga el archivo contenedor en la sección de acciones personalizadas en Power Automate. Más información: Cree el paquete e implemente su acción personalizada

    Nota

    Antes de cargar el archivo contenedor de acciones personalizadas actualizado, asegúrese de analizar el impacto de este cambio, ya que los flujos de escritorio con esta acción se actualizarán con nuevas capacidades.

    Captura de pantalla de la actualización de la acción personalizada en el portal Power Automate

  3. Actualice el flujo del escritorio según sea necesario.

    Para validar la capacidad de actualización, agregamos un tercer parámetro de entrada a la acción personalizada. Observe que la actividad de acción personalizada está marcada como Error en el diseñador y debe actualizarse con un nuevo parámetro de entrada.

    Captura de pantalla de refactorizar el flujo de escritorio

    Captura de pantalla de una acción personalizada actualizada con parámetros de entrada adicionales

  4. Pruebe el flujo para ver la acción personalizada actualizada funcionando en tiempo real.

    Vuelva a probar la acción personalizada actualizada en el flujo de escritorio

En esta sección, actualizó la funcionalidad subyacente de la acción personalizada, creó el paquete, lo implementó en Power Automate, refactorizó el flujo de escritorio y validó la funcionalidad ejecutando el flujo de escritorio con capacidades actualizadas de la acción personalizada en Power Automate para escritorio.