search cancel

IM PX Policy - SOAP Query - TEWS - HIERARCHY_REQUEST_ERR

book

Article ID: 255074

calendar_today

Updated On:

Products

CA Identity Suite CA Identity Manager

Issue/Introduction

Trying to use a PX Policy Soap Query in Identity Manager to make a TEWS call into IM fails with HIERARCHY_REQUEST_ERR

Environment

All Identity Manager

Cause

There is a mismatch between the SOAP Version which can be either version 1.1 or version 1.2 and the value specified in the SOAP request for the soap envelope.

Resolution

When using SOAP version 1.1 the soap envelope value should reference "http://schemas.xmlsoap.org/soap/envelope/" but when using SOAP version 1.2 the soap envelope value should instead reference "http://www.w3.org/2003/05/soap-envelope" instead. 

  • SOAP 1.2 uses "application/soap+xml" as Content-Type and SOAP 1.1 uses "text/xml".
  • SOAP 1.2 does not use SOAPAction header line.
  • SOAP 1.2 uses "http://www.w3.org/2003/05/soap-envelope" as the envelope namespace and SOAP 1.1 uses "http://schemas.xmlsoap.org/soap/envelope/".

 

Additional Information

This is an example using SOAP 1.1 that will do simple query for the task status for the TASK ID specified. You need to use a proper WSDL URL, admin_id and admin_password, and proper TaskID value for your environment. Any fields not specified below are to be left empty. You can just click on the TEST button on the PX Policy configuration page to verify the below request works for you. 

PX Policy type=UI

Data Element Name: TEWS Call Using SOAP 1.2
Category: Data Sources
Type: SOAP Base Query
Function: Anonymous Auth Get

WSDL URL: http://HOST:PORT/iam/im/TEWS6/identityEnv?wsdl
SOAP Version: 1.1
SOAP Request Message:

<?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>
        <TaskContext xmlns="http://tews6/wsdl">
            <admin_id>imadmin</admin_id>
        <admin_password>PASSWORD</admin_password>  </TaskContext>
        <TaskStatusSearch xmlns="http://tews6/wsdl">
            <Filter index="0">
                <TaskId>3763a4b5-fd686e24-4226875a-0b73</TaskId>
            </Filter>
        </TaskStatusSearch>
    </soapenv:Body>
</soapenv:Envelope>

 

This is an example using SOAP 1.2 that will do simple query for the task status for the TASK ID specified. You need to use a proper WSDL URL, admin_id and admin_password, and proper TaskID value for your environment. Any fields not specified below are to be left empty. You can just click on the TEST button on the PX Policy configuration page to verify the below request works for you. 

PX Policy type=UI

Data Element Name: TEWS Call Using SOAP 1.2
Category: Data Sources
Type: SOAP Base Query
Function: Anonymous Auth Get

WSDL URL: http://HOST:PORT/iam/im/TEWS6/identityEnv?wsdl
SOAP Version: 1.2
SOAP Request Message:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
        <TaskContext xmlns="http://tews6/wsdl">
            <admin_id>imadmin</admin_id>
        <admin_password>PASSWORD</admin_password>  </TaskContext>
        <TaskStatusSearch xmlns="http://tews6/wsdl">
            <Filter index="0">
                <TaskId>3763a4b5-fd686e24-4226875a-0b73</TaskId>
            </Filter>
        </TaskStatusSearch>
    </soapenv:Body>
</soapenv:Envelope>