Creating a tool with SDK
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Printer Friendly Page
- Mark as New
- Subscribe to RSS Feed
- Permalink
Hello Guys!
I'm new into develop tools with the SDK, I was studying that with this link: https://www.youtube.com/watch?v=_TZfIbWnyoQ
I watched it all, so I wanted to create one by myself, using this API (It's a simple API, I know that I can just create a macro, but I want to create this with the SDK): https://api.nasa.gov/
I followed all the tutorial, read the documentation and tried to do the file attached, but I don't execute, I don't know why, can someone help me with this ?
Regards
Solved! Go to Solution.
- Mark as New
- Subscribe to RSS Feed
- Permalink
Hey @dougperez, great to see another SDK user! I am the guy who @Nick612Haylund interviewed in that video you posted.
In short, I was able to get your tool working:
Here are the things I had to change:
- You have coded your tool as a pass-through tool, but you have configured it as an input tool because you did not provide any input connection. In NasaConfig.xml, I changed the GuiSettings tag to look like this:
<GuiSettings Html="Nasa.html" Icon="nasa.png" Help="" SDKVersion="10.1">

<InputConnections>

<Connection Name="Input" AllowMultiple="False" Optional="False" Type="Connection" Label=""/>

</InputConnections>

<OutputConnections>

<Connection Name="Output" AllowMultiple="False" Optional="False" Type="Connection" Label=""/>

</OutputConnections>

</GuiSettings>
- In line 69 of Nasa.py, I had to fix the definition of the 'json' field. 'str' is not a valid field type. I used v_string with a size of 100000:
self.resultJson = self.OutInfo.add_field('json', Sdk.FieldType.v_string, size=100000, source=self.parent.label)- In line 84 I changed the way the at variable is calculated. I just assumed a string input field, so no need to do the date time conversions. This is kind of lazy, so your way is probably better. I couldn't get the date-time formatting to work quickly, so I went with something simple just to get the tool working:
at = self.DateField.get_as_string(in_record)- Finally, in line 90 I had to make sure I was setting the json field from the 'text' property of the response, not the response itself:
self.resultJson.set_from_string(self.Creator, response.text)
The first bullet point about the config file was the most critical; the rest are simple syntax errors. If you want to create a pass-through tool (which uses the IncomingInterface class) then you need to define at least 1 incoming connection. If you want to create an input tool (which has 0 incoming connections), then all of the record processing has to happen in pi_push_all_records.
Hope this helps!
- Mark as New
- Subscribe to RSS Feed
- Permalink
Hello @tlarsen7572, good to see the stars coming to help me (just joking hahahaha)
So, I found out how to create a Input tool , thanks to show me how to create a pass-through tool.
I have other question, do you guys have another video showing the new platform SDK? I was told that the old don't have alteryx support anymore...
- Mark as New
- Subscribe to RSS Feed
- Permalink
Always happy to help someone interested in the SDKs!
Short answer to your question: no.
Long answer:
The docs do a good job of introducing the new SDKs (https://help.alteryx.com/developer-help/platform-sdk). I'd start there and ask questions in the Community. I have played with the new SDK a bit, but am not too familiar with it. It's not because there is anything wrong with the new SDK. I actually quite like the new APIs. It's mainly because I created my own SDK for the Go programming language (I modelled the design after the platform SDK). I much prefer coding with Go rather than Python, so most of my custom tools now are Go-built tools.