Hello,
I am currently trying to make SOAP call to Oracle Right Now(ORN) Enterprise. ORN provides WSDL however I was not able to connect to the WSDL via Web Service smart node, getting 'An error occurred while processing the WSDL. It may not be a valid WSDL 1.1 document. (APNX-1-4041-002)'. tried with third party SOAP test tool and it worked. I am guessing the WSDL is currently not supported by Appian.
Is there an another way to make SOAP call other than Web service smart node?
I was looking into 'Send HTTP Request Plug-in' plug in. The plug in description says it supports to send SOAP XML to a Web Service but didn't provide further instructions.
If someone can provide more high level details implementation direction or any other approach that I can try, I would really appreciated.
FYI, the following is the example SOAP XML provided ORN for the operation I want to use.
<soapenv:Envelope xmlns:soapenv='schemas.xmlsoap.org/.../'> <soapenv:Header xmlns:rnm='urn:messages.ws.rightnow.com/v1_3'> <rnm:ClientInfoHeader> <rnm:AppID>IncidentResponse001.xml</rnm:AppID> </rnm:ClientInfoHeader> <wsse:Security soapenv:mustUnderstand="false" xmlns:wsse="docs.oasis-open.org/.../oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wssu="docs.oasis-open.org/.../oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsse:UsernameToken> <wsse:Username>admin123</wsse:Username> <wsse:Password wsse:Type="docs.oasis-open.org/.../oasis-200401-wss-username-token-profile-1.0 </wsse:UsernameToken> </wsse:Security> </soapenv:Header> <soapenv:Body> <rnm:SendIncidentResponse xmlns:soapenc='schemas.xmlsoap.org/.../' xmlns:xs='www.w3.org/.../XMLSchema' xmlns:xsi='www.w3.org/.../XMLSchema-instance' xmlns:rnm='urn:messages.ws.rightnow.com/v1_3' xmlns:rno='urn:objects.ws.rightnow.com/v1_3' xmlns:rng='urn:generic.ws.rightnow.com/v1_3' xmlns:rnb='urn:base.ws.rightnow.com/v1_3' xmlns:rnok='urn:base.ws.rightnow.com/v1_3'> <rnm:IncidentResponse> <rno:Incident> <rno:PrimaryContact> <rno:Contact> <rnb:ID id="1"/> </rno:Contact> </rno:PrimaryContact> <rno:Subject>Overheating of the device</rno:Subject> <rno:Threads> <rno:ThreadList action='add'> <rno:Channel> <rnb:Name>Email</rnb:Name> </rno:Channel> <rno:EntryType> <rnb:ID id='2'/> </rno:EntryType> <rno:Text>Thank you for reaching out!</rno:Text> </rno:ThreadList> </rno:Threads> </rno:Incident> <rno:CC> <rno:EmailAddresses>bob@example.com</rno:EmailAddresses> </rno:CC> </rnm:IncidentResponse> </rnm:SendIncidentResponse> </soapenv:Body> </soapenv:Envelope>
Discussion posts and replies are publicly visible
Sure. The National Weather Service has some information accessible via a SOAP protocol:
The WSDL is
When you load the endpoint into SOAPUI, you get a list of available services. The one I used is LatLonListZipcode.
Here is the sample request:
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ndf="https://graphical.weather.gov/xml/DWMLgen/wsdl/ndfdXML.wsdl"> <soapenv:Header/> <soapenv:Body> <ndf:LatLonListZipCode soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <zipCodeList xsi:type="dwml:zipCodeListType" xmlns:dwml="https://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd">20191</zipCodeList> </ndf:LatLonListZipCode> </soapenv:Body> </soapenv:Envelope>
and the response:
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:LatLonListZipCodeResponse xmlns:ns1="https://graphical.weather.gov/xml/DWMLgen/wsdl/ndfdXML.wsdl"> <listLatLonOut xsi:type="xsd:string"><?xml version='1.0'?><dwml version='1.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='https://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd'><latLonList>38.9521,-77.3452</latLonList></dwml></listLatLonOut> </ns1:LatLonListZipCodeResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Copying and pasting the request into Appian we have:
I'm getting the same issue when using that wsdl file in a Call Web Service node. I suspect the file is not in a format Appian understands.
I also get an error when calling it in an expression using:
with(
local!targetEndPoint: webservicequery(
wsConfig: a!wsConfig(
wsdlUrl: "",
service: "{urn:wsdl.ws.rightnow.com/v1_4}RightNowSyncService", <--Note the use of the target namespace in front of the service name
port: "RightNowSyncPort",
operation: "{urn:wsdl.ws.rightnow.com/v1_4}SendIncidentResponse" <--Note the use of the target namespace in front of the operation name
),
inputVar: {}
local!targetEndPoint
)
Error is: Expression evaluation error at function 'webservicequery' [line 3]: An error occurred while processing the WSDL. It may not be a valid WSDL 1.1 document.
Do you have any control over the wsdl format?