The AlteryxEngine API is a collection of methods and callbacks that allow you to call into the AlteryxEngine. This code is a sample usage of the AlteryxEngine API.
const int STATUS_Info = 1;
const int STATUS_Warning = 2;
const int STATUS_Error = 3;
const int STATUS_FieldConversionError = 5;
const int STATUS_File_Input = 8;
const int STATUS_File_Output = 9;
const int STATUS_Flag_Transient = 0x40000000; // in combination with Info, Warning or FieldConversionError
// Example RuntimeData struct
struct RuntimeData
{
int nWarnings;
int nFieldConversionErrors;
int nErrors;
std::wofstream logFile;
RuntimeData()
: nWarnings(0)
, nFieldConversionErrors(0)
, nErrors(0)
{
}
};
long _stdcall ProgressMessage(__int64 userData, int nToolID, double dPercentProgress)
{
// See TCallbackToolProgress for actions you can accomplish here....
return 0;
}
long _stdcall CallbackMessage(__int64 userData, int nToolID, int nStatus, const wchar_t *pMessage)
{
// See callback documentation for what you can do when you define your own callback message
switch (nStatus & ~STATUS_Flag_Transient)
{
case STATUS_Info:
case STATUS_File_Input:
case STATUS_File_Output:
break;
case STATUS_Warning:
reinterpret_cast<RuntimeData *>(userData)->nWarnings++;
reinterpret_cast<RuntimeData *>(userData)->logFile << L"Warning - ";
break;
case STATUS_Error:
reinterpret_cast<RuntimeData *>(userData)->nErrors++;
reinterpret_cast<RuntimeData *>(userData)->logFile << L"Error - ";
break;
case STATUS_FieldConversionError:
reinterpret_cast<RuntimeData *>(userData)->nFieldConversionErrors++;
reinterpret_cast<RuntimeData *>(userData)->logFile << L"FieldConversionError - ";
break;
default:
return 0;
}
if (nToolID<0)
reinterpret_cast<RuntimeData *>(userData)->logFile << L"Alteryx Engine";
else
reinterpret_cast<RuntimeData *>(userData)->logFile << L"ToolId " << nToolID;
reinterpret_cast<RuntimeData *>(userData)->logFile << L": " << pMessage << L"\n";
return 0;
}
// Later in your API code...
{
RuntimeData runtimeData;
AlteryxRunModule2(L"<workflowPath>", L"",
ProgressMessage, CallbackMessage,
reinterpret_cast<__int64>(&runtimeData));
}