Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!

Alteryx Designer Desktop Knowledge Base

Definitive answers from Designer Desktop experts.

Getting Started with Standard Macros

EricWe
Alteryx
Alteryx
Created

How to get started with using Standard Macros

When you have a repetitive task to complete processing data across different columns, data sources, and/or workflows, a Standard Macro may help automate that task.

If you notice a part of your workflow has become a series of the same tools being reused multiple times like the example below, it may be time to consider using a macro.

EricWe_0-1574773249960.png

This article will help you get started with using Standard Macros. There are examples, recorded training sessions, and other articles to further your knowledge listed in the Common Issues and Additional Resources sections.

You can think of a Standard Macro as a shared process that can be reused for different fields, data sources, or workflows. It packages a process completed with a set of tools as a single tool and creates one output.

A Standard Macro can be configured with questions that the user answers to dynamically configure the macro before running the workflow. By answering these questions, the user can update the values used.

The macro is saved as a separate file with a .yxmc extension, and it can be shared for use in other workflows. The set of tools in a Standard Macro is run once and then it is done.

The macro type is selected on the Workflow tab in the Workflow - Configuration window.

EricWe_1-1574773249970.png

There are a few basic steps to configuring a Standard Macro. Select a Macro Input Tool from the Interface Toolbar to start. When adding a Macro Input Tool to the canvas, the workflow type will automatically change from Standard Workflow to Standard Macro.

Placeholder input should be added to the Macro Input Tool for developing and testing the macro. The placeholder data in the Macro Input Tool will be replaced by the workflow data once the macro is complete.

You can either create test data in with the Text Input option or select a File with the data you want to use. This test data should have the same number of columns as the workflow input that will run through the macro and the same data types.

Notice in the Macro Input Configuration screen that the Show Field Map checkbox is selected. This option will allow the user to click on the macro icon once it is added to a workflow and select the columns that will map to the fields used in the Macro Input Tool as placeholder data.

EricWe_2-1574773249978.png

The Anchor Abbreviation in the screen capture above is set to 1. It will appear on the matching anchor for the macro when it is added to the workflow. For example, here is a Standard Macro with inputs 1 and 2 as well as outputs 3 and 4.

EricWe_3-1574773249980.png

Once you have your macro input configured, you can create the process that you want to automate. Here a new column is created that adds 5 to the values coming from the Macro Input tool.

EricWe_4-1574773249984.png

Keep in mind that you can configure the macro with questions, and have the user set the values used in the macro. In this example, a Text Box Tool was added. When the Q output anchor of the tool is connected to the lightning bolt anchor of another tool, an Action Tool automatically appears. This tool gives the user the ability to define the Action that will occur with the user’s answer to the question.

EricWe_5-1574773249988.png

In this example, the Action Tool is going to update the Formula, and replace the number 5 with the number typed in by the user.

EricWe_6-1574773249995.png

Once the macro is completed and saved as a .yxmc file, it can be added to a workflow as a tool selected from the Insert Tool Menu. The record values from the workflow will replace the values in the Macro Input Tool.

To add a macro to a workflow right click on the canvas and select Insert Tool, then look for the Macro option at the bottom.

EricWe_7-1574773250009.png

If the Show Field Map option was selected in the Macro Input tool, the user is prompted to map the field(s) from the workflow to match the placeholder data in that tool. Since a Text Box Tool was added in the macro and set to replace a number in the Formula Tool, the user is also prompted for the number that will be used in the addition function to produce the result. The prompt is like a question from the Text Box Tool asking what number to use for replacing the placeholder value in the Formula Tool.

EricWe_8-1574773250014.png

The Standard Macro can be a superhero in your workflow and make it easier to complete. You can customize your macro with a picture by going to the View menu and selecting Interface Designer. Next, click on the Properties icon and select the Custom Icon option.

EricWe_9-1574773250015.png

The Interface Designer is also helpful for arranging the questions shown to the user and debugging the macro. For details see: Interface Designer Part 1.

Common Issues

You may need some sample workflows with macros to help you get started. In Designer, try going to the Help menu, then Tutorials, and select the Intro to Macros option. There is a two-part workflow lesson for beginners.Also, sample macros for different use cases are available in Designer by going to Help, Sample Workflows, Use scripting and automation tools, and Build a Macro. When viewing the workflow, right-click on the macro tool, and then select the option to Open Macro. This will open the macro workflow packaged for that tool on a separate tab.

There are recorded training sessions for macros available on the Community website here: Recorded live training label: Macros.

Once you have started creating macros, you may want to organize and access them in a Designer Toolbar for easy reuse.

You can have Designer automatically add macros to a Macro toolbar through User Settings. Go to Options, User Settings, Edit User Settings, and select the Macros tab, then click on the plus sign button. You can add a folder location in the Search Path. Any macros stored in this location will appear in a toolbar category titled Macros that is added by Designer.

EricWe_10-1574773250019.png

If you want your macro to appear in other existing Toolbars, use these instructions: Macro Installation.

Additional Resources

Macro Help Page

Macro Input

Macro Output

Tool Mastery Apps and Macros

Best Practices for Sharing Macros

Getting Started With Batch Macros

Getting Started With Iterative Macros

Comments
CDunhill
8 - Asteroid

Hi, thanks for pulling this tutorial together as I'm interested to learn about macro building. However, it's probably just me but I find some of the above steps a little confusing, especially when you're talking about placeholder inputs.

 

If you'd be able to break this down into simple, numbered idiot-proof (aka me-proof) steps it would be appreciated.

 

Thanks in advance.

Chris

EricWe
Alteryx
Alteryx

Hi @CDunhill

 

When building a macro, there is a Macro Input tool for each input source the macro will receive from the workflow. Eventually, the macro packages into a single tool and gets added to a workflow. However, that only occurs after finishing the build of the macro itself.

 

While building the macro as a separate file, the Macro Input tools will have columns corresponding to the workflow columns that will send data to the macro. These tools have the placeholder data referenced in the KB. The columns do not have to contain the actual data from a workflow. When clicking on the macro icon, you map each placeholder column to an actual column in the workflow. 

 

Building macros can be a little tricky at first. I suggest viewing a recorded training session on the Alteryx Community Academy. It will be more intuitive after seeing step by step instructions while the macro is built. Here are two videos that would help.

Introduction to Building Macros 

Build Your First Macro 

How does this make any sense?  I just want to iterate over the rows in a text file and run a workflow for each row.  This would be a few lines of code in any reasonable language, e.g. Python.  Why do I need to follow two tutorials to figure out how to do the equivalent of for each elem in list do workflow?  Once I do, I'll find out that it will behave differently if I have a text value of a or 1, since 1 is obviously a a byte and a is obviously a varchar of some flavor.  I am frustrated with looking at youtube to find poor examples, then logging in here to find that 'first macro' or 'macro tutuorial' in the first search bar on the first page I come to returns thousands of hits of variable quality and relevance.

EricWe
Alteryx
Alteryx

Hi @RobertFolkertsTCS

 

For iteration, use the IterationNumber variable that is available when changing the macro type to Iterative Macro in the Workflow - Configuration screen. I'd suggest using a Record ID tool for numbering the rows, then set a Filter tool to check if the IterationNumber matches the Record ID. This article has details. Iterative Macros 


You might try using a Crew Runner Macros instead, as each Runner Macro tool can launch a separate workflow. However, if too many workflows run at once, that could cause contention for the processor cores. To avoid that issue, you can check the Microsoft System Information screen for the number of physical processor cores and just run half a many workflows simultaneously. That is the general recommendation, as each workflow will use two processor cores. Please see this article for download, installation, and support links. Crew Macros 


If you have a Desktop Automation license or access to Designer on an Alteryx Server, you can also automatically run a series of workflows sequentially from Run Command events in the Workflow - Configuration Events tab. This article has instructions. Run a workflow from an event 


Please contact Alteryx Support at support@alteryx.com for any assistance needed.