What's New in Force.com Web Services API Spring '08
Contents |
Overview
The Spring '08 release, including the Force.com Web Services API, contains new features and bug fixes that improve the capabilities of applications that leverage the Force.com platform. Considerable effort has been made to ensure backwards capability for applications that have been written against previous versions of the API, starting with API 2.5.
Note: older XML-RPC APIs remain unchanged with this release.
The new API provides a number of powerful enhancements that further improve any integration already in place between Force.com and your other systems. For additional information on the Spring '08 release, please see the Spring '08 Admin Preview, or visit the Apex Wiki. After version 12.0 has been released to your server, see the Force.com Web Services API Developer's Guide.
Important: After the Spring '08 release, the 11.1 version of the WSDL file will not be available. Instead, all requests for a WSDL will return a 12.0 version. Please remember to save WSDL files with your project, as the enterprise WSDL is custom to your organization.
Salesforce.com maintains backwards compability on previous versions of our APIs in accordance with our stated support policy. Salesforce.com recommends that developers migrate to the latest version of the API as often as is feasible in order to receive the benefit of new enhancements from release to release. Developers with integrations on API versions prior to version 2.5 should be planning to migrate to the most recent API in preparation for the eventual end of support for the older API versions.
Platform Changes
- The AJAX Toolkit and Web Services API have been updated to 12.0.
- Apex works with the API. For more information, see the Apex Developer's Guide at Apex Developer's Guide- Web Services API Calls for Apex.
- Sessions will only expire if the session has been inactive for a predetermined time. The period of activity before session expiration can be configured at Setup | Security Controls. Your session will stay valid as long as you continue to use your session.
- In previous versions of the API, changing an account owner removed sharing access for each account team member. In addition, changing an opportunity owner removed each sales team member and their sharing access to the record. In versions 12.0 and later of the Force.com Web Services API, changing an account or opportunity owner does not revoke sharing access to any pre-existing account or sales team members.
Metadata API—Developer Preview
The metadata API, both asynchronous SOAP and declarative or file-based, are GA for Spring '08 (API version 12.0).
For more information, see the Force.com Metadata API Developer's Guide.
API Behavior Changes
Note the following changes in behavior for the Web Services API:
1. In API versions previous to 12.0, you can supply a SessionHeader without a namespace. Beginning with version 12.0, you must supply a namespace, or an INVALID_SESSION error will occur. The following samples illustrate queries with and without the namespace specified:
No namespace:
<soap:Envelope soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <SessionHeader> <sessionId xsi:type="xsd:string">272411DT00DaRH!LHyfcM.OIqX_S_zeb5x9N.m_5os_8.0QZXXXXXX</sessionId> </SessionHeader> <CallOptions> <client xsi:type="xsd:string">DeDup/1.0</client> </CallOptions> <QueryOptions> <batchSize xsi:type="xsd:int">1000</batchSize> </QueryOptions> </soap:Header> <soap:Body> <namesp22:query xmlns:namesp22="urn:enterprise.soap.sforce.com"> <query xsi:type="xsd:string">select Name,Id from Account where (Name = ' [bsuk75088.in.test.postini-corp.com]')</query> </namesp22:query> </soap:Body> </soap:Envelope>
Namespace:
<soap:Envelope soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <sh:SessionHeader xmlns:sh="urn:partner.soap.sforce.com"> <sh:sessionId xsi:type="xsd:string"><soap:Envelope soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <sh:SessionHeader xmlns:sh="urn:partner.soap.sforce.com"> <sh:sessionId xsi:type="xsd:string">191300DT0000000DaRH!AQkAQMcfyhL.qOIqhXS_S_zeDuL9eX9KpLewhN91pe2H46poD4bk5xhbVBWU.mUz_5oIIFdSp_8.J0QZ9OtqWJMlc81HQrLj</sh:sessionId> </sh:SessionHeader> <CallOptions> <client xsi:type="xsd:string">DeDup/1.0</client> </CallOptions> <QueryOptions> <batchSize xsi:type="xsd:int">1000</batchSize> </QueryOptions> </soap:Header> <soap:Body> <namesp22:query xmlns:namesp22="urn:partner.soap.sforce.com"> <query xsi:type="xsd:string">select Name,Id from Account where (Name = ' [bsku75099.in.test.postini-corp.com]')</query> </namesp22:query> </soap:Body> </soap:Envelope> </sh:sessionId> </sh:SessionHeader> <CallOptions> <client xsi:type="xsd:string">DeDup/1.0</client> </CallOptions> <QueryOptions> <batchSize xsi:type="xsd:int">1000</batchSize> </QueryOptions> </soap:Header> <soap:Body> <namesp22:query xmlns:namesp22="urn:partner.soap.sforce.com"> <query xsi:type="xsd:string">select Name,Id,AccountStatus__c from Account where (Name = ' [bsuk75088.in.test.postini-corp.com]')</query> </namesp22:query> </soap:Body> </soap:Envelope>
2. In API versions previous to 12.0, client applications built with the partner WSDL can send requests to the enterprise endpoint, and enterprise WSDL applications can send to the partner endpoint. Beginning with version 12.0, this is not supported.
New Objects
The following new objects have been added to the API version 12 and later:
- EmailServicesAddress represents an email service address and is part of the email services feature.
- EmailServicesFunction represents an email service and is part of the email services feature.
- Idea represents a user-submitted idea and is part of the Salesforce Ideas feature. Users with "All data access" are not able to view portal ideas in the API. To view portal ideas, you must be logged in as a portal user.
- IdeaComment represents a user-submitted comment on an Idea and is part of the Salesforce Ideas feature.
- Vote represents a user's vote on an idea and is part of the Salesforce Ideas feature.
Changed Objects
The following objects were changed in API version 12.0:
- AccountPartner has a new child relationship to AccountPartner on the new ReversePartnerId field.
- EmailMessage now respects sharing rules as designed. In previous releases, it was possible to query an EmailMessage even if the logged-in user had not been granted sharing to the parented case. This behavior was not supported, and has now been corrected.
- Name has a new Idea picklist value in the Type field.
- Opportunity field ForecastCategory is no longer creatable, nillable, or defaultedOnCreate-able. It also has a new field, ForecastCategoryName.
- OpportunityStage has a new field ForecastCategoryName.
- Organization field UiSkin now uses Theme2 as the default picklist value.
- Partner has a new child relationship to Partner on the reversePartnerId field.
- Profile has a new field permissionsScheduleJob.
- Territory field ParentTerritoryId label changed to Parent Territory ID from Territory ID.
- UserRole added a new field PortalAccountOwnerId
- User added the following new child relationships:
- EmailServicesAddress on CreatedById, LastModifiedById, and RunAsUserId.
- EmailServicesFunction on CreatedById, LastModifiedById, and RunAsUserId.
- Idea on CreatedById and LastModifiedById.
- IdeaComment on CreatedById.
- MobilConfig on CreatedById and LastModifiedById.
- UserRole on PortalAccountOwnerId.
- Vote on CreatedById.
- User has a new field MobileConfigId.
New or Changed SOAP Headers
- EmailHeader: A group event is an Event for which IsGroupEvent is true. The EventAttendee object tracks the users, leads, or contacts that are invited to a group event. Note the following behaviors for group event emails sent through the API:
- Sending a group event invitation to a User respects the triggerUserEmail option
- Sending a group event invitation to a Lead or Contact respects the triggerOtherEmail option
- Emails sent when updating or deleting a group event also respect triggerUserEmail and triggerOtherEmail, as appropriate
- LocaleOptions: Specifies the language of labels returned in a describe call.
- The debugLevel element for the DebuggingHeader has been deprecated. Use the new categories element instead, which returns an array of LogInfo objects. For more information, see the Apex Developer's Guide.
API Migration Issues
The following technical notes are available to assist you in migrating from versions earlier than 10.0:
- Release 4.0: Force.com API 4.0 Features and Changes
- Release 5.0: Force.com API 5.0 Features and Changes
- Release 6.0: Force.com API 6.0 Features and Changes
- Release 7.0: What's New in Winter '06
- Release 8.0: What's New in Force.com Web Services API Winter '07
- Release 9.0: What's New in Force.com Web Services API Spring '07
- Release 10.0: What's New in Force.com Web Services API Summer '07
- Release 11.0: What's New in Force.com Web Services API Winter '08
Documentation Improvements
Status codes are now documented. See the Force.com Web Services API Developer's Guide for a list of status codes, the probable cause of the error that generated the status code, and suggested solutions.