Hello,

I am calling a webservice form a SOAP 4.0.0.4 driver running IDM 4.5.5. The call I would like to make looks like this:

Code:
<soapenv:Envelope XXX>
   <soapenv:Header/>
   <soapenv:Body>
      <ns:callGCTPCheckServiceRequest>
         <ns1:InvocationContext>
            <ns1:ServiceAgreementUUID>XXX</ns1:ServiceAgreementUUID>
            <ns1:UserSystemUUID>XXX</ns1:UserSystemUUID>
            <ns1:UserUUID>XXX</ns1:UserUUID>
            <ns1:OnBehalfOfUser>XXX</ns1:OnBehalfOfUser>
            <ns1:ServiceUUID>XXX</ns1:ServiceUUID>
            <ns1:CallersServiceCallIdentifier>XXX</ns1:CallersServiceCallIdentifier>
            <ns1:AccountingInfo/>
         </ns1:InvocationContext>
         <ns:gctpMessage><![CDATA[<Gctp v="1.0">
				<System r="CprSoeg">
					<Service r="STAM+">
						<CprServiceHeader r="STAM+">
							<Key>
								<Field r="PNR" v="XXX"/>
							</Key>
						</CprServiceHeader>
					</Service>
				</System>
			</Gctp>]]></ns:gctpMessage>
      </ns:callGCTPCheckServiceRequest>
   </soapenv:Body>
</soapenv:Envelope>
This particular call works fine from SoapUI.

But from the IDM driver I have problems with the CDATA tags. To be precise: <![CDATA[

No matter what I do, it will interpret the < as a XML tag. I have Googled and pretty much read every single thread and forum post and tried, hmm, I think maybe 50 different things now. The < will always be interpreted as &lt; and it MUST be the real <.

People on the web suggest getting the developers of the webservice to change their code. But it is a large federal service, so that is not going to happen. I must be able to call it with CDATA. Now, I have a solution from workflow, where I call a Shell script on commandline that does the trick. I am thinking about doing a workaround where I call this Shell script from a driver policy, completely circumventing the SOAP driver's functionality. That is a pretty lame solution, but I dont know what else to do.

Any ideas?

Thanks in advance,

Jacob.