I´m using the IIB 10.0.0.11
When I call my SOAP service with this message:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="urn://hfgroup.co.ke/SharedResources/Schemas/SOAMessages/SoapHeader" xmlns:com="urn://hfgroup.co.ke/Common/DataModel/Common/SecureGetBusinessDate/1.0/Common.SecureGetBusinessDate" xmlns:ns="urn://hfgroup.co.ke/CanonicalDataModel/Security/1.0">
<soapenv:Header>
<soap:HeaderRequest>
<soap:Control>
<soap:RequesterSystemCode>013</soap:RequesterSystemCode>
<soap:MessageID>45</soap:MessageID>
</soap:Control>
<soap:Credentials>
<soap:Credential>
<soap:Username>ESBAPP01</soap:Username>
<soap:Password>!@#$_!K@O#C$E%L^A*_$#@!</soap:Password>
</soap:Credential>
</soap:Credentials>
</soap:HeaderRequest>
</soapenv:Header>
<soapenv:Body>
<com:DataInput>
<com:SecureGetBusinessDateInput>
<ns:Security>
<ns:ChannelId>99997</ns:ChannelId>
</ns:Security>
</com:SecureGetBusinessDateInput>
</com:DataInput>
</soapenv:Body>
</soapenv:Envelope>
everything work as it should but when I received this message:
<NS1:Envelope xmlns:NS1="http://schemas.xmlsoap.org/soap/envelope/" >
<NS1:Header>
<NS2:HeaderRequest xmlns:NS2="urn://hfgroup.co.ke/SharedResources/Schemas/SOAMessages/SoapHeader">
<NS2:Control>
<NS2:RequesterSystemCode>013</NS2:RequesterSystemCode>
<NS2:MessageID>49</NS2:MessageID>
</NS2:Control>
<NS2:Credentials>
<NS2:Credential>
<NS2:Username>ESBAPP01</NS2:Username>
<NS2:Password>!@#$_!K@O#C$E%L^A*_$#@!</NS2:Password>
</NS2:Credential>
</NS2:Credentials>
</NS2:HeaderRequest>
</NS1:Header>
<NS1:Body>
<NS3:DataInput xmlns:NS3="urn://hfgroup.co.ke/Common/DataModel/Common/SecureGetBusinessDate/1.0/Common.SecureGetBusinessDate">
<NS3:SecureGetBusinessDateInput>
<NS4:Security xmlns:NS4="urn://hfgroup.co.ke/CanonicalDataModel/Security/1.0">
<NS4:ChannelId>99997</NS4:ChannelId>
</NS4:Security>
</NS3:SecureGetBusinessDateInput>
</NS3:DataInput>
</NS1:Body>
</NS1:Envelope>
The IIB turn the prefix NS3 and NS4 as a field and i will errors later in the service:
the tree variables in debug:
SOAP
Context
Namespace
NS1:CHARACTER:http://schemas.xmlsoap.org/soap/envelope/
Body
DataInput
NS3:CHARACTER:urn://hfgroup.co.ke/Common/DataModel/Common/SecureGetBusinessDate/1.0/Common.SecureGetBusinessDate
SecureGetBusinessDateInput
Security
NS4:CHARACTER:urn://hfgroup.co.ke/CanonicalDataModel/Security/1.0
ChannelId:CHARACTER:99997
how I can resolve this issue for not having the prefix as a field?
the log of what is sending to the service:
0x03000102:NamespaceDecl):xmlns = 'urn://hfgroup.co.ke/Common/DataModel/Common/GetBusinessDate/1.0/Common.GetBusinessDate' (CHARACTER)
(0x03000102:NamespaceDecl)xmlns:nsS100 = 'urn://hfgroup.co.ke/CanonicalDataModel/Security/1.0' (CHARACTER)
(0x03000102:NamespaceDecl)xmlns:soapenv = 'http://schemas.xmlsoap.org/soap/envelope/' (CHARACTER)
(0x01000000:Folder )http://schemas.xmlsoap.org/soap/envelope/:Body = (
(0x01000000:Folder)urn://hfgroup.co.ke/Common/DataModel/Common/GetBusinessDate/1.0/Common.GetBusinessDate:DataInput = (
(0x01000000:Folder)urn://hfgroup.co.ke/Common/DataModel/Common/GetBusinessDate/1.0/Common.GetBusinessDate:GetBusinessDateInput = (
(0x01000000:Folder)urn://hfgroup.co.ke/CanonicalDataModel/Security/1.0:Security = (
(0x03000000:PCDataField)http://www.w3.org/2000/xmlns/:NS4 = 'urn://hfgroup.co.ke/CanonicalDataModel/Security/1.0' (CHARACTER)
(0x03000000:PCDataField)urn://hfgroup.co.ke/CanonicalDataModel/Security/1.0:ChannelId = '99997' (CHARACTER)
(0x03000000:PCDataField)urn://hfgroup.co.ke/CanonicalDataModel/Security/1.0:CoreToken = 'Z]XWVUTSr>P<NW>Mw;MZ' (CHARACTER)
)
)
)
I see in your comments that you did not declare the SOAP namespace correctly: It misses the leading http://
. Please try it like this:
DECLARE ns250 NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';
DECLARE nszF00 NAMESPACE 'urn://hfgroup.co.ke/Common/DataModel/Common/GetBusinessDate/1.0/Common.GetBusinessDate';
DECLARE nsS100 NAMESPACE 'urn://hfgroup.co.ke/CanonicalDataModel/Security/1.0';
SET OutputRoot.XMLNSC.ns250:Envelope.(XMLNSC.NamespaceDecl)xmlns = nszF00;
SET OutputRoot.XMLNSC.ns250:Envelope.(XMLNSC.NamespaceDecl)xmlns:nsS100 = nsS100;
SET OutputRoot.XMLNSC.ns250:Envelope.(XMLNSC.NamespaceDecl)xmlns:soapenv = ns250;
And I see as well from your comments and the trace output that you copy data from the Environment
; the PCDataField
field in the trace tells me that there is no domain information in the Environment
(see similiar problem). Here a quote from the InfoCenter
Copying a message tree (or a portion of it) into the Environment can be useful for many scenarios, but it is essential that the correct domain is created prior to copying the structure. Forgetting to assign the correct domain to the Environment tree before copying the fragment of the input message causes inflation of the tree to occur before the copy happens
So please copy your input data like this to the Environment
:
CREATE LASTCHILD OF Environment DOMAIN 'XMLNSC' FROM InputRoot.XMLNSC;