I need to create a property in propertyware account from salesforce using web service callout from salesforce to propertyware. I have the wsdl of propertyware but i am unable to convert it to apex class since it is rpc encoded. I know the method name which i want to call but without generating apex classes from wsdl is it possible to directly access the method of propertyware from salesforce. The methods are present in the link below. In the list of methods mentioned in the link i need to call the method "createBuilding". Can anyone suggest how to make the callout without using wsdl.
2 Answers
This is going to be tricky but not impossible.
What you can do is use tool like soap UI and track all the request along with http headers.
Then try to send same http request(with exact same XML body+headers that you captured in above step ) from Apex.
https://www.soapui.org/getting-started/your-first-soapui-project.html
Just did this. You just have to download SoapUI (free and open source). Then just click SOAP at the top and put the address you've shared with ?wsdl
at the end for the Initial WSDL field:
http://app.propertyware.com/apidocs/Classes/PWServices?wsdl
Click the option to generate a sample request per method and then just execute the calls you need. When you do, you'll see the request body you'll need. I'm able to run it from Postman now. Here's the weird thing though, the API endpoint in Postman is actually that same URL but https
and WITHOUT the ?wsdl
at the end:
https://api.propertyware.com/pw/services/PWServices
The body is raw XML; header is Content-Type: text/xml
and also a header with key SOAPAction
but no value is required. Finally, you'll need to do basic auth with username and password exactly the same you would use to log into Propertyware.
Hope it helps someone.