This C++ SDK uses outdated technology that limits your extension opportunities. We've built a new Platform SDK using Python and the latest open-source technology to deliver a vastly improved development experience. Go to Platform SDK to get started!
Use the Alteryx C++ SDK to write custom Alteryx plugin tools using C++. This means you can use the C++ SDK to access core elements of the AlteryxEngine framework.
Creating a custom tool with a C++ back end involves working with an SDK. For this reason, we assume you are familiar with:
- File Management
To use the C++ SDK when creating your tool's back end, you need to create a C++ file. The file name should relate to the tool name, and the file needs to be saved in the tool folder.
This file needs to use data gathered from the data stream and manipulate the data in accordance with the user input from the tool's GUI. It is recommended that you create the front end first to connect to the tool's data items. If you have not already created the front end, see HTML GUI SDK or Macro.
The C++ SDK uses a template class that easily manages the information necessary to call a tool’s entry point, including:
- A unique ID.
- A pointer to the EngineInterface struct.
- The XML data of the tool configuration.
- An empty PluginInterface struct.
The entry point then fills the empty
PluginInterface struct with pointers to each of five methods that are required for the tool to run.
If the tool also processes data, Designer calls the
AddIncomingConnection method. The tool must fill in an IncomingConnectionInterface struct with pointers to each of four methods used to process data.
Recompiling a Code
To recompile a code, proceed with the following function signatures:
- FieldSchema(const StringNoCase strFieldName, E_FieldType ft, unsigned nSize, int nScale, String strSource = String(), String strDescription = String())
- FieldSchema(const StringNoCase &strFieldName, E_FieldType ft, unsigned nSize, int nScale, String strSource = String(), String strDescription = String()
- FieldBase(const StringNoCase strFieldName, E_FieldType ft, const int nRawSize, bool bIsVarLength, int nSize, int nScale);
- FieldBase(const StringNoCase& strFieldName, E_FieldType ft, const int nRawSize, bool bIsVarLength, int nSize, int nScale).
Build Your Own Tool Checklist
- Create a folder with the name of your tool. Visit Build Custom Tools.
- Create an icon and save it inside the tool folder. Visit Build Custom Tools.
- Create a GUI file and save it inside the folder. Visit HTML GUI SDK.
- Create your back end and save it inside the folder. Visit C++ SDK, Macro, and Python SDK.
- Create a configuration file and save it inside the folder. Visit Tool Configuration File.
- Create a package configuration file and save it with the folder. Visit Package a Tool.
- Package the package configuration file and tool folder as a YXI. Visit Package a Tool.