In one of my previous step by step tutorials I explained how we can use SOAP Event Source to expose a BW Process as Web Service. In this tutorial, I am going to explain how you can use SOAP Palette activity RetrieveResources to retrieve Concrete WSDL from that process and then save it to a file locally so that It can be used by clients to consume SOAP Web service.
Once you have successfully developed and tested your SOAP Web Service created using my tutorial on SOAP Event Source, you can proceed with below steps to retrieve concrete wsdl from it.
Step 0: Create SOAP Web Service using SOAP Event Source and Test It
I call this step as step zero as this step is already covered in my earlier tutorial on SOAP Event Source.
Once you are done with that, you can proceed towards next step in which we will be retrieving WSDL.
Step 1: Create Process with RetrieveResources Activity and a Write File Activity to Save WSDL File
Create a new process and add RetrieveResources activity from SOAP Palette in the process. (I named the process as Retrieve Concrete WSDL).
In the Input tab of Retrieve Resources configuration, give the inputs as below:
resourcepath: Path to the process which has been exposed as a web service along with ?wsdl suffix
filter: write wsdl in this field as we want to retrieve wsdl resource.
hostname: Host Name value should be same as used in the HTTP transport used for the web service
port: Port should also match the transport port of the web service
Complete configuration screenshot is shown below:
The output of this RetrieveResources activity will be concrete wsdl as resourceData element.
Now add a Write File activity and simply map the resourceData as input to the file so that Concrete WSDL is saved in the file. Input mapping of Write File activity is shown below:
Now in the next step, we will test the process to see how it works.
Step 3: Test Process to Retrieve WSDL and Save to a File
Load the process in designer tester. Make sure that Web Service is also in running state otherwise you won’t be able to retrieve concrete wsdl from it.
Once you are sure that web service is up and running (either in designer tester or in administrator), you can create a new job for the process in tester. As you can see below, process has run successfully:
Now you can go to the file and verify that concrete wsdl has been saved in the file.