Dev Space

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

DotNet Custom Tools - Input Tool for dynamic data/object transfer

manooh
5 - Atom

Hello there

 

I'm new to Alteryx and trying to create an input tool which should push the dynamic objects (i.e, data or datasets) based on user's selection. The sample came with Alteryx seems to work only pushing fixed style of objects (RecordInfo). Please advise on how do I approach this scenario and come up with a feasible solution. Thanks.

 

Cheers

Manohar

2 REPLIES 2
tlarsen7572
11 - Bolide
11 - Bolide

Hi Manohar,

 

RecordInfo objects describe the contents of a RecordData blob.  They are the metadata that makes RecordData useful.  Any data you want to send downstream needs to be converted into RecordInfo and RecordData objects.

 

This means you will need to create code that translates your dynamic objects into the RecordInfo/RecordData format Alteryx is expecting.  I don't know your specific use, but let's assume you want to be able to pull a dynamic data set with a SQL query.  Let's also assume you get an object from your .NET code which mimics a data table.  The data table contains columns which identify the type of data in that column, and it contains rows which store the actual data.  Your code will need to iterate through the columns in the data table and add fields to a RecordInfo object.  After all of the fields are added, your code would then have to iterate through all of the rows.  The RecordInfo object's fields get populated for each field in the data table.  At the end of the row, you use a Record object to generate a RecordData blob and send it down the tool's output.

 

There are lots of similar-sounding classes in the .NET SDK, so it is easy to get confused.  Pay careful attention to the examples.

manooh
5 - Atom

Hi there

 

How do we represent nested objects using RecordInfo and RecordData?

 

E.g.

 

<Customer>

  <Name />

  <Phone />

  <Address>

    <StreetNo />

    <StreetName />

    <City />

  </Address>

</Customer>