Alteryx Designer Knowledge Base

Definitive answers from Designer experts.

How to run a workflow from an event

EricWe
Alteryx
Alteryx
Created

How to run a workflow from an event

 

A Run Command Event can run another workflow automatically when the first workflow finishes.

 

Prerequisites

 

A Desktop Automation, Engine API, or Server license is required to use Run Command Events.

 

Procedure

 

Click in a blank space on the Canvas, then go to the Workflow – Configuration screen and select the Events tab. Next, click on Add and Run Command.

 

The Run Event When options are:

  • Before Run: Runs the command before the workflow runs.
  • After Run: Runs the command after the workflow runs.
  • After Run with Errors:Runs the command after the workflow, but only if the workflow ran with errors.
  • After Run Without Errors: Runs the command after the workflow, but only if the workflow ran without error.
  • Disabled:Turns the event off.

Command: should be set to C:\Program Files\Alteryx\bin\AlteryxEngineCmd.exe

(change C: if necessary to the drive with the Alteryx installation)

Command Arguments: list the workflow name run by the event, including the file extension .yxmd.

Working Directory: set to the folder location of the workflow run by the event

 

EricWe_0-1582514167871.png

 

Alternatively, you can have the event run the workflow from a batch file. Other commands can run from a batch file as well.

 

Start with a new Notepad document and add the commands using this syntax.

“C:\Program Files\Alteryx\bin\AlteryxEngineCmd.exe” C:\Alteryx\Workflows\ EventWorkflow.yxmd

 

First, call the AlteryxEngineCmd with the full path enclosed in double-quotes. Use quotes for any command where the folder path has a space, such as between the words in the folder name Program Files. Next, add a space, and then the location of the workflow the event will run, including the workflow name and file extension.

 

After saving the file, right-click, select Rename, and then change the file extension from .txt to .bat. The file is ready to use in a Run Command Event. Just call the batch file in the Command, for example:

 

EricWe_1-1582514167876.png

 

Additional Resources

 

Workflow Configuration Help Page 
Scheduling Workflows Using Event Run Command 
Chaining Workflows Together  
 

Comments
TimN
8 - Asteroid

Eric,

Would the workflow or workflows executed this way be queued on the Controller?  We have Alteryx Server.  If I was using this method (C:\Program Files\Alteryx\Bin\Alteryxengine.exe MyWorkflow.yxmd) from an external scheduler how would that impact performance?  Any further detail is appreciated.

 

Thank You,

 

Tim

EricWe
Alteryx
Alteryx

Hi @TimN

 

Yes, the workflow events can be run on the Server. Since the events occur sequentially, it should not affect performance in terms of exceeding the limit for simultaneous workflows configured in System Settings. The best practice is to divide the number of processor cores by two and not exceed that number in the simultaneous workflows setting. If the limit is reached based on that setting, other workflows may queue up and wait to be processed.

TimN
8 - Asteroid

Eric,

Thanks!

 

Tim

smysnbrg
7 - Meteor

@ericwe

 

Can you please confirm that one needs to have the Alteryx Server Engine API License in order to utilize a command such as:

 

C:\Program Files\Alteryx\Bin\Alteryxengine.exe MyWorkflow.yxmd

 

Server 2020.2.3.27789

 

Steven

EricWe
Alteryx
Alteryx

Hi @smysnbrg

 

You can also run a workflow from the Command Prompt with a Designer Desktop Automation license. 

FreeRangeDingo
8 - Asteroid

I keep getting this error...

The external program "C:\Program Files\Alteryx\bin\AlteryxEngineCmd.exe" returned an error code: 1: Too many posts were made to a semaphore. (298).

 

Any ideas.  Search didn't turn up much.

EricWe
Alteryx
Alteryx

HI @FreeRangeDingo

 

The error could have many possible causes. Please contact support@alteryx.com so we can research it further. 

kedar26
7 - Meteor

Asking this because I have an Alteryx server environment and 50 workflows previously being called via a single master workflow configured using in a CREW macro's "run if success" tool (which we are not going to use considering a few performance downsides). So here are three scenarios and I want to know how the controller and it's queue manage workflows in three the scenarios.

 

1. Is to schedule or let user run the 50 individual workflows on the server one after the other.

2. Chain the apps in sets of 7 so the limitation of running each under 30 seconds can not hamper the flow.

3. Use the command line.

 

In all of the above 3 I want to know if point 2 or 3 has some benefit wrt to server performance and if calling the AlteryxEngineCmd.exe to run the workflows on the server causes any kind of instability as opposed to the usual scheduling/uploading of the server we do in general.

 

EricWe
Alteryx
Alteryx

Hi @kedar26,

 

If the workflows must follow a specific order, it is best to use Run Command events from the Workflow - Configuration Events tab or allow plenty of time between separate schedules.


The number of Simultaneous workflows is set in the Alteryx System Setting on the Worker General tab. The best practice is to configure this setting to be half the amount of physical processor cores on the server, as each workflow uses two cores. Any additional workflows should queue up and wait to be processed. I suggest checking this setting to ensure no resource contention could delay the completion of a workflow and cause separate schedules to complete out of sequence.


The Interface Designer option On Success - Run Another Analytic App only works if there is user input for each workflow in the chain.