PluginInterface
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!
PluginInterface
The PluginInterface class is provided to allow the Alteryx Engine to communicate with your tool. Manually set the properties below, or use ImplementPluginInterface to manage the process if you are following the standard naming conventions.
Properties
handle
Contains a pointer to the object that exposes the required functions for your tool to be recognized by the AlteryxEngine.
void * handle;
pPI_AddIncomingConnection
Contains a pointer to a function that is called when the AlteryxEngine is adding an incoming data connection. Implementation returns a 1
to accept the connection or a 0
to reject the connection.
typedef long ( _stdcall * T_PI_AddIncomingConnection)(void * handle, const wchar_t *pIncomingConnectionType, const wchar_t *pIncomingConnectionName, IncomingConnectionInterface *r_IncConnInt); T_PI_AddIncomingConnection pPI_AddIncomingConnection
If accepted, use the IncomingConnectionInterface
class to handle each of the incoming connections individually. If the tool needs pre-sorted data, call the PreSort
function and accept the resulting IncomingConnectionInterface
instead.
pPI_AddOutgoingConnection
Contains a pointer to a function that is called when the AlteryxEngine is adding an outgoing data connection. Implementation returns a 1
to accept the connection or a 0
to reject the connection.
typedef long ( _stdcall * T_PI_AddOutgoingConnection)(void * handle, const wchar_t *pOutgoingConnectionName, IncomingConnectionInterface *pIncConnInt); T_PI_AddOutgoingConnection pPI_AddOutgoingConnection;
Each output is given a unique name by the tool.
pPI_Close
Contains a pointer that is called before the tool object is destroyed that points to a function containing any cleanup that needs to be handled.
typedef void ( _stdcall * T_PI_Close)(void * handle, bool bHasErrors); T_PI_Close pPI_Close;
Close happens after all data finished flowing through all fields. If bHasErrors
is True, you would typically skip final processing.
pPI_PushAllRecords
Contains a pointer to a function that is called when the AlteryxEngine expects the tool to provide all data records it holds. This only pertains to tools that have no upstream connection, such as an input tool.
typedef long ( _stdcall * T_PI_PushAllRecords)(void * handle, __int64 nRecordLimit); T_PI_PushAllRecords pPI_PushAllRecords;
Set the nRecordLimit
parameter to:
- A value less than 0 to indicate there is no limit.
- 0 to indicate the tool is being configured and no records should be sent.
- A value greater than 0 to push that number of records.