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
rd7rd7 

logout() request

I'm attempting to logout a session and am getting the following response:

 

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Body>
      <soapenv:Fault>
         <faultcode>soapenv:Client</faultcode>
         <faultstring>No operation available for request {urn:enterprise.soap.sforce.com}logout</faultstring>
      </soapenv:Fault>
   </soapenv:Body>
</soapenv:Envelope>

 

I'm using the URL and sessionID from the login() request.

Best Answer chosen by Admin (Salesforce Developers) 
JonPJonP

The API version you are using is 10.0, indicated by the end of the URL.  The logout() method had not yet been implemented when API 10.0 was released.

 

Salesforce has a versioned API, which means when we release API changes we add new API endpoints with a higher version number at the end.  These changes are captured in changes to the WSDLs.  However, we maintain the old endpoints, so if you wrote an application  a few years ago against the 10.0 Enterprise API (for example) it will continue to function.  This is one of the features allowing Salesforce to do three seamless upgrades per year without breaking our customers' code and integrations.

 

To access new functionality in a later API, however, you need to replace your old WSDL with a newer one.  This will add new API methods and incorporate changes to message formats.  Because our WSDLs do change over time, this kind of upgrade is not always trivial--you can't just point your application developed for API 10.0 at API 16.0 and expect it to work.

 

Since it sounds like you're developing a new Salesforce API client application, I'd strongly recommend upgrading to the latest version now, before you do anything else, so that you can leverage all the latest Salesforce features.  You can download the latest WSDLs for any of our APIs by logging into Salesforce and navigating to Setup | App Setup | Develop | API.

 

 

 

For your reference, there are three important pieces of information embedded in a Salesforce Web Service API endpoint.

 

1. Hostname - "www.salesforce.com" for production, "test.salesforce.com" for sandbox

2. API type - "/c/" for Enterprise API, "/u/" for Partner API, "/m/" for Metadata API, etc.

3. API version - "/16.0" is for Summer '09, "/15.0" is for Spring '09, etc.

 

If you aren't familiar with the difference between the Enteprise and Partner APIs, you should check out the Web Service API Developer's Guide at http://www.salesforce.com/us/developer/docs/api/index.htm (link).

 

Jon

salesforce.com Product Manager

All Answers

JonPJonP
To what URL are you sending the initial login request?  What is the API version #?
rd7rd7

The initial login request is going to test.salesforce.com/services/Soap/c/10.0 (sandbox)

I'm not sure of the API version ... whatever the latest one is I would suspect as we just signed up with SalesForce and started using it within the past month or two.

JonPJonP

The API version you are using is 10.0, indicated by the end of the URL.  The logout() method had not yet been implemented when API 10.0 was released.

 

Salesforce has a versioned API, which means when we release API changes we add new API endpoints with a higher version number at the end.  These changes are captured in changes to the WSDLs.  However, we maintain the old endpoints, so if you wrote an application  a few years ago against the 10.0 Enterprise API (for example) it will continue to function.  This is one of the features allowing Salesforce to do three seamless upgrades per year without breaking our customers' code and integrations.

 

To access new functionality in a later API, however, you need to replace your old WSDL with a newer one.  This will add new API methods and incorporate changes to message formats.  Because our WSDLs do change over time, this kind of upgrade is not always trivial--you can't just point your application developed for API 10.0 at API 16.0 and expect it to work.

 

Since it sounds like you're developing a new Salesforce API client application, I'd strongly recommend upgrading to the latest version now, before you do anything else, so that you can leverage all the latest Salesforce features.  You can download the latest WSDLs for any of our APIs by logging into Salesforce and navigating to Setup | App Setup | Develop | API.

 

 

 

For your reference, there are three important pieces of information embedded in a Salesforce Web Service API endpoint.

 

1. Hostname - "www.salesforce.com" for production, "test.salesforce.com" for sandbox

2. API type - "/c/" for Enterprise API, "/u/" for Partner API, "/m/" for Metadata API, etc.

3. API version - "/16.0" is for Summer '09, "/15.0" is for Spring '09, etc.

 

If you aren't familiar with the difference between the Enteprise and Partner APIs, you should check out the Web Service API Developer's Guide at http://www.salesforce.com/us/developer/docs/api/index.htm (link).

 

Jon

salesforce.com Product Manager

This was selected as the best answer
rd7rd7

Thank you for all of the information!  I had just gotten the wsdl about a month ago so I thought I had the latest version.  The breakdown of the web service api endpoint is helpful too!

Thanks again  ~