Soap Service - Leverage type substitution in parse rule
Hi all,
I've been using Pega 7.3
I want to build a SOAP service which exposes in addition to some information an abstract type SpecificBodyContentType which can be substituted runtime by other elements which inherits from the abstract type (SpecificBodyContentType1, SpecificBodyContentType2) . Following part of the xsd I would like to generate:
<complexType>
<sequence>
<element name="CaseType"; type="xsd:string">
<element name="ExternalCaseID" type="xsd:string">
<element name="ExternalCaseType type="xsd:string">
<element minOccurs="0" name="SpecificBodyContent" type="tns:SpecificBodyContentType">
</sequence>
</complexType>
<complexType name="SpecificBodyContentType" abstract="true">
<sequence>
<element name="genericProperty" type="xsd:string"/>
</sequence>
</complexType>
<complexType name="SpecificBodyContent1">
<complexContent>
<extension base="tns:SpecificBodyContentType">
<sequence>
<element name="property1" type="xsd:string"/>
<element name="property2" type="xsd:string"/>
</sequence>
</extension>
</complexContent>
</complexType>
I created all the parse rules using type substituion as suggested in different articles I found on the web. Anyway each tyme I download the WSDL generated by the service I see only a type (see snippet below).
Hi all,
I've been using Pega 7.3
I want to build a SOAP service which exposes in addition to some information an abstract type SpecificBodyContentType which can be substituted runtime by other elements which inherits from the abstract type (SpecificBodyContentType1, SpecificBodyContentType2) . Following part of the xsd I would like to generate:
<complexType>
<sequence>
<element name="CaseType"; type="xsd:string">
<element name="ExternalCaseID" type="xsd:string">
<element name="ExternalCaseType type="xsd:string">
<element minOccurs="0" name="SpecificBodyContent" type="tns:SpecificBodyContentType">
</sequence>
</complexType>
<complexType name="SpecificBodyContentType" abstract="true">
<sequence>
<element name="genericProperty" type="xsd:string"/>
</sequence>
</complexType>
<complexType name="SpecificBodyContent1">
<complexContent>
<extension base="tns:SpecificBodyContentType">
<sequence>
<element name="property1" type="xsd:string"/>
<element name="property2" type="xsd:string"/>
</sequence>
</extension>
</complexContent>
</complexType>
I created all the parse rules using type substituion as suggested in different articles I found on the web. Anyway each tyme I download the WSDL generated by the service I see only a type (see snippet below).
<complexType>
<sequence>
<element name="CaseType"; type="xsd:string">
<element name="ExternalCaseID" type="xsd:string">
<element name="ExternalCaseType type="xsd:string">
<element minOccurs="0" name="SpecificBodyContent" type="tns:SpecificBodyContentType">
</sequence>
</complexType>
<complexType name="SpecificBodyContentType">
<sequence>
<element name="genericProperty" type="xsd:string"/>
</sequence>
</complexType>
Do you have any suggestion? Is it possible to leverage Type substitution in SOAP Services exposed by Pega? In case not, do you have any workaround I could apply to reach my goal (expose a generic object?)
Thanks for your support,
Regards,
Claudio