Is it possible to send a SOAP request with GeoEvent?

5806
3
01-26-2015 08:25 AM
BrianBaldwin
Esri Regular Contributor

I have a SOAP request that will return XML and I'm unsure of how to add the SOAP as an input in GeoEvent.

Is this possible?  What type of input should the SOAP request be and how to format?

-----------------------------------

Brian Baldwin, Esri Inc., Lead Solution Engineer
https://www.linkedin.com/in/baldwinbrian
0 Kudos
3 Replies
MarkBramer
Occasional Contributor II

Hi Brian,

SOAP is just a protocol that specifies how to transfer XML back and forth.  So in a GeoEvent sense, you wouldn't want a SOAP input, per se, but an XML one.  GeoEvent inputs (and outputs) are a combination of 1) a transport and 2) an adapter.  Transports just know how to sling the raw bytes back and forth, whereas Adapters work with the data itself.  At 10.3, GeoEvent has an inbound XML adapter. Out of the box, GeoEvent has two inputs that use the XML Adapter: "Poll an External Website for XML" and "Receive XML on a REST Endpoint". 

I don't know exactly what you're trying to do but if you are receiving XML as a result of accessing a URL, then the Poll input may be what you want.  It would continually reach out to that URL and process the inbound XML it receives each time.  This is good for data that continually changes and receiving that data at a preset poll interval is sufficient.  If you only want GeoEvent to process XML whenever it's truly necessary, whether at a high rate or low), then you may want to use the Receive input.  You would then need to find a way to push data to the input's REST endpoint via HTTP POST, which is very easy using most programming/scripting languages.  If you yourself are issuing the requests, i.e. via a browser, then you can download browser extensions (i.e. Chrome Poster) that send data the way you need.

Mark

BrianBaldwin
Esri Regular Contributor

Mark,

Thanks for the response.  Ill take a look to see about using a different type of input.  As I have it set up right now, I created a Python script to send the SOAP request and I then generate an XML file to my public web folder, I then used the 'Poll External Site for XML' as an input in GeoEvent.  It certainly doesn't feel like the best solution, but it's working alright.  Ill look into the 'Receive Input' though, that could be a cleaner way to send the messages. 

-----------------------------------

Brian Baldwin, Esri Inc., Lead Solution Engineer
https://www.linkedin.com/in/baldwinbrian
0 Kudos
MarkBramer
Occasional Contributor II

Brian,

If you're creating XML files, then you could create a new connector that marries the Xml adapter with the File transport (Site-GeoEvent-Connectors-Create Connector).  Then create an input using that connector.  GeoEvent will "listen" to the folder and when any new xml file is created or placed in that folder, GeoEvent will ingest it and process the contents.  It would work just like the out-of-box "Watch a Folder for New CSV Files" or "Watch a Folder for New JSON Files" input connnectors, but with XML files.

Mark

0 Kudos