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
- Versión más reciente de Power Automate para escritorio - Instale Power Automate
- Herramienta de creación de C# como Visual Studio Comunidad/Profesional/Empresa 2022 con la carga de trabajo de desarrollo de escritorio .NET
- SDK de acciones personalizadas – Galería NuGet | Microsoft.PowerPlatform.PowerAutomate.Desktop.Actions.SDK
- Certificado digital:
- Generar un certificado autofirmado – Descripción general de Generar certificados autofirmados - .NET
- Implementación empresarial: el certificado de confianza de su organización de la autoridad certificadora - Firmas y certificados digitales – Soporte de Office
- SignTool:
- Script de Windows PowerShell (.ps1) – Crear acciones personalizadas – Power Automate
Crear sus propias acciones personalizadas
Abra Visual Studio para crear un nuevo proyecto usando la plantilla de Biblioteca de clase (.NET Framework).
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
En Visual Studio, seleccione Herramientas>Administrador de paquetes NuGet>Consola de administrador de paquetes.
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
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.
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.
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
Importe el certificado al almacén de certificados usando este comando.
##Import certificate Import-Certificate -CertStoreLocation $certStoreLocation -FilePath $certCERFile
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).
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"
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
Firme el archivo archivador generado utilizando Signtool.
Signtool sign /f "C:/PADActions/PADCustomActionCert.pfx" /p <YOURCERTPASSWORD> /fd SHA256 "C:/PADActions/PADCustomActionEventLog/PADCustomActionEventLog.cab"
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.
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
Cree un flujo de escritorio nuevo y seleccione la Biblioteca de activos en el diseñador.
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.
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.
Arrastre la acción personalizada o haga doble clic en ella para agregarla al flujo del escritorio.
Proporcione los parámetros de entrada y pasos adicionales para probar la acción personalizada.
Flujo de escritorio de muestra usando la acción personalizada.
Pruebe el flujo para ver la acción personalizada funcionando en tiempo real.
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.
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); } } } }
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.
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.
Pruebe el flujo para ver la acción personalizada actualizada funcionando en tiempo real.
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.