Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!

Dev Space

Customize and extend the power of Alteryx with SDKs, APIs, custom tools, and more.
SOLVED

C# DotNet Tools: Unstable in a Macro

Hiblet
10 - Fireball

I have written a C# DotNet custom plug in tool that spawns a process and pulls the process' output back into the workflow. 

 

It works really well when used as a normal tool in a workflow.

 

If I wrap it in a macro, and work the macro with a simple harness, the tool seems to work, in that I get data out of the macro, but the attached Browse tool errors with...

 

Error: Browse (4): Error creating the file "  ": The system cannot find the path specified.

 

If I try to run the macro harness workflow with Visual Studio attached as the debugger, AlteryxGui.exe crashes with exit code -1073740791 (0xc0000409).

 

What is different about a macro that would cause this, and how can I debug the problem?

10 REPLIES 10
Hiblet
10 - Fireball

[Additional comment for Posterity]

 

I have been unable to replicate the error I was getting in a macro, so I think there is either a race issue going on with locking, or it is a random windows fubar outside the tool itself.

 

I have been through the Omnibus code and tried to see if there was anything that the Omnibus code is doing that my code is not.  Previously I had found I was using the string-based record copy method, and that had been corrected earlier.  The only other difference I can find is the fact that the Omnibus code has the option to call II_Close() internally, where as my code waits for Alteryx to call II_Close().  My code still cleans up when close is called, and I have added diagnostics to the callback functions and can see them being called.  

 

Just reviewing the Omnibus code has taught me a lot.  If anyone else is thinking of writing a C# DotNet Tool, I would recommend first reviewing the SDK doc that ships with Alteryx, and then using the Omnibus framework as the real reference implementation.  James has also been amazingly patient and helpful, and I would be happy to help anyone out with whatever help I can give.

 

Thanks James! @jdunkerley79