community
cancel
Showing results for 
Search instead for 
Did you mean: 

Alteryx Designer Ideas

Share your Designer product ideas - we're listening!
Upgrade Alteryx Designer in 10 Steps

Debating whether or not to upgrade to the latest version of Alteryx Designer?

LEARN MORE

1 Review

Our submission guidelines & status definitions before getting started

2 Search

The community for a solution or existing idea before posting

3 Vote

By clicking the star in the top left corner of an idea you support

4 Submit

A new idea to suggest a product enhancement or new feature


Suggest an idea

How about turning this;

SELECT * 
FROM Employee
ORDER BY First_name ASC

into this automatically

Picture1.png

and a more complex one

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID; 

into this

Picture2.png

basically it's a parser;

 

1) First check if it's a MS SQL, PL/SQL or T/SQL

2) Then figure out join relationships

3) Convert each subset SQL into function nodes

4) Convert function nodes to Alteryx yxmd (xml)

 

Creates the following for the first workflow

<?xml version="1.0"?>
<AlteryxDocument yxmdVer="10.5">
  <Nodes>
    <Node ToolID="1">
      <GuiSettings Plugin="AlteryxBasePluginsGui.AlteryxSelect.AlteryxSelect">
        <Position x="174" y="90" />
      </GuiSettings>
      <Properties>
        <Configuration>
          <OrderChanged value="False" />
          <SelectFields>
            <SelectField field="*Unknown" selected="True" />
          </SelectFields>
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText />
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxSelect" />
    </Node>
    <Node ToolID="2">
      <GuiSettings Plugin="AlteryxBasePluginsGui.Sort.Sort">
        <Position x="246" y="90" />
      </GuiSettings>
      <Properties>
        <Configuration>
          <SortInfo locale="0">
            <Field field="FIRST_NAME" order="Ascending" />
          </SortInfo>
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText>FIRST_NAME - Ascending</DefaultAnnotationText>
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxSort" />
    </Node>
    <Node ToolID="4">
      <GuiSettings Plugin="AlteryxBasePluginsGui.TextInput.TextInput">
        <Position x="90" y="90" />
      </GuiSettings>
      <Properties>
        <Configuration>
          <NumRows value="0" />
          <Fields>
            <Field name="FIRST_NAME" />
          </Fields>
          <Data />
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText />
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxTextInput" />
    </Node>
    <Node ToolID="13">
      <GuiSettings Plugin="AlteryxBasePluginsGui.BrowseV2.BrowseV2">
        <Position x="330" y="90" />
      </GuiSettings>
      <Properties>
        <Configuration>
          <Layout>
            <View1>
              <Hints>
                <Table />
              </Hints>
            </View1>
          </Layout>
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText />
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxBrowseV2" />
    </Node>
  </Nodes>
  <Connections>
    <Connection>
      <Origin ToolID="1" Connection="Output" />
      <Destination ToolID="2" Connection="Input" />
    </Connection>
    <Connection>
      <Origin ToolID="2" Connection="Output" />
      <Destination ToolID="13" Connection="Input" />
    </Connection>
    <Connection>
      <Origin ToolID="4" Connection="Output" />
      <Destination ToolID="1" Connection="Input" />
    </Connection>
  </Connections>
  <Properties>
    <Memory default="True" />
    <GlobalRecordLimit value="0" />
    <TempFiles default="True" />
    <Annotation on="True" includeToolName="False" />
    <ConvErrorLimit value="10" />
    <ConvErrorLimit_Stop value="False" />
    <CancelOnError value="False" />
    <DisableBrowse value="False" />
    <EnablePerformanceProfiling value="False" />
    <DisableAllOutput value="False" />
    <ShowAllMacroMessages value="False" />
    <ShowConnectionStatusIsOn value="True" />
    <ShowConnectionStatusOnlyWhenRunning value="True" />
    <ZoomLevel value="0" />
    <LayoutType>Horizontal</LayoutType>
    <MetaInfo>
      <NameIsFileName value="True" />
      <Name>New Workflow1</Name>
      <Description />
      <RootToolName />
      <ToolVersion />
      <ToolInDb value="False" />
      <CategoryName />
      <SearchTags />
      <Author />
      <Company />
      <Copyright />
      <DescriptionLink actual="" displayed="" />
    </MetaInfo>
    <Events>
      <Enabled value="True" />
    </Events>
  </Properties>
</AlteryxDocument>

and for the second example with joins...

<?xml version="1.0"?>
<AlteryxDocument yxmdVer="10.5">
  <Nodes>
    <Node ToolID="1">
      <GuiSettings Plugin="AlteryxBasePluginsGui.AlteryxSelect.AlteryxSelect">
        <Position x="126" y="54" />
      </GuiSettings>
      <Properties>
        <Configuration>
          <OrderChanged value="False" />
          <SelectFields>
            <SelectField field="*Unknown" selected="True" />
          </SelectFields>
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText />
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxSelect" />
    </Node>
    <Node ToolID="2">
      <GuiSettings Plugin="AlteryxBasePluginsGui.TextInput.TextInput">
        <Position x="54" y="54" />
      </GuiSettings>
      <Properties>
        <Configuration>
          <NumRows value="0" />
          <Fields>
            <Field name="CustomerID" />
            <Field name="OrderID" />
            <Field name="CustomerName" />
            <Field name="OrderDate" />
          </Fields>
          <Data />
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText />
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxTextInput" />
    </Node>
    <Node ToolID="3">
      <GuiSettings Plugin="AlteryxBasePluginsGui.AlteryxSelect.AlteryxSelect">
        <Position x="126" y="198" />
      </GuiSettings>
      <Properties>
        <Configuration>
          <OrderChanged value="False" />
          <SelectFields>
            <SelectField field="*Unknown" selected="True" />
          </SelectFields>
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText />
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxSelect" />
    </Node>
    <Node ToolID="4">
      <GuiSettings Plugin="AlteryxBasePluginsGui.TextInput.TextInput">
        <Position x="54" y="198" />
      </GuiSettings>
      <Properties>
        <Configuration>
          <NumRows value="0" />
          <Fields>
            <Field name="CustomerID" />
          </Fields>
          <Data />
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText />
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxTextInput" />
    </Node>
    <Node ToolID="5">
      <GuiSettings Plugin="AlteryxBasePluginsGui.Join.Join">
        <Position x="222" y="126" />
      </GuiSettings>
      <Properties>
        <Configuration joinByRecordPos="False">
          <JoinInfo connection="Left">
            <Field field="CustomerID" />
          </JoinInfo>
          <JoinInfo connection="Right">
            <Field field="CustomerID" />
          </JoinInfo>
          <SelectConfiguration>
            <Configuration outputConnection="Join">
              <OrderChanged value="False" />
              <SelectFields>
                <SelectField field="Right_CustomerID" selected="True" rename="Right_CustomerID" />
                <SelectField field="*Unknown" selected="True" />
              </SelectFields>
            </Configuration>
          </SelectConfiguration>
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText />
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxJoin" />
    </Node>
    <Node ToolID="6">
      <GuiSettings Plugin="AlteryxBasePluginsGui.BrowseV2.BrowseV2">
        <Position x="294" y="126" />
      </GuiSettings>
      <Properties>
        <Configuration>
          <Layout>
            <View1>
              <Hints>
                <Table />
              </Hints>
            </View1>
          </Layout>
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText />
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxBrowseV2" />
    </Node>
  </Nodes>
  <Connections>
    <Connection>
      <Origin ToolID="1" Connection="Output" />
      <Destination ToolID="5" Connection="Left" />
    </Connection>
    <Connection>
      <Origin ToolID="3" Connection="Output" />
      <Destination ToolID="5" Connection="Right" />
    </Connection>
    <Connection>
      <Origin ToolID="2" Connection="Output" />
      <Destination ToolID="1" Connection="Input" />
    </Connection>
    <Connection>
      <Origin ToolID="4" Connection="Output" />
      <Destination ToolID="3" Connection="Input" />
    </Connection>
    <Connection>
      <Origin ToolID="5" Connection="Join" />
      <Destination ToolID="6" Connection="Input" />
    </Connection>
  </Connections>
  <Properties>
    <Memory default="True" />
    <GlobalRecordLimit value="0" />
    <TempFiles default="True" />
    <Annotation on="True" includeToolName="False" />
    <ConvErrorLimit value="10" />
    <ConvErrorLimit_Stop value="False" />
    <CancelOnError value="False" />
    <DisableBrowse value="False" />
    <EnablePerformanceProfiling value="False" />
    <DisableAllOutput value="False" />
    <ShowAllMacroMessages value="False" />
    <ShowConnectionStatusIsOn value="True" />
    <ShowConnectionStatusOnlyWhenRunning value="True" />
    <ZoomLevel value="0" />
    <LayoutType>Horizontal</LayoutType>
    <MetaInfo>
      <NameIsFileName value="True" />
      <Name>New Workflow1</Name>
      <Description />
      <RootToolName />
      <ToolVersion />
      <ToolInDb value="False" />
      <CategoryName />
      <SearchTags />
      <Author />
      <Company />
      <Copyright />
      <DescriptionLink actual="" displayed="" />
    </MetaInfo>
    <Events>
      <Enabled value="True" />
    </Events>
  </Properties>
</AlteryxDocument>

Hi,

 

The current way to label or annotate a tool is that we need to double click the tool to bring up configuration window, then click on the annotation icon, then click on the annotation textbox.

 

My suggestion is when a tool is selected, simply press the Enter/Return key, then start typing the annotation right there (inline editing). Save a couple of clicks.

 

Thanks.

Hi,

 

The current way to label or annotate a tool is that we need to double click the tool to bring up configuration window, then click on the annotation icon, then click on the annotation textbox.

 

My suggestion is when a tool is selected, simply press the Enter/Return key, then start typing the annotation right there (inline editing). Save a couple of clicks.

 

Thanks.

It would be nice to improve upon the 'Block Until Done' tool.

 

Additional Features I could see for this tool:

1: Allow Any tool (even output) to be linked as an incoming connection to a 'Block Until Done' tool.  

2: Allow Multiple Tools to be linked to a 'Block Until Done' tool. (similar to the 'Union' tool)

 

The functionality I see for this is to enable Alteryx set the Order of Operation for workflows and Allowing people to automate processes in the same way that people used to do them. I understand there's a work around using Crew Macros (Runner/Conditional Runner) that can essentially accomplish this;  howerver (and I may be wrong).  But it feels like a work around, instead of the tool working the way one would expect; and I'm loosing the ability to track/log/troubleshoot my workflow as it progresses (or if it has an issue)

 

Happy to hear if something like that exists.  Just looking for ways to ensure order of operation is followed for a particular workflow I am managing. 

Thanks,

Randy

It would be nice to improve upon the 'Block Until Done' tool.

 

Additional Features I could see for this tool:

1: Allow Any tool (even output) to be linked as an incoming connection to a 'Block Until Done' tool.  

2: Allow Multiple Tools to be linked to a 'Block Until Done' tool. (similar to the 'Union' tool)

 

The functionality I see for this is to enable Alteryx set the Order of Operation for workflows and Allowing people to automate processes in the same way that people used to do them. I understand there's a work around using Crew Macros (Runner/Conditional Runner) that can essentially accomplish this;  howerver (and I may be wrong).  But it feels like a work around, instead of the tool working the way one would expect; and I'm loosing the ability to track/log/troubleshoot my workflow as it progresses (or if it has an issue)

 

Happy to hear if something like that exists.  Just looking for ways to ensure order of operation is followed for a particular workflow I am managing. 

Thanks,

Randy

I have been using Alteryx for not a very long time, but allready feel frustated by the difficulties when it comes to access the data result shown in the Browse Tool (from Linear Regression, Principal Component Analysis, etc.).

Lots of the output shown here is really important data that you really want to be able to access for further analysis in Alteryx or in another tool.

 

This data should be easy to access, following the Alteryx self-service philosophy.

 

Extractable Output.png

 

 

I have been using Alteryx for not a very long time, but allready feel frustated by the difficulties when it comes to access the data result shown in the Browse Tool (from Linear Regression, Principal Component Analysis, etc.).

Lots of the output shown here is really important data that you really want to be able to access for further analysis in Alteryx or in another tool.

 

This data should be easy to access, following the Alteryx self-service philosophy.

 

Extractable Output.png

 

 

When running a workflow and outputting files to get a better look at the data if you have forgotten to close one of the output files of the same name, you get the "Error Creating File". 

I understand why this happens and that I forgot to do something.  The issue I have is that it doesnt tell me that those files have been left open until after the workflow is almost complete which in some cases is 5-10 minutes and then I have to close the output files and re run and wait again.  Could a future version check those files at the begining of the process and then let me know, or could there be a message that says "filename" was open and could not be created we have renamed it to "filenameA".  Checking at the begining would be prefered. 

 

Thanks

When running a workflow and outputting files to get a better look at the data if you have forgotten to close one of the output files of the same name, you get the "Error Creating File". 

I understand why this happens and that I forgot to do something.  The issue I have is that it doesnt tell me that those files have been left open until after the workflow is almost complete which in some cases is 5-10 minutes and then I have to close the output files and re run and wait again.  Could a future version check those files at the begining of the process and then let me know, or could there be a message that says "filename" was open and could not be created we have renamed it to "filenameA".  Checking at the begining would be prefered. 

 

Thanks

0 Stars

When you get an error message in an R tool it's almost impossible for a newbie to figure out what has just happened...

 

For eg. the normal R package randomForest sets 32 as a max number of classes for a given class variable

Thus when you happen to run randomForest on anything with > 32 classes you get an error, imposssible to figure out without searching on the net or better surfing on the community.

 

How about a basic rules checker providing message on the configs sayin;

 

"X" and "Y" variables are categoric and have more than 32 classes,

you have to fix thembefore running an RF tool in order to succeed"

 

It would be great if we users could have the ability, ideally in a simple interface (maybe workflow option) to create .yxi macro installers. This would allow us to create and really simple, quick and straightforward way on installing macros in Alteryx rather than having to copy into certain directories or add through the user settings.

 

I know we can edit the XML on @AdamR CREW Macro installers etc. but this would make it really simple for single macros.

 

I'm assume this might already be on the road map, but will be useful to discuss.

 

YXI Files Intro Blog: https://community.alteryx.com/t5/Engine-Works-Blog/YXI-Files-in-Alteryx-10-5/ba-p/20773

 

Discussed briefly on Twitter by @joe_lipski@chris_love @jdunkerley79 @danielbrun but probably better to bring the discussion here: https://twitter.com/Joe_Lipski/status/811907135516852224

Can you look at improving the table tool? something to look at:

  1.  background/alternate color off or none so we don't have any fill color in Excel
  2. Table header alignment option vertical AND horizontal - different from row alignment.
  3. make it dynamic for rules - so if _currentfieldname contains 'percent' then back ground color =yellow, if contains 'Rank' then green etc. Split between header & data. I know it could be accomplished with a macro and xml but that's a tedious process and having it in the tool just makes sense.

 

Thanks!

simon

 

Can you look at improving the table tool? something to look at:

  1.  background/alternate color off or none so we don't have any fill color in Excel
  2. Table header alignment option vertical AND horizontal - different from row alignment.
  3. make it dynamic for rules - so if _currentfieldname contains 'percent' then back ground color =yellow, if contains 'Rank' then green etc. Split between header & data. I know it could be accomplished with a macro and xml but that's a tedious process and having it in the tool just makes sense.

 

Thanks!

simon

 

I utilize the Workflow Events quite a bit, but the standard options fall short in a few critical cases.

 

For example: I use the events to send me an email after the workflow runs with errors.

Usually that is all I need.  But, I have run into a few situations where the workflow didn't run at all - thus, no email was sent.

 

One such instance was on our server.  While still initializing (before it even hit tool #1) the job hung.  It sat like that for over a day before I noticed that there were no jobs running through a particular worker at all and saw this one sitting there. 

A second such instance was recently when I changed Persistence Options and accidentally deleted the source for a scheduled job.  The workflow marked itself complete in the scheduler and gave an error message of "Corrupt: Internal Error in PersistenceContainer......"

I realize that these are unexpected events and application errors (which I've worked with support on); but it would add great value to have that fallback mechanism to let us know the error happened.

 

Understandably, it would probably take a lot of work to engineer a schedule monitor that would catch this - but I think it would be worthwhile.

One option to do this: have an Event to email or run a command if a workflow hasn't started within a certain grace period after its scheduled time.

 

 

I utilize the Workflow Events quite a bit, but the standard options fall short in a few critical cases.

 

For example: I use the events to send me an email after the workflow runs with errors.

Usually that is all I need.  But, I have run into a few situations where the workflow didn't run at all - thus, no email was sent.

 

One such instance was on our server.  While still initializing (before it even hit tool #1) the job hung.  It sat like that for over a day before I noticed that there were no jobs running through a particular worker at all and saw this one sitting there. 

A second such instance was recently when I changed Persistence Options and accidentally deleted the source for a scheduled job.  The workflow marked itself complete in the scheduler and gave an error message of "Corrupt: Internal Error in PersistenceContainer......"

I realize that these are unexpected events and application errors (which I've worked with support on); but it would add great value to have that fallback mechanism to let us know the error happened.

 

Understandably, it would probably take a lot of work to engineer a schedule monitor that would catch this - but I think it would be worthwhile.

One option to do this: have an Event to email or run a command if a workflow hasn't started within a certain grace period after its scheduled time.

 

 

It would be great that Alteryx supports .twbx files in order to connect Tableau Extract Files.

Ideas:

  1. In the workspace (i.e. the white space) the perimeter is not fixed so when working with tool containers near a border and you place a tool inside the container the container expands outside the workspace, which makes the container useless since you can't select it
  2. The ability to disable multiple tool containers at once

 

 RTC.PNG

Ideas:

  1. In the workspace (i.e. the white space) the perimeter is not fixed so when working with tool containers near a border and you place a tool inside the container the container expands outside the workspace, which makes the container useless since you can't select it
  2. The ability to disable multiple tool containers at once

 

 RTC.PNG

We have a large SAS Programming team that keeps most of thier data sets in a Unix environment. A more robust ODBC connection to this data would greatly enhance our use of Alteryx. The current SAS odbc Driver tends to lock Alteryx up. Creating edits to the connection also tends to lock ateryx up to an unrecoveable point.

Hi,

Is it possible to add support for XLSX and SAS format files present in S3 when using S3 Download Tool? 

Also why is there a limitation on the type of files compared when we use S3 download tool compared to the big list available in input tool?

Regards,

Omid

 

Top Starred Authors