Symptom
You have attempted to activate your custom web service in the Cloud Applications Studio and it fails with the following errors.
-
Recheck WSDL and upload it again
-
object TTYP YABC could not be activated->check ddic
-
TTYP YABC1 Activated with errors for dependent objects (Details -> DDIC log)
(Where YABC and YABC1 are the solution namespaces.)
Environment
- SAP Cloud for Customer
- SAP Business ByDesign
- SAP Cloud Application Studio
Reproducing the Issue
- Log in to Cloud Applications Studio.
- Open the relevant solution.
- Select the required web service file .WSID.
- Right click on the .wsid file and select the option Activate.
- Error is shown on the popup.
Cause
The WSDL file contains some fields with the same name from both Original solution and Patch solution.
Resolution
You have to remove the duplicate fields for either the original or patch schema definitions.
To do this please follow these steps:
- Open your WSDL file in any open source wsdl editor. e.g. notepad++, etc.
- Find this tag in the wsdl <wsdl:types>.
- In the wsdl types there are .xsd schemas which belong to each target namespace used in the web service.
e.g.
<xsd: Schema targetNamepace ="http://123"> (http://123 represents any of the following namespaces).
- http://sap.com/xi/SAPGlobal20/Global;
- http://sap.com/xi/AP/Common/Global;
- http://sap.com/xi/A1S/Global;
- http://0050010927-one-off.sap.com/Y123_; (Y123 represents a PDI solution)
The PDI solution namespaces will start with Y*.
e.g.
- <xsd: Schema targetNamepace ="http://0050010927-one-off.sap.com/Y123"......>
- <xsd: Schema targetNamepace ="http://0050010927-one-off.sap.com/YABC"......> (Y123 represents the name of the original solution & YABC represents the name of the patch solution)
Since one of these solutions is the original and the other is the patch solution, some or all of the fields in two these schema definitions may have the same name, which causes the duplicate issue.
- Expand these structures to see the element information in each, an example of which is seen below;
e.g.
********************************************************************************************************************
<xsd:group name="Ext00163E6B75071EE980B3EB4F1F560955">
<xsd:sequence>
<xsd:element name="BeneficiaryAddress2" minOccurs="0" form="qualified" type="xi11:Ext00163E3B22471ED881AD62347B0602B4"/>
</xsd:sequence>
</xsd:group>
<xsd:attributeGroup name="Ext00163E6B75071EE980B3EB4F1F560955"/>
- Each field is declared inside a group with the tag <XSD:GROUP Name> and also has attribute group with tag <XSD:ATTRIBUTEGROUP Name>
- The value of the group name and the attribute group name are the same
********************************************************************************************************************
- Find which of these fields are present twice in the WSDL and comment out the duplicate fields from the solution namespace which is not needed.
i.e.
- The element is present in both the original and patch solution schema definitions and you wish to comment it out of the original namespace schema definition.
- To do this comment out the whole element part using: <!-- -->
e.g.
********************************************************************************************************************
<xsd:group name="Ext00163E6B75071EE980B3EB4F1F560955">
<xsd:sequence>
Add comment here: <!-- <xsd:element name="BeneficiaryAddress2" minOccurs="0" form="qualified" type="xi11:Ext00163E3B22471ED881AD62347B0602B4"/> -->
</xsd:sequence>
</xsd:group>
<xsd:attributeGroup name="Ext00163E6B75071EE980B3EB4F1F560955"/>
********************************************************************************************************************
- Now search by the value of the group name i.e. "Ext00163E6B75071EE980B3EB4F1F560955" from the example above.
You will find a reference to it (<xsd:group ref="...">)under the following tag structure:
e.g.
********************************************************************************************************************
<xsd:ComplexType name =..........
<xsd:sequence..........
<xsd:group ref="xi2:Ext00163E6B75071EE980B3EB4F1F560955"/>
********************************************************************************************************************
- Comment out this reference also: <!-- <xsd:group ref="xi2:Ext00163E6B75071EE980B3EB4F1F560955"/> -->
- Repeat these steps for all the fields which are duplicated.
- After commenting out all duplicated fields (from one of the namespace schema definitions), save the WSDL and upload it again to the WSID file.
- Activate the WSID file.
Keywords
WSDL, PDI, SDK, add-on , KBA , AP-RC-BDS-WS , ByDesign Studio Web Services , How To