SOAP Action not being detected

Hi! On 8.0. I am trying to make a couple adhoc soap calls from within a rule. When I send the payload the endpoint says it does not detect the soapaction. I am leveraging the WebServicesClient library but I can’t find any documentation on it specifically. The soap action is “assignJobDescriptionToUser” below. Do I need to maybe pass the soapaction separately to the webservicesclient as well?

import java.util.*;
  //import javax.xml.soap.*;
import connector.common.JsonUtil;
import sailpoint.connector.webservices.WebServicesClient;
import org.apache.commons.logging.Log;
  import org.apache.commons.logging.LogFactory;
  Log log = LogFactory.getLog("hss.generic");

      WebServicesClient client = new WebServicesClient();   
    Map args = new HashMap();
    String URL = "https://global.hgncloud.com/uat_hfss/services/EPM";
    args.put(WebServicesClient.ARG_URL, URL);
    client.configure(args);

    List allowedStatuses = new ArrayList();
    allowedStatuses.add("2**");
    Map header = new HashMap();    
    header.put("Content-Type","text/xml; charset=utf-8");

    String payload = new StringBuilder()
				.append("<soapenv:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" ")
				.append("xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:urn=\"urn:EPM\">\n")
				.append("   <soapenv:Header/>\n")
				.append("   <soapenv:Body>\n")
				.append("      <urn:assignJobDescriptionToUser soapenv:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">\n")
				.append("         <credentials xsi:type=\"urn:AuthenticationCredentials\">\n")
				.append("            <password xsi:type=\"xsd:string\">Hss123456</password>\n")
				.append("            <username xsi:type=\"xsd:string\">IAMSAILPOINT</username>\n")
				.append("         </credentials>\n")
				.append("         <username xsi:type=\"xsd:string\">208381</username>\n")
				.append("         <jobDescriptionCode xsi:type=\"xsd:string\">47054-7468</jobDescriptionCode>\n")
				.append("      </urn:assignJobDescriptionToUser>\n")
				.append("   </soapenv:Body>\n")
				.append("</soapenv:Envelope>\n")
				.toString();




    log.debug("payload = " + payload);
    String response = client.executePost(URL, payload, header, allowedStatuses, false, null);
    //log.debug("response = " + response);

And the response from the endpoint is:

<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <soapenv:Fault>
   <faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Client.NoSOAPAction</faultcode>
   <faultstring>Error ID: uat_hfss@1723481726234132482</faultstring>
   <detail/>
  </soapenv:Fault>
 </soapenv:Body>
</soapenv:Envelope>

I figured it out. Had to explicitly add the soapaction to the header.

But what if you have a client certificate+key configured on the connector?  WebServicesClient has no argument for this leading to error responses for missing certificate/key

@jalexander  - Can you elaborate a bit more what exactly you set in the header. thank you!