TN-15: Apex API 6.0 Features and Changes - The salesforce.com CRM On-Demand Platform
Apex API 6.0 contains a number of significant new features and bug fixes that will improve the capabilities for applications that leverage the AppExchange Web service API. Considerable effort has been made to ensure backward capability with Apex API 6.0 for applications that have been written against previous versions of the API, starting with API 2.5. (Note: older XML-RPC APIs should remain unchanged with this release)

The new API provides a number of powerful enhancements that further improve any integration already in place between salesforce.com and your other systems. For additional information on the Summer '05 release, please see the Salesforce.com CRM Summer '05 Admin Preview, or visit: http://www.salesforce.com/developer/.

Please note:

  • After the Summer '05 release, the WSDL 5.0 will no longer be available. Instead, all requests for a WSDL will return a WSDL 6.0. Please remember to save WSDL files with your project, as the enterprise WSDL is custom to your organization.
  • The XML-RPC APIs have not changed - or been enhanced - with Apex API 6.0. Developers are encouraged to migrate to the SOAP based API to leverage the new features of the platform. These have not been updated since December 2003. We will soon be asking customers to upgrade XML/RPC versions 1.5 through 1.7 to at least version 1.8. This is a simple change for most XML/RPC integrations.
Major Changes

  • AppExchange Data Loader is a new product - The Data Loader is a desktop application that provides easy loading, updating, deleting, and exporting of large data sets. This product, which is fully supported, will also be made available as an open source project.
  • DescribeSObjects is a new API call - The new method is similar to DescribeSObject, but it can take an array of object names, and return an array of describesobjectresults. Use this call to improve the startup time of your application.
  • DescribeTabs is a new API call - Use DescribeTabs to help you render the tabs that a user has visible. DescribeTabs has all the metadata needed to render multiforce applications in a different user interface.
  • Custom Formula Fields are a new data type - These are supported read-only in 6.0, and can be used in where clauses on SOQL queries. Formula fields are a powerful feature, and available in all areas of the application. An important note about formula fields: You should not replicate these fields, as they are derived fields. Additionally, for text custom formula fields, the length of the field is not known until runtime, so the length is always described as size 1300. The formula definition is not available in the API. Plans are in progress to make the definition available in a future release. Field has a new property: calculated. When true, the field is a formula field.
New Objects

SelfServiceUser - Create, update, and query SelfService users in 6.0. SetPassword and ResetPassword also support SelfServiceUsers. Access to this new object can allow for performing single sign on for self-service users. EmailMessage - New Object used to manage Emails associated with cases, used as part of the new Email-to-Case functionality. Only shows up when Email-To-Case is enabled New & Changed Data Types

  • New Contract Fields - ShippingCity, ShippingCountry, ShippingPostalCode, ShippingState, and ShippingStreet are new address fields associated with a contract.
  • New CampaignMember Field - FirstRespondedDate tracks the date that the campaign member first went to a responded status.
  • New User Fields - OfflineTrialExpirationDate and OfflinePdaTrialExpirationDate are new read-only fields on User. The UserPermissionsSuperCssUser flag has been removed.
  • New Document And Attachment Field - ContentType represents the MIME-Type of the attachment or document.
New & Changed API Behavior

  • SaveOptions has been removed from the 6.0 API. If you are upgrading to 6.0, please use AssignmentRuleHeader instead.
  • LoginResult now returns GetUserInfoResult, eliminating the requirement to call GetUserInfo separately.
  • Updates to the email address field on User may not be reflected immediately. When changing the email address of a user, the recipient of the new email will have to click on a link to update the email address. This is to ensure the email actually exists and is accessible by the given user. Note that this can be turned off by contacting support and providing a list of valid domain names for your organization.
Minor Enhancements

  • Document, Product, and Solution are now searchable using SOSL.
  • DescribeSObjectResult has a new field called ChildRelationships. This field is an array of ChildRelationships, which in turn lists all of the sObjects that have a foreign key to the sObject you are describing.
  • DescribeLayout has a new field, UseCollapsibleSection. This property can be used to know when to show a "twisty" next to a section.
  • The fault and error message for malformed SOQL queries now returns the row and column number where the syntax error occurred.
  • ApiQueryFault is a new sub class of ApiFault; a number of faults have been refactored into this new package.
Minor Bug Fixes

WSDL

  • sObject is no longer defined as "abstract = true" in the enterprise WSDL. This fixes an XML schema compliance issue with retrieve returning nil records.
  • The Partner WSDL was changed to address an XML Schema UPA compliance issue. ID is now minOccurs='1' on sObject.
  • QueryOptions is no longer marked as nillable=true. Your SOAP toolkit should not let you send up a null QueryOptions header
Describe

  • In DescribeLayout, RecordTypeId on RecordTypeMapping are marked as nillable="true", since the RecordTypeId can be null for default record types.
  • DescribeLayout did not previously return the proper TabOrder sequence on EditLayouts. This issue is resolved, so if you implemented a workaround you may need to back out the change to support the new behavior.
  • DescribeLayout information for person names did not previously return spaces in between the names. It now correctly returns spaces in between the names.
  • Product2 is now supported in the describeLayout call for verson 6.0 and 5.0
  • Fields of type percent (probability fields, custom percent fields, etc) will be described as a percent in the 6.0 endpoint. Previously, they were described as type double.
  • Default values for new objects were not being reflected in Describe
  • Nillable and DefaultedOnCreate were being described incorrectly for certain fields. Autonumber is now described as nillable = false, defaultedOnCreate=true. CreatedBy, CreatedDate, LastUpdatedBy, LastUpdatedBy, LastUpdatedDate, and SystemModstamp are now described as defaultedOnCreate=true. This describe now matches the behavior in the application.
Other Bug Fixes

  • Calling ConvertLead with a lead owned by queue will throw an exception if the owner is not specified. This is because the objects created when a lead is converted cannot be owned by a queue.
  • Previously, Accounts and Opportunities created from lead convert were assigned the "Master" record type rather than the user's default record type. These are now assigned the user's default record type.
Other

  • Previously, queries against Event did not match the results received from reports on Events delivered via the application. These behaviors now match.
  • Queries on events will be denied before they time out if they involve amounts of data that are deemed too large. In such cases, the error code OPERATION_TOO_LARGE is returned. If a query denial occurs, refactor your query to return or scan a smaller amount of data. This change is for all versions of the API.
  Privacy Statement | Security Statement   Salesforce.com: 1-800-NO-SOFTWARE  


© Copyright 2000-2007 salesforce.com, inc. Customer Relationship Management (CRM) • All rights reserved
Various trademarks held by their respective owners.