This site uses different types of cookies, including analytics and functional cookies (its own and from other sites). To change your cookie settings or find out more, click here. If you continue browsing our website, you accept these cookies.
Scheduling a workflow, application, or package on your company's Gallery allows you to automate a process at a given frequency, date, and/or time. Because your asset is running on a server machine, it will not matter if your computer is connected to a network, or even turned on. In this article, we will describe how to schedule a workflow on a private Gallery.
We hope that you are as excited about this new feature as we are! The new Database Connection Share is a feature that will allow ease of access for your Alteryx users to your databases. The feature also allows the Alteryx Gallery and Database Administrators more governance over what connections are being made as well as who are making the connections.The Admin of the Gallery can create and manage their users' data connections.
I had a user recently ask about having an app on their Gallery run, produce an output, and have a second workflow send an email with the output from the app. There are a couple of ways to accomplish this, but I came up with an idea that I thought would be useful to share with the Community as they may find this feature useful for many situations.
The idea was to make it simple for the user so that they didn't have to use a chained app. The user just wanted the second workflow to run, but not put the Email tool on the Server. The solution is to use the Events > Run Command in the Workflow Configuration to schedule the email workflow after the app is run.
To accomplish the task, you can use a command line option that will add a specified workflow to the scheduler queue.
Scheduling a workflow via the Command Line:
The Run Command is in the Events tab; click on your Alteryx canvas and in the Workflow Configuration window select Events > Add > Run Command:
Run Event When: to "After Run"
C:\Program Files\Alteryx\bin\AlteryxService.exe (This may not be exactly where your company has the AlteryxService.exe saved. Please check with your Server Admin.)
Command Argument [Optional]:
addtoqueue=C:\location\of\workflow\to\schedule.yxmd,Server name,Controller Token,true
C:\Program Files\Alteryx\bin\AlteryxService.exe addtoqueue=C:\Temp\simpleoutput.yxmd,dib-ps-tst-12,3EA75D9170E4956DC3583C23224BA0898A98376D,true
Where to find Server name:On the machine the holds the server - Windows Start>Control Panel>System>Computer Name
Where to find the Controller Token: Open your Alteryx System setting on the Server and click Next until you reach the General screen under the Controller section. Click View to see the Controller Token and copy the token.
Once the first workflow is run, the Scheduler will queue up the scheduled workflow and run the workflow on the Scheduler immediately.
Hopefully, this will give you some creative ideas to use this operation!
One common reason why the Alteryx Service appears stuck in the 'Stopping' state is when the service is trying to stop but the AlteryxEngineCmd.exe process is running. In other words, a workflow is running. The Alteryx Service cannot be stopped when a workflow is running due to a schedule or a Gallery run.
Assets are an important part of your workflows in Alteryx. Assets will need to be included if you want to share, schedule, and publish your workflows to your Gallery. We run into many cases where users are able to run workflows on their Designer but they fail on Scheduler and Gallery. In a lot of cases it is due to the pieces of the workflow are not all there in the Scheduler and Server database. In this article, we will talk about when you need assets, how to package the assets, and what assets you want to make sure are a part of your workflow.
When You Need Assets:
When building and using workflows in the Alteryx Designer you don’t need to do anything with your assets as they are a part of your workflow locally, but if you want to move the workflow somewhere or to someone, you will need to package the workflow.
When sharing your workflow with another user, the workflow will need to be packaged with those assets so that the user can run the workflow without error. This would include input files as well as macros. If the workflow is connected to a database or using Alteryx Data, the user will not be able to run the workflow successfully unless they have access to those data sources on their own machine.
If you have Server or Desktop Automation, the Scheduler will be using a database separate from your Designer. If you have Server you will be using a MongoDB and if you have automation you will be using a SQLite database. This would mean that any macros that are not on the server or SQLite database would need to be added. By packaging the workflow and scheduling the package, the Scheduler will be able to access any custom macros or macros not included with Alteryx. This would include Predictive as well unless you have installed the predictive tools to your Server. If you have version 11.0 Server or later, you can send your workflows to your private gallery and schedule them on your server. When you do that, Alteryx will package the workflow the same as if you were sending an app or workflow to the Gallery as below.
The Gallery works a little different than packaging a workflow or Scheduled workflow. The difference is that the Assets will need to be on the Alteryx Server along with the workflow for the app, macro, or workflow to be used on the Gallery. Basically, the Save As option to the Gallery of your choice will start the packaging process of your workflow and Assets. The Save As a workflow window will appear with information about your workflow that you are sending to the Server Gallery. Select Workflow Option. Below the Workflow Options you will select Manage workflow Assets. This is where you can include and exclude information being sent to the Gallery.
Packaging the Assets:
Select in the tool bar Options ->Export Workflow. This will then launch a window that will show the name of your workflow, the location where the package will be stored, and the list of workflow assets.
When sending your workflow to the Gallery, you will do a Save As to and the Company’s Gallery. A window will open and you will see Workflow Options at the bottom of the page.
Select Workflow Options
You will then reach the Assets window which is similar to the packaged Assets window above.
You also have a second option when sending workflow to the gallery. In the Workflow Configuration window, select the Events tab, Select Add, Run Command. You will see a tab called Assets where you can add assets to the workflow. This is especially helpful when you are adding a chained app to the gallery. Check out Jordan’s article for the step by step: Adding-Files-to-the-Gallery.
What Assets Do I Need:
Great! I found the assets, but why are some missing, some checked, some not checked and which ones do I really need and what don’t I need?
You may see that you have Input and Output assets. When you are packaging a workflow to send to a user, you can include those assets if the user does not have those files to run the workflow. If the user does have the files or they are going to update the Input files or Output files, then you would not include them. The Input and Output assets will never include database connections only files.
The .yxmc files can be an important part of your workflow. Many of the Alteryx tools are .yxmc files and if these macros are a part of the Designer package, you won’t need to include them in the package as Alteryx knows that these tools will be in the workflow (example Report Header Tool is a macro). If macros are downloaded from the Alteryx Gallery, custom created, or sent from another user, these macros will need to be included as Assets.
We receive quite a few questions on how to properly chain workflows together. We have a few options that depend on what Alteryx type you are using.
If you have Designer only, your options are to use the Crew Macros which are found on the Community. No link provided as the tools get updated. Please use the Community search for the latest Crew Macros.
In the Crew Macros set, the tools that you will be looking to use are the Runner Tools. You can find a description of the tools here Runner Tools.
Note: You will have to create another workflow using these macros to execute the workflows.
If you have Designer with Scheduler or Alteryx Server, you can use the Crew Macros on the Scheduler, but they are not able to be used on the Gallery. You have other options that will allow you not to have to build another workflow using the Runner Tools and use the workflow on the Gallery or Scheduler.
When you have Scheduler or Server you have access to the Alteryx Engine Command. This will allow Alteryx to run workflows through the command line to execute additional workflows or programs. In most cases, the AlteryxEngineCmd.exe will be located in C:\Program Files\Alteryx\bin\AlteryxEngineCmd.exe.
Great, so what do I do with it?
In your Workflow Configuration window, you have a tab called Events. In that tab you can add a Run Command event. You can choose to run the command as:
In the Command: you can either browse to your AlteryxEngineCmd.exe or type in the location like so - C:\Program Files\Alteryx\bin\AlteryxEngineCmd.exe
In the Command Arguments [Optional]: You will add the location of the 2nd workflow along with the name of the workflow and file type.
VERY IMPORTANT: Notice in the example above that we have quotations around the string. The reason for this is that the command has difficulty with spaces in the directory paths. By putting quotes around the string, this tells the command to essentially ignore the spaces. However, best practice is to not have spaces in your directory paths when using this command.
Note: This method is a great method, but can be finicky. if you are running other command process or do not have admin access to the folders it can cause issues.
You have another option as well! You can turn your workflows into apps for either Gallery or Scheduler use and have them run consecutively.
When you drag an Interface Tool onto the canvas your workflow will automatically change to an App. If you don't want to use an Interface tool you can still change the workflow to an app to use the chained app option. Once you change the workflow to an app, you can use the Interface Designer window to chain the apps together.
Note: When creating chained workflows to use in the Scheduler and Gallery, the workflows and Assets for the workflow must be placed on the Server. Also, the Server will need to have access to any database connections, file directories, and input files.
Want to know more about the Interface Designer? Interface-Designer-Part-1
Want to schedule workflows to run consecutively? Check out this article - Scheduling-Workflows-Using-Event-Run-Command
How do you reserve port 80 on a server for a reverse proxy that Alteryx Server would sit behind? Ideally, anything off the box could still connect using 80, but locally it would be configured it to use a different port.
The Service Port can be currently only be modified by manually editing a key configuration file called "RuntimeSettings.xml." It's important to note that there are two files with this name installed on a Server:
There is a read-only file called RuntimeSettings.xml installed in the root Alteryx installation folder, which by default is C:\Program Files\ Alteryx\bin\RuntimeData\RuntimeSettings.xml . This is the core settings configuration file used by Alteryx and must never be edited .
There is a second file called RuntimeSettings.xml located at C:\ProgramData\Alteryx\RuntimeSettings.xml. This file is created and modified by the Alteryx System Settings dialog, and contains settings overridden from the base configuration file in (1).
**Please note that the settings should only ever be modified using the Alteryx System Settings dialog, as incorrect or incomplete settings could prevent your server from running correctly.**
Please reach out Alteryx prior to performing any manual modification of your Server configuration. This is especially important if you are running a multiple-node Server installation, as all nodes will need their Controller information updated. Similarly, Alteryx Designer users using the Scheduler will also be impacted by the change.
If you "must" change the Service Port be sure to:
Schedule planned Server downtime with your Server users
Stop the Server (using the Service Control Manager or Services tab in Task Manager)
Navigate to C:\ProgramData\Alteryx\
Create a copy of the file RuntimeSettings.xml
A an Administrator, start Notepad and open RuntimeSettings.xml
Under the "Controller" section of the XML, add the tag <ServicePort>your_desired_service_port</ServicePor t>
Save the RuntimeSettings.xml file
Open Alteryx System Settings and add the port to the Base Address like so: http://localhost:your_desired_service_port/gallery/
Start the Server (using the Service Control Manager or Services tab in Task Manager)
Verify Server operation
Receiving the error below when attempting to schedule a module?
“An error occurred in the scheduler. Server Error: 500 Server Error GetExpectedValue: Expected “Container” but got “Sid” Incorrect type requested 1 actual 4”
Post v10.5 release, your Alteryx Server and working environment must be of the same version in order to enjoy the upgrades of the release and still be able to commit scheduled workflows correctly. When the versions of your worker and server do not match, you’ll receive the error above. While our recommendation is to be using the most up to date release, you can always upgrade or revert your designer version either at our Downloads page (current version) or the Previous Releases webpage. To check on the version you’re using, you can navigate in the Designer to the Help >> About menu.
Want to start scheduling workflows? First, you will need to connect to the controller of your server
When connecting your desktop to the Controller, you need two things: the machine name of the server and the controller token.
1. What’s a machine name, you ask? It is also known as the full computer name. On the machine housing Alteryx Server, the machine name can be found here - Control Panel\System and Security\System. Mine looks something like computername.domain.com.
2. The Controller token comes from Alteryx System Settings, also located on the machine that houses the server. It is under Controller>General. Click View, copy and paste the controller token into notepad and save it somewhere safe! *Regenerate only if completely necessary, this will cause issues for existing schedules*
You are now ready to connect to the Controller!
3. Go to Options>View Schedules>Controller dropdown>Connect to Controller
And the final step is copying and pasting the Machine name and Controller token you gathered earlier.
If you are getting an error message 'Workflow exceeded maximum runtime of XX seconds and was canceled', you may need to change your system settings to allow a workflow to run longer. From Alteryx Designer, go to Options --> Advanced Options --> System Settings. (Note: if you are running Alteryx Server and don't see the System Settings, you will need to contact your server administor and have them help you make changes to the System Settings). Click 'Next' until you get to the Worker Configuration. If the 'Cancel jobs running longer than (seconds)' option is checked, the seconds can be increased here.
This message will be generated for scheduled workflows and workflows being run from a gallery if the option has been checked and the workflow runs longer than the setting allows.
The Run the Worker as a Different User a.k.a “Run As” option in the System Settings allows the Worker to run the Alteryx Engine as a different user. By default, the Scheduler runs using the Local System Account.
When accessing these other environments, credentials that have Admin rights are recommended. This removes any chance of workflow failure if permissions change for non Admin user.
Run as Different User:
Scheduler: - If a Worker machine needs to run workflows that access files or data from a location that requires specific credentials to access it, the machine can be configured to run the workflows as a specified user or account.
Server: - When clients are sending database connections to the Gallery, they will need to send the app to the Gallery that works with their system settings. Otherwise, the app will fail since it will not connect to their local instance of the database on their machine.
Alteryx > Options > Advanced Options > System Settings
My workflow runs fine through the GUI but it fails through the Scheduler
This is can be a sign of permission issues. For the workflow to run successfully it needs access to the resources it is referencing such as network drives, files, database connections, and such. Check all of your Inputs and Outputs to verify whether the connections are local or remote. If you are connecting to a network file share open Alteryx > Options > Advanced Options > System Settings and click Next until reaching Run the Worker As a different user……..and???
I have configured Alteryx Server to run workflows as a specified user, but they are failing.
You may be encountering this issue if the Worker machine that is configured to run the workflows as a specified user does not have the appropriate permissions in the workspace folder where files are stored. Double-click the System Settings icon on your desktop to open the System Settings window and check the following settings:
Identify the Workspace folder specified on the Worker > General screen.
Open Windows Explorer and navigate to that folder.
View the folder properties.
On the Security tab, verify that the user specified as the Run As user exists in the list of users. If it does not, add it.
On the same tab, highlight the specified user and ensure it has the following permissions: Modify / Read & Execute / Read / Write.
I’ve set up the Run As and it has been working, but now my modules have started failing. Check if the password has changed recently
Safe and Semi-safe options for the Alteryx Gallery can only be used if the Worker > Run As setting has been enabled.
Is it possible to query the data on the "View Schedules" tab of the scheduler?
This question has come up a few times recently, and the answer is yes you can but the method depends on whether you are using MongoDB (Server) or SQLite (Designer + Scheduler).
Let's go over MongoDB (Server) first:
First you'll need some information from your System Settings (Controller - Persistence section):
You'll need the Host information, Username, and Password. You'll see two options for password, Admin and regular. For this you want to use the regular Password (which you can just copy/paste into your connector).
Once you have this information, configure the MongoDB Input tool (Connectors toolset):
The "Host" information goes in the Server input. Username and Password go in their respective boxes. The database you need to query is AlteryxService.
The Collection drop down should auto populate with the tables you can pull from, however you may need to run the workflow once to refresh (you will get an error stating that Database and Collection must be specified).
Once you've established your connection you can use the rest of the tool configurations to set up any other information you want such as record limits:
You can find more information on the specifics of these options in the help file by clicking on the ? icon in the tool configurations.
Next we’ll go over how to connect using SQLite (Designer + Scheduler):
For this option it’s pretty straight forward. You’ll use your standard Input Data tool.
Browse out to: ProgramData\Alteryx\Service\Persistance\AS_Schedules The file you are looking for is called “__TheData.sqlite”
Parse the data
With both methods you'll get a variety of information back including computer name, username, run dates, etc. There will also be a field called "ServiceData" that is a blob field with a binary object. This field contains additional information about the record you are viewing and can easily be parsed using the ServiceDataParser macro attached below.
The ServiceDataParser.yxmc was created by Kory Cunningham and is necessary to make use of the additional field. The original macro is included in the Gallery Usage Report App available on the downloads page ( http://downloads.alteryx.com/downloads.html )
Note that in some cases you may encounter an error when trying to use the macro stating "This tool is not licensed". This is because the macro uses a generic tool that some older licenses don't enable. If you encounter this error, consult with our Fulfillment team to obtain an appropriate license.
Put it all together:
The final step here is to join the information from the various Mongo tables back together (if pulling from multiple tables). The key table for this process is the Queue table (AS_Queue) as it holds all of the IDs necessary to join back to the other tables (AS_Results, AS_Schedules, AS_Applications) in order to get all the data together.
You'll need multiple Joins to make this work outlined below:
1) Join the Schedules Table to the Queue Table using the AS_Application_ID field.
2) Join the results of Step 1 to the AS_Results Table using the AS_Queue_ID field.
3) Join the results of Step 2 to the AS_Applications Table using the AS_Application_ID field and the Mongo_id field (from Mongo Input tool)
Note that in order to use the Mongo_id you'll need to parse it out to remove the unneeded information. You can do this using a simple RegEx expression within the RegEx tool: .*"(.*)".*
I've also attached a sample workflow detailing this process. Note that the workflow probably won't run until you update the credentials to match your own as it is set up for my instance of Mongo. You can use the workflow as a template for your own connections.
If you want to take this process a step further, take a look at this article. It will show you how ot use an Alteryx macro to accomplish this (downloadable from the Gallery) and also includes a link to show you how to build a Tableau dashboard to make the information easier to consume!
All screen shots and directions are taken from Alteryx version 10.1.6
**Update for 11.0 release**
In 11.0, the option to schedule workflows from the Gallery was added. I've updated the sample workflow to show how to bring those in and identify them separately. There's a bit of extra parsing necessary. Take a look at the "PullFromMongo_Updated_v11.yxzp" file attached.