Alteryx Omnibus v̶0̶.̶5̶.̶2̶ v0.5.3: JDTools is Dead, Long Live the OmniBus!

Media previewUpdated to version 0.5.3 to correct major bug in the XML Input tool

After a fair degree of restructuring and rewriting, version 0.5.2 0.5.3 of OmniBus tool has been released to GitHub.

This version represents a separation of the framework and the add-ins hopefully making it easier for others to use the framework to build their own tools.

The old JDTools group has been removed and replaced with the Omnibus group. This version merges the OmniBus Regex editor into the main add-ins release. It should appear within the Parse section of the Alteryx toolbar. Likewise, the Roslyn Input is now also promoted to be within the Omnibus group and installed by default.

image

Main other change for users is the addition of a new XmlInput tool. There will be a tutorial on building this tool in next couple of days.

image

Add-In Installation

Download the zip file from GitHub and extract it to where you want it to live. Alteryx will be configured by the installer to read the location you specify.

There is an Install.bat script included within the zip which will set up the configuration Alteryx needs. It does this by asking for UAC permission to run Scripts\Install.ps1 which will install all the individual components of the OmniBus. This should work whether you have an Admin or User install of Alteryx. If you only have a User install and cannot run under UAC then you can just run the Install.ps1 within the Scripts folder directly. This should install without needing UAC permission to the User install location. You may need to approve the script within Window Defender Smart Screen:

image

For uninstalling, there is an equivalent Uninstall.bat which calls Scripts\Uninstall.ps1 to do the uninstall. Again the batch file will ask for UAC permission and then run the Uninstall.ps1 script.

After install you can verify the install by checking for Omnibus tool group (in versions 10.5 and 10.6 the tools will appear in Laboratory) within the toolbar and the Omnibus Regex tool within the Parse group (this tool will not work in versions prior to 11.0). In addition, you can download the unit tests associated with this release. If you have the CReW macros installed then you can use the RunUnitTest.yxmd file to run them all:

image

Additional details of the installation can be found in the wiki.

Current Tools

imageDate Time Input

A slightly expanded version of the Date Time Now tool. It will create a date field equal to one of the following values:

  • Today
  • Now
  • Yesterday
  • StartOfWeek
  • StartOfMonth
  • StartOfQuarter (new in 0.5.2)
  • StartOfYear
  • PreviousMonthEnd
  • PreviousQuarterEnd (new in 0.5.2)
  • PreviousYearEnd

The output type can be any of a Date, DateTime, Time or String. If a string output type is used then the string will be formatted as yyyy-MM-dd HH:mm:ss.

imageCircuit Breaker

This is an expanded version of the Test tool. The idea here is that the input data (I) is only passed onto the rest of the workflow if there is no data received in the breaker input (B).

imageDate Time Parser

This exposes the .Net DateTime.Parse function to Alteryx. Parses a date from a text field and adds to the output. As with the Date Time Input tool the output type can be any of a Date, DateTime, Time or String. If a string output type is used then the string will be formatted as yyyy-MM-dd HH:mm:ss. The benefit of the string format allows for dates outside of the supported range of Alteryx.

As this tool supports all formats that the DateTime.ParseExact function does, it should deal with parsing all the random formats that keep come up. By default, it will use the automatic format detection that .Net supports.

This tool supports different cultures allowing parsing of any supported date formats within the specified culture. By default, it uses the current, not the invariant culture. This may cause discrepancies when running in different regions. Ideally, a specific culture should be used to avoid these issues.

imageNumber Parser

This exposes the .Net double parse functions to Alteryx. Parses a number from a text field and adds to the output. Again, this tool supports different cultures allowing parsing of any supported number formats.

This tool supports different cultures allowing parsing of any supported date formats within the specified culture. By default, it uses the current not the invariant culture. This may cause discrepancies when running in different regions. Ideally, a specific culture should be used to avoid these issues.

imageString Formatter

This tool can be used to convert from a numerical or date or time field to a string field. It supports different cultures and number formatting. If no format is specified then the tool will use Alteryx’s own methods to get the value as a string, if a format is specified then it will use the ToString method within .Net.

This tool supports different cultures allowing parsing of any supported date formats within the specified culture. By default, it uses the current, not the invariant culture. This may cause discrepancies when running in different regions. Ideally, a specific culture should be used to avoid these issues.

imageHash Code Generator

This exposes the .Net System.Security.Cryptography HashAlgorithms to Alteryx. It takes an input string and computes the hash value. It supports MD5, RIPEMD160, SHA1, SHA256, SHA384 and SHA512. Only string types are supported as the input. The output is always a V_String(256).

imageRandom Number

This generates a random number based on a specified distribution (currently Uniform, Triangular, Normal and LogNormal). Based on the Math.Net Numerics package. This tool can be seeded (with an initial integer seed) to allow the same sequence each time.

imageHexBin

This reproduces the hexagonal binning functionality built into Tableau. It is based of the d3 HexBin plugin. It defaults to a radius 1 hexagon but you can specify different sizes.

Currently this tool can use Spatial points as an input and can only work with numerical inputs. If you have points the you will need to use a Spatial Info tool to extra X and Y co-ordinates. Likewise the output will be a pair of double fields. Again if you wish to create spatial points or polygons you will need to use a Make Points tool or similar.

imageSort with Culture

This tool exposes sorting with a culture from .Net. This was an experiment and there is actually sorting with culture provided in the main Sort tool.

This will be be used for some UI development work but is expected to be removed from later versions. It also cannot use the efficient memory operations built into Alteryx so should not be used over the default search.

imageXML Input

This tool provides an input tool much more like the JSON input tool for XML. It currently uses the in memory XmlDocument object built into .Net. This will limit the size of documents that can be read in (Alteryx has been tested with 100Gb XML files I believe), later version will switch to a better way of reading XML files.

A tutorial walking through creating this will be available on the wiki.

imageRoslyn Input

Currently a proof of concept tool. It allows you to write C# code and have the results be pushed straight into Alteryx as a data flow. It has support for syntax highlighting and pushing one or more records. This is not a final version and will under go many changes in the following versions.

It is planned that a Roslyn based ‘formula’ tool will be based on this initial prototype.

imageOmnibus Regex

A proof of concept to understand the working of the Formula tool. This will appear within the Parse section of Alteryx. It uses the standard Regex engine dll to perform the tool but provides syntax highlighting and tests on the values. Currently no support for the Parse mode and only limited support ParseToColumns (no preview)

Media preview.

imageNuget Packages

The framework has now been released as Nuget packages within nuget.org. Hopefully allowing easier development by other developers of their own Alteryx custom tools (based in .Net for now!).

The tools should help set up project for working with Alteryx. You will need a version of Visual Studio (I have tested it within VS 2017 Professional but any should work). You will also need Alteryx installed on the same machine – however I do not believe you need it licensed if you wish to build on one box and run somewhere else (no idea about remote debugging scenarios though!).

Omnibus.Framework.Shared

This package contains the core shared interfaces and attributes used by the Framework and GUI.

The package will also automatically add the reference to AlteryxRecordInfo.Net (and configure it correctly to CopyLocal = False). It will also force the project to be targeting x64.

Omnibus.Framework

This package contains the classes needed to make an Engine plug in for Alteryx. I am still not happy with all of the design within here, the vast majority of the API will not change but there maybe some adjustments to the factory design it uses in later versions as I work to implement Unit Tests.

Omnibus.Framework.GUI

This package contains the UI parts of the framework needed to make a plug in for the designer.

The package will automatically add references to System.Windows.Form and System.Drawing as well as the reference to AlteryxGuiToolkit (and configure it to CopyLocal = False). The installer will also configure the Debug mode to run Alteryx. Finally, it will create an Install.bat and Uninstall.bat. These scripts will be copied to the output folder automatically. Once run they will install the ini files needed to tell Alteryx to load the compiled output.

Release Notes

  • First release of both OmniBusRegex and the OmniBus tools in a single release
  • New Tool: XML Input
    • Read an XML file into path and value
    • Walkthrough of how to put together
  • Restructured the code base to be NuGet based
    • OmniBus.Framework.Shared: common interfaces and tool
    • OmniBus.Framework: BaseEngine and associated pieces
    • OmniBus.Framework.GUI: BasePlugin and new installer system
    • Designed to be moved to HTML UI in future versions
  • New PowerShell Installer
    • Development and release install scripts
  • Complete move away from JDTools name
  • Improved UnitTest script (taken from the AlteryxFormulaAddIns project)
    • Relative paths for all resources
    • Tested on both 10.6 and 11 now
  • New Release script to simplify creating a release
  • Add MIT license and add libraries used to README.md

Previous release notes are available within the wiki.

10 thoughts on “Alteryx Omnibus v̶0̶.̶5̶.̶2̶ v0.5.3: JDTools is Dead, Long Live the OmniBus!

  1. Hi I need some help! I have downloaded the zip file and run the scripts but I dont have the Tool appearing. I’m running 11.3 so not sure what to try any help would be great.

    Like

    • Hi, sorry you had difficulties installing it.

      It should just be download the release zip. Extract it somewhere you want to keep it and then run the install.bat. It should ask for UAC permission to continue and then it should install. After restarting Alteryx the tools should be there.

      If you have any error messages or screenshots I can try and reproduce

      James

      Like

  2. Hello! Looks like the omnibus tools are not visible in my Alteryx 11.7 designer. So I tried installing twice, restarted the machines and also ran the test scripts provided above but none helped. The error that I get is Error – ToolId 1: Can’t find plugin “JDunkerley.AlteryxAddIns.dll”. So am not sure if the installation is set rightly.

    Need your help. very much looking forward.

    Like

  3. Does this work in alteryx version 11.7 developer? It didnt shopwup after installation. Tried restarting the machine aft Run setup. IS there a way to get this enabled? The error shown is DLL missing upon running the Crew Macros tests as you have suggested.

    Like

  4. Hello,
    I am getting the following error while trying to install

    Security warning
    Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your
    computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this warning
    message. Do you want to run C:\users\dex\scripts\Install.ps1?
    [D] Do not run [R] Run once [S] Suspend [?] Help (default is “D”): r

    Security warning
    Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your
    computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this warning
    message. Do you want to run C:\users\dex\scripts\Installer.ps1?
    [D] Do not run [R] Run once [S] Suspend [?] Help (default is “D”): R
    Installing to OmniBus to C:\Program Files (x86)\Alteryx\bin
    Installing to OmniBus to
    Join-Path : Cannot bind argument to parameter ‘Path’ because it is null.
    At C:\users\dex\scripts\Installer.ps1:29 char:22
    + $target = Join-Path $dir “..\Settings\AdditionalPlugins\$fileName …
    + ~~~~
    + CategoryInfo : InvalidData: (:) [Join-Path], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.JoinPathCom
    mand

    Any help would be much appreciated!!

    -Dex

    Like

  5. I can’t install to Alteryx 2018.4. The blue screen flashes up for a millisecond and then disappears again.

    Like

  6. Dear Sir , hello !
    I accidentally discovered that the MathNet.Numerics.dll file contains some Excel-like functions such as TINV. How can I call these functions in the Formula tool of Alteryx?

    Like

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.