function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
SandipkSandipk 

WSDL

For Salesforce API Enterprise WSDL is strongly typed and Partner WSDL is loosely typed.
Q1.What does this exactly means and how to test this behavior?
Q2.Where can we use Enterprise/Partner wsdl and why?
Q3.What are the advantages of using Partner wsdl over Enterprise wsdl?
Q3.What will happen if we just only use Partner wsdl instead of using Enterprise wsdl?

Satish_SFDCSatish_SFDC
An enterprise WSDL contains all the custom objects and other custom functionality you have created in an org. Which means this WSDL can be used to connect to only the org from which this WSDL is downloaded.

Partner WSDL on the other hand is generic and contains no definition for any of your custom objects. You use the generic sObject to refer to any object. Hence the Partner WSDL can be used to connect to multiple orgs. Dataloader can be an example of an app which uses a partner WSDL.

This link has further info:
http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_partner.htm

Regards,
Satish Kumar
Please mark my answer as a solution if it was helpful so it is available to others as a proper solution.
If you felt I went above and beyond, please give me Kudos by clicking on the star icon.
SandipkSandipk

I have tested this scenario using phptoolkit , for custom objects and its newly created fields i don't need to download new

partner/enterprise wsdl .

 

without downloading new wsdl's (partner/enterprise) i can create records using phptoolkit.

 

just curious to know why?

 

Thanks for your reply,

Sandip

 

sherod1sherod1

Sandipk wrote:

For Salesforce API Enterprise WSDL is strongly typed and Partner WSDL is loosely typed.

 

Q1.What does this exactly means and how to test this behavior?

 

Strongly Typed means 'Matches your Org's data model exactly and providing specific operations tied to each object and the fields of each object.'  If you change your data model in Salesforce, your Enterprise WSDL file will need to be regenerated.  Typically when you do this, your client side code will need to be regenerated.  

 

Loosely typed means the interface is more like passing name/value pairs.  your code is no longer highly dependent on your salesforce data model.  Salesforce will apply the data changes as long as you've gotten the field names right and have access to those fields via Field Level Security.  


Q2.Where can we use Enterprise/Partner wsdl and why?

 

You can use it with any programming language/toolkit which supports SOAP.


Q3.What are the advantages of using Partner wsdl over Enterprise wsdl?

 

The Partner WSDL does not become invalid as your Data model changes within Salesforce.


Q3.What will happen if we just only use Partner wsdl instead of using Enterprise wsdl?

 

Nothing.  Depending on your programming language using a strongly typed WSDL like the Enterprise WSDL may result in easier to use code.  I note that you are using PHP, in that case the Partner WSDL which effectively reduces the API to passing name/value pairs, may be easier.

 

--

 

The General advice salesforce gives is that if you are talking to one org, use the enterprise wsdl, if you need to talk to many orgs, use the partner wsdl.  All ETL tools like dataloader etc would use the partner wsdl.   

 

SandipkSandipk

But though, i made changes (added field in standard and custom object ) in my org i dont need to

regenerate Enterprise WSDL file for php toolkit. why ?

 

Thanks for your reply.

Sandip

 

Satish_SFDCSatish_SFDC
You need not generate a new WSDL file and continue to use the old one. But in this case you wont have access to the new fields or objects you have created. This is because the old WSDL does not have these definitions.

However, if you want to also access these new fields and custom objects you have to generate a new WSDL file and this will automatically have the definitions of the new fields and objects.

Regards,
Satish Kumar
Please mark my answer as a solution if it was helpful so it is available to others as a proper solution.
If you felt I went above and beyond, please give me Kudos by clicking on the star icon.