2

I'm trying to update to the Summer `19 (v46.0) Tooling API WSDL in a .NET project. When I attempt to update the service reference from the v45.0 WSDL I get the following error from MSDiscoCodeGenerator:

Unable to import binding 'SforceServiceBinding' from namespace 'urn:tooling.soap.sforce.com'.

Attempting the same conversion from the command line gives:

wsdl.exe tooling_46_0_scratch.wsdl

Error: Unable to import binding 'SforceServiceBinding' from namespace 'urn:tooling.soap.sforce.com'.
- Unable to import operation 'create'.
- The datatype 'urn:metadata.tooling.soap.sforce.com:AnalyticsSettings' is missing.

How can I import this Tooling API WSDL into a .NET project?

3

Looking into the v46.0 Tooling API WSDL at the complexType AnalyticsSettings (which is new in v46.0):

   <xsd:complexType name="AnalyticsSettings">
    <xsd:complexContent>
     <xsd:extension base="ens:sObject">
      <xsd:sequence>
       <xsd:element name="DurableId" minOccurs="0" type="xsd:string" nillable="true"/>
       <xsd:element name="FullName" minOccurs="0" type="xsd:string" nillable="true"/>
       <xsd:element name="IsInsightsEnabled" minOccurs="0" type="xsd:boolean" nillable="true"/>
       <xsd:element name="IsPowerInsightsEnabled" minOccurs="0" type="xsd:boolean" nillable="true"/>
       <xsd:element name="IsSmartDataDiscoveryEnabled" minOccurs="0" type="xsd:boolean" nillable="true"/>
       <xsd:element name="IsWaveReplicationEnabled" minOccurs="0" type="xsd:boolean" nillable="true"/>
       <xsd:element name="IsWaveSharingInheritanceEnabled" minOccurs="0" type="xsd:boolean" nillable="true"/>
       <xsd:element name="IsWaveTemplateEnabled" minOccurs="0" type="xsd:boolean" nillable="true"/>
       <xsd:element name="Metadata" minOccurs="0" type="mns:AnalyticsSettings" nillable="true"/>
      </xsd:sequence>
     </xsd:extension>
    </xsd:complexContent>
   </xsd:complexType>

This is defined in the schema for the "urn:sobject.tooling.soap.sforce.com" namespace. The element "Metadata" with the type "mns:AnalyticsSettings" is in the "urn:metadata.tooling.soap.sforce.com" namespace.

The schema for the urn:metadata.tooling.soap.sforce.com namespace doesn't have a definition for the complexType AnalyticsSettings.

I added a stub for the missing complex type in the urn:metadata.tooling.soap.sforce.com namespace schema.

   <xsd:complexType name="AnalyticsSettings">
    <xsd:complexContent>
     <xsd:extension base="mns:MetadataForSettings">
      <xsd:sequence>

      </xsd:sequence>
     </xsd:extension>
    </xsd:complexContent>
   </xsd:complexType>

After that I got a similar error for another type:

The datatype 'urn:metadata.tooling.soap.sforce.com:UserManagementSettings' is missing.

So I added that as well:

   <xsd:complexType name="UserManagementSettings">
    <xsd:complexContent>
     <xsd:extension base="mns:MetadataForSettings">
      <xsd:sequence>

      </xsd:sequence>
     </xsd:extension>
    </xsd:complexContent>
   </xsd:complexType>

After adding those I've been able to generate the integration code from the WSDL. There would likely be further issues if you tried to use the metadata fields on either of these sObjects.


I've raised support case # 23301433 about getting the WSDL fixed properly.

Update from support:

... the complexType definitions will be exposed sometime soon, although we don't have any ETA on this our R&D team are working on priority.

In case you need any further information on this issue at a later point of time you can raise a case with us giving this case number(23301433) as the reference.

Further update:

... please note that the mns:AnalyticsSettings complex type is scheduled in the current patch release(220.15, available in all production instances by 07/25/19 06:00 PST) . Please note UserManagementSettings complex type is not included in this patch but this is tentatively included in the next weeks patch release.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.