Be sure to review our Idea Submission Guidelines for more information!
Submission GuidelinesHello,
After used the new "Image Recognition Tool" a few days, I think you could improve it :
> by adding the dimensional constraints in front of each of the pre-trained models,
> by adding a true tool to divide the training data correctly (in order to have an equivalent number of images for each of the labels)
> at least, allow the tool to use black & white images (I wanted to test it on the MNIST, but the tool tells me that it necessarily needs RGB images) ?
Question : do you in the future allow the user to choose between CPU or GPU usage ?
In any case, thank you again for this new tool, it is certainly perfectible, but very simple to use, and I sincerely think that it will allow a greater number of people to understand the many use cases made possible thanks to image recognition.
Thank you again
Kévin VANCAPPEL (France ;-))
Thank you again.
Kévin VANCAPPEL
When developing in Python using custom objects - you often use print( object) or str(object) to see what's in this object quickly.
For example
myDictionary = {
'CarType': 'Ford',
'Cost': 20000}
this defines a dictionary. If I want to quickly look into these to see what's there I can use:
print(myDictionary)
# gives {'Cost': 20000, 'CarType': 'Ford'}
str(myDictionary)
"{'Cost': 20000, 'CarType': 'Ford'}"
This is incredibly useful for debugging and to understand how these custom objects / classes work.
Please could you add an overload to the str() method to allow this kind of simple debugging and understanding for all the classes used in the Alteryx Python SDK (https://help.alteryx.com/20193/developer-help/sdks/build-custom-tools/python-engine-sdk/classes)
For example:
str(record_info_in) which is of type <class 'AlteryxPythonSDK.RecordInfo'>) gives you <AlteryxPythonSDK.RecordInfo object at 0x000001A2C48C3190> which is not very helpful.
Much more useful would be to flatten this into a string format or dictionary so that users can see what's in the RecordInfo object that they're working with to make delivery and debugging easier.
In the designer - when you attempt to open a canvas from your company server - you're given a search screen to find your canvas.
This search sometimes does partial string match and sometimes not - this inconsistency is confusing (full worked up solution in the screenshots below).
For example - if you search for the word "full" it will bring back "main - full download" but will not bring back "main - checkFullDownload".
Please can you change this search process to work on any substring of the canvas name - that is the intuitive behavior that users would expect.
Thank you.
When developing HTML GUI for an alteryx tool - it has to be done in hand-code.
There are 2 main challenges here:
a) it is not approachable for new folk. If we want the HTML SDK to be adopted more broadly, then it needs to be a graded learning curve where people without coding experience can use it and grow in confidence
b) it's not efficient. the only way to know if you've done something right or wrong is to type it up in notepad, and then try it in Alteryx and see what breaks.
Could we instead move to an IDE type approach like Visual studio (screenshot below)?
Here:
And when you're ready to test it, you hit "start", and any errors or issues are reported at the bottom of the screen.
cc: @BlytheE
My idea is to have the AlteryxEngineCMD.exe to run a workflow as part of the standard Alteryx license.
Use case - be able to run Alteryx from the command line without the need to buy the entire Scheduler package (at $6,500/seat).
I understand why certain features are add on, but the ability to run AlteryxEngineCMD.exe (I feel) should be part of the standard license which is already $5K+. For those who only need to be able to run a command line execution of a workflow $6.5K is a lot of money!
The reporting tools do not currently support HTML structured or unstructured lists https://www.w3schools.com/tags/tag_ul.asp
All vertical combination creates tables which group the lines together. Even if you manually create this - you get an error saying that ul (or ol or il) are not supported in composer
This creates a challenge in 2 ways:
a) When creating lists in reporting outputs - you lose the functionality of structured lists (numbering with letters; numbers etc)
b) additionally - selecting the text in tables behaves differently than selecting data that is created in lists.
Please could you add the ability to create lists in addition to tables in the reporting tools by supporting the ol; ul; and il tags?
NOTE: this could initially be done just by supporting the tags; and then later this could be a summarize option on the summarize tool; and a bullet option in the text tool.
Give us the ability to connect a control parameter to an interface tool so that I can change interface elements based on previously entered data when chaining analytic apps together.
This would enable us to:
- have dynamic text for a radio button/checkbox.
- have dynamic text for a dropdown box prompt or a listbox prompt.
- pre-populate a text box based on inputs from a previous selection
- change the min/max and default values on numeric up down input
- default base map, zoom level, reference layer, draw properties
- select the default selected date on a date box as well as changing the prompt for a date box
- change the default file types for a file browse tool
At the moment one of the Union Tool errors reads: "The field "abc" is not present in all inputs".
It would be useful if the tool said "The field "abc" is not present in Input(s) #x,y..."
If there are a lot of inputs on the tool it can take a while to find which input is missing the field.
On the RedShift Bulk Loader add support for Redshift options:
http://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html
...
Can Alteryx create a native connector to connect to SSAS TABULAR Cubes.
Given redshift prefers accepting many small files for bulk loading into redshift, it would be good to be able to have a max record limit within the s3 upload tool (similar to functionality for s3 download)
The other functionality that is useful for the s3 upload tool is ability to append file names based on datetimestamp_001, 002, 003 etc similar to current output tool
Hi,
It'd be great to have a specific connector for Hubspot. It' a marketing automation Platform such as Marketo.
Thanks.
As well as using keyboard shortcuts, many of us are using a mouse / keyboard with program specific assignable shortcut buttons. It is a serious boost to productivity. The ability to instantly enable / disable would be a great tool large complex workflows. In general, it would be great to expand the keyboard shortcuts to offer more Alteryx specific advanced functions.
It would be incredible helpful if Alteryx canvases auto-populated some metadata about each canvas to track its origination and updates.
The metadata fields I'm specifically thinking about are:
-Author
-Date Created
-Date Last Updated
When I put a map snippet into a report, there is no border. Therefore, road segments just terminate into whitespace.
Please add an option to create a border around the map snippet.
Similar to how there is a functionality to use pip through the ayxinstallPackages, there needs to be a way to upgrade python itself. There are important packages such as keras that have errors in Python 3.6 that are not present when used with 3.7 so it should really be up to the user as to which python package to use. Another solution could also be to allow the user to point to their own local installation of Python so that the user can maintain consistency between their own local site-packages and the one that Alteryx has.
In the output window, numbers should always be displayed right aligned by default. Also the font should be fixed width type so an 8 and 1 both take equal width and we dont see numbers as below.
11111111
88888888
1. It instantly tells the user that its data type is numeric without having to check metadata.
2. Readability of the values is greatly increased.
I think it would be great to add metadata to a yxdb. For example, I was back tracking and trying to figure out which module/app I used to create an old yxdb. Now I use Notepad++ and do a "Find In Files" Search. Wouldn't it be great it the module path would be available when you look at the properties of a yxdb in Alteryx?
Would be nice if could use something like $Field rather than repeating the field name in the Condition and Loop expression within the Generate Rows tool
Hi Folks
So have been using the fuzzy match function quite a bit of recently. Love the tool, however it could benefit form being able to wire in a list of 'Don't generate' keywords.
At the moment we can enter them manually, however where for example i might want to exclude city or area names etc... from the do not generate list this becomes quite a tedious manual entry task, so being able to load in keyword data from pre-existing lists etc.. would be a time saver.
Cheers
Gavin
How about turning this;
SELECT *
FROM Employee
ORDER BY First_name ASC
into this automatically
and a more complex one
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate FROM Orders INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
into this
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>