I have two organizations, one for development and another for production/sandbox.
When I generate an enterprise WSDL from production/sandbox I have some lookup relationships mapped as Name. When I generate it from development I get the same relations mapped as sObject.
I would like to know why this is happening and if there is a way to have the same relationships mapped as Name in both organizations.
Examples:
This is the WSDL generated in the development organization:
<complexType name="Lead">
<complexContent>
<extension base="ens:sObject">
<sequence>
<element name="AcceptedEventRelations" nillable="true" minOccurs="0" type="tns:QueryResult"/>
<element name="ActivityHistories" nillable="true" minOccurs="0" type="tns:QueryResult"/>
<element name="Address" nillable="true" minOccurs="0" type="tns:address"/>
...
<element name="Owner" nillable="true" minOccurs="0" type="ens:sObject"/>
<element name="OwnerId" nillable="true" minOccurs="0" type="tns:ID"/>
<element name="Phone" nillable="true" minOccurs="0" type="xsd:string"/>
...
</sequence>
</extension>
</complexContent>
</complexType>
You can notice that "Owner" is mapped as sObject.
Now the same Lead object from production:
<complexType name="Lead">
<complexContent>
<extension base="ens:sObject">
<sequence>
<element name="AcceptedEventRelations" nillable="true" minOccurs="0" type="tns:QueryResult"/>
<element name="ActivityHistories" nillable="true" minOccurs="0" type="tns:QueryResult"/>
<element name="Address" nillable="true" minOccurs="0" type="tns:address"/>
...
<element name="Owner" nillable="true" minOccurs="0" type="ens:Name"/>
<element name="OwnerId" nillable="true" minOccurs="0" type="tns:ID"/>
<element name="Partner_Company__c" nillable="true" minOccurs="0" type="xsd:string"/>
...
</sequence>
</extension>
</complexContent>
</complexType>
You can see that now "Owner" is mapped as Name.
Both were created using the same API version:
<soap:address location="https://login.salesforce.com/services/Soap/c/33.0/0DFi0000000CjGX"/>
<soap:address location="https://login.salesforce.com/services/Soap/c/33.0/0DFE0000000TYR9"/>
And I am creating both WSDLs as enterprise WSDLs.
Update: My developer edition is in na15, my Sandbox is in na15. My Sandbox is in cs23.
The links I sent before was comparing development to production. Now the correct ones. The first if from development and the second from Sandbox.
<soap:address location="https://login.salesforce.com/services/Soap/c/33.0/0DFi0000000CjGX"/>
<soap:address location="https://test.salesforce.com/services/Soap/c/34.0/0DF180000004CK6"/>
Development still has Lead Owner as ens:sObject and Sandbox has it as ens:Name.
ens:Name
is consistent with that theory.) Don't know what that feature might be though...