cancel
Showing results for 
Search instead for 
Did you mean: 

Setting up an HTTP request to call an internal SOAP service versus defining the SOAP service in Blue Prism

a026833
Level 4
Hello, I am trying to execute this XML with the token key built into the XML (this was taken from SOAPUI and is working correctly there).I will be making a separate call prior to this, to get the token using a Web API service:27465.png
Here is my request, with XML body represented by previous screenshot :
27466.png
getting the following response after the call:
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><soap:Fault><faultcode>soap:Client</faultcode><faultstring>Unable to handle request without a valid action parameter. Please supply a valid soap action.</faultstring><detail /></soap:Fault></soap:Body></soap:Envelope> 

I  am not a web developer, so I am sure I am over simplifying this. I tried  another approach, creating the SOAP service in the system side of Blue prism. I was successful but don't know how to set up the input collection. Someone on this site had suggested using the HTTP request, so here I am

My questions are these:
1. Is this the correct approach? If so, what am I doing wrong
2. Will I be able to insert variable values for all the elements like this (i.e) <BranchId >[branch id] with this approach
3. If I should be using the SOAP Web service I created in Blue Prism, what would the input collection look like?
27468.png
Sorry for all the questions!! Thanks for your help in advance

------------------------------
June Siravo
Analyst
FIAM
America/New_York
------------------------------
4 REPLIES 4

ewilson
Staff
Staff
Hello @June Siravo,

You are delving into ugly bowels of SOAP. :face_with_tears_of_joy: If Blue Prism's SOAP wizard properly understands your service WSDL, I'd start there. As for the definition of the input Collection, it comes down to what the service expects for that action (lpUpdate in this example).​ When it comes to SOAP, REST, etc, a Collection is Blue Prism's simple-minded way of trying to represent a generic object. Sometimes it works, sometimes it doesn't.

In your example, the lpUpdatedRequest input Collection basically amounts to the various items that are contained in the SOAP XML between the tags <lpUpdateRequest> and </lpUpdateRequest>.  This stuff....
27397.png
So it seems you have the following entries:
  • lpId
  • LockId
  • IsTeamIp
  • lpAliasList (this is basically a child Collection)
    • lpAlias (this is another child Collection)
      • ItemState
      • LockId
      • BranchId
      • ExternalSystemsCd
      • ExtrnlOrgNo
      • ExtrnlBrnchNo
      • ExtrnlRegRepNo
      • UserStamp
      • lpIsnNo
      • UpdateDate
  • WaiveChangeRequest
  • DartAliasReviewIndicator
You'll have to take a stab at the data types of each column. From the looks of it, there are Text, Flag, Collection, and possible Number fields.

Back to your first error with trying to use the HTTP VBO. I believe that error relates to a missing HTTP header that basically defines the SOAP action that you're trying to invoke. If you run the test in SoapUI again and then check the link at the bottom of SoapUI for http log you should be able to see what headers are supposed to be there. Here's an example from me calling a BP VBO exposed as a SOAP web service.

27398.png
Cheers,


------------------------------
Eric Wilson
Director, Integrations and Enablement
Blue Prism Digital Exchange
------------------------------

Hi Eric, 
Thank you for getting back to me and for the not so good news on SOAP :( So I believe I need to go the HTTP route after all, as I have a header (which includes the OAUTH bearer token) that is not part of the WSDL I have in Blue Prism. I have tested out my XML in SOAPUI (with header info) and it is working. Can you confirm that I need to use HTTP based on needing a SOAP header or can I use the credentials here? My OAUTH token is dynamic so I dont believe I can use what I have below.  Just want to narrow down which approach will work.   
Thanks Again,
June

27406.png

------------------------------
June Siravo
Analyst
FIAM
America/New_York
------------------------------

Hi @June Siravo,

​You'll have to go the Code stage and HTTP route if you have a customer header. The Basic Auth information that the Wizard collects results in an Authentication header being created, but it won't be the correct one for you.

Cheers,

------------------------------
Eric Wilson
Director, Integrations and Enablement
Blue Prism Digital Exchange
------------------------------

We did go the HTTP route and that seemed to work for us, leaving this as an example for the next person:27444.png 27445.png

27446.png

------------------------------
June Siravo
Analyst
FIAM
America/New_York
------------------------------