Flujos de trabajo
Los flujos de trabajo de PowerShell Universal le permiten encadenar scripts y prompts de IA en un único flujo de automatización. Los flujos de trabajo son útiles cuando necesita pasar la salida de un paso al siguiente, bifurcar en función de los resultados anteriores o añadir procesamiento asistido por IA entre pasos de automatización.
Los flujos de trabajo se pueden crear en la consola de administración y gestionar desde PowerShell. Cuando se ejecuta un flujo de trabajo, se crea un trabajo de flujo de trabajo que puede supervisar desde el mismo historial de trabajos que se utiliza para los scripts.
Crear un flujo de trabajo
Para crear un flujo de trabajo en la consola de administración, vaya a Automatización / Flujos de trabajo y haga clic en Crear flujo de trabajo.
Los flujos de trabajo requieren un nombre y, opcionalmente, pueden definir parámetros. Estos parámetros se muestran cuando el flujo de trabajo se inicia manualmente y están disponibles para las expresiones y las actividades durante la ejecución.
Usar el diseñador de flujos de trabajo
El diseñador de flujos de trabajo proporciona un editor visual para organizar y configurar su flujo de trabajo. Cuando abre un flujo de trabajo, PSU muestra el diseñador de esa definición de flujo de trabajo.
Añadir actividades
PowerShell Universal admite actividades de script y de prompt de IA en los flujos de trabajo. Internamente, los flujos de trabajo también utilizan actividades contenedoras, como los nodos de diagrama de flujo y de secuencia, para definir la disposición general.
Para añadir una actividad, arrástrela desde el panel de actividades situado en el lado izquierdo del diseñador hasta una zona de destino del lienzo.
Configurar las propiedades de una actividad
Seleccione una actividad para editar sus propiedades en el panel de la derecha. Las propiedades disponibles dependen del tipo de actividad.
En las actividades de script, PSU expone los parámetros de PowerShell del script como propiedades de la actividad. Esto permite enlazar valores fijos o expresiones en tiempo de ejecución sin tener que reescribir el script solo para su uso en el flujo de trabajo.
Usar expresiones de PowerShell
Algunas propiedades de actividad admiten expresiones de PowerShell. Las expresiones se evalúan en tiempo de ejecución y pueden hacer referencia a los valores de entrada del flujo de trabajo y a la salida de la actividad anterior.
Use expresiones cuando el valor de una propiedad deba calcularse en tiempo de ejecución en lugar de almacenarse como un literal fijo. Por ejemplo, puede habilitar o deshabilitar un comportamiento en función de un parámetro del flujo de trabajo o seleccionar valores de la salida del paso anterior.
Datos del flujo de trabajo
Las expresiones y las actividades pueden acceder al estado del flujo de trabajo mediante variables integradas.
Objeto Workflow
Use la variable $Workflow en las expresiones de PowerShell para acceder a los valores de los parámetros del flujo de trabajo.
Por ejemplo, puede establecer una propiedad booleana en función del entorno seleccionado.
También puede pasar un parámetro de flujo de trabajo de tipo cadena directamente a una propiedad de actividad.
Los parámetros del flujo de trabajo se definen en el propio flujo de trabajo. Úselos para valores que deban proporcionarse cuando se inicia el flujo de trabajo, como el nombre de un entorno, un período de retención o un destino de aprobación.
PSUItem
La variable $PSUItem proporciona acceso a la salida de la actividad anterior. El tipo de objeto depende de lo que haya devuelto esa actividad.
Por ejemplo, un script puede aceptar $PSUItem como entrada.
También puede hacer referencia a PSUItem en los prompts de IA.
También puede usar $PSUItem o $Output en expresiones de PowerShell para cambiar el comportamiento de una actividad en función de la salida de la actividad anterior.
Use $PSUItem cuando desee pasar una salida estructurada de una actividad a la siguiente. Esta es la forma principal de crear flujos de trabajo de varios pasos sin almacenar el estado intermedio en otro lugar.
Deconstruct Hashtable Output
Descripción general
Deconstruct Hashtable Output controla lo que ocurre con el valor de retorno de un paso de Script una vez que el paso finaliza. Cuando está habilitado, PowerShell Universal toma un Hashtable de objeto único devuelto por el script y distribuye sus claves/valores en el estado de salida con ámbito de flujo de trabajo, de modo que los pasos posteriores pueden hacer referencia a cada clave como una salida de flujo de trabajo de primera clase en lugar de tener que indagar en $PSUItem.
Cuando está deshabilitado, esa distribución no se produce. El siguiente paso sigue viendo la salida sin procesar del paso anterior a través de $PSUItem, pero cada clave se debe desempaquetar manualmente.
Comportamiento
Cuando la actividad de Script finaliza, PowerShell Universal:
1. Lee la salida de canalización del paso.
2. Si DeconstructHashtableOutput es true:
• Continúa solo si el paso devolvió exactamente un objeto de salida con datos no vacíos.
• Si el objeto base es un Hashtable, recorre cada clave y copia cada par key → value en el estado de salida del flujo de trabajo (accesible desde los pasos posteriores).
3. En todos los casos, almacena la salida sin procesar para $PSUItem en el siguiente paso (estado de la actividad anterior).
Ejemplo
Script del paso 1:
Con DeconstructHashtableOutput = $true (predeterminado), el paso 2 puede hacer referencia a cada clave directamente a través del estado de salida del flujo de trabajo:
Al establecer el estado de salida de la actividad del flujo de trabajo, la actividad siguiente puede recibir la salida como entrada para los parámetros coincidentes.
Con DeconstructHashtableOutput = $false, el paso 2 sigue viendo el hashtable a través de $PSUItem y debe desempaquetarlo explícitamente:
Advertencias
• Exactamente un objeto de canalización. La deconstrucción solo se activa cuando el script emite una única salida. Cualquier Write-Output suelto, expresión no suprimida o emisión accidental de varios valores la deshabilita silenciosamente, incluso con la opción activada. Si observa salidas de flujo de trabajo vacías, convierta la salida no deseada a $null o canalícela a Out-Null para mantener la canalización en un único hashtable.
• Solo Hashtable, no PSCustomObject. El código comprueba Hashtable en el objeto base. [pscustomobject]@{ ... } no se deconstruirá. Use @{ ... } si desea el comportamiento de distribución.
• La salida vacía o con espacios en blanco se ignora. Si la única salida del script no contiene datos, se omite la deconstrucción.
• $PSUItem sigue funcionando en cualquier caso. Desactivar la opción no impide el acceso a la salida del paso anterior; solo cambia si las claves se exponen como salidas de flujo de trabajo con nombre.
Cuándo desactivarla
El valor predeterminado ($true) es la opción correcta para la mayoría de los flujos de trabajo. Desactívela cuando:
• Su script necesite legítimamente emitir varios objetos de canalización y no desee que PSU intente aplicar la semántica de distribución.
• Desee que los pasos posteriores reciban el hashtable como un único objeto opaco a través de $PSUItem y se encarguen ellos mismos de desempaquetarlo.
• Esté devolviendo un Hashtable cuyas claves entren en conflicto con nombres ya presentes en el estado de salida del flujo de trabajo y desee evitar sobrescribirlos.
Establecer el valor mediante New-PSUWorkflowActivity
Ejemplo de patrón de flujo de trabajo
Un patrón habitual es:
Ejecutar un script para recopilar datos.
Pasar la salida a un prompt de IA o a otro script.
Usar el resultado en un script final para llevar a cabo una acción.
Por ejemplo:
Una actividad de script devuelve una lista de procesos.
Un prompt de IA identifica el proceso que utiliza más memoria.
Un script final recibe ese resultado a través de
$PSUItemy envía una notificación.
Este enfoque mantiene cada paso centrado y hace que el flujo de trabajo sea más fácil de probar y de solucionar problemas.
Ejecutar flujos de trabajo
A demanda
Los flujos de trabajo se pueden ejecutar a demanda haciendo clic en el icono de reproducción de la consola de administración. Si el flujo de trabajo define parámetros, PSU los solicita en el cuadro de diálogo de ejecución. Una vez iniciado el flujo de trabajo, PSU le redirige a la página del trabajo del flujo de trabajo.
Programación
Los flujos de trabajo admiten las mismas opciones de programación que los scripts, incluidas las programaciones CRON, únicas y continuas. Puede crear programaciones de flujos de trabajo desde Automatización / Programaciones o asignando una programación directamente al flujo de trabajo.
Use programaciones cuando el flujo de trabajo deba ejecutarse sin intervención manual, como la limpieza nocturna, la validación de entornos o la clasificación periódica asistida por IA.
Invoke-PSUWorkflow
Invoke-PSUWorkflow le permite ejecutar flujos de trabajo desde PowerShell o desde otras partes de la plataforma PowerShell Universal. Igual que con Invoke-PSUScript, puede proporcionar valores de parámetros al invocar el flujo de trabajo.
Gestionar flujos de trabajo con PowerShell
Puede gestionar los flujos de trabajo a través del módulo Universal, además de la consola de administración.
Los cmdlets principales de flujos de trabajo son:
Get-PSUWorkflowNew-PSUWorkflowSet-PSUWorkflowRemove-PSUWorkflowNew-PSUWorkflowParameterNew-PSUWorkflowActivityInvoke-PSUWorkflow
Definir parámetros de flujo de trabajo
Use New-PSUWorkflowParameter para definir los metadatos de entrada del flujo de trabajo, como un valor predeterminado, si el parámetro es obligatorio y el texto de ayuda que se muestra a los usuarios.
Definir actividades en PowerShell
Use New-PSUWorkflowActivity para crear definiciones de actividades de flujo de trabajo.
Use
-Parameterspara valores literales.Use
-Expressionspara expresiones de PowerShell evaluadas en tiempo de ejecución.Para
-Type Script, PSU puede exponer parámetros dinámicos del script de destino.
Crear un flujo de trabajo en PowerShell
New-PSUWorkflow acepta una cadena de definición sin procesar o un bloque de script que devuelva una única definición de actividad de flujo de trabajo.
Supervisar las ejecuciones de flujos de trabajo
Las ejecuciones de flujos de trabajo aparecen en el historial de trabajos, igual que los trabajos de script. Use la página del trabajo para inspeccionar:
estado actual
salida de flujo
salida de canalización
errores
Este es el mejor lugar para solucionar los problemas de los pasos de flujo de trabajo fallidos y verificar los datos que se pasan entre actividades.
Solución de problemas
Si una propiedad debe calcularse en tiempo de ejecución, use una expresión en lugar de un valor fijo.
$PSUItemsolo contiene la salida de la actividad anterior. La primera actividad de un flujo de trabajo no tendrá salida previa.Las propiedades de la actividad de script se basan en los metadatos del script de destino. Si un parámetro del script no aparece como se esperaba, verifique la ruta del script y el nombre del parámetro.
Los nombres de los parámetros de la actividad y las claves de las expresiones deben coincidir con propiedades válidas para ese tipo de actividad.
Si necesita una ejecución recurrente, adjunte una programación en lugar de invocar el flujo de trabajo manualmente.
Temas relacionados
Última actualización
¿Te fue útil?